blob: e6c6d9f887455fa677d7dd81b0f3dde9428a479d [file] [log] [blame]
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS d.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 'package:test/test.dart';
import '../descriptor.dart' as d;
import '../test_pub.dart';
main() {
// This test is a bit shaky. Since dart2js is free to inline things, it's
// not precise as to which source libraries will actually be referenced in
// the source map. But this tries to use a type in the core library
// (Duration) and validate that its source ends up in the source map.
test("Dart core libraries are available to source maps", () async {
await d.dir(appPath, [
d.appPubspec(),
d.dir("web", [
d.file("main.dart", "main() => new Duration().toString();"),
d.dir("sub",
[d.file("main.dart", "main() => new Duration().toString();")])
])
]).create();
await pubGet();
await runPub(
args: ["build", "--mode", "debug"],
output: new RegExp(r'Built \d+ files to "build".'),
exitCode: 0);
await d.dir(appPath, [
d.dir("build", [
d.dir("web", [
d.file("main.dart.js.map",
contains(r"packages/$sdk/lib/core/duration.dart")),
d.dir("sub", [
d.file("main.dart.js.map",
contains(r"../packages/$sdk/lib/core/duration.dart"))
]),
d.dir("packages", [
d.dir(r"$sdk", [
d.dir("lib", [
d.dir(r"core",
[d.file("duration.dart", contains("class Duration"))])
])
])
])
])
])
]).validate();
});
}