Skip to content

Commit

Permalink
[Import Maps] Add tests for non-ASCII characters
Browse files Browse the repository at this point in the history
As the non-bare keys and resolution results of
specifier maps are normalized (i.e. serialized URLs),
raw and percent-encoded non-ASCII strings are
considered equal (as both of them are
percent-encoded after serialization).

This CL tests that raw and percent-encoded versions of
non-ASCII characters are:

- Considered equal in non-bare specifier keys,
- Considered equal in checking backtracking, and
- Not considered equal in bare specifier keys.

For consistency, this CL also adds some backtracking tests
that don't involve non-ASCII characters but use
the same patterns of added non-ASCII tests.

Bug: 848607, WICG/import-maps#207
Change-Id: I6c8ae478da2fcbe0f6df03a608dabdad60644ea1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2573422
Commit-Queue: Hiroshige Hayashizaki <hiroshige@chromium.org>
Reviewed-by: Kouhei Ueno <kouhei@chromium.org>
Reviewed-by: Domenic Denicola <domenic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#835824}
  • Loading branch information
hiroshige-g authored and Chromium LUCI CQ committed Dec 10, 2020
1 parent f04e32a commit 4c3b260
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@
"lodash-dotdot": "../node_modules/lodash-es/lodash.js",
"lodash-dotdot/": "../node_modules/lodash-es/",
"mapped/": "https://example.com/",
"mapped/path/": "https://github.com/WICG/import-maps/issues/207/"
"mapped/path/": "https://github.com/WICG/import-maps/issues/207/",
"mapped/non-ascii-1/": "https://example.com/%E3%81%8D%E3%81%A4%E3%81%AD/",
"mapped/non-ascii-2/": "https://example.com/きつね/"
}
},
"importMapBaseURL": "https://example.com/app/index.html",
Expand Down Expand Up @@ -46,11 +48,23 @@
"mapped/path": "https://example.com/path",
"mapped/path/": "https://github.com/WICG/import-maps/issues/207/",
"mapped/path/..": null,
"mapped/path/../path/": null,
"mapped/path/../207": null,
"mapped/path/../207/": "https://github.com/WICG/import-maps/issues/207/",
"mapped/path//": null,
"mapped/path/WICG/import-maps/issues/207/": "https://github.com/WICG/import-maps/issues/207/WICG/import-maps/issues/207/",
"mapped/path//WICG/import-maps/issues/207/": "https://github.com/WICG/import-maps/issues/207/",
"mapped/path/../backtrack": null,
"mapped/path/../../backtrack": null,
"mapped/path/../../../backtrack": null,
"moment/../backtrack": null,
"moment/..": null
"moment/..": null,
"mapped/non-ascii-1/": "https://example.com/%E3%81%8D%E3%81%A4%E3%81%AD/",
"mapped/non-ascii-1/../%E3%81%8D%E3%81%A4%E3%81%AD/": "https://example.com/%E3%81%8D%E3%81%A4%E3%81%AD/",
"mapped/non-ascii-1/../きつね/": "https://example.com/%E3%81%8D%E3%81%A4%E3%81%AD/",
"mapped/non-ascii-2/": "https://example.com/%E3%81%8D%E3%81%A4%E3%81%AD/",
"mapped/non-ascii-2/../%E3%81%8D%E3%81%A4%E3%81%AD/": "https://example.com/%E3%81%8D%E3%81%A4%E3%81%AD/",
"mapped/non-ascii-2/../きつね/": "https://example.com/%E3%81%8D%E3%81%A4%E3%81%AD/"
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,11 @@
"..": "/lib/dotdot.mjs",
"..\\": "/lib/dotdotbackslash.mjs",
"%2E": "/lib/percent2e.mjs",
"%2F": "/lib/percent2f.mjs"
"%2F": "/lib/percent2f.mjs",
"https://map.example/%E3%81%8D%E3%81%A4%E3%81%AD/": "/a/",
"https://map.example/きつね/fox/": "/b/",
"%E3%81%8D%E3%81%A4%E3%81%AD/": "/c/",
"きつね/fox/": "/d/"
}
},
"importMapBaseURL": "https://example.com/app/index.html",
Expand Down Expand Up @@ -38,6 +42,30 @@
"expectedResults": {
"only-slash": null
}
},
"URL-like specifiers are normalized": {
"expectedResults": {
"https://map.example/%E3%81%8D%E3%81%A4%E3%81%AD/": "https://example.com/a/",
"https://map.example/%E3%81%8D%E3%81%A4%E3%81%AD/bar": "https://example.com/a/bar",
"https://map.example/%E3%81%8D%E3%81%A4%E3%81%AD/fox/": "https://example.com/b/",
"https://map.example/%E3%81%8D%E3%81%A4%E3%81%AD/fox/bar": "https://example.com/b/bar",
"https://map.example/きつね/": "https://example.com/a/",
"https://map.example/きつね/bar": "https://example.com/a/bar",
"https://map.example/きつね/fox/": "https://example.com/b/",
"https://map.example/きつね/fox/bar": "https://example.com/b/bar"
}
},
"Bare specifiers are not normalized": {
"expectedResults": {
"%E3%81%8D%E3%81%A4%E3%81%AD/": "https://example.com/c/",
"%E3%81%8D%E3%81%A4%E3%81%AD/bar": "https://example.com/c/bar",
"%E3%81%8D%E3%81%A4%E3%81%AD/fox/": "https://example.com/c/fox/",
"%E3%81%8D%E3%81%A4%E3%81%AD/fox/bar": "https://example.com/c/fox/bar",
"きつね/": null,
"きつね/bar": null,
"きつね/fox/": "https://example.com/d/",
"きつね/fox/bar": "https://example.com/d/bar"
}
}
}
}

0 comments on commit 4c3b260

Please sign in to comment.