<!DOCTYPE html>
<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="trusted-types *">
<body>
<script>
  // Not exposed policy test
  test(t => {
    let policy = window.TrustedTypes.createPolicy('SomeName', { createHTML: s => s } );
    assert_equals(window.TrustedTypes.getExposedPolicy('SomeName'), null);
  }, "Null is returned when policy is not exposed - by default");

  // Non-existent policy test
  test(t => {
    let policy = window.TrustedTypes.createPolicy('SomeOtherName', { createHTML: s => s } );
    assert_equals(window.TrustedTypes.getExposedPolicy('JustAName'), null);
  }, "Null is returned when policy is non-existent.");

  // Exposed policy test
  test(t => {
    let policy = window.TrustedTypes.createPolicy('EvenSomeOtherName', { createHTML: s => s }, true );
    assert_equals(window.TrustedTypes.getExposedPolicy('EvenSomeOtherName'), policy);
  }, "Policy is returned when exposed == true.");
</script>
