object = $this->getMockForAbstractClass('PMA_DbSearch', array('pma')); } /** * 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 protected functions by making the visibitlity to public. * * @param string $name method name * @param array $params parameters for the invocation * * @return the output from the protected method. */ private function _callProtectedFunction($name, $params) { $class = new ReflectionClass('PMA_DbSearch'); $method = $class->getMethod($name); $method->setAccessible(true); return $method->invokeArgs($this->object, $params); } /** * Test for getCommonFunctions */ public function testGetCommonFunctions(){ $this->assertTrue($this->object->getCommonFunctions() instanceof PMA_CommonFunctions); } /** * Test for _getSearchSqls */ public function testGetSearchSqls(){ $GLOBALS['db'] = 'pma'; if (! function_exists('PMA_DBI_get_columns')) { function PMA_DBI_get_columns() { return array( 'column1', 'column2' ); } } $this->assertEquals( array ( 'select_columns' => 'SELECT * FROM `pma`.`table1` WHERE FALSE', 'select_count' => 'SELECT COUNT(*) AS `count` FROM `pma`.`table1` WHERE FALSE', 'delete' => 'DELETE FROM `pma`.`table1` WHERE FALSE' ), $this->_callProtectedFunction( '_getSearchSqls', array('table1') ) ); } /** * Test for getSearchResults */ public function testGetSearchResults(){ $this->assertEquals( '
Search results for "" :
', $this->object->getSearchResults() ); } /** * Test for _getResultsRow * @param string $each_table Tables on which search is to be performed * @param array $newsearchsqls Contains SQL queries * @param bool $odd_row For displaying contrasting table rows * @param $output * * @dataProvider providerForTestGetResultsRow */ public function testGetResultsRow($each_table, $newsearchsqls, $odd_row, $output){ if (! function_exists('PMA_DBI_fetch_value')) { function PMA_DBI_fetch_value() { return 2; } } $GLOBALS['cfg']['AjaxEnable'] = true; $this->assertEquals( $output, $this->_callProtectedFunction( '_getResultsRow', array($each_table, $newsearchsqls, $odd_row) ) ); } /** * @return array provider for testGetResultsRow */ public function providerForTestGetResultsRow(){ return array( array( 'table1', array( 'SELECT * FROM `pma`.`table1` WHERE FALSE', 'SELECT COUNT(*) AS `count` FROM `pma`.`table1` WHERE FALSE', 'select_count' => 2, 'select_columns' => 'column1', 'delete' => 'column2' ), true, '2 matches in table1BrowseDelete' ) ); } /** * Test for getSelectionForm */ public function testGetSelectionForm(){ $_SESSION[' PMA_token '] = 'token'; $_SESSION['PMA_Theme'] = new PMA_Theme(); $GLOBALS['pmaThemeImage'] = 'themes/dot.gif'; $url_params = array('param1', 'param2'); $this->assertEquals( '
Search in database
Words or values to search for (wildcard: "%"):
Find:



Inside tables:
Select All  / Unselect All
Inside column:

', $this->object->getSelectionForm($url_params) ); } /** * Test for _getResultDivs */ public function testGetResultDivs(){ $this->assertEquals( '

', $this->_callProtectedFunction( '_getResultDivs', array() ) ); } }