summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/XMLHttpRequest/formdata-set.htm
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/XMLHttpRequest/formdata-set.htm')
-rw-r--r--testing/web-platform/tests/XMLHttpRequest/formdata-set.htm98
1 files changed, 98 insertions, 0 deletions
diff --git a/testing/web-platform/tests/XMLHttpRequest/formdata-set.htm b/testing/web-platform/tests/XMLHttpRequest/formdata-set.htm
new file mode 100644
index 000000000..f030caa78
--- /dev/null
+++ b/testing/web-platform/tests/XMLHttpRequest/formdata-set.htm
@@ -0,0 +1,98 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>FormData: set</title>
+<link rel="help" href="https://xhr.spec.whatwg.org/#dom-formdata-set">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id="log"></div>
+<form id="form" />
+<script>
+ function test_formdata(creator, verifier, description) {
+ async_test(description).step(function() {
+ var fd = creator();
+ var xhr = new XMLHttpRequest();
+ xhr.onload = this.step_func(function() {
+ verifier(xhr.responseText);
+ this.done();
+ });
+ xhr.open("POST", "resources/upload.py");
+ xhr.send(fd);
+ });
+ }
+
+ test_formdata(function() {
+ var fd = new FormData();
+ fd.set("name", new String("value"));
+ return fd;
+ }, function(data) {
+ assert_equals(data, "name=value,\n");
+ }, "Passing a String object to FormData.set should work");
+
+ test(function() {
+ assert_equals(create_formdata(['key', 'value1']).get('key'), "value1");
+ }, 'testFormDataSet1');
+ test(function() {
+ assert_equals(create_formdata(['key', 'value2'], ['key', 'value1']).get('key'), "value1");
+ }, 'testFormDataSet2');
+ test(function() {
+ assert_equals(create_formdata(['key', undefined]).get('key'), "undefined");
+ }, 'testFormDataSetUndefined1');
+ test(function() {
+ assert_equals(create_formdata(['key', undefined], ['key', 'value1']).get('key'), "value1");
+ }, 'testFormDataSetUndefined2');
+ test(function() {
+ assert_equals(create_formdata(['key', null]).get('key'), "null");
+ }, 'testFormDataSetNull1');
+ test(function() {
+ assert_equals(create_formdata(['key', null], ['key', 'value1']).get('key'), "value1");
+ }, 'testFormDataSetNull2');
+ test(function() {
+ var fd = new FormData(document.getElementById("form"));
+ fd.set('key', 'value1');
+ assert_equals(fd.get('key'), "value1");
+ }, 'testFormDataSetToForm1');
+ test(function() {
+ var fd = new FormData(document.getElementById("form"));
+ fd.set('key', 'value2');
+ fd.set('key', 'value1');
+ assert_equals(fd.get('key'), "value1");
+ }, 'testFormDataSetToForm2');
+ test(function() {
+ var fd = new FormData(document.getElementById("form"));
+ fd.set('key', undefined);
+ assert_equals(fd.get('key'), "undefined");
+ }, 'testFormDataSetToFormUndefined1');
+ test(function() {
+ var fd = new FormData(document.getElementById("form"));
+ fd.set('key', undefined);
+ fd.set('key', 'value1');
+ assert_equals(fd.get('key'), "value1");
+ }, 'testFormDataSetToFormUndefined2');
+ test(function() {
+ var fd = new FormData(document.getElementById("form"));
+ fd.set('key', null);
+ assert_equals(fd.get('key'), "null");
+ }, 'testFormDataSetToFormNull1');
+ test(function() {
+ var fd = new FormData(document.getElementById("form"));
+ fd.set('key', null);
+ fd.set('key', 'value1');
+ assert_equals(fd.get('key'), "value1");
+ }, 'testFormDataSetToFormNull2');
+ test(function() {
+ var fd = new FormData();
+ fd.set('key', new Blob([]), 'blank.txt');
+ var file = fd.get('key');
+
+ assert_true(file instanceof File);
+ assert_equals(file.name, 'blank.txt');
+ }, 'testFormDataSetEmptyBlob');
+
+ function create_formdata() {
+ var fd = new FormData();
+ for (var i = 0; i < arguments.length; i++) {
+ fd.set.apply(fd, arguments[i]);
+ };
+ return fd;
+ }
+</script>