<!DOCTYPE html>
<html>
<head>
<title>Upgrade Insecure Requests: Images.</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="./support/testharness-helper.sub.js"></script>

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
</head>
<body>
<script>
var tests = [
  generateURL(Host.SAME_ORIGIN, Protocol.INSECURE, ResourceType.IMAGE),
  generateURL(Host.SAME_ORIGIN, Protocol.SECURE, ResourceType.IMAGE),
  generateURL(Host.CROSS_ORIGIN, Protocol.INSECURE, ResourceType.IMAGE),
  generateURL(Host.CROSS_ORIGIN, Protocol.SECURE, ResourceType.IMAGE),
];

tests.forEach(test => {
  async_test(t => assert_image_loads(t, test.url, 64, 168), test.name);
  async_test(t => assert_image_loads_in_srcdoc(t, test.url, 64, 168), test.name + " in <iframe srcdoc>");
  async_test(t => assert_image_loads_in_blank(t, test.url, 64, 168), test.name + " in <iframe>");
});
</script>
</body>
</html>
