<!DOCTYPE html>
<html>
<head>
<title>Embedded Enforcement: Subsumption Algorithm - Basic implementation.</title>
  <script src="/resources/testharness.js"></script>
  <script src="/resources/testharnessreport.js"></script>
  <script src="support/testharness-helper.sub.js"></script>
</head>
<body>
  <script>
    var tests = [
      { "name": "If there is no required csp, iframe should load.", 
        "required_csp": null, 
        "returned_csp": null,
        "expected": IframeLoad.EXPECT_LOAD },
      { "name": "Iframe with empty returned CSP should be blocked.", 
        "required_csp": "style-src 'none';", 
        "returned_csp": null,
        "expected": IframeLoad.EXPECT_BLOCK },
      { "name": "Iframe with matching CSP should load.", 
        "required_csp": "style-src 'none'; script-src 'unsafe-inline'", 
        "returned_csp": "style-src 'none'; script-src 'unsafe-inline'", 
        "expected": IframeLoad.EXPECT_LOAD },
      { "name": "Iframe with more restricting CSP should load.", 
        "required_csp": "script-src 'nonce-abc' 'nonce-123'", 
        "returned_csp": "script-src 'nonce-abc'", 
        "expected": IframeLoad.EXPECT_LOAD },
      { "name": "Iframe with less restricting CSP should be blocked.", 
        "required_csp": "style-src 'none'; script-src 'none'", 
        "returned_csp": "style-src 'none'; script-src 'self'", 
        "expected": IframeLoad.EXPECT_BLOCK },
      { "name": "Iframe with a different CSP should be blocked.", 
        "required_csp": "script-src 'nonce-abc' 'nonce-123'", 
        "returned_csp": "style-src 'none'", 
        "expected": IframeLoad.EXPECT_BLOCK },
      { "name": "Iframe with a matching and more restrictive ports should load.", 
        "required_csp": "frame-src http://c.com:443 http://b.com", 
        "returned_csp": "frame-src http://b.com:80 http://c.com:443", 
        "expected": IframeLoad.EXPECT_LOAD },
      { "name": "Iframe should load even if the ports are different but are default for the protocols.", 
        "required_csp": "frame-src http://b.com:80", 
        "returned_csp": "child-src https://b.com:443", 
        "expected": IframeLoad.EXPECT_LOAD },
    ];

    tests.forEach(test => {
      async_test(t =>  {
        var url = generateUrlWithPolicies(Host.CROSS_ORIGIN, test.returned_csp);
        assert_iframe_with_csp(t, url, test.required_csp, test.expected, test.name, null);
      }, test.name);
    });
  </script>
</body>
</html>
