%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
| Server IP : 122.154.253.140 / Your IP : 216.73.216.119 Web Server : Microsoft-IIS/7.5 System : Windows NT SERVER02 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 User : IUSR ( 0) PHP Version : 5.6.31 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/inetpub/wwwroot/phpMyAdmin/test/classes/dbi/ |
Upload File : |
<?php
/**
* Tests for PMA\libraries\dbi\DBIMysqli class
*
* @package PhpMyAdmin-test
*/
/*
* Include to test.
*/
use PMA\libraries\dbi\DBIMysqli;
use PMA\libraries\Theme;
require_once 'libraries/relation.lib.php';
require_once 'libraries/url_generating.lib.php';
require_once 'libraries/database_interface.inc.php';
require_once 'test/PMATestCase.php';
/**
* Tests for PMA\libraries\dbi\DBIMysqli class
*
* @package PhpMyAdmin-test
*/
class DBIMysqliTest extends PMATestCase
{
/**
* @access protected
*/
protected $object;
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*
* @access protected
* @return void
*/
protected function setUp()
{
$GLOBALS['cfg']['Server']['ssl'] = false;
$GLOBALS['cfg']['Server']['compress'] = true;
$GLOBALS['pmaThemeImage'] = 'image';
//$_SESSION
$_SESSION['PMA_Theme'] = Theme::load('./themes/pmahomme');
$_SESSION['PMA_Theme'] = new Theme();
$this->object = new DBIMysqli();
}
/**
* Tears down the fixture, for example, closes a network connection.
* This method is called after a test is executed.
*
* @access protected
* @return void
*/
protected function tearDown()
{
unset($this->object);
}
/**
* Test for mysqli related functions, using runkit_function_redefine
*
* @return void
*
* @group medium
*/
public function testMysqliDBI()
{
if (! PMA_HAS_RUNKIT) {
$this->markTestSkipped("Cannot redefine function");
}
//FOR UT, we just test the right mysql client API is called
runkit_function_redefine(
'mysqli_real_connect', '', 'return "mysqli_real_connect";'
);
runkit_function_redefine('mysqli_init', '', 'return "mysqli_init";');
runkit_function_redefine('mysqli_options', '', 'return "mysqli_options";');
runkit_function_redefine('mysqli_query', '', 'return "mysqli_query";');
runkit_function_redefine(
'mysqli_multi_query', '', 'return "mysqli_multi_query";'
);
runkit_function_redefine(
'mysqli_fetch_array', '', 'return "mysqli_fetch_array";'
);
runkit_function_redefine(
'mysqli_data_seek', '', 'return "mysqli_data_seek";'
);
runkit_function_redefine(
'mysqli_more_results', '', 'return "mysqli_more_results";'
);
runkit_function_redefine(
'mysqli_next_result', '', 'return "mysqli_next_result";'
);
runkit_function_redefine(
'mysqli_get_host_info', '', 'return "mysqli_get_host_info";'
);
runkit_function_redefine(
'mysqli_get_proto_info', '', 'return "mysqli_get_proto_info";'
);
runkit_function_redefine(
'mysqli_get_client_info', '', 'return "mysqli_get_client_info";'
);
$user = 'PMA_user';
$password = 'PMA_password';
$is_controluser = false;
$server = array(
'port' => 8080,
'socket' => 123,
'host' => 'locahost',
);
$auxiliary_connection = true;
//test for connect
$ret = $this->object->connect(
$user, $password, $is_controluser,
$server, $auxiliary_connection
);
$this->assertEquals(
'mysqli_init',
$ret
);
//test for realQuery
$query = 'select * from DBI';
$link = $ret;
$options = 0;
$ret = $this->object->realQuery($query, $link, $options);
$this->assertEquals(
'mysqli_query',
$ret
);
//test for realMultiQuery
$ret = $this->object->realMultiQuery($link, $query);
$this->assertEquals(
'mysqli_multi_query',
$ret
);
//test for fetchArray
$result = $ret;
$ret = $this->object->fetchArray($result);
$this->assertEquals(
'mysqli_fetch_array',
$ret
);
//test for fetchAssoc
$result = $ret;
$ret = $this->object->fetchAssoc($result);
$this->assertEquals(
'mysqli_fetch_array',
$ret
);
//test for fetchRow
$result = $ret;
$ret = $this->object->fetchRow($result);
$this->assertEquals(
'mysqli_fetch_array',
$ret
);
//test for dataSeek
$result = $ret;
$offset = 10;
$ret = $this->object->dataSeek($result, $offset);
$this->assertEquals(
'mysqli_data_seek',
$ret
);
//test for moreResults
$link = $ret;
$ret = $this->object->moreResults($link);
$this->assertEquals(
'mysqli_more_results',
$ret
);
//test for nextResult
$link = $ret;
$ret = $this->object->nextResult($link);
$this->assertEquals(
'mysqli_next_result',
$ret
);
//test for getHostInfo
$link = $ret;
$ret = $this->object->getHostInfo($link);
$this->assertEquals(
'mysqli_get_host_info',
$ret
);
//test for getProtoInfo
$link = $ret;
$ret = $this->object->getProtoInfo($link);
$this->assertEquals(
'mysqli_get_proto_info',
$ret
);
//test for getClientInfo
$ret = $this->object->getClientInfo();
$this->assertEquals(
'mysqli_get_client_info',
$ret
);
}
/**
* Test for selectDb
*
* @return void
*
* @group medium
*/
public function testSelectDb()
{
$this->markTestIncomplete('Not testing anything');
//$link is empty
$GLOBALS['userlink'] = null;
$this->assertEquals(
false,
$this->object->selectDb("PMA", null)
);
}
/**
* Test for numRows
*
* @return void
*
* @group medium
*/
public function testNumRows()
{
$this->assertEquals(
0,
$this->object->numRows(true)
);
}
}