summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/semantics/forms/the-textarea-element/wrapping-transformation.window.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/html/semantics/forms/the-textarea-element/wrapping-transformation.window.js')
-rw-r--r--testing/web-platform/tests/html/semantics/forms/the-textarea-element/wrapping-transformation.window.js58
1 files changed, 58 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/forms/the-textarea-element/wrapping-transformation.window.js b/testing/web-platform/tests/html/semantics/forms/the-textarea-element/wrapping-transformation.window.js
new file mode 100644
index 0000000000..c5c28a4854
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/forms/the-textarea-element/wrapping-transformation.window.js
@@ -0,0 +1,58 @@
+test((t) => {
+ const form = document.createElement("form");
+ const textarea = document.createElement("textarea");
+ textarea.name = "linebreakTest";
+ textarea.textContent = "a\nb\rc\r\nd\n\re";
+ form.appendChild(textarea);
+ document.body.appendChild(form);
+ t.add_cleanup(() => {
+ document.body.removeChild(form);
+ });
+
+ assert_equals(textarea.textContent, "a\nb\rc\r\nd\n\re");
+ assert_equals(textarea.value, "a\nb\nc\nd\n\ne");
+
+ const formData = new FormData(form);
+ assert_equals(
+ formData.get("linebreakTest"),
+ "a\nb\nc\nd\n\ne",
+ );
+}, "Textarea wrapping transformation: Newlines should be normalized to LF.");
+
+test((t) => {
+ const form = document.createElement("form");
+ const textarea = document.createElement("textarea");
+ textarea.name = "wrapTest";
+ textarea.cols = 10;
+ textarea.wrap = "hard";
+ textarea.textContent =
+ "Some text that is too long for the specified character width.";
+ form.appendChild(textarea);
+ document.body.appendChild(form);
+ t.add_cleanup(() => {
+ document.body.removeChild(form);
+ });
+
+ assert_true(
+ !textarea.textContent.includes("\n") &&
+ !textarea.textContent.includes("\r"),
+ "textContent shouldn't contain any newlines",
+ );
+ assert_true(
+ !textarea.textContent.includes("\n") &&
+ !textarea.textContent.includes("\r"),
+ "The API value shouldn't be line wrapped.",
+ );
+
+ const formData = new FormData(form);
+ const formDataValue = formData.get("wrapTest");
+
+ assert_true(
+ !formDataValue.includes("\r"),
+ "The wrapping done on the value must be LF, not CRLF.",
+ );
+ assert_true(
+ formDataValue.includes("\n"),
+ "The value must be wrapped.",
+ );
+}, "Textarea wrapping transformation: Wrapping happens with LF newlines.");