diff options
author | Matthieu Aubry <matt@piwik.org> | 2015-10-12 01:56:58 +0300 |
---|---|---|
committer | Matthieu Aubry <matt@piwik.org> | 2015-10-12 01:56:58 +0300 |
commit | 7d2c0fa345346397eb8d5fd2e5604ede5541571a (patch) | |
tree | 1ae61070639caea0fe5e533aef324e92476590f3 /tests | |
parent | 6aae2e3815d1ad5842bc83c46043ad09181f84aa (diff) | |
parent | 0631d4e5327e31276af57f70b8252279cf92020d (diff) |
Merge pull request #8857 from piwik/numberformats
Improve number formats
Diffstat (limited to 'tests')
10 files changed, 145 insertions, 22 deletions
diff --git a/tests/PHPUnit/Integration/NumberFormatterTest.php b/tests/PHPUnit/Integration/NumberFormatterTest.php new file mode 100644 index 0000000000..e2ac454b4e --- /dev/null +++ b/tests/PHPUnit/Integration/NumberFormatterTest.php @@ -0,0 +1,123 @@ +<?php +/** + * Piwik - free/libre analytics platform + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +namespace Piwik\Tests\Integration; + +use Piwik\Container\StaticContainer; +use Piwik\NumberFormatter; +use Piwik\Translate; + +/** + * @group Core + * @group NumberFormatter + */ +class NumberFormatterTest extends \PHPUnit_Framework_TestCase +{ + public function setUp() + { + Translate::loadAllTranslations(); + } + + public function tearDown() + { + StaticContainer::get('Piwik\NumberFormatter')->unsetInstance(); + Translate::reset(); + } + + /** + * @dataProvider getNumberFormattingTestData + */ + public function testNumberFormatting($language, $value, $maximumFractionDigits, $minimumFractionDigits, $expected) + { + StaticContainer::get('Piwik\Translation\Translator')->setCurrentLanguage($language); + $formatter = NumberFormatter::getInstance(); + $this->assertEquals($expected, $formatter->formatNumber($value, $maximumFractionDigits, $minimumFractionDigits)); + } + + public function getNumberFormattingTestData() + { + return array( + // english formats + array('en', 5, 0, 0, '5'), + array('en', -5, 0, 3, '-5'), + array('en', 5.299, 0, 0, '5'), + array('en', 5.299, 3, 0, '5.299'), + array('en', -50, 3, 3, '-50.000'), + array('en', 5000, 0, 0, '5,000'), + array('en', 5000000, 0, 0, '5,000,000'), + array('en', -5000000, 0, 0, '-5,000,000'), + + // foreign languages + array('ar', 51239.56, 3, 0, '51٬239٫56'), + array('be', 51239.56, 3, 0, '51 239,56'), + array('de', 51239.56, 3, 0, '51.239,56'), + array('bn', 152551239.56, 3, 0, '15,25,51,239.56'), + array('hi', 152551239.56, 0, 0, '15,25,51,239'), + array('lt', -152551239.56, 0, 0, '−152 551 239'), + ); + } + + /** + * @dataProvider getPercentNumberFormattingTestData + */ + public function testPercentNumberFormatting($language, $value, $maximumFractionDigits, $minimumFractionDigits, $expected) + { + StaticContainer::get('Piwik\Translation\Translator')->setCurrentLanguage($language); + $formatter = NumberFormatter::getInstance(); + $this->assertEquals($expected, $formatter->formatPercent($value, $maximumFractionDigits, $minimumFractionDigits)); + } + + public function getPercentNumberFormattingTestData() + { + return array( + // english formats + array('en', 5, 0, 0, '5%'), + array('en', -5, 0, 3, '-5%'), + array('en', 5.299, 0, 0, '5%'), + array('en', 5.299, 3, 0, '5.299%'), + array('en', -50, 3, 3, '-50.000%'), + array('en', 5000, 0, 0, '5,000%'), + array('en', +5000, 0, 0, '5,000%'), + array('en', 5000000, 0, 0, '5,000,000%'), + array('en', -5000000, 0, 0, '-5,000,000%'), + + // foreign languages + array('ar', 51239.56, 3, 0, '51٬239٫56٪'), + array('be', 51239.56, 3, 0, '51 239,56 %'), + array('de', 51239.56, 3, 0, '51.239,56 %'), + array('bn', 152551239.56, 3, 0, '15,25,51,239.56%'), + array('hi', 152551239.56, 0, 0, '15,25,51,239%'), + array('lt', -152551239.56, 0, 0, '−152 551 239 %'), + ); + } + + /** + * @dataProvider getPercentNumberEvolutionFormattingTestData + */ + public function testPercentEvolutionNumberFormatting($language, $value, $expected) + { + StaticContainer::get('Piwik\Translation\Translator')->setCurrentLanguage($language); + $formatter = NumberFormatter::getInstance(); + $this->assertEquals($expected, $formatter->formatPercentEvolution($value)); + } + + public function getPercentNumberEvolutionFormattingTestData() + { + return array( + // english formats + array('en', 5, '+5%'), + array('en', -5, '-5%'), + array('en', 5.299, '+5%'), + array('en', -50, '-50%'), + array('en', 5000, '+5,000%'), + array('en', +5000, '+5,000%'), + array('en', 5000000, '+5,000,000%'), + array('en', -5000000, '-5,000,000%'), + ); + } +} diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__subtable__API.getProcessedReport_week.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__subtable__API.getProcessedReport_week.xml index 8b04b80db3..bfcd3f626d 100644 --- a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__subtable__API.getProcessedReport_week.xml +++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__subtable__API.getProcessedReport_week.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" ?> <result> <website>new name</website> - <prettyDate>Week March 1 – 7, 2010</prettyDate> + <prettyDate>week March 1 – 7, 2010</prettyDate> <metadata> <category>Actions</category> <name>Page URLs</name> diff --git a/tests/PHPUnit/System/expected/test_apiGetReportMetadata_year__LanguagesManager.getAvailableLanguageNames.xml b/tests/PHPUnit/System/expected/test_apiGetReportMetadata_year__LanguagesManager.getAvailableLanguageNames.xml index e332105835..d0c3b6b131 100644 --- a/tests/PHPUnit/System/expected/test_apiGetReportMetadata_year__LanguagesManager.getAvailableLanguageNames.xml +++ b/tests/PHPUnit/System/expected/test_apiGetReportMetadata_year__LanguagesManager.getAvailableLanguageNames.xml @@ -122,7 +122,7 @@ </row> <row> <code>id</code> - <name>Bahasa Indonesia</name> + <name>Indonesia</name> <english_name>Indonesian</english_name> </row> <row> diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html index 96c29a57d6..deb8534668 100644 --- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html +++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html @@ -12,7 +12,7 @@ </h1> <p> - Mail Test report - Date range: Week April 4 – 10, 2011 + Mail Test report - Date range: week April 4 – 10, 2011 </p> diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_via_sms_all_sites__ScheduledReports.generateReport_week.original.sms.txt b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_via_sms_all_sites__ScheduledReports.generateReport_week.original.sms.txt index d93abaaa99..645d7467c3 100644 --- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_via_sms_all_sites__ScheduledReports.generateReport_week.original.sms.txt +++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_via_sms_all_sites__ScheduledReports.generateReport_week.original.sms.txt @@ -1 +1 @@ -Week April 4 – 10, 2011. Piwik test: 5 Visits (+100%), 16 Actions (+100%), Revenue: $ 13361 (+100%), 5 Goal conversions (+100%), Product Revenue: $ 13351 (+100%), 4 Ecommerce Orders (+100%). Piwik test: 2 Visits (+100%), 1 Actions (+100%), Revenue: $ 250 (+100%), 1 Goal conversions (+100%)
\ No newline at end of file +week April 4 – 10, 2011. Piwik test: 5 Visits (+100%), 16 Actions (+100%), Revenue: $ 13361 (+100%), 5 Goal conversions (+100%), Product Revenue: $ 13351 (+100%), 4 Ecommerce Orders (+100%). Piwik test: 2 Visits (+100%), 1 Actions (+100%), Revenue: $ 250 (+100%), 1 Goal conversions (+100%)
\ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_via_sms_one_site__ScheduledReports.generateReport_week.original.sms.txt b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_via_sms_one_site__ScheduledReports.generateReport_week.original.sms.txt index 3632f5fb81..f36a23fa6e 100644 --- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_via_sms_one_site__ScheduledReports.generateReport_week.original.sms.txt +++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_via_sms_one_site__ScheduledReports.generateReport_week.original.sms.txt @@ -1 +1 @@ -Week April 4 – 10, 2011. 5 Visits (+100%), 16 Actions (+100%), Revenue: $ 13361 (+100%), 5 Goal conversions (+100%), Product Revenue: $ 13351 (+100%), 4 Ecommerce Orders (+100%)
\ No newline at end of file +week April 4 – 10, 2011. 5 Visits (+100%), 16 Actions (+100%), Revenue: $ 13361 (+100%), 5 Goal conversions (+100%), Product Revenue: $ 13351 (+100%), 4 Ecommerce Orders (+100%)
\ No newline at end of file diff --git a/tests/PHPUnit/Unit/Metrics/FormatterTest.php b/tests/PHPUnit/Unit/Metrics/FormatterTest.php index f0f1e618a9..e0ecfacccd 100644 --- a/tests/PHPUnit/Unit/Metrics/FormatterTest.php +++ b/tests/PHPUnit/Unit/Metrics/FormatterTest.php @@ -7,7 +7,7 @@ */ namespace Piwik\Tests\Unit\Metrics; -use Piwik\Intl\Locale; +use Piwik\Container\StaticContainer; use Piwik\Metrics\Formatter; use Piwik\Translate; use Piwik\Plugins\SitesManager\API as SitesManagerAPI; @@ -57,6 +57,7 @@ class FormatterTest extends \PHPUnit_Framework_TestCase public function tearDown() { + StaticContainer::get('Piwik\NumberFormatter')->unsetInstance(); Translate::reset(); $this->unsetSiteManagerApiMock(); } @@ -74,13 +75,8 @@ class FormatterTest extends \PHPUnit_Framework_TestCase */ public function test_getPrettyNumber_ReturnsCorrectResult_WhenLocaleIsEuropean($number, $expected) { - $locale = setlocale(LC_ALL, array('de-AT', 'de_DE', 'de', 'ge', 'de_DE.utf8')); - if (empty($locale)) { - $this->markTestSkipped("de_DE locale is not present on this system"); - } - + StaticContainer::get('Piwik\Translation\Translator')->setCurrentLanguage('de'); $this->assertEquals($expected, $this->formatter->getPrettyNumber($number, 2)); - Locale::setDefaultLocale(); } /** @@ -137,12 +133,11 @@ class FormatterTest extends \PHPUnit_Framework_TestCase public function getPrettyNumberLocaleTestData() { return array( - array(0.14, '0,14'), - array(0.14567, '0,15'), - array(100.1234, '100,12'), - // Those last two are commented because locales are platform dependent, on some platforms the separator is '' instead of '.' -// array(1000.45, '1.000,45'), -// array(23456789.00, '23.456.789,00'), + array(0.14, '0.14'), + array(0.14567, '0.15'), + array(100.1234, '100.12'), + array(1000.45, '1,000.45'), + array(23456789.00, '23,456,789.00'), ); } diff --git a/tests/PHPUnit/Unit/Period/MonthTest.php b/tests/PHPUnit/Unit/Period/MonthTest.php index 2779a2e582..a3abb80d07 100644 --- a/tests/PHPUnit/Unit/Period/MonthTest.php +++ b/tests/PHPUnit/Unit/Period/MonthTest.php @@ -334,7 +334,7 @@ class MonthTest extends BasePeriodTest { return array( array('en', 'October 2024'), - array('lt', '2024 Spalis'), + array('lt', '2024 m. Spalis'), array('zh-cn', '2024年10月'), ); } diff --git a/tests/PHPUnit/Unit/Period/WeekTest.php b/tests/PHPUnit/Unit/Period/WeekTest.php index 4adf7666a2..5df53acb45 100644 --- a/tests/PHPUnit/Unit/Period/WeekTest.php +++ b/tests/PHPUnit/Unit/Period/WeekTest.php @@ -12,6 +12,11 @@ use Piwik\Container\StaticContainer; use Piwik\Date; use Piwik\Period\Week; +/** + * Class WeekTest + * @package Piwik\Tests\Unit\Period + * @group WeekTest + */ class WeekTest extends BasePeriodTest { /** @@ -122,7 +127,7 @@ class WeekTest extends BasePeriodTest { return array( array('en', array('Oct 7 – 13, 2024', 'Nov 25 – Dec 1, 2024', 'Dec 30, 2024 – Jan 5, 2025')), - array('lt', array('2024-10-07 – 2024-10-13', '2024-11-25 – 2024-12-01', '2024-12-30 – 2025-1-05')), + array('lt', array('2024 Spal. 7–13', '2024 Lapkr. 25 – Gruod. 1', '2024 Gruod. 30 – 2025 Saus. 5')), array('zh-cn', array('2024年10月7日至13日', '2024年11月25日至12月1日', '2024年12月30日至2025年01月5日')), ); } @@ -150,8 +155,8 @@ class WeekTest extends BasePeriodTest public function getLocalizedLongStrings() { return array( - array('en', array('Week October 7 – 13, 2024', 'Week November 25 – December 1, 2024', 'Week December 30, 2024 – January 5, 2025')), - array('lt', array('Savaitė 2024 Spalio 7–13', 'Savaitė 2024 Lapkričio 25 – Gruodžio 1', 'Savaitė 2024 Gruodžio 30 – 2025 Sausio 5')), + array('en', array('week October 7 – 13, 2024', 'week November 25 – December 1, 2024', 'week December 30, 2024 – January 5, 2025')), + array('lt', array('savaitė 2024 Spalio 7–13', 'savaitė 2024 Lapkričio 25 – Gruodžio 1', 'savaitė 2024 Gruodžio 30 – 2025 Sausio 5')), array('zh-cn', array('周 2024年10月7日至13日', '周 2024年11月25日至12月1日', '周 2024年12月30日至2025年01月5日')), ); } diff --git a/tests/UI/expected-ui-screenshots b/tests/UI/expected-ui-screenshots -Subproject 7f40c7eaf1454477cbee3d8f2e5697a9b690846 +Subproject 438a0d269b6a45803831481c6d7016cc0255347 |