| <!DOCTYPE html> |
| <link rel="help" href="https://drafts.csswg.org/css-values-5/#request-url-modifiers"> |
| <link rel="author" title="Sam Weinig" href="mailto:weinig@webkit.org"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/css/support/parsing-testcommon.js"></script> |
| <div id=target></div> |
| <script> |
| |
| // No modifiers |
| test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png")'); |
| |
| // <cross-origin-modifier> = cross-origin(anonymous | use-credentials) |
| test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous))'); |
| test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(use-credentials))'); |
| |
| // <integrity-modifier> = integrity(<string>) |
| test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar"))'); |
| test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity(""))'); |
| |
| // <referrer-policy-modifier> = referrer-policy(no-referrer | no-referrer-when-downgrade | same-origin | origin | strict-origin | origin-when-cross-origin | strict-origin-when-cross-origin | unsafe-url) |
| test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer))'); |
| test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer-when-downgrade))'); |
| test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(same-origin))'); |
| test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(origin))'); |
| test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(strict-origin))'); |
| test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(origin-when-cross-origin))'); |
| test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(strict-origin-when-cross-origin))'); |
| test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(unsafe-url))'); |
| |
| // Multiple modifiers |
| test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar"))'); |
| test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") cross-origin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar"))'); |
| test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") referrer-policy(no-referrer))'); |
| test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer) integrity("sha384-foobar"))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") referrer-policy(no-referrer))'); |
| test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) referrer-policy(no-referrer))'); |
| test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer) cross-origin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) referrer-policy(no-referrer))'); |
| test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar") referrer-policy(no-referrer))'); |
| test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") referrer-policy(no-referrer) cross-origin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar") referrer-policy(no-referrer))'); |
| test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer) cross-origin(anonymous) integrity("sha384-foobar"))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar") referrer-policy(no-referrer))'); |
| test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer) integrity("sha384-foobar") cross-origin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar") referrer-policy(no-referrer))'); |
| |
| // Unknown <url-modifier>s are silently ignored, and so are dropped |
| // from the serialized form... |
| test_valid_value('background-image', |
| 'url("/css/support/1x1-green.png" foobar(baz))', |
| 'url("/css/support/1x1-green.png")'); |
| test_valid_value('background-image', |
| 'url("/css/support/1x1-green.png" foobar)', |
| 'url("/css/support/1x1-green.png")'); |
| |
| // ...but if there is a valid <url-modifier> following an unknown |
| // modifier, it should still be recognized. |
| test_valid_value('background-image', |
| 'url("/css/support/1x1-green.png" foobar(baz) cross-origin(anonymous))', |
| 'url("/css/support/1x1-green.png" cross-origin(anonymous))'); |
| test_valid_value('background-image', |
| 'url("/css/support/1x1-green.png" cross-origin(anonymous) foobar(a b c))', |
| 'url("/css/support/1x1-green.png" cross-origin(anonymous))'); |
| test_valid_value('background-image', |
| 'url("/css/support/1x1-green.png" foobar(nes(ted)) integrity("sha384-foobar"))', |
| 'url("/css/support/1x1-green.png" integrity("sha384-foobar"))'); |
| test_valid_value('background-image', |
| 'url("/css/support/1x1-green.png" foobar([brackets {braces}]) referrer-policy(no-referrer))', |
| 'url("/css/support/1x1-green.png" referrer-policy(no-referrer))'); |
| |
| // Outdated modifier names (no dashes) are unknown and so are silently ignored. |
| test_valid_value('background-image', |
| 'url("/css/support/1x1-green.png" crossorigin(anonymous))', |
| 'url("/css/support/1x1-green.png")'); |
| test_valid_value('background-image', |
| 'url("/css/support/1x1-green.png" referrerpolicy(no-referrer))', |
| 'url("/css/support/1x1-green.png")'); |
| |
| // An ident-form unknown modifier and a function-form unknown modifier |
| // with the same name are not duplicates of each other, since they're |
| // syntactically distinct. |
| test_valid_value('background-image', |
| 'url("/css/support/1x1-green.png" foobar foobar(42))', |
| 'url("/css/support/1x1-green.png")'); |
| test_valid_value('background-image', |
| 'url("/css/support/1x1-green.png" foobar(42) foobar)', |
| 'url("/css/support/1x1-green.png")'); |
| </script> |