| Index: test/runner/browser/runner_test.dart
|
| diff --git a/test/runner/browser/runner_test.dart b/test/runner/browser/runner_test.dart
|
| index dadf54917a57eaee32991c70cf490f31421a95a5..60ec848c71b4fc567e5cee3adf566e7788a48a65 100644
|
| --- a/test/runner/browser/runner_test.dart
|
| +++ b/test/runner/browser/runner_test.dart
|
| @@ -115,6 +115,125 @@ void main() {
|
| expect(result.exitCode, equals(1));
|
| });
|
|
|
| + test("a custom HTML file has no script tag", () {
|
| + var testPath = p.join(_sandbox, "test.dart");
|
| + new File(testPath).writeAsStringSync("void main(arg) {}");
|
| +
|
| + new File(p.join(_sandbox, "test.html")).writeAsStringSync("""
|
| +<html>
|
| +<head>
|
| + <link rel="x-dart-test" href="test.dart">
|
| +</head>
|
| +</html>
|
| +""");
|
| +
|
| + var relativePath = p.relative(testPath, from: _sandbox);
|
| + var result = _runUnittest(["-p", "dartium", "test.dart"]);
|
| + expect(result.stdout, allOf([
|
| + contains('-1: load error'),
|
| + contains(
|
| + 'Failed to load "$relativePath": '
|
| + '"${p.withoutExtension(relativePath)}.html" must contain '
|
| + '<script src="packages/test/dart.js"></script>.\n')
|
| + ]));
|
| + expect(result.exitCode, equals(1));
|
| + });
|
| +
|
| + test("a custom HTML file has no link", () {
|
| + var testPath = p.join(_sandbox, "test.dart");
|
| + new File(testPath).writeAsStringSync("void main(arg) {}");
|
| +
|
| + new File(p.join(_sandbox, "test.html")).writeAsStringSync("""
|
| +<html>
|
| +<head>
|
| + <script src="packages/test/dart.js"></script>
|
| +</head>
|
| +</html>
|
| +""");
|
| +
|
| + var result = _runUnittest(["-p", "dartium", "test.dart"]);
|
| + expect(result.stdout, allOf([
|
| + contains('-1: load error'),
|
| + contains(
|
| + 'Failed to load "${p.relative(testPath, from: _sandbox)}": '
|
| + 'Expected exactly 1 <link rel="x-dart-test"> in test.html, '
|
| + 'found 0.\n')
|
| + ]));
|
| + expect(result.exitCode, equals(1));
|
| + });
|
| +
|
| + test("a custom HTML file has too many links", () {
|
| + var testPath = p.join(_sandbox, "test.dart");
|
| + new File(testPath).writeAsStringSync("void main(arg) {}");
|
| +
|
| + new File(p.join(_sandbox, "test.html")).writeAsStringSync("""
|
| +<html>
|
| +<head>
|
| + <link rel='x-dart-test' href='test.dart'>
|
| + <link rel='x-dart-test' href='test.dart'>
|
| + <script src="packages/test/dart.js"></script>
|
| +</head>
|
| +</html>
|
| +""");
|
| +
|
| + var result = _runUnittest(["-p", "dartium", "test.dart"]);
|
| + expect(result.stdout, allOf([
|
| + contains('-1: load error'),
|
| + contains(
|
| + 'Failed to load "${p.relative(testPath, from: _sandbox)}": '
|
| + 'Expected exactly 1 <link rel="x-dart-test"> in test.html, '
|
| + 'found 2.\n')
|
| + ]));
|
| + expect(result.exitCode, equals(1));
|
| + });
|
| +
|
| + test("a custom HTML file has no href in the link", () {
|
| + var testPath = p.join(_sandbox, "test.dart");
|
| + new File(testPath).writeAsStringSync("void main(arg) {}");
|
| +
|
| + new File(p.join(_sandbox, "test.html")).writeAsStringSync("""
|
| +<html>
|
| +<head>
|
| + <link rel='x-dart-test'>
|
| + <script src="packages/test/dart.js"></script>
|
| +</head>
|
| +</html>
|
| +""");
|
| +
|
| + var result = _runUnittest(["-p", "dartium", "test.dart"]);
|
| + expect(result.stdout, allOf([
|
| + contains('-1: load error'),
|
| + contains(
|
| + 'Failed to load "${p.relative(testPath, from: _sandbox)}": '
|
| + 'Expected <link rel="x-dart-test"> in test.html to have an '
|
| + '"href" attribute.\n')
|
| + ]));
|
| + expect(result.exitCode, equals(1));
|
| + });
|
| +
|
| + test("a custom HTML file has an invalid test URL", () {
|
| + var testPath = p.join(_sandbox, "test.dart");
|
| + new File(testPath).writeAsStringSync("void main(arg) {}");
|
| +
|
| + new File(p.join(_sandbox, "test.html")).writeAsStringSync("""
|
| +<html>
|
| +<head>
|
| + <link rel='x-dart-test' href='wrong.dart'>
|
| + <script src="packages/test/dart.js"></script>
|
| +</head>
|
| +</html>
|
| +""");
|
| +
|
| + var result = _runUnittest(["-p", "dartium", "test.dart"]);
|
| + expect(result.stdout, allOf([
|
| + contains('-1: load error'),
|
| + contains(
|
| + 'Failed to load "${p.relative(testPath, from: _sandbox)}": '
|
| + 'Failed to load script at ')
|
| + ]));
|
| + expect(result.exitCode, equals(1));
|
| + });
|
| +
|
| // TODO(nweiz): test what happens when a test file is unreadable once issue
|
| // 15078 is fixed.
|
| });
|
| @@ -178,6 +297,44 @@ void main() {
|
| var result = _runUnittest(["-p", "chrome", "-p", "vm", "test.dart"]);
|
| expect(result.exitCode, equals(0));
|
| });
|
| +
|
| + group("with a custom HTML file", () {
|
| + setUp(() {
|
| + new File(p.join(_sandbox, "test.dart")).writeAsStringSync("""
|
| +import 'dart:html';
|
| +
|
| +import 'package:test/test.dart';
|
| +
|
| +void main() {
|
| + test("success", () {
|
| + expect(document.query('#foo'), isNotNull);
|
| + });
|
| +}
|
| +""");
|
| +
|
| + new File(p.join(_sandbox, "test.html")).writeAsStringSync("""
|
| +<html>
|
| +<head>
|
| + <link rel='x-dart-test' href='test.dart'>
|
| + <script src="packages/test/dart.js"></script>
|
| +</head>
|
| +<body>
|
| + <div id="foo"></div>
|
| +</body>
|
| +</html>
|
| +""");
|
| + });
|
| +
|
| + test("on content shell", () {
|
| + var result = _runUnittest(["-p", "content-shell", "test.dart"]);
|
| + expect(result.exitCode, equals(0));
|
| + });
|
| +
|
| + test("on Chrome", () {
|
| + var result = _runUnittest(["-p", "chrome", "test.dart"]);
|
| + expect(result.exitCode, equals(0));
|
| + });
|
| + });
|
| });
|
|
|
| group("runs failing tests", () {
|
| @@ -250,6 +407,45 @@ void main() {
|
| var result = _runUnittest(["-p", "chrome", "-p", "vm", "test.dart"]);
|
| expect(result.exitCode, equals(1));
|
| });
|
| +
|
| +
|
| + group("with a custom HTML file", () {
|
| + setUp(() {
|
| + new File(p.join(_sandbox, "test.dart")).writeAsStringSync("""
|
| +import 'dart:html';
|
| +
|
| +import 'package:test/test.dart';
|
| +
|
| +void main() {
|
| + test("failure", () {
|
| + expect(document.query('#foo'), isNull);
|
| + });
|
| +}
|
| +""");
|
| +
|
| + new File(p.join(_sandbox, "test.html")).writeAsStringSync("""
|
| +<html>
|
| +<head>
|
| + <link rel='x-dart-test' href='test.dart'>
|
| + <script src="packages/test/dart.js"></script>
|
| +</head>
|
| +<body>
|
| + <div id="foo"></div>
|
| +</body>
|
| +</html>
|
| +""");
|
| + });
|
| +
|
| + test("on content shell", () {
|
| + var result = _runUnittest(["-p", "content-shell", "test.dart"]);
|
| + expect(result.exitCode, equals(1));
|
| + });
|
| +
|
| + test("on Chrome", () {
|
| + var result = _runUnittest(["-p", "chrome", "test.dart"]);
|
| + expect(result.exitCode, equals(1));
|
| + });
|
| + });
|
| });
|
|
|
| test("forwards prints from the browser test", () {
|
|
|