| Current File : /home/jvzmxxx/wiki1/extensions/Wikibase/repo/tests/phpunit/includes/ItemSearchTextGeneratorTest.php |
<?php
namespace Wikibase\Test;
use Wikibase\DataModel\Entity\Item;
use Wikibase\Repo\ItemSearchTextGenerator;
/**
* @covers Wikibase\Repo\ItemSearchTextGenerator
*
* @group Wikibase
* @group WikibaseRepo
*
* @license GPL-2.0+
* @author Katie Filbert < aude.wiki@gmail.com >
* @author Thiemo Mättig
*/
class ItemSearchTextGeneratorTest extends \PHPUnit_Framework_TestCase {
public function generateProvider() {
$item = new Item();
$item->setLabel( 'en', 'Test' );
$item->setLabel( 'de', 'Testen' );
$item->setDescription( 'en', 'city in Spain' );
$item->setAliases( 'en', array( 'abc', 'cde' ) );
$item->setAliases( 'de', array( 'xyz', 'uvw' ) );
$item->getSiteLinkList()->addNewSiteLink( 'dewiki', 'Berlin' );
$item->getSiteLinkList()->addNewSiteLink( 'enwiki', 'Rome' );
$patterns = array(
'/^Test$/',
'/^Testen$/',
'/^city in Spain$/',
'/^abc$/',
'/^cde$/',
'/^uvw$/',
'/^xyz$/',
'/^(?!abcde).*$/',
'/^Berlin$/',
'/^Rome$/'
);
return array(
array( $item, $patterns )
);
}
/**
* @dataProvider generateProvider
* @param Item $item
* @param string[] $patterns
*/
public function testGenerate( Item $item, array $patterns ) {
$generator = new ItemSearchTextGenerator();
$text = $generator->generate( $item );
foreach ( $patterns as $pattern ) {
$this->assertRegExp( $pattern . 'm', $text );
}
}
public function testGivenEmptyItem_emptyStringIsReturned() {
$generator = new ItemSearchTextGenerator();
$item = new Item();
$text = $generator->generate( $item );
$this->assertSame( '', $text );
}
public function testGivenUntrimmedPageName_generateDoesNotTrim() {
$item = new Item();
$item->getFingerprint()->setLabel( 'en', ' untrimmed label ' );
$item->getSiteLinkList()->addNewSiteLink( 'enwiki', ' untrimmed pageName ' );
$generator = new ItemSearchTextGenerator();
$text = $generator->generate( $item );
$this->assertSame( " untrimmed label \n untrimmed pageName ", $text );
}
}