<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
  <script src="../resources/testharness.js"></script>
  <script src="../resources/testharnessreport.js"></script>
</head>
<body>
<script type="text/javascript">
// This tests function template of Window is initialized correctly.
available_modules = [
  [window.MIDIPort, "module in modules component"],
  [window.Presentation, "runtime enabled module"],
];

for (let data of available_modules) {
  test(() => { assert_not_equals(data[0], undefined); }, data[1]);
}
</script>
</body>
</html>
