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

Reply via email to