PHP Classes

File: MySQL_Test.php

Recommend this page to a friend!
  Classes of Aziz S. Hussain   mysql_* functions using PDO   MySQL_Test.php   Download  
File: MySQL_Test.php
Role: Unit test script
Content type: text/plain
Description: Unit test
Class: mysql_* functions using PDO
Access MySQL databases using PDO wrapper functions
Author: By
Last change: Update of MySQL_Test.php
Date: 4 years ago
Size: 35,228 bytes
 

Contents

Class file image Download
<?php /** * This is a simple unit test for all the MySQL_* * functions so that they match our functions * * This test should be run with a MySQL functions enabled * * @author Aziz S. Hussain <azizsaleh@gmail.com> * @copyright GPL license * @license http://www.gnu.org/copyleft/gpl.html * @link http://www.AzizSaleh.com */ /* * Test Db Params - user needs db/table create, drop, * insert, delete, update permissions) */ define('TEST_HOST', 'localhost'); define('TEST_USER', 'root'); define('TEST_PASS', ''); define('TEST_DB', 'unit_sql_v_1'); define('TEST_TABLE', 'unit_sql_table_1'); require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'MySQL.php'); require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'MySQL_Definitions.php'); /** * MySQL_Test * * Test object * * @author Aziz S. Hussain <azizsaleh@gmail.com> * @copyright GPL license * @license http://www.gnu.org/copyleft/gpl.html * @link http://www.AzizSaleh.com */ class MySQL_Test { /** * Test Results * * @var array */ public $results = array( 'valid' => 0, 'invalid' => 0, 'naf' => 0, 'tests' => 0, ); /** * MySQL Object * * @var MySQL */ protected $_object; /** * Connection holder * * @var array */ protected $_cached = array(); /** * Start testing * * @return void */ public function __construct() { // Set text on browser if (php_sapi_name() != 'cli') { header('Content-type: text/plain'); } // Set object $this->_object = MySQL::getInstance(); // Get tests $tests = get_class_methods($this); // Set print mask $masker = "| %-30.30s | %7s |" . PHP_EOL; // Print header printf($masker, '------------------------------', '-------'); printf($masker, 'Test', 'Result'); printf($masker, '------------------------------', '-------'); // Load db first $link = mysql_connect(TEST_HOST, TEST_USER, TEST_PASS); $statements = explode(';', file_get_contents(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'MySQL_Test_Schema.sql') ); foreach ($statements as $statement) { mysql_query(trim($statement)) or die(mysql_error()); } mysql_close($link); // Go through each test foreach ($tests as $test) { // Skip private/protected methods if (substr($test, 0, 1) == '_') { continue; } // Get mysql_* method $name = strtolower(str_replace('_Test', '', $test)); // Increment # of tests $this->results['tests']++; // If it doesn't exist, naf it (not a function) if (!function_exists($name)) { $this->results['naf']++; printf($masker, $test, 'NAF'); continue; } // Run tests if ($this->$test()) { $this->results['valid']++; printf($masker, $test, 'Success'); } else { $this->results['invalid']++; printf($masker, $test, 'Failure'); } } // Print footer printf($masker, '------------------------------', '-------'); } /** * After finishing, print out the results * * @return void */ public function __destruct() { // Echo results echo PHP_EOL . "Completed \t{$this->results['tests']} Tests" . PHP_EOL; echo "Passed \t\t{$this->results['valid']} Tests" . PHP_EOL; echo "Failed \t\t{$this->results['invalid']} Tests" . PHP_EOL; echo "NAF \t\t{$this->results['naf']} Tests" . PHP_EOL; // Close our connections $this->_object->mysql_close_all(); // Close mysql connections foreach ($this->_cached as $resource) { // Not a resource if (!is_resource($resource)) { continue; } // Check resource type $type = get_resource_type($resource); if (substr($type, 0, 10) != 'mysql link') { continue; } // Close it mysql_close($resource); } } /** * Test mysql_connect * * @return boolean */ public function MySQL_Connect_Test() { // Simple connection test list($mysql, $ourDb) = $this->_getConnection(); return ($ourDb !== false && is_resource($mysql)); } /** * Test pconnect * * @return boolean */ public function MySQL_Pconnect_Test() { // We need to make sure that the connection ids are the same $lastMySQLId = false; $lastOurId = false; for ($x = 0; $x <= 5; $x++) { // Connect $mysql = mysql_pconnect(TEST_HOST, TEST_USER, TEST_PASS); $ourDb = $this->_object->mysql_pconnect(TEST_HOST, TEST_USER, TEST_PASS); // Keep track of resource $this->_cached[] = $mysql; // Get thread ids $thisMySQLId = mysql_thread_id(); $thisOurId = $this->_object->mysql_thread_id(); // Get original ids if not set if ($lastMySQLId == false) { $lastMySQLId = $thisMySQLId; $lastOurId = $thisOurId; } // Keep checking that the ids are the same if ($thisMySQLId !== $lastMySQLId || $thisOurId !== $lastOurId) { return false; } } return true; } /** * Test mysql_select_db * * @return boolean */ public function MySQL_Select_Db_Test() { // Connect $this->_getConnection(); // Select Db $this->_selectDb(); // Get db name $dbName = mysql_fetch_assoc(mysql_query("SELECT DATABASE() as Databasename")); $dbNameOur = $this->_object->mysql_fetch_assoc($this->_object->mysql_query("SELECT DATABASE() as Databasename")); // Must be identical return ($dbName['Databasename'] === $dbNameOur['Databasename'] && $dbName['Databasename'] === TEST_DB); } /** * Test mysql_selectdb * * @return boolean */ public function MySQL_SelectDb_Test() { // Alias of Mysql_Select_Db_Test return true; } /** * Test mysql_query * * @return boolean */ public function MySQL_Query_Test() { // Done in Mysql_Select_Db_Test return true; } /** * Test mysql_real_escape_string * * @return boolean */ public function MySQL_Real_Escape_String_Test() { // Connect list($mysql, $ourDb) = $this->_getConnection(); // Compose string $string = "mysql_real_escape_string() calls MySQL's library function mysql_real_escape_string, which prepends backslashes to the following characters: \x00, \n, \r, \, ', \" and \x1a. "; // Select Db $this->_selectDb(); // Escape it $val1 = mysql_real_escape_string($string); $val2 = $this->_object->mysql_real_escape_string($string); $query = 'INSERT INTO ' . TEST_TABLE . " (field_name) VALUES ('$val2')"; $query2 = 'INSERT INTO ' . TEST_TABLE . " (field_name) VALUES ('$val2')"; // Add it mysql_query($query); $this->_object->mysql_query($query2); // Get added ID (confirm add) $id1 = mysql_insert_id(); $id2 = $this->_object->mysql_insert_id(); return $id1 == 1 && $id2 == 2; } /** * Test mysql_escape_string * * @return boolean */ public function MySQL_Escape_String_Test() { // Connect list($mysql, $ourDb) = $this->_getConnection(); // Compose string $string = "mysql_real_escape_string() calls MySQL's library function mysql_real_escape_string, which prepends backslashes to the following characters: \x00, \n, \r, \, ', \" and \x1a. "; // Select Db $this->_selectDb(); // Escape it $val1 = mysql_escape_string($string); $val2 = $this->_object->mysql_escape_string($string); $query = 'INSERT INTO ' . TEST_TABLE . " (field_name) VALUES ('$val2')"; $query2 = 'INSERT INTO ' . TEST_TABLE . " (field_name) VALUES ('$val2')"; // Add it mysql_query($query); $this->_object->mysql_query($query2); // Get added ID (confirm add) $id1 = mysql_insert_id(); $id2 = $this->_object->mysql_insert_id(); return $id1 == 3 && $id2 == 4; } /** * Test mysql_fetch_array * * @return boolean */ public function MySQL_Fetch_Array_Test() { // Select Db $this->_selectDb(); // Get rows (we should have 2 by now) $sql = 'SELECT * FROM ' . TEST_TABLE . ' ORDER BY field_id ASC LIMIT 2'; // Results $res1 = array(); $res2 = array(); // For each fetch type foreach (array(MYSQL_ASSOC) as $fetchType) { // Query $query = mysql_query($sql); $query2 = $this->_object->mysql_query($sql); // Must match while ($r = mysql_fetch_array($query, $fetchType)) { $res1[] = $r; } while($r2 = $this->_object->mysql_fetch_array($query2, $fetchType)) { $res2[] = $r2; } } $count = count($res1); for ($x = 0; $x < $count; $x++) { // Standardize order of keys, data must match $row1 = $res1[$x]; $row2 = $res2[$x]; sort($row1, SORT_STRING); sort($row2, SORT_STRING); if ($row1 !== $row2) { return false; } } return true; } /** * Test mysql_fetch_assoc * * @return boolean */ public function MySQL_Fetch_Assoc_Test() { // Done in Mysql_Select_Db_Test return true; } /** * Test mysql_fetch_row * * @return boolean */ public function MySQL_Fetch_Row_Test() { // Done in Mysql_Fetch_Array_Test return true; } /** * Test mysql_fetch_object * * @return boolean */ public function MySQL_Fetch_Object_Test() { // Select Db $this->_selectDb(); // Get rows (we should have 2 by now) $sql = 'SELECT * FROM ' . TEST_TABLE . ' ORDER BY field_id ASC LIMIT 1'; // Results $res1 = array(); $res2 = array(); // Query $query = mysql_query($sql); $query2 = $this->_object->mysql_query($sql); // Must match while ($r = mysql_fetch_object($query)) { $res1[] = $r; } while($r2 = $this->_object->mysql_fetch_object($query2)) { $res2[] = $r2; } // Can't be identical because of stdclass object resource # difference return $res1 == $res2; } /** * Test mysql_ping * * @return boolean */ public function MySQL_Ping_Test() { return (mysql_ping() === true && $this->_object->mysql_ping() === true); } /** * Test mysql_errno * * @return boolean */ public function MySQL_Errno_Test() { $badSql = 'SELECT * FROM TABLE.*'; mysql_query($badSql); $this->_object->mysql_query($badSql); return mysql_errno() === $this->_object->mysql_errno(); } /** * Test mysql_error * * @return boolean */ public function MySQL_Error_Test() { $badSql = 'SELECT * FROM TABLE.*'; mysql_query($badSql); $this->_object->mysql_query($badSql); return mysql_error() === $this->_object->mysql_error(); } /** * Test mysql_affected_rows * * @return boolean */ public function MySQL_Affected_Rows_Test() { // Connect list($mysql, $ourDb) = $this->_getConnection(); // Select Db $this->_selectDb(); // Set different SQL $sql = 'UPDATE ' . TEST_TABLE . " SET field_name = 'test string' WHERE field_id <= 100"; $sql2 = 'UPDATE ' . TEST_TABLE . " SET field_name = 'test string 2' WHERE field_id <= 100"; // Query mysql_query($sql); $this->_object->mysql_query($sql2); return mysql_affected_rows() === $this->_object->mysql_affected_rows(); } /** * Test mysql_client_encoding * * @return boolean */ public function MySQL_Client_Encoding_Test() { // Connect list($mysql, $ourDb) = $this->_getConnection(); // Select Db $this->_selectDb(); // Get encoding $code1 = mysql_client_encoding(); $code2 = $this->_object->mysql_client_encoding(); return $code1 === $code2; } /** * Test mysql_close * * @return boolean */ public function MySQL_Close_Test() { // Connect list($mysql, $ourDb) = $this->_getConnection(); // Select Db $this->_selectDb(); return mysql_close($mysql) === $this->_object->mysql_close($ourDb); } /** * Test mysql_create_db * * @return boolean */ public function MySQL_Create_Db_Test() { // Connect $newDb = 'unit_sql_v_2'; return mysql_create_db($newDb) === $this->_object->mysql_create_db($newDb); } /** * Test mysql_createdb * * @return boolean */ public function MySQL_CreateDb_Test() { // Alias of Mysql_Create_Db_Test return true; } /** * Test mysql_data_seek * * @return boolean */ public function MySQL_Data_Seek_Test() { // Connect list($mysql, $ourDb) = $this->_getConnection(); // Select Db $this->_selectDb(); // Get rows (we should have 2 by now) $sql = 'SELECT * FROM ' . TEST_TABLE . ' ORDER BY field_id ASC LIMIT 2'; // Results $res1 = array(); $res2 = array(); // Query $query = mysql_query($sql); $query2 = $this->_object->mysql_query($sql); mysql_data_seek($query, 1); $this->_object->mysql_data_seek($query2, 1); return mysql_fetch_assoc($query) == $this->_object->mysql_fetch_assoc($query2); } /** * Test mysql_list_dbs * * @return boolean */ public function MySQL_List_Dbs_Test() { // Connect list($mysql, $ourDb) = $this->_getConnection(); $dbs1 = mysql_list_dbs(); $dbs2 = $this->_object->mysql_list_dbs(); $list1 = array(); $list2 = array(); while ($a = mysql_fetch_row($dbs1)) { $list1[] = $a[0]; } while ($a = $this->_object->mysql_fetch_row($dbs2)) { $list2[] = $a[0]; } return $list1 === $list2; } /** * Test mysql_listdbs * * @return boolean */ public function MySQL_ListDbs_Test() { // Alias of Mysql_List_Dbs_Test return true; } /** * Test mysql_db_name * * @return boolean */ public function MySQL_Db_Name_Test() { // Connect list($mysql, $ourDb) = $this->_getConnection(); $dbs1 = mysql_list_dbs(); $dbs2 = $this->_object->mysql_list_dbs(); $list1 = array(); $list2 = array(); $i = 0; $cnt = mysql_num_rows($dbs1); while ($i < $cnt) { $list1[] = mysql_db_name($dbs1, $i); $i++; } $i = 0; $cnt = $this->_object->mysql_num_rows($dbs2); while ($i < $cnt) { $list2[] = $this->_object->mysql_db_name($dbs2, $i); $i++; } return $list1 === $list2; } /** * Test mysql_dbname * * @return boolean */ public function MySQL_Dbname_Test() { // Alias of Mysql_Db_Name_Test return true; } /** * Test mysql_db_query * * @return boolean */ public function MySQL_Db_Query_Test() { // Connect list($mysql, $ourDb) = $this->_getConnection(); // Get row $sql = 'SELECT * FROM ' . TEST_TABLE . ' ORDER BY field_id ASC LIMIT 1'; // Select db + query $query1 = mysql_db_query(TEST_DB, $sql); $query2 = $this->_object->mysql_db_query(TEST_DB, $sql); // Get first rows $row1 = mysql_fetch_assoc($query1); $row2 = $this->_object->mysql_fetch_assoc($query2); // Match them return $row1 === $row2; } /** * Test mysql_drop_db * * @return boolean */ public function MySQL_Drop_Db_Test() { // Connect $newDb = 'unit_sql_v_2'; return mysql_drop_db($newDb) === $this->_object->mysql_drop_db($newDb); } /** * Test mysql_dropdb * * @return boolean */ public function MySQL_DropDb_Test() { // Alias of Mysql_Drop_Db_Test return true; } /** * Test mysql_unbuffered_query * * @return boolean */ public function MySQL_Unbuffered_Query_Test() { // Select Db $this->_selectDb(); // Get rows (we should have 2 by now) $sql = 'SELECT * FROM ' . TEST_TABLE . ' ORDER BY field_id ASC LIMIT 1'; // Results $res1 = array(); $res2 = array(); // For each fetch type foreach (array(MYSQL_ASSOC, MYSQL_NUM, MYSQL_BOTH) as $fetchType) { // Query $query = mysql_unbuffered_query($sql); $query2 = $this->_object->mysql_unbuffered_query($sql); // Must match while ($r = mysql_fetch_array($query, $fetchType)) { $res1[] = $r; } while($r2 = $this->_object->mysql_fetch_array($query2, $fetchType)) { $res2[] = $r2; } } $count = count($res1); for ($x = 0; $x < $count; $x++) { // Standardize order of keys, data must match $row1 = $res1[$x]; $row2 = $res2[$x]; sort($row1, SORT_STRING); sort($row2, SORT_STRING); if ($row1 !== $row2) { return false; } } return true; } /** * Test mysql_thread_id * * @return boolean */ public function MySQL_Thread_Id_Test() { // Done in Mysql_Pconnect_Test return true; } /** * Test mysql_list_tables * * @return boolean */ public function MySQL_List_Tables_Test() { // Connect list($mysql, $ourDb) = $this->_getConnection(); // Results $res1 = array(); $res2 = array(); // Query $query = mysql_list_tables(TEST_DB); $query2 = $this->_object->mysql_list_tables(TEST_DB); // Must match while ($r = mysql_fetch_assoc($query)) { $res1[] = $r; } while($r2 = $this->_object->mysql_fetch_assoc($query2)) { $res2[] = $r2; } return $res1 === $res2; } /** * Test mysql_listtables * * @return boolean */ public function MySQL_ListTables_Test() { // Alias of Mysql_List_Tables_Test return true; } /** * Test mysql_tablename * * @return boolean */ public function MySQL_Tablename_Test() { // Connect list($mysql, $ourDb) = $this->_getConnection(); $dbs1 = mysql_list_tables(TEST_DB); $dbs2 = $this->_object->mysql_list_tables(TEST_DB); $list1 = array(); $list2 = array(); $i = 0; $cnt = mysql_num_rows($dbs1); while ($i < $cnt) { $list1[] = mysql_tablename($dbs1, $i); $i++; } $i = 0; $cnt = $this->_object->mysql_num_rows($dbs2); while ($i < $cnt) { $list2[] = $this->_object->mysql_tablename($dbs2, $i); $i++; } return $list1 === $list2; } /** * Test mysql_stat * * @return boolean */ public function MySQL_Stat_Test() { // Get stats $stat1 = mysql_stat(); $stat2 = $this->_object->mysql_stat(); // Extract all #'s out preg_match_all('!\d+!', $stat1, $matches1); preg_match_all('!\d+!', $stat2, $matches2); unset($stat1, $stat2); // Go through each number $count = count($matches1[0]); for ($x = 0; $x < $count; $x++) { $diff = abs($matches1[0][$x] - $matches2[0][$x]); // Make sure that the difference is <= 10 (margin of change while queries are running) if ($diff > 10) { return false; } } return true; } /** * Test mysql_set_charset * * @return boolean */ public function MySQL_Set_Charset_Test() { // Set charset $charset = 'latin1'; mysql_set_charset($charset); $this->_object->mysql_set_charset($charset); // Get charset $enc1 = mysql_client_encoding(); $enc2 = $this->_object->mysql_client_encoding(); return $enc1 === $enc2; } /** * Test mysql_result * * @return boolean */ public function MySQL_Result_Test() { // Select Db $this->_selectDb(); // Get rows $sql = 'SELECT * FROM ' . TEST_TABLE . ' ORDER BY field_id ASC LIMIT 2'; // Query $query = mysql_query($sql); $query2 = $this->_object->mysql_query($sql); $string1 = mysql_result($query, 1); $string2 = $this->_object->mysql_result($query2, 1); return $string1 === $string2; } /** * Test mysql_list_processes * * @return boolean */ public function MySQL_List_Processes_Test() { $dbs1 = mysql_list_processes(); $dbs2 = $this->_object->mysql_list_processes(); $list1 = array(); $list2 = array(); while ($row = mysql_fetch_assoc($dbs1)) { $list1[] = $row; } while ($row = $this->_object->mysql_fetch_assoc($dbs2)) { $list2[] = $row; } $count = count($list1); for ($x = 0; $x < $count; $x++) { if ($list1[$x]['Id'] != $list1[$x]['Id']) { return false; } } return true; } /** * Test mysql_insert_id * * @return boolean */ public function MySQL_Insert_Id_Test() { // Done in Mysql_Real_Escape_String_Test return true; } /** * Test mysql_get_server_info * * @return boolean */ public function MySQL_Get_Server_Info_Test() { $str1 = mysql_get_server_info(); $str2 = $this->_object->mysql_get_server_info(); return $str1 === $str2; } /** * Test mysql_get_proto_info * * @return boolean */ public function MySQL_Get_Proto_Info_Test() { $str1 = mysql_get_proto_info(); $str2 = $this->_object->mysql_get_proto_info(); return $str1 === $str2; } /** * Test mysql_get_host_info * * @return boolean */ public function MySQL_Get_Host_Info_Test() { $str1 = mysql_get_host_info(); $str2 = $this->_object->mysql_get_host_info(); return $str1 === $str2; } /** * Test mysql_get_client_info * * @return boolean */ public function MySQL_Get_Client_Info_Test() { $str1 = mysql_get_client_info(); $str2 = $this->_object->mysql_get_client_info(); return $str1 === $str2; } /** * Test mysql_free_result * * @return boolean */ public function MySQL_Free_Result_Test() { $sql = 'SELECT * FROM ' . TEST_TABLE; $query1 = mysql_query($sql); $query2 = $this->_object->mysql_query($sql); $count1 = 0; $count2 = 0; // Validate query to avoid throwing errors while (get_resource_type($query1) == 'mysql result' && $row = @mysql_fetch_assoc($query1)) { $count1++; mysql_free_result($query1); } while ($query2 && $row = $this->_object->mysql_fetch_assoc($query2)) { $count2++; $this->_object->mysql_free_result($query2); } return $count1 === $count2; } /** * Test mysql_freeresult * * @return boolean */ public function MySQL_FreeResult_Test() { // Alias of Mysql_Free_Result_Test return true; } /** * Test mysql_fetch_lengths * * @return boolean */ public function MySQL_Fetch_Lengths_Test() { $sql = 'SELECT * FROM ' . TEST_TABLE; $query1 = mysql_query($sql); $query2 = $this->_object->mysql_query($sql); while ($row = mysql_fetch_row($query1)) { $row2 = mysql_fetch_lengths($query1); foreach ($row as $sub => $string) { if (strlen($string) != $row2[$sub]) { return false; } } } while ($row = $this->_object->mysql_fetch_row($query2)) { $row2 = $this->_object->mysql_fetch_lengths($query1); foreach ($row as $sub => $string) { if (strlen($string) != $row2[$sub]) { return false; } } } return true; } /** * Test mysql_list_fields * * @return boolean */ public function MySQL_List_Fields_Test() { // Select Db $this->_selectDb(); $query1 = mysql_list_fields(TEST_DB, TEST_TABLE); $query2 = $this->_object->mysql_list_fields(TEST_DB, TEST_TABLE); $list1 = array(); $list2 = array(); // Our object gives us num_rows, something that we can't do in mysql_* $cnt = $this->_object->mysql_num_rows($query2); $i = 0; while ($i < $cnt) { $list1[] = mysql_field_name($query1, $i); $i++; } $i = 0; while ($i < $cnt) { $list2[] = $this->_object->mysql_field_name($query2, $i); $i++; } return $list1 === $list2; } /** * Test mysql_listfields * * @return boolean */ public function MySQL_ListFields_Test() { // Alias of Mysql_List_Fields_Test return true; } /** * Test mysql_field_len * * @return boolean */ public function MySQL_Field_Len_Test() { // Select Db $this->_selectDb(); // Query $sql = 'SELECT * FROM ' . TEST_TABLE . ' LIMIT 1'; // Query $query1 = mysql_query($sql); $query2 = $this->_object->mysql_query($sql); // Get items $length1 = mysql_field_len($query1, 0); $length2 = $this->_object->mysql_field_len($query2, 0); return $length1 === $length2; } /** * Test mysql_fieldlen * * @return boolean */ public function MySQL_FieldLen_Test() { // Alias of Mysql_Field_Len_Test return true; } /** * Test mysql_field_flags * * @return boolean */ public function MySQL_Field_Flags_Test() { // Select Db $this->_selectDb(); // Query $sql = 'SELECT * FROM ' . TEST_TABLE . ' LIMIT 1'; // Query $query1 = mysql_query($sql); $query2 = $this->_object->mysql_query($sql); // Get items $flags1 = mysql_field_flags($query1, 0); $flags2 = $this->_object->mysql_field_flags($query2, 0); return $flags1 === $flags2; } /** * Test mysql_fieldflags * * @return boolean */ public function MySQL_FieldFlags_Test() { // Alias of Mysql_Field_Flags_Test return true; } /** * Test mysql_field_name * * @return boolean */ public function MySQL_Field_Name_Test() { // Select Db $this->_selectDb(); // Query $sql = 'SELECT * FROM ' . TEST_TABLE . ' LIMIT 1'; // Query $query1 = mysql_query($sql); $query2 = $this->_object->mysql_query($sql); // Get items $name1 = mysql_field_name($query1, 0); $name2 = $this->_object->mysql_field_name($query2, 0); return $name1 === $name2; } /** * Test mysql_fieldname * * @return boolean */ public function MySQL_FieldName_Test() { // Alias of Mysql_Field_Name_Test return true; } /** * Test mysql_field_type * * @return boolean */ public function MySQL_Field_Type_Test() { // Select Db $this->_selectDb(); // Query $sql = 'SELECT * FROM ' . TEST_TABLE . ' LIMIT 1'; // Query $query1 = mysql_query($sql); $query2 = $this->_object->mysql_query($sql); // Get items $type1 = mysql_field_type($query1, 0); $type2 = $this->_object->mysql_field_type($query2, 0); return $type1 === $type2; } /** * Test mysql_fieldtype * * @return boolean */ public function MySQL_FieldType_Test() { // Alias of Mysql_Field_Type_Test return true; } /** * Test mysql_field_table * * @return boolean */ public function MySQL_Field_Table_Test() { // Select Db $this->_selectDb(); // Query $sql = 'SELECT * FROM ' . TEST_TABLE . ' LIMIT 1'; // Query $query1 = mysql_query($sql); $query2 = $this->_object->mysql_query($sql); // Get items $table1 = mysql_field_table($query1, 0); $table2 = $this->_object->mysql_field_table($query2, 0); return $table1 === $table2; } /** * Test mysql_fieldtable * * @return boolean */ public function MySQL_FieldTable_Test() { // Alias of Mysql_Field_Table_Test return true; } /** * Test mysql_field_seek * * @return boolean */ public function MySQL_Field_Seek_Test() { // Select Db $this->_selectDb(); // Query $sql = 'SELECT * FROM ' . TEST_TABLE . ' LIMIT 1'; // Query $query1 = mysql_query($sql); $query2 = $this->_object->mysql_query($sql); // Seek mysql_field_seek($query1, 1); $this->_object->mysql_field_seek($query1, 1); // Get items $info1 = mysql_fetch_field($query1); $info2 = $this->_object->mysql_fetch_field($query2); return $info1 == $info2; } /** * Test mysql_fetch_field * * @return boolean */ public function MySQL_Fetch_Field_Test() { // Select Db $this->_selectDb(); // Query $sql = 'SELECT * FROM ' . TEST_TABLE . ' LIMIT 1'; // Query $query1 = mysql_query($sql); $query2 = $this->_object->mysql_query($sql); // Get items $info1 = mysql_fetch_field($query1, 1); $info2 = $this->_object->mysql_fetch_field($query2, 1); return $info1 == $info2; } /** * Test mysql_num_fields * * @return boolean */ public function MySQL_Num_Fields_Test() { // Select Db $this->_selectDb(); // Query $sql = 'SELECT * FROM ' . TEST_TABLE . ' LIMIT 1'; // Query $query1 = mysql_query($sql); $query2 = $this->_object->mysql_query($sql); // Get items $num1 = mysql_num_fields($query1); $num2 = $this->_object->mysql_num_fields($query2); return $num1 == $num2; } /** * Test mysql_numfields * * @return boolean */ public function MySQL_Numfields_Test() { // Alias of Mysql_Num_Fields_Test return true; } /** * Test mysql_num_rows * * @return boolean */ public function MySQL_Num_Rows_Test() { // Done in Mysql_Db_Name_Test return true; } /** * Test mysql_numrows * * @return boolean */ public function MySQL_NumRows_Test() { // Alias of Mysql_Num_Rows_Test return true; } /** * Test mysql_info * * @return boolean */ public function MySQL_Info_Test() { // Select Db $this->_selectDb(); $sql1 = 'UPDATE ' . TEST_TABLE . " SET field_name = 'test 2' WHERE field_id <= 1"; $sql2 = 'UPDATE ' . TEST_TABLE . " SET field_name = 'test 2' WHERE field_id <= 2 AND field_id > 1"; mysql_query($sql1); $this->_object->mysql_query($sql2); $info1 = mysql_info(); $info2 = $this->_object->mysql_info(); return $info1 == $info2; } /** * Get connection to DB * * @return array 0 -> mysql resource, 1 -> our resource (#) */ protected function _getConnection() { $mysql = mysql_connect(TEST_HOST, TEST_USER, TEST_PASS, true); $ourDb = $this->_object->mysql_connect(TEST_HOST, TEST_USER, TEST_PASS, true); // Keep track of resource $this->_cached[] = $mysql; return array($mysql, $ourDb); } /** * Select Db * * @param boolean $mysql * @param boolean $ourDb * * @return void */ protected function _selectDb($mysql = false, $ourDb = false) { if ($mysql === false) { mysql_select_db(TEST_DB); } else { mysql_select_db(TEST_DB, $mysql); } if ($ourDb === false) { $this->_object->mysql_select_db(TEST_DB); } else { $this->_object->mysql_select_db(TEST_DB, $ourDb); } } } // Start tests new MySQL_Test;