setMwGlobals( 'wgSearchType', 'MockSearch' ); } 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( , $resultText ) = $this->update( $text ); $resultText = trim( $resultText ); // abstract from some implementation details return $resultText; } 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' ); } function testBug32712() { $text = "text „http://example.com“ text"; $result = $this->updateText( $text ); $processed = preg_replace( '/Q/u', 'Q', $result ); $this->assertTrue( $processed != '', 'Link surrounded by unicode quotes should not fail UTF-8 validation' ); } }