Jeroen De Dauw has uploaded a new change for review. https://gerrit.wikimedia.org/r/80019
Change subject: Get rid of manual autoloading and pointless test runner ...................................................................... Get rid of manual autoloading and pointless test runner Change-Id: I88aba9eb3da845e8d29f7daeabe0ed8954ba3028 --- D DataValues/DataValues.classes.php M DataValues/DataValues.php R DataValues/interfaces/Comparable.php R DataValues/interfaces/Copyable.php R DataValues/interfaces/Hashable.php R DataValues/interfaces/Immutable.php M DataValues/phpunit.xml.dist R DataValues/src/BooleanValue.php R DataValues/src/DataValue.php R DataValues/src/DataValueFactory.php R DataValues/src/DataValueObject.php R DataValues/src/GlobeCoordinateValue.php R DataValues/src/IllegalValueException.php R DataValues/src/IriValue.php R DataValues/src/LatLongValue.php R DataValues/src/MonolingualTextValue.php R DataValues/src/MultilingualTextValue.php R DataValues/src/NumberValue.php R DataValues/src/QuantityValue.php R DataValues/src/StringValue.php R DataValues/src/TimeValue.php R DataValues/src/UnDeserializableValue.php R DataValues/src/UnknownValue.php R DataValues/tests/phpunit/BooleanValueTest.php R DataValues/tests/phpunit/DataValueFactoryTest.php R DataValues/tests/phpunit/DataValueTest.php R DataValues/tests/phpunit/GlobeCoordinateValueTest.php R DataValues/tests/phpunit/IriValueTest.php R DataValues/tests/phpunit/LatLongValueTest.php R DataValues/tests/phpunit/MonolingualTextValueTest.php R DataValues/tests/phpunit/MultilingualTextValueTest.php R DataValues/tests/phpunit/NumberValueTest.php R DataValues/tests/phpunit/QuantityValueTest.php R DataValues/tests/phpunit/StringValueTest.php R DataValues/tests/phpunit/TimeValueTest.php R DataValues/tests/phpunit/UnDeserializableValueTest.php R DataValues/tests/phpunit/UnknownValueTest.php D DataValues/tests/phpunit/phpunit.php M DataValues/tests/testLoader.php 39 files changed, 56 insertions(+), 88 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/DataValues refs/changes/19/80019/1 diff --git a/DataValues/DataValues.classes.php b/DataValues/DataValues.classes.php deleted file mode 100644 index 97bd64b..0000000 --- a/DataValues/DataValues.classes.php +++ /dev/null @@ -1,40 +0,0 @@ -<?php - -/** - * Class registration file for the DataValues library. - * - * @since 0.1 - * - * @file - * @ingroup DataValues - * - * @licence GNU GPL v2+ - * @author Jeroen De Dauw < jeroended...@gmail.com > - */ -return array( - 'DataValues\BooleanValue' => 'includes/values/BooleanValue.php', - 'DataValues\GlobeCoordinateValue' => 'includes/values/GlobeCoordinateValue.php', - 'DataValues\IriValue' => 'includes/values/IriValue.php', - 'DataValues\LatLongValue' => 'includes/values/LatLongValue.php', - 'DataValues\MonolingualTextValue' => 'includes/values/MonolingualTextValue.php', - 'DataValues\MultilingualTextValue' => 'includes/values/MultilingualTextValue.php', - 'DataValues\NumberValue' => 'includes/values/NumberValue.php', - 'DataValues\QuantityValue' => 'includes/values/QuantityValue.php', - 'DataValues\StringValue' => 'includes/values/StringValue.php', - 'DataValues\TimeValue' => 'includes/values/TimeValue.php', - 'DataValues\UnknownValue' => 'includes/values/UnknownValue.php', - 'DataValues\UnDeserializableValue' => 'includes/values/UnDeserializableValue.php', - - 'DataValues\DataValue' => 'includes/DataValue.php', - 'DataValues\DataValueFactory' => 'includes/DataValueFactory.php', - 'DataValues\DataValueObject' => 'includes/DataValueObject.php', - - 'DataValues\IllegalValueException' => 'includes/IllegalValueException.php', - - 'Comparable' => 'includes/Comparable.php', - 'Copyable' => 'includes/Copyable.php', - 'Hashable' => 'includes/Hashable.php', - 'Immutable' => 'includes/Immutable.php', - - 'DataValues\Test\DataValueTest' => 'tests/phpunit/includes/DataValueTest.php', -); diff --git a/DataValues/DataValues.php b/DataValues/DataValues.php index bf2ea79..e729c27 100644 --- a/DataValues/DataValues.php +++ b/DataValues/DataValues.php @@ -37,17 +37,30 @@ define( 'DataValues_VERSION', '0.1 alpha' ); spl_autoload_register( function ( $className ) { - // @codeCoverageIgnoreStart - static $classes = false; - - if ( $classes === false ) { - $classes = include( __DIR__ . '/' . 'DataValues.classes.php' ); + if ( in_array( $className, array( 'Comparable', 'Copyable', 'Hashable', 'Immutable' ) ) ) { + require_once __DIR__ . '/interfaces/' . $className . '.php'; + return; } - if ( array_key_exists( $className, $classes ) ) { - include_once __DIR__ . '/' . $classes[$className]; + $className = ltrim( $className, '\\' ); + $fileName = ''; + $namespace = ''; + + if ( $lastNsPos = strripos( $className, '\\') ) { + $namespace = substr( $className, 0, $lastNsPos ); + $className = substr( $className, $lastNsPos + 1 ); + $fileName = str_replace( '\\', '/', $namespace ) . '/'; } - // @codeCoverageIgnoreEnd + + $fileName .= str_replace( '_', '/', $className ) . '.php'; + + $namespaceSegments = explode( '\\', $namespace ); + + if ( $namespaceSegments[0] === 'DataValues' ) { + if ( count( $namespaceSegments ) === 1 || $namespaceSegments[1] !== 'Tests' ) { + require_once __DIR__ . '/src/' . substr( $fileName, 11 ); + } + } } ); if ( defined( 'MEDIAWIKI' ) ) { diff --git a/DataValues/includes/Comparable.php b/DataValues/interfaces/Comparable.php similarity index 100% rename from DataValues/includes/Comparable.php rename to DataValues/interfaces/Comparable.php diff --git a/DataValues/includes/Copyable.php b/DataValues/interfaces/Copyable.php similarity index 100% rename from DataValues/includes/Copyable.php rename to DataValues/interfaces/Copyable.php diff --git a/DataValues/includes/Hashable.php b/DataValues/interfaces/Hashable.php similarity index 100% rename from DataValues/includes/Hashable.php rename to DataValues/interfaces/Hashable.php diff --git a/DataValues/includes/Immutable.php b/DataValues/interfaces/Immutable.php similarity index 100% rename from DataValues/includes/Immutable.php rename to DataValues/interfaces/Immutable.php diff --git a/DataValues/phpunit.xml.dist b/DataValues/phpunit.xml.dist index d38c30c..b0c7d3c 100644 --- a/DataValues/phpunit.xml.dist +++ b/DataValues/phpunit.xml.dist @@ -14,7 +14,7 @@ verbose="true"> <testsuites> <testsuite name="DataValues"> - <directory>tests</directory> + <directory>tests/phpunit</directory> </testsuite> </testsuites> </phpunit> diff --git a/DataValues/includes/values/BooleanValue.php b/DataValues/src/BooleanValue.php similarity index 100% rename from DataValues/includes/values/BooleanValue.php rename to DataValues/src/BooleanValue.php diff --git a/DataValues/includes/DataValue.php b/DataValues/src/DataValue.php similarity index 100% rename from DataValues/includes/DataValue.php rename to DataValues/src/DataValue.php diff --git a/DataValues/includes/DataValueFactory.php b/DataValues/src/DataValueFactory.php similarity index 100% rename from DataValues/includes/DataValueFactory.php rename to DataValues/src/DataValueFactory.php diff --git a/DataValues/includes/DataValueObject.php b/DataValues/src/DataValueObject.php similarity index 100% rename from DataValues/includes/DataValueObject.php rename to DataValues/src/DataValueObject.php diff --git a/DataValues/includes/values/GlobeCoordinateValue.php b/DataValues/src/GlobeCoordinateValue.php similarity index 100% rename from DataValues/includes/values/GlobeCoordinateValue.php rename to DataValues/src/GlobeCoordinateValue.php diff --git a/DataValues/includes/IllegalValueException.php b/DataValues/src/IllegalValueException.php similarity index 100% rename from DataValues/includes/IllegalValueException.php rename to DataValues/src/IllegalValueException.php diff --git a/DataValues/includes/values/IriValue.php b/DataValues/src/IriValue.php similarity index 100% rename from DataValues/includes/values/IriValue.php rename to DataValues/src/IriValue.php diff --git a/DataValues/includes/values/LatLongValue.php b/DataValues/src/LatLongValue.php similarity index 100% rename from DataValues/includes/values/LatLongValue.php rename to DataValues/src/LatLongValue.php diff --git a/DataValues/includes/values/MonolingualTextValue.php b/DataValues/src/MonolingualTextValue.php similarity index 100% rename from DataValues/includes/values/MonolingualTextValue.php rename to DataValues/src/MonolingualTextValue.php diff --git a/DataValues/includes/values/MultilingualTextValue.php b/DataValues/src/MultilingualTextValue.php similarity index 100% rename from DataValues/includes/values/MultilingualTextValue.php rename to DataValues/src/MultilingualTextValue.php diff --git a/DataValues/includes/values/NumberValue.php b/DataValues/src/NumberValue.php similarity index 100% rename from DataValues/includes/values/NumberValue.php rename to DataValues/src/NumberValue.php diff --git a/DataValues/includes/values/QuantityValue.php b/DataValues/src/QuantityValue.php similarity index 100% rename from DataValues/includes/values/QuantityValue.php rename to DataValues/src/QuantityValue.php diff --git a/DataValues/includes/values/StringValue.php b/DataValues/src/StringValue.php similarity index 100% rename from DataValues/includes/values/StringValue.php rename to DataValues/src/StringValue.php diff --git a/DataValues/includes/values/TimeValue.php b/DataValues/src/TimeValue.php similarity index 100% rename from DataValues/includes/values/TimeValue.php rename to DataValues/src/TimeValue.php diff --git a/DataValues/includes/values/UnDeserializableValue.php b/DataValues/src/UnDeserializableValue.php similarity index 100% rename from DataValues/includes/values/UnDeserializableValue.php rename to DataValues/src/UnDeserializableValue.php diff --git a/DataValues/includes/values/UnknownValue.php b/DataValues/src/UnknownValue.php similarity index 100% rename from DataValues/includes/values/UnknownValue.php rename to DataValues/src/UnknownValue.php diff --git a/DataValues/tests/phpunit/includes/values/BooleanValueTest.php b/DataValues/tests/phpunit/BooleanValueTest.php similarity index 97% rename from DataValues/tests/phpunit/includes/values/BooleanValueTest.php rename to DataValues/tests/phpunit/BooleanValueTest.php index 3ed3b06..1840ad7 100644 --- a/DataValues/tests/phpunit/includes/values/BooleanValueTest.php +++ b/DataValues/tests/phpunit/BooleanValueTest.php @@ -1,6 +1,6 @@ <?php -namespace DataValues\Test; +namespace DataValues\Tests; use DataValues\BooleanValue; diff --git a/DataValues/tests/phpunit/includes/DataValueFactoryTest.php b/DataValues/tests/phpunit/DataValueFactoryTest.php similarity index 99% rename from DataValues/tests/phpunit/includes/DataValueFactoryTest.php rename to DataValues/tests/phpunit/DataValueFactoryTest.php index 9b9281b..3d17cba 100644 --- a/DataValues/tests/phpunit/includes/DataValueFactoryTest.php +++ b/DataValues/tests/phpunit/DataValueFactoryTest.php @@ -1,6 +1,6 @@ <?php -namespace DataValues\Test; +namespace DataValues\Tests; use DataValues\DataValueFactory; diff --git a/DataValues/tests/phpunit/includes/DataValueTest.php b/DataValues/tests/phpunit/DataValueTest.php similarity index 99% rename from DataValues/tests/phpunit/includes/DataValueTest.php rename to DataValues/tests/phpunit/DataValueTest.php index 4584ac9..4b8e6fd 100644 --- a/DataValues/tests/phpunit/includes/DataValueTest.php +++ b/DataValues/tests/phpunit/DataValueTest.php @@ -1,6 +1,6 @@ <?php -namespace DataValues\Test; +namespace DataValues\Tests; use DataValues\DataValue; diff --git a/DataValues/tests/phpunit/includes/values/GlobeCoordinateValueTest.php b/DataValues/tests/phpunit/GlobeCoordinateValueTest.php similarity index 98% rename from DataValues/tests/phpunit/includes/values/GlobeCoordinateValueTest.php rename to DataValues/tests/phpunit/GlobeCoordinateValueTest.php index 2e5521a..6009994 100644 --- a/DataValues/tests/phpunit/includes/values/GlobeCoordinateValueTest.php +++ b/DataValues/tests/phpunit/GlobeCoordinateValueTest.php @@ -1,6 +1,6 @@ <?php -namespace DataValues\Test; +namespace DataValues\Tests; use DataValues\GlobeCoordinateValue; use DataValues\LatLongValue; diff --git a/DataValues/tests/phpunit/includes/values/IriValueTest.php b/DataValues/tests/phpunit/IriValueTest.php similarity index 99% rename from DataValues/tests/phpunit/includes/values/IriValueTest.php rename to DataValues/tests/phpunit/IriValueTest.php index dc084dd..96d7fdf 100644 --- a/DataValues/tests/phpunit/includes/values/IriValueTest.php +++ b/DataValues/tests/phpunit/IriValueTest.php @@ -1,6 +1,6 @@ <?php -namespace DataValues\Test; +namespace DataValues\Tests; use DataValues\IriValue; diff --git a/DataValues/tests/phpunit/includes/values/LatLongValueTest.php b/DataValues/tests/phpunit/LatLongValueTest.php similarity index 98% rename from DataValues/tests/phpunit/includes/values/LatLongValueTest.php rename to DataValues/tests/phpunit/LatLongValueTest.php index 92ed97e..49ff480 100644 --- a/DataValues/tests/phpunit/includes/values/LatLongValueTest.php +++ b/DataValues/tests/phpunit/LatLongValueTest.php @@ -1,6 +1,6 @@ <?php -namespace DataValues\Test; +namespace DataValues\Tests; use DataValues\GlobeCoordinateValue; use DataValues\LatLongValue; diff --git a/DataValues/tests/phpunit/includes/values/MonolingualTextValueTest.php b/DataValues/tests/phpunit/MonolingualTextValueTest.php similarity index 98% rename from DataValues/tests/phpunit/includes/values/MonolingualTextValueTest.php rename to DataValues/tests/phpunit/MonolingualTextValueTest.php index d096c23..3c3e68a 100644 --- a/DataValues/tests/phpunit/includes/values/MonolingualTextValueTest.php +++ b/DataValues/tests/phpunit/MonolingualTextValueTest.php @@ -1,6 +1,6 @@ <?php -namespace DataValues\Test; +namespace DataValues\Tests; use DataValues\MonolingualTextValue; diff --git a/DataValues/tests/phpunit/includes/values/MultilingualTextValueTest.php b/DataValues/tests/phpunit/MultilingualTextValueTest.php similarity index 98% rename from DataValues/tests/phpunit/includes/values/MultilingualTextValueTest.php rename to DataValues/tests/phpunit/MultilingualTextValueTest.php index 24c2075..c68584a 100644 --- a/DataValues/tests/phpunit/includes/values/MultilingualTextValueTest.php +++ b/DataValues/tests/phpunit/MultilingualTextValueTest.php @@ -1,6 +1,6 @@ <?php -namespace DataValues\Test; +namespace DataValues\Tests; use DataValues\MonolingualTextValue; use DataValues\MultilingualTextValue; diff --git a/DataValues/tests/phpunit/includes/values/NumberValueTest.php b/DataValues/tests/phpunit/NumberValueTest.php similarity index 97% rename from DataValues/tests/phpunit/includes/values/NumberValueTest.php rename to DataValues/tests/phpunit/NumberValueTest.php index e46ec5c..8046fe1 100644 --- a/DataValues/tests/phpunit/includes/values/NumberValueTest.php +++ b/DataValues/tests/phpunit/NumberValueTest.php @@ -1,6 +1,6 @@ <?php -namespace DataValues\Test; +namespace DataValues\Tests; use DataValues\NumberValue; diff --git a/DataValues/tests/phpunit/includes/values/QuantityValueTest.php b/DataValues/tests/phpunit/QuantityValueTest.php similarity index 98% rename from DataValues/tests/phpunit/includes/values/QuantityValueTest.php rename to DataValues/tests/phpunit/QuantityValueTest.php index 54fa9aa..4b6b41f 100644 --- a/DataValues/tests/phpunit/includes/values/QuantityValueTest.php +++ b/DataValues/tests/phpunit/QuantityValueTest.php @@ -1,6 +1,6 @@ <?php -namespace DataValues\Test; +namespace DataValues\Tests; use DataValues\QuantityValue; diff --git a/DataValues/tests/phpunit/includes/values/StringValueTest.php b/DataValues/tests/phpunit/StringValueTest.php similarity index 97% rename from DataValues/tests/phpunit/includes/values/StringValueTest.php rename to DataValues/tests/phpunit/StringValueTest.php index 10d34aa..1abf77f 100644 --- a/DataValues/tests/phpunit/includes/values/StringValueTest.php +++ b/DataValues/tests/phpunit/StringValueTest.php @@ -1,6 +1,6 @@ <?php -namespace DataValues\Test; +namespace DataValues\Tests; use DataValues\StringValue; diff --git a/DataValues/tests/phpunit/includes/values/TimeValueTest.php b/DataValues/tests/phpunit/TimeValueTest.php similarity index 99% rename from DataValues/tests/phpunit/includes/values/TimeValueTest.php rename to DataValues/tests/phpunit/TimeValueTest.php index 3282da9..ef01fb4 100644 --- a/DataValues/tests/phpunit/includes/values/TimeValueTest.php +++ b/DataValues/tests/phpunit/TimeValueTest.php @@ -1,6 +1,6 @@ <?php -namespace DataValues\Test; +namespace DataValues\Tests; use DataValues\TimeValue; diff --git a/DataValues/tests/phpunit/includes/values/UnDeserializableValueTest.php b/DataValues/tests/phpunit/UnDeserializableValueTest.php similarity index 98% rename from DataValues/tests/phpunit/includes/values/UnDeserializableValueTest.php rename to DataValues/tests/phpunit/UnDeserializableValueTest.php index d88aa84..800b523 100644 --- a/DataValues/tests/phpunit/includes/values/UnDeserializableValueTest.php +++ b/DataValues/tests/phpunit/UnDeserializableValueTest.php @@ -1,6 +1,6 @@ <?php -namespace DataValues\Test; +namespace DataValues\Tests; use DataValues\DataValue; use DataValues\StringValue; diff --git a/DataValues/tests/phpunit/includes/values/UnknownValueTest.php b/DataValues/tests/phpunit/UnknownValueTest.php similarity index 97% rename from DataValues/tests/phpunit/includes/values/UnknownValueTest.php rename to DataValues/tests/phpunit/UnknownValueTest.php index 6130fe8..87e77c2 100644 --- a/DataValues/tests/phpunit/includes/values/UnknownValueTest.php +++ b/DataValues/tests/phpunit/UnknownValueTest.php @@ -1,6 +1,6 @@ <?php -namespace DataValues\Test; +namespace DataValues\Tests; use DataValues\UnknownValue; diff --git a/DataValues/tests/phpunit/phpunit.php b/DataValues/tests/phpunit/phpunit.php deleted file mode 100644 index 7c9b11d..0000000 --- a/DataValues/tests/phpunit/phpunit.php +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env php -<?php - -require_once( 'PHPUnit/Runner/Version.php' ); - -if ( PHPUnit_Runner_Version::id() !== '@package_version@' - && version_compare( PHPUnit_Runner_Version::id(), '3.7', '<' ) -) { - die( 'PHPUnit 3.7 or later required, you have ' . PHPUnit_Runner_Version::id() . ".\n" ); -} -require_once( 'PHPUnit/Autoload.php' ); - -define( 'DATAVALUES', true ); -require_once( __DIR__ . '/../../DataValues.php' ); - -echo 'Running tests for DataValues version ' . DataValues_VERSION . ".\n"; -echo 'phpunit.php --group DataValueExtensions ' . __DIR__ . "\n"; - -$runner = new PHPUnit_TextUI_Command(); -$runner->run( array( - '--group', - 'DataValueExtensions', - __DIR__ -) ); diff --git a/DataValues/tests/testLoader.php b/DataValues/tests/testLoader.php index 6fcb1bf..8006f14 100644 --- a/DataValues/tests/testLoader.php +++ b/DataValues/tests/testLoader.php @@ -12,4 +12,23 @@ * @author Jeroen De Dauw < jeroended...@gmail.com > */ -// TODO: move loading of test classes from classes file to a PSR-0 loader here \ No newline at end of file +spl_autoload_register( function ( $className ) { + $className = ltrim( $className, '\\' ); + $fileName = ''; + $namespace = ''; + + if ( $lastNsPos = strripos( $className, '\\') ) { + $namespace = substr( $className, 0, $lastNsPos ); + $className = substr( $className, $lastNsPos + 1 ); + $fileName = str_replace( '\\', '/', $namespace ) . '/'; + } + + $fileName .= str_replace( '_', '/', $className ) . '.php'; + + $namespaceSegments = explode( '\\', $namespace ); + + if ( count( $namespaceSegments ) > 1 && $namespaceSegments[0] === 'DataValues' && $namespaceSegments[1] === 'Tests' ) { + $fileName = substr( $fileName, 17 ); + require_once __DIR__ . '/phpunit/' . $fileName; + } +} ); -- To view, visit https://gerrit.wikimedia.org/r/80019 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I88aba9eb3da845e8d29f7daeabe0ed8954ba3028 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/DataValues Gerrit-Branch: master Gerrit-Owner: Jeroen De Dauw <jeroended...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits