Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorsgiehl <stefan@piwik.org>2013-08-30 20:40:10 +0400
committersgiehl <stefan@piwik.org>2013-09-04 02:15:14 +0400
commitc125af242c907baa5dea760b3f414f8d71408c53 (patch)
tree987447027f067af7e1fa379ca070372d07ad666f /tests
parent30c244736fe04a6c2f3fee40ed6ecae0071fc655 (diff)
added translations filter to filter by matching placeholder counts
Diffstat (limited to 'tests')
-rw-r--r--tests/PHPUnit/Core/Translate/Filter/ByParameterCountTest.php122
1 files changed, 122 insertions, 0 deletions
diff --git a/tests/PHPUnit/Core/Translate/Filter/ByParameterCountTest.php b/tests/PHPUnit/Core/Translate/Filter/ByParameterCountTest.php
new file mode 100644
index 0000000000..317eda8dd0
--- /dev/null
+++ b/tests/PHPUnit/Core/Translate/Filter/ByParameterCountTest.php
@@ -0,0 +1,122 @@
+<?php
+use Piwik\Translate\Filter\ByParameterCount;
+
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+class ByParameterCountTest extends PHPUnit_Framework_TestCase
+{
+ public function getFilterTestData()
+ {
+ return array(
+ // empty stays empty - nothing to filter
+ array(
+ array(),
+ array(),
+ array(),
+ array()
+ ),
+ // empty plugin is removed
+ array(
+ array(
+ 'test' => array()
+ ),
+ array(),
+ array(),
+ array(),
+ ),
+ // value with %s will be removed, as it isn't there in base
+ array(
+ array(
+ 'test' => array(
+ 'key' => 'val%sue',
+ 'test' => 'test'
+ )
+ ),
+ array(
+ 'test' => array(
+ 'key' => 'value',
+ )
+ ),
+ array(
+ 'test' => array(
+ 'test' => 'test',
+ )
+ ),
+ array(
+ 'test' => array(
+ 'key' => 'val%sue',
+ )
+ ),
+ ),
+ // no change if placeholder count is the same
+ array(
+ array(
+ 'test' => array(
+ 'test' => 'te%sst'
+ )
+ ),
+ array(
+ 'test' => array(
+ 'test' => 'test%s'
+ )
+ ),
+ array(
+ 'test' => array(
+ 'test' => 'te%sst'
+ )
+ ),
+ array()
+ ),
+ // missing placeholder will be removed
+ array(
+ array(
+ 'empty' => array(
+ 'test' => 't%1$sest'
+ ),
+ 'test' => array(
+ 'test' => '%1$stest',
+ 'empty' => ' ',
+ )
+ ),
+ array(
+ 'empty' => array(
+ 'test' => 'test%1$s'
+ ),
+ 'test' => array(
+ 'test' => '%1$stest%2$s',
+ )
+ ),
+ array(
+ 'empty' => array(
+ 'test' => 't%1$sest'
+ ),
+ 'test' => array(
+ 'empty' => ' ',
+ )
+ ),
+ array(
+ 'test' => array(
+ 'test' => '%1$stest',
+ )
+ )
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider getFilterTestData
+ * @group Core
+ * @group Translate
+ */
+ public function testFilter($translations, $baseTranslations, $expected, $filteredData)
+ {
+ $filter = new ByParameterCount($baseTranslations);
+ $result = $filter->filter($translations);
+ $this->assertEquals($expected, $result);
+ $this->assertEquals($filteredData, $filter->getFilteredData());
+ }
+}