Closed Bug 1670225 Opened 4 years ago Closed 4 years ago

[wpt-sync] Sync PR 26064 - [WPT] Migrate most of import-maps resolution tests out of blink internals

Categories

(Testing :: web-platform-tests, task, P4)

task

Tracking

(firefox84 fixed)

RESOLVED FIXED
84 Branch
Tracking Status
firefox84 --- fixed

People

(Reporter: mozilla.org, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 26064 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/26064
Details from upstream follow.

b'Hiroshige Hayashizaki <hiroshige@chromium.org>' wrote:

[WPT] Migrate most of import-maps resolution tests out of blink internals

This CL migrates most of import maps resolution tests by
observing the resolution results by intercepting
module script requests by a service worker.

This CL also introduces useInternalMethods flag to clarify
the tests still requiring internal methods.

Bug: 1026809
Change-Id: I16c2a87bb67b530dc97b1631f6968b2d3bafdac6

Reviewed-on: https://chromium-review.googlesource.com/2457526
WPT-Export-Revision: 1c2bce5929313e2ec3c600e8d52affec38d48427

Whiteboard: [wptsync downstream] → [wptsync downstream error]
Whiteboard: [wptsync downstream error] → [wptsync downstream]

CI Results

Ran 12 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 3 tests and 155 subtests

Status Summary

Firefox

OK : 3
PASS : 78
FAIL : 154

Chrome

OK : 3
PASS : 192
FAIL : 40

Safari

PASS : 3
TIMEOUT: 4
NOTRUN : 4

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

/import-maps/common/parsing.tentative.https.html
Absolute URL addresses: should only accept absolute URL addresses with fetch schemes: FAIL (Chrome: FAIL)
Absolute URL addresses: should parse absolute URLs, ignoring unparseable ones: FAIL (Chrome: FAIL)
Other invalid addresses: should ignore unprefixed strings that are not absolute URLs: FAIL (Chrome: FAIL)
Relative URL-like addresses: should accept strings prefixed with ./, ../, or /: FAIL (Chrome: FAIL)
Relative URL-like addresses: should not accept strings prefixed with ./, ../, or / for data: base URLs: FAIL (Chrome: FAIL)
Relative URL-like addresses: should accept the literal strings ./, ../, or / with no suffix: FAIL (Chrome: FAIL)
Relative URL-like addresses: should ignore percent-encoded variants of ./, ../, or /: FAIL (Chrome: FAIL)
Invalid JSON: FAIL (Chrome: PASS)
Normalization: should normalize empty import maps to have imports and scopes keys: FAIL (Chrome: FAIL)
Normalization: should normalize an import map without imports to have imports: FAIL (Chrome: FAIL)
Normalization: should normalize an import map without scopes to have scopes: FAIL (Chrome: FAIL)
Mismatching scopes schema: should throw if a scope's value is not an object: null: FAIL (Chrome: PASS)
Mismatching scopes schema: should throw if a scope's value is not an object: boolean: FAIL (Chrome: PASS)
Mismatching scopes schema: should throw if a scope's value is not an object: number: FAIL (Chrome: PASS)
Mismatching scopes schema: should throw if a scope's value is not an object: string: FAIL (Chrome: PASS)
Mismatching scopes schema: should throw if a scope's value is not an object: array: FAIL (Chrome: PASS)
Mismatching the specifier map schema: should ignore entries where the address is not a string: FAIL (Chrome: FAIL)
Mismatching the specifier map schema: should ignore entries where the specifier key is an empty string: FAIL (Chrome: FAIL)
Mismatching the top-level schema: should throw for top-level non-objects: null: FAIL (Chrome: PASS)
Mismatching the top-level schema: should throw for top-level non-objects: boolean: FAIL (Chrome: PASS)
Mismatching the top-level schema: should throw for top-level non-objects: number: FAIL (Chrome: PASS)
Mismatching the top-level schema: should throw for top-level non-objects: string: FAIL (Chrome: PASS)
Mismatching the top-level schema: should throw for top-level non-objects: array: FAIL (Chrome: PASS)
Mismatching the top-level schema: should throw if imports is a non-object: null: FAIL (Chrome: PASS)
Mismatching the top-level schema: should throw if imports is a non-object: boolean: FAIL (Chrome: PASS)
Mismatching the top-level schema: should throw if imports is a non-object: number: FAIL (Chrome: PASS)
Mismatching the top-level schema: should throw if imports is a non-object: string: FAIL (Chrome: PASS)
Mismatching the top-level schema: should throw if imports is a non-object: array: FAIL (Chrome: PASS)
Mismatching the top-level schema: should throw if scopes is a non-object: null: FAIL (Chrome: PASS)
Mismatching the top-level schema: should throw if scopes is a non-object: boolean: FAIL (Chrome: PASS)
Mismatching the top-level schema: should throw if scopes is a non-object: number: FAIL (Chrome: PASS)
Mismatching the top-level schema: should throw if scopes is a non-object: string: FAIL (Chrome: PASS)
Mismatching the top-level schema: should throw if scopes is a non-object: array: FAIL (Chrome: PASS)
Mismatching the top-level schema: should ignore unspecified top-level entries: FAIL (Chrome: FAIL)
Relative URL scope keys should work with no prefix: FAIL (Chrome: FAIL)
Relative URL scope keys should work with ./, ../, and / prefixes: FAIL (Chrome: FAIL)
Absolute URL scope keys should ignore relative URL scope keys when the base URL is a data: URL: FAIL (Chrome: FAIL)
Relative URL scope keys should work with ./, ../, or / with no suffix: FAIL (Chrome: FAIL)
Relative URL scope keys should work with /s, ?s, and #s: FAIL (Chrome: FAIL)
Relative URL scope keys should work with an empty string scope key: FAIL (Chrome: FAIL)
Relative URL scope keys should work with / suffixes: FAIL (Chrome: FAIL)
Relative URL scope keys should deduplicate based on URL parsing rules: FAIL (Chrome: FAIL)
Absolute URL scope keys should accept all absolute URL scope keys, with or without fetch schemes: FAIL (Chrome: FAIL)
Absolute URL scope keys should parse absolute URL scope keys, ignoring unparseable ones: FAIL (Chrome: FAIL)
Relative URL specifier keys should absolutize strings prefixed with ./, ../, or / into the corresponding URLs: FAIL (Chrome: FAIL)
Relative URL specifier keys should not absolutize strings prefixed with ./, ../, or / with a data: URL base: FAIL (Chrome: FAIL)
Relative URL specifier keys should absolutize the literal strings ./, ../, or / with no suffix: FAIL (Chrome: FAIL)
Relative URL specifier keys should work with /s, ?s, and #s: FAIL (Chrome: FAIL)
Relative URL specifier keys should ignore an empty string key: FAIL (Chrome: FAIL)
Relative URL specifier keys should treat percent-encoded variants of ./, ../, or / as bare specifiers: FAIL (Chrome: FAIL)
Relative URL specifier keys should deduplicate based on URL parsing rules: FAIL (Chrome: FAIL)
Absolute URL specifier keys should accept all absolute URL specifier keys, with or without fetch schemes: FAIL (Chrome: FAIL)
Absolute URL specifier keys should parse absolute URLs, treating unparseable ones as bare specifiers: FAIL (Chrome: FAIL)
Specifier keys should be sort correctly (issue #181) - Test #1: FAIL (Chrome: FAIL)
Specifier keys should be sort correctly (issue #181) - Test #2: FAIL (Chrome: FAIL)
Failing addresses: mismatched trailing slashes: FAIL (Chrome: FAIL)
/import-maps/common/resolving-internal.tentative.https.html
non-HTTPS fetch scheme absolute URLs: about:fetch-scheme: FAIL (Chrome: FAIL, Safari: TIMEOUT)
non-fetch scheme absolute URLs: mailto:non-fetch-scheme: FAIL (Chrome: FAIL, Safari: NOTRUN)
non-fetch scheme absolute URLs: import:non-fetch-scheme: FAIL (Chrome: FAIL, Safari: NOTRUN)
non-fetch scheme absolute URLs: javascript:non-fetch-scheme: FAIL (Chrome: FAIL, Safari: NOTRUN)
non-fetch scheme absolute URLs: wss:non-fetch-scheme: FAIL (Chrome: FAIL, Safari: NOTRUN)
/import-maps/common/resolving.tentative.https.html
Fallback to toplevel and between scopes: should fall back to imports when no scopes match: a: FAIL (Chrome: PASS)
Fallback to toplevel and between scopes: should fall back to imports when no scopes match: b: FAIL (Chrome: PASS)
Fallback to toplevel and between scopes: should fall back to imports when no scopes match: c: FAIL (Chrome: PASS)
Fallback to toplevel and between scopes: should fall back to imports when no scopes match: d: FAIL (Chrome: PASS)
Fallback to toplevel and between scopes: should use a direct scope override: a: FAIL (Chrome: PASS)
Fallback to toplevel and between scopes: should use a direct scope override: b: FAIL (Chrome: PASS)
Fallback to toplevel and between scopes: should use a direct scope override: c: FAIL (Chrome: PASS)
Fallback to toplevel and between scopes: should use a direct scope override: d: FAIL (Chrome: PASS)
Fallback to toplevel and between scopes: should use an indirect scope override: a: FAIL (Chrome: PASS)
Fallback to toplevel and between scopes: should use an indirect scope override: b: FAIL (Chrome: PASS)
Fallback to toplevel and between scopes: should use an indirect scope override: c: FAIL (Chrome: PASS)
Fallback to toplevel and between scopes: should use an indirect scope override: d: FAIL (Chrome: PASS)
Relative URL scope keys: An empty string scope is a scope with import map base URL: a: FAIL (Chrome: PASS)
Relative URL scope keys: An empty string scope is a scope with import map base URL: b: FAIL (Chrome: PASS)
Relative URL scope keys: An empty string scope is a scope with import map base URL: c: FAIL (Chrome: PASS)
Relative URL scope keys: './' scope is a scope with import map base URL's directory: a: FAIL (Chrome: PASS)
Relative URL scope keys: './' scope is a scope with import map base URL's directory: b: FAIL (Chrome: PASS)
Relative URL scope keys: './' scope is a scope with import map base URL's directory: c: FAIL (Chrome: PASS)
Relative URL scope keys: '../' scope is a scope with import map base URL's parent directory: a: FAIL (Chrome: PASS)
Relative URL scope keys: '../' scope is a scope with import map base URL's parent directory: b: FAIL (Chrome: PASS)
Relative URL scope keys: '../' scope is a scope with import map base URL's parent directory: c: FAIL (Chrome: PASS)
Package-like scenarios: Base URLs inside the scope should use the scope if the scope has matching keys: lodash-dot: FAIL (Chrome: PASS)
Package-like scenarios: Base URLs inside the scope should use the scope if the scope has matching keys: lodash-dot/foo: FAIL (Chrome: PASS)
Package-like scenarios: Base URLs inside the scope should use the scope if the scope has matching keys: lodash-dotdot: FAIL (Chrome: PASS)
Package-like scenarios: Base URLs inside the scope should use the scope if the scope has matching keys: lodash-dotdot/foo: FAIL (Chrome: PASS)
Package-like scenarios: Base URLs inside the scope fallback to less specific scope: moment: FAIL (Chrome: PASS)
Package-like scenarios: Base URLs inside the scope fallback to less specific scope: vue: FAIL (Chrome: PASS)
Package-like scenarios: Base URLs inside the scope fallback to toplevel: moment/foo: FAIL (Chrome: PASS)
Package-like scenarios: Base URLs outside a scope shouldn't use the scope even if the scope has matching keys: lodash-dot: FAIL (Chrome: PASS)
Package-like scenarios: Base URLs outside a scope shouldn't use the scope even if the scope has matching keys: lodash-dotdot: FAIL (Chrome: PASS)
Package-like scenarios: Base URLs outside a scope shouldn't use the scope even if the scope has matching keys: lodash-dot/foo: FAIL (Chrome: PASS)
Package-like scenarios: Base URLs outside a scope shouldn't use the scope even if the scope has matching keys: lodash-dotdot/foo: FAIL (Chrome: PASS)
Package-like scenarios: Fallback to toplevel or not, depending on trailing slash match: moment: FAIL (Chrome: PASS)
Package-like scenarios: Fallback to toplevel or not, depending on trailing slash match: moment/foo: FAIL (Chrome: PASS)
Package-like scenarios: package main modules: moment: FAIL (Chrome: PASS)
Package-like scenarios: package main modules: lodash-dot: FAIL (Chrome: PASS)
Package-like scenarios: package main modules: lodash-dotdot: FAIL (Chrome: PASS)
Package-like scenarios: package submodules: moment/foo: FAIL (Chrome: PASS)
Package-like scenarios: package submodules: lodash-dot/foo: FAIL (Chrome: PASS)
Package-like scenarios: package submodules: lodash-dotdot/foo: FAIL (Chrome: PASS)
Package-like scenarios: package names that end in a slash should just pass through: moment/: FAIL (Chrome: PASS)
Tricky specifiers: explicitly-mapped specifiers that happen to have a slash: package/withslash: FAIL (Chrome: PASS)
Tricky specifiers: specifier with punctuation: .: FAIL (Chrome: PASS)
Tricky specifiers: specifier with punctuation: ..: FAIL (Chrome: PASS)
Tricky specifiers: specifier with punctuation: ..: FAIL (Chrome: PASS)
Tricky specifiers: specifier with punctuation: %2E: FAIL (Chrome: PASS)
Tricky specifiers: specifier with punctuation: %2F: FAIL (Chrome: PASS)
URL-like specifiers: Ordinal URL-like specifiers: https://example.com/lib/foo.mjs: FAIL (Chrome: PASS)
URL-like specifiers: Ordinal URL-like specifiers: https://///example.com/lib/foo.mjs: FAIL (Chrome: PASS)
URL-like specifiers: Ordinal URL-like specifiers: /lib/foo.mjs: FAIL (Chrome: PASS)
URL-like specifiers: Ordinal URL-like specifiers: https://example.com/app/dotrelative/foo.mjs: FAIL (Chrome: PASS)
URL-like specifiers: Ordinal URL-like specifiers: ../app/dotrelative/foo.mjs: FAIL (Chrome: PASS)
URL-like specifiers: Ordinal URL-like specifiers: https://example.com/dotdotrelative/foo.mjs: FAIL (Chrome: PASS)
URL-like specifiers: Ordinal URL-like specifiers: ../dotdotrelative/foo.mjs: FAIL (Chrome: PASS)
URL-like specifiers: Import map entries just composed from / and .: https://example.com/: FAIL (Chrome: PASS)
URL-like specifiers: Import map entries just composed from / and .: /: FAIL (Chrome: PASS)
URL-like specifiers: Import map entries just composed from / and .: ../: FAIL (Chrome: PASS)
URL-like specifiers: Import map entries just composed from / and .: https://example.com/app/: FAIL (Chrome: PASS)
URL-like specifiers: Import map entries just composed from / and .: /app/: FAIL (Chrome: PASS)
URL-like specifiers: Import map entries just composed from / and .: ../app/: FAIL (Chrome: PASS)
URL-like specifiers: prefix-matched by keys with trailing slashes: /test/foo.mjs: FAIL (Chrome: PASS)
URL-like specifiers: prefix-matched by keys with trailing slashes: https://example.com/app/test/foo.mjs: FAIL (Chrome: PASS)
URL-like specifiers: should use the last entry's address when URL-like specifiers parse to the same absolute URL: /test: FAIL (Chrome: PASS)
Exact vs. prefix based matching: Scope without trailing slash only: Non-trailing-slash base URL (exact match): moment: FAIL (Chrome: PASS)
Exact vs. prefix based matching: Scope without trailing slash only: Non-trailing-slash base URL (exact match): moment/foo: FAIL (Chrome: PASS)
Exact vs. prefix based matching: Scope with trailing slash only: Trailing-slash base URL (exact match): moment: FAIL (Chrome: PASS)
Exact vs. prefix based matching: Scope with trailing slash only: Trailing-slash base URL (exact match): moment/foo: FAIL (Chrome: PASS)
Exact vs. prefix based matching: Scope with trailing slash only: Subpath base URL (prefix match): moment: FAIL (Chrome: PASS)
Exact vs. prefix based matching: Scope with trailing slash only: Subpath base URL (prefix match): moment/foo: FAIL (Chrome: PASS)
Exact vs. prefix based matching: Scopes with and without trailing slash: Non-trailing-slash base URL (exact match): moment: FAIL (Chrome: PASS)
Exact vs. prefix based matching: Scopes with and without trailing slash: Non-trailing-slash base URL (exact match): moment/foo: FAIL (Chrome: PASS)
Exact vs. prefix based matching: Scopes with and without trailing slash: Trailing-slash base URL (exact match): moment: FAIL (Chrome: PASS)
Exact vs. prefix based matching: Scopes with and without trailing slash: Trailing-slash base URL (exact match): moment/foo: FAIL (Chrome: PASS)
Exact vs. prefix based matching: Scopes with and without trailing slash: Subpath base URL (prefix match): moment: FAIL (Chrome: PASS)
Exact vs. prefix based matching: Scopes with and without trailing slash: Subpath base URL (prefix match): moment/foo: FAIL (Chrome: PASS)
should favor the most-specific key: Overlapping entries with trailing slashes: a: FAIL (Chrome: PASS)
should favor the most-specific key: Overlapping entries with trailing slashes: a/: FAIL (Chrome: PASS)
should favor the most-specific key: Overlapping entries with trailing slashes: a/x: FAIL (Chrome: PASS)
should favor the most-specific key: Overlapping entries with trailing slashes: a/b: FAIL (Chrome: PASS)
should favor the most-specific key: Overlapping entries with trailing slashes: a/b/: FAIL (Chrome: PASS)
should favor the most-specific key: Overlapping entries with trailing slashes: a/b/c: FAIL (Chrome: PASS)
Entries with errors shouldn't allow fallback: No fallback to less-specific prefixes: null/x: FAIL (Chrome: PASS)
Entries with errors shouldn't allow fallback: No fallback to less-specific prefixes: null/b/c/x: FAIL (Chrome: PASS)
Entries with errors shouldn't allow fallback: No fallback to less-specific prefixes: invalid-url/x: FAIL (Chrome: PASS)
Entries with errors shouldn't allow fallback: No fallback to less-specific prefixes: invalid-url/b/c/x: FAIL (Chrome: PASS)
Entries with errors shouldn't allow fallback: No fallback to less-specific prefixes: without-trailing-slashes/x: FAIL (Chrome: PASS)
Entries with errors shouldn't allow fallback: No fallback to less-specific prefixes: without-trailing-slashes/b/c/x: FAIL (Chrome: PASS)
Entries with errors shouldn't allow fallback: No fallback to less-specific prefixes: prefix-resolution-error/x: FAIL (Chrome: PASS)
Entries with errors shouldn't allow fallback: No fallback to less-specific prefixes: prefix-resolution-error/b/c/x: FAIL (Chrome: PASS)
Entries with errors shouldn't allow fallback: No fallback to absolute URL parsing: https://example.com/null: FAIL (Chrome: PASS)
Entries with errors shouldn't allow fallback: No fallback to absolute URL parsing: https://example.com/invalid-url: FAIL (Chrome: PASS)
Entries with errors shouldn't allow fallback: No fallback to absolute URL parsing: https://example.com/without-trailing-slashes/x: FAIL (Chrome: PASS)
Entries with errors shouldn't allow fallback: No fallback to absolute URL parsing: https://example.com/prefix-resolution-error/x: FAIL (Chrome: PASS)

Pushed by wptsync@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/e2492e30a154
[wpt PR 26064] - [WPT] Migrate most of import-maps resolution tests out of blink internals, a=testonly
https://hg.mozilla.org/integration/autoland/rev/8a4a3fa63469
[wpt PR 26064] - Update wpt metadata, a=testonly
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 84 Branch
You need to log in before you can comment on or make changes to this bug.