1test(function() { 2 var params = new URLSearchParams('a=b&c=d'); 3 params.delete('a'); 4 assert_equals(params + '', 'c=d'); 5 params = new URLSearchParams('a=a&b=b&a=a&c=c'); 6 params.delete('a'); 7 assert_equals(params + '', 'b=b&c=c'); 8 params = new URLSearchParams('a=a&=&b=b&c=c'); 9 params.delete(''); 10 assert_equals(params + '', 'a=a&b=b&c=c'); 11 params = new URLSearchParams('a=a&null=null&b=b'); 12 params.delete(null); 13 assert_equals(params + '', 'a=a&b=b'); 14 params = new URLSearchParams('a=a&undefined=undefined&b=b'); 15 params.delete(undefined); 16 assert_equals(params + '', 'a=a&b=b'); 17}, 'Delete basics'); 18 19test(function() { 20 var params = new URLSearchParams(); 21 params.append('first', 1); 22 assert_true(params.has('first'), 'Search params object has name "first"'); 23 assert_equals(params.get('first'), '1', 'Search params object has name "first" with value "1"'); 24 params.delete('first'); 25 assert_false(params.has('first'), 'Search params object has no "first" name'); 26 params.append('first', 1); 27 params.append('first', 10); 28 params.delete('first'); 29 assert_false(params.has('first'), 'Search params object has no "first" name'); 30}, 'Deleting appended multiple'); 31 32test(function() { 33 var url = new URL('http://example.com/?param1¶m2'); 34 url.searchParams.delete('param1'); 35 url.searchParams.delete('param2'); 36 assert_equals(url.href, 'http://example.com/', 'url.href does not have ?'); 37 assert_equals(url.search, '', 'url.search does not have ?'); 38}, 'Deleting all params removes ? from URL'); 39 40test(function() { 41 var url = new URL('http://example.com/?'); 42 url.searchParams.delete('param1'); 43 assert_equals(url.href, 'http://example.com/', 'url.href does not have ?'); 44 assert_equals(url.search, '', 'url.search does not have ?'); 45}, 'Removing non-existent param removes ? from URL'); 46