| // 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. |
| |
| import 'dart:html'; |
| |
| import 'package:unittest/unittest.dart'; |
| |
| main() { |
| test('cross_domain_iframe', () { |
| var uri = Uri.parse(window.location.href); |
| |
| var crossOriginPort = int.parse(uri.queryParameters['crossOriginPort']); |
| var crossOrigin = '${uri.scheme}://${uri.host}:$crossOriginPort'; |
| var crossOriginUrl = |
| '$crossOrigin/root_dart/tests/html/cross_domain_iframe_script.html'; |
| |
| var iframe = new IFrameElement(); |
| iframe.src = crossOriginUrl; |
| document.body.append(iframe); |
| |
| window.onMessage |
| .where((MessageEvent event) { |
| return event.origin == crossOrigin; |
| }) |
| .first |
| .then(expectAsync((MessageEvent event) { |
| expect(event.data, equals('foobar')); |
| expect(event.source, isNotNull); |
| })); |
| }); |
| } |