foreach.any.js (2320B)
1 // META: title=FormData: foreach 2 3 var fd = new FormData(); 4 fd.append('n1', 'v1'); 5 fd.append('n2', 'v2'); 6 fd.append('n3', 'v3'); 7 fd.append('n1', 'v4'); 8 fd.append('n2', 'v5'); 9 fd.append('n3', 'v6'); 10 fd.delete('n2'); 11 12 var file = new File(['hello'], "hello.txt"); 13 fd.append('f1', file); 14 15 var expected_keys = ['n1', 'n3', 'n1', 'n3', 'f1']; 16 var expected_values = ['v1', 'v3', 'v4', 'v6', file]; 17 test(function() { 18 var mykeys = [], myvalues = []; 19 for(var entry of fd) { 20 assert_equals(entry.length, 2, 21 'Default iterator should yield key/value pairs'); 22 mykeys.push(entry[0]); 23 myvalues.push(entry[1]); 24 } 25 assert_array_equals(mykeys, expected_keys, 26 'Default iterator should see duplicate keys'); 27 assert_array_equals(myvalues, expected_values, 28 'Default iterator should see non-deleted values'); 29 }, 'Iterator should return duplicate keys and non-deleted values'); 30 test(function() { 31 var mykeys = [], myvalues = []; 32 for(var entry of fd.entries()) { 33 assert_equals(entry.length, 2, 34 'entries() iterator should yield key/value pairs'); 35 mykeys.push(entry[0]); 36 myvalues.push(entry[1]); 37 } 38 assert_array_equals(mykeys, expected_keys, 39 'entries() iterator should see duplicate keys'); 40 assert_array_equals(myvalues, expected_values, 41 'entries() iterator should see non-deleted values'); 42 }, 'Entries iterator should return duplicate keys and non-deleted values'); 43 test(function() { 44 var mykeys = []; 45 for(var entry of fd.keys()) 46 mykeys.push(entry); 47 assert_array_equals(mykeys, expected_keys, 48 'keys() iterator should see duplicate keys'); 49 }, 'Keys iterator should return duplicates'); 50 test(function() { 51 var myvalues = []; 52 for(var entry of fd.values()) 53 myvalues.push(entry); 54 assert_array_equals(myvalues, expected_values, 55 'values() iterator should see non-deleted values'); 56 }, 'Values iterator should return non-deleted values');