// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file

#library('JsInterop1Test');
#import('../../pkg/unittest/unittest.dart');
#import('../../pkg/unittest/html_config.dart');
#import('dart:html');
#import('dart:json');

injectSource(code) {
  final script = new ScriptElement();
  script.type = 'text/javascript';
  script.innerHTML = code;
  document.body.nodes.add(script);
}

main() {
  useHtmlConfiguration();
  var callback;

  test('js-to-dart-post-message', () {
    var onSuccess = expectAsync1((e) {
      window.on.message.remove(callback);
    });
    callback = (e) {
      if (e.data == 'hello') {
        onSuccess(e);
      }
    };
    window.on.message.add(callback);
    injectSource("window.postMessage('hello', '*');");
  });
}
