diff options
author | Fenzland <fenzland@163.com> | 2020-04-23 22:30:32 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-23 10:30:32 -0400 |
commit | cb935a375cca7a4d80ba7dd81b90f6adbdd0f39b (patch) | |
tree | 911395f87d8107858e78fa168263a59a9dcf85bb /cli/js/tests | |
parent | 65bba2b87e4bc2e1ba0e673caf43974a432acc25 (diff) |
fix(#2142) make URLSearchParams more standardized (#4695)
Diffstat (limited to 'cli/js/tests')
-rw-r--r-- | cli/js/tests/url_search_params_test.ts | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/cli/js/tests/url_search_params_test.ts b/cli/js/tests/url_search_params_test.ts index 3e71d2900..7b7dbab76 100644 --- a/cli/js/tests/url_search_params_test.ts +++ b/cli/js/tests/url_search_params_test.ts @@ -243,3 +243,33 @@ unitTest( assertEquals(params1.get("1"), "2"); } ); + +// If a class extends URLSearchParams, override one method should not change another's behavior. +unitTest( + function urlSearchParamsOverridingAppendNotChangeConstructorAndSet(): void { + let overridedAppendCalled = 0; + class CustomSearchParams extends URLSearchParams { + append(name: string, value: string): void { + ++overridedAppendCalled; + super.append(name, value); + } + } + new CustomSearchParams("foo=bar"); + new CustomSearchParams([["foo", "bar"]]); + new CustomSearchParams(new CustomSearchParams({ foo: "bar" })); + new CustomSearchParams().set("foo", "bar"); + assertEquals(overridedAppendCalled, 0); + } +); + +unitTest(function urlSearchParamsOverridingEntriesNotChangeForEach(): void { + class CustomSearchParams extends URLSearchParams { + *entries(): IterableIterator<[string, string]> { + yield* []; + } + } + let loopCount = 0; + const params = new CustomSearchParams({ foo: "bar" }); + params.forEach(() => void ++loopCount); + assertEquals(loopCount, 1); +}); |