#!/usr/bin/env python3

import sys

sys.stdout.write(
    'Content-Security-Policy: sandbox allow-scripts\r\n'
    'Content-Type: text/html\r\n\r\n'
    '<script src="../resources/testharness.js"></script>\n'
    '<script src="../resources/testharnessreport.js"></script>\n'
    '<script>\n'
    'var originURL = document.URL;\n'
    'test(function () {\n'
    '    assert_throws(\'SecurityError\', function () {\n'
    '        history.pushState(null, null, originURL + "/path");\n'
    '    });\n'
    '}, \'pushState to a new path in unique origin should fail with SecurityError\');\n'
    '\n'
    'test(function () {\n'
    '    try {\n'
    '        history.pushState(null, null, originURL + "#hash");\n'
    '        done();\n'
    '    } catch (e) {\n'
    '        assert_unreached("pushState #hash should not fail.");\n'
    '    }\n'
    '}, \'pushState #hash in unique origin should not fail with SecurityError\');\n'
    '\n'
    'test(function () {\n'
    '    try {\n'
    '        history.pushState(null, null, originURL + "?query");\n'
    '        done();\n'
    '    } catch (e) {\n'
    '        assert_unreached("pushState ?query should not fail.");\n'
    '    }\n'
    '}, \'pushState ?query in unique origin should not fail with SecurityError\');\n'
    '\n'
    'test(function () {\n'
    '    try {\n'
    '        history.pushState(null, null, originURL + "?query#hash");\n'
    '        done();\n'
    '    } catch (e) {\n'
    '        assert_unreached("pushState ?query#hash should not fail.");\n'
    '    }\n'
    '}, \'pushState ?query#hash in unique origin should not fail with SecurityError\');\n'
    '</script>\n'
)