<!doctype html>
<html>
<head>
<meta charset=utf-8>
<title>IDL check of WebCrypto</title>
<link rel="help" href="https://w3c.github.io/webcrypto/Overview.html#crypto-interface">

<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/resources/WebIDLParser.js></script>
<script src=/resources/idlharness.js></script>
</head>
<body>

<h1 class="instructions">Description</h1>

<p class="instructions">This test verifies that the implementations of the WebCrypto API match with its WebIDL definition.</p>

<div id='log'></div>

<script>
var file_input;
setup(function() {
    var idl_array = new IdlArray();

    var request = new XMLHttpRequest();
    request.open("GET", "../interfaces/WebCryptoAPI.idl");
    request.send();
    request.onload = function() {
        var idls = request.responseText;

        idl_array.add_idls(idls);

        idl_array.add_objects({"Crypto":["crypto"], "SubtleCrypto":["crypto.subtle"]});

        idl_array.test();
        done();
  };
}, {explicit_done: true});
</script>
