getMockBuilder('PMA\libraries\DatabaseInterface') ->disableOriginalConstructor() ->getMock(); //this data is needed when ServerStatusData constructs $server_session_variable = array( "auto_increment_increment" => "1", "auto_increment_offset" => "13", "automatic_sp_privileges" => "ON", "back_log" => "50", "big_tables" => "OFF", ); $server_global_variables = array( "auto_increment_increment" => "0", "auto_increment_offset" => "12" ); $fetchResult = array( array( "SHOW SESSION VARIABLES;", 0, 1, null, 0, $server_session_variable ), array( "SHOW GLOBAL VARIABLES;", 0, 1, null, 0, $server_global_variables ) ); $dbi->expects($this->any())->method('fetchResult') ->will($this->returnValueMap($fetchResult)); $GLOBALS['dbi'] = $dbi; $container = Container::getDefaultContainer(); $container->set('dbi', $GLOBALS['dbi']); $this->_response = new \PMA\Test\Stubs\Response(); $container->set('PMA\libraries\Response', $this->_response); $container->alias('response', 'PMA\libraries\Response'); } /** * Test for _formatVariable() * * @return void */ public function testFormatVariable() { $class = new ReflectionClass( '\PMA\libraries\controllers\server\ServerVariablesController' ); $method = $class->getMethod('_formatVariable'); $method->setAccessible(true); $container = Container::getDefaultContainer(); $container->factory( 'PMA\libraries\controllers\server\ServerVariablesController' ); $container->alias( 'ServerVariablesController', 'PMA\libraries\controllers\server\ServerVariablesController' ); $ctrl = $container->get('ServerVariablesController'); //Call the test function $name_for_value_byte = "binlog_cache_size"; $name_for_value_not_byte = "auto_increment_increment"; $name_for_value_not_num = "PMA_key"; //name is_numeric and the value type is byte $this->assertEquals( '3 B', $method->invoke($ctrl, $name_for_value_byte, "3") ); //name is_numeric and the value type is not byte $this->assertEquals( '3', $method->invoke($ctrl, $name_for_value_not_byte, "3") ); //value is not a number $this->assertEquals( 'value', $method->invoke($ctrl, $name_for_value_not_num, "value") ); } /** * Test for _getHtmlForLinkTemplates() * * @return void */ public function testGetHtmlForLinkTemplates() { $class = new ReflectionClass( '\PMA\libraries\controllers\server\ServerVariablesController' ); $method = $class->getMethod('_getHtmlForLinkTemplates'); $method->setAccessible(true); $container = Container::getDefaultContainer(); $container->factory( 'PMA\libraries\controllers\server\ServerVariablesController' ); $container->alias( 'ServerVariablesController', 'PMA\libraries\controllers\server\ServerVariablesController' ); $ctrl = $container->get('ServerVariablesController'); //Call the test function $html = $method->invoke($ctrl); $url = 'server_variables.php' . PMA_URL_getCommon(array()); //validate 1: URL $this->assertContains( $url, $html ); //validate 2: images $this->assertContains( PMA\libraries\Util::getIcon('b_save.png', __('Save')), $html ); $this->assertContains( PMA\libraries\Util::getIcon('b_close.png', __('Cancel')), $html ); } /** * Test for PMA_getHtmlForServerVariables() * * @return void */ public function testPMAGetHtmlForServerVariables() { $class = new ReflectionClass( '\PMA\libraries\controllers\server\ServerVariablesController' ); $method = $class->getMethod('_getHtmlForServerVariables'); $method->setAccessible(true); $container = Container::getDefaultContainer(); $container->factory( 'PMA\libraries\controllers\server\ServerVariablesController' ); $container->alias( 'ServerVariablesController', 'PMA\libraries\controllers\server\ServerVariablesController' ); $ctrl = $container->get('ServerVariablesController'); $_REQUEST['filter'] = "auto-commit"; $serverVarsSession = $GLOBALS['dbi']->fetchResult('SHOW SESSION VARIABLES;', 0, 1); $serverVars = $GLOBALS['dbi']->fetchResult('SHOW GLOBAL VARIABLES;', 0, 1); $html = $method->invoke($ctrl, $serverVars, $serverVarsSession); //validate 1: Filters $this->assertContains( '', $html ); $this->assertContains( __('Containing the word:'), $html ); $this->assertContains( $_REQUEST['filter'], $html ); //validate 2: Server Variables $this->assertContains( '