summaryrefslogtreecommitdiff
path: root/modules/locale
diff options
context:
space:
mode:
authorwebchick <webchick@24967.no-reply.drupal.org>2012-03-13 12:44:26 -0700
committerwebchick <webchick@24967.no-reply.drupal.org>2012-03-13 12:45:49 -0700
commit8f096c6b62b11f04a847363f5fe173c021fae9be (patch)
tree75cca0aba0de10381ede800b46d37a2e2728b439 /modules/locale
parentc6734081a8a08b01f5913a16a7e5d680906950c0 (diff)
downloadbrdo-8f096c6b62b11f04a847363f5fe173c021fae9be.tar.gz
brdo-8f096c6b62b11f04a847363f5fe173c021fae9be.tar.bz2
Issue #655048 by Gábor Hojtsy, gumanist, intuited: Fixed Plural formula information blanked when importing a poorly-formed .po file.
Diffstat (limited to 'modules/locale')
-rw-r--r--modules/locale/locale.test55
1 files changed, 55 insertions, 0 deletions
diff --git a/modules/locale/locale.test b/modules/locale/locale.test
index db0bead1e..c922c1df6 100644
--- a/modules/locale/locale.test
+++ b/modules/locale/locale.test
@@ -793,6 +793,25 @@ class LocaleImportFunctionalTest extends DrupalWebTestCase {
// This import should not have changed number of plural forms.
$this->assert(db_query("SELECT plurals FROM {languages} WHERE language = 'fr'")->fetchField() == 2, t('Plural numbers untouched.'));
+ $this->importPoFile($this->getPoFileWithBrokenPlural(), array(
+ 'langcode' => 'fr',
+ 'mode' => 1, // Existing strings are kept, only new strings are added.
+ ));
+
+ // Attempt to import broken .po file as well to prove that this
+ // will not overwrite the proper plural formula imported above.
+ $this->assert(db_query("SELECT plurals FROM {languages} WHERE language = 'fr'")->fetchField() == 2, t('Broken plurals: plural numbers untouched.'));
+
+ $this->importPoFile($this->getPoFileWithMissingPlural(), array(
+ 'langcode' => 'fr',
+ 'mode' => 1, // Existing strings are kept, only new strings are added.
+ ));
+
+ // Attempt to import .po file which has no plurals and prove that this
+ // will not overwrite the proper plural formula imported above.
+ $this->assert(db_query("SELECT plurals FROM {languages} WHERE language = 'fr'")->fetchField() == 2, t('No plurals: plural numbers untouched.'));
+
+
// Try importing a .po file with overriding strings, and ensure existing
// strings are overwritten.
$this->importPoFile($this->getOverwritePoFile(), array(
@@ -1072,6 +1091,42 @@ msgstr ""
EOF;
}
+
+ /**
+ * Returns a .po file with a missing plural formula.
+ */
+ function getPoFileWithMissingPlural() {
+ return <<< EOF
+msgid ""
+msgstr ""
+"Project-Id-Version: Drupal 7\\n"
+"MIME-Version: 1.0\\n"
+"Content-Type: text/plain; charset=UTF-8\\n"
+"Content-Transfer-Encoding: 8bit\\n"
+
+msgid "Monday"
+msgstr "Ponedjeljak"
+EOF;
+ }
+
+ /**
+ * Returns a .po file with a broken plural formula.
+ */
+ function getPoFileWithBrokenPlural() {
+ return <<< EOF
+msgid ""
+msgstr ""
+"Project-Id-Version: Drupal 7\\n"
+"MIME-Version: 1.0\\n"
+"Content-Type: text/plain; charset=UTF-8\\n"
+"Content-Transfer-Encoding: 8bit\\n"
+"Plural-Forms: broken, will not parse\\n"
+
+msgid "Monday"
+msgstr "lundi"
+EOF;
+ }
+
}
/**