X-Git-Url: https://scripts.mit.edu/gitweb/autoinstallsdev/mediawiki.git/blobdiff_plain/8989532d3de45b196373107c7a812a68ac0ff2d9..d75ce11339b35963b5f8c3d53190819c1c025716:/maintenance/tests/SearchUpdateTest.php diff --git a/maintenance/tests/SearchUpdateTest.php b/maintenance/tests/SearchUpdateTest.php new file mode 100644 index 00000000..d21319a4 --- /dev/null +++ b/maintenance/tests/SearchUpdateTest.php @@ -0,0 +1,103 @@ +mConn = true; + $this->mOpened = true; + } + + function open( $server, $user, $password, $dbName ) { return true; } + function doQuery( $sql ) {} + function fetchObject( $res ) {} + function fetchRow( $res ) {} + function numRows( $res ) {} + function numFields( $res ) {} + function fieldName( $res, $n ) {} + function insertId() {} + function dataSeek( $res, $row ) {} + function lastErrno() { return 0; } + function lastError() { return ''; } + function affectedRows() {} + function fieldInfo( $table, $field ) {} + function strencode( $s ) {} + function getSoftwareLink() {} + function getServerVersion() {} + function getType() {} +} + +class MockSearch extends SearchEngine { + public static $id; + public static $title; + public static $text; + + public function __construct( $db ) { + } + + public function update( $id, $title, $text ) { + self::$id = $id; + self::$title = $title; + self::$text = $text; + } +} + +class SearchUpdateTest extends PHPUnit_Framework_TestCase { + + function update( $text, $title = 'Test', $id = 1 ) { + $u = new SearchUpdate( $id, $title, $text ); + $u->doUpdate(); + return array( MockSearch::$title, MockSearch::$text ); + } + + function updateText( $text ) { + list( $title, $resultText ) = $this->update( $text ); + $resultText = trim( $resultText ); // abstract from some implementation details + return $resultText; + } + + function setUp() { + global $wgSearchType, $wgDBtype, $wgLBFactoryConf, $wgDBservers; + $wgSearchType = 'MockSearch'; + $wgDBtype = 'mock'; + $wgLBFactoryConf['class'] = 'LBFactory_Simple'; + $wgDBservers = null; + LBFactory::destroyInstance(); + } + + function tearDown() { + LBFactory::destroyInstance(); + } + + function testUpdateText() { + $this->assertEquals( + 'test', + $this->updateText( '
TeSt
' ), + 'HTML stripped, text lowercased' + ); + + $this->assertEquals( + 'foo bar boz quux', + $this->updateText( << +
foo
bar + bozquux + +EOT + ), 'Stripping HTML tables' ); + + $this->assertEquals( + 'a b', + $this->updateText( 'a > b' ), + 'Handle unclosed tags' + ); + + $text = str_pad( "foo assertNotEquals( + '', + $this->updateText( $text ), + 'Bug 18609' + ); + } +}