// 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 'dart:isolate';

import 'package:async_helper/async_minitest.dart';

worker(message) {
  var uri = message[0];
  var replyTo = message[1];
  try {
    var url = Url.createObjectUrl(new Blob([''], 'application/javascript'));
    Url.revokeObjectUrl(url);
    replyTo.send('Hello from Worker');
  } catch (e) {
    replyTo.send('Error: $e');
  }
}

main() {
  test('Use Worker API in Worker', () {
    var response = new ReceivePort();
    var remote = Isolate.spawn(worker, ['', response.sendPort]);
    remote.then((_) => response.first).then(
        expectAsync((reply) => expect(reply, equals('Hello from Worker'))));
  });
}
