chromium/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-0/text-plain.window.js

// META: script=enctypes-helper.js

const formTest = formSubmissionTemplate("text/plain");

formTest({
  name: "basic",
  value: "test",
  expected: "basic=test\r\n",
  description: "Basic test",
});

formTest({
  name: "basic",
  value: new File([], "file-test.txt"),
  expected: "basic=file-test.txt\r\n",
  description: "Basic File test",
});

formTest({
  name: "a\0b",
  value: "c",
  expected: "a\0b=c\r\n",
  description: "0x00 in name",
});

formTest({
  name: "a",
  value: "b\0c",
  expected: "a=b\0c\r\n",
  description: "0x00 in value",
});

formTest({
  name: "a",
  value: new File([], "b\0c"),
  expected: "a=b\0c\r\n",
  description: "0x00 in filename",
});

formTest({
  name: "a\nb",
  value: "c",
  expected: "a\r\nb=c\r\n",
  description: "\\n in name",
});

formTest({
  name: "a\rb",
  value: "c",
  expected: "a\r\nb=c\r\n",
  description: "\\r in name",
});

formTest({
  name: "a\r\nb",
  value: "c",
  expected: "a\r\nb=c\r\n",
  description: "\\r\\n in name",
});

formTest({
  name: "a\n\rb",
  value: "c",
  expected: "a\r\n\r\nb=c\r\n",
  description: "\\n\\r in name",
});

formTest({
  name: "a",
  value: "b\nc",
  expected: "a=b\r\nc\r\n",
  description: "\\n in value",
});

formTest({
  name: "a",
  value: "b\rc",
  expected: "a=b\r\nc\r\n",
  description: "\\r in value",
});

formTest({
  name: "a",
  value: "b\r\nc",
  expected: "a=b\r\nc\r\n",
  description: "\\r\\n in value",
});

formTest({
  name: "a",
  value: "b\n\rc",
  expected: "a=b\r\n\r\nc\r\n",
  description: "\\n\\r in value",
});

formTest({
  name: "a",
  value: new File([], "b\nc"),
  expected: "a=b\r\nc\r\n",
  description: "\\n in filename",
});

formTest({
  name: "a",
  value: new File([], "b\rc"),
  expected: "a=b\r\nc\r\n",
  description: "\\r in filename",
});

formTest({
  name: "a",
  value: new File([], "b\r\nc"),
  expected: "a=b\r\nc\r\n",
  description: "\\r\\n in filename",
});

formTest({
  name: "a",
  value: new File([], "b\n\rc"),
  expected: "a=b\r\n\r\nc\r\n",
  description: "\\n\\r in filename",
});

formTest({
  name: 'a"b',
  value: "c",
  expected: 'a"b=c\r\n',
  description: "double quote in name",
});

formTest({
  name: "a",
  value: 'b"c',
  expected: 'a=b"c\r\n',
  description: "double quote in value",
});

formTest({
  name: "a",
  value: new File([], 'b"c'),
  expected: 'a=b"c\r\n',
  description: "double quote in filename",
});

formTest({
  name: "a'b",
  value: "c",
  expected: "a'b=c\r\n",
  description: "single quote in name",
});

formTest({
  name: "a",
  value: "b'c",
  expected: "a=b'c\r\n",
  description: "single quote in value",
});

formTest({
  name: "a",
  value: new File([], "b'c"),
  expected: "a=b'c\r\n",
  description: "single quote in filename",
});

formTest({
  name: "a\\b",
  value: "c",
  expected: "a\\b=c\r\n",
  description: "backslash in name",
});

formTest({
  name: "a",
  value: "b\\c",
  expected: "a=b\\c\r\n",
  description: "backslash in value",
});

formTest({
  name: "a",
  value: new File([], "b\\c"),
  expected: "a=b\\c\r\n",
  description: "backslash in filename",
});

formTest({
  name: "áb",
  value: "ç",
  expected: "\xC3\xA1b=\xC3\xA7\r\n",
  description: "non-ASCII in name and value",
});

formTest({
  name: "a",
  value: new File([], "ə.txt"),
  expected: "a=\xC9\x99.txt\r\n",
  description: "non-ASCII in filename",
});

formTest({
  name: "aəb",
  value: "c\uFFFDd",
  formEncoding: "windows-1252",
  expected: "aəb=c�d\r\n",
  description: "characters not in encoding in name and value",
});

formTest({
  name: "á",
  value: new File([], "💩"),
  formEncoding: "windows-1252",
  expected: "\xE1=💩\r\n",
  description: "character not in encoding in filename",
});

formTest({
  name: "\uD800",
  value: "\uD800",
  formEncoding: "windows-1252",
  expected: "�=�\r\n",
  description: "lone surrogate in name and value",
});