getMockBuilder('PMA_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'] = PMA_Theme::load('./themes/pmahomme'); $_SESSION['PMA_Theme'] = new PMA_Theme(); } /** * Tests for PMA_getSqlQueryForIndexCreateOrEdit() method. * * @return void * @test */ public function testPMAGetSqlQueryForIndexCreateOrEdit() { $db = "pma_db"; $table = "pma_table"; $index = new PMA_Index(); $error = false; $_REQUEST['old_index'] = "PRIMARY"; $sql = PMA_getSqlQueryForIndexCreateOrEdit( $db, $table, $index, $error ); $this->assertEquals( "ALTER TABLE `pma_db`.`pma_table` DROP PRIMARY KEY, ADD UNIQUE ;", $sql ); } /** * Tests for PMA_getNumberOfFieldsForForm() method. * * @return void * @test */ public function testPMAGetNumberOfFieldsForForm() { $index = new PMA_Index(); $add_fields = PMA_getNumberOfFieldsForForm($index); $this->assertEquals( 0, $add_fields ); $_REQUEST['create_index'] = true; $_REQUEST['added_fields'] = 2; $add_fields = PMA_getNumberOfFieldsForForm($index); $this->assertEquals( $_REQUEST['added_fields'], $add_fields ); } /** * Tests for PMA_getFormParameters() method. * * @return void * @test */ public function testPMAGetFormParameters() { $db = "pma_db"; $table = "pma_table"; $form_params = PMA_getFormParameters($db, $table); $expect = array( 'db' => $db, 'table' => $table, ); $this->assertEquals( $expect, $form_params ); $_REQUEST['index'] = "index"; $form_params = PMA_getFormParameters($db, $table); $expect = array( 'db' => $db, 'table' => $table, 'old_index' => $_REQUEST['index'], ); $this->assertEquals( $expect, $form_params ); $_REQUEST['old_index'] = "old_index"; $form_params = PMA_getFormParameters($db, $table); $expect = array( 'db' => $db, 'table' => $table, 'old_index' => $_REQUEST['old_index'], ); $this->assertEquals( $expect, $form_params ); $_REQUEST['create_index'] = "create_index"; $form_params = PMA_getFormParameters($db, $table); $expect = array( 'db' => $db, 'table' => $table, 'create_index' => 1, ); $this->assertEquals( $expect, $form_params ); } /** * Tests for PMA_getHtmlForIndexForm() method. * * @return void * @test */ public function testPMAGetHtmlForIndexForm() { $fields = array("field_name" => "field_type"); $index = new PMA_Index(); $form_params = array( 'db' => 'db', 'table' => 'table', 'create_index' => 1, ); $add_fields = 3; $html = PMA_getHtmlForIndexForm($fields, $index, $form_params, $add_fields); //PMA_URL_getHiddenInputs $this->assertContains( PMA_URL_getHiddenInputs($form_params), $html ); //Index name $this->assertContains( __('Index name:'), $html ); $doc_html = PMA_Util::showHint( PMA_Message::notice( __( '"PRIMARY" must be the name of' . ' and only of a primary key!' ) ) ); $this->assertContains( $doc_html, $html ); //Index name $this->assertContains( __('Index name:'), $html ); $this->assertContains( PMA_Util::showMySQLDocu('ALTER_TABLE'), $html ); //generateIndexSelector $this->assertContains( $index->generateIndexChoiceSelector(false), $html ); //items $this->assertContains( __('Column'), $html ); $this->assertContains( __('Size'), $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 ); } } ?>