| <!doctype html> |
| <html lang=en> |
| <meta charset=utf-8> |
| <title>FormData: foreach</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <link rel="help" href="https://xhr.spec.whatwg.org/#interface-formdata" /> |
| <script> |
| var fd = new FormData(); |
| fd.append('n1', 'v1'); |
| fd.append('n2', 'v2'); |
| fd.append('n3', 'v3'); |
| fd.append('n1', 'v4'); |
| fd.append('n2', 'v5'); |
| fd.append('n3', 'v6'); |
| fd.delete('n2'); |
| |
| var file = new File(['hello'], "hello.txt"); |
| fd.append('f1', file); |
| |
| var expected_keys = ['n1', 'n3', 'n1', 'n3', 'f1']; |
| var expected_values = ['v1', 'v3', 'v4', 'v6', file]; |
| test(function() { |
| var mykeys = [], myvalues = []; |
| for(var entry of fd) { |
| assert_equals(entry.length, 2, |
| 'Default iterator should yield key/value pairs'); |
| mykeys.push(entry[0]); |
| myvalues.push(entry[1]); |
| } |
| assert_array_equals(mykeys, expected_keys, |
| 'Default iterator should see duplicate keys'); |
| assert_array_equals(myvalues, expected_values, |
| 'Default iterator should see non-deleted values'); |
| }, 'Iterator should return duplicate keys and non-deleted values'); |
| test(function() { |
| var mykeys = [], myvalues = []; |
| for(var entry of fd.entries()) { |
| assert_equals(entry.length, 2, |
| 'entries() iterator should yield key/value pairs'); |
| mykeys.push(entry[0]); |
| myvalues.push(entry[1]); |
| } |
| assert_array_equals(mykeys, expected_keys, |
| 'entries() iterator should see duplicate keys'); |
| assert_array_equals(myvalues, expected_values, |
| 'entries() iterator should see non-deleted values'); |
| }, 'Entries iterator should return duplicate keys and non-deleted values'); |
| test(function() { |
| var mykeys = []; |
| for(var entry of fd.keys()) |
| mykeys.push(entry); |
| assert_array_equals(mykeys, expected_keys, |
| 'keys() iterator should see duplicate keys'); |
| }, 'Keys iterator should return duplicates'); |
| test(function() { |
| var myvalues = []; |
| for(var entry of fd.values()) |
| myvalues.push(entry); |
| assert_array_equals(myvalues, expected_values, |
| 'values() iterator should see non-deleted values'); |
| }, 'Values iterator should return non-deleted values'); |
| </script> |