%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : www.kowitt.ac.th / Your IP : 216.73.216.118 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/controllers/ |
Upload File : |
<?php /* vim: set expandtab sw=4 ts=4 sts=4: */ /** * Tests for libraries/controllers/TableIndexesController.php * * @package PhpMyAdmin-test */ use PMA\libraries\controllers\table\TableIndexesController; use PMA\libraries\di\Container; use PMA\libraries\Theme; /* * Include to test. */ require_once 'libraries/database_interface.inc.php'; require_once 'libraries/relation.lib.php'; require_once 'libraries/url_generating.lib.php'; require_once 'libraries/sanitizing.lib.php'; require_once 'test/libraries/stubs/ResponseStub.php'; require_once 'test/PMATestCase.php'; /** * Tests for libraries/controllers/TableIndexesController.php * * @package PhpMyAdmin-test */ class TableIndexesControllerTest extends PMATestCase { /** * Setup function for test cases * * @access protected * @return void */ protected function setUp() { /** * SET these to avoid undefined index error */ $GLOBALS['server'] = 1; $GLOBALS['cfg']['Server']['pmadb'] = ''; $GLOBALS['pmaThemeImage'] = 'theme/'; $GLOBALS['url_params'] = array( 'db' => 'db', 'server' => 1 ); $dbi = $this->getMockBuilder('PMA\libraries\DatabaseInterface') ->disableOriginalConstructor() ->getMock(); $indexs = array( array( "Schema" => "Schema1", "Key_name"=>"Key_name1", "Column_name"=>"Column_name1" ), array( "Schema" => "Schema2", "Key_name"=>"Key_name2", "Column_name"=>"Column_name2" ), array( "Schema" => "Schema3", "Key_name"=>"Key_name3", "Column_name"=>"Column_name3" ), ); $dbi->expects($this->any())->method('getTableIndexes') ->will($this->returnValue($indexs)); $GLOBALS['dbi'] = $dbi; //$_SESSION $_SESSION['PMA_Theme'] = Theme::load('./themes/pmahomme'); $_SESSION['PMA_Theme'] = new Theme(); } /** * Tests for doSaveDataAction() method * * @return void * @test */ public function testDoSaveDataAction() { $sql_query = 'ALTER TABLE `db`.`table` DROP PRIMARY KEY, ADD UNIQUE ;'; $table = $this->getMockBuilder('PMA\libraries\Table') ->disableOriginalConstructor() ->getMock(); $table->expects($this->any())->method('getSqlQueryForIndexCreateOrEdit') ->will($this->returnValue($sql_query)); $GLOBALS['dbi']->expects($this->any())->method('getTable') ->will($this->returnValue($table)); $container = Container::getDefaultContainer(); $container->set('db', 'db'); $container->set('table', 'table'); $container->set('dbi', $GLOBALS['dbi']); $response = new \PMA\Test\Stubs\Response(); $container->set('PMA\libraries\Response', $response); $container->alias('response', 'PMA\libraries\Response'); $ctrl = new TableIndexesController(null); // Preview SQL $_REQUEST['preview_sql'] = true; $ctrl->doSaveDataAction(); $jsonArray = $response->getJSONResult(); $this->assertArrayHasKey('sql_data', $jsonArray); $this->assertContains( $sql_query, $jsonArray['sql_data'] ); // Alter success $response->clear(); unset($_REQUEST['preview_sql']); $GLOBALS['is_ajax_request'] = true; $ctrl->doSaveDataAction(); $jsonArray = $response->getJSONResult(); $this->assertArrayHasKey('index_table', $jsonArray); $this->assertArrayHasKey('message', $jsonArray); } /** * Tests for displayFormAction() * * @return void * @test */ public function testDisplayFormAction() { $table = $this->getMockBuilder('PMA\libraries\Table') ->disableOriginalConstructor() ->getMock(); $table->expects($this->any())->method('getStatusInfo') ->will($this->returnValue("")); $table->expects($this->any())->method('isView') ->will($this->returnValue(false)); $table->expects($this->any())->method('getNameAndTypeOfTheColumns') ->will($this->returnValue(array("field_name" => "field_type"))); $GLOBALS['dbi']->expects($this->any())->method('getTable') ->will($this->returnValue($table)); $container = Container::getDefaultContainer(); $container->set('db', 'db'); $container->set('table', 'table'); $container->set('dbi', $GLOBALS['dbi']); $response = new \PMA\Test\Stubs\Response(); $container->set('PMA\libraries\Response', $response); $container->alias('response', 'PMA\libraries\Response'); $index = new PMA\libraries\Index(); $ctrl = new TableIndexesController($index); $_REQUEST['create_index'] = true; $_REQUEST['added_fields'] = 3; $ctrl->displayFormAction(); $html = $response->getHTMLResult(); //PMA_URL_getHiddenInputs $this->assertContains( PMA_URL_getHiddenInputs( array( 'db' => 'db', 'table' => 'table', 'create_index' => 1, ) ), $html ); $doc_html = PMA\libraries\Util::showHint( PMA\libraries\Message::notice( __( '"PRIMARY" <b>must</b> be the name of' . ' and <b>only of</b> a primary key!' ) ) ); $this->assertContains( $doc_html, $html ); $this->assertContains( PMA\libraries\Util::showMySQLDocu('ALTER_TABLE'), $html ); // generateIndexSelector $this->assertContains( $index->generateIndexChoiceSelector(false), $html ); $this->assertContains( sprintf(__('Add %s column(s) to index'), 1), $html ); //$field_name & $field_type $this->assertContains( "field_name", $html ); $this->assertContains( "field_type", $html ); } }