jenkins-bot has submitted this change and it was merged. Change subject: Remove broken unlocalization from MwTimeIsoFormatter ......................................................................
Remove broken unlocalization from MwTimeIsoFormatter This depends on https://github.com/DataValues/Time/pull/62 The formatter applied his steps in a somewhat mixed way: 1. Format the year as a localized number. 2. Put the year in a unlocalized message. 3. Unlocalize the year by applying string replacements. This also replaced characters that are part of the message. This patch is only a step forward. I'm removing the localization for now. It should be re-added later, most probably in an other place. The other changes must be in the same patch because of the roundtrip tests. Bug: T95532 Change-Id: Ic5b4cd42e5e5690d4787235ab090961d9864989f --- M lib/includes/formatters/MwTimeIsoFormatter.php M lib/tests/phpunit/formatters/MwTimeIsoFormatterTest.php M lib/tests/phpunit/parsers/MwTimeIsoParserTest.php M lib/tests/phpunit/parsers/TimeParserFactoryTest.php M lib/tests/phpunit/parsers/YearMonthTimeParserTest.php M lib/tests/phpunit/parsers/YearTimeParserTest.php 6 files changed, 136 insertions(+), 136 deletions(-) Approvals: Addshore: Looks good to me, approved jenkins-bot: Verified diff --git a/lib/includes/formatters/MwTimeIsoFormatter.php b/lib/includes/formatters/MwTimeIsoFormatter.php index a18c5ff..8cb6bd1 100644 --- a/lib/includes/formatters/MwTimeIsoFormatter.php +++ b/lib/includes/formatters/MwTimeIsoFormatter.php @@ -61,24 +61,10 @@ $isoTimestamp = $timeValue->getTime(); try { - return $this->getUnlocalizedDate( $isoTimestamp, $timeValue->getPrecision() ); + return $this->getLocalizedDate( $isoTimestamp, $timeValue->getPrecision() ); } catch ( InvalidArgumentException $ex ) { return $isoTimestamp; } - } - - /** - * @param string $isoTimestamp - * @param int $precision - * - * @throws InvalidArgumentException - * @return string Formatted date - */ - private function getUnlocalizedDate( $isoTimestamp, $precision ) { - // We do not handle parsing arabic, farsi, etc. digits (bug 63732) - return $this->language->parseFormattedNumber( - $this->getLocalizedDate( $isoTimestamp, $precision ) - ); } /** @@ -291,16 +277,14 @@ $isBCE = $isBCE && !empty( $number ); } - $formattedNumber = $this->language->formatNum( $number, true ); - if ( empty( $msg ) ) { // TODO: This needs a message. - return $formattedNumber . ( $isBCE ? ' BCE' : '' ); + return $number . ( $isBCE ? ' BCE' : '' ); } return $this->getMessage( 'wikibase-time-precision-' . ( $isBCE ? 'BCE-' : '' ) . $msg, - $formattedNumber + $number ); } diff --git a/lib/tests/phpunit/formatters/MwTimeIsoFormatterTest.php b/lib/tests/phpunit/formatters/MwTimeIsoFormatterTest.php index 8c58ab8..458cd39 100644 --- a/lib/tests/phpunit/formatters/MwTimeIsoFormatterTest.php +++ b/lib/tests/phpunit/formatters/MwTimeIsoFormatterTest.php @@ -338,7 +338,7 @@ // Preserve punctuation as given in MessagesXx.php but skip suffixes and words array( '+2013-08-16T00:00:00Z', TimeValue::PRECISION_DAY, - '16 Avgust. 2013', + '16 Avgust, 2013', true, 'kaa' ), @@ -493,17 +493,17 @@ $argLists = array(); foreach ( $tests as $args ) { - $timeValue = new TimeValue( - $args[0], - 0, 0, 0, - $args[1], - $gregorian - ); + $timestamp = $args[0]; + $precision = $args[1]; + $expected = isset( $args[2] ) ? $args[2] : $timestamp; + $roundtrip = isset( $args[3] ); + $languageCode = isset( $args[4] ) ? $args[4] : 'en'; + $argLists[] = array( - isset( $args[2] ) ? $args[2] : $args[0], - $timeValue, - isset( $args[3] ), - isset( $args[4] ) ? $args[4] : 'en' + $expected, + new TimeValue( $timestamp, 0, 0, 0, $precision, $gregorian ), + $roundtrip, + $languageCode ); } diff --git a/lib/tests/phpunit/parsers/MwTimeIsoParserTest.php b/lib/tests/phpunit/parsers/MwTimeIsoParserTest.php index 2f9d82c..09ea010 100644 --- a/lib/tests/phpunit/parsers/MwTimeIsoParserTest.php +++ b/lib/tests/phpunit/parsers/MwTimeIsoParserTest.php @@ -47,118 +47,123 @@ $valid = array( // + dates '13 billion years CE' => - array( '+13000000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1G, $gregorian ), + array( '+13000000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1G, ), '130 billion years CE' => - array( '+130000000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1G, $gregorian ), + array( '+130000000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1G, ), '13000 billion years CE' => - array( '+13000000000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1G, $gregorian ), + array( '+13000000000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1G, ), '13,000 billion years CE' => - array( '+13000000000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1G, $gregorian ), + array( '+13000000000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1G, ), '13,000 million years CE' => - array( '+13000000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1G, $gregorian ), + array( '+13000000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1G, ), '13,800 million years CE' => - array( '+13800000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR100M, $gregorian ), + array( '+13800000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR100M, ), '100 million years CE' => - array( '+100000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR100M, $gregorian ), + array( '+100000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR100M, ), '70 million years CE' => - array( '+70000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR10M, $gregorian ), + array( '+70000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR10M, ), '77 million years CE' => - array( '+77000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1M, $gregorian ), + array( '+77000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1M, ), '13 million years CE' => - array( '+13000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1M, $gregorian ), + array( '+13000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1M, ), '1 million years CE' => - array( '+1000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1M, $gregorian ), + array( '+1000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1M, ), '100000 years CE' => - array( '+100000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR100K, $gregorian ), + array( '+100000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR100K, ), '100,000 years CE' => - array( '+100000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR100K, $gregorian ), + array( '+100000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR100K, ), '10000 years CE' => - array( '+10000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR10K, $gregorian ), + array( '+10000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR10K, ), '99000 years CE' => - array( '+99000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1K, $gregorian ), + array( '+99000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1K, ), '99,000 years CE' => - array( '+99000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1K, $gregorian ), + array( '+99000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1K, ), '5. millennium' => - array( '+5000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1K, $gregorian ), + array( '+5000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1K, ), '55. millennium' => - array( '+55000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1K, $gregorian ), + array( '+55000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1K, ), '10. century' => - array( '+1000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR100, $julian ), + array( '+1000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR100, $julian ), '12. century' => - array( '+1200-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR100, $julian ), + array( '+1200-00-00T00:00:00Z', TimeValue::PRECISION_YEAR100, $julian ), '1980s' => - array( '+1980-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR10, $gregorian ), + array( '+1980-00-00T00:00:00Z', TimeValue::PRECISION_YEAR10, ), '2000s' => - array( '+2000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR10, $gregorian ), + array( '+2000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR10, ), '10s' => - array( '+0010-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR10, $julian ), + array( '+0010-00-00T00:00:00Z', TimeValue::PRECISION_YEAR10, $julian ), '12s' => - array( '+0012-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR10, $julian ), + array( '+0012-00-00T00:00:00Z', TimeValue::PRECISION_YEAR10, $julian ), // - dates '13 billion years BCE' => - array( '-13000000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1G, $julian ), + array( '-13000000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1G, $julian ), '130 billion years BCE' => - array( '-130000000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1G, $julian ), + array( '-130000000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1G, $julian ), '13000 billion years BCE' => - array( '-13000000000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1G, $julian ), + array( '-13000000000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1G, $julian ), '13,000 billion years BCE' => - array( '-13000000000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1G, $julian ), + array( '-13000000000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1G, $julian ), '13,000 million years BCE' => - array( '-13000000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1G, $julian ), + array( '-13000000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1G, $julian ), '13,800 million years BCE' => - array( '-13800000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR100M, $julian ), + array( '-13800000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR100M, $julian ), '100 million years BCE' => - array( '-100000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR100M, $julian ), + array( '-100000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR100M, $julian ), '70 million years BCE' => - array( '-70000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR10M, $julian ), + array( '-70000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR10M, $julian ), '77 million years BCE' => - array( '-77000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1M, $julian ), + array( '-77000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1M, $julian ), '13 million years BCE' => - array( '-13000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1M, $julian ), + array( '-13000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1M, $julian ), '1 million years BCE' => - array( '-1000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1M, $julian ), + array( '-1000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1M, $julian ), '100000 years BCE' => - array( '-100000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR100K, $julian ), + array( '-100000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR100K, $julian ), '100,000 years BCE' => - array( '-100000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR100K, $julian ), + array( '-100000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR100K, $julian ), '10000 years BCE' => - array( '-10000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR10K, $julian ), + array( '-10000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR10K, $julian ), '99000 years BCE' => - array( '-99000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1K, $julian ), + array( '-99000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1K, $julian ), '99,000 years BCE' => - array( '-99000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1K, $julian ), + array( '-99000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1K, $julian ), '5. millennium BCE' => - array( '-5000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1K, $julian ), + array( '-5000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1K, $julian ), '55. millennium BCE' => - array( '-55000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1K, $julian ), + array( '-55000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1K, $julian ), '10. century BCE' => - array( '-1000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR100, $julian ), + array( '-1000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR100, $julian ), '12. century BCE' => - array( '-1200-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR100, $julian ), + array( '-1200-00-00T00:00:00Z', TimeValue::PRECISION_YEAR100, $julian ), '10s BCE' => - array( '-0010-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR10, $julian ), + array( '-0010-00-00T00:00:00Z', TimeValue::PRECISION_YEAR10, $julian ), '12s BCE' => - array( '-0012-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR10, $julian ), + array( '-0012-00-00T00:00:00Z', TimeValue::PRECISION_YEAR10, $julian ), // also parse BC '5. millennium BC' => - array( '-5000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1K, $julian ), + array( '-5000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1K, $julian ), '55. millennium BC' => - array( '-55000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1K, $julian ), + array( '-55000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1K, $julian ), '10. century BC' => - array( '-1000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR100, $julian ), + array( '-1000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR100, $julian ), '12. century BC' => - array( '-1200-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR100, $julian ), + array( '-1200-00-00T00:00:00Z', TimeValue::PRECISION_YEAR100, $julian ), '10s BC' => - array( '-0010-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR10, $julian ), + array( '-0010-00-00T00:00:00Z', TimeValue::PRECISION_YEAR10, $julian ), '12s BC' => - array( '-0012-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR10, $julian ), + array( '-0012-00-00T00:00:00Z', TimeValue::PRECISION_YEAR10, $julian ), ); foreach ( $valid as $value => $expected ) { - // $time, $timezone, $before, $after, $precision, $calendarModel - $expected = new TimeValue( $expected[0], $expected[1], $expected[2], $expected[3], $expected[4], $expected[5] ); - $argLists[] = array( (string)$value, $expected ); + $timestamp = $expected[0]; + $precision = $expected[1]; + $calendarModel = isset( $expected[2] ) ? $expected[2] : $gregorian; + + $argLists[] = array( + (string)$value, + new TimeValue( $timestamp, 0, 0, 0, $precision, $calendarModel ) + ); } return $argLists; diff --git a/lib/tests/phpunit/parsers/TimeParserFactoryTest.php b/lib/tests/phpunit/parsers/TimeParserFactoryTest.php index 3e7e4e3..5d58aa4 100644 --- a/lib/tests/phpunit/parsers/TimeParserFactoryTest.php +++ b/lib/tests/phpunit/parsers/TimeParserFactoryTest.php @@ -41,6 +41,7 @@ } public function validInputProvider() { + $gregorian = 'http://www.wikidata.org/entity/Q1985727'; $julian = 'http://www.wikidata.org/entity/Q1985786'; $valid = array( @@ -147,7 +148,7 @@ foreach ( $valid as $value => $expected ) { $timestamp = $expected[0]; $precision = isset( $expected[1] ) ? $expected[1] : TimeValue::PRECISION_DAY; - $calendarModel = isset( $expected[2] ) ? $expected[2] : 'http://www.wikidata.org/entity/Q1985727'; + $calendarModel = isset( $expected[2] ) ? $expected[2] : $gregorian; $argLists[] = array( (string)$value, diff --git a/lib/tests/phpunit/parsers/YearMonthTimeParserTest.php b/lib/tests/phpunit/parsers/YearMonthTimeParserTest.php index 96ebfd9..6497855 100644 --- a/lib/tests/phpunit/parsers/YearMonthTimeParserTest.php +++ b/lib/tests/phpunit/parsers/YearMonthTimeParserTest.php @@ -47,83 +47,88 @@ $valid = array( // leading zeros '00001 1999' => - array( '+1999-01-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $gregorian ), + array( '+1999-01-00T00:00:00Z' ), '000000001 100001999' => - array( '+100001999-01-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $gregorian ), + array( '+100001999-01-00T00:00:00Z' ), // use string month names 'Jan/1999' => - array( '+1999-01-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $gregorian ), + array( '+1999-01-00T00:00:00Z' ), 'January/1999' => - array( '+1999-01-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $gregorian ), + array( '+1999-01-00T00:00:00Z' ), 'January/1' => - array( '+0001-01-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $julian ), + array( '+0001-01-00T00:00:00Z', TimeValue::PRECISION_MONTH, $julian ), '1999 January' => - array( '+1999-01-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $gregorian ), + array( '+1999-01-00T00:00:00Z' ), 'January 1999' => - array( '+1999-01-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $gregorian ), + array( '+1999-01-00T00:00:00Z' ), 'January-1' => - array( '+0001-01-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $julian ), + array( '+0001-01-00T00:00:00Z', TimeValue::PRECISION_MONTH, $julian ), 'JanuARY-1' => - array( '+0001-01-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $julian ), + array( '+0001-01-00T00:00:00Z', TimeValue::PRECISION_MONTH, $julian ), 'JaN/1999' => - array( '+1999-01-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $gregorian ), + array( '+1999-01-00T00:00:00Z' ), 'januARY-1' => - array( '+0001-01-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $julian ), + array( '+0001-01-00T00:00:00Z', TimeValue::PRECISION_MONTH, $julian ), 'jan/1999' => - array( '+1999-01-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $gregorian ), + array( '+1999-01-00T00:00:00Z' ), // use different date separators '1-1999' => - array( '+1999-01-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $gregorian ), + array( '+1999-01-00T00:00:00Z' ), '1/1999' => - array( '+1999-01-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $gregorian ), + array( '+1999-01-00T00:00:00Z' ), '1 / 1999' => - array( '+1999-01-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $gregorian ), + array( '+1999-01-00T00:00:00Z' ), '1 1999' => - array( '+1999-01-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $gregorian ), + array( '+1999-01-00T00:00:00Z' ), '1,1999' => - array( '+1999-01-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $gregorian ), + array( '+1999-01-00T00:00:00Z' ), '1.1999' => - array( '+1999-01-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $gregorian ), + array( '+1999-01-00T00:00:00Z' ), '1. 1999' => - array( '+1999-01-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $gregorian ), + array( '+1999-01-00T00:00:00Z' ), // presume mm/yy unless impossible month, in which case switch '12/12' => - array( '+0012-12-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $julian ), + array( '+0012-12-00T00:00:00Z', TimeValue::PRECISION_MONTH, $julian ), '12/11' => - array( '+0011-12-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $julian ), + array( '+0011-12-00T00:00:00Z', TimeValue::PRECISION_MONTH, $julian ), '11/12' => - array( '+0012-11-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $julian ), + array( '+0012-11-00T00:00:00Z', TimeValue::PRECISION_MONTH, $julian ), '13/12' => - array( '+0013-12-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $julian ), + array( '+0013-12-00T00:00:00Z', TimeValue::PRECISION_MONTH, $julian ), '12/13' => - array( '+0013-12-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $julian ), + array( '+0013-12-00T00:00:00Z', TimeValue::PRECISION_MONTH, $julian ), '2000 1' => - array( '+2000-01-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $gregorian ), + array( '+2000-01-00T00:00:00Z' ), // big years 'April-1000000001' => - array( '+1000000001-04-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $gregorian ), + array( '+1000000001-04-00T00:00:00Z' ), 'April 1000000001' => - array( '+1000000001-04-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $gregorian ), + array( '+1000000001-04-00T00:00:00Z' ), '1000000001 April' => - array( '+1000000001-04-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $gregorian ), + array( '+1000000001-04-00T00:00:00Z' ), '1 13000' => - array( '+13000-01-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_MONTH, $gregorian ), + array( '+13000-01-00T00:00:00Z' ), // parse 0 month as if no month has been entered '0.1999' => - array( '+1999-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR, $gregorian ), + array( '+1999-00-00T00:00:00Z', TimeValue::PRECISION_YEAR ), '1999 0' => - array( '+1999-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR, $gregorian ), + array( '+1999-00-00T00:00:00Z', TimeValue::PRECISION_YEAR ), ); foreach ( $valid as $value => $expected ) { - // $time, $timezone, $before, $after, $precision, $calendarModel - $expected = new TimeValue( $expected[0], $expected[1], $expected[2], $expected[3], $expected[4], $expected[5] ); - $argLists[] = array( (string)$value, $expected ); + $timestamp = $expected[0]; + $precision = isset( $expected[1] ) ? $expected[1] : TimeValue::PRECISION_MONTH; + $calendarModel = isset( $expected[2] ) ? $expected[2] : $gregorian; + + $argLists[] = array( + (string)$value, + new TimeValue( $timestamp, 0, 0, 0, $precision, $calendarModel ) + ); } return $argLists; diff --git a/lib/tests/phpunit/parsers/YearTimeParserTest.php b/lib/tests/phpunit/parsers/YearTimeParserTest.php index a8b5b28..b23046a 100644 --- a/lib/tests/phpunit/parsers/YearTimeParserTest.php +++ b/lib/tests/phpunit/parsers/YearTimeParserTest.php @@ -67,38 +67,43 @@ $valid = array( '1999' => - array( '+1999-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR, $gregorian ), + array( '+1999-00-00T00:00:00Z' ), '2000' => - array( '+2000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR, $gregorian ), + array( '+2000-00-00T00:00:00Z' ), '2010' => - array( '+2010-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR, $gregorian ), + array( '+2010-00-00T00:00:00Z' ), '2000000' => - array( '+2000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1M, $gregorian ), + array( '+2000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1M ), '2000000000' => - array( '+2000000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1G, $gregorian ), + array( '+2000000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1G ), '2000020000' => - array( '+2000020000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR10K, $gregorian ), + array( '+2000020000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR10K ), '2000001' => - array( '+2000001-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR, $gregorian ), + array( '+2000001-00-00T00:00:00Z' ), '02000001' => - array( '+2000001-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR, $gregorian ), + array( '+2000001-00-00T00:00:00Z' ), '1' => - array( '+0001-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR, $julian ), + array( '+0001-00-00T00:00:00Z', TimeValue::PRECISION_YEAR, $julian ), '000000001' => - array( '+0001-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR, $julian ), + array( '+0001-00-00T00:00:00Z', TimeValue::PRECISION_YEAR, $julian ), '-1000000' => - array( '-1000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1M, $julian ), + array( '-1000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1M, $julian ), '-1 000 000' => - array( '-1000000-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR1M, $julian ), + array( '-1000000-00-00T00:00:00Z', TimeValue::PRECISION_YEAR1M, $julian ), // Digit grouping in the Indian numbering system '-1,99,999' => - array( '-199999-00-00T00:00:00Z', 0, 0, 0, TimeValue::PRECISION_YEAR, $julian ), + array( '-199999-00-00T00:00:00Z', TimeValue::PRECISION_YEAR, $julian ), ); foreach ( $valid as $value => $expected ) { - // $time, $timezone, $before, $after, $precision, $calendarModel - $expected = new TimeValue( $expected[0], $expected[1], $expected[2], $expected[3], $expected[4], $expected[5] ); - $argLists[] = array( (string)$value, $expected ); + $timestamp = $expected[0]; + $precision = isset( $expected[1] ) ? $expected[1] : TimeValue::PRECISION_YEAR; + $calendarModel = isset( $expected[2] ) ? $expected[2] : $gregorian; + + $argLists[] = array( + (string)$value, + new TimeValue( $timestamp, 0, 0, 0, $precision, $calendarModel ) + ); } return $argLists; -- To view, visit https://gerrit.wikimedia.org/r/203018 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ic5b4cd42e5e5690d4787235ab090961d9864989f Gerrit-PatchSet: 9 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Thiemo Mättig (WMDE) <[email protected]> Gerrit-Reviewer: Addshore <[email protected]> Gerrit-Reviewer: Aude <[email protected]> Gerrit-Reviewer: Daniel Kinzler <[email protected]> Gerrit-Reviewer: Hoo man <[email protected]> Gerrit-Reviewer: Thiemo Mättig (WMDE) <[email protected]> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
