Hoo man has uploaded a new change for review.
https://gerrit.wikimedia.org/r/192859
Change subject: Introduce PropertyParserFunctionIntegrationTest
......................................................................
Introduce PropertyParserFunctionIntegrationTest
A simple integration test for the property parser function,
similar to what we have for Lua (and partly reusing the test
set up we use for the Lua tests).
Change-Id: I3a0c27efede4958c863a27295286ec30eca6660f
---
A
client/tests/phpunit/includes/DataAccess/PropertyParserFunction/PropertyParserFunctionIntegrationTest.php
R
client/tests/phpunit/includes/DataAccess/WikibaseDataAccessTestItemSetUpHelper.php
M client/tests/phpunit/includes/scribunto/LuaWikibaseEntityLibraryTests.lua
M client/tests/phpunit/includes/scribunto/LuaWikibaseLibraryTests.lua
M
client/tests/phpunit/includes/scribunto/Scribunto_LuaWikibaseLibraryTestCase.php
M docs/lua.wiki
6 files changed, 110 insertions(+), 21 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/59/192859/1
diff --git
a/client/tests/phpunit/includes/DataAccess/PropertyParserFunction/PropertyParserFunctionIntegrationTest.php
b/client/tests/phpunit/includes/DataAccess/PropertyParserFunction/PropertyParserFunctionIntegrationTest.php
new file mode 100644
index 0000000..1e43cd4
--- /dev/null
+++
b/client/tests/phpunit/includes/DataAccess/PropertyParserFunction/PropertyParserFunctionIntegrationTest.php
@@ -0,0 +1,95 @@
+<?php
+
+namespace Wikibase\Client\Tests\DataAccess\PropertyParserFunction;
+
+use MediaWikiTestCase;
+use Language;
+use Parser;
+use ParserOptions;
+use Title;
+use Wikibase\Client\WikibaseClient;
+use Wikibase\Test\MockClientStore;
+use Wikibase\Client\Tests\DataAccess\WikibaseDataAccessTestItemSetUpHelper;
+
+/**
+ * Simple integration test for the {{#property:…}} parser function.
+ *
+ * @group Wikibase
+ * @group WikibaseClient
+ * @group WikibaseDataAccess
+ * @group WikibaseIntegration
+ * @group PropertyParserFunctionTest
+ * @group Database
+ *
+ * @license GNU GPL v2+
+ * @author Marius Hoch < [email protected] >
+ */
+class PropertyParserFunctionIntegrationTest extends MediaWikiTestCase {
+
+ protected function setUp() {
+ parent::setUp();
+
+ $wikibaseClient = WikibaseClient::getDefaultInstance( 'reset' );
+ $store = $wikibaseClient->getStore();
+
+ if ( ! $store instanceof MockClientStore ) {
+ $store = new MockClientStore( 'de' );
+ $wikibaseClient->overrideStore( $store );
+ }
+
+ $this->assertInstanceOf(
+ 'Wikibase\Test\MockRepository',
+ $wikibaseClient->getStore()->getEntityLookup(),
+ 'Mocking the default client EntityLookup failed'
+ );
+
+ $this->setMwGlobals( 'wgContLang', Language::factory( 'de' ) );
+
+ $setupHelper = new WikibaseDataAccessTestItemSetUpHelper(
$store );
+ $setupHelper->setUp();
+ }
+
+ protected function tearDown() {
+ parent::tearDown();
+
+ WikibaseClient::getDefaultInstance( 'reset' );
+ }
+
+ public function testPropertyParserFunction_byPropertyLabel() {
+ $result = $this->parseWikitextToHtml(
'{{#property:LuaTestStringProperty}}' );
+
+ $this->assertSame( "<p>Lua :)\n</p>", $result );
+ }
+
+ public function testPropertyParserFunction_byPropertyId() {
+ $result = $this->parseWikitextToHtml( '{{#property:P342}}' );
+
+ $this->assertSame( "<p>Lua :)\n</p>", $result );
+ }
+
+ public function testPropertyParserFunction_byNonexistent() {
+ $result = $this->parseWikitextToHtml(
'{{#property:P123456789111}}' );
+
+ $this->assertRegExp(
+
'/<p.*class=".*wikibase-error.*">.*P123456789111.*<\/p>/',
+ $result
+ );
+ }
+
+ /**
+ * @param string $wikiText
+ *
+ * @return string HTML
+ */
+ private function parseWikitextToHtml( $wikiText ) {
+ $parserConfig = array( 'class' => 'Parser' );
+ $title = Title::newFromText( 'WikibaseClientDataAccessTest' );
+ $popt = new ParserOptions();
+
+ $parser = new Parser( $parserConfig );
+ $pout = $parser->parse( $wikiText, $title, $popt,
Parser::OT_HTML );
+
+ return $pout->getText();
+ }
+
+}
diff --git
a/client/tests/phpunit/includes/scribunto/WikibaseLuaIntegrationTestItemSetUpHelper.php
b/client/tests/phpunit/includes/DataAccess/WikibaseDataAccessTestItemSetUpHelper.php
similarity index 90%
rename from
client/tests/phpunit/includes/scribunto/WikibaseLuaIntegrationTestItemSetUpHelper.php
rename to
client/tests/phpunit/includes/DataAccess/WikibaseDataAccessTestItemSetUpHelper.php
index 723b714..d1792ff 100644
---
a/client/tests/phpunit/includes/scribunto/WikibaseLuaIntegrationTestItemSetUpHelper.php
+++
b/client/tests/phpunit/includes/DataAccess/WikibaseDataAccessTestItemSetUpHelper.php
@@ -1,6 +1,6 @@
<?php
-namespace Wikibase\Client\Tests\Scribunto;
+namespace Wikibase\Client\Tests\DataAccess;
use DataValues\DataValue;
use DataValues\StringValue;
@@ -10,14 +10,12 @@
use Wikibase\DataModel\Entity\ItemId;
use Wikibase\DataModel\Entity\Property;
use Wikibase\DataModel\Entity\PropertyId;
-use Wikibase\DataModel\ReferenceList;
use Wikibase\DataModel\SiteLink;
use Wikibase\DataModel\Snak\Snak;
use Wikibase\DataModel\Snak\SnakList;
use Wikibase\DataModel\Statement\Statement;
use Wikibase\SnakFactory;
use Wikibase\Test\MockClientStore;
-use Wikibase\Test\MockRepository;
/**
* Helper class for Lua integration tests.
@@ -25,16 +23,15 @@
* @license GNU GPL v2+
* @author Marius Hoch < [email protected] >
*/
-class WikibaseLuaIntegrationTestItemSetUpHelper {
+class WikibaseDataAccessTestItemSetUpHelper {
/**
* @var MockRepository
*/
protected $mockRepository;
- public function __construct() {
- $clientStore = new MockClientStore( 'de' );
- $this->mockRepository = $clientStore->getEntityLookup();
+ public function __construct( MockClientStore $mockClientStore ) {
+ $this->mockRepository = $mockClientStore->getEntityLookup();
}
/**
@@ -43,7 +40,7 @@
public function setUp() {
$siteLink = new SiteLink(
WikibaseClient::getDefaultInstance()->getSettings()->getSetting( 'siteGlobalID'
),
- 'WikibaseClientLuaTest'
+ 'WikibaseClientDataAccessTest'
);
if ( $this->mockRepository->getEntityIdForSiteLink( $siteLink )
) {
@@ -85,7 +82,7 @@
$stringSnak2 = $this->getTestSnak(
$stringProperty->getId(),
- new StringValue( 'This is clearly superior to the
parser function' )
+ new StringValue( 'Lua is clearly superior to the parser
function' )
);
$statement2 = $this->getTestStatement( $stringSnak2 );
diff --git
a/client/tests/phpunit/includes/scribunto/LuaWikibaseEntityLibraryTests.lua
b/client/tests/phpunit/includes/scribunto/LuaWikibaseEntityLibraryTests.lua
index 707a70b..efe5b3a 100644
--- a/client/tests/phpunit/includes/scribunto/LuaWikibaseEntityLibraryTests.lua
+++ b/client/tests/phpunit/includes/scribunto/LuaWikibaseEntityLibraryTests.lua
@@ -180,7 +180,7 @@
expect = { 'Test all the code paths' }
},
{ name = 'mw.wikibase.entity.getSitelink integration 1', func =
integrationTestGetSitelink, type='ToString',
- expect = { 'WikibaseClientLuaTest' }
+ expect = { 'WikibaseClientDataAccessTest' }
},
{ name = 'mw.wikibase.entity.getSitelink integration 2', func =
integrationTestGetSitelink, type='ToString',
args = { 'fooSiteId' },
@@ -194,7 +194,7 @@
},
{ name = 'mw.wikibase.entity.formatPropertyValues integration 2', func
= integrationTestFormatPropertyValues,
args = { { mw.wikibase.entity.claimRanks.RANK_PREFERRED,
mw.wikibase.entity.claimRanks.RANK_NORMAL } },
- expect = { { label = 'LuaTestStringProperty', value = 'Lua :), This
is clearly superior to the parser function' } }
+ expect = { { label = 'LuaTestStringProperty', value = 'Lua :), Lua is
clearly superior to the parser function' } }
},
{ name = 'mw.wikibase.entity.formatPropertyValues integration 3', func
= integrationTestFormatPropertyValues,
args = { { mw.wikibase.entity.claimRanks.RANK_TRUTH } },
diff --git
a/client/tests/phpunit/includes/scribunto/LuaWikibaseLibraryTests.lua
b/client/tests/phpunit/includes/scribunto/LuaWikibaseLibraryTests.lua
index c44a5b2..aecf32d 100644
--- a/client/tests/phpunit/includes/scribunto/LuaWikibaseLibraryTests.lua
+++ b/client/tests/phpunit/includes/scribunto/LuaWikibaseLibraryTests.lua
@@ -89,7 +89,7 @@
},
{ name = 'mw.wikibase.sitelink', func = mw.wikibase.sitelink,
type='ToString',
args = { 'Q32487' },
- expect = { 'WikibaseClientLuaTest' }
+ expect = { 'WikibaseClientDataAccessTest' }
},
{ name = 'mw.wikibase.sitelink', func = mw.wikibase.sitelink,
type='ToString',
args = { 'Q32488' },
diff --git
a/client/tests/phpunit/includes/scribunto/Scribunto_LuaWikibaseLibraryTestCase.php
b/client/tests/phpunit/includes/scribunto/Scribunto_LuaWikibaseLibraryTestCase.php
index 44da189..07eb52a 100644
---
a/client/tests/phpunit/includes/scribunto/Scribunto_LuaWikibaseLibraryTestCase.php
+++
b/client/tests/phpunit/includes/scribunto/Scribunto_LuaWikibaseLibraryTestCase.php
@@ -17,6 +17,7 @@
use Language;
use Title;
use Wikibase\Client\WikibaseClient;
+use Wikibase\Client\Tests\DataAccess\WikibaseDataAccessTestItemSetUpHelper;
use Wikibase\Test\MockClientStore;
/**
@@ -69,6 +70,9 @@
'allowArbitraryDataAccess',
static::allowArbitraryDataAccess()
);
+
+ $testHelper = new WikibaseDataAccessTestItemSetUpHelper( $store
);
+ $testHelper->setUp();
}
/**
@@ -80,13 +84,6 @@
*/
public static function suite( $className ) {
self::doMock();
-
- static $setUp = false;
- if ( !$setUp ) {
- $testHelper = new
WikibaseLuaIntegrationTestItemSetUpHelper();
- $testHelper->setUp();
- $setUp = true;
- }
return parent::suite( $className );
}
@@ -123,7 +120,7 @@
* @return Title
*/
protected function getTestTitle() {
- return Title::newFromText( 'WikibaseClientLuaTest' );
+ return Title::newFromText( 'WikibaseClientDataAccessTest' );
}
}
diff --git a/docs/lua.wiki b/docs/lua.wiki
index 88f1ade..31524b0 100644
--- a/docs/lua.wiki
+++ b/docs/lua.wiki
@@ -114,7 +114,7 @@
entity:formatPropertyValues( 'P42', {
mw.wikibase.entity.claimRanks.RANK_NORMAL } )
</source>
-<code>value</code> is an empty string ('') if there's no statement with the
given property on the entity. <code>value</code> will be nil if the given
property doesn't exist.
+<code>value</code> is an empty string (<nowiki>''</nowiki>) if there's no
statement with the given property on the entity. <code>value</code> will be nil
if the given property doesn't exist.
=== mw.wikibase.entity.claimRanks ===
The <code>mw.wikibase.entity.claimRanks</code> table contains a map of all
available claim ranks.
--
To view, visit https://gerrit.wikimedia.org/r/192859
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I3a0c27efede4958c863a27295286ec30eca6660f
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Hoo man <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits