<!doctype html>
<html>
<head>
<meta charset="utf8">
<link rel="help" href="https://url.spec.whatwg.org/#dom-urlsearchparams">
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script>
var expectedValues = {
'a': '1',
'b': '2',
'c': '3'
};
var params = new URLSearchParams();
params.append('a', '1');
params.append('b', '2');
params.append('c', '3');
test(function() {
for (var param of params) {
var key = param[0];
var value = param[1];
assert_true(key in expectedValues);
assert_equals(params.get(key), expectedValues[key]);
assert_equals(value, expectedValues[key]);
}
}, 'for...of Iteration');
test(function() {
for (var key of params.keys()) {
assert_true(key in expectedValues);
assert_equals(params.get(key), expectedValues[key]);
}
}, 'keys');
test(function() {
var expectedKeys = {};
for (var key in expectedValues)
expectedKeys[expectedValues[key]] = key;
for (var value of params.values())
assert_true(value in expectedKeys);
}, 'values');
test(function () {
for (var param of params.entries()) {
var key = param[0];
var value = param[1];
assert_true(key in expectedValues);
assert_equals(params.get(key), expectedValues[key]);
assert_equals(value, expectedValues[key]);
}
}, 'entries');
test(function () {
params.forEach(function (value, key, paramsObject) {
assert_true(key in expectedValues);
assert_equals(params.get(key), expectedValues[key]);
assert_equals(value, expectedValues[key]);
assert_equals(paramsObject, params);
});
}, 'forEach');
</script>
</head>
</html>