<!DOCTYPE html>

<html>
  <head>
    <title>Run the unit tests</title>
  </head>
  <body>
    <script>
      // Webkit is migrating from layoutTestController to testRunner, we use
      // layoutTestController as a fallback until that settles in.
      var runner = window.testRunner || window.layoutTestController;
      if (runner) {
        runner.dumpAsText();
        runner.waitUntilDone();
        window.addEventListener("message", receiveMessage, false);
      }

      function receiveMessage(e) {
        console.log(e.data);
        if (e.data == 'unittest-suite-done' && runner) {
          runner.notifyDone();
        }
      }
    </script>
    <script type="application/dart" src="browser_test.dart"></script>
    <script src="packages/browser/dart.js"></script>
  </body>
</html>
