<!DOCTYPE HTML>
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<script>
description('Test module scripts run with correct mime types.');

// Module will be executed asynchronously.
window.jsTestIsAsync = true;
</script>
<script>
let unscriptyMimeTypes = [
    'application/ecmascript',
    'application/javascript',
    'application/x-ecmascript',
    'application/x-javascript',
    'text/ecmascript',
    'text/javascript',
    'text/javascript1.0',
    'text/javascript1.1',
    'text/javascript1.2',
    'text/javascript1.3',
    'text/javascript1.4',
    'text/javascript1.5',
    'text/jscript',
    'text/livescript',
    'text/x-ecmascript',
    'text/x-javascript',
];

debug('Module is not executed yet.');

let current = Promise.resolve();
for (let mimeType of unscriptyMimeTypes) {
    current = current.then(() => {
        return new Promise((resolve, reject) => {
            let script = document.createElement('script');
            script.addEventListener('load', (ev) => resolve(ev), false);
            script.type = 'module'
            script.src = `./contentTypeOptions/resources/script-with-header.pl?mime=${mimeType}`;
            document.body.appendChild(script);
        });
    });
}

current.then(done);

function done()
{
    debug('Module scripts run with correct mime types.');
    finishJSTest();
}
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
