• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2
3require('../common');
4const assert = require('assert');
5const URLSearchParams = require('url').URLSearchParams;
6
7// Tests below are not from WPT.
8const params = new URLSearchParams('a=b&c=d');
9const entries = params.entries();
10assert.strictEqual(typeof entries[Symbol.iterator], 'function');
11assert.strictEqual(entries[Symbol.iterator](), entries);
12assert.deepStrictEqual(entries.next(), {
13  value: ['a', 'b'],
14  done: false
15});
16assert.deepStrictEqual(entries.next(), {
17  value: ['c', 'd'],
18  done: false
19});
20assert.deepStrictEqual(entries.next(), {
21  value: undefined,
22  done: true
23});
24assert.deepStrictEqual(entries.next(), {
25  value: undefined,
26  done: true
27});
28
29assert.throws(() => {
30  entries.next.call(undefined);
31}, {
32  code: 'ERR_INVALID_THIS',
33  name: 'TypeError',
34  message: 'Value of "this" must be of type URLSearchParamsIterator'
35});
36assert.throws(() => {
37  params.entries.call(undefined);
38}, {
39  code: 'ERR_INVALID_THIS',
40  name: 'TypeError',
41  message: 'Value of "this" must be of type URLSearchParams'
42});
43