enableBc(); $GLOBALS['collation_connection'] = 'utf8_general_ci'; $GLOBALS['cfg']['Server']['verbose'] = 'verbose host'; $GLOBALS['server'] = '1'; $_GET['reload_left_frame'] = '1'; $GLOBALS['focus_querywindow'] = 'main_pane_left'; $this->object = new PMA\libraries\Footer(); unset($GLOBALS['error_message']); unset($GLOBALS['sql_query']); $GLOBALS['error_handler'] = new PMA\libraries\ErrorHandler(); unset($_POST); $_SESSION['PMA_Theme'] = Theme::load('./themes/pmahomme'); $_SESSION['PMA_Theme'] = new Theme(); } /** * 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); } /** * Call private functions by setting visibility to public. * * @param string $name method name * @param array $params parameters for the invocation * * @return the output from the private method. */ private function _callPrivateFunction($name, $params) { $class = new ReflectionClass('PMA\libraries\Footer'); $method = $class->getMethod($name); $method->setAccessible(true); return $method->invokeArgs($this->object, $params); } /** * Test for getDebugMessage * * @return void * * @group medium */ public function testGetDebugMessage() { $GLOBALS['cfg']['DBG']['sql'] = true; $_SESSION['debug']['queries'] = array( array( 'count' => 1, 'time' => 0.2, 'query' => 'SELECT * FROM `pma_bookmark` WHERE 1', ), array( 'count' => 1, 'time' => 2.5, 'query' => 'SELECT * FROM `db` WHERE 1', ), ); $this->assertEquals( '{"queries":[{"count":1,"time":0.2,"query":"SELECT * FROM `pma_bookmark` WHERE 1"},' . '{"count":1,"time":2.5,"query":"SELECT * FROM `db` WHERE 1"}]}', $this->object->getDebugMessage() ); } /** * Test for _removeRecursion * * @return void */ public function testRemoveRecursion() { $object = (object) array(); $object->child = (object) array(); $object->child->parent = $object; $this->_callPrivateFunction( '_removeRecursion', array( &$object ) ); $this->assertEquals( '{"child":{"parent":"***RECURSION***"}}', json_encode($object) ); } /** * Test for _getSelfLink * * @return void */ public function testGetSelfLink() { $GLOBALS['cfg']['TabsMode'] = 'text'; $GLOBALS['cfg']['ServerDefault'] = 1; $this->assertEquals( '', $this->_callPrivateFunction( '_getSelfLink', array( $this->object->getSelfUrl() ) ) ); } /** * Test for _getSelfLink * * @return void */ public function testGetSelfLinkWithImage() { $GLOBALS['cfg']['TabsMode'] = 'icons'; $GLOBALS['cfg']['ServerDefault'] = 1; $_SESSION['PMA_Theme'] = new Theme(); $GLOBALS['pmaThemeImage'] = 'image'; $this->assertEquals( '', $this->_callPrivateFunction( '_getSelfLink', array( $this->object->getSelfUrl() ) ) ); } /** * Test for disable * * @return void */ public function testDisable() { $footer = new PMA\libraries\Footer(); $footer->disable(); $this->assertEquals( '', $footer->getDisplay() ); } /** * Test for footer when ajax enabled * * @return void */ public function testAjax() { $footer = new PMA\libraries\Footer(); $footer->setAjax(true); $this->assertEquals( '', $footer->getDisplay() ); } /** * Test for footer get Scripts * * @return void */ public function testGetScripts() { $footer = new PMA\libraries\Footer(); $this->assertContains( '