_object = $this->getMock( 'PMA_TableSearch', array('_loadTableInfo'), array(), '', false ); $reflection = new \ReflectionClass('PMA_TableSearch'); // set database, table names $attrDb = $reflection->getProperty('_db'); $attrDb->setAccessible(true); $attrDb->setValue($this->_object, 'dbName'); $attrTable = $reflection->getProperty('_table'); $attrTable->setAccessible(true); $attrTable->setValue($this->_object, 'tableName'); // set column names list $attrColNames = $reflection->getProperty('_columnNames'); $attrColNames->setAccessible(true); $columnNames = array('column1'); $attrColNames->setValue($this->_object, $columnNames); } /** * Tests getReplacePreview() method * * @return void * @group medium */ public function testGetReplacePreview() { //mock DBI $dbi = $this->getMockBuilder('PMA_DatabaseInterface') ->disableOriginalConstructor() ->getMock(); $find = 'findValue'; $replaceWith = 'replaceWithValue'; $useRegex = false; $charSet = 'charSetValue'; // set expectations $dbi->expects($this->once()) ->method('fetchResult') ->will( $this->returnValue( array( array('val1', 'replace1', 5), array('va<2', 'replac<2', 1) ) ) ); $GLOBALS['dbi'] = $dbi; $ret = $this->_object->getReplacePreview( 0, $find, $replaceWith, $useRegex, $charSet ); // assert whether hidden values are properly set $this->assertContains( '', $ret ); $this->assertContains( '', $ret ); $this->assertContains( '', $ret ); $this->assertContains( '', $ret ); // assert values displayed in the preview and escaping $this->assertContains( '5val1replace1', $ret ); $this->assertContains( '1va<2replac<2', $ret ); } /** * Tests replace() method * * @return void */ public function testReplace() { //mock DBI $dbi = $this->getMockBuilder('PMA_DatabaseInterface') ->disableOriginalConstructor() ->getMock(); $find = 'findValue'; $replaceWith = 'replaceWithValue'; $useRegex = false; $charSet = 'charSetValue'; $expectedQuery = "UPDATE `dbName`.`tableName`" . " SET `column1` = REPLACE(`column1`, '" . $find . "', '" . $replaceWith . "') WHERE `column1` LIKE '%" . $find . "%' COLLATE " . $charSet . "_bin"; // set expectations $dbi->expects($this->once()) ->method('query') ->with($expectedQuery); $GLOBALS['dbi'] = $dbi; $this->_object->replace(0, $find, $replaceWith, $useRegex, $charSet); } } ?>