<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/test-helper.js"></script>

<script>
// "bare/..." (i.e. without leading "./") are bare specifiers
// (not relative paths).
//
// Discussions about notations for builtin modules are ongoing, e.g.
// https://github.com/tc39/proposal-javascript-standard-library/issues/12
// Currently the tests expects two notations are accepted.
// TODO: Once the discussions converge, update the tests.
const importMap = `
{
  "imports": {
    "bare": "./resources/log.js?pipe=sub&name=bare",

    "data:text/javascript,log.push('data:foo')": "./resources/log.js?pipe=sub&name=foo",
    "data:text/javascript,log.push('data:cross-origin-foo')": "https://{{domains[www1]}}:{{ports[https][0]}}/import-maps/resources/log.js?pipe=sub&name=cross-origin-foo",
    "data:text/javascript,log.push('data:to-data')": "data:text/javascript,log.push('dataURL')",

    "data:text/javascript,log.push('data:std-blank')": "std:blank",
    "data:text/javascript,log.push('data:blank')": "@std/blank",
    "data:text/javascript,log.push('data:std-none')": "std:none",
    "data:text/javascript,log.push('data:none')": "@std/none",

    "data:text/javascript,log.push('data:to-bare')": "bare"
  }
}
`;

const tests = {
  // Arrays of expected results for:
  // - <script src type="module">,
  // - <script src> (classic script),
  // - static import, and
  // - dynamic import.

  // Currently, Chromium's implementation resolves import maps as a part of
  // specifier resolution, and thus failure in import map resolution causes
  // a parse error, not fetch error. Therefore, we use Result.PARSE_ERROR
  // below. https://crbug.com/928435

  // data: to HTTP(S).
  "data:text/javascript,log.push('data:foo')":
    [Result.URL, Result.URL, "log:foo", "log:foo"],
  "data:text/javascript,log.push('data:cross-origin-foo')":
    [Result.URL, Result.URL, "log:cross-origin-foo", "log:cross-origin-foo"],

  // data: to data:
  "data:text/javascript,log.push('data:to-data')":
    [Result.URL, Result.URL, "dataURL", "dataURL"],

  // data: to built-in.
  "data:text/javascript,log.push('data:std-blank')":
    [Result.URL, Result.URL, Result.BUILTIN, Result.BUILTIN],
  "data:text/javascript,log.push('data:blank')":
    [Result.URL, Result.URL, Result.BUILTIN, Result.BUILTIN],
  "data:text/javascript,log.push('data:std-none')":
    [Result.URL, Result.URL, Result.PARSE_ERROR, Result.PARSE_ERROR],
  "data:text/javascript,log.push('data:none')":
    [Result.URL, Result.URL, Result.PARSE_ERROR, Result.PARSE_ERROR],

  // data: to bare mapping is disabled.
  "data:text/javascript,log.push('data:to-bare')":
    [Result.URL, Result.URL, Result.PARSE_ERROR, Result.PARSE_ERROR],
};

doTests(importMap, null, tests);
</script>
<body>
