Revision 89ba9443f1d80b2bea3a33477b1ac53585fbb16d authored by jimevans on 16 March 2018, 14:46:32 UTC, committed by Andreas Tolfsen on 16 March 2018, 14:46:32 UTC
When the context element is `document.documentElement`, and an attempt is
made to find elements from that context element using an XPath of `..`, a
snapshot is returned containing the `document` object. While this is
apparently the correct behavior for XPath, the WebDriver spec says that if
the object in the snapshot is not an element, we should return an error
with error code "invalid selector." The test_parent_htmldocument test in
both find_element_from_element.py and find_elements_from_element.py expect
a success in this case. This commit changes the tests to correctly expect
an error from the driver.
1 parent 1cbb928
Raw File
subresource-ed25519-with-csp.tentative.html
<!DOCTYPE html>
<meta http-equiv="Content-Security-Policy"
      content="script-src 'unsafe-inline' 'nonce-abcd' 'ed25519-qGFmwTxlocg707D1cX4w60iTwtfwbMLf8ITDyfko7s0='">

<title>Subresource Integrity with Ed25519 plus Content Security Policy</title>
<script src="/resources/testharness.js" nonce="abcd"></script>
<script src="/resources/testharnessreport.js" nonce="abcd"></script>
<script src="/resources/sriharness.js" nonce="abcd"></script>

<div id="log"></div>
<div id="container"></div>
<script nonce="abcd">
    // This needs to be the same key as in this doc's content security policy.
    var public_key = "qGFmwTxlocg707D1cX4w60iTwtfwbMLf8ITDyfko7s0=";
    new SRIScriptTest(
        true,
        "Ed25519-with-CSP, passes, valid key, valid signature.",
        "ed25519-signature.js",
        "ed25519-" + public_key
    ).execute();

    new SRIScriptTest(
        false,
        "Ed25519-with-CSP, fails, valid key, invalid signature.",
        "ed25519-broken-signature.js",
        "ed25519-" + public_key
    ).execute();

    // The first of these uses the nonce rather than the signature to pass CSP.
    // That doesn't test anything useful about the Ed25519 feature, but is here
    // to test the precondition for the next test. So if this test passes and
    // the second one fails, then we can be sure that the 2nd test failed only
    // because of the CSP key mismatch, as that's the only difference between
    // the tests.
    var key_not_in_csp = "5MVHFfs/9Ri+YSwH4FwneSFp88t1ljryPoLxdiyTKks=";
    new SRIScriptTest(
        true,
        "Ed25519-with-CSP, passes, alternative key.",
        "ed25519-signature2.js",
        "ed25519-" + key_not_in_csp,
        /* cross origin */ undefined,
        /* nonce */ "abcd").execute();
    new SRIScriptTest(
        false,
        "Ed25519-with-CSP, fails, valid key, valid signature, key not in CSP.",
        "ed25519-signature2.js",
        "ed25519-" + key_not_in_csp,
        ).execute();
</script>


back to top