From 782e6a2ed5d76bb5a154c56d7daf4607e5bdb93f Mon Sep 17 00:00:00 2001 From: Lively Date: Sat, 10 Oct 2020 14:20:24 +0900 Subject: fix(op_crate/web): add padding on URLSearchParam (#7905) Fixes #7888 --- cli/tests/unit/url_search_params_test.ts | 6 ++++++ op_crates/web/11_url.js | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/cli/tests/unit/url_search_params_test.ts b/cli/tests/unit/url_search_params_test.ts index 96b524265..41b277129 100644 --- a/cli/tests/unit/url_search_params_test.ts +++ b/cli/tests/unit/url_search_params_test.ts @@ -179,6 +179,12 @@ unitTest(function urlSearchParamsMissingPair(): void { assertEquals(searchParams.toString(), "c=4&a=54"); }); +unitTest(function urlSearchParamsForShortEncodedChar(): void { + const init = { linefeed: "\n", tab: "\t" }; + const searchParams = new URLSearchParams(init); + assertEquals(searchParams.toString(), "linefeed=%0A&tab=%09"); +}); + // If pair does not contain exactly two items, then throw a TypeError. // ref https://url.spec.whatwg.org/#interface-urlsearchparams unitTest(function urlSearchParamsShouldThrowTypeError(): void { diff --git a/op_crates/web/11_url.js b/op_crates/web/11_url.js index fb5bece25..fe7ef041a 100644 --- a/op_crates/web/11_url.js +++ b/op_crates/web/11_url.js @@ -803,7 +803,7 @@ function encodeChar(c) { return [...encoder.encode(c)] - .map((n) => `%${n.toString(16)}`) + .map((n) => `%${n.toString(16).padStart(2, "0")}`) .join("") .toUpperCase(); } -- cgit v1.2.3