From dadfb6e90cf6f5e2d8bfede8ef174ed9502fa4ac Mon Sep 17 00:00:00 2001 From: "Eloy Lafuente (stronk7)" Date: Wed, 24 Apr 2024 12:00:54 +0200 Subject: [PATCH] MDL-81581 phpunit: Apply the new method to all remaining cases After discussing it in the issue, we have agreed to apply the new phpunit_util::normalise_line_endings() method to all the remaining cases (within tests!) where the manual replacement was being done. This commits achieves that. Note that I've looked for both str_replace() and preg_replace() cases, but only the former had cases worth converting. All the later ones are different and cannot be replaced by the new utility method. --- backup/util/xml/tests/writer_test.php | 3 +- .../aiken/tests/qformat_aiken_export_test.php | 6 ++-- .../format/gift/tests/giftformat_test.php | 35 ++++++++++--------- .../type/ordering/tests/questiontype_test.php | 2 +- 4 files changed, 26 insertions(+), 20 deletions(-) diff --git a/backup/util/xml/tests/writer_test.php b/backup/util/xml/tests/writer_test.php index 2e5c4543551..109d26ba005 100644 --- a/backup/util/xml/tests/writer_test.php +++ b/backup/util/xml/tests/writer_test.php @@ -26,6 +26,7 @@ namespace core_backup; use memory_xml_output; +use phpunit_util; use xml_contenttransformer; use xml_output; use xml_writer; @@ -314,7 +315,7 @@ class writer_test extends \basic_testcase { $fcontents = file_get_contents($CFG->dirroot . '/backup/util/xml/tests/fixtures/test1.xml'); // Normalise carriage return characters. - $fcontents = str_replace("\r\n", "\n", $fcontents); + $fcontents = phpunit_util::normalise_line_endings($fcontents); $this->assertEquals(trim($result), trim($fcontents)); } } diff --git a/question/format/aiken/tests/qformat_aiken_export_test.php b/question/format/aiken/tests/qformat_aiken_export_test.php index ac0eb13d841..4623e521106 100644 --- a/question/format/aiken/tests/qformat_aiken_export_test.php +++ b/question/format/aiken/tests/qformat_aiken_export_test.php @@ -44,8 +44,10 @@ class qformat_aiken_export_test extends advanced_testcase { * @param string $text The actual string. */ public function assert_same_aiken($expectedtext, $text) { - $this->assertEquals(str_replace("\r\n", "\n", $expectedtext), - str_replace("\r\n", "\n", $text)); + $this->assertEquals( + phpunit_util::normalise_line_endings($expectedtext), + phpunit_util::normalise_line_endings($text) + ); } public function test_export_questions() { diff --git a/question/format/gift/tests/giftformat_test.php b/question/format/gift/tests/giftformat_test.php index ef0321b2ee7..1366e8cc073 100644 --- a/question/format/gift/tests/giftformat_test.php +++ b/question/format/gift/tests/giftformat_test.php @@ -16,6 +16,7 @@ namespace qformat_gift; +use phpunit_util; use qformat_gift; use question_bank; use question_check_specified_fields_expectation; @@ -37,15 +38,17 @@ require_once($CFG->dirroot . '/question/engine/tests/helpers.php'); */ class giftformat_test extends \question_testcase { public function assert_same_gift($expectedtext, $text) { - $this->assertEquals(str_replace("\r\n", "\n", $expectedtext), - str_replace("\r\n", "\n", $text)); + $this->assertEquals( + phpunit_util::normalise_line_endings($expectedtext), + phpunit_util::normalise_line_endings($text) + ); } public function test_import_essay() { $gift = ' // essay ::Q8:: How are you? {}'; - $lines = preg_split('/[\\n\\r]/', str_replace("\r\n", "\n", $gift)); + $lines = preg_split('/[\\n\\r]/', phpunit_util::normalise_line_endings($gift)); $importer = new qformat_gift(); $q = $importer->readquestion($lines); @@ -114,7 +117,7 @@ class giftformat_test extends \question_testcase { =[markdown]A collection of web pages that anyone can add to or edit. -> Wiki = -> Chat }'; - $lines = preg_split('/[\\n\\r]/', str_replace("\r\n", "\n", $gift)); + $lines = preg_split('/[\\n\\r]/', phpunit_util::normalise_line_endings($gift)); $importer = new qformat_gift(); $q = $importer->readquestion($lines); @@ -284,7 +287,7 @@ class giftformat_test extends \question_testcase { ~red # [html]wrong, it's yellow ~[plain]blue # wrong, it's yellow }"; - $lines = preg_split('/[\\n\\r]/', str_replace("\r\n", "\n", $gift)); + $lines = preg_split('/[\\n\\r]/', phpunit_util::normalise_line_endings($gift)); $importer = new qformat_gift(); $q = $importer->readquestion($lines); @@ -387,7 +390,7 @@ class giftformat_test extends \question_testcase { ~%50%off-beige # right; good! ~%-100%[plain]blue # wrong }"; - $lines = preg_split('/[\\n\\r]/', str_replace("\r\n", "\n", $gift)); + $lines = preg_split('/[\\n\\r]/', phpunit_util::normalise_line_endings($gift)); $importer = new qformat_gift(); $q = $importer->readquestion($lines); @@ -482,7 +485,7 @@ class giftformat_test extends \question_testcase { ~%-50%red # wrong ~%-50%blue # wrong }"; - $lines = preg_split('/[\\n\\r]/', str_replace("\r\n", "\n", $gift)); + $lines = preg_split('/[\\n\\r]/', phpunit_util::normalise_line_endings($gift)); $importer = new qformat_gift(); $q = $importer->readquestion($lines); @@ -694,7 +697,7 @@ class giftformat_test extends \question_testcase { $gift = " // math range question ::Q5:: What is a number from 1 to 5? {#3:2~#Completely wrong}"; - $lines = preg_split('/[\\n\\r]/', str_replace("\r\n", "\n", $gift)); + $lines = preg_split('/[\\n\\r]/', phpunit_util::normalise_line_endings($gift)); $importer = new qformat_gift(); $q = $importer->readquestion($lines); @@ -800,7 +803,7 @@ class giftformat_test extends \question_testcase { =%50%Cat#What is it with Moodlers and cats? =%0%*#Completely wrong }"; - $lines = preg_split('/[\\n\\r]/', str_replace("\r\n", "\n", $gift)); + $lines = preg_split('/[\\n\\r]/', phpunit_util::normalise_line_endings($gift)); $importer = new qformat_gift(); $q = $importer->readquestion($lines); @@ -856,7 +859,7 @@ class giftformat_test extends \question_testcase { =%0%*#Completely wrong ####[html]Here is some general feedback! }"; - $lines = preg_split('/[\\n\\r]/', str_replace("\r\n", "\n", $gift)); + $lines = preg_split('/[\\n\\r]/', phpunit_util::normalise_line_endings($gift)); $importer = new qformat_gift(); $q = $importer->readquestion($lines); @@ -1029,7 +1032,7 @@ class giftformat_test extends \question_testcase { // true/false ::Q1:: 42 is the Absolute Answer to everything.{ FALSE#42 is the Ultimate Answer.#You gave the right answer.}"; - $lines = preg_split('/[\\n\\r]/', str_replace("\r\n", "\n", $gift)); + $lines = preg_split('/[\\n\\r]/', phpunit_util::normalise_line_endings($gift)); $importer = new qformat_gift(); $q = $importer->readquestion($lines); @@ -1063,7 +1066,7 @@ FALSE#42 is the Ultimate Answer.#You gave the right answer.}"; public function test_import_truefalse_true_answer1() { $gift = "// name 0-11 ::2-08 TSL::TSL is blablabla.{T}"; - $lines = preg_split('/[\\n\\r]/', str_replace("\r\n", "\n", $gift)); + $lines = preg_split('/[\\n\\r]/', phpunit_util::normalise_line_endings($gift)); $importer = new qformat_gift(); $q = $importer->readquestion($lines); @@ -1097,7 +1100,7 @@ FALSE#42 is the Ultimate Answer.#You gave the right answer.}"; public function test_import_truefalse_true_answer2() { $gift = "// name 0-11 ::2-08 TSL::TSL is blablabla.{TRUE}"; - $lines = preg_split('/[\\n\\r]/', str_replace("\r\n", "\n", $gift)); + $lines = preg_split('/[\\n\\r]/', phpunit_util::normalise_line_endings($gift)); $importer = new qformat_gift(); $q = $importer->readquestion($lines); @@ -1219,7 +1222,7 @@ FALSE#42 is the Ultimate Answer.#You gave the right answer.}"; $gift = ' // essay ::double backslash:: A \\\\ B \\\\\\\\ C{}'; - $lines = preg_split('/[\\n\\r]/', str_replace("\r\n", "\n", $gift)); + $lines = preg_split('/[\\n\\r]/', phpunit_util::normalise_line_endings($gift)); $importer = new qformat_gift(); $q = $importer->readquestion($lines); @@ -1257,7 +1260,7 @@ FALSE#42 is the Ultimate Answer.#You gave the right answer.}"; \} {}'; - $lines = preg_split('/[\\n\\r]/', str_replace("\r\n", "\n", $gift)); + $lines = preg_split('/[\\n\\r]/', phpunit_util::normalise_line_endings($gift)); $importer = new qformat_gift(); $q = $importer->readquestion($lines); @@ -1296,7 +1299,7 @@ FALSE#42 is the Ultimate Answer.#You gave the right answer.}"; // This question is to test importing tags: [tag:tag] [tag:other-tag]. // And an idnumber: [id:myid]. ::Question name:: How are you? {}'; - $lines = preg_split('/[\\n\\r]/', str_replace("\r\n", "\n", $gift)); + $lines = preg_split('/[\\n\\r]/', phpunit_util::normalise_line_endings($gift)); $importer = new qformat_gift(); $q = $importer->readquestion($lines); diff --git a/question/type/ordering/tests/questiontype_test.php b/question/type/ordering/tests/questiontype_test.php index 00981c4fe45..5a390258ba4 100644 --- a/question/type/ordering/tests/questiontype_test.php +++ b/question/type/ordering/tests/questiontype_test.php @@ -293,7 +293,7 @@ final class questiontype_test extends \question_testcase { // Import a question from GIFT. $gift = file_get_contents(__DIR__ . '/fixtures/testimport.gift.txt'); $format = new qformat_gift(); - $lines = preg_split('/[\\n\\r]/', str_replace("\r\n", "\n", $gift)); + $lines = preg_split('/[\\n\\r]/', phpunit_util::normalise_line_endings($gift)); $imported = $format->readquestion($lines); $this->assert(new question_check_specified_fields_expectation(self::expectedimport()), $imported);