diff --git a/tests/php/Forms/FormTest.php b/tests/php/Forms/FormTest.php
index b4bbee79f..b31a4a254 100644
--- a/tests/php/Forms/FormTest.php
+++ b/tests/php/Forms/FormTest.php
@@ -1052,8 +1052,8 @@ class FormTest extends FunctionalTest
);
$this->assertContains(
- 'clean($body),
'Our reloaded form should contain a SomeFrenchNumericField with the value "9 876,5432"'
);
@@ -1064,8 +1064,8 @@ class FormTest extends FunctionalTest
);
$this->assertContains(
- 'clean($body),
'Our reloaded form should contain a SomeFrenchMoneyField[Amount] with the value "9 876,54"'
);
@@ -1108,4 +1108,23 @@ class FormTest extends FunctionalTest
new FieldList()
);
}
+
+ /**
+ * In some cases and locales, validation expects non-breaking spaces.
+ * This homogenises narrow and regular NBSPs to a regular space character
+ *
+ * @param string $input
+ * @return string The input value, with all non-breaking spaces replaced with spaces
+ */
+ protected function clean($input)
+ {
+ return str_replace(
+ [
+ html_entity_decode(' ', null, 'UTF-8'),
+ html_entity_decode(' ', null, 'UTF-8'), // narrow non-breaking space
+ ],
+ ' ',
+ trim($input)
+ );
+ }
}
diff --git a/tests/php/Forms/NumericFieldTest.php b/tests/php/Forms/NumericFieldTest.php
index 622c3783b..f8b146e08 100644
--- a/tests/php/Forms/NumericFieldTest.php
+++ b/tests/php/Forms/NumericFieldTest.php
@@ -13,16 +13,23 @@ class NumericFieldTest extends SapphireTest
/**
* In some cases and locales, validation expects non-breaking spaces.
+ * This homogenises narrow and regular NBSPs to a regular space character
*
* Duplicates non-public NumericField::clean method
*
* @param string $input
- * @return string The input value, with all spaces replaced with non-breaking spaces
+ * @return string The input value, with all non-breaking spaces replaced with spaces
*/
protected function clean($input)
{
- $nbsp = html_entity_decode(' ', null, 'UTF-8');
- return str_replace(' ', $nbsp, trim($input));
+ return str_replace(
+ [
+ html_entity_decode(' ', null, 'UTF-8'),
+ html_entity_decode(' ', null, 'UTF-8'), // narrow non-breaking space
+ ],
+ ' ',
+ trim($input)
+ );
}
/**