jenkins-bot has submitted this change and it was merged.
Change subject: New Wikidata Build - 2015-08-17T10:00:01+0000
......................................................................
New Wikidata Build - 2015-08-17T10:00:01+0000
Change-Id: I676d98846132c78a0637a352307e18e7d5cae92f
---
M composer.lock
M extensions/Wikibase/client/i18n/ady-cyrl.json
M extensions/Wikibase/client/i18n/pnb.json
M extensions/Wikibase/client/i18n/war.json
M extensions/Wikibase/composer.json
A extensions/Wikibase/lib/includes/parsers/WikibaseStringValueLocalizer.php
A
extensions/Wikibase/lib/tests/phpunit/parsers/WikibaseStringValueNormalizerTest.php
M extensions/Wikibase/repo/Wikibase.php
M extensions/Wikibase/repo/i18n/pnb.json
M vendor/composer/autoload_classmap.php
M vendor/composer/autoload_namespaces.php
M vendor/composer/autoload_psr4.php
M vendor/composer/installed.json
M vendor/data-values/common/.travis.yml
M vendor/data-values/common/Common.php
M vendor/data-values/common/README.md
M vendor/data-values/common/composer.json
M vendor/data-values/common/phpunit.xml.dist
M vendor/data-values/common/src/DataValues/MonolingualTextValue.php
M vendor/data-values/common/src/DataValues/MultilingualTextValue.php
M
vendor/data-values/common/src/ValueFormatters/Exceptions/MismatchingDataValueTypeException.php
M vendor/data-values/common/src/ValueFormatters/StringFormatter.php
M vendor/data-values/common/src/ValueParsers/BoolParser.php
A vendor/data-values/common/src/ValueParsers/DispatchingValueParser.php
A
vendor/data-values/common/src/ValueParsers/Normalizers/NullStringNormalizer.php
A vendor/data-values/common/src/ValueParsers/Normalizers/StringNormalizer.php
A vendor/data-values/common/src/ValueParsers/StringParser.php
M vendor/data-values/common/src/ValueParsers/StringValueParser.php
M vendor/data-values/common/tests/DataValues/MonolingualTextValueTest.php
M vendor/data-values/common/tests/DataValues/MultilingualTextValueTest.php
M
vendor/data-values/common/tests/ValueFormatters/Exceptions/MismatchingDataValueTypeException.php
M vendor/data-values/common/tests/ValueFormatters/StringFormatterTest.php
M vendor/data-values/common/tests/ValueParsers/BoolParserTest.php
A vendor/data-values/common/tests/ValueParsers/DispatchingValueParserTest.php
M vendor/data-values/common/tests/ValueParsers/FloatParserTest.php
M vendor/data-values/common/tests/ValueParsers/IntParserTest.php
A
vendor/data-values/common/tests/ValueParsers/Normalizers/NullStringNormalizerTest.php
M vendor/data-values/common/tests/ValueParsers/NullParserTest.php
A vendor/data-values/common/tests/ValueParsers/StringParserTest.php
M vendor/data-values/common/tests/ValueParsers/StringValueParserTest.php
M vendor/data-values/common/tests/ValueParsers/ValueParserTestBase.php
M vendor/data-values/common/tests/bootstrap.php
42 files changed, 733 insertions(+), 263 deletions(-)
Approvals:
JanZerebecki: Looks good to me, approved
jenkins-bot: Verified
diff --git a/composer.lock b/composer.lock
index a212b70..915c8da 100644
--- a/composer.lock
+++ b/composer.lock
@@ -103,37 +103,37 @@
},
{
"name": "data-values/common",
- "version": "0.2.3",
+ "version": "0.3.1",
"source": {
"type": "git",
"url": "https://github.com/DataValues/Common.git",
- "reference": "c9f4dfd8af6337eb097d722b27fa76fa58dd441a"
+ "reference": "5d9d4bf902427a2a798ca273480f7dad825c72b5"
},
"dist": {
"type": "zip",
- "url":
"https://api.github.com/repos/DataValues/Common/zipball/c9f4dfd8af6337eb097d722b27fa76fa58dd441a",
- "reference": "c9f4dfd8af6337eb097d722b27fa76fa58dd441a",
+ "url":
"https://api.github.com/repos/DataValues/Common/zipball/5d9d4bf902427a2a798ca273480f7dad825c72b5",
+ "reference": "5d9d4bf902427a2a798ca273480f7dad825c72b5",
"shasum": ""
},
"require": {
"data-values/data-values": "~1.0|~0.1",
- "data-values/interfaces": "~0.1.4",
+ "data-values/interfaces": "~0.2.0|^0.1.5",
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "0.2.x-dev"
+ "dev-master": "0.3.x-dev"
}
},
"autoload": {
"files": [
"Common.php"
],
- "psr-0": {
- "DataValues\\": "src",
- "ValueFormatters\\": "src",
- "ValueParsers\\": "src"
+ "psr-4": {
+ "DataValues\\": "src/DataValues/",
+ "ValueFormatters\\": "src/ValueFormatters/",
+ "ValueParsers\\": "src/ValueParsers/"
},
"classmap": [
"tests/ValueParsers"
@@ -160,7 +160,7 @@
"valuevalidators",
"wikidata"
],
- "time": "2014-10-09 18:21:19"
+ "time": "2015-08-14 10:15:07"
},
{
"name": "data-values/data-types",
@@ -1379,20 +1379,20 @@
"source": {
"type": "git",
"url":
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git",
- "reference": "1cba17bd26b4070920aec5c52933defe48fa52e5"
+ "reference": "ca568f72284db9b1c296e604b71af626fb42045f"
},
"dist": {
"type": "zip",
- "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/1cba17bd26b4070920aec5c52933defe48fa52e5",
- "reference": "1cba17bd26b4070920aec5c52933defe48fa52e5",
+ "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/ca568f72284db9b1c296e604b71af626fb42045f",
+ "reference": "ca568f72284db9b1c296e604b71af626fb42045f",
"shasum": ""
},
"require": {
- "data-values/common": "~0.2.0",
+ "data-values/common": "~0.3.0",
"data-values/data-types": "~0.4.0",
"data-values/data-values": "~1.0",
"data-values/geo": "~1.0",
- "data-values/interfaces": "~0.1.5",
+ "data-values/interfaces": "~0.2.0|^0.1.5",
"data-values/javascript": "~0.6.0|~0.7.0",
"data-values/number": "~0.5.0",
"data-values/serialization": "~1.0",
@@ -1453,7 +1453,7 @@
"wikibaserepo",
"wikidata"
],
- "time": "2015-08-15 19:49:52"
+ "time": "2015-08-17 09:43:40"
},
{
"name": "wikibase/wikimedia-badges",
diff --git a/extensions/Wikibase/client/i18n/ady-cyrl.json
b/extensions/Wikibase/client/i18n/ady-cyrl.json
index 42bde26..278dee7 100644
--- a/extensions/Wikibase/client/i18n/ady-cyrl.json
+++ b/extensions/Wikibase/client/i18n/ady-cyrl.json
@@ -5,14 +5,15 @@
"SamGamgee",
"TheRossatron",
"Amire80",
- "GR44 Luc"
+ "GR44 Luc",
+ "Inyzh"
]
},
- "tooltip-t-wikibase": "Ехьыл1агъэу хъарзынэщым и элементгорэм гъэзэгъэ
зэпыщ",
+ "tooltip-t-wikibase": "ЕхьылIагъэу хъарзынэщым и элементгорэм гъэзэгъэ
зэпыщ",
"wikibase-comment-update": "{{WBREPONAME}} зэхъокIыгъэ",
"wikibase-dataitem": "{{WBREPONAME}} зыгор",
- "wikibase-editlinks": "Зэпыщэмэ я1аз",
- "wikibase-editlinkstitle": "Бзэзэпыщэмэ я1аз",
+ "wikibase-editlinks": "Зэпыщэмэ яIаз",
+ "wikibase-editlinkstitle": "Бзэзэпыщэмэ яIаз",
"wikibase-rc-hide-wikidata": "$1 {{WBREPONAME}}",
"wikibase-rc-hide-wikidata-hide": "Гъэбылъ",
"wikibase-rc-hide-wikidata-show": "Къэгъэлъагъу",
diff --git a/extensions/Wikibase/client/i18n/pnb.json
b/extensions/Wikibase/client/i18n/pnb.json
index cb6cdc4..133991b 100644
--- a/extensions/Wikibase/client/i18n/pnb.json
+++ b/extensions/Wikibase/client/i18n/pnb.json
@@ -4,12 +4,15 @@
"Khalid Mahmood"
]
},
+ "tooltip-t-wikibase": "ریپوزیٹری آئیٹم نال جوڑ",
"wikibase-comment-update": "آئیٹم بدل دتی",
"wikibase-dataitem": "وکی ڈاٹا آئیٹم",
"wikibase-editlinks": "جوڑ لکھو",
"wikibase-editlinkstitle": "بولیاں دے آپسی جوڑ لکھو",
+ "wikibase-rc-hide-wikidata": "$1 {{WBREPONAME}}",
"wikibase-rc-hide-wikidata-hide": "لکاؤ",
"wikibase-rc-hide-wikidata-show": "وکھاؤ",
"wikibase-rc-wikibase-edit-letter": "ڈاٹا",
+ "wikibase-rc-wikibase-edit-title": "{{WBREPONAME}} لکھت",
"wikibase-otherprojects": "ہور ویونت"
}
diff --git a/extensions/Wikibase/client/i18n/war.json
b/extensions/Wikibase/client/i18n/war.json
index dac3965..221707c 100644
--- a/extensions/Wikibase/client/i18n/war.json
+++ b/extensions/Wikibase/client/i18n/war.json
@@ -4,9 +4,10 @@
"JinJian"
]
},
+ "tooltip-t-wikibase": "Igsumpay ha connected data repository item",
"wikibase-comment-update": "{{WBREPONAME}} ginliwat an item",
"wikibase-dataitem": "{{WBREPONAME}} item",
- "wikibase-editlinks": "Igliwat an mga link",
+ "wikibase-editlinks": "Igliwat an mga sumpay",
"wikibase-editlinkstitle": "Igliwat an mga interlanguage link",
"wikibase-rc-hide-wikidata-hide": "Tago-a",
"wikibase-rc-hide-wikidata-show": "Pakit-a",
diff --git a/extensions/Wikibase/composer.json
b/extensions/Wikibase/composer.json
index 2c5113f..1df4f63 100644
--- a/extensions/Wikibase/composer.json
+++ b/extensions/Wikibase/composer.json
@@ -24,9 +24,9 @@
"php": ">=5.3.2",
"data-values/data-values": "~1.0",
- "data-values/common": "~0.2.0",
+ "data-values/common": "~0.3.0",
"data-values/geo": "~1.0",
- "data-values/interfaces": "~0.1.5",
+ "data-values/interfaces": "~0.2.0|^0.1.5",
"data-values/number": "~0.5.0",
"data-values/time": "~0.8.1",
"data-values/validators": "~0.1.0",
diff --git
a/extensions/Wikibase/lib/includes/parsers/WikibaseStringValueLocalizer.php
b/extensions/Wikibase/lib/includes/parsers/WikibaseStringValueLocalizer.php
new file mode 100644
index 0000000..de30b6e
--- /dev/null
+++ b/extensions/Wikibase/lib/includes/parsers/WikibaseStringValueLocalizer.php
@@ -0,0 +1,47 @@
+<?php
+
+namespace Wikibase\Lib;
+
+use InvalidArgumentException;
+use ValueParsers\Normalizers\StringNormalizer;
+
+/**
+ * Adapter implementing ValueParsers\Normalizers\StringNormalizer based on
\Wikibase\StringNormalize.
+ * Used to perform string normalization in StringParser.
+ *
+ * @since 0.5
+ *
+ * @license GPL 2+
+ * @author Daniel Kinzler
+ */
+class WikibaseStringValueNormalizer implements StringNormalizer {
+
+ /**
+ * @var \Wikibase\StringNormalizer
+ */
+ private $normalizer;
+
+ /**
+ * @param \Wikibase\StringNormalizer $normalizer
+ */
+ public function __construct( \Wikibase\StringNormalizer $normalizer ) {
+ $this->normalizer = $normalizer;
+ }
+
+ /**
+ * Trims leading and trailing whitespace and performs unicode
normalization
+ * by calling Wikibase\StringNormalizer::trimToNFC().
+ *
+ * @see StringNormalizer::normalize()
+ * @see Wikibase\StringNormalizer::trimToNFC()
+ *
+ * @param string $value the value to normalize
+ *
+ * @throws InvalidArgumentException if $value is not a string
+ * @return string the normalized value
+ */
+ public function normalize( $value ) {
+ return $this->normalizer->trimToNFC( $value );
+ }
+
+}
diff --git
a/extensions/Wikibase/lib/tests/phpunit/parsers/WikibaseStringValueNormalizerTest.php
b/extensions/Wikibase/lib/tests/phpunit/parsers/WikibaseStringValueNormalizerTest.php
new file mode 100644
index 0000000..db84e65
--- /dev/null
+++
b/extensions/Wikibase/lib/tests/phpunit/parsers/WikibaseStringValueNormalizerTest.php
@@ -0,0 +1,31 @@
+<?php
+
+namespace Wikibase\Lib\Test;
+
+use Wikibase\Lib\WikibaseStringValueNormalizer;
+
+/**
+ * @covers Wikibase\Lib\WikibaseStringValueNormalizer
+ *
+ * @group ValueParsers
+ * @group WikibaseLib
+ * @group Wikibase
+ *
+ * @licence GNU GPL v2+
+ * @author Daniel Kinzler
+ */
+class WikibaseStringValueNormalizerTest extends \PHPUnit_Framework_TestCase {
+
+ public function testNormalize() {
+ $input = 'Kittens';
+
+ $mock = $this->getMock( 'Wikibase\StringNormalizer' );
+ $mock->expects( $this->once() )
+ ->method( 'trimToNFC' )
+ ->with( $input );
+
+ $normalizer = new WikibaseStringValueNormalizer( $mock );
+ $normalizer->normalize( $input );
+ }
+
+}
diff --git a/extensions/Wikibase/repo/Wikibase.php
b/extensions/Wikibase/repo/Wikibase.php
index 3f77ae8..13df8f9 100644
--- a/extensions/Wikibase/repo/Wikibase.php
+++ b/extensions/Wikibase/repo/Wikibase.php
@@ -153,10 +153,15 @@
$wgValueParsers['monolingualtext'] =
'Wikibase\Parsers\MonolingualTextParser';
- // Use NullParser for datatypes that use StringValue
- $wgValueParsers['commonsMedia'] = 'ValueParsers\NullParser';
- $wgValueParsers['string'] = 'ValueParsers\NullParser';
- $wgValueParsers['url'] = 'ValueParsers\NullParser';
+ // Use StringParser for datatypes that use StringValue
+ $stringParserFactoryFunction = function( ValueParsers\ParserOptions
$options ) {
+ $normalizer =
\Wikibase\Repo\WikibaseRepo::getDefaultInstance()->getStringNormalizer();
+ return new \ValueParsers\StringParser( new
Wikibase\Lib\WikibaseStringValueNormalizer( $normalizer ) );
+ };
+
+ $wgValueParsers['commonsMedia'] = $stringParserFactoryFunction;
+ $wgValueParsers['string'] = $stringParserFactoryFunction;
+ $wgValueParsers['url'] = $stringParserFactoryFunction;
// deprecated: 'null' is not a datatype. Alias kept for backwards
compatibility.
$wgValueParsers['null'] = 'ValueParsers\NullParser';
diff --git a/extensions/Wikibase/repo/i18n/pnb.json
b/extensions/Wikibase/repo/i18n/pnb.json
index 9320851..18917a7 100644
--- a/extensions/Wikibase/repo/i18n/pnb.json
+++ b/extensions/Wikibase/repo/i18n/pnb.json
@@ -12,5 +12,5 @@
"wikibase-sitelinks-special": "ہور سائیٹاں",
"wikibase-aliases-empty": "مشہور ناں نہیں دسیا گیا",
"wikibase-statementview-rank-normal": "نارمل رینک",
- "wikibase-statementview-referencesheading-pendingcountersubject":
"{{انیک:$1|اتہ پتہ|اتے پتے}}"
+ "wikibase-statementview-referencesheading-pendingcountersubject":
"{{PLURAL:$1|اتہ پتہ|اتے پتے}}"
}
diff --git a/vendor/composer/autoload_classmap.php
b/vendor/composer/autoload_classmap.php
index 0159e79..426a902 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -185,17 +185,23 @@
'ValueParsers\\IntParser' => $vendorDir .
'/data-values/common/src/ValueParsers/IntParser.php',
'ValueParsers\\IsoTimestampParser' => $vendorDir .
'/data-values/time/src/ValueParsers/IsoTimestampParser.php',
'ValueParsers\\MonthNameUnlocalizer' => $vendorDir .
'/data-values/time/src/ValueParsers/MonthNameUnlocalizer.php',
+ 'ValueParsers\\Normalizers\\NullStringNormalizer' => $vendorDir .
'/data-values/common/src/ValueParsers/Normalizers/NullStringNormalizer.php',
+ 'ValueParsers\\Normalizers\\StringNormalizer' => $vendorDir .
'/data-values/common/src/ValueParsers/Normalizers/StringNormalizer.php',
+ 'ValueParsers\\Normalizers\\Test\\NullStringNormalizerTest' => $vendorDir
.
'/data-values/common/tests/ValueParsers/Normalizers/NullStringNormalizerTest.php',
'ValueParsers\\NullParser' => $vendorDir .
'/data-values/common/src/ValueParsers/NullParser.php',
'ValueParsers\\NumberUnlocalizer' => $vendorDir .
'/data-values/number/src/ValueParsers/NumberUnlocalizer.php',
'ValueParsers\\ParseException' => $vendorDir .
'/data-values/interfaces/src/ValueParsers/ParseException.php',
'ValueParsers\\ParserOptions' => $vendorDir .
'/data-values/interfaces/src/ValueParsers/ParserOptions.php',
'ValueParsers\\PhpDateTimeParser' => $vendorDir .
'/data-values/time/src/ValueParsers/PhpDateTimeParser.php',
'ValueParsers\\QuantityParser' => $vendorDir .
'/data-values/number/src/ValueParsers/QuantityParser.php',
+ 'ValueParsers\\StringParser' => $vendorDir .
'/data-values/common/src/ValueParsers/StringParser.php',
'ValueParsers\\StringValueParser' => $vendorDir .
'/data-values/common/src/ValueParsers/StringValueParser.php',
'ValueParsers\\Test\\BoolParserTest' => $vendorDir .
'/data-values/common/tests/ValueParsers/BoolParserTest.php',
+ 'ValueParsers\\Test\\DispatchingValueParserTest' => $vendorDir .
'/data-values/common/tests/ValueParsers/DispatchingValueParserTest.php',
'ValueParsers\\Test\\FloatParserTest' => $vendorDir .
'/data-values/common/tests/ValueParsers/FloatParserTest.php',
'ValueParsers\\Test\\IntParserTest' => $vendorDir .
'/data-values/common/tests/ValueParsers/IntParserTest.php',
'ValueParsers\\Test\\NullParserTest' => $vendorDir .
'/data-values/common/tests/ValueParsers/NullParserTest.php',
+ 'ValueParsers\\Test\\StringParserTest' => $vendorDir .
'/data-values/common/tests/ValueParsers/StringParserTest.php',
'ValueParsers\\Test\\StringValueParserTest' => $vendorDir .
'/data-values/common/tests/ValueParsers/StringValueParserTest.php',
'ValueParsers\\Test\\ValueParserTestBase' => $vendorDir .
'/data-values/common/tests/ValueParsers/ValueParserTestBase.php',
'ValueParsers\\ValueParser' => $vendorDir .
'/data-values/interfaces/src/ValueParsers/ValueParser.php',
@@ -754,6 +760,7 @@
'Wikibase\\Lib\\Test\\UnDeserializableValueFormatterTest' => $baseDir .
'/extensions/Wikibase/lib/tests/phpunit/formatters/UnDeserializableValueFormatterTest.php',
'Wikibase\\Lib\\Test\\WikibaseContentLanguagesTest' => $baseDir .
'/extensions/Wikibase/lib/tests/phpunit/WikibaseContentLanguagesTest.php',
'Wikibase\\Lib\\Test\\WikibaseSnakFormatterBuildersTest' => $baseDir .
'/extensions/Wikibase/lib/tests/phpunit/formatters/WikibaseSnakFormatterBuildersTest.php',
+ 'Wikibase\\Lib\\Test\\WikibaseStringValueNormalizerTest' => $baseDir .
'/extensions/Wikibase/lib/tests/phpunit/parsers/WikibaseStringValueNormalizerTest.php',
'Wikibase\\Lib\\Test\\WikibaseValueFormatterBuildersTest' => $baseDir .
'/extensions/Wikibase/lib/tests/phpunit/formatters/WikibaseValueFormatterBuildersTest.php',
'Wikibase\\Lib\\Tests\\Parsers\\TimeParserFactoryTest' => $baseDir .
'/extensions/Wikibase/lib/tests/phpunit/parsers/TimeParserFactoryTest.php',
'Wikibase\\Lib\\TimeDetailsFormatter' => $baseDir .
'/extensions/Wikibase/lib/includes/formatters/TimeDetailsFormatter.php',
@@ -764,6 +771,7 @@
'Wikibase\\Lib\\WikibaseContentLanguages' => $baseDir .
'/extensions/Wikibase/lib/includes/WikibaseContentLanguages.php',
'Wikibase\\Lib\\WikibaseDataTypeBuilders' => $baseDir .
'/extensions/Wikibase/lib/includes/WikibaseDataTypeBuilders.php',
'Wikibase\\Lib\\WikibaseSnakFormatterBuilders' => $baseDir .
'/extensions/Wikibase/lib/includes/formatters/WikibaseSnakFormatterBuilders.php',
+ 'Wikibase\\Lib\\WikibaseStringValueNormalizer' => $baseDir .
'/extensions/Wikibase/lib/includes/parsers/WikibaseStringValueLocalizer.php',
'Wikibase\\Lib\\WikibaseValueFormatterBuilders' => $baseDir .
'/extensions/Wikibase/lib/includes/formatters/WikibaseValueFormatterBuilders.php',
'Wikibase\\NamespaceChecker' => $baseDir .
'/extensions/Wikibase/client/includes/NamespaceChecker.php',
'Wikibase\\NoLangLinkHandler' => $baseDir .
'/extensions/Wikibase/client/includes/parserhooks/NoLangLinkHandler.php',
diff --git a/vendor/composer/autoload_namespaces.php
b/vendor/composer/autoload_namespaces.php
index f16995f..4257207 100644
--- a/vendor/composer/autoload_namespaces.php
+++ b/vendor/composer/autoload_namespaces.php
@@ -7,8 +7,8 @@
return array(
'ValueValidators\\' => array($vendorDir . '/data-values/interfaces/src'),
- 'ValueParsers\\' => array($vendorDir . '/data-values/interfaces/src',
$vendorDir . '/data-values/common/src', $vendorDir . '/data-values/time/src',
$vendorDir . '/data-values/number/src'),
- 'ValueFormatters\\' => array($vendorDir . '/data-values/interfaces/src',
$vendorDir . '/data-values/common/src', $vendorDir . '/data-values/time/src',
$vendorDir . '/data-values/number/src'),
- 'DataValues\\' => array($vendorDir . '/data-values/data-values/src',
$vendorDir . '/data-values/common/src', $vendorDir . '/data-values/time/src',
$vendorDir . '/data-values/number/src'),
+ 'ValueParsers\\' => array($vendorDir . '/data-values/interfaces/src',
$vendorDir . '/data-values/time/src', $vendorDir . '/data-values/number/src'),
+ 'ValueFormatters\\' => array($vendorDir . '/data-values/interfaces/src',
$vendorDir . '/data-values/time/src', $vendorDir . '/data-values/number/src'),
+ 'DataValues\\' => array($vendorDir . '/data-values/data-values/src',
$vendorDir . '/data-values/time/src', $vendorDir . '/data-values/number/src'),
'Composer\\Installers\\' => array($vendorDir . '/composer/installers/src'),
);
diff --git a/vendor/composer/autoload_psr4.php
b/vendor/composer/autoload_psr4.php
index 3b47a12..ff577b2 100644
--- a/vendor/composer/autoload_psr4.php
+++ b/vendor/composer/autoload_psr4.php
@@ -22,6 +22,8 @@
'WikibaseQuality\\Api\\' => array($baseDir . '/extensions/Quality/api'),
'WikibaseQuality\\' => array($baseDir . '/extensions/Quality/includes'),
'ValueValidators\\' => array($vendorDir . '/data-values/validators/src'),
+ 'ValueParsers\\' => array($vendorDir .
'/data-values/common/src/ValueParsers'),
+ 'ValueFormatters\\' => array($vendorDir .
'/data-values/common/src/ValueFormatters'),
'Serializers\\' => array($vendorDir .
'/serialization/serialization/src/Serializers'),
'PropertySuggester\\' => array($baseDir .
'/extensions/PropertySuggester/src/PropertySuggester'),
'Diff\\' => array($vendorDir . '/diff/diff/src'),
@@ -29,5 +31,6 @@
'DataValues\\Serializers\\' => array($vendorDir .
'/data-values/serialization/src/Serializers'),
'DataValues\\Geo\\' => array($vendorDir . '/data-values/geo/src'),
'DataValues\\Deserializers\\' => array($vendorDir .
'/data-values/serialization/src/Deserializers'),
+ 'DataValues\\' => array($vendorDir . '/data-values/common/src/DataValues'),
'DataTypes\\' => array($vendorDir . '/data-values/data-types/src'),
);
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index 75a5dde..5a2be70 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -442,29 +442,29 @@
},
{
"name": "data-values/common",
- "version": "0.2.3",
- "version_normalized": "0.2.3.0",
+ "version": "0.3.1",
+ "version_normalized": "0.3.1.0",
"source": {
"type": "git",
"url": "https://github.com/DataValues/Common.git",
- "reference": "c9f4dfd8af6337eb097d722b27fa76fa58dd441a"
+ "reference": "5d9d4bf902427a2a798ca273480f7dad825c72b5"
},
"dist": {
"type": "zip",
- "url":
"https://api.github.com/repos/DataValues/Common/zipball/c9f4dfd8af6337eb097d722b27fa76fa58dd441a",
- "reference": "c9f4dfd8af6337eb097d722b27fa76fa58dd441a",
+ "url":
"https://api.github.com/repos/DataValues/Common/zipball/5d9d4bf902427a2a798ca273480f7dad825c72b5",
+ "reference": "5d9d4bf902427a2a798ca273480f7dad825c72b5",
"shasum": ""
},
"require": {
"data-values/data-values": "~1.0|~0.1",
- "data-values/interfaces": "~0.1.4",
+ "data-values/interfaces": "~0.2.0|^0.1.5",
"php": ">=5.3.0"
},
- "time": "2014-10-09 18:21:19",
+ "time": "2015-08-14 10:15:07",
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "0.2.x-dev"
+ "dev-master": "0.3.x-dev"
}
},
"installation-source": "dist",
@@ -472,10 +472,10 @@
"files": [
"Common.php"
],
- "psr-0": {
- "DataValues\\": "src",
- "ValueFormatters\\": "src",
- "ValueParsers\\": "src"
+ "psr-4": {
+ "DataValues\\": "src/DataValues/",
+ "ValueFormatters\\": "src/ValueFormatters/",
+ "ValueParsers\\": "src/ValueParsers/"
},
"classmap": [
"tests/ValueParsers"
@@ -1272,20 +1272,20 @@
"source": {
"type": "git",
"url":
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git",
- "reference": "1cba17bd26b4070920aec5c52933defe48fa52e5"
+ "reference": "ca568f72284db9b1c296e604b71af626fb42045f"
},
"dist": {
"type": "zip",
- "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/1cba17bd26b4070920aec5c52933defe48fa52e5",
- "reference": "1cba17bd26b4070920aec5c52933defe48fa52e5",
+ "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/ca568f72284db9b1c296e604b71af626fb42045f",
+ "reference": "ca568f72284db9b1c296e604b71af626fb42045f",
"shasum": ""
},
"require": {
- "data-values/common": "~0.2.0",
+ "data-values/common": "~0.3.0",
"data-values/data-types": "~0.4.0",
"data-values/data-values": "~1.0",
"data-values/geo": "~1.0",
- "data-values/interfaces": "~0.1.5",
+ "data-values/interfaces": "~0.2.0|^0.1.5",
"data-values/javascript": "~0.6.0|~0.7.0",
"data-values/number": "~0.5.0",
"data-values/serialization": "~1.0",
@@ -1308,7 +1308,7 @@
"require-dev": {
"squizlabs/php_codesniffer": "~2.1"
},
- "time": "2015-08-15 19:49:52",
+ "time": "2015-08-17 09:43:40",
"type": "mediawiki-extension",
"installation-source": "dist",
"autoload": {
diff --git a/vendor/data-values/common/.travis.yml
b/vendor/data-values/common/.travis.yml
index 92d0962..3484c76 100644
--- a/vendor/data-values/common/.travis.yml
+++ b/vendor/data-values/common/.travis.yml
@@ -5,10 +5,11 @@
- 5.4
- 5.5
- 5.6
+ - 7
- hhvm
before_script:
- - composer install --prefer-source
+ - travis_retry composer install --prefer-source
script:
- - phpunit
+ - composer ci
diff --git a/vendor/data-values/common/Common.php
b/vendor/data-values/common/Common.php
index c0cf386..3d0d69e 100644
--- a/vendor/data-values/common/Common.php
+++ b/vendor/data-values/common/Common.php
@@ -10,17 +10,12 @@
* @author Jeroen De Dauw < [email protected] >
*/
-if ( defined( 'DataValuesCommon_VERSION' ) ) {
+if ( defined( 'DATAVALUES_COMMON_VERSION' ) ) {
// Do not initialize more than once.
return 1;
}
-define( 'DATAVALUES_COMMON_VERSION', '0.2.3' );
-
-/**
- * @deprecated
- */
-define( 'DataValuesCommon_VERSION', DATAVALUES_COMMON_VERSION );
+define( 'DATAVALUES_COMMON_VERSION', '0.3.1' );
if ( defined( 'MEDIAWIKI' ) ) {
$GLOBALS['wgExtensionCredits']['datavalues'][] = array(
diff --git a/vendor/data-values/common/README.md
b/vendor/data-values/common/README.md
index 42342ea..a857363 100644
--- a/vendor/data-values/common/README.md
+++ b/vendor/data-values/common/README.md
@@ -22,11 +22,11 @@
To add this package as a local, per-project dependency to your project, simply
add a
dependency on `data-values/common` to your project's `composer.json` file.
Here is a minimal example of a `composer.json` file that just defines a
dependency on
-version 1.0 of this package:
+version 0.3 of this package:
{
"require": {
- "data-values/common": "1.0.*"
+ "data-values/common": "0.3.*"
}
}
@@ -49,6 +49,23 @@
## Release notes
+### 0.3.1 (2015-08-14)
+
+* The component can now be installed together with DataValues Interfaces 0.1.5
+
+### 0.3.0 (2015-08-11)
+
+* Added `DispatchingValueParser`
+* Added `StringNormalizer` interface
+* Added `NullStringNormalizer`
+* Added `StringParser`
+* Dropped deprecated constant `DataValuesCommon_VERSION`, use
`DATAVALUES_COMMON_VERSION` instead
+* Dropped `ValueParserTestBase::getParserClass`
+* Dropped `ValueParserTestBase::newParserOptions`
+* Made `ValueParserTestBase::getInstance` abstract
+* Made `ValueParserTestBase::invalidInputProvider` abstract
+* Lowered visibility of all class fields to private
+
### 0.2.3 (2014-10-09)
* Introduced `FORMAT_NAME` class constants on ValueParsers in order to use
them as expectedFormat
diff --git a/vendor/data-values/common/composer.json
b/vendor/data-values/common/composer.json
index ded7496..45f01ef 100644
--- a/vendor/data-values/common/composer.json
+++ b/vendor/data-values/common/composer.json
@@ -25,24 +25,33 @@
"require": {
"php": ">=5.3.0",
"data-values/data-values": "~1.0|~0.1",
- "data-values/interfaces": "~0.1.4"
+ "data-values/interfaces": "~0.2.0|^0.1.5"
},
"extra": {
"branch-alias": {
- "dev-master": "0.2.x-dev"
+ "dev-master": "0.3.x-dev"
}
},
"autoload": {
"files" : [
"Common.php"
],
- "psr-0": {
- "DataValues\\": "src",
- "ValueFormatters\\": "src",
- "ValueParsers\\": "src"
+ "psr-4": {
+ "DataValues\\": "src/DataValues/",
+ "ValueFormatters\\": "src/ValueFormatters/",
+ "ValueParsers\\": "src/ValueParsers/"
},
"classmap": [
"tests/ValueParsers"
]
+ },
+ "scripts": {
+ "test": [
+ "composer validate --no-interaction",
+ "phpunit --coverage-text=/dev/null"
+ ],
+ "ci": [
+ "composer test"
+ ]
}
}
diff --git a/vendor/data-values/common/phpunit.xml.dist
b/vendor/data-values/common/phpunit.xml.dist
index 6de7d20..1c6adb1 100644
--- a/vendor/data-values/common/phpunit.xml.dist
+++ b/vendor/data-values/common/phpunit.xml.dist
@@ -10,7 +10,6 @@
stopOnFailure="false"
stopOnIncomplete="false"
stopOnSkipped="false"
- strict="true"
verbose="true">
<testsuites>
<testsuite name="DataValuesCommon">
diff --git a/vendor/data-values/common/src/DataValues/MonolingualTextValue.php
b/vendor/data-values/common/src/DataValues/MonolingualTextValue.php
index c1ebca8..dcd3cd2 100644
--- a/vendor/data-values/common/src/DataValues/MonolingualTextValue.php
+++ b/vendor/data-values/common/src/DataValues/MonolingualTextValue.php
@@ -13,30 +13,24 @@
class MonolingualTextValue extends DataValueObject {
/**
- * String value.
- *
* @var string
*/
- protected $value;
+ private $text;
/**
- * Language code.
- *
- * @since 0.1
- *
* @var string
*/
- protected $language;
+ private $languageCode;
/**
* @since 0.1
*
* @param string $languageCode
- * @param string $value
+ * @param string $text
*
* @throws IllegalValueException
*/
- public function __construct( $languageCode, $value ) {
+ public function __construct( $languageCode, $text ) {
if ( !is_string( $languageCode ) ) {
throw new IllegalValueException( 'Can only construct
MonolingualTextValue with a string language code.' );
}
@@ -44,12 +38,12 @@
throw new IllegalValueException( 'Can not construct a
MonolingualTextValue with an empty language code.' );
}
- if ( !is_string( $value ) ) {
+ if ( !is_string( $text ) ) {
throw new IllegalValueException( 'Can only construct a
MonolingualTextValue with a string value.' );
}
- $this->value = $value;
- $this->language = $languageCode;
+ $this->text = $text;
+ $this->languageCode = $languageCode;
}
/**
@@ -58,19 +52,17 @@
* @return string
*/
public function serialize() {
- return serialize( array( $this->language, $this->value ) );
+ return serialize( array( $this->languageCode, $this->text ) );
}
/**
* @see Serializable::unserialize
*
* @param string $value
- *
- * @return MonolingualTextValue
*/
public function unserialize( $value ) {
- list ( $languageCode, $value ) = unserialize( $value );
- $this->__construct( $languageCode, $value );
+ list( $languageCode, $text ) = unserialize( $value );
+ $this->__construct( $languageCode, $text );
}
/**
@@ -89,7 +81,7 @@
*/
public function getSortKey() {
// TODO: we might want to re-think this key. Perhaps the
language should simply be omitted.
- return $this->language . $this->value;
+ return $this->languageCode . $this->text;
}
/**
@@ -109,7 +101,7 @@
* @return string
*/
public function getText() {
- return $this->value;
+ return $this->text;
}
/**
@@ -120,7 +112,7 @@
* @return string
*/
public function getLanguageCode() {
- return $this->language;
+ return $this->languageCode;
}
/**
@@ -130,8 +122,8 @@
*/
public function getArrayValue() {
return array(
- 'text' => $this->value,
- 'language' => $this->language,
+ 'text' => $this->text,
+ 'language' => $this->languageCode,
);
}
diff --git a/vendor/data-values/common/src/DataValues/MultilingualTextValue.php
b/vendor/data-values/common/src/DataValues/MultilingualTextValue.php
index a22e782..97e3bbe 100644
--- a/vendor/data-values/common/src/DataValues/MultilingualTextValue.php
+++ b/vendor/data-values/common/src/DataValues/MultilingualTextValue.php
@@ -15,11 +15,9 @@
/**
* Array with language codes pointing to their associated texts.
*
- * @since 0.1
- *
* @var MonolingualTextValue[]
*/
- protected $texts = array();
+ private $texts = array();
/**
* @since 0.1
@@ -34,13 +32,13 @@
throw new IllegalValueException( 'Can only
construct MultilingualTextValue from MonolingualTextValue objects' );
}
- $langCode = $monolingualValue->getLanguageCode();
+ $languageCode = $monolingualValue->getLanguageCode();
- if ( array_key_exists( $langCode, $this->texts ) ) {
+ if ( array_key_exists( $languageCode, $this->texts ) ) {
throw new IllegalValueException( 'Can only add
a single MonolingualTextValue per language to a MultilingualTextValue' );
}
- $this->texts[$langCode] = $monolingualValue;
+ $this->texts[$languageCode] = $monolingualValue;
}
}
@@ -57,8 +55,6 @@
* @see Serializable::unserialize
*
* @param string $value
- *
- * @return MultilingualTextValue
*/
public function unserialize( $value ) {
$this->__construct( unserialize( $value ) );
diff --git
a/vendor/data-values/common/src/ValueFormatters/Exceptions/MismatchingDataValueTypeException.php
b/vendor/data-values/common/src/ValueFormatters/Exceptions/MismatchingDataValueTypeException.php
index 28c17eb..a07825e 100644
---
a/vendor/data-values/common/src/ValueFormatters/Exceptions/MismatchingDataValueTypeException.php
+++
b/vendor/data-values/common/src/ValueFormatters/Exceptions/MismatchingDataValueTypeException.php
@@ -16,12 +16,12 @@
/**
* @var string
*/
- protected $expectedValueType;
+ private $expectedValueType;
/**
* @var string
*/
- protected $dataValueType;
+ private $dataValueType;
/**
* @param string $expectedValueType
diff --git a/vendor/data-values/common/src/ValueFormatters/StringFormatter.php
b/vendor/data-values/common/src/ValueFormatters/StringFormatter.php
index bdaec88..acb6b50 100644
--- a/vendor/data-values/common/src/ValueFormatters/StringFormatter.php
+++ b/vendor/data-values/common/src/ValueFormatters/StringFormatter.php
@@ -16,16 +16,16 @@
class StringFormatter extends ValueFormatterBase {
/**
- * Formats a StringValue data value
+ * @see ValueFormatter::format
*
- * @param mixed $dataValue value to format
+ * @param StringValue $dataValue
*
- * @return string
* @throws InvalidArgumentException
+ * @return string Text
*/
public function format( $dataValue ) {
if ( !( $dataValue instanceof StringValue ) ) {
- throw new InvalidArgumentException( 'DataValue is not a
StringValue.' );
+ throw new InvalidArgumentException( 'Data value type
mismatch. Expected a StringValue.' );
}
return $dataValue->getValue();
diff --git a/vendor/data-values/common/src/ValueParsers/BoolParser.php
b/vendor/data-values/common/src/ValueParsers/BoolParser.php
index 1d2ea71..fb73aa2 100644
--- a/vendor/data-values/common/src/ValueParsers/BoolParser.php
+++ b/vendor/data-values/common/src/ValueParsers/BoolParser.php
@@ -16,7 +16,7 @@
const FORMAT_NAME = 'bool';
- protected $values = array(
+ private static $values = array(
'yes' => true,
'on' => true,
'1' => true,
@@ -40,8 +40,8 @@
$value = strtolower( $value );
- if ( array_key_exists( $value, $this->values ) ) {
- return new BooleanValue( $this->values[$value] );
+ if ( array_key_exists( $value, self::$values ) ) {
+ return new BooleanValue( self::$values[$value] );
}
throw new ParseException( 'Not a boolean', $rawValue,
self::FORMAT_NAME );
diff --git
a/vendor/data-values/common/src/ValueParsers/DispatchingValueParser.php
b/vendor/data-values/common/src/ValueParsers/DispatchingValueParser.php
new file mode 100644
index 0000000..cdd92de
--- /dev/null
+++ b/vendor/data-values/common/src/ValueParsers/DispatchingValueParser.php
@@ -0,0 +1,71 @@
+<?php
+
+namespace ValueParsers;
+
+use InvalidArgumentException;
+
+/**
+ * A generic value parser that forwards parsing to a list of other value
parsers and returns the
+ * result of the first parse attempt that succeeded.
+ *
+ * @since 0.3
+ *
+ * @licence GNU GPL v2+
+ * @author Thiemo Mättig
+ */
+class DispatchingValueParser implements ValueParser {
+
+ /**
+ * @var ValueParser[]
+ */
+ private $parsers;
+
+ /**
+ * @see ParseException::getExpectedFormat
+ *
+ * @var string
+ */
+ private $format;
+
+ /**
+ * @param ValueParser[] $parsers
+ * @param string $format An identifier describing the expected format
of the values to parse.
+ *
+ * @throws InvalidArgumentException
+ */
+ public function __construct( array $parsers, $format ) {
+ if ( empty( $parsers ) ) {
+ throw new InvalidArgumentException( '$parsers must be a
non-empty array' );
+ }
+
+ if ( !is_string( $format ) || $format === '' ) {
+ throw new InvalidArgumentException( '$format must be a
non-empty string' );
+ }
+
+ $this->parsers = $parsers;
+ $this->format = $format;
+ }
+
+ /**
+ * @param mixed $value
+ *
+ * @throws ParseException
+ * @return mixed
+ */
+ public function parse( $value ) {
+ foreach ( $this->parsers as $parser ) {
+ try {
+ return $parser->parse( $value );
+ } catch ( ParseException $ex ) {
+ continue;
+ }
+ }
+
+ throw new ParseException(
+ 'The value is not recognitzed by the configured
parsers',
+ $value,
+ $this->format
+ );
+ }
+
+}
diff --git
a/vendor/data-values/common/src/ValueParsers/Normalizers/NullStringNormalizer.php
b/vendor/data-values/common/src/ValueParsers/Normalizers/NullStringNormalizer.php
new file mode 100644
index 0000000..70ce302
--- /dev/null
+++
b/vendor/data-values/common/src/ValueParsers/Normalizers/NullStringNormalizer.php
@@ -0,0 +1,31 @@
+<?php
+
+namespace ValueParsers\Normalizers;
+
+use InvalidArgumentException;
+
+/**
+ * Null implementation of StringNormalizer.
+ *
+ * @since 0.3
+ *
+ * @license GPL 2+
+ * @author Daniel Kinzler
+ */
+class NullStringNormalizer implements StringNormalizer {
+
+ /**
+ * @param string $value
+ *
+ * @throws InvalidArgumentException if $value is not a string
+ * @return string the normalized value
+ */
+ public function normalize( $value ) {
+ if ( !is_string( $value ) ) {
+ throw new InvalidArgumentException( 'Parameter $value
must be a string' );
+ }
+
+ return $value;
+ }
+
+}
diff --git
a/vendor/data-values/common/src/ValueParsers/Normalizers/StringNormalizer.php
b/vendor/data-values/common/src/ValueParsers/Normalizers/StringNormalizer.php
new file mode 100644
index 0000000..d0cfe90
--- /dev/null
+++
b/vendor/data-values/common/src/ValueParsers/Normalizers/StringNormalizer.php
@@ -0,0 +1,25 @@
+<?php
+
+namespace ValueParsers\Normalizers;
+
+use InvalidArgumentException;
+
+/**
+ * Interface for string normalization.
+ *
+ * @since 0.3
+ *
+ * @license GPL 2+
+ * @author Daniel Kinzler
+ */
+interface StringNormalizer {
+
+ /**
+ * @param string $value
+ *
+ * @throws InvalidArgumentException if $value is not a string
+ * @return string the normalized value
+ */
+ public function normalize( $value );
+
+}
diff --git a/vendor/data-values/common/src/ValueParsers/StringParser.php
b/vendor/data-values/common/src/ValueParsers/StringParser.php
new file mode 100644
index 0000000..820446d
--- /dev/null
+++ b/vendor/data-values/common/src/ValueParsers/StringParser.php
@@ -0,0 +1,49 @@
+<?php
+
+namespace ValueParsers;
+
+use DataValues\StringValue;
+use InvalidArgumentException;
+use ValueParsers\Normalizers\NullStringNormalizer;
+use ValueParsers\Normalizers\StringNormalizer;
+
+/**
+ * Implementation of the ValueParser interface for StringValues.
+ *
+ * @since 0.3
+ *
+ * @licence GNU GPL v2+
+ * @author Daniel Kinzler
+ */
+class StringParser implements ValueParser {
+
+ /**
+ * @var StringNormalizer
+ */
+ private $normalizer;
+
+ /**
+ * @param StringNormalizer $normalizer
+ */
+ public function __construct( StringNormalizer $normalizer = null ) {
+ $this->normalizer = $normalizer ?: new NullStringNormalizer();
+ }
+
+ /**
+ * @see ValueParser::parse
+ *
+ * @param string $value
+ *
+ * @throws InvalidArgumentException if $value is not a string
+ * @return StringValue
+ */
+ public function parse( $value ) {
+ if ( !is_string( $value ) ) {
+ throw new InvalidArgumentException( 'Parameter $value
must be a string' );
+ }
+
+ $value = $this->normalizer->normalize( $value );
+ return new StringValue( $value );
+ }
+
+}
diff --git a/vendor/data-values/common/src/ValueParsers/StringValueParser.php
b/vendor/data-values/common/src/ValueParsers/StringValueParser.php
index 20f946f..0e17ac2 100644
--- a/vendor/data-values/common/src/ValueParsers/StringValueParser.php
+++ b/vendor/data-values/common/src/ValueParsers/StringValueParser.php
@@ -2,6 +2,7 @@
namespace ValueParsers;
+use InvalidArgumentException;
use RuntimeException;
/**
@@ -27,11 +28,7 @@
* @param ParserOptions|null $options
*/
public function __construct( ParserOptions $options = null ) {
- if ( $options === null ) {
- $options = new ParserOptions();
- }
-
- $this->options = $options;
+ $this->options = $options ?: new ParserOptions();
$this->defaultOption( ValueParser::OPT_LANG, 'en' );
}
@@ -64,8 +61,6 @@
protected abstract function stringParse( $value );
/**
- * @see ValueParser::setOptions
- *
* @since 0.1
*
* @param ParserOptions $options
@@ -75,8 +70,6 @@
}
/**
- * @see ValueParser::getOptions
- *
* @since 0.1
*
* @return ParserOptions
@@ -91,6 +84,9 @@
* @since 0.1
*
* @param string $option
+ *
+ * @throws InvalidArgumentException
+ * @return mixed
*/
protected final function getOption( $option ) {
return $this->options->getOption( $option );
@@ -99,6 +95,8 @@
/**
* Shortcut to $this->options->requireOption.
*
+ * @since 0.1
+ *
* @param string $option
*
* @throws RuntimeException
diff --git
a/vendor/data-values/common/tests/DataValues/MonolingualTextValueTest.php
b/vendor/data-values/common/tests/DataValues/MonolingualTextValueTest.php
index ad43d64..5d271f4 100644
--- a/vendor/data-values/common/tests/DataValues/MonolingualTextValueTest.php
+++ b/vendor/data-values/common/tests/DataValues/MonolingualTextValueTest.php
@@ -15,7 +15,7 @@
* @licence GNU GPL v2+
* @author Jeroen De Dauw < [email protected] >
*/
-class MonolingualTextTest extends DataValueTest {
+class MonolingualTextValueTest extends DataValueTest {
/**
* @see DataValueTest::getClass
@@ -38,13 +38,11 @@
public function invalidConstructorArgumentsProvider() {
$argLists = array();
- $argLists[] = array( 42 );
- $argLists[] = array( array() );
- $argLists[] = array( false );
- $argLists[] = array( true );
- $argLists[] = array( null );
- $argLists[] = array( 'foo' );
- $argLists[] = array( 'en' );
+ $argLists[] = array( 42, null );
+ $argLists[] = array( array(), null );
+ $argLists[] = array( false, null );
+ $argLists[] = array( true, null );
+ $argLists[] = array( null, null );
$argLists[] = array( 'en', 42 );
$argLists[] = array( 'en', false );
$argLists[] = array( 'en', array() );
diff --git
a/vendor/data-values/common/tests/DataValues/MultilingualTextValueTest.php
b/vendor/data-values/common/tests/DataValues/MultilingualTextValueTest.php
index 63fc328..b0cc406 100644
--- a/vendor/data-values/common/tests/DataValues/MultilingualTextValueTest.php
+++ b/vendor/data-values/common/tests/DataValues/MultilingualTextValueTest.php
@@ -16,7 +16,7 @@
* @licence GNU GPL v2+
* @author Jeroen De Dauw < [email protected] >
*/
-class MultilingualTextTest extends DataValueTest {
+class MultilingualTextValueTest extends DataValueTest {
/**
* @see DataValueTest::getClass
@@ -45,22 +45,13 @@
public function invalidConstructorArgumentsProvider() {
$argLists = array();
- $argLists[] = array( 42 );
- $argLists[] = array( false );
- $argLists[] = array( true );
- $argLists[] = array( null );
- $argLists[] = array( 'foo' );
- $argLists[] = array( 'en' );
- $argLists[] = array( 'en', 42 );
- $argLists[] = array( 'en', false );
- $argLists[] = array( 'en', array() );
- $argLists[] = array( 'en', null );
- $argLists[] = array( '', 'foo' );
- $argLists[] = array( 'en', 'foo' );
- $argLists[] = array( 'en', ' foo bar baz foo bar baz foo bar
baz foo bar baz foo bar baz foo bar baz ' );
- $argLists[] = array( new MonolingualTextValue( 'en', 'foo' ) );
-
+ $argLists[] = array( array( 42 ) );
+ $argLists[] = array( array( false ) );
+ $argLists[] = array( array( true ) );
+ $argLists[] = array( array( null ) );
+ $argLists[] = array( array( array() ) );
$argLists[] = array( array( 'foo' ) );
+
$argLists[] = array( array( 42 => 'foo' ) );
$argLists[] = array( array( '' => 'foo' ) );
$argLists[] = array( array( 'en' => 42 ) );
diff --git
a/vendor/data-values/common/tests/ValueFormatters/Exceptions/MismatchingDataValueTypeException.php
b/vendor/data-values/common/tests/ValueFormatters/Exceptions/MismatchingDataValueTypeException.php
index fbc518e..8a21187 100644
---
a/vendor/data-values/common/tests/ValueFormatters/Exceptions/MismatchingDataValueTypeException.php
+++
b/vendor/data-values/common/tests/ValueFormatters/Exceptions/MismatchingDataValueTypeException.php
@@ -17,6 +17,8 @@
/**
* @dataProvider constructorProvider
+ * @param string $expectedType
+ * @param string $actualType
*/
public function testConstructorWithRequiredArguments( $expectedType,
$actualType ) {
$exception = new MismatchingDataValueTypeException(
$expectedType, $actualType );
@@ -27,6 +29,8 @@
/**
* @dataProvider constructorProvider
+ * @param string $expectedType
+ * @param string $actualType
*/
public function testConstructorWithAllArguments( $expectedType,
$actualType ) {
$message = 'Onoez! an error!';
diff --git
a/vendor/data-values/common/tests/ValueFormatters/StringFormatterTest.php
b/vendor/data-values/common/tests/ValueFormatters/StringFormatterTest.php
index 9e0e8ff..3aef150 100644
--- a/vendor/data-values/common/tests/ValueFormatters/StringFormatterTest.php
+++ b/vendor/data-values/common/tests/ValueFormatters/StringFormatterTest.php
@@ -3,11 +3,11 @@
namespace ValueFormatters\Test;
use DataValues\StringValue;
+use ValueFormatters\FormatterOptions;
+use ValueFormatters\StringFormatter;
/**
- * Unit tests for the ValueFormatters\StringFormatter class.
- *
- * @since 0.1
+ * @covers ValueFormatters\StringFormatter
*
* @group ValueFormatters
* @group DataValueExtensions
@@ -16,6 +16,24 @@
* @author Katie Filbert < [email protected] >
*/
class StringFormatterTest extends ValueFormatterTestBase {
+
+ /**
+ * @deprecated since 0.2, just use getInstance.
+ */
+ protected function getFormatterClass() {
+ throw new \LogicException( 'Should not be called, use
getInstance' );
+ }
+
+ /**
+ * @see ValueFormatterTestBase::getInstance
+ *
+ * @param FormatterOptions|null $options
+ *
+ * @return StringFormatter
+ */
+ protected function getInstance( FormatterOptions $options = null ) {
+ return new StringFormatter( $options );
+ }
/**
* @see ValueFormatterTestBase::validProvider
@@ -36,15 +54,6 @@
}
return $argLists;
- }
-
- /**
- * @see ValueFormatterTestBase::getFormatterClass
- *
- * @return string
- */
- protected function getFormatterClass() {
- return 'ValueFormatters\StringFormatter';
}
}
diff --git a/vendor/data-values/common/tests/ValueParsers/BoolParserTest.php
b/vendor/data-values/common/tests/ValueParsers/BoolParserTest.php
index cfbe828..9de03a2 100644
--- a/vendor/data-values/common/tests/ValueParsers/BoolParserTest.php
+++ b/vendor/data-values/common/tests/ValueParsers/BoolParserTest.php
@@ -3,11 +3,10 @@
namespace ValueParsers\Test;
use DataValues\BooleanValue;
+use ValueParsers\BoolParser;
/**
- * Unit test BoolParser class.
- *
- * @since 0.1
+ * @covers ValueParsers\BoolParser
*
* @group ValueParsers
* @group DataValueExtensions
@@ -16,6 +15,15 @@
* @author Jeroen De Dauw < [email protected] >
*/
class BoolParserTest extends StringValueParserTest {
+
+ /**
+ * @see ValueParserTestBase::getInstance
+ *
+ * @return BoolParser
+ */
+ protected function getInstance() {
+ return new BoolParser();
+ }
/**
* @see ValueParserTestBase::validInputProvider
@@ -60,15 +68,6 @@
}
return $argLists;
- }
-
- /**
- * @see ValueParserTestBase::getParserClass
- *
- * @return string
- */
- protected function getParserClass() {
- return 'ValueParsers\BoolParser';
}
}
diff --git
a/vendor/data-values/common/tests/ValueParsers/DispatchingValueParserTest.php
b/vendor/data-values/common/tests/ValueParsers/DispatchingValueParserTest.php
new file mode 100644
index 0000000..dc94e1f
--- /dev/null
+++
b/vendor/data-values/common/tests/ValueParsers/DispatchingValueParserTest.php
@@ -0,0 +1,90 @@
+<?php
+
+namespace ValueParsers\Test;
+
+use InvalidArgumentException;
+use PHPUnit_Framework_MockObject_Matcher_Invocation;
+use PHPUnit_Framework_TestCase;
+use ValueParsers\DispatchingValueParser;
+use ValueParsers\ParseException;
+use ValueParsers\ValueParser;
+
+/**
+ * @covers ValueParsers\DispatchingValueParser
+ *
+ * @group ValueParsers
+ * @group WikibaseLib
+ * @group Wikibase
+ *
+ * @licence GNU GPL v2+
+ * @author Thiemo Mättig
+ */
+class DispatchingValueParserTest extends PHPUnit_Framework_TestCase {
+
+ /**
+ * @param PHPUnit_Framework_MockObject_Matcher_Invocation $invocation
+ *
+ * @return ValueParser
+ */
+ private function getParser(
PHPUnit_Framework_MockObject_Matcher_Invocation $invocation ) {
+ $mock = $this->getMockBuilder( 'ValueParsers\ValueParser' )
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $mock->expects( $invocation )
+ ->method( 'parse' )
+ ->will( $this->returnCallback( function( $value ) {
+ if ( $value === 'invalid' ) {
+ throw new ParseException( 'failed' );
+ }
+ return $value;
+ } ) );
+
+ return $mock;
+ }
+
+ /**
+ * @dataProvider invalidConstructorArgumentsProvider
+ * @expectedException InvalidArgumentException
+ */
+ public function
testGivenInvalidConstructorArguments_constructorThrowsException( $parsers,
$format ) {
+ new DispatchingValueParser( $parsers, $format );
+ }
+
+ public function invalidConstructorArgumentsProvider() {
+ $parsers = array(
+ $this->getParser( $this->never() ),
+ );
+
+ return array(
+ array( array(), 'format' ),
+ array( $parsers, null ),
+ array( $parsers, '' ),
+ );
+ }
+
+ public function testParse() {
+ $parser = new DispatchingValueParser(
+ array(
+ $this->getParser( $this->once() ),
+ $this->getParser( $this->never() ),
+ ),
+ 'format'
+ );
+
+ $this->assertEquals( 'valid', $parser->parse( 'valid' ) );
+ }
+
+ public function testParseThrowsException() {
+ $parser = new DispatchingValueParser(
+ array(
+ $this->getParser( $this->once() ),
+ ),
+ 'format'
+ );
+
+ $this->setExpectedException( 'ValueParsers\ParseException' );
+ $parser->parse( 'invalid' );
+ }
+
+}
diff --git a/vendor/data-values/common/tests/ValueParsers/FloatParserTest.php
b/vendor/data-values/common/tests/ValueParsers/FloatParserTest.php
index 748d8a5..27d35fe 100644
--- a/vendor/data-values/common/tests/ValueParsers/FloatParserTest.php
+++ b/vendor/data-values/common/tests/ValueParsers/FloatParserTest.php
@@ -3,11 +3,10 @@
namespace ValueParsers\Test;
use DataValues\NumberValue;
+use ValueParsers\FloatParser;
/**
- * Unit test FloatParser class.
- *
- * @since 0.1
+ * @covers ValueParsers\FloatParser
*
* @group ValueParsers
* @group DataValueExtensions
@@ -17,6 +16,15 @@
* @author Jeroen De Dauw < [email protected] >
*/
class FloatParserTest extends StringValueParserTest {
+
+ /**
+ * @see ValueParserTestBase::getInstance
+ *
+ * @return FloatParser
+ */
+ protected function getInstance() {
+ return new FloatParser();
+ }
/**
* @see ValueParserTestBase::validInputProvider
@@ -81,15 +89,6 @@
}
return $argLists;
- }
-
- /**
- * @see ValueParserTestBase::getParserClass
- *
- * @return string
- */
- protected function getParserClass() {
- return 'ValueParsers\FloatParser';
}
}
diff --git a/vendor/data-values/common/tests/ValueParsers/IntParserTest.php
b/vendor/data-values/common/tests/ValueParsers/IntParserTest.php
index e20e003..e039373 100644
--- a/vendor/data-values/common/tests/ValueParsers/IntParserTest.php
+++ b/vendor/data-values/common/tests/ValueParsers/IntParserTest.php
@@ -3,11 +3,10 @@
namespace ValueParsers\Test;
use DataValues\NumberValue;
+use ValueParsers\IntParser;
/**
- * Unit test IntParser class.
- *
- * @since 0.1
+ * @covers ValueParsers\IntParser
*
* @group ValueParsers
* @group DataValueExtensions
@@ -16,6 +15,15 @@
* @author Jeroen De Dauw < [email protected] >
*/
class IntParserTest extends StringValueParserTest {
+
+ /**
+ * @see ValueParserTestBase::getInstance
+ *
+ * @return IntParser
+ */
+ protected function getInstance() {
+ return new IntParser();
+ }
/**
* @see ValueParserTestBase::validInputProvider
@@ -70,15 +78,6 @@
}
return $argLists;
- }
-
- /**
- * @see ValueParserTestBase::getParserClass
- *
- * @return string
- */
- protected function getParserClass() {
- return 'ValueParsers\IntParser';
}
}
diff --git
a/vendor/data-values/common/tests/ValueParsers/Normalizers/NullStringNormalizerTest.php
b/vendor/data-values/common/tests/ValueParsers/Normalizers/NullStringNormalizerTest.php
new file mode 100644
index 0000000..ba52837
--- /dev/null
+++
b/vendor/data-values/common/tests/ValueParsers/Normalizers/NullStringNormalizerTest.php
@@ -0,0 +1,55 @@
+<?php
+
+namespace ValueParsers\Normalizers\Test;
+
+use DataValues\DataValue;
+use DataValues\StringValue;
+use PHPUnit_Framework_TestCase;
+use ValueParsers\Normalizers\NullStringNormalizer;
+
+/**
+ * @covers ValueParsers\Normalizers\NullStringNormalizer
+ *
+ * @group ValueParsers
+ * @group DataValueExtensions
+ *
+ * @licence GNU GPL v2+
+ * @author Thiemo Mättig
+ */
+class NullStringNormalizerTest extends PHPUnit_Framework_TestCase {
+
+ /**
+ * @dataProvider stringProvider
+ */
+ public function testNormalize( $value ) {
+ $normalizer = new NullStringNormalizer();
+ $this->assertSame( $value, $normalizer->normalize( $value ) );
+ }
+
+ public function stringProvider() {
+ return array(
+ array( '' ),
+ array( 'a' ),
+ array( ' a ' ),
+ );
+ }
+
+ /**
+ * @dataProvider invalidValueProvider
+ */
+ public function testNormalizeException( $value ) {
+ $normalizer = new NullStringNormalizer();
+ $this->setExpectedException( 'InvalidArgumentException' );
+ $normalizer->normalize( $value );
+ }
+
+ public function invalidValueProvider() {
+ return array(
+ array( null ),
+ array( true ),
+ array( 1 ),
+ array( new StringValue( '' ) ),
+ );
+ }
+
+}
diff --git a/vendor/data-values/common/tests/ValueParsers/NullParserTest.php
b/vendor/data-values/common/tests/ValueParsers/NullParserTest.php
index bccbc1a..f4ad45f 100644
--- a/vendor/data-values/common/tests/ValueParsers/NullParserTest.php
+++ b/vendor/data-values/common/tests/ValueParsers/NullParserTest.php
@@ -3,12 +3,11 @@
namespace ValueParsers\Test;
use DataValues\UnknownValue;
+use ValueParsers\NullParser;
use ValueParsers\ValueParser;
/**
- * Unit test NullParser class.
- *
- * @since 0.1
+ * @covers ValueParsers\NullParser
*
* @group ValueParsers
* @group DataValueExtensions
@@ -17,6 +16,15 @@
* @author Jeroen De Dauw < [email protected] >
*/
class NullParserTest extends ValueParserTestBase {
+
+ /**
+ * @see ValueParserTestBase::getInstance
+ *
+ * @return NullParser
+ */
+ protected function getInstance() {
+ return new NullParser();
+ }
/**
* @see ValueParserTestBase::validInputProvider
@@ -48,28 +56,20 @@
* @see ValueParserTestBase::invalidInputProvider
*/
public function invalidInputProvider() {
- return array( array(
- 'This sucks; this parser has no invalid inputs, so this
test should be skipped.' .
- 'Not clear how to do that in a way one does not get a
"incomplete test" notice though'
- ) );
+ return array(
+ array( null )
+ );
}
/**
+ * @see ValueParserTestBase::testParseWithInvalidInputs
+ *
* @dataProvider invalidInputProvider
- * @param $value
- * @param ValueParser $parser
+ * @param mixed $value
+ * @param ValueParser|null $parser
*/
public function testParseWithInvalidInputs( $value, ValueParser $parser
= null ) {
- $this->assertTrue( true );
- }
-
- /**
- * @see ValueParserTestBase::getParserClass
- *
- * @return string
- */
- protected function getParserClass() {
- return 'ValueParsers\NullParser';
+ $this->markTestSkipped( 'NullParser has no invalid inputs' );
}
}
diff --git a/vendor/data-values/common/tests/ValueParsers/StringParserTest.php
b/vendor/data-values/common/tests/ValueParsers/StringParserTest.php
new file mode 100644
index 0000000..0875166
--- /dev/null
+++ b/vendor/data-values/common/tests/ValueParsers/StringParserTest.php
@@ -0,0 +1,63 @@
+<?php
+
+namespace ValueParsers\Test;
+
+use DataValues\DataValue;
+use DataValues\StringValue;
+use ValueParsers\Normalizers\StringNormalizer;
+use ValueParsers\StringParser;
+
+/**
+ * @covers ValueParsers\StringParser
+ *
+ * @group ValueParsers
+ * @group DataValueExtensions
+ *
+ * @licence GNU GPL v2+
+ * @author Daniel Kinzler
+ */
+class StringParserTest extends \PHPUnit_Framework_TestCase {
+
+ public function provideParse() {
+ $normalizer = $this->getMock(
'ValueParsers\Normalizers\StringNormalizer' );
+ $normalizer->expects( $this->once() )
+ ->method( 'normalize' )
+ ->will( $this->returnCallback( function( $value ) {
+ return strtolower( trim( $value ) );
+ } ) );
+
+ return array(
+ 'simple' => array( 'hello world', null, new
StringValue( 'hello world' ) ),
+ 'normalize' => array( ' Hello World ', $normalizer,
new StringValue( 'hello world' ) ),
+ );
+ }
+
+ /**
+ * @dataProvider provideParse
+ */
+ public function testParse( $input, StringNormalizer $normalizer = null,
DataValue $expected ) {
+ $parser = new StringParser( $normalizer );
+ $value = $parser->parse( $input );
+
+ $this->assertInstanceOf( 'DataValues\StringValue', $value );
+ $this->assertEquals( $expected->toArray(), $value->toArray() );
+ }
+
+ public function nonStringProvider() {
+ return array(
+ 'null' => array( null ),
+ 'array' => array( array() ),
+ 'int' => array( 7 ),
+ );
+ }
+
+ /**
+ * @dataProvider nonStringProvider
+ */
+ public function testGivenNonString_parseThrowsException( $input ) {
+ $parser = new StringParser();
+ $this->setExpectedException( 'InvalidArgumentException' );
+ $parser->parse( $input );
+ }
+
+}
diff --git
a/vendor/data-values/common/tests/ValueParsers/StringValueParserTest.php
b/vendor/data-values/common/tests/ValueParsers/StringValueParserTest.php
index d374873..962de1d 100644
--- a/vendor/data-values/common/tests/ValueParsers/StringValueParserTest.php
+++ b/vendor/data-values/common/tests/ValueParsers/StringValueParserTest.php
@@ -2,6 +2,7 @@
namespace ValueParsers\Test;
+use ValueParsers\ParserOptions;
use ValueParsers\StringValueParser;
/**
@@ -17,38 +18,33 @@
*/
abstract class StringValueParserTest extends ValueParserTestBase {
+ /**
+ * @see ValueParserTestBase::invalidInputProvider
+ *
+ * @return array[]
+ */
public function invalidInputProvider() {
- $argLists = array();
-
- $invalid = array(
- true,
- false,
- null,
- 4.2,
- array(),
- 42,
+ return array(
+ array( true ),
+ array( false ),
+ array( null ),
+ array( 4.2 ),
+ array( array() ),
+ array( 42 ),
);
-
- foreach ( $invalid as $value ) {
- $argLists[] = array( $value );
- }
-
- return $argLists;
}
public function testSetAndGetOptions() {
- $options = $this->newParserOptions();
-
/**
* @var StringValueParser $parser
*/
$parser = $this->getInstance();
- $parser->setOptions( $options );
+ $parser->setOptions( new ParserOptions() );
- $this->assertEquals( $options, $parser->getOptions() );
+ $this->assertEquals( new ParserOptions(), $parser->getOptions()
);
- $options = $this->newParserOptions();
+ $options = new ParserOptions();
$options->setOption( '~=[,,_,,]:3', '~=[,,_,,]:3' );
$parser->setOptions( $options );
diff --git
a/vendor/data-values/common/tests/ValueParsers/ValueParserTestBase.php
b/vendor/data-values/common/tests/ValueParsers/ValueParserTestBase.php
index 63a428f..f937f81 100644
--- a/vendor/data-values/common/tests/ValueParsers/ValueParserTestBase.php
+++ b/vendor/data-values/common/tests/ValueParsers/ValueParserTestBase.php
@@ -4,6 +4,7 @@
use Comparable;
use DataValues\DataValue;
+use PHPUnit_Framework_TestCase;
use ValueParsers\ParserOptions;
use ValueParsers\ValueParser;
@@ -18,46 +19,39 @@
* @licence GNU GPL v2+
* @author Jeroen De Dauw < [email protected] >
*/
-abstract class ValueParserTestBase extends \PHPUnit_Framework_TestCase {
+abstract class ValueParserTestBase extends PHPUnit_Framework_TestCase {
/**
* @since 0.1
- * @return string
- */
- protected abstract function getParserClass();
-
- /**
- * @since 0.1
+ *
* @return array[]
*/
public abstract function validInputProvider();
/**
* @since 0.1
+ *
* @return array[]
*/
- public function invalidInputProvider() {
- return array();
- }
+ public abstract function invalidInputProvider();
/**
* @since 0.1
+ *
* @return ValueParser
*/
- protected function getInstance() {
- $class = $this->getParserClass();
- return new $class( $this->newParserOptions() );
- }
+ protected abstract function getInstance();
/**
- * @dataProvider validInputProvider
* @since 0.1
+ *
+ * @dataProvider validInputProvider
* @param mixed $value
* @param mixed $expected
* @param ValueParser|null $parser
*/
public function testParseWithValidInputs( $value, $expected,
ValueParser $parser = null ) {
- if ( is_null( $parser ) ) {
+ if ( $parser === null ) {
$parser = $this->getInstance();
}
@@ -86,18 +80,18 @@
}
/**
- * @dataProvider invalidInputProvider
* @since 0.1
+ *
+ * @dataProvider invalidInputProvider
* @param mixed $value
* @param ValueParser|null $parser
*/
public function testParseWithInvalidInputs( $value, ValueParser $parser
= null ) {
- if ( is_null( $parser ) ) {
+ if ( $parser === null ) {
$parser = $this->getInstance();
}
$this->setExpectedException( 'ValueParsers\ParseException' );
-
$parser->parse( $value );
}
@@ -110,17 +104,6 @@
*/
protected function requireDataValue() {
return true;
- }
-
- /**
- * Returns some parser options object with all required options for the
parser under test set.
- *
- * @since 0.1
- *
- * @return ParserOptions
- */
- protected function newParserOptions() {
- return new ParserOptions();
}
}
diff --git a/vendor/data-values/common/tests/bootstrap.php
b/vendor/data-values/common/tests/bootstrap.php
index a0996d3..ac82d46 100644
--- a/vendor/data-values/common/tests/bootstrap.php
+++ b/vendor/data-values/common/tests/bootstrap.php
@@ -4,9 +4,11 @@
die( 'Not an entry point' );
}
-$pwd = getcwd();
-chdir( __DIR__ . '/..' );
-passthru( 'composer update' );
-chdir( $pwd );
+error_reporting( E_ALL | E_STRICT );
+ini_set( 'display_errors', 1 );
-require_once( __DIR__ . '/../vendor/autoload.php' );
+if ( !is_readable( __DIR__ . '/../vendor/autoload.php' ) ) {
+ die( 'You need to install this package with Composer before you can run
the tests' );
+}
+
+require_once __DIR__ . '/../vendor/autoload.php';
--
To view, visit https://gerrit.wikimedia.org/r/231997
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I676d98846132c78a0637a352307e18e7d5cae92f
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikidata
Gerrit-Branch: master
Gerrit-Owner: WikidataBuilder <[email protected]>
Gerrit-Reviewer: Addshore <[email protected]>
Gerrit-Reviewer: Aude <[email protected]>
Gerrit-Reviewer: JanZerebecki <[email protected]>
Gerrit-Reviewer: Legoktm <[email protected]>
Gerrit-Reviewer: Siebrand <[email protected]>
Gerrit-Reviewer: Tobias Gritschacher <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits