File: submit-entity-body.html

package info (click to toggle)
thunderbird 1%3A143.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 4,703,968 kB
  • sloc: cpp: 7,770,492; javascript: 5,943,842; ansic: 3,918,754; python: 1,418,263; xml: 653,354; asm: 474,045; java: 183,079; sh: 111,238; makefile: 20,410; perl: 14,359; objc: 13,059; yacc: 4,583; pascal: 3,405; lex: 1,720; ruby: 999; exp: 762; sql: 715; awk: 580; php: 436; lisp: 430; sed: 69; csh: 10
file content (131 lines) | stat: -rw-r--r-- 5,791 bytes parent folder | download | duplicates (14)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<!DOCTYPE html>
<meta charset="utf-8">
<meta name="timeout" content="long">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
var simple_tests = [
  {
    name: "form submission from form should navigate to url with x-www-form-urlencoded",
    input: "<input name=foo value=bara>",
    enctype: "application/x-www-form-urlencoded",
    submitelement: "",
    submitaction: function(doc) { doc.getElementById("testform").submit(); }
  },
  {
    name: "form submission from form should navigate to url with multipart/form-data",
    input: "<textarea name=foo>bar</textarea>",
    enctype: "multipart/form-data",
    submitelement: "",
    submitaction: function(doc) { doc.getElementById("testform").submit(); }
  },
  {
    name: "form submission from form should navigate to url with text/plain",
    input: "<textarea name=qux>baz</textarea>",
    enctype: "text/plain",
    submitelement: "",
    submitaction: function(doc) { doc.getElementById("testform").submit(); }
  },
  {
    name: "form submission from button should navigate to url with x-www-form-urlencoded",
    input: "<input name=foo value=bara>",
    enctype: "application/x-www-form-urlencoded",
    submitelement: "<button id=buttonsubmit type=\"submit\">Submit</button>",
    submitaction: function(doc) { doc.getElementById("buttonsubmit").click(); }
  },
  {
    name: "form submission from button should navigate to url with multipart/form-data",
    input: "<textarea name=foo>bar</textarea>",
    enctype: "multipart/form-data",
    submitelement: "<button id=buttonsubmit type=\"submit\">Submit</button>",
    submitaction: function(doc) { doc.getElementById("buttonsubmit").click(); }
  },
  {
    name: "form submission from button should navigate to url with text/plain",
    input: "<textarea name=qux>baz</textarea>",
    enctype: "text/plain",
    submitelement: "<button id=buttonsubmit type=\"submit\">Submit</button>",
    submitaction: function(doc) { doc.getElementById("buttonsubmit").click(); }
  },
  {
    name: "form submission from input should navigate to url with x-www-form-urlencoded",
    input: "<input name=foo value=bara>",
    enctype: "application/x-www-form-urlencoded",
    submitelement: "<input id=inputsubmit type=\"submit\">Submit</input>",
    submitaction: function(doc) { doc.getElementById("inputsubmit").click(); }
  },
  {
    name: "form submission from input should navigate to url with multipart/form-data",
    input: "<textarea name=foo>bar</textarea>",
    enctype: "multipart/form-data",
    submitelement: "<input id=inputsubmit type=\"submit\">Submit</input>",
    submitaction: function(doc) { doc.getElementById("inputsubmit").click(); }
  },
  {
    name: "form submission from input should navigate to url with text/plain",
    input: "<input name=qux value=baz>",
    enctype: "text/plain",
    submitelement: "<input id=inputsubmit type=\"submit\">Submit</input>",
    submitaction: function(doc) { doc.getElementById("inputsubmit").click(); }
  },
  {
    name: "form submission from submit input should contain submit button value",
    input: "<button type=submit name=notclicked value=nope>not clicked</button>",
    enctype: "application/x-www-form-urlencoded",
    submitelement: "<button id=inputsubmit type=\"submit\" name=foo value=bara>Submit</button>",
    submitaction: function(doc) { doc.getElementById("inputsubmit").click(); }
  },
  {
    name: "form submission from submit button should contain submit button value",
    input: "<input type=submit name=notclicked value=nope/>",
    enctype: "application/x-www-form-urlencoded",
    submitelement: "<input id=inputsubmit type=\"submit\" name=foo value=bara >",
    submitaction: function(doc) { doc.getElementById("inputsubmit").click(); }
  },
  {
    name: "form submission from image input should contain entries for its clicked coordinate",
    input: "<input type=submit name=notclicked value=nope/>",
    enctype: "application/x-www-form-urlencoded",
    submitelement: "<input id=inputsubmit type=image name=foo>",
    submitaction: function(doc) { doc.getElementById("inputsubmit").click(); },
    expected_body: "foo.x=0&foo.y=0"
  },
  {
    name: "form submission from image input should only contain entries for the submitter's clicked coordinate when multiple image inputs are present",
    input: "<input type=image name=bar>",
    enctype: "application/x-www-form-urlencoded",
    submitelement: "<input id=inputsubmit type=image name=foo>",
    submitaction: function(doc) { doc.getElementById("inputsubmit").click(); },
    expected_body: "foo.x=0&foo.y=0"
  },
];
simple_tests.forEach(function(test_obj) {
  test_obj.test = async_test(test_obj.name);
});
function run_simple_test() {
  if (simple_tests.length == 0) {
    return;
  }
  var test_obj = simple_tests.pop();
  var enctype = test_obj.enctype || "application/x-www-form-urlencoded";
  var query = test_obj.expected_body ? "expected_body=" + encodeURIComponent(test_obj.expected_body) : "query=1";
  var t = test_obj.test;
  var testframe = document.getElementById("testframe");
  var testdocument = testframe.contentWindow.document;
  testdocument.body.innerHTML =
    "<form id=testform method=post action=\"/html/semantics/forms/form-submission-0/resources/form-submission.py?" + query + "\" enctype=\"" + enctype + "\">" +
    test_obj.input +
    test_obj.submitelement +
    "</form>";
  testframe.onload = function() {
    t.step(function (){
      var response = testframe.contentDocument.documentElement.textContent;
      assert_equals(response, "OK");
    });
    t.done();
    run_simple_test();
  };
  test_obj.submitaction(testdocument);
}
</script>
<iframe id=testframe src="/common/blank.html" onload="run_simple_test();"></iframe>