summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/semantics/forms/form-submission-0/submit-entity-body.html
blob: be9c5f0696eda41b652c9653fee1a70a2304e8f5 (plain)
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
<!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(); }
  }
];
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 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=1\" enctype=\"" + test_obj.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>