| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="support/helper.sub.js"></script> |
| |
| <meta http-equiv="Content-Security-Policy" content="require-trusted-types"> |
| </head> |
| <body> |
| <script> |
| // TrustedURL assignments do not throw. |
| test(t => { |
| let p = createURL_policy(window, 1); |
| let url = p.createURL(location.href + "#xxx"); |
| location.href = url; |
| assert_equals("" + url, location.href, "location href"); |
| }, "location.href assigned via policy (successful URL transformation)."); |
| |
| // String assignments throw. |
| test(t => { |
| assert_throws(new TypeError(), _ => { |
| location.href = 'A string'; |
| }); |
| }, "`location.href = string` throws"); |
| |
| // Null assignment throws. |
| test(t => { |
| assert_throws(new TypeError(), _ => { |
| location.href = null; |
| }); |
| }, "`location.href = null` throws"); |
| </script> |