diff --git a/CHANGELOG.md b/CHANGELOG.md index cfb6c5e5e85c97035f518bac9212e173b503c2d5..9f8af223019e8cb14d070be2c85dc73edb8d6385 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +### 0.12.0-beta.10 + +* Fix running browser tests in subdirectories. + ### 0.12.0-beta.9 * A browser test may use a custom HTML file. See [the README][custom html] for diff --git a/lib/src/runner/browser/server.dart b/lib/src/runner/browser/server.dart index 17862ebcb7fa4b844b4d49782f8f2a60442c7361..9c58885e1f404e794c461a85a730934a383975a4 100644 --- a/lib/src/runner/browser/server.dart +++ b/lib/src/runner/browser/server.dart @@ -206,10 +206,11 @@ void main() { // Link to the Dart wrapper on Dartium and the compiled JS version // elsewhere. + var scriptBase = + "${HTML_ESCAPE.convert(p.basename(test))}.browser_test.dart"; var script = request.headers['user-agent'].contains('(Dart)') - ? 'type="application/dart" ' - 'src="${HTML_ESCAPE.convert(test)}.browser_test.dart"' - : 'src="${HTML_ESCAPE.convert(test)}.browser_test.dart.js"'; + ? 'type="application/dart" src="$scriptBase"' + : 'src="$scriptBase.js"'; return new shelf.Response.ok(''' <!DOCTYPE html> diff --git a/pubspec.yaml b/pubspec.yaml index 3e75b4c4ba913f8a30ed13db03b9637015ecd6d2..6de13bd209de56884930d6b407afb26748ec0b81 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: test -version: 0.12.0-beta.9 +version: 0.12.0-beta.10 author: Dart Team <misc@dartlang.org> description: A library for writing dart unit tests. homepage: https://github.com/dart-lang/test diff --git a/test/runner/browser/runner_test.dart b/test/runner/browser/runner_test.dart index 60ec848c71b4fc567e5cee3adf566e7788a48a65..5bad1c55db9965e99c69ec01e7dd49fc888937b3 100644 --- a/test/runner/browser/runner_test.dart +++ b/test/runner/browser/runner_test.dart @@ -298,6 +298,15 @@ void main() { expect(result.exitCode, equals(0)); }); + // Regression test; this broke in 0.12.0-beta.9. + test("on a file in a subdirectory", () { + new Directory(p.join(_sandbox, "dir")).createSync(); + new File(p.join(_sandbox, "dir", "test.dart")) + .writeAsStringSync(_success); + var result = _runUnittest(["-p", "chrome", "dir/test.dart"]); + expect(result.exitCode, equals(0)); + }); + group("with a custom HTML file", () { setUp(() { new File(p.join(_sandbox, "test.dart")).writeAsStringSync(""" diff --git a/test/runner/runner_test.dart b/test/runner/runner_test.dart index 10d64ad94cdc765d276d3cf494ed37876cc37f88..d717b671d62247cc2ec7add3102b85ca989c50f9 100644 --- a/test/runner/runner_test.dart +++ b/test/runner/runner_test.dart @@ -286,6 +286,15 @@ $_usage""")); ]); expect(result.stdout, contains("All tests passed!")); }); + + // Regression test; this broke in 0.12.0-beta.9. + test("on a file in a subdirectory", () { + new Directory(p.join(_sandbox, "dir")).createSync(); + new File(p.join(_sandbox, "dir", "test.dart")) + .writeAsStringSync(_success); + var result = _runUnittest(["dir/test.dart"]); + expect(result.exitCode, equals(0)); + }); }); group("runs failing tests", () {