| Index: test/source_map_stack_trace_test.dart
|
| diff --git a/test/source_map_stack_trace_test.dart b/test/source_map_stack_trace_test.dart
|
| index 12ae7b189fe39a440dd8e6a50c6def5b1482ea2c..64145a63de1b5dc310b60a294fc9b88f4a7e7866 100644
|
| --- a/test/source_map_stack_trace_test.dart
|
| +++ b/test/source_map_stack_trace_test.dart
|
| @@ -2,6 +2,7 @@
|
| // 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:package_resolver/package_resolver.dart';
|
| import 'package:source_maps/source_maps.dart';
|
| import 'package:source_span/source_span.dart';
|
| import 'package:stack_trace/stack_trace.dart';
|
| @@ -102,6 +103,53 @@ foo.dart.js 10:11 baz
|
| expect(frame.column, equals(4));
|
| });
|
|
|
| + test("uses package: URIs for frames within packageResolver.packageRoot", () {
|
| + var trace = new Trace.parse("foo.dart.js 10 foo");
|
| + var builder = new SourceMapBuilder()
|
| + ..addSpan(
|
| + new SourceMapSpan.identifier(
|
| + new SourceLocation(1,
|
| + line: 1, column: 3, sourceUrl: "packages/foo/foo.dart"),
|
| + "qux"),
|
| + new SourceSpan(
|
| + new SourceLocation(8, line: 5, column: 0),
|
| + new SourceLocation(12, line: 9, column: 1),
|
| + "\n" * 4));
|
| +
|
| + var mapping = parseJson(builder.build("foo.dart.js.map"));
|
| + var mappedTrace = _mapTrace(mapping, trace,
|
| + packageResolver: new SyncPackageResolver.root("packages/"));
|
| + var frame = mappedTrace.frames.first;
|
| + expect(frame.uri, equals(Uri.parse("package:foo/foo.dart")));
|
| + expect(frame.line, equals(2));
|
| + expect(frame.column, equals(4));
|
| + });
|
| +
|
| + test("uses package: URIs for frames within a packageResolver.packageMap URL",
|
| + () {
|
| + var trace = new Trace.parse("foo.dart.js 10 foo");
|
| + var builder = new SourceMapBuilder()
|
| + ..addSpan(
|
| + new SourceMapSpan.identifier(
|
| + new SourceLocation(1,
|
| + line: 1, column: 3, sourceUrl: "packages/foo/foo.dart"),
|
| + "qux"),
|
| + new SourceSpan(
|
| + new SourceLocation(8, line: 5, column: 0),
|
| + new SourceLocation(12, line: 9, column: 1),
|
| + "\n" * 4));
|
| +
|
| + var mapping = parseJson(builder.build("foo.dart.js.map"));
|
| + var mappedTrace = _mapTrace(mapping, trace,
|
| + packageResolver: new SyncPackageResolver.config({
|
| + "foo": Uri.parse("packages/foo")
|
| + }));
|
| + var frame = mappedTrace.frames.first;
|
| + expect(frame.uri, equals(Uri.parse("package:foo/foo.dart")));
|
| + expect(frame.line, equals(2));
|
| + expect(frame.column, equals(4));
|
| + });
|
| +
|
| test("uses dart: URIs for frames within sdkRoot", () {
|
| var trace = new Trace.parse("foo.dart.js 10 foo");
|
| var builder = new SourceMapBuilder()
|
| @@ -198,17 +246,21 @@ foo.dart.js 10:11 baz
|
| /// Like [mapStackTrace], but is guaranteed to return a [Trace] so it can be
|
| /// inspected.
|
| Trace _mapTrace(Mapping sourceMap, StackTrace stackTrace,
|
| - {bool minified: false, packageRoot, sdkRoot}) {
|
| + {bool minified: false, SyncPackageResolver packageResolver, sdkRoot,
|
| + packageRoot}) {
|
| return new Trace.from(mapStackTrace(sourceMap, stackTrace,
|
| - minified: minified, packageRoot: packageRoot, sdkRoot: sdkRoot));
|
| + minified: minified, packageResolver: packageResolver, sdkRoot: sdkRoot,
|
| + packageRoot: packageRoot));
|
| }
|
|
|
| /// Like [mapStackTrace], but is guaranteed to return a [Chain] so it can be
|
| /// inspected.
|
| Chain _mapChain(Mapping sourceMap, StackTrace stackTrace,
|
| - {bool minified: false, packageRoot, sdkRoot}) {
|
| + {bool minified: false, SyncPackageResolver packageResolver, sdkRoot,
|
| + packageRoot}) {
|
| return new Chain.forTrace(mapStackTrace(sourceMap, stackTrace,
|
| - minified: minified, packageRoot: packageRoot, sdkRoot: sdkRoot));
|
| + minified: minified, packageResolver: packageResolver, sdkRoot: sdkRoot,
|
| + packageRoot: packageRoot));
|
| }
|
|
|
| /// Runs the mapper's prettification logic on [member] and returns the result.
|
|
|