diff --git a/lib/form/templatable_form_element.php b/lib/form/templatable_form_element.php index 3ca1c63d295..e0b235a22e8 100644 --- a/lib/form/templatable_form_element.php +++ b/lib/form/templatable_form_element.php @@ -51,7 +51,7 @@ trait templatable_form_element { $context = []; // Not all elements have all of these attributes - but they are common enough to be valid for a few. - $standardattributes = ['id', 'name', 'label', 'multiple', 'checked', 'error', 'size', 'value']; + $standardattributes = ['id', 'name', 'label', 'multiple', 'checked', 'error', 'size', 'value', 'type']; $standardproperties = ['helpbutton', 'hiddenLabel']; // Standard attributes. diff --git a/lib/tests/formslib_test.php b/lib/tests/formslib_test.php index 155fe3d1b9b..2587997e921 100644 --- a/lib/tests/formslib_test.php +++ b/lib/tests/formslib_test.php @@ -283,7 +283,7 @@ class core_formslib_testcase extends advanced_testcase { $this->assertDebuggingCalled("Did you remember to call setType() for 'texttest'? Defaulting to PARAM_RAW cleaning."); // Check form still there though. - $this->expectOutputRegex('/]*name="texttest[^>]*type="text/'); + $this->expectOutputRegex('/]*type="text[^>]*name="texttest/'); $mform->display(); } @@ -303,7 +303,7 @@ class core_formslib_testcase extends advanced_testcase { $this->assertDebuggingCalled("Did you remember to call setType() for 'urltest'? Defaulting to PARAM_RAW cleaning."); // Check form still there though. - $this->expectOutputRegex('/]*name="urltest"[^>]*type="text/'); + $this->expectOutputRegex('/]*type="url[^>]*name="urltest"/'); $mform->display(); } @@ -312,7 +312,7 @@ class core_formslib_testcase extends advanced_testcase { $this->assertDebuggingCalled("Did you remember to call setType() for 'repeattest[0]'? Defaulting to PARAM_RAW cleaning."); // Check form still there though. - $this->expectOutputRegex('/]*name="repeattest[^>]*type="text/'); + $this->expectOutputRegex('/]*type="text[^>]*name="repeattest/'); $mform->display(); } @@ -320,55 +320,55 @@ class core_formslib_testcase extends advanced_testcase { $mform = new formslib_settype_debugging_repeat_ok(); // No debugging expected here. - $this->expectOutputRegex('/]*name="repeattest[^>]*type="text/'); + $this->expectOutputRegex('/]*type="text[^>]*name="repeattest/'); $mform->display(); } public function test_settype_debugging_group() { $mform = new formslib_settype_debugging_group(); $this->assertDebuggingCalled("Did you remember to call setType() for 'groupel1'? Defaulting to PARAM_RAW cleaning."); - $this->expectOutputRegex('/]*name="groupel1"[^>]*type="text/'); - $this->expectOutputRegex('/]*name="groupel2"[^>]*type="text/'); + $this->expectOutputRegex('/]*type="text[^>]*name="groupel1"/'); + $this->expectOutputRegex('/]*type="text[^>]*name="groupel2"/'); $mform->display(); } public function test_settype_debugging_namedgroup() { $mform = new formslib_settype_debugging_namedgroup(); $this->assertDebuggingCalled("Did you remember to call setType() for 'namedgroup[groupel1]'? Defaulting to PARAM_RAW cleaning."); - $this->expectOutputRegex('/]*name="namedgroup\[groupel1\]"[^>]*type="text/'); - $this->expectOutputRegex('/]*name="namedgroup\[groupel2\]"[^>]*type="text/'); + $this->expectOutputRegex('/]*type="text[^>]*name="namedgroup\[groupel1\]"/'); + $this->expectOutputRegex('/]*type="text[^>]*name="namedgroup\[groupel2\]"/'); $mform->display(); } public function test_settype_debugging_funky_name() { $mform = new formslib_settype_debugging_funky_name(); $this->assertDebuggingCalled("Did you remember to call setType() for 'blah[foo][bar][1]'? Defaulting to PARAM_RAW cleaning."); - $this->expectOutputRegex('/]*name="blah\[foo\]\[bar\]\[0\]"[^>]*type="text/'); - $this->expectOutputRegex('/]*name="blah\[foo\]\[bar\]\[1\]"[^>]*type="text/'); + $this->expectOutputRegex('/]*type="text[^>]*name="blah\[foo\]\[bar\]\[0\]"/'); + $this->expectOutputRegex('/]*type="text[^>]*name="blah\[foo\]\[bar\]\[1\]"/'); $mform->display(); } public function test_settype_debugging_type_inheritance() { $mform = new formslib_settype_debugging_type_inheritance(); - $this->expectOutputRegex('/]*name="blah\[foo\]\[bar\]\[0\]"[^>]*type="text/'); - $this->expectOutputRegex('/]*name="blah\[bar\]\[foo\]\[1\]"[^>]*type="text/'); - $this->expectOutputRegex('/]*name="blah\[any\]\[other\]\[2\]"[^>]*type="text/'); + $this->expectOutputRegex('/]*type="text[^>]*name="blah\[foo\]\[bar\]\[0\]"/'); + $this->expectOutputRegex('/]*type="text[^>]*name="blah\[bar\]\[foo\]\[1\]"/'); + $this->expectOutputRegex('/]*type="text[^>]*name="blah\[any\]\[other\]\[2\]"/'); $mform->display(); } public function test_settype_debugging_type_group_in_repeat() { $mform = new formslib_settype_debugging_type_group_in_repeat(); $this->assertDebuggingCalled("Did you remember to call setType() for 'test2[0]'? Defaulting to PARAM_RAW cleaning."); - $this->expectOutputRegex('/]*name="test1\[0\]"[^>]*type="text/'); - $this->expectOutputRegex('/]*name="test2\[0\]"[^>]*type="text/'); + $this->expectOutputRegex('/]*type="text[^>]*name="test1\[0\]"/'); + $this->expectOutputRegex('/]*type="text[^>]*name="test2\[0\]"/'); $mform->display(); } public function test_settype_debugging_type_namedgroup_in_repeat() { $mform = new formslib_settype_debugging_type_namedgroup_in_repeat(); $this->assertDebuggingCalled("Did you remember to call setType() for 'namedgroup[0][test2]'? Defaulting to PARAM_RAW cleaning."); - $this->expectOutputRegex('/]*name="namedgroup\[0\]\[test1\]"[^>]*type="text/'); - $this->expectOutputRegex('/]*name="namedgroup\[0\]\[test2\]"[^>]*type="text/'); + $this->expectOutputRegex('/]*type="text[^>]*name="namedgroup\[0\]\[test1\]"/'); + $this->expectOutputRegex('/]*type="text[^>]*name="namedgroup\[0\]\[test2\]"/'); $mform->display(); }