blob: 1eb0d6eeec057f14d9e4c152c14f79e1aeb59e4b [file] [log] [blame]
// Copyright (c) 2015, 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.
@Tags(const ["ie"])
import 'package:scheduled_test/descriptor.dart' as d;
import 'package:scheduled_test/scheduled_stream.dart';
import 'package:scheduled_test/scheduled_test.dart';
import 'package:test/src/runner/browser/internet_explorer.dart';
import '../../io.dart';
import '../../utils.dart';
import 'code_server.dart';
void main() {
useSandbox();
test("starts IE with the given URL", () async {
var server = new CodeServer();
schedule(() async {
var ie = new InternetExplorer(await server.url);
currentSchedule.onComplete.schedule(() async => (await ie).close());
});
server.handleJavaScript('''
var webSocket = new WebSocket(window.location.href.replace("http://", "ws://"));
webSocket.addEventListener("open", function() {
webSocket.send("loaded!");
});
''');
var webSocket = server.handleWebSocket();
schedule(() async {
expect(await (await webSocket).stream.first, equals("loaded!"));
});
});
test("a process can be killed synchronously after it's started", () async {
var server = new CodeServer();
schedule(() async {
var ie = new InternetExplorer(await server.url);
await ie.close();
});
});
test("reports an error in onExit", () {
var ie = new InternetExplorer("http://dart-lang.org",
executable: "_does_not_exist");
expect(
ie.onExit,
throwsA(isApplicationException(startsWith(
"Failed to run Internet Explorer: $noSuchFileMessage"))));
});
test("can run successful tests", () {
d
.file(
"test.dart",
"""
import 'package:test/test.dart';
void main() {
test("success", () {});
}
""")
.create();
var test = runTest(["-p", "ie", "test.dart"]);
test.stdout.expect(consumeThrough(contains("+1: All tests passed!")));
test.shouldExit(0);
});
test("can run failing tests", () {
d
.file(
"test.dart",
"""
import 'package:test/test.dart';
void main() {
test("failure", () => throw new TestFailure("oh no"));
}
""")
.create();
var test = runTest(["-p", "ie", "test.dart"]);
test.stdout.expect(consumeThrough(contains("-1: Some tests failed.")));
test.shouldExit(1);
});
}