| <script src=../priorities/resources/common.js></script> |
| <script src=../resources/testharness.js></script> |
| <script src=../resources/testharnessreport.js></script> |
| |
| <!-- Setup getResourcePriority promises. --> |
| <script> |
| const priority_tests = [ |
| { |
| promise: internals.getResourcePriority(new URL('../resources/dummy.css', location), document), |
| expected_priority: kVeryHigh, |
| description: 'low importance on <link rel=stylesheet> must have no effect on resource load priority' |
| }, |
| { |
| promise: internals.getResourcePriority(new URL('../resources/dummy.css?1', location), document), |
| expected_priority: kVeryHigh, |
| description: 'high importance on <link rel=stylesheet> must have no effect on resource load priority' |
| }, |
| { |
| promise: internals.getResourcePriority(new URL('../resources/dummy.css?2', location), document), |
| expected_priority: kVeryHigh, |
| description: 'auto importance on <link rel=stylesheet> must have no effect on resource load priority' |
| }, |
| { |
| promise: internals.getResourcePriority(new URL('../resources/dummy.css?3', location), document), |
| expected_priority: kVeryHigh, |
| description: 'invalid importance on <link rel=stylesheet> must have no effect on resource load priority' |
| }, |
| { |
| promise: internals.getResourcePriority(new URL('../resources/dummy.css?4', location), document), |
| expected_priority: kVeryHigh, |
| description: 'missing importance on <link rel=stylesheet> must have no effect on resource load priority' |
| } |
| ]; |
| </script> |
| |
| <link id=link1 importance=low rel=stylesheet href=../resources/dummy.css> |
| <link id=link2 importance=high rel=stylesheet href=../resources/dummy.css?1> |
| <link id=link3 importance=auto rel=stylesheet href=../resources/dummy.css?2> |
| <link id=link4 importance=xyz rel=stylesheet href=../resources/dummy.css?3> |
| <link id=link5 rel=stylesheet href=../resources/dummy.css?4> |
| |
| <script> |
| promise_test(async (t) => { |
| await new Promise(resolve => { |
| addEventListener('DOMContentLoaded', resolve); |
| }); |
| |
| const base_msg = ' was fetched by the preload scanner'; |
| assert_true(internals.isPreloaded(link1.href), link1.href + base_msg); |
| assert_true(internals.isPreloaded(link2.href), link2.href + base_msg); |
| assert_true(internals.isPreloaded(link3.href), link3.href + base_msg); |
| assert_true(internals.isPreloaded(link4.href), link4.href + base_msg); |
| assert_true(internals.isPreloaded(link5.href), link5.href + base_msg); |
| }, 'all stylesheets must be fetched by the preload scanner'); |
| |
| // Setup the tests described by |priority_tests|. |
| for (test of priority_tests) { |
| promise_test(async () => { |
| const priority = await test.promise; |
| assert_equals(priority, test.expected_priority); |
| }, test.description); |
| } |
| </script> |