From 5c2fec8b74921b501958f102dd57bdd746563a26 Mon Sep 17 00:00:00 2001 From: tjhunt Date: Wed, 8 Apr 2009 11:45:53 +0000 Subject: [PATCH] get_string: MDL-18813 get_string was broken for strings that were '' --- lib/moodlelib.php | 3 ++- .../moodle/lang/en_utf8/test.php | 2 ++ .../moodledata/lang/fr_utf8/test.php | 1 + lib/simpletest/teststringmanager.php | 18 ++++++++++++++++++ 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 77a8470add..bd3cb8062a 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -5553,7 +5553,8 @@ class string_manager { foreach ($locations as $location => $ignored) { foreach (array('_local', '') as $suffix) { $file = $location . $lang . $suffix . '/' . $module . '.php'; - if ($result = $this->get_string_from_file($identifier, $file, $a)) { + $result = $this->get_string_from_file($identifier, $file, $a); + if ($result !== false) { return $result; } } diff --git a/lib/simpletest/get_string_fixtures/moodle/lang/en_utf8/test.php b/lib/simpletest/get_string_fixtures/moodle/lang/en_utf8/test.php index e079506281..7928995e56 100644 --- a/lib/simpletest/get_string_fixtures/moodle/lang/en_utf8/test.php +++ b/lib/simpletest/get_string_fixtures/moodle/lang/en_utf8/test.php @@ -2,4 +2,6 @@ $string['hello'] = 'Hello \'world\'!'; $string['hellox'] = 'Hello $a!'; $string['results'] = 'Dear $a->firstname $a->lastname,\n\nOn test \"$a->testname\" you scored $a->grade%% which earns you \$100.'; +$string['emptyen'] = ''; +$string['emptyfr'] = 'This string is defined as \'\' in the fr lang pack'; ?> \ No newline at end of file diff --git a/lib/simpletest/get_string_fixtures/moodledata/lang/fr_utf8/test.php b/lib/simpletest/get_string_fixtures/moodledata/lang/fr_utf8/test.php index 0a0fbd1d6d..3300aea285 100644 --- a/lib/simpletest/get_string_fixtures/moodledata/lang/fr_utf8/test.php +++ b/lib/simpletest/get_string_fixtures/moodledata/lang/fr_utf8/test.php @@ -1,4 +1,5 @@ \ No newline at end of file diff --git a/lib/simpletest/teststringmanager.php b/lib/simpletest/teststringmanager.php index 880f2a42ca..fe8781e067 100644 --- a/lib/simpletest/teststringmanager.php +++ b/lib/simpletest/teststringmanager.php @@ -75,6 +75,8 @@ $string['locallyoverridden'] = 'Not used'; $string['hello'] = 'Hello \'world\'!'; $string['hellox'] = 'Hello $a!'; $string['results'] = 'Dear $a->firstname $a->lastname,\n\nOn test \"$a->testname\" you scored $a->grade%% which earns you \$100.'; +$string['emptyen'] = ''; +$string['emptyfr'] = 'This string is defined as \'\' in the fr lang pack'; .../moodle/lang/en_utf8_local/moodle.php: $string['locallyoverridden'] = 'Should see this'; @@ -91,6 +93,7 @@ $string['parentlanguage'] = 'es_mx_utf8'; .../moodledata/lang/fr_utf8/test.php $string['hello'] = 'Bonjour tout le monde!'; $string['hellox'] = 'Bonjour $a!'; +$string['emptyfr'] = ''; .../moodledata/lang/fr_ca_utf8/test.php $string['hello'] = 'Bonjour Québec!'; @@ -242,9 +245,21 @@ class string_manager_test extends UnitTestCase { 'hello' => "Hello 'world'!", 'hellox' => 'Hello $a!', 'results' => 'Dear $a->firstname $a->lastname,\n\nOn test \"$a->testname\" you scored $a->grade%% which earns you \$100.', + 'emptyen' => '', + 'emptyfr' => 'This string is defined as \'\' in the fr lang pack' )); } + public function test_get_string_from_file_empty() { + // From the shared fixture: + //.../moodle/lang/en_utf8/test.php: + //$string['emptyen'] = ''; + // ... + $this->assertIdentical($this->stringmanager->get_string_from_file( + 'emptyen', $this->basedir . 'moodle/lang/en_utf8/test.php', NULL), + ''); + } + public function test_get_string_from_file_simple() { // From the shared fixture: //.../moodle/lang/en_utf8/test.php: @@ -289,6 +304,7 @@ class string_manager_test extends UnitTestCase { $this->assertEqual($this->stringmanager->get_string('hellox', 'test', 'Tim'), 'Hello Tim!'); $this->assertEqual($this->stringmanager->get_string('yes', 'block_mrbs'), 'Yes'); $this->assertEqual($this->stringmanager->get_string('stringnotdefinedanywhere'), '[[stringnotdefinedanywhere]]'); + $this->assertEqual($this->stringmanager->get_string('emptyen', 'test'), ''); } public function test_non_default_no_parent() { @@ -299,6 +315,7 @@ class string_manager_test extends UnitTestCase { $this->assertEqual($this->stringmanager->get_string('hellox', 'test', 'Jean-Paul'), 'Bonjour Jean-Paul!'); $this->assertEqual($this->stringmanager->get_string('yes', 'block_mrbs'), 'Oui'); $this->assertEqual($this->stringmanager->get_string('stringnotdefinedanywhere'), '[[stringnotdefinedanywhere]]'); + $this->assertEqual($this->stringmanager->get_string('emptyfr', 'test'), ''); } public function test_lang_with_parent() { @@ -310,6 +327,7 @@ class string_manager_test extends UnitTestCase { $this->assertEqual($this->stringmanager->get_string('yes', 'block_mrbs'), 'Oui'); $this->assertEqual($this->stringmanager->get_string('stringnotdefinedanywhere'), '[[stringnotdefinedanywhere]]'); } + } ?> -- 2.39.5