summaryrefslogtreecommitdiff
path: root/cli/js/tests
diff options
context:
space:
mode:
authorFenzland <fenzland@163.com>2020-04-23 22:30:32 +0800
committerGitHub <noreply@github.com>2020-04-23 10:30:32 -0400
commitcb935a375cca7a4d80ba7dd81b90f6adbdd0f39b (patch)
tree911395f87d8107858e78fa168263a59a9dcf85bb /cli/js/tests
parent65bba2b87e4bc2e1ba0e673caf43974a432acc25 (diff)
fix(#2142) make URLSearchParams more standardized (#4695)
Diffstat (limited to 'cli/js/tests')
-rw-r--r--cli/js/tests/url_search_params_test.ts30
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);
+});