| // 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. | |
| // Test that spawn works even when there are many script files in the page. | |
| // This requires computing correctly the URL to the orignal script, so we can | |
| // pass it to the web worker APIs. | |
| library compute_this_script; | |
| import 'dart:html'; | |
| import 'dart:isolate'; | |
| import 'package:unittest/unittest.dart'; | |
| import 'package:unittest/html_config.dart'; | |
| import "../remote_unittest_helper.dart"; | |
| child(var message) { | |
| var data = message[0]; | |
| var reply = message[1]; | |
| reply.send('re: $data'); | |
| } | |
| void main([args, port]) { | |
| if (testRemote(main, port)) return; | |
| useHtmlConfiguration(); | |
| var script = new ScriptElement(); | |
| document.body.append(script); | |
| test('spawn with other script tags in page', () { | |
| ReceivePort port = new ReceivePort(); | |
| port.listen(expectAsync((msg) { | |
| expect(msg, equals('re: hi')); | |
| port.close(); | |
| })); | |
| Isolate.spawn(child, ['hi', port.sendPort]); | |
| }); | |
| } |