Paladox has uploaded a new change for review.
https://gerrit.wikimedia.org/r/268181
Change subject: Test
......................................................................
Test
Change-Id: I8442ad7a466ee5f710ccc37070eb5673dd5dfcaa
---
M WikibaseClient.settings.php
M WikibaseRepo.settings.php
M composer.lock
M extensions/Wikibase/client/WikibaseClient.i18n.magic.php
M extensions/Wikibase/client/i18n/en.json
M extensions/Wikibase/client/includes/api/PageTerms.php
M
extensions/Wikibase/client/tests/phpunit/includes/DataAccess/WikibaseDataAccessTestItemSetUpHelper.php
M extensions/Wikibase/lib/includes/LanguageFallbackChain.php
M extensions/Wikibase/lib/includes/serializers/DescriptionSerializer.php
M extensions/Wikibase/lib/includes/serializers/MultilingualSerializer.php
M extensions/Wikibase/lib/includes/serializers/SerializationOptions.php
M extensions/Wikibase/lib/includes/store/sql/TermSqlIndex.php
M extensions/Wikibase/lib/tests/phpunit/LanguageFallbackChainTest.php
M extensions/Wikibase/lib/tests/phpunit/changes/EntityChangeFactoryTest.php
M extensions/Wikibase/repo/Wikibase.hooks.php
M extensions/Wikibase/repo/i18n/ar.json
M extensions/Wikibase/repo/i18n/de.json
M extensions/Wikibase/repo/i18n/en.json
M extensions/Wikibase/repo/i18n/pt.json
D extensions/Wikibase/repo/includes/EntitySearchTextGenerator.php
A extensions/Wikibase/repo/includes/FingerprintSearchTextGenerator.php
M extensions/Wikibase/repo/includes/ItemSearchTextGenerator.php
M extensions/Wikibase/repo/includes/LabelDescriptionDuplicateDetector.php
M extensions/Wikibase/repo/includes/WikibaseRepo.php
M extensions/Wikibase/repo/includes/api/MergeItems.php
M extensions/Wikibase/repo/includes/content/EntityContent.php
M extensions/Wikibase/repo/includes/content/ItemContent.php
M extensions/Wikibase/repo/includes/store/sql/SqlIdGenerator.php
M extensions/Wikibase/repo/includes/store/sql/SqlStore.php
M
extensions/Wikibase/repo/tests/phpunit/includes/ChangeOp/ChangeOpQualifierTest.php
M
extensions/Wikibase/repo/tests/phpunit/includes/ChangeOp/ChangeOpReferenceTest.php
M
extensions/Wikibase/repo/tests/phpunit/includes/EntityParserOutputGeneratorTest.php
D
extensions/Wikibase/repo/tests/phpunit/includes/EntitySearchTextGeneratorTest.php
A
extensions/Wikibase/repo/tests/phpunit/includes/FingerprintSearchTextGeneratorTest.php
M
extensions/Wikibase/repo/tests/phpunit/includes/ItemSearchTextGeneratorTest.php
M
extensions/Wikibase/repo/tests/phpunit/includes/ParserOutputJsConfigBuilderTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/api/ApiXmlFormatTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/api/GetClaimsTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/api/RemoveClaimsTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/api/RemoveQualifiersTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/api/RemoveReferencesTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/api/ResultBuilderTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/api/SetClaimTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/api/SetClaimValueTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/api/SetQualifierTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/api/SetReferenceTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/content/ItemContentTest.php
M
extensions/Wikibase/repo/tests/phpunit/includes/store/sql/SqlIdGeneratorTest.php
M
extensions/Wikibase/repo/tests/phpunit/includes/store/sql/TermSearchKeyBuilderTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/store/sql/TermSqlIndexTest.php
M
extensions/Wikibase/repo/tests/phpunit/includes/store/sql/WikiPageEntityStoreTest.php
M extensions/Wikibase/view/src/Module/TemplateModule.php
M extensions/Wikibase/view/src/Template/TemplateFactory.php
M extensions/Wikibase/view/src/Template/TemplateRegistry.php
M extensions/Wikibase/view/tests/phpunit/ClaimHtmlGeneratorTest.php
M extensions/Wikibase/view/tests/phpunit/ClaimsViewTest.php
M extensions/Wikibase/view/tests/phpunit/EntityTermsViewTest.php
M extensions/Wikibase/view/tests/phpunit/EntityViewFactoryTest.php
M extensions/Wikibase/view/tests/phpunit/EntityViewPlaceholderExpanderTest.php
M extensions/Wikibase/view/tests/phpunit/ItemViewTest.php
M extensions/Wikibase/view/tests/phpunit/PropertyViewTest.php
M extensions/Wikibase/view/tests/phpunit/SiteLinksViewTest.php
M extensions/Wikibase/view/tests/phpunit/SnakHtmlGeneratorTest.php
M extensions/Wikibase/view/tests/phpunit/ToolbarEditSectionGeneratorTest.php
M vendor/autoload.php
M vendor/composer/autoload_classmap.php
M vendor/composer/autoload_real.php
M vendor/composer/installed.json
68 files changed, 380 insertions(+), 439 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikidata
refs/changes/81/268181/1
diff --git a/WikibaseClient.settings.php b/WikibaseClient.settings.php
index 46989f8..11dc45b 100644
--- a/WikibaseClient.settings.php
+++ b/WikibaseClient.settings.php
@@ -1,2 +1,2 @@
<?php
-$wgWBClientSettings["sharedCacheKeyPrefix"] = "wikibase:WBL/1428401103";
\ No newline at end of file
+$wgWBClientSettings["sharedCacheKeyPrefix"] = "wikibase:WBL/1428487270";
\ No newline at end of file
diff --git a/WikibaseRepo.settings.php b/WikibaseRepo.settings.php
index 304aae9..03077ec 100644
--- a/WikibaseRepo.settings.php
+++ b/WikibaseRepo.settings.php
@@ -1,2 +1,2 @@
<?php
-$wgWBRepoSettings["sharedCacheKeyPrefix"] = "wikibase:WBL/1428401103";
\ No newline at end of file
+$wgWBRepoSettings["sharedCacheKeyPrefix"] = "wikibase:WBL/1428487270";
\ No newline at end of file
diff --git a/composer.lock b/composer.lock
index 99296e8..31d8b3b 100644
--- a/composer.lock
+++ b/composer.lock
@@ -1209,12 +1209,12 @@
"source": {
"type": "git",
"url":
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git",
- "reference": "86f87316c8f8c0ea438839f98aabd0345b23be4f"
+ "reference": "8d21687a97a5636b0b2522302343ada7f16088dc"
},
"dist": {
"type": "zip",
- "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/86f87316c8f8c0ea438839f98aabd0345b23be4f",
- "reference": "86f87316c8f8c0ea438839f98aabd0345b23be4f",
+ "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/8d21687a97a5636b0b2522302343ada7f16088dc",
+ "reference": "8d21687a97a5636b0b2522302343ada7f16088dc",
"shasum": ""
},
"require": {
@@ -1282,7 +1282,7 @@
"wikibaserepo",
"wikidata"
],
- "time": "2015-04-07 09:45:04"
+ "time": "2015-04-07 20:21:37"
},
{
"name": "wikibase/wikimedia-badges",
diff --git a/extensions/Wikibase/client/WikibaseClient.i18n.magic.php
b/extensions/Wikibase/client/WikibaseClient.i18n.magic.php
index 83f72ff..3c45198 100644
--- a/extensions/Wikibase/client/WikibaseClient.i18n.magic.php
+++ b/extensions/Wikibase/client/WikibaseClient.i18n.magic.php
@@ -78,6 +78,11 @@
'property' => array( 0, 'propriété' ),
);
+/** Western Frisian (Frysk) */
+$magicWords['fy'] = array(
+ 'property' => array( 0, 'eigenskip' ),
+);
+
/** Hindi (हिन्दी) */
$magicWords['hi'] = array(
'noexternallanglinks' => array( 0, 'कोई_अंतरविकी_कड़ियाँ_नहीं',
'कोई_अंतरविकि_कड़ियाँ_नहीं' ),
diff --git a/extensions/Wikibase/client/i18n/en.json
b/extensions/Wikibase/client/i18n/en.json
index 5b222e6..33f1ba7 100644
--- a/extensions/Wikibase/client/i18n/en.json
+++ b/extensions/Wikibase/client/i18n/en.json
@@ -14,7 +14,7 @@
"apihelp-query+pageterms-description": "Get terms associated with a
page via an associated data item.",
"apihelp-query+pageterms-example-simple": "Get all terms associated
with the page 'London', in the user language.",
"apihelp-query+pageterms-example-label-en": "Get labels and aliases
associated with the page 'London', in English.",
- "apihelp-query+pageterms-param-terms": "The kinds of terms to get, e.g.
'label', 'description', or 'alias'.",
+ "apihelp-query+pageterms-param-terms": "The types of terms to get, e.g.
'description'. If not specified, all types are returned.",
"apihelp-query+wikibase-description": "Get information about the
associated Wikibase repository.",
"apihelp-query+wikibase-example": "Get URL path and other information
for the Wikibase repository.",
"apihelp-query+wikibase-param-prop": "Which properties to
get:\n;<kbd>url</kbd>: Base URL, script path and article path.",
diff --git a/extensions/Wikibase/client/includes/api/PageTerms.php
b/extensions/Wikibase/client/includes/api/PageTerms.php
index d8f7c5b..2ad55eb 100644
--- a/extensions/Wikibase/client/includes/api/PageTerms.php
+++ b/extensions/Wikibase/client/includes/api/PageTerms.php
@@ -239,6 +239,8 @@
ApiBase::PARAM_TYPE => 'integer',
),
'terms' => array(
+ // XXX Ought to get this list from
Wikibase\Term, its setType() also hardcodes it.
+ ApiBase::PARAM_TYPE => array( Term::TYPE_ALIAS,
Term::TYPE_DESCRIPTION, Term::TYPE_LABEL ),
ApiBase::PARAM_ISMULTI => true,
ApiBase::PARAM_HELP_MSG =>
'apihelp-query+pageterms-param-terms',
),
diff --git
a/extensions/Wikibase/client/tests/phpunit/includes/DataAccess/WikibaseDataAccessTestItemSetUpHelper.php
b/extensions/Wikibase/client/tests/phpunit/includes/DataAccess/WikibaseDataAccessTestItemSetUpHelper.php
index d1792ff..69cc56b 100644
---
a/extensions/Wikibase/client/tests/phpunit/includes/DataAccess/WikibaseDataAccessTestItemSetUpHelper.php
+++
b/extensions/Wikibase/client/tests/phpunit/includes/DataAccess/WikibaseDataAccessTestItemSetUpHelper.php
@@ -11,9 +11,11 @@
use Wikibase\DataModel\Entity\Property;
use Wikibase\DataModel\Entity\PropertyId;
use Wikibase\DataModel\SiteLink;
+use Wikibase\DataModel\SiteLinkList;
use Wikibase\DataModel\Snak\Snak;
use Wikibase\DataModel\Snak\SnakList;
use Wikibase\DataModel\Statement\Statement;
+use Wikibase\DataModel\Statement\StatementList;
use Wikibase\SnakFactory;
use Wikibase\Test\MockClientStore;
@@ -127,25 +129,21 @@
/**
* @param ItemId $id
* @param string[] $labels
- * @param Claim[]|null $claims
+ * @param Statement[]|null $statements
* @param SiteLink[]|null $siteLinks
*
* @return Item
*/
- private function createTestItem( ItemId $id, array $labels, array
$claims = null, array $siteLinks = null ) {
+ private function createTestItem( ItemId $id, array $labels, array
$statements = null, array $siteLinks = null ) {
$item = new Item( $id );
$item->setLabels( $labels );
- if ( is_array( $siteLinks ) ) {
- foreach( $siteLinks as $siteLink ) {
- $item->addSiteLink( $siteLink );
- }
+ if ( $statements !== null ) {
+ $item->setStatements( new StatementList( $statements )
);
}
- if ( is_array( $claims ) ) {
- foreach( $claims as $claim ) {
- $item->addClaim( $claim );
- }
+ if ( $siteLinks !== null ) {
+ $item->setSiteLinkList( new SiteLinkList( $siteLinks )
);
}
$this->mockRepository->putEntity( $item );
diff --git a/extensions/Wikibase/lib/includes/LanguageFallbackChain.php
b/extensions/Wikibase/lib/includes/LanguageFallbackChain.php
index 1736535..f6d2090 100644
--- a/extensions/Wikibase/lib/includes/LanguageFallbackChain.php
+++ b/extensions/Wikibase/lib/includes/LanguageFallbackChain.php
@@ -68,6 +68,10 @@
* ), or null when no "acceptable" data can be found.
*/
public function extractPreferredValue( array $data ) {
+ if ( empty( $data ) ) {
+ return null;
+ }
+
foreach ( $this->chain as $languageWithConversion ) {
$languageCode =
$languageWithConversion->getFetchLanguageCode();
diff --git
a/extensions/Wikibase/lib/includes/serializers/DescriptionSerializer.php
b/extensions/Wikibase/lib/includes/serializers/DescriptionSerializer.php
index 73ad9c1..fb2e6e2 100644
--- a/extensions/Wikibase/lib/includes/serializers/DescriptionSerializer.php
+++ b/extensions/Wikibase/lib/includes/serializers/DescriptionSerializer.php
@@ -79,7 +79,7 @@
* @return array
* @throws InvalidArgumentException
*/
- final public function getSerializedMultilingualValues( $descriptions ) {
+ final public function getSerializedMultilingualValues( array
$descriptions ) {
$descriptions =
$this->multilingualSerializer->filterPreferredMultilingualValues( $descriptions
);
return $this->getSerialized( $descriptions );
}
diff --git
a/extensions/Wikibase/lib/includes/serializers/MultilingualSerializer.php
b/extensions/Wikibase/lib/includes/serializers/MultilingualSerializer.php
index 6a885bc..1152d92 100644
--- a/extensions/Wikibase/lib/includes/serializers/MultilingualSerializer.php
+++ b/extensions/Wikibase/lib/includes/serializers/MultilingualSerializer.php
@@ -2,8 +2,6 @@
namespace Wikibase\Lib\Serializers;
-use Wikibase\LanguageFallbackChain;
-
/**
* Multilingual serializer, for serializer of labels and descriptions.
*
@@ -36,9 +34,9 @@
*
* @since 0.4
*
- * @param array $data
+ * @param string[]|array[] $data
*
- * @return array
+ * @return array[]
*/
public function serializeMultilingualValues( array $data ) {
$values = array();
@@ -78,23 +76,22 @@
*
* @param array $allData
*
- * @return array
+ * @return array[]
*/
public function filterPreferredMultilingualValues( array $allData ) {
- $values = array();
-
$languageFallbackChains =
$this->options->getLanguageFallbackChains();
- if ( $languageFallbackChains ) {
- /** @var LanguageFallbackChain[]
$languageFallbackChains */
- foreach ( $languageFallbackChains as $languageCode =>
$languageFallbackChain ) {
- $data =
$languageFallbackChain->extractPreferredValue( $allData );
- if ( $data !== null ) {
- $values[$languageCode] = $data;
- }
+ if ( $languageFallbackChains === null || empty( $allData ) ) {
+ return $allData;
+ }
+
+ $values = array();
+
+ foreach ( $languageFallbackChains as $languageCode =>
$languageFallbackChain ) {
+ $data = $languageFallbackChain->extractPreferredValue(
$allData );
+ if ( $data !== null ) {
+ $values[$languageCode] = $data;
}
- } else {
- $values = $allData;
}
return $values;
diff --git
a/extensions/Wikibase/lib/includes/serializers/SerializationOptions.php
b/extensions/Wikibase/lib/includes/serializers/SerializationOptions.php
index 2fbbad6..56feb36 100644
--- a/extensions/Wikibase/lib/includes/serializers/SerializationOptions.php
+++ b/extensions/Wikibase/lib/includes/serializers/SerializationOptions.php
@@ -4,6 +4,7 @@
use InvalidArgumentException;
use RuntimeException;
+use Wikibase\LanguageFallbackChain;
use Wikibase\LanguageFallbackChainFactory;
/**
@@ -350,8 +351,9 @@
*
* @since 0.2
*
- * @param array|null $languages array of strings (back compat, as
language codes)
- * or LanguageFallbackChain objects (requested
language codes as keys, to identify chains)
+ * @param LanguageFallbackChain[]|string[]|null $languages An array of
LanguageFallbackChain
+ * objects (requested language codes as keys, to identify chains) or an
array of language codes
+ * (for backwards compatibility).
*/
public function setLanguages( array $languages = null ) {
if ( $languages === null ) {
@@ -381,7 +383,7 @@
*
* @since 0.2
*
- * @return array|null
+ * @return string[]|null
*/
public function getLanguages() {
$languages = $this->getLanguageFallbackChains();
@@ -398,7 +400,7 @@
*
* @since 0.4
*
- * @return array|null
+ * @return LanguageFallbackChain[]|null
*/
public function getLanguageFallbackChains() {
return $this->getOption( self::OPT_LANGUAGES );
@@ -432,4 +434,5 @@
public function setLanguageFallbackChainFactory(
LanguageFallbackChainFactory $factory ) {
$this->setOption( self::OPT_LANGUAGE_FALLBACK_CHAIN_FACTORY,
$factory );
}
+
}
diff --git a/extensions/Wikibase/lib/includes/store/sql/TermSqlIndex.php
b/extensions/Wikibase/lib/includes/store/sql/TermSqlIndex.php
index 535d2ec..d9a1286 100644
--- a/extensions/Wikibase/lib/includes/store/sql/TermSqlIndex.php
+++ b/extensions/Wikibase/lib/includes/store/sql/TermSqlIndex.php
@@ -312,7 +312,7 @@
*
* @param Term $term
*
- * @return array
+ * @return string[]
*/
private function getTermFields( Term $term ) {
$fields = array(
@@ -321,7 +321,7 @@
'term_text' => $term->getText(),
);
- if ( !Settings::get( 'withoutTermSearchKey' ) ) {
+ if ( $this->supportsSearchKeys() ) {
$fields['term_search_key'] = $this->getSearchKey(
$term->getText(), $term->getLanguage() );
}
@@ -561,9 +561,7 @@
$selectionFields = array( 'term_entity_id' );
- // TODO instead of a DB query, get a setting. Should save on a
few Database round trips.
$hasWeight = $this->supportsWeight();
-
if ( $hasWeight ) {
$selectionFields[] = 'term_weight';
}
@@ -686,35 +684,31 @@
$text = $term->getText();
if ( $text !== null ) {
- if ( $options['caseSensitive']
- || Settings::get( 'withoutTermSearchKey' ) ) {
- //NOTE: whether this match is *actually* case
sensitive depends on the collation used in the database.
- $textField = 'term_text';
- }
- else {
+ // NOTE: Whether this match is *actually* case
sensitive depends on the collation
+ // used in the database.
+ $textField = 'term_text';
+
+ if ( !$options['caseSensitive'] &&
$this->supportsSearchKeys() ) {
$textField = 'term_search_key';
$text = $this->getSearchKey( $term->getText(),
$term->getLanguage() );
}
if ( $options['prefixSearch'] ) {
$conditions[] = $textField . $db->buildLike(
$text, $db->anyString() );
- }
- else {
+ } else {
$conditions[$textField] = $text;
}
}
if ( $term->getType() !== null ) {
$conditions['term_type'] = $term->getType();
- }
- elseif ( $termType !== null ) {
+ } elseif ( $termType !== null ) {
$conditions['term_type'] = $termType;
}
if ( $term->getEntityType() !== null ) {
$conditions['term_entity_type'] =
$term->getEntityType();
- }
- elseif ( $entityType !== null ) {
+ } elseif ( $entityType !== null ) {
$conditions['term_entity_type'] = $entityType;
}
@@ -973,7 +967,14 @@
}
/**
- * @return mixed
+ * @return bool
+ */
+ public function supportsSearchKeys() {
+ return !Settings::get( 'withoutTermSearchKey' );
+ }
+
+ /**
+ * @return bool
*/
public function supportsWeight() {
return !Settings::get( 'withoutTermWeight' );
diff --git
a/extensions/Wikibase/lib/tests/phpunit/LanguageFallbackChainTest.php
b/extensions/Wikibase/lib/tests/phpunit/LanguageFallbackChainTest.php
index a8cea58..eced4e8 100644
--- a/extensions/Wikibase/lib/tests/phpunit/LanguageFallbackChainTest.php
+++ b/extensions/Wikibase/lib/tests/phpunit/LanguageFallbackChainTest.php
@@ -172,6 +172,7 @@
'language' => 'en',
'source' => null,
) ),
+
array( 'fr',
LanguageFallbackChainFactory::FALLBACK_SELF, array(
'kk' => 'baz',
), array(
@@ -190,6 +191,7 @@
array( 'sr',
LanguageFallbackChainFactory::FALLBACK_SELF, array(
':' => 'qux',
), null ),
+ array( 'en',
LanguageFallbackChainFactory::FALLBACK_ALL, array(), null ),
array( 'ar',
LanguageFallbackChainFactory::FALLBACK_SELF, array(), null ),
array( 'de',
LanguageFallbackChainFactory::FALLBACK_SELF, $entityInfoBuilderArray, array(
diff --git
a/extensions/Wikibase/lib/tests/phpunit/changes/EntityChangeFactoryTest.php
b/extensions/Wikibase/lib/tests/phpunit/changes/EntityChangeFactoryTest.php
index 8bc8f3e..9a9f266 100644
--- a/extensions/Wikibase/lib/tests/phpunit/changes/EntityChangeFactoryTest.php
+++ b/extensions/Wikibase/lib/tests/phpunit/changes/EntityChangeFactoryTest.php
@@ -14,7 +14,7 @@
use Wikibase\Lib\Changes\EntityChangeFactory;
/**
- * @covers Wikibase\Lib\EntityChangeFactory
+ * @covers Wikibase\Lib\Changes\EntityChangeFactory
*
* @since 0.5
*
diff --git a/extensions/Wikibase/repo/Wikibase.hooks.php
b/extensions/Wikibase/repo/Wikibase.hooks.php
index 419a5e4..d64b774 100644
--- a/extensions/Wikibase/repo/Wikibase.hooks.php
+++ b/extensions/Wikibase/repo/Wikibase.hooks.php
@@ -33,7 +33,6 @@
use Wikibase\Repo\WikibaseRepo;
use Wikibase\View\EntityViewPlaceholderExpander;
use Wikibase\View\Template\TemplateFactory;
-use Wikibase\View\Template\TemplateRegistry;
use Wikibase\View\TextInjector;
use WikiPage;
@@ -945,10 +944,11 @@
if ( !empty( $placeholders ) ) {
$injector = new TextInjector( $placeholders );
+ $templateFactory =
TemplateFactory::getDefaultInstance();
$userLanguageLookup = new BabelUserLanguageLookup();
$termsLanguages =
WikibaseRepo::getDefaultInstance()->getTermsLanguages();
$expander = new EntityViewPlaceholderExpander(
- new TemplateFactory(
TemplateRegistry::getDefaultInstance() ),
+ $templateFactory,
$out->getTitle(),
$out->getUser(),
$out->getLanguage(),
diff --git a/extensions/Wikibase/repo/i18n/ar.json
b/extensions/Wikibase/repo/i18n/ar.json
index efee2a9..6e973f1 100644
--- a/extensions/Wikibase/repo/i18n/ar.json
+++ b/extensions/Wikibase/repo/i18n/ar.json
@@ -15,7 +15,8 @@
"أحمد المحمودي",
"Abanima",
"Sonic N800",
- "Bibas"
+ "Bibas",
+ "Yahya Sakhnini"
]
},
"wikibase-entity-item": "عنصر",
@@ -28,10 +29,10 @@
"wikibase-addreference": "إضافة مصدر",
"wikibase-save-inprogress": "يحفظ...",
"wikibase-remove-inprogress": "يزيل...",
- "wikibase-label-empty": "لم يتم تعريف أي وسوم بعد",
+ "wikibase-label-empty": "لم يتم تعريف أي وسوم",
"wikibase-label-edit-placeholder": "أدخل تعريفاً",
"wikibase-label-edit-placeholder-language-aware": "أدخل التعريف بـ$1",
- "wikibase-description-empty": "لم يتم توفير وصف بعد",
+ "wikibase-description-empty": "لم يتم توفير وصف",
"wikibase-description-edit-placeholder": "أدخل وصفاً",
"wikibase-description-edit-placeholder-language-aware": "أدخل وصفاً
بـ$1",
"wikibase-diffview-reference": "مرجع",
diff --git a/extensions/Wikibase/repo/i18n/de.json
b/extensions/Wikibase/repo/i18n/de.json
index 4675095..1085db9 100644
--- a/extensions/Wikibase/repo/i18n/de.json
+++ b/extensions/Wikibase/repo/i18n/de.json
@@ -385,7 +385,7 @@
"wikibase-listdatatypes-string-head": "Zeichenkette",
"wikibase-listdatatypes-string-body": "Literales Datenfeld für eine
Glyphenkette. Typische Verwendung sind Kennungen mit geschriebenen Formen, die
nicht von der Sprache des Lesers abhängig sind.\n* value – ausdrücklicher Wert
für die sprachspezifische Variantenkette",
"wikibase-listdatatypes-time-head": "Zeit",
- "wikibase-listdatatypes-time-body": "Literales Datenfeld für einen
Zeitwert, angegeben als Zeit mit Genauigkeit und Begrenzungen. Die Zeit wird
immer intern als gregorianisch gespeichert, kann jedoch andere Formate beim
Parsen und Formatieren benutzen (?).\n* time – ausdrücklicher Wert für einen
Zeitpunkt; dargestellt, wie in der Norm ISO8601 beschrieben. Das Jahr hat immer
11 Ziffern und das Datum ist immer vorzeichenbehaftet im Format
+00000002013-01-01T00:00:00Z.\n* timezone – ausdrücklicher Wert als
vorzeichenbehaftete Ganzzahl. Die Zeitzoneninformationen wird als Unterschied
zur UTC in Minuten angegeben.\n* before – ausdrücklicher Ganzzahlwert für eine
Anzahl an Einheiten nach der angegebenen Zeit. Die Einheit ist als
\"precision\" (siehe unten) angegeben.\n* after – ausdrücklicher Ganzzahlwert
für eine Anzahl an Einheiten vor der angegebenen Zeit. Die Einheit ist als
\"precision\" (siehe unten) angegeben.\n* precision – ausdrücklicher Wert,
kodiert als kurze Ganzzahl mit folgender Bedeutung: 0: Milliarden Jahre; 1:
Hundert Millionen Jahre … 6: Jahrtausende; 7: Jahrhunderte; 8: Jahrzehnte; 9:
Jahre; 10: Monate; 11: Tage; 12: Stundee; 13: Minuten; 14: Sekunden.\n*
calendarmodel – ausdrücklicher Wert, angegeben als URI. Er identifiziert das
Kalendermodell, das zur Anzeige dieses Zeitwertes verwendet werden soll.",
+ "wikibase-listdatatypes-time-body": "Literales Datenfeld für einen
Zeitwert, angegeben als Zeit mit Genauigkeit und Begrenzungen. Die Zeit wird
immer intern als gregorianisch gespeichert, kann jedoch andere Formate beim
Parsen und Formatieren benutzen.\n* time – ausdrücklicher Wert für einen
Zeitpunkt; dargestellt als Zeitstempel ähnlich ISO 8601, z. B.
+2013-01-01T00:00:00Z. Das Jahr ist immer vorzeichenbehaftet und muss mit einer
bis 16 Ziffern aufgefüllt werden.\n* timezone – ausdrücklicher Wert als
vorzeichenbehaftete Ganzzahl. Die Zeitzoneninformationen werden als Unterschied
zur UTC in Minuten angegeben.\n* before – ausdrücklicher Ganzzahlwert für eine
Anzahl an Einheiten nach der angegebenen Zeit. Die Einheit ist als „precision“
(siehe unten) angegeben.\n* after – ausdrücklicher Ganzzahlwert für eine Anzahl
an Einheiten vor der angegebenen Zeit. Die Einheit ist als „precision“ (siehe
unten) angegeben.\n* precision – ausdrücklicher Wert, kodiert als kurze
Ganzzahl mit folgender Bedeutung: 0: Milliarden Jahre; 1: Hundert Millionen
Jahre … 6: Jahrtausende; 7: Jahrhunderte; 8: Jahrzehnte; 9: Jahre; 10: Monate;
11: Tage; 12: Stunden; 13: Minuten; 14: Sekunden.\n* calendarmodel –
ausdrücklicher Wert, angegeben als URI. Er identifiziert das Kalendermodell,
das zur Anzeige dieses Zeitwertes verwendet werden soll.",
"wikibase-listdatatypes-url-head": "URL",
"wikibase-listdatatypes-url-body": "Literales Datenfeld für eine URL.
URLs sind auf die Protokolle beschränkt, die auch für externe Links im Wikitext
unterstützt werden.",
"wikibase-concept-uri": "Konzept-URI",
diff --git a/extensions/Wikibase/repo/i18n/en.json
b/extensions/Wikibase/repo/i18n/en.json
index b4299e2..71e8bd6 100644
--- a/extensions/Wikibase/repo/i18n/en.json
+++ b/extensions/Wikibase/repo/i18n/en.json
@@ -422,7 +422,7 @@
"wikibase-listdatatypes-string-head": "String",
"wikibase-listdatatypes-string-body": "Literal data field for a string
of glyphs. Typical use are identifiers that have written forms which do not
depend on the language of the reader.\n* value – explicit value for the
language specific variant string",
"wikibase-listdatatypes-time-head": "Time",
- "wikibase-listdatatypes-time-body": "Literal data field for a time
value. Given as a time with some precision and boundaries. The time is always
saved internally in the Proleptic Gregorian format, but can use other formats
during parsing and formatting.(?)\n* time – explicit value for point in time,
represented per ISO8601, the year always having 11 digits and the date always
being signed, in the format +00000002013-01-01T00:00:00Z\n* timezone – explicit
value as a signed integer. Timezone information as an offset from UTC in
minutes.\n* before – explicit integer value for how many units after the given
time it could be. The unit is given by the precision.\n* after – explicit
integer value for how many units before the given time it could be. The unit is
given by the precision.\n* precision – explicit value encoded in a shortint.
The numbers have the following meaning: 0 - billion years, 1 - hundred million
years, ..., 6 - millennium, 7 - century, 8 - decade, 9 - year, 10 - month, 11 -
day, 12 - hour, 13 - minute, 14 - second.\n* calendarmodel – explicit value
given as a URI. It will identify the calendar model that should be used to
display this time value.",
+ "wikibase-listdatatypes-time-body": "Literal data field for a time
value. Given as a time with some precision and boundaries. The time is always
saved internally in the Proleptic Gregorian format, but can use other formats
during parsing and formatting.\n* time – explicit value for point in time,
represented as a timestamp resembling ISO 8601, e.g. +2013-01-01T00:00:00Z. The
year is always signed and padded to have between 1 and 16 digits.\n* timezone –
explicit value as a signed integer. Timezone information as an offset from UTC
in minutes.\n* before – explicit integer value for how many units after the
given time it could be. The unit is given by the precision.\n* after – explicit
integer value for how many units before the given time it could be. The unit is
given by the precision.\n* precision – explicit value encoded in a shortint.
The numbers have the following meaning: 0 - billion years, 1 - hundred million
years, ..., 6 - millennium, 7 - century, 8 - decade, 9 - year, 10 - month, 11 -
day, 12 - hour, 13 - minute, 14 - second.\n* calendarmodel – explicit value
given as a URI. It will identify the calendar model that should be used to
display this time value.",
"wikibase-listdatatypes-url-head": "URL",
"wikibase-listdatatypes-url-body": "Literal data field for a URL. URLs
are restricted to the protocols also supported for external links in wikitext.",
"wikibase-concept-uri": "Concept URI",
diff --git a/extensions/Wikibase/repo/i18n/pt.json
b/extensions/Wikibase/repo/i18n/pt.json
index 8794aa5..39cb388 100644
--- a/extensions/Wikibase/repo/i18n/pt.json
+++ b/extensions/Wikibase/repo/i18n/pt.json
@@ -34,10 +34,10 @@
"wikibase-entitytermsforlanguagelistview-description": "Descrição",
"wikibase-entitytermsforlanguagelistview-label": "Rótulo",
"wikibase-entitytermsforlanguagelistview-language": "Idioma",
- "wikibase-label-empty": "Nenhum rótulo definido ainda.",
+ "wikibase-label-empty": "Nenhum rótulo definido",
"wikibase-label-edit-placeholder": "introduza um rótulo",
"wikibase-label-edit-placeholder-language-aware": "introduza um rótulo
em $1",
- "wikibase-description-empty": "Nenhuma descrição definida ainda.",
+ "wikibase-description-empty": "Nenhuma descrição definida",
"wikibase-description-edit-placeholder": "introduza uma descrição",
"wikibase-description-edit-placeholder-language-aware": "introduza uma
descrição em $1",
"wikibase-diffview-reference": "referência",
@@ -60,7 +60,7 @@
"wikibase-statements": "Declarações",
"wikibase-terms": "Noutras línguas",
"wikibase-sitelinkgroupview-input-help-message": "Adicione uma ligação
de sítio, especificando um sítio e uma respetiva página, edite ou remova
ligações de sítio existentes.",
- "wikibase-sitelinks-empty": "Nenhuma página está ligada a este item
ainda.",
+ "wikibase-sitelinks-empty": "Nenhuma página está ligada a este item.",
"wikibase-sitelinks-input-help-message": "Defina uma ligação para uma
página relacionada com este item.",
"wikibase-sitelinks-special": "Outros sítios",
"wikibase-badgeselector-badge-placeholder-title": "Clique para atribuir
um emblema.",
@@ -169,7 +169,7 @@
"wikibase-setaliases-warning-remove": "Deseja remover todos os nomes
alternativos para [[$1]]?",
"special-setlabeldescriptionaliases": "Definir rótulo, descrição e
nomes alternativos",
"wikibase-setlabeldescriptionaliases-introfull": "Está a definir o
rótulo, a descrição e os nomes alternativos em $2 para [[$1]]. Nomes
alternativos são separados por uma barra vertical (<code>|</code>).",
- "wikibase-setlabeldescriptionaliases-intro": "Este formulário
permite-lhe definir o rótulo, a descrição e nomes alternativos de uma entidade.
Precisa de fornecer o identificador da entidade (ex: Q23), o código de idioma
(ex: \"pt\"), bem como o respetivo rótulo, descrição e nomes alternativos.
Nomes alternativos são separados por uma barra vertical (<code>|</code>).",
+ "wikibase-setlabeldescriptionaliases-intro": "Este formulário
permite-lhe definir o rótulo, a descrição e nomes alternativos de uma entidade.
Precisa de fornecer o identificador da entidade (ex: Q23) e o código de idioma
(ex: \"pt\").",
"wikibase-setlabeldescriptionaliases-label-label": "Rótulo:",
"wikibase-setlabeldescriptionaliases-description-label": "Descrição:",
"wikibase-setlabeldescriptionaliases-aliases-label": "Nomes
alternativos:",
@@ -315,6 +315,7 @@
"wikibase-property-summary-wbsetaliases-add-remove": "Adicionou ou
removeu {{PLURAL:$1|nome alternativo|nomes alternativos}} [$2]",
"wikibase-property-summary-wbsetaliases-add": "Adicionou
{{PLURAL:$1|nome alternativo|nomes alternativos}} [$2]",
"wikibase-property-summary-wbsetaliases-remove": "Removeu
{{PLURAL:$1|nome alternativo|nomes alternativos}} [$2]",
+ "wikibase-property-summary-wbsetlabeldescriptionaliases": "Alterou o
rótulo, descrição e nomes alternativos para [$2]",
"wikibase-property-summary-wbsetclaim-update": "Alterou {{PLURAL:$3|uma
alegação|alegações}}",
"wikibase-property-summary-wbsetclaim-create": "Criou {{PLURAL:$3|uma
alegação|alegações}}",
"wikibase-property-summary-wbsetclaim-update-qualifiers": "Alterou
{{PLURAL:$4|um qualificador|$4 qualificadores}} de {{PLURAL:$3|uma
alegação|alegações}}",
diff --git a/extensions/Wikibase/repo/includes/EntitySearchTextGenerator.php
b/extensions/Wikibase/repo/includes/EntitySearchTextGenerator.php
deleted file mode 100644
index 9f209a4..0000000
--- a/extensions/Wikibase/repo/includes/EntitySearchTextGenerator.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-namespace Wikibase\Repo;
-
-use Wikibase\DataModel\Entity\EntityDocument;
-use Wikibase\DataModel\Term\AliasGroup;
-use Wikibase\DataModel\Term\AliasGroupList;
-use Wikibase\DataModel\Term\Fingerprint;
-use Wikibase\DataModel\Term\FingerprintProvider;
-
-/**
- * FIXME: OCP violation. Extensions that add new types of entities with
- * new types of terms cannot register proper support.
- *
- * @since 0.5
- *
- * @licence GNU GPL v2+
- * @author Katie Filbert < [email protected] >
- */
-class EntitySearchTextGenerator {
-
- /**
- * @param EntityDocument $entity
- *
- * @return string
- */
- public function generate( EntityDocument $entity ) {
- if ( $entity instanceof FingerprintProvider ) {
- return $this->getTextForFingerprint(
$entity->getFingerprint() );
- }
-
- return '';
- }
-
- private function getTextForFingerprint( Fingerprint $fingerprint ) {
- $text = $this->getArrayAsText(
$fingerprint->getLabels()->toTextArray() );
-
- $text .= "\n" . $this->getArrayAsText(
$fingerprint->getDescriptions()->toTextArray() );
-
- $text .= $this->getAllAliasesText(
$fingerprint->getAliasGroups() );
-
- return $text;
- }
-
- /**
- * @param string[] $elements
- *
- * @return string
- */
- protected function getArrayAsText( array $elements ) {
- return implode( "\n", $elements );
- }
-
- /**
- * @param AliasGroupList $aliasGroups
- *
- * @return string
- */
- protected function getAllAliasesText( AliasGroupList $aliasGroups ) {
- $text = '';
-
- /** @var AliasGroup $aliasGroup */
- foreach ( $aliasGroups as $aliasGroup ) {
- $text .= "\n" . implode( "\n",
$aliasGroup->getAliases() );
- }
-
- return $text;
- }
-
-}
diff --git
a/extensions/Wikibase/repo/includes/FingerprintSearchTextGenerator.php
b/extensions/Wikibase/repo/includes/FingerprintSearchTextGenerator.php
new file mode 100644
index 0000000..2d72dff
--- /dev/null
+++ b/extensions/Wikibase/repo/includes/FingerprintSearchTextGenerator.php
@@ -0,0 +1,35 @@
+<?php
+
+namespace Wikibase\Repo;
+
+use Wikibase\DataModel\Term\AliasGroup;
+use Wikibase\DataModel\Term\Fingerprint;
+
+/**
+ * @since 0.5
+ *
+ * @licence GNU GPL v2+
+ * @author Katie Filbert < [email protected] >
+ * @author Thiemo Mättig
+ */
+class FingerprintSearchTextGenerator {
+
+ /**
+ * @param Fingerprint $fingerprint
+ *
+ * @return string
+ */
+ public function generate( Fingerprint $fingerprint ) {
+ $text = implode( "\n", $fingerprint->getLabels()->toTextArray()
);
+
+ $text .= "\n" . implode( "\n",
$fingerprint->getDescriptions()->toTextArray() );
+
+ /** @var AliasGroup $aliasGroup */
+ foreach ( $fingerprint->getAliasGroups() as $aliasGroup ) {
+ $text .= "\n" . implode( "\n",
$aliasGroup->getAliases() );
+ }
+
+ return trim( $text, "\n" );
+ }
+
+}
diff --git a/extensions/Wikibase/repo/includes/ItemSearchTextGenerator.php
b/extensions/Wikibase/repo/includes/ItemSearchTextGenerator.php
index a0ba612..4782f3c 100644
--- a/extensions/Wikibase/repo/includes/ItemSearchTextGenerator.php
+++ b/extensions/Wikibase/repo/includes/ItemSearchTextGenerator.php
@@ -9,6 +9,7 @@
*
* @licence GNU GPL v2+
* @author Katie Filbert < [email protected] >
+ * @author Thiemo Mättig
*/
class ItemSearchTextGenerator {
@@ -18,14 +19,14 @@
* @return string
*/
public function generate( Item $item ) {
- $entitySearchTextGenerator = new EntitySearchTextGenerator();
- $text = $entitySearchTextGenerator->generate( $item );
+ $fingerprintGenerator = new FingerprintSearchTextGenerator();
+ $text = $fingerprintGenerator->generate(
$item->getFingerprint() );
foreach ( $item->getSiteLinks() as $siteLink ) {
$text .= "\n" . $siteLink->getPageName();
}
- return $text;
+ return trim( $text, "\n" );
}
}
diff --git
a/extensions/Wikibase/repo/includes/LabelDescriptionDuplicateDetector.php
b/extensions/Wikibase/repo/includes/LabelDescriptionDuplicateDetector.php
index 113bbfc..12eecb7 100644
--- a/extensions/Wikibase/repo/includes/LabelDescriptionDuplicateDetector.php
+++ b/extensions/Wikibase/repo/includes/LabelDescriptionDuplicateDetector.php
@@ -64,7 +64,7 @@
EntityId $ignoreEntityId = null
) {
if ( !is_string( $entityType ) ) {
- throw new InvalidArgumentException( '$labels must be an
array' );
+ throw new InvalidArgumentException( '$entityType must
be a string' );
}
if ( empty( $labels ) && empty( $descriptions ) ) {
@@ -102,12 +102,11 @@
* @param string $errorCode Error code (for later localization)
* @param Term[] $terms The conflicting terms.
*
- * @return array
+ * @return UniquenessViolation[]
*/
- private function termsToErrors( $message, $errorCode, $terms ) {
+ private function termsToErrors( $message, $errorCode, array $terms ) {
$errors = array();
- /* @var Term $term */
foreach ( $terms as $term ) {
$errors[] = new UniquenessViolation(
$term->getEntityId(),
diff --git a/extensions/Wikibase/repo/includes/WikibaseRepo.php
b/extensions/Wikibase/repo/includes/WikibaseRepo.php
index d6cf5fa..7f5573d 100644
--- a/extensions/Wikibase/repo/includes/WikibaseRepo.php
+++ b/extensions/Wikibase/repo/includes/WikibaseRepo.php
@@ -88,7 +88,6 @@
use Wikibase\ValuesFinder;
use Wikibase\View\EntityViewFactory;
use Wikibase\View\Template\TemplateFactory;
-use Wikibase\View\Template\TemplateRegistry;
/**
* Top level factory for the WikibaseRepo extension.
@@ -1015,8 +1014,7 @@
* @return EntityParserOutputGeneratorFactory
*/
public function getEntityParserOutputGeneratorFactory() {
- $templateFactory = new TemplateFactory(
TemplateRegistry::getDefaultInstance() );
-
+ $templateFactory = TemplateFactory::getDefaultInstance();
$entityViewFactory = new EntityViewFactory(
$this->getEntityIdHtmlLinkFormatterFactory(),
$this->getHtmlSnakFormatterFactory(),
diff --git a/extensions/Wikibase/repo/includes/api/MergeItems.php
b/extensions/Wikibase/repo/includes/api/MergeItems.php
index fa66c54..2125a89 100644
--- a/extensions/Wikibase/repo/includes/api/MergeItems.php
+++ b/extensions/Wikibase/repo/includes/api/MergeItems.php
@@ -6,6 +6,7 @@
use ApiMain;
use LogicException;
use UsageException;
+use Wikibase\ChangeOp\ChangeOpsMerge;
use Wikibase\DataModel\Entity\EntityIdParser;
use Wikibase\DataModel\Entity\EntityIdParsingException;
use Wikibase\DataModel\Entity\ItemId;
@@ -197,7 +198,7 @@
),
'ignoreconflicts' => array(
ApiBase::PARAM_ISMULTI => true,
- ApiBase::PARAM_TYPE => 'string',
+ ApiBase::PARAM_TYPE =>
ChangeOpsMerge::$conflictTypes,
ApiBase::PARAM_REQUIRED => false,
),
'summary' => array(
diff --git a/extensions/Wikibase/repo/includes/content/EntityContent.php
b/extensions/Wikibase/repo/includes/content/EntityContent.php
index 8142e99..46bdf7d 100644
--- a/extensions/Wikibase/repo/includes/content/EntityContent.php
+++ b/extensions/Wikibase/repo/includes/content/EntityContent.php
@@ -30,7 +30,7 @@
use Wikibase\Lib\Store\EntityRedirect;
use Wikibase\Repo\Content\EntityContentDiff;
use Wikibase\Repo\Content\EntityHandler;
-use Wikibase\Repo\EntitySearchTextGenerator;
+use Wikibase\Repo\FingerprintSearchTextGenerator;
use Wikibase\Repo\WikibaseRepo;
use Wikibase\Validators\EntityValidator;
use WikiPage;
@@ -321,8 +321,8 @@
return '';
}
- $searchTextGenerator = new EntitySearchTextGenerator();
- $text = $searchTextGenerator->generate( $this->getEntity() );
+ $searchTextGenerator = new FingerprintSearchTextGenerator();
+ $text = $searchTextGenerator->generate(
$this->getEntity()->getFingerprint() );
if ( !wfRunHooks( 'WikibaseTextForSearchIndex', array( $this,
&$text ) ) ) {
return '';
diff --git a/extensions/Wikibase/repo/includes/content/ItemContent.php
b/extensions/Wikibase/repo/includes/content/ItemContent.php
index c4d1b5a..779cf09 100644
--- a/extensions/Wikibase/repo/includes/content/ItemContent.php
+++ b/extensions/Wikibase/repo/includes/content/ItemContent.php
@@ -194,8 +194,8 @@
return '';
}
- // TODO: refactor ItemSearchTextGenerator to share an interface
with EntitySearchTextGenerator,
- // so we don't have to re-implement getTextForSearchIndex()
here.
+ // TODO: Refactor ItemSearchTextGenerator to share an interface
with
+ // FingerprintSearchTextGenerator, so we don't have to
re-implement getTextForSearchIndex() here.
$searchTextGenerator = new ItemSearchTextGenerator();
$text = $searchTextGenerator->generate( $this->getItem() );
diff --git a/extensions/Wikibase/repo/includes/store/sql/SqlIdGenerator.php
b/extensions/Wikibase/repo/includes/store/sql/SqlIdGenerator.php
index 2b02e9f..40b7f48 100644
--- a/extensions/Wikibase/repo/includes/store/sql/SqlIdGenerator.php
+++ b/extensions/Wikibase/repo/includes/store/sql/SqlIdGenerator.php
@@ -4,7 +4,6 @@
use DatabaseBase;
use MWException;
-use Wikibase\Repo\WikibaseRepo;
/**
* Unique Id generator implemented using an SQL table.
@@ -28,18 +27,25 @@
private $db;
/**
+ * @var int[]
+ */
+ private $idBlacklist;
+
+ /**
* @param string $tableName
* @param DatabaseBase $database
+ * @param int[] $idBlacklist
*/
- public function __construct( $tableName, DatabaseBase $database ) {
+ public function __construct( $tableName, DatabaseBase $database, array
$idBlacklist ) {
$this->table = $tableName;
$this->db = $database;
+ $this->idBlacklist = $idBlacklist;
}
/**
* @see IdGenerator::getNewId
*
- * @param string $type
+ * @param string $type normally is content model id (e.g. wikibase-item
or wikibase-property)
*
* @return int
*/
@@ -58,7 +64,7 @@
* @throws MWException
* @return int
*/
- protected function generateNewId( $type, $retry = true ) {
+ private function generateNewId( $type, $retry = true ) {
$trx = $this->db->trxLevel();
if ( $trx == 0 ) {
@@ -108,10 +114,7 @@
throw new MWException( 'Could not generate a reliably
unique ID.' );
}
- $idBlacklist = WikibaseRepo::getDefaultInstance()->
- getSettings()->getSetting( 'idBlacklist' );
-
- if ( in_array( $id, $idBlacklist ) ) {
+ if ( in_array( $id, $this->idBlacklist ) ) {
$id = $this->generateNewId( $type );
}
diff --git a/extensions/Wikibase/repo/includes/store/sql/SqlStore.php
b/extensions/Wikibase/repo/includes/store/sql/SqlStore.php
index 262a224..eb59679 100644
--- a/extensions/Wikibase/repo/includes/store/sql/SqlStore.php
+++ b/extensions/Wikibase/repo/includes/store/sql/SqlStore.php
@@ -119,6 +119,11 @@
private $useRedirectTargetColumn;
/**
+ * @var int[]
+ */
+ private $idBlacklist;
+
+ /**
* @param EntityContentDataCodec $contentCodec
* @param EntityIdParser $entityIdParser
*/
@@ -136,6 +141,7 @@
$this->cacheType = $settings->getSetting( 'sharedCacheType' );
$this->cacheDuration = $settings->getSetting(
'sharedCacheDuration' );
$this->useRedirectTargetColumn = $settings->getSetting(
'useRedirectTargetColumn' );
+ $this->idBlacklist = $settings->getSetting( 'idBlacklist' );
}
/**
@@ -458,7 +464,7 @@
* @return IdGenerator
*/
public function newIdGenerator() {
- return new SqlIdGenerator( 'wb_id_counters', wfGetDB( DB_MASTER
) );
+ return new SqlIdGenerator( 'wb_id_counters', wfGetDB( DB_MASTER
), $this->idBlacklist );
}
/**
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/ChangeOp/ChangeOpQualifierTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/ChangeOp/ChangeOpQualifierTest.php
index 0f727d8..a30f5ce 100644
---
a/extensions/Wikibase/repo/tests/phpunit/includes/ChangeOp/ChangeOpQualifierTest.php
+++
b/extensions/Wikibase/repo/tests/phpunit/includes/ChangeOp/ChangeOpQualifierTest.php
@@ -16,7 +16,6 @@
use Wikibase\DataModel\Snak\PropertyValueSnak;
use Wikibase\DataModel\Snak\Snak;
use Wikibase\DataModel\Snak\SnakList;
-use Wikibase\DataModel\Statement\Statement;
use Wikibase\Lib\ClaimGuidGenerator;
/**
@@ -166,9 +165,9 @@
$oldSnak = new PropertyValueSnak( $p11, new StringValue( "old
qualifier" ) );
- $claim = new Statement( new Claim( new PropertyNoValueSnak(
$p11 ), new SnakList( array( $oldSnak ) ) ) );
- $claim->setGuid( $claimGuid );
- $item->addClaim( $claim );
+ $snak = new PropertyNoValueSnak( $p11 );
+ $qualifiers = new SnakList( array( $oldSnak ) );
+ $item->getStatements()->addNewStatement( $snak, $qualifiers,
null, $claimGuid );
//NOTE: the mock validator will consider the string "INVALID"
to be invalid.
$goodSnak = new PropertyValueSnak( $p11, new StringValue(
'good' ) );
@@ -209,9 +208,9 @@
$oldSnak = new PropertyValueSnak( $p11, new StringValue( "old
qualifier" ) );
- $claim = new Statement( new Claim( new PropertyNoValueSnak(
$p11 ), new SnakList( array( $oldSnak ) ) ) );
- $claim->setGuid( $claimGuid );
- $item->addClaim( $claim );
+ $snak = new PropertyNoValueSnak( $p11 );
+ $qualifiers = new SnakList( array( $oldSnak ) );
+ $item->getStatements()->addNewStatement( $snak, $qualifiers,
null, $claimGuid );
//NOTE: the mock validator will consider the string "INVALID"
to be invalid.
$badSnak = new PropertyValueSnak( $p11, new StringValue(
'INVALID' ) );
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/ChangeOp/ChangeOpReferenceTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/ChangeOp/ChangeOpReferenceTest.php
index ffb4521..248d25c 100644
---
a/extensions/Wikibase/repo/tests/phpunit/includes/ChangeOp/ChangeOpReferenceTest.php
+++
b/extensions/Wikibase/repo/tests/phpunit/includes/ChangeOp/ChangeOpReferenceTest.php
@@ -6,7 +6,6 @@
use DataValues\StringValue;
use InvalidArgumentException;
use Wikibase\ChangeOp\ChangeOpReference;
-use Wikibase\DataModel\Claim\Claim;
use Wikibase\DataModel\Claim\Claims;
use Wikibase\DataModel\Entity\Entity;
use Wikibase\DataModel\Entity\Item;
@@ -262,9 +261,9 @@
$oldSnak = new PropertyValueSnak( $p11, new StringValue( "old
reference" ) );
$oldReference = new Reference( new SnakList( array( $oldSnak )
) );
- $claim = new Statement( new Claim( new PropertyNoValueSnak(
$p11 ), new SnakList( array( $oldSnak ) ) ) );
- $claim->setGuid( $claimGuid );
- $item->addClaim( $claim );
+ $snak = new PropertyNoValueSnak( $p11 );
+ $qualifiers = new SnakList( array( $oldSnak ) );
+ $item->getStatements()->addNewStatement( $snak, $qualifiers,
null, $claimGuid );
$goodSnak = new PropertyValueSnak( $p11, new StringValue(
'good' ) );
@@ -309,9 +308,9 @@
$oldSnak = new PropertyValueSnak( $p11, new StringValue( "old
reference" ) );
$oldReference = new Reference( new SnakList( array( $oldSnak )
) );
- $claim = new Statement( new Claim( new PropertyNoValueSnak(
$p11 ), new SnakList( array( $oldSnak ) ) ) );
- $claim->setGuid( $claimGuid );
- $item->addClaim( $claim );
+ $snak = new PropertyNoValueSnak( $p11 );
+ $qualifiers = new SnakList( array( $oldSnak ) );
+ $item->getStatements()->addNewStatement( $snak, $qualifiers,
null, $claimGuid );
//NOTE: the mock validator will consider the string "INVALID"
to be invalid.
$badSnak = new PropertyValueSnak( $p11, new StringValue(
'INVALID' ) );
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/EntityParserOutputGeneratorTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/EntityParserOutputGeneratorTest.php
index 810c06c..b87b1e8 100644
---
a/extensions/Wikibase/repo/tests/phpunit/includes/EntityParserOutputGeneratorTest.php
+++
b/extensions/Wikibase/repo/tests/phpunit/includes/EntityParserOutputGeneratorTest.php
@@ -18,7 +18,6 @@
use Wikibase\Lib\Store\Sql\SqlEntityInfoBuilderFactory;
use Wikibase\ValuesFinder;
use Wikibase\View\Template\TemplateFactory;
-use Wikibase\View\Template\TemplateRegistry;
/**
* @covers Wikibase\EntityParserOutputGenerator
@@ -109,6 +108,8 @@
}
private function newEntityParserOutputGenerator() {
+ $templateFactory = TemplateFactory::getDefaultInstance();
+
return new EntityParserOutputGenerator(
$this->getEntityViewFactory(),
$this->getConfigBuilderMock(),
@@ -117,7 +118,7 @@
new SqlEntityInfoBuilderFactory(),
$this->newLanguageFallbackChain(),
'en',
- new TemplateFactory(
TemplateRegistry::getDefaultInstance() )
+ $templateFactory
);
}
@@ -222,4 +223,5 @@
private function getParserOptions() {
return new ParserOptions( null, Language::factory( 'en' ) );
}
+
}
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/EntitySearchTextGeneratorTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/EntitySearchTextGeneratorTest.php
deleted file mode 100644
index d4d0f30..0000000
---
a/extensions/Wikibase/repo/tests/phpunit/includes/EntitySearchTextGeneratorTest.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-namespace Wikibase\Test;
-
-use Wikibase\DataModel\Entity\EntityDocument;
-use Wikibase\DataModel\Entity\Item;
-use Wikibase\Repo\EntitySearchTextGenerator;
-
-/**
- * @covers Wikibase\Repo\EntitySearchTextGenerator
- *
- * @group WikibaseRepo
- * @group Wikibase
- *
- * @licence GNU GPL v2+
- * @author Daniel Kinzler
- * @author Katie Filbert < [email protected] >
- * @author Thiemo Mättig
- */
-class EntitySearchTextGeneratorTest extends \PHPUnit_Framework_TestCase {
-
- public function generateProvider() {
- $item = new Item();
-
- $item->getFingerprint()->setLabel( 'en', 'Test' );
- $item->getFingerprint()->setLabel( 'de', 'Testen' );
- $item->getFingerprint()->setDescription( 'en', 'city in Spain'
);
- $item->getFingerprint()->setAliasGroup( 'en', array( 'abc',
'cde' ) );
- $item->getFingerprint()->setAliasGroup( 'de', array( 'xyz',
'uvw' ) );
-
- $patterns = array(
- '/^Test$/',
- '/^Testen$/',
- '/^city in Spain$/',
- '/^abc$/',
- '/^cde$/',
- '/^uvw$/',
- '/^xyz$/',
- '/^(?!abcde).*$/',
- );
-
- return array(
- array( $item, $patterns )
- );
- }
-
- /**
- * @dataProvider generateProvider
- * @param EntityDocument $entity
- * @param string[] $patterns
- */
- public function testGenerate( EntityDocument $entity, array $patterns )
{
- $generator = new EntitySearchTextGenerator();
- $text = $generator->generate( $entity );
-
- foreach ( $patterns as $pattern ) {
- $this->assertRegExp( $pattern . 'm', $text );
- }
- }
-
- public function
testGivenEntityWithoutFingerprint_emptyStringIsReturned() {
- $generator = new EntitySearchTextGenerator();
- $entity = $this->getMock(
'Wikibase\DataModel\Entity\EntityDocument' );
- $text = $generator->generate( $entity );
-
- $this->assertSame( '', $text );
- }
-
- public function testGivenEmptyEntity_newlineIsReturned() {
- $generator = new EntitySearchTextGenerator();
- $item = new Item();
- $text = $generator->generate( $item );
-
- $this->assertSame( "\n", $text );
- }
-
- public function testGivenUntrimmedLabel_generateDoesNotTrim() {
- $item = new Item();
- $item->getFingerprint()->setLabel( 'en', ' untrimmed label ' );
- $generator = new EntitySearchTextGenerator();
- $text = $generator->generate( $item );
-
- $this->assertSame( " untrimmed label \n", $text );
- }
-
-}
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/FingerprintSearchTextGeneratorTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/FingerprintSearchTextGeneratorTest.php
new file mode 100644
index 0000000..d57cddb
--- /dev/null
+++
b/extensions/Wikibase/repo/tests/phpunit/includes/FingerprintSearchTextGeneratorTest.php
@@ -0,0 +1,77 @@
+<?php
+
+namespace Wikibase\Test;
+
+use Wikibase\DataModel\Term\Fingerprint;
+use Wikibase\Repo\FingerprintSearchTextGenerator;
+
+/**
+ * @covers Wikibase\Repo\FingerprintSearchTextGenerator
+ *
+ * @group WikibaseRepo
+ * @group Wikibase
+ *
+ * @licence GNU GPL v2+
+ * @author Daniel Kinzler
+ * @author Katie Filbert < [email protected] >
+ * @author Thiemo Mättig
+ */
+class FingerprintSearchTextGeneratorTest extends \PHPUnit_Framework_TestCase {
+
+ public function generateProvider() {
+ $fingerprint = new Fingerprint();
+
+ $fingerprint->setLabel( 'en', 'Test' );
+ $fingerprint->setLabel( 'de', 'Testen' );
+ $fingerprint->setDescription( 'en', 'city in Spain' );
+ $fingerprint->setAliasGroup( 'en', array( 'abc', 'cde' ) );
+ $fingerprint->setAliasGroup( 'de', array( 'xyz', 'uvw' ) );
+
+ $patterns = array(
+ '/^Test$/',
+ '/^Testen$/',
+ '/^city in Spain$/',
+ '/^abc$/',
+ '/^cde$/',
+ '/^uvw$/',
+ '/^xyz$/',
+ '/^(?!abcde).*$/',
+ );
+
+ return array(
+ array( $fingerprint, $patterns )
+ );
+ }
+
+ /**
+ * @dataProvider generateProvider
+ * @param Fingerprint $fingerprint
+ * @param string[] $patterns
+ */
+ public function testGenerate( Fingerprint $fingerprint, array $patterns
) {
+ $generator = new FingerprintSearchTextGenerator();
+ $text = $generator->generate( $fingerprint );
+
+ foreach ( $patterns as $pattern ) {
+ $this->assertRegExp( $pattern . 'm', $text );
+ }
+ }
+
+ public function testGivenEmptyEntity_emptyStringIsReturned() {
+ $generator = new FingerprintSearchTextGenerator();
+ $fingerprint = new Fingerprint();
+ $text = $generator->generate( $fingerprint );
+
+ $this->assertSame( '', $text );
+ }
+
+ public function testGivenUntrimmedLabel_generateDoesNotTrim() {
+ $fingerprint = new Fingerprint();
+ $fingerprint->setLabel( 'en', ' untrimmed label ' );
+ $generator = new FingerprintSearchTextGenerator();
+ $text = $generator->generate( $fingerprint );
+
+ $this->assertSame( " untrimmed label ", $text );
+ }
+
+}
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/ItemSearchTextGeneratorTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/ItemSearchTextGeneratorTest.php
index 4489c79..5a6e6e6 100644
---
a/extensions/Wikibase/repo/tests/phpunit/includes/ItemSearchTextGeneratorTest.php
+++
b/extensions/Wikibase/repo/tests/phpunit/includes/ItemSearchTextGeneratorTest.php
@@ -60,12 +60,12 @@
}
}
- public function testGivenEmptyItem_newlineIsReturned() {
+ public function testGivenEmptyItem_emptyStringIsReturned() {
$generator = new ItemSearchTextGenerator();
$item = new Item();
$text = $generator->generate( $item );
- $this->assertSame( "\n", $text );
+ $this->assertSame( '', $text );
}
public function testGivenUntrimmedPageName_generateDoesNotTrim() {
@@ -75,7 +75,7 @@
$generator = new ItemSearchTextGenerator();
$text = $generator->generate( $item );
- $this->assertSame( " untrimmed label \n\n untrimmed pageName ",
$text );
+ $this->assertSame( " untrimmed label \n untrimmed pageName ",
$text );
}
}
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/ParserOutputJsConfigBuilderTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/ParserOutputJsConfigBuilderTest.php
index 706572d..0a4c068 100644
---
a/extensions/Wikibase/repo/tests/phpunit/includes/ParserOutputJsConfigBuilderTest.php
+++
b/extensions/Wikibase/repo/tests/phpunit/includes/ParserOutputJsConfigBuilderTest.php
@@ -4,14 +4,12 @@
use Language;
use MediaWikiTestCase;
-use Wikibase\DataModel\Claim\Claim;
use Wikibase\DataModel\Entity\Entity;
use Wikibase\DataModel\Entity\EntityIdValue;
use Wikibase\DataModel\Entity\Item;
use Wikibase\DataModel\Entity\ItemId;
use Wikibase\DataModel\Entity\PropertyId;
use Wikibase\DataModel\Snak\PropertyValueSnak;
-use Wikibase\DataModel\Statement\Statement;
use Wikibase\LanguageFallbackChain;
use Wikibase\LanguageFallbackChainFactory;
use Wikibase\Lib\Serializers\SerializationOptions;
@@ -105,11 +103,8 @@
new PropertyId( 'P794' ),
new EntityIdValue( new ItemId( 'Q9000' ) )
);
-
- $statement = new Statement( new Claim( $snak ) );
- $statement->setGuid( 'P794$muahahaha' );
-
- $item->addClaim( $statement );
+ $guid = 'P794$muahahaha';
+ $item->getStatements()->addNewStatement( $snak, null, null,
$guid );
return $item;
}
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/api/ApiXmlFormatTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/api/ApiXmlFormatTest.php
index ea671b6..9fb8029 100644
--- a/extensions/Wikibase/repo/tests/phpunit/includes/api/ApiXmlFormatTest.php
+++ b/extensions/Wikibase/repo/tests/phpunit/includes/api/ApiXmlFormatTest.php
@@ -5,11 +5,9 @@
use ApiBase;
use ApiMain;
use FauxRequest;
-use Wikibase\DataModel\Claim\Claim;
use Wikibase\DataModel\Entity\Item;
use Wikibase\DataModel\Entity\Property;
use Wikibase\DataModel\Snak\PropertyNoValueSnak;
-use Wikibase\DataModel\Statement\Statement;
use Wikibase\EntityRevision;
use Wikibase\Repo\WikibaseRepo;
@@ -160,13 +158,12 @@
$item = new Item();
$entityRevision = $store->saveEntity( $item, 'testing',
$GLOBALS['wgUser'], EDIT_NEW );
+ /** @var Item $item */
$item = $entityRevision->getEntity();
- $snak = new PropertyNoValueSnak( $propertyId->getNumericId() );
- $statement = new Statement( new Claim( $snak ) );
-
- $statement->setGuid( $item->getId()->getSerialization() .
'$kittens' );
- $item->addClaim( $statement );
+ $snak = new PropertyNoValueSnak( $propertyId );
+ $guid = $item->getId()->getSerialization() . '$kittens';
+ $item->getStatements()->addNewStatement( $snak, null, null,
$guid );
$entityRevision = $store->saveEntity( $item, 'testing more!',
$GLOBALS['wgUser'] );
return $entityRevision;
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/api/GetClaimsTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/api/GetClaimsTest.php
index 40cc8e5..d5819df 100644
--- a/extensions/Wikibase/repo/tests/phpunit/includes/api/GetClaimsTest.php
+++ b/extensions/Wikibase/repo/tests/phpunit/includes/api/GetClaimsTest.php
@@ -72,7 +72,7 @@
foreach ( $statements as $key => $statement ) {
$statement->setGuid( $item->getId()->getSerialization()
. '$D8404CDA-56A1-4334-AF13-A3290BCD9CL' . $key );
- $item->addClaim( $statement );
+ $item->getStatements()->addStatement( $statement );
}
}
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/api/RemoveClaimsTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/api/RemoveClaimsTest.php
index 732ca0f..43e634b 100644
--- a/extensions/Wikibase/repo/tests/phpunit/includes/api/RemoveClaimsTest.php
+++ b/extensions/Wikibase/repo/tests/phpunit/includes/api/RemoveClaimsTest.php
@@ -60,7 +60,7 @@
foreach ( $statements as $statement ) {
$guidGenerator = new ClaimGuidGenerator();
$statement->setGuid( $guidGenerator->newGuid(
$item->getId() ) );
- $item->addClaim( $statement );
+ $item->getStatements()->addStatement( $statement );
}
$store->saveEntity( $item, '', $GLOBALS['wgUser'], EDIT_UPDATE
);
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/api/RemoveQualifiersTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/api/RemoveQualifiersTest.php
index 26cc2be..cf3b46f 100644
---
a/extensions/Wikibase/repo/tests/phpunit/includes/api/RemoveQualifiersTest.php
+++
b/extensions/Wikibase/repo/tests/phpunit/includes/api/RemoveQualifiersTest.php
@@ -81,7 +81,7 @@
$guidGenerator = new ClaimGuidGenerator();
$statement->setGuid( $guidGenerator->newGuid(
$item->getId() ) );
- $item->addClaim( $statement );
+ $item->getStatements()->addStatement( $statement );
$store->saveEntity( $item, '', $GLOBALS['wgUser'],
EDIT_UPDATE );
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/api/RemoveReferencesTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/api/RemoveReferencesTest.php
index c06c260..b834c5c 100644
---
a/extensions/Wikibase/repo/tests/phpunit/includes/api/RemoveReferencesTest.php
+++
b/extensions/Wikibase/repo/tests/phpunit/includes/api/RemoveReferencesTest.php
@@ -81,7 +81,7 @@
$guidGenerator = new ClaimGuidGenerator();
$statement->setGuid( $guidGenerator->newGuid(
$item->getId() ) );
- $item->addClaim( $statement );
+ $item->getStatements()->addStatement( $statement );
$store->saveEntity( $item, '', $GLOBALS['wgUser'],
EDIT_UPDATE );
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/api/ResultBuilderTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/api/ResultBuilderTest.php
index 776596d..3a893a4 100644
--- a/extensions/Wikibase/repo/tests/phpunit/includes/api/ResultBuilderTest.php
+++ b/extensions/Wikibase/repo/tests/phpunit/includes/api/ResultBuilderTest.php
@@ -15,7 +15,6 @@
use Wikibase\DataModel\Snak\PropertySomeValueSnak;
use Wikibase\DataModel\Snak\PropertyValueSnak;
use Wikibase\DataModel\Snak\SnakList;
-use Wikibase\DataModel\Statement\Statement;
use Wikibase\EntityRevision;
use Wikibase\Lib\Serializers\SerializationOptions;
use Wikibase\Lib\Serializers\SerializerFactory;
@@ -158,22 +157,20 @@
$item->addSiteLink( new SiteLink( 'enwiki', 'Berlin', array(
new ItemId( 'Q333' ) ) ) );
$item->addSiteLink( new SiteLink( 'zh_classicalwiki',
'User:Addshore', array() ) );
- $statement = new Statement( new Claim( new
PropertySomeValueSnak( new PropertyId( 'P65' ) ) ) );
- $statement->setGuid( 'imaguid' );
+ $snak = new PropertySomeValueSnak( new PropertyId( 'P65' ) );
$qualifiers = new SnakList();
$qualifiers->addSnak( new PropertySomeValueSnak( new
PropertyId( 'P65' ) ) );
$qualifiers->addSnak( new PropertyValueSnak( new PropertyId(
'P65' ), new StringValue( 'string!' ) ) );
- $statement->setQualifiers( $qualifiers );
$references = new ReferenceList();
$referenceSnaks = new SnakList();
$referenceSnaks->addSnak( new PropertySomeValueSnak( new
PropertyId( 'P65' ) ) );
$referenceSnaks->addSnak( new PropertySomeValueSnak( new
PropertyId( 'P68' ) ) );
$references->addReference( new Reference( $referenceSnaks ) );
- $statement->setReferences( $references );
- $item->addClaim( $statement );
+ $guid = 'imaguid';
+ $item->getStatements()->addNewStatement( $snak, $qualifiers,
$references, $guid );
$entityRevision = new EntityRevision( $item, 33,
'20131126202923' );
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/api/SetClaimTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/api/SetClaimTest.php
index 753d348..74a05e0 100644
--- a/extensions/Wikibase/repo/tests/phpunit/includes/api/SetClaimTest.php
+++ b/extensions/Wikibase/repo/tests/phpunit/includes/api/SetClaimTest.php
@@ -420,20 +420,19 @@
$store = WikibaseRepo::getDefaultInstance()->getEntityStore();
$serializerFactory = new SerializerFactory();
- // create property
$property = Property::newFromType( 'quantity' );
$property = $store->saveEntity( $property, '',
$GLOBALS['wgUser'], EDIT_NEW )->getEntity();
- // create item
$item = new Item();
+ /** @var Item $item */
$item = $store->saveEntity( $item, '', $GLOBALS['wgUser'],
EDIT_NEW )->getEntity();
// add a claim
$guidGenerator = new ClaimGuidGenerator();
- $claim = new Statement( new Claim( new PropertyNoValueSnak(
$property->getId() ) ) );
- $claim->setGuid( $guidGenerator->newGuid( $item->getId() ) );
+ $statement = new Statement( new Claim( new PropertyNoValueSnak(
$property->getId() ) ) );
+ $statement->setGuid( $guidGenerator->newGuid( $item->getId() )
);
- $item->addClaim( $claim );
+ $item->getStatements()->addStatement( $statement );
$store->saveEntity( $item, '', $GLOBALS['wgUser'], EDIT_UPDATE
);
// try to change the main snak's property
@@ -442,7 +441,7 @@
$badClaim = new Statement( new Claim( new PropertyNoValueSnak(
$badProperty->getId() ) ) );
- $serializer = $serializerFactory->newSerializerForObject(
$claim );
+ $serializer = $serializerFactory->newSerializerForObject(
$statement );
$serializedBadClaim = $serializer->getSerialized( $badClaim );
$params = array(
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/api/SetClaimValueTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/api/SetClaimValueTest.php
index 7badc3b..206ca1a 100644
--- a/extensions/Wikibase/repo/tests/phpunit/includes/api/SetClaimValueTest.php
+++ b/extensions/Wikibase/repo/tests/phpunit/includes/api/SetClaimValueTest.php
@@ -19,7 +19,6 @@
use Wikibase\DataModel\Entity\Property;
use Wikibase\DataModel\Entity\PropertyId;
use Wikibase\DataModel\Snak\PropertyValueSnak;
-use Wikibase\DataModel\Statement\Statement;
use Wikibase\Lib\EntityIdFormatter;
use Wikibase\Lib\EntityIdPlainLinkFormatter;
use Wikibase\Lib\EntityIdValueFormatter;
@@ -77,11 +76,12 @@
$store = WikibaseRepo::getDefaultInstance()->getEntityStore();
$store->saveEntity( $item, '', $GLOBALS['wgUser'], EDIT_NEW );
- $statement = new Statement( new Claim( new PropertyValueSnak(
$propertyId, new StringValue( 'o_O' ) ) ) );
- $statement->setGuid( $item->getId()->getSerialization() .
'$D8404CDA-25E4-4334-AG93-A3290BCD9C0P' );
- $item->addClaim( $statement );
+ $snak = new PropertyValueSnak( $propertyId, new StringValue(
'o_O' ) );
+ $guid = $item->getId()->getSerialization() .
'$D8404CDA-25E4-4334-AG93-A3290BCD9C0P';
+ $item->getStatements()->addNewStatement( $snak, null, null,
$guid );
$store->saveEntity( $item, '', $GLOBALS['wgUser'], EDIT_UPDATE
);
+
return $item;
}
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/api/SetQualifierTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/api/SetQualifierTest.php
index b9b3fd1..e8e0bdf 100644
--- a/extensions/Wikibase/repo/tests/phpunit/includes/api/SetQualifierTest.php
+++ b/extensions/Wikibase/repo/tests/phpunit/includes/api/SetQualifierTest.php
@@ -12,7 +12,6 @@
use Wikibase\DataModel\Entity\Property;
use Wikibase\DataModel\Snak\PropertyValueSnak;
use Wikibase\DataModel\Snak\Snak;
-use Wikibase\DataModel\Statement\Statement;
use Wikibase\Lib\ClaimGuidGenerator;
use Wikibase\Repo\WikibaseRepo;
@@ -95,11 +94,11 @@
$prop = Property::newFromType( 'string' );
$propId = $this->makeProperty( $prop )->getId();
- $claim = new Statement( new Claim( new
PropertyValueSnak( $propId, new StringValue( '^_^' ) ) ) );
+ $snak = new PropertyValueSnak( $propId, new
StringValue( '^_^' ) );
$guidGenerator = new ClaimGuidGenerator();
- $claim->setGuid( $guidGenerator->newGuid(
$newItem->getId() ) );
- $newItem->addClaim( $claim );
+ $guid = $guidGenerator->newGuid( $newItem->getId() );
+ $newItem->getStatements()->addNewStatement( $snak,
null, null, $guid );
$store->saveEntity( $newItem, '', $GLOBALS['wgUser'],
EDIT_UPDATE );
$item = $newItem;
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/api/SetReferenceTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/api/SetReferenceTest.php
index a196cd3..455facb 100644
--- a/extensions/Wikibase/repo/tests/phpunit/includes/api/SetReferenceTest.php
+++ b/extensions/Wikibase/repo/tests/phpunit/includes/api/SetReferenceTest.php
@@ -70,16 +70,10 @@
$item = new Item();
$store->saveEntity( $item, '', $GLOBALS['wgUser'], EDIT_NEW );
- $statement = new Statement( new Claim( new PropertyNoValueSnak(
self::$propertyIds[0] ) ) );
- $statement->setGuid( $item->getId()->getSerialization() .
'$D8505CDA-25E4-4334-AG93-A3290BCD9C0P' );
-
- $reference = new Reference( new SnakList(
- array( new PropertySomeValueSnak( 100 ) )
- ) );
-
- $statement->getReferences()->addReference( $reference );
-
- $item->addClaim( $statement );
+ $snak = new PropertyNoValueSnak( self::$propertyIds[0] );
+ $reference = new Reference( array( new PropertySomeValueSnak(
100 ) ) );
+ $guid = $item->getId()->getSerialization() .
'$D8505CDA-25E4-4334-AG93-A3290BCD9C0P';
+ $item->getStatements()->addNewStatement( $snak, null, array(
$reference ), $guid );
$store->saveEntity( $item, '', $GLOBALS['wgUser'], EDIT_UPDATE
);
@@ -90,14 +84,14 @@
) );
$serializedReference = $this->makeValidRequest(
- $statement->getGuid(),
+ $guid,
$referenceHash,
$reference
);
// Since the reference got modified, the hash should no longer
match
$this->makeInvalidRequest(
- $statement->getGuid(),
+ $guid,
$referenceHash,
$reference
);
@@ -113,7 +107,7 @@
// Set reference with two snaks:
$serializedReference = $this->makeValidRequest(
- $statement->getGuid(),
+ $guid,
$referenceHash,
$reference
);
@@ -126,7 +120,7 @@
// Make another request with reordered snaks-order:
$this->makeValidRequest(
- $statement->getGuid(),
+ $guid,
$referenceHash,
$serializedReference
);
@@ -139,19 +133,16 @@
$store->saveEntity( $item, '', $GLOBALS['wgUser'], EDIT_NEW );
// Create a statement to act upon:
- $statement = new Statement( new Claim( new PropertyNoValueSnak(
self::$propertyIds[0] ) ) );
- $statement->setGuid(
- $item->getId()->getSerialization() .
'$D8505CDA-25E4-4334-AG93-A3290BCD9C0P'
- );
-
- $item->addClaim( $statement );
+ $snak = new PropertyNoValueSnak( self::$propertyIds[0] );
+ $guid = $item->getId()->getSerialization() .
'$D8505CDA-25E4-4334-AG93-A3290BCD9C0P';
+ $item->getStatements()->addNewStatement( $snak, null, null,
$guid );
$store->saveEntity( $item, '', $GLOBALS['wgUser'], EDIT_UPDATE
);
$snak = new PropertySomeValueSnak( new PropertyId( 'P23728525'
) );
$reference = new Reference( new SnakList( array( $snak ) ) );
- $this->makeInvalidRequest( $statement->getGuid(), null,
$reference, 'modification-failed' );
+ $this->makeInvalidRequest( $guid, null, $reference,
'modification-failed' );
}
public function testSettingIndex() {
@@ -162,9 +153,8 @@
// Create a statement to act upon:
$statement = new Statement( new Claim( new PropertyNoValueSnak(
self::$propertyIds[0] ) ) );
- $statement->setGuid(
- $item->getId()->getSerialization() .
'$D8505CDA-25E4-4334-AG93-A3290BCD9C0P'
- );
+ $guid = $item->getId()->getSerialization() .
'$D8505CDA-25E4-4334-AG93-A3290BCD9C0P';
+ $statement->setGuid( $guid );
// Pre-fill statement with three references:
$references = array(
@@ -177,12 +167,12 @@
$statement->getReferences()->addReference( $reference );
}
- $item->addClaim( $statement );
+ $item->getStatements()->addStatement( $statement );
$store->saveEntity( $item, '', $GLOBALS['wgUser'], EDIT_UPDATE
);
$this->makeValidRequest(
- $statement->getGuid(),
+ $guid,
$references[2]->getHash(),
$references[2],
0
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/content/ItemContentTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/content/ItemContentTest.php
index f4c893f..e232c8a 100644
---
a/extensions/Wikibase/repo/tests/phpunit/includes/content/ItemContentTest.php
+++
b/extensions/Wikibase/repo/tests/phpunit/includes/content/ItemContentTest.php
@@ -7,7 +7,6 @@
use Diff\DiffOp\DiffOpAdd;
use Diff\DiffOp\DiffOpRemove;
use Title;
-use Wikibase\DataModel\Claim\Claim;
use Wikibase\DataModel\Entity\Diff\EntityDiff;
use Wikibase\DataModel\Entity\EntityId;
use Wikibase\DataModel\Entity\ItemId;
@@ -15,7 +14,6 @@
use Wikibase\DataModel\SiteLink;
use Wikibase\DataModel\SiteLinkList;
use Wikibase\DataModel\Snak\PropertyNoValueSnak;
-use Wikibase\DataModel\Statement\Statement;
use Wikibase\EntityContent;
use Wikibase\ItemContent;
use Wikibase\Lib\Store\EntityRedirect;
@@ -116,9 +114,9 @@
// @todo this is needed in PropertyContentTest as well
// once we have statements in properties
$contentWithClaim = $this->newEmpty();
- $claim = new Statement( new Claim( new PropertyNoValueSnak( 83
) ) );
- $claim->setGuid( '$testing$' );
- $contentWithClaim->getEntity()->addClaim( $claim );
+ $snak = new PropertyNoValueSnak( 83 );
+ $guid = '$testing$';
+
$contentWithClaim->getEntity()->getStatements()->addNewStatement( $snak, null,
null, $guid );
$cases['claims'] = array(
$contentWithClaim,
@@ -150,9 +148,9 @@
// @todo this is needed in PropertyContentTest as well
// once we have statements in properties
$contentWithClaim = $this->newEmpty();
- $claim = new Statement( new Claim( new PropertyNoValueSnak( 83
) ) );
- $claim->setGuid( '$testing$' );
- $contentWithClaim->getEntity()->addClaim( $claim );
+ $snak = new PropertyNoValueSnak( 83 );
+ $guid = '$testing$';
+
$contentWithClaim->getEntity()->getStatements()->addNewStatement( $snak, null,
null, $guid );
$cases['claims'] = array(
$contentWithClaim,
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/SqlIdGeneratorTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/SqlIdGeneratorTest.php
index adbfab2..f9bf697 100644
---
a/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/SqlIdGeneratorTest.php
+++
b/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/SqlIdGeneratorTest.php
@@ -2,8 +2,7 @@
namespace Wikibase\Test;
-use Wikibase\IdGenerator;
-use Wikibase\Repo\WikibaseRepo;
+use Wikibase\SqlIdGenerator;
/**
* @covers Wikibase\SqlIdGenerator
@@ -16,21 +15,22 @@
* @group medium
*
* @licence GNU GPL v2+
- * @author Jeroen De Dauw < [email protected] >
+ * @author Katie Filbert < [email protected] >
*/
class SqlIdGeneratorTest extends \MediaWikiTestCase {
- public function testIdBlacklisting() {
- /**
- * @var IdGenerator $clone
- */
- $generator =
WikibaseRepo::getDefaultInstance()->getStore()->newIdGenerator();
- $idBlacklist = WikibaseRepo::getDefaultInstance()->
- getSettings()->getSetting( 'idBlacklist' );
+ public function testGetNewId() {
+ $generator = new SqlIdGenerator( 'wb_id_counters', wfGetDB(
DB_MASTER ), array() );
- for ( $i = 0; $i < 45; ++$i ) {
- $this->assertFalse( in_array( $generator->getNewId(
'blacklisttest' ), $idBlacklist ) );
- }
+ $id = $generator->getNewId( 'wikibase-kittens' );
+ $this->assertSame( 1, $id );
+ }
+
+ public function testIdBlacklisting() {
+ $generator = new SqlIdGenerator( 'wb_id_counters', wfGetDB(
DB_MASTER ), array( 1, 2 ) );
+
+ $id = $generator->getNewId( 'wikibase-blacklist' );
+ $this->assertSame( 3, $id );
}
}
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/TermSearchKeyBuilderTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/TermSearchKeyBuilderTest.php
index 4e9461d..629b437 100644
---
a/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/TermSearchKeyBuilderTest.php
+++
b/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/TermSearchKeyBuilderTest.php
@@ -44,10 +44,10 @@
* @param boolean $matches
*/
public function testRebuildSearchKey( $languageCode, $termText,
$searchText, $matches ) {
- $withoutTermSearchKey = WikibaseRepo::getDefaultInstance()->
- getSettings()->getSetting( 'withoutTermSearchKey' );
+ /* @var TermSqlIndex $termCache */
+ $termCache =
WikibaseRepo::getDefaultInstance()->getStore()->getTermIndex();
- if ( $withoutTermSearchKey ) {
+ if ( !$termCache->supportsSearchKeys() ) {
$this->markTestSkipped( "can't test search key if
withoutTermSearchKey option is set." );
}
@@ -56,8 +56,6 @@
$item->setLabel( $languageCode, $termText );
// save term
- /* @var TermSqlIndex $termCache */
- $termCache =
WikibaseRepo::getDefaultInstance()->getStore()->getTermIndex();
$termCache->clear();
$termCache->saveTermsOfEntity( $item );
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/TermSqlIndexTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/TermSqlIndexTest.php
index 847fc24..61b8c10 100644
---
a/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/TermSqlIndexTest.php
+++
b/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/TermSqlIndexTest.php
@@ -8,7 +8,6 @@
use Wikibase\DataModel\Term\AliasGroupList;
use Wikibase\DataModel\Term\Fingerprint;
use Wikibase\DataModel\Term\TermList;
-use Wikibase\Repo\WikibaseRepo;
use Wikibase\StringNormalizer;
use Wikibase\Term;
use Wikibase\TermSqlIndex;
@@ -58,14 +57,12 @@
* @dataProvider termProvider
*/
public function testGetMatchingTerms2( $languageCode, $termText,
$searchText, $matches ) {
- $withoutTermSearchKey = WikibaseRepo::getDefaultInstance()->
- getSettings()->getSetting( 'withoutTermSearchKey' );
+ $termIndex = $this->getTermIndex();
- if ( $withoutTermSearchKey ) {
+ if ( !$termIndex->supportsSearchKeys() ) {
$this->markTestSkipped( "can't test search key if
withoutTermSearchKey option is set." );
}
- $termIndex = $this->getTermIndex();
$termIndex->clear();
$item = new Item( new ItemId( 'Q42' ) );
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/WikiPageEntityStoreTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/WikiPageEntityStoreTest.php
index 2f9539d..dc9d088 100644
---
a/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/WikiPageEntityStoreTest.php
+++
b/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/WikiPageEntityStoreTest.php
@@ -70,7 +70,7 @@
$store = new WikiPageEntityStore(
new EntityContentFactory( $typeMap ),
- new SqlIdGenerator( 'wb_id_counters', wfGetDB(
DB_MASTER ) )
+ new SqlIdGenerator( 'wb_id_counters', wfGetDB(
DB_MASTER ), array() )
);
return array( $store, $lookup );
diff --git a/extensions/Wikibase/view/src/Module/TemplateModule.php
b/extensions/Wikibase/view/src/Module/TemplateModule.php
index 585296e..aa4f67f 100644
--- a/extensions/Wikibase/view/src/Module/TemplateModule.php
+++ b/extensions/Wikibase/view/src/Module/TemplateModule.php
@@ -5,7 +5,7 @@
use FormatJson;
use ResourceLoaderContext;
use ResourceLoaderFileModule;
-use Wikibase\View\Template\TemplateRegistry;
+use Wikibase\View\Template\TemplateFactory;
/**
* Injects templates into JavaScript.
@@ -27,8 +27,8 @@
*/
public function getScript( ResourceLoaderContext $context ) {
// register HTML templates
- $templateRegistry = TemplateRegistry::getDefaultInstance();
- $templatesJson = FormatJson::encode(
$templateRegistry->getTemplates() );
+ $templateFactory = TemplateFactory::getDefaultInstance();
+ $templatesJson = FormatJson::encode(
$templateFactory->getTemplates() );
// template store JavaScript initialisation
$script = <<<EOT
diff --git a/extensions/Wikibase/view/src/Template/TemplateFactory.php
b/extensions/Wikibase/view/src/Template/TemplateFactory.php
index caab761..191ce99 100644
--- a/extensions/Wikibase/view/src/Template/TemplateFactory.php
+++ b/extensions/Wikibase/view/src/Template/TemplateFactory.php
@@ -5,13 +5,29 @@
/**
* @license GNU GPL v2+
* @author Adrian Lang < [email protected] >
+ * @author Thiemo Mättig
*/
class TemplateFactory {
+
+ /**
+ * @var TemplateFactory
+ */
+ private static $instance;
/**
* @var TemplateRegistry
*/
private $templateRegistry;
+
+ public static function getDefaultInstance() {
+ if ( self::$instance === null ) {
+ self::$instance = new self(
+ new TemplateRegistry( include( __DIR__ .
'/../../resources/templates.php' ) )
+ );
+ }
+
+ return self::$instance;
+ }
/**
* @param TemplateRegistry $templateRegistry
@@ -21,8 +37,16 @@
}
/**
+ * @return string[] Array containing all raw template strings.
+ */
+ public function getTemplates() {
+ return $this->templateRegistry->getTemplates();
+ }
+
+ /**
* @param string $key
* @param array $params
+ *
* @return Template
*/
public function get( $key, array $params ) {
diff --git a/extensions/Wikibase/view/src/Template/TemplateRegistry.php
b/extensions/Wikibase/view/src/Template/TemplateRegistry.php
index c99e2e7..885ad35 100644
--- a/extensions/Wikibase/view/src/Template/TemplateRegistry.php
+++ b/extensions/Wikibase/view/src/Template/TemplateRegistry.php
@@ -17,27 +17,14 @@
class TemplateRegistry {
/**
- * @var TemplateRegistry
- */
- private static $instance;
-
- /**
* @var string[]
*/
private $templates = array();
- public static function getDefaultInstance() {
- if ( self::$instance === null ) {
- self::$instance = new self( include( __DIR__ .
'/../../resources/templates.php' ) );
- }
-
- return self::$instance;
- }
-
/**
* @param string[] $templates
*/
- function __construct( array $templates = array() ) {
+ public function __construct( array $templates = array() ) {
$this->addTemplates( $templates );
}
diff --git a/extensions/Wikibase/view/tests/phpunit/ClaimHtmlGeneratorTest.php
b/extensions/Wikibase/view/tests/phpunit/ClaimHtmlGeneratorTest.php
index fb0ccd0..2637828 100644
--- a/extensions/Wikibase/view/tests/phpunit/ClaimHtmlGeneratorTest.php
+++ b/extensions/Wikibase/view/tests/phpunit/ClaimHtmlGeneratorTest.php
@@ -17,7 +17,6 @@
use Wikibase\View\ClaimHtmlGenerator;
use Wikibase\View\SnakHtmlGenerator;
use Wikibase\View\Template\TemplateFactory;
-use Wikibase\View\Template\TemplateRegistry;
/**
* @covers Wikibase\View\ClaimHtmlGenerator
@@ -77,10 +76,7 @@
Claim $claim,
$patterns
) {
- $templateFactory = new TemplateFactory(
- TemplateRegistry::getDefaultInstance()
- );
-
+ $templateFactory = TemplateFactory::getDefaultInstance();
$claimHtmlGenerator = new ClaimHtmlGenerator(
$templateFactory,
$snakHtmlGenerator
diff --git a/extensions/Wikibase/view/tests/phpunit/ClaimsViewTest.php
b/extensions/Wikibase/view/tests/phpunit/ClaimsViewTest.php
index 4da5922..370c2ab 100644
--- a/extensions/Wikibase/view/tests/phpunit/ClaimsViewTest.php
+++ b/extensions/Wikibase/view/tests/phpunit/ClaimsViewTest.php
@@ -18,7 +18,6 @@
use Wikibase\View\ClaimHtmlGenerator;
use Wikibase\View\StatementGroupListView;
use Wikibase\View\Template\TemplateFactory;
-use Wikibase\View\Template\TemplateRegistry;
/**
* @covers Wikibase\View\StatementGroupListView
@@ -122,7 +121,7 @@
* @return StatementGroupListView
*/
private function newStatementGroupListView( EntityIdFormatter
$propertyIdFormatter ) {
- $templateFactory = new TemplateFactory(
TemplateRegistry::getDefaultInstance() );
+ $templateFactory = TemplateFactory::getDefaultInstance();
return new StatementGroupListView(
$templateFactory,
diff --git a/extensions/Wikibase/view/tests/phpunit/EntityTermsViewTest.php
b/extensions/Wikibase/view/tests/phpunit/EntityTermsViewTest.php
index 70c53d7..5d84902 100644
--- a/extensions/Wikibase/view/tests/phpunit/EntityTermsViewTest.php
+++ b/extensions/Wikibase/view/tests/phpunit/EntityTermsViewTest.php
@@ -8,7 +8,6 @@
use Wikibase\DataModel\Term\Fingerprint;
use Wikibase\View\EntityTermsView;
use Wikibase\View\Template\TemplateFactory;
-use Wikibase\View\Template\TemplateRegistry;
use Wikibase\View\TextInjector;
/**
@@ -48,7 +47,7 @@
}
private function getEntityTermsView( $languageCode = 'en', $called =
null ) {
- $templateFactory = new TemplateFactory(
TemplateRegistry::getDefaultInstance() );
+ $templateFactory = TemplateFactory::getDefaultInstance();
if ( $called === null ) {
$called = $this->any();
diff --git a/extensions/Wikibase/view/tests/phpunit/EntityViewFactoryTest.php
b/extensions/Wikibase/view/tests/phpunit/EntityViewFactoryTest.php
index 2358aeb..664f936 100644
--- a/extensions/Wikibase/view/tests/phpunit/EntityViewFactoryTest.php
+++ b/extensions/Wikibase/view/tests/phpunit/EntityViewFactoryTest.php
@@ -8,7 +8,6 @@
use Wikibase\Lib\SnakFormatter;
use Wikibase\View\EntityViewFactory;
use Wikibase\View\Template\TemplateFactory;
-use Wikibase\View\Template\TemplateRegistry;
/**
* @covers Wikibase\View\EntityViewFactory
@@ -78,13 +77,15 @@
}
private function getEntityViewFactory() {
+ $templateFactory = TemplateFactory::getDefaultInstance();
+
return new EntityViewFactory(
$this->getEntityIdFormatterFactory(),
$this->getSnakFormatterFactory(),
$this->getMock( 'Wikibase\Lib\Store\EntityLookup' ),
$this->getSiteStore(),
$this->getMock( 'DataTypes\DataTypeFactory' ),
- new TemplateFactory(
TemplateRegistry::getDefaultInstance() ),
+ $templateFactory,
$this->getMock( 'Wikibase\Lib\LanguageNameLookup' ),
array(),
array(),
diff --git
a/extensions/Wikibase/view/tests/phpunit/EntityViewPlaceholderExpanderTest.php
b/extensions/Wikibase/view/tests/phpunit/EntityViewPlaceholderExpanderTest.php
index f4c0165..3d95df3 100644
---
a/extensions/Wikibase/view/tests/phpunit/EntityViewPlaceholderExpanderTest.php
+++
b/extensions/Wikibase/view/tests/phpunit/EntityViewPlaceholderExpanderTest.php
@@ -14,7 +14,6 @@
use Wikibase\Lib\WikibaseContentLanguages;
use Wikibase\View\EntityViewPlaceholderExpander;
use Wikibase\View\Template\TemplateFactory;
-use Wikibase\View\Template\TemplateRegistry;
/**
* @covers Wikibase\View\EntityViewPlaceholderExpander
@@ -40,6 +39,8 @@
* @return EntityViewPlaceholderExpander
*/
private function newExpander( User $user, EntityRevisionLookup
$entityRevisionLookup, ItemId $itemId ) {
+ $templateFactory = TemplateFactory::getDefaultInstance();
+
$title = $this->getMockBuilder( 'Title')
->disableOriginalConstructor()
->getMock();
@@ -49,19 +50,17 @@
$idParser = $this->getMockBuilder(
'Wikibase\DataModel\Entity\EntityIdParser' )
->disableOriginalConstructor()
->getMock();
-
$idParser->expects( $this->any() )
->method( 'parse' )
->will( $this->returnValue( $itemId ) );
$userLanguages = $this->getMock(
'Wikibase\Lib\UserLanguageLookup' );
-
$userLanguages->expects( $this->any() )
->method( 'getAllUserLanguages' )
->will( $this->returnValue( array( 'de', 'en', 'ru' ) )
);
return new EntityViewPlaceholderExpander(
- new TemplateFactory(
TemplateRegistry::getDefaultInstance() ),
+ $templateFactory,
$title,
$user,
$language,
diff --git a/extensions/Wikibase/view/tests/phpunit/ItemViewTest.php
b/extensions/Wikibase/view/tests/phpunit/ItemViewTest.php
index 1ec47a9..12dcde3 100644
--- a/extensions/Wikibase/view/tests/phpunit/ItemViewTest.php
+++ b/extensions/Wikibase/view/tests/phpunit/ItemViewTest.php
@@ -5,9 +5,9 @@
use Wikibase\DataModel\Entity\EntityId;
use Wikibase\DataModel\Entity\Item;
use Wikibase\DataModel\Entity\ItemId;
+use Wikibase\DataModel\Statement\StatementList;
use Wikibase\View\ItemView;
use Wikibase\View\Template\TemplateFactory;
-use Wikibase\View\Template\TemplateRegistry;
/**
* @covers Wikibase\View\ItemView
@@ -28,12 +28,11 @@
protected function makeEntity( EntityId $id, array $statements =
array() ) {
$item = new Item( $id );
+
$item->setLabel( 'en', "label:$id" );
$item->setDescription( 'en', "description:$id" );
- foreach ( $statements as $statement ) {
- $item->addClaim( $statement );
- }
+ $item->setStatements( new StatementList( $statements ) );
return $item;
}
@@ -50,8 +49,9 @@
}
public function provideTestGetHtml() {
+ $templateFactory = TemplateFactory::getDefaultInstance();
$itemView = new ItemView(
- new TemplateFactory(
TemplateRegistry::getDefaultInstance() ),
+ $templateFactory,
$this->getMockBuilder( 'Wikibase\View\EntityTermsView' )
->disableOriginalConstructor()
->getMock(),
diff --git a/extensions/Wikibase/view/tests/phpunit/PropertyViewTest.php
b/extensions/Wikibase/view/tests/phpunit/PropertyViewTest.php
index 89f79a2..098580d 100644
--- a/extensions/Wikibase/view/tests/phpunit/PropertyViewTest.php
+++ b/extensions/Wikibase/view/tests/phpunit/PropertyViewTest.php
@@ -9,9 +9,9 @@
use Wikibase\DataModel\Entity\Property;
use Wikibase\DataModel\Entity\PropertyId;
use Wikibase\DataModel\Statement\Statement;
+use Wikibase\DataModel\Statement\StatementList;
use Wikibase\View\PropertyView;
use Wikibase\View\Template\TemplateFactory;
-use Wikibase\View\Template\TemplateRegistry;
/**
* @covers Wikibase\View\EntityView
@@ -37,21 +37,13 @@
* @return Entity
*/
protected function makeEntity( EntityId $id, array $statements =
array() ) {
- $dataTypeId = 'string';
-
- if ( is_string( $id ) ) {
- $id = new PropertyId( $id );
- }
-
- $property = Property::newFromType( $dataTypeId );
+ $property = Property::newFromType( 'string' );
$property->setId( $id );
$property->setLabel( 'en', "label:$id" );
$property->setDescription( 'en', "description:$id" );
- foreach ( $statements as $statement ) {
- $property->addClaim( $statement );
- }
+ $property->setStatements( new StatementList( $statements ) );
return $property;
}
@@ -80,8 +72,9 @@
}
public function provideTestGetHtml() {
+ $templateFactory = TemplateFactory::getDefaultInstance();
$propertyView = new PropertyView(
- new TemplateFactory(
TemplateRegistry::getDefaultInstance() ),
+ $templateFactory,
$this->getMockBuilder( 'Wikibase\View\EntityTermsView' )
->disableOriginalConstructor()
->getMock(),
@@ -116,4 +109,5 @@
return $dataTypeFactory;
}
+
}
diff --git a/extensions/Wikibase/view/tests/phpunit/SiteLinksViewTest.php
b/extensions/Wikibase/view/tests/phpunit/SiteLinksViewTest.php
index a9b459a..5e1aa3d 100644
--- a/extensions/Wikibase/view/tests/phpunit/SiteLinksViewTest.php
+++ b/extensions/Wikibase/view/tests/phpunit/SiteLinksViewTest.php
@@ -14,7 +14,6 @@
use Wikibase\View\EditSectionGenerator;
use Wikibase\View\SiteLinksView;
use Wikibase\View\Template\TemplateFactory;
-use Wikibase\View\Template\TemplateRegistry;
/**
* @covers Wikibase\View\SiteLinksView
@@ -30,7 +29,7 @@
* @author Adrian Heine <[email protected]>
* @author Bene* < [email protected] >
*/
-class SiteLinksViewTest extends \MediaWikiTestCase {
+class SiteLinksViewTest extends MediaWikiTestCase {
/**
* @dataProvider getHtmlProvider
@@ -160,9 +159,10 @@
* @return SiteLinksView
*/
private function getSiteLinksView() {
+ $templateFactory = TemplateFactory::getDefaultInstance();
return new SiteLinksView(
- new TemplateFactory(
TemplateRegistry::getDefaultInstance() ),
+ $templateFactory,
$this->newSiteList(),
$this->getEditSectionGeneratorMock(),
$this->getEntityLookupMock(),
diff --git a/extensions/Wikibase/view/tests/phpunit/SnakHtmlGeneratorTest.php
b/extensions/Wikibase/view/tests/phpunit/SnakHtmlGeneratorTest.php
index ccacf0a..2289b55 100644
--- a/extensions/Wikibase/view/tests/phpunit/SnakHtmlGeneratorTest.php
+++ b/extensions/Wikibase/view/tests/phpunit/SnakHtmlGeneratorTest.php
@@ -13,7 +13,6 @@
use Wikibase\Lib\SnakFormatter;
use Wikibase\View\SnakHtmlGenerator;
use Wikibase\View\Template\TemplateFactory;
-use Wikibase\View\Template\TemplateRegistry;
/**
* @covers Wikibase\View\SnakHtmlGenerator
@@ -39,8 +38,9 @@
Snak $snak,
$patterns
) {
+ $templateFactory = TemplateFactory::getDefaultInstance();
$snakHtmlGenerator = new SnakHtmlGenerator(
- new TemplateFactory(
TemplateRegistry::getDefaultInstance() ),
+ $templateFactory,
$snakFormatter,
$propertyIdFormatter
);
diff --git
a/extensions/Wikibase/view/tests/phpunit/ToolbarEditSectionGeneratorTest.php
b/extensions/Wikibase/view/tests/phpunit/ToolbarEditSectionGeneratorTest.php
index 8af14d3..e6069bb 100644
--- a/extensions/Wikibase/view/tests/phpunit/ToolbarEditSectionGeneratorTest.php
+++ b/extensions/Wikibase/view/tests/phpunit/ToolbarEditSectionGeneratorTest.php
@@ -3,14 +3,11 @@
namespace Wikibase\Test;
use MediaWikiTestCase;
-use SpecialPage;
-use SpecialPageFactory;
use Wikibase\DataModel\Claim\Claim;
use Wikibase\DataModel\Entity\PropertyId;
use Wikibase\DataModel\Snak\PropertyNoValueSnak;
use Wikibase\DataModel\Statement\Statement;
use Wikibase\View\Template\TemplateFactory;
-use Wikibase\View\Template\TemplateRegistry;
use Wikibase\View\ToolbarEditSectionGenerator;
/**
@@ -58,7 +55,6 @@
$expectedMatch,
$generator->getLabelDescriptionAliasesEditSection(
$languageCode, $entityId )
);
-
}
public function getLabelDescriptionAliasesEditSectionProvider() {
@@ -78,7 +74,6 @@
$generator = $this->newToolbarEditSectionGenerator();
$this->assertRegExp( $expectedMatch,
$generator->getSiteLinksEditSection( $entityId ) );
-
}
public function getSiteLinksEditSectionProvider() {
@@ -97,7 +92,6 @@
'<span class="wikibase-toolbar-container"></span>',
$generator->getStatementEditSection( $statement )
);
-
}
public function getStatementEditSection() {
@@ -113,10 +107,10 @@
->will( $this->returnCallback( function( $specialPage,
$params = array() ) {
return 'Special:' . $specialPage . '/' .
implode( '/', $params );
} ) );
- return new ToolbarEditSectionGenerator(
- $specialPageLinker,
- new TemplateFactory(
TemplateRegistry::getDefaultInstance() )
- );
+
+ $templateFactory = TemplateFactory::getDefaultInstance();
+
+ return new ToolbarEditSectionGenerator( $specialPageLinker,
$templateFactory );
}
}
diff --git a/vendor/autoload.php b/vendor/autoload.php
index a1fdd61..f642dc8 100644
--- a/vendor/autoload.php
+++ b/vendor/autoload.php
@@ -4,4 +4,4 @@
require_once __DIR__ . '/composer' . '/autoload_real.php';
-return ComposerAutoloaderInit5a71055dc5042c75e91541f286d7b83b::getLoader();
+return ComposerAutoloaderInitc0a3768d434154ce38a32c8879b374f4::getLoader();
diff --git a/vendor/composer/autoload_classmap.php
b/vendor/composer/autoload_classmap.php
index 0491ac5..a9416d9 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -797,7 +797,7 @@
'Wikibase\\Repo\\Diff\\EntityDiffVisualizer' => $baseDir .
'/extensions/Wikibase/repo/includes/Diff/EntityDiffVisualizer.php',
'Wikibase\\Repo\\EntityIdHtmlLinkFormatterFactory' => $baseDir .
'/extensions/Wikibase/repo/includes/EntityIdHtmlLinkFormatterFactory.php',
'Wikibase\\Repo\\EntityNamespaceLookup' => $baseDir .
'/extensions/Wikibase/repo/includes/EntityNamespaceLookup.php',
- 'Wikibase\\Repo\\EntitySearchTextGenerator' => $baseDir .
'/extensions/Wikibase/repo/includes/EntitySearchTextGenerator.php',
+ 'Wikibase\\Repo\\FingerprintSearchTextGenerator' => $baseDir .
'/extensions/Wikibase/repo/includes/FingerprintSearchTextGenerator.php',
'Wikibase\\Repo\\GenericEventDispatcher' => $baseDir .
'/extensions/Wikibase/repo/includes/GenericEventDispatcher.php',
'Wikibase\\Repo\\Hooks\\LabelPrefetchHookHandlers' => $baseDir .
'/extensions/Wikibase/repo/includes/Hooks/LabelPrefetchHookHandlers.php',
'Wikibase\\Repo\\Hooks\\LinkBeginHookHandler' => $baseDir .
'/extensions/Wikibase/repo/includes/Hooks/LinkBeginHookHandler.php',
@@ -1027,10 +1027,10 @@
'Wikibase\\Test\\EntityPerPageTableTest' => $baseDir .
'/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/EntityPerPageTableTest.php',
'Wikibase\\Test\\EntityRetrievingTermLookupTest' => $baseDir .
'/extensions/Wikibase/lib/tests/phpunit/store/EntityRetrievingTermLookupTest.php',
'Wikibase\\Test\\EntityRevisionLookupTest' => $baseDir .
'/extensions/Wikibase/lib/tests/phpunit/EntityRevisionLookupTest.php',
- 'Wikibase\\Test\\EntitySearchTextGeneratorTest' => $baseDir .
'/extensions/Wikibase/repo/tests/phpunit/includes/EntitySearchTextGeneratorTest.php',
'Wikibase\\Test\\EntitySerializerBaseTest' => $baseDir .
'/extensions/Wikibase/lib/tests/phpunit/serializers/EntitySerializerBaseTest.php',
'Wikibase\\Test\\EntityTermLookupTest' => $baseDir .
'/extensions/Wikibase/lib/tests/phpunit/store/EntityTermLookupTest.php',
'Wikibase\\Test\\FingerprintChangeOpFactoryTest' => $baseDir .
'/extensions/Wikibase/repo/tests/phpunit/includes/ChangeOp/FingerprintChangeOpFactoryTest.php',
+ 'Wikibase\\Test\\FingerprintSearchTextGeneratorTest' => $baseDir .
'/extensions/Wikibase/repo/tests/phpunit/includes/FingerprintSearchTextGeneratorTest.php',
'Wikibase\\Test\\GenericExceptionLocalizerTest' => $baseDir .
'/extensions/Wikibase/lib/tests/phpunit/Localizer/GenericExceptionLocalizerTest.php',
'Wikibase\\Test\\HttpAcceptNegotiatorTest' => $baseDir .
'/extensions/Wikibase/repo/tests/phpunit/includes/LinkedData/HttpAcceptNegotiatorTest.php',
'Wikibase\\Test\\HttpAcceptParserTest' => $baseDir .
'/extensions/Wikibase/repo/tests/phpunit/includes/LinkedData/HttpAcceptParserTest.php',
diff --git a/vendor/composer/autoload_real.php
b/vendor/composer/autoload_real.php
index 0c6b8dc..e379257 100644
--- a/vendor/composer/autoload_real.php
+++ b/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
-class ComposerAutoloaderInit5a71055dc5042c75e91541f286d7b83b
+class ComposerAutoloaderInitc0a3768d434154ce38a32c8879b374f4
{
private static $loader;
@@ -19,9 +19,9 @@
return self::$loader;
}
-
spl_autoload_register(array('ComposerAutoloaderInit5a71055dc5042c75e91541f286d7b83b',
'loadClassLoader'), true, false);
+
spl_autoload_register(array('ComposerAutoloaderInitc0a3768d434154ce38a32c8879b374f4',
'loadClassLoader'), true, false);
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
-
spl_autoload_unregister(array('ComposerAutoloaderInit5a71055dc5042c75e91541f286d7b83b',
'loadClassLoader'));
+
spl_autoload_unregister(array('ComposerAutoloaderInitc0a3768d434154ce38a32c8879b374f4',
'loadClassLoader'));
$map = require __DIR__ . '/autoload_namespaces.php';
foreach ($map as $namespace => $path) {
@@ -42,14 +42,14 @@
$includeFiles = require __DIR__ . '/autoload_files.php';
foreach ($includeFiles as $file) {
- composerRequire5a71055dc5042c75e91541f286d7b83b($file);
+ composerRequirec0a3768d434154ce38a32c8879b374f4($file);
}
return $loader;
}
}
-function composerRequire5a71055dc5042c75e91541f286d7b83b($file)
+function composerRequirec0a3768d434154ce38a32c8879b374f4($file)
{
require $file;
}
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index b8ec8a4..3167797 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -1199,12 +1199,12 @@
"source": {
"type": "git",
"url":
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git",
- "reference": "86f87316c8f8c0ea438839f98aabd0345b23be4f"
+ "reference": "8d21687a97a5636b0b2522302343ada7f16088dc"
},
"dist": {
"type": "zip",
- "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/86f87316c8f8c0ea438839f98aabd0345b23be4f",
- "reference": "86f87316c8f8c0ea438839f98aabd0345b23be4f",
+ "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/8d21687a97a5636b0b2522302343ada7f16088dc",
+ "reference": "8d21687a97a5636b0b2522302343ada7f16088dc",
"shasum": ""
},
"require": {
@@ -1231,7 +1231,7 @@
"conflict": {
"mediawiki/mediawiki": "<1.23"
},
- "time": "2015-04-07 09:45:04",
+ "time": "2015-04-07 20:21:37",
"type": "mediawiki-extension",
"installation-source": "dist",
"autoload": {
--
To view, visit https://gerrit.wikimedia.org/r/268181
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I8442ad7a466ee5f710ccc37070eb5673dd5dfcaa
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikidata
Gerrit-Branch: REL1_25
Gerrit-Owner: Paladox <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits