11cb0ef41Sopenharmony_citest(function() { 21cb0ef41Sopenharmony_ci var params = new URLSearchParams('a=b&c=d'); 31cb0ef41Sopenharmony_ci params.delete('a'); 41cb0ef41Sopenharmony_ci assert_equals(params + '', 'c=d'); 51cb0ef41Sopenharmony_ci params = new URLSearchParams('a=a&b=b&a=a&c=c'); 61cb0ef41Sopenharmony_ci params.delete('a'); 71cb0ef41Sopenharmony_ci assert_equals(params + '', 'b=b&c=c'); 81cb0ef41Sopenharmony_ci params = new URLSearchParams('a=a&=&b=b&c=c'); 91cb0ef41Sopenharmony_ci params.delete(''); 101cb0ef41Sopenharmony_ci assert_equals(params + '', 'a=a&b=b&c=c'); 111cb0ef41Sopenharmony_ci params = new URLSearchParams('a=a&null=null&b=b'); 121cb0ef41Sopenharmony_ci params.delete(null); 131cb0ef41Sopenharmony_ci assert_equals(params + '', 'a=a&b=b'); 141cb0ef41Sopenharmony_ci params = new URLSearchParams('a=a&undefined=undefined&b=b'); 151cb0ef41Sopenharmony_ci params.delete(undefined); 161cb0ef41Sopenharmony_ci assert_equals(params + '', 'a=a&b=b'); 171cb0ef41Sopenharmony_ci}, 'Delete basics'); 181cb0ef41Sopenharmony_ci 191cb0ef41Sopenharmony_citest(function() { 201cb0ef41Sopenharmony_ci var params = new URLSearchParams(); 211cb0ef41Sopenharmony_ci params.append('first', 1); 221cb0ef41Sopenharmony_ci assert_true(params.has('first'), 'Search params object has name "first"'); 231cb0ef41Sopenharmony_ci assert_equals(params.get('first'), '1', 'Search params object has name "first" with value "1"'); 241cb0ef41Sopenharmony_ci params.delete('first'); 251cb0ef41Sopenharmony_ci assert_false(params.has('first'), 'Search params object has no "first" name'); 261cb0ef41Sopenharmony_ci params.append('first', 1); 271cb0ef41Sopenharmony_ci params.append('first', 10); 281cb0ef41Sopenharmony_ci params.delete('first'); 291cb0ef41Sopenharmony_ci assert_false(params.has('first'), 'Search params object has no "first" name'); 301cb0ef41Sopenharmony_ci}, 'Deleting appended multiple'); 311cb0ef41Sopenharmony_ci 321cb0ef41Sopenharmony_citest(function() { 331cb0ef41Sopenharmony_ci var url = new URL('http://example.com/?param1¶m2'); 341cb0ef41Sopenharmony_ci url.searchParams.delete('param1'); 351cb0ef41Sopenharmony_ci url.searchParams.delete('param2'); 361cb0ef41Sopenharmony_ci assert_equals(url.href, 'http://example.com/', 'url.href does not have ?'); 371cb0ef41Sopenharmony_ci assert_equals(url.search, '', 'url.search does not have ?'); 381cb0ef41Sopenharmony_ci}, 'Deleting all params removes ? from URL'); 391cb0ef41Sopenharmony_ci 401cb0ef41Sopenharmony_citest(function() { 411cb0ef41Sopenharmony_ci var url = new URL('http://example.com/?'); 421cb0ef41Sopenharmony_ci url.searchParams.delete('param1'); 431cb0ef41Sopenharmony_ci assert_equals(url.href, 'http://example.com/', 'url.href does not have ?'); 441cb0ef41Sopenharmony_ci assert_equals(url.search, '', 'url.search does not have ?'); 451cb0ef41Sopenharmony_ci}, 'Removing non-existent param removes ? from URL'); 461cb0ef41Sopenharmony_ci 471cb0ef41Sopenharmony_citest(() => { 481cb0ef41Sopenharmony_ci const url = new URL('data:space ?test'); 491cb0ef41Sopenharmony_ci assert_true(url.searchParams.has('test')); 501cb0ef41Sopenharmony_ci url.searchParams.delete('test'); 511cb0ef41Sopenharmony_ci assert_false(url.searchParams.has('test')); 521cb0ef41Sopenharmony_ci assert_equals(url.search, ''); 531cb0ef41Sopenharmony_ci assert_equals(url.pathname, 'space'); 541cb0ef41Sopenharmony_ci assert_equals(url.href, 'data:space'); 551cb0ef41Sopenharmony_ci}, 'Changing the query of a URL with an opaque path can impact the path'); 561cb0ef41Sopenharmony_ci 571cb0ef41Sopenharmony_citest(() => { 581cb0ef41Sopenharmony_ci const url = new URL('data:space ?test#test'); 591cb0ef41Sopenharmony_ci url.searchParams.delete('test'); 601cb0ef41Sopenharmony_ci assert_equals(url.search, ''); 611cb0ef41Sopenharmony_ci assert_equals(url.pathname, 'space '); 621cb0ef41Sopenharmony_ci assert_equals(url.href, 'data:space #test'); 631cb0ef41Sopenharmony_ci}, 'Changing the query of a URL with an opaque path can impact the path if the URL has no fragment'); 641cb0ef41Sopenharmony_ci 651cb0ef41Sopenharmony_citest(() => { 661cb0ef41Sopenharmony_ci const params = new URLSearchParams(); 671cb0ef41Sopenharmony_ci params.append('a', 'b'); 681cb0ef41Sopenharmony_ci params.append('a', 'c'); 691cb0ef41Sopenharmony_ci params.append('a', 'd'); 701cb0ef41Sopenharmony_ci params.delete('a', 'c'); 711cb0ef41Sopenharmony_ci assert_equals(params.toString(), 'a=b&a=d'); 721cb0ef41Sopenharmony_ci}, "Two-argument delete()"); 73