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
diff options
context:
space:
mode:
authorStefan Giehl <stefan@matomo.org>2022-04-14 17:31:40 +0300
committerGitHub <noreply@github.com>2022-04-14 17:31:40 +0300
commit05f72613c1c5aa86680e6dc5fd6d3da21c23a240 (patch)
tree84ea8a7b6dbff87462f60c275d0289c30fe5ccc1
parent50a36c7e614dd23e1738aba6a76cd62b857f278e (diff)
Fix failing translation test (#19105)
-rw-r--r--plugins/LanguagesManager/TranslationWriter/Validate/NoScripts.php5
-rw-r--r--plugins/LanguagesManager/tests/Unit/TranslationWriter/WriterTest.php120
2 files changed, 65 insertions, 60 deletions
diff --git a/plugins/LanguagesManager/TranslationWriter/Validate/NoScripts.php b/plugins/LanguagesManager/TranslationWriter/Validate/NoScripts.php
index b5b1396226..78a56898e4 100644
--- a/plugins/LanguagesManager/TranslationWriter/Validate/NoScripts.php
+++ b/plugins/LanguagesManager/TranslationWriter/Validate/NoScripts.php
@@ -1,4 +1,5 @@
<?php
+
/**
* Matomo - free/libre analytics platform
*
@@ -25,10 +26,10 @@ class NoScripts extends ValidateAbstract
// check if any translation contains restricted script tags
$serializedStrings = serialize($translations);
- $invalids = array("<script", 'javascript:', 'src=', 'background=', 'onload=');
+ $invalids = ['/<script/i', '/javascript:[^"]/i', '/src=/i', '/background=/i', '/onload=/i'];
foreach ($invalids as $invalid) {
- if (stripos($serializedStrings, $invalid) !== false) {
+ if (preg_match($invalid, $serializedStrings) > 0) {
$this->message = 'script tags restricted for language files';
return false;
}
diff --git a/plugins/LanguagesManager/tests/Unit/TranslationWriter/WriterTest.php b/plugins/LanguagesManager/tests/Unit/TranslationWriter/WriterTest.php
index 51977a7243..b87e6a90da 100644
--- a/plugins/LanguagesManager/tests/Unit/TranslationWriter/WriterTest.php
+++ b/plugins/LanguagesManager/tests/Unit/TranslationWriter/WriterTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* Matomo - free/libre analytics platform
*
@@ -35,11 +36,11 @@ class WriterTest extends \PHPUnit\Framework\TestCase
public function getValidConstructorData()
{
- return array(
- array('en', ''),
- array('de', ''),
- array('en', 'ExamplePlugin'),
- );
+ return [
+ ['en', ''],
+ ['de', ''],
+ ['en', 'ExamplePlugin'],
+ ];
}
/**
@@ -58,7 +59,7 @@ class WriterTest extends \PHPUnit\Framework\TestCase
public function testHasTranslations()
{
$writer = new Writer('de');
- $writer->setTranslations(array('General' => array('test' => 'test')));
+ $writer->setTranslations(['General' => ['test' => 'test']]);
$this->assertTrue($writer->hasTranslations());
}
@@ -77,7 +78,7 @@ class WriterTest extends \PHPUnit\Framework\TestCase
public function testSetTranslationsEmpty()
{
$writer = new Writer('de');
- $writer->setTranslations(array());
+ $writer->setTranslations([]);
$this->assertTrue($writer->isValid());
$this->assertFalse($writer->hasTranslations());
}
@@ -99,18 +100,21 @@ class WriterTest extends \PHPUnit\Framework\TestCase
public function getInvalidTranslations()
{
- $translations = json_decode(file_get_contents(PIWIK_INCLUDE_PATH.'/lang/de.json'), true);
- return array(
- array(array('General' => array('Locale' => '')) + $translations, CoreTranslations::ERRORSTATE_LOCALEREQUIRED),
- array(array('General' => array('Locale' => 'de_DE.UTF-8')) + $translations, CoreTranslations::ERRORSTATE_TRANSLATORINFOREQUIRED),
- array(array('General' => array('Locale' => 'invalid',
- 'TranslatorName' => 'name')) + $translations, CoreTranslations::ERRORSTATE_LOCALEINVALID),
- array(array('General' => array('Locale' => 'xx_DE.UTF-8',
- 'TranslatorName' => 'name')) + $translations, CoreTranslations::ERRORSTATE_LOCALEINVALIDLANGUAGE),
- array(array('General' => array('Locale' => 'de_XX.UTF-8',
- 'TranslatorName' => 'name')) + $translations, CoreTranslations::ERRORSTATE_LOCALEINVALIDCOUNTRY),
- array(array('General' => array('Locale' => '<script>')) + $translations, 'script tags restricted for language files'),
- );
+ $translations = json_decode(file_get_contents(PIWIK_INCLUDE_PATH . '/lang/de.json'), true);
+ return [
+ [['General' => ['Locale' => '']] + $translations, CoreTranslations::ERRORSTATE_LOCALEREQUIRED],
+ [['General' => ['Locale' => 'de_DE.UTF-8']] + $translations, CoreTranslations::ERRORSTATE_TRANSLATORINFOREQUIRED],
+ [['General' => [
+ 'Locale' => 'invalid',
+ 'TranslatorName' => 'name'
+ ]
+ ] + $translations, CoreTranslations::ERRORSTATE_LOCALEINVALID],
+ [['General' => ['Locale' => 'xx_DE.UTF-8',
+ 'TranslatorName' => 'name']] + $translations, CoreTranslations::ERRORSTATE_LOCALEINVALIDLANGUAGE],
+ [['General' => ['Locale' => 'de_XX.UTF-8',
+ 'TranslatorName' => 'name']] + $translations, CoreTranslations::ERRORSTATE_LOCALEINVALIDCOUNTRY],
+ [['General' => ['Locale' => '<script>']] + $translations, 'script tags restricted for language files'],
+ ];
}
/**
@@ -140,16 +144,16 @@ class WriterTest extends \PHPUnit\Framework\TestCase
*/
public function testSaveTranslation()
{
- $translations = json_decode(file_get_contents(PIWIK_INCLUDE_PATH.'/lang/en.json'), true);
+ $translations = json_decode(file_get_contents(PIWIK_INCLUDE_PATH . '/lang/en.json'), true);
- $translationsToWrite = array();
+ $translationsToWrite = [];
$translationsToWrite['General'] = $translations['General'];
$translationsToWrite['Mobile'] = $translations['Mobile'];
$translationsToWrite['General']['Yes'] = 'string with %1$s';
- $translationsToWrite['Plugin'] = array(
+ $translationsToWrite['Plugin'] = [
'Body' => "Message\nBody"
- );
+ ];
$translationWriter = new Writer('fr');
@@ -161,7 +165,7 @@ class WriterTest extends \PHPUnit\Framework\TestCase
$rc = $translationWriter->saveTemporary();
- @unlink(PIWIK_INCLUDE_PATH.'/tmp/fr.json');
+ @unlink(PIWIK_INCLUDE_PATH . '/tmp/fr.json');
$this->assertGreaterThan(25000, $rc);
@@ -181,12 +185,12 @@ class WriterTest extends \PHPUnit\Framework\TestCase
public function getTranslationPathTestData()
{
- return array(
- array('de', null, PIWIK_INCLUDE_PATH . '/lang/de.json'),
- array('te', null, PIWIK_INCLUDE_PATH . '/lang/te.json'),
- array('de', 'CoreHome', PIWIK_INCLUDE_PATH . '/plugins/CoreHome/lang/de.json'),
- array('pt-br', 'Actions', PIWIK_INCLUDE_PATH . '/plugins/Actions/lang/pt-br.json'),
- );
+ return [
+ ['de', null, PIWIK_INCLUDE_PATH . '/lang/de.json'],
+ ['te', null, PIWIK_INCLUDE_PATH . '/lang/te.json'],
+ ['de', 'CoreHome', PIWIK_INCLUDE_PATH . '/plugins/CoreHome/lang/de.json'],
+ ['pt-br', 'Actions', PIWIK_INCLUDE_PATH . '/plugins/Actions/lang/pt-br.json'],
+ ];
}
/**
@@ -204,12 +208,12 @@ class WriterTest extends \PHPUnit\Framework\TestCase
{
$tmpPath = StaticContainer::get('path.tmp');
- return array(
- array('de', null, $tmpPath . '/de.json'),
- array('te', null, $tmpPath . '/te.json'),
- array('de', 'CoreHome', $tmpPath . '/plugins/CoreHome/lang/de.json'),
- array('pt-br', 'Actions', $tmpPath . '/plugins/Actions/lang/pt-br.json'),
- );
+ return [
+ ['de', null, $tmpPath . '/de.json'],
+ ['te', null, $tmpPath . '/te.json'],
+ ['de', 'CoreHome', $tmpPath . '/plugins/CoreHome/lang/de.json'],
+ ['pt-br', 'Actions', $tmpPath . '/plugins/Actions/lang/pt-br.json'],
+ ];
}
/**
@@ -226,17 +230,17 @@ class WriterTest extends \PHPUnit\Framework\TestCase
public function getValidLanguages()
{
- return array(
- array('de'),
- array('te'),
- array('pt-br'),
- array('tzm'),
- array('abc'),
- array('de-de'),
- array('DE'),
- array('DE-DE'),
- array('DE-de'),
- );
+ return [
+ ['de'],
+ ['te'],
+ ['pt-br'],
+ ['tzm'],
+ ['abc'],
+ ['de-de'],
+ ['DE'],
+ ['DE-DE'],
+ ['DE-de'],
+ ];
}
/**
* @group Core
@@ -253,16 +257,16 @@ class WriterTest extends \PHPUnit\Framework\TestCase
public function getInvalidLanguages()
{
- return array(
- array(''),
- array('abcd'),
- array('pt-brfr'),
- array('00'),
- array('a-b'),
- array('x3'),
- array('X4-fd'),
- array('12-34'),
- array('$§'),
- );
+ return [
+ [''],
+ ['abcd'],
+ ['pt-brfr'],
+ ['00'],
+ ['a-b'],
+ ['x3'],
+ ['X4-fd'],
+ ['12-34'],
+ ['$§'],
+ ];
}
}