<!DOCTYPE html>
<title>Service Worker: CORS-exposed header names should be transferred correctly</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/get-host-info.sub.js"></script>
<script src="resources/test-helpers.sub.js"></script>
<script>
promise_test(async function(t) {
const SCOPE = 'resources/simple.html';
const SCRIPT = 'resources/fetch-cors-exposed-header-names-worker.js';
const host_info = get_host_info();
const URL = get_host_info().HTTPS_REMOTE_ORIGIN +
'/service-workers/service-worker/resources/simple.txt?pipe=' +
'header(access-control-allow-origin,*)|' +
'header(access-control-expose-headers,*)|' +
'header(foo,bar)|' +
'header(set-cookie,X)';
const reg = await service_worker_unregister_and_register(t, SCRIPT, SCOPE);
await wait_for_state(t, reg.installing, 'activated');
const frame = await with_iframe(SCOPE);
const response = await frame.contentWindow.fetch(URL);
const headers = response.headers;
assert_equals(headers.get('foo'), 'bar');
assert_equals(headers.get('set-cookie'), null);
assert_equals(headers.get('access-control-expose-headers'), '*');
}, 'CORS-exposed header names for a response from sw');
</script>