Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Side by Side Diff: test/parser_test.dart

Issue 2560623003: Support a new source map bundle format useful for the Dart Dev Compiler. A source map bundle is a J… (Closed)
Patch Set: fix strong mode errors Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« lib/parser.dart ('K') | « pubspec.yaml ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library test.parser_test; 5 library test.parser_test;
6 6
7 import 'dart:convert'; 7 import 'dart:convert';
8 import 'package:test/test.dart'; 8 import 'package:test/test.dart';
9 import 'package:source_maps/source_maps.dart'; 9 import 'package:source_maps/source_maps.dart';
10 import 'common.dart'; 10 import 'common.dart';
11 11
12 const Map<String, dynamic> MAP_WITH_NO_SOURCE_LOCATION = const { 12 const Map<String, dynamic> MAP_WITH_NO_SOURCE_LOCATION = const {
13 'version': 3, 13 'version': 3,
14 'sourceRoot': '', 14 'sourceRoot': '',
15 'sources': const ['input.dart'], 15 'sources': const ['input.dart'],
16 'names': const [], 16 'names': const [],
17 'mappings': 'A', 17 'mappings': 'A',
18 'file': 'output.dart' 18 'file': 'output.dart'
19 }; 19 };
20 20
21 const Map<String, dynamic> MAP_WITH_SOURCE_LOCATION = const { 21 const Map<String, dynamic> MAP_WITH_SOURCE_LOCATION = const {
22 'version': 3, 22 'version': 3,
23 'sourceRoot': '', 23 'sourceRoot': '',
24 'sources': const ['input.dart'], 24 'sources': const ['input.dart'],
25 'names': const [], 25 'names': const [],
26 'mappings': 'AAAA', 26 'mappings': 'AAAA',
27 'file': 'output.dart' 27 'file': 'output.dart'
28 }; 28 };
29 29
30 const Map<String, dynamic> MAP_WITH_SOURCE_LOCATION_AND_NAME = const { 30 const Map<String, dynamic> MAP_WITH_SOURCE_LOCATION_AND_NAME = const {
31 'version': 3, 31 'version': 3,
32 'sourceRoot': '', 32 'sourceRoot': '',
33 'sources': const ['input.dart'], 33 'sources': const ['input.dart'],
34 'names': const ['var'], 34 'names': const ['var'],
35 'mappings': 'AAAAA', 35 'mappings': 'AAAAA',
36 'file': 'output.dart' 36 'file': 'output.dart'
37 }; 37 };
38 38
39 const Map<String, dynamic> MAP_WITH_SOURCE_LOCATION_AND_NAME_1 = const {
40 'version': 3,
41 'sourceRoot': 'pkg/',
42 'sources': const ['input1.dart'],
43 'names': const ['var1'],
44 'mappings': 'AAAAA',
45 'file': 'output1.dart'
46 };
47
48 const Map<String, dynamic> MAP_WITH_SOURCE_LOCATION_AND_NAME_2 = const {
49 'version': 3,
50 'sourceRoot': 'pkg/',
51 'sources': const ['input2.dart'],
52 'names': const ['var2'],
53 'mappings': 'AAAAA',
54 'file': 'output2.dart'
55 };
56
57 const List SOURCE_MAP_BUNDLE = const [
58 MAP_WITH_SOURCE_LOCATION_AND_NAME_1,
59 MAP_WITH_SOURCE_LOCATION_AND_NAME_2
60 ];
61
39 main() { 62 main() {
40 test('parse', () { 63 test('parse', () {
41 var mapping = parseJson(EXPECTED_MAP); 64 var mapping = parseJson(EXPECTED_MAP);
42 check(outputVar1, mapping, inputVar1, false); 65 check(outputVar1, mapping, inputVar1, false);
43 check(outputVar2, mapping, inputVar2, false); 66 check(outputVar2, mapping, inputVar2, false);
44 check(outputFunction, mapping, inputFunction, false); 67 check(outputFunction, mapping, inputFunction, false);
45 check(outputExpr, mapping, inputExpr, false); 68 check(outputExpr, mapping, inputExpr, false);
46 }); 69 });
47 70
48 test('parse + json', () { 71 test('parse + json', () {
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 }); 138 });
116 139
117 test('parse with map URL', () { 140 test('parse with map URL', () {
118 var inputMap = new Map.from(MAP_WITH_SOURCE_LOCATION); 141 var inputMap = new Map.from(MAP_WITH_SOURCE_LOCATION);
119 inputMap['sourceRoot'] = 'pkg/'; 142 inputMap['sourceRoot'] = 'pkg/';
120 var mapping = parseJson(inputMap, mapUrl: "file:///path/to/map"); 143 var mapping = parseJson(inputMap, mapUrl: "file:///path/to/map");
121 expect(mapping.spanFor(0, 0).sourceUrl, 144 expect(mapping.spanFor(0, 0).sourceUrl,
122 Uri.parse("file:///path/to/pkg/input.dart")); 145 Uri.parse("file:///path/to/pkg/input.dart"));
123 }); 146 });
124 147
148 group('parse with bundle', () {
Siggi Cherem (dart-lang) 2016/12/07 18:06:22 assuming we create bundle.dart, I'd move this test
Jacob 2016/12/07 20:40:31 Acknowledged.
149 var mapping = parseJson(SOURCE_MAP_BUNDLE, mapUrl: "file:///path/to/map");
150 test('simple', () {
151 expect(
152 mapping.spanFor(0, 0, uri: "file:///path/to/output1.dart").sourceUrl,
153 Uri.parse("file:///path/to/pkg/input1.dart"));
154 expect(
155 mapping.spanFor(0, 0, uri: "file:///path/to/output2.dart").sourceUrl,
156 Uri.parse("file:///path/to/pkg/input2.dart"));
157 });
158
159 test('missing path', () {
160 expect(mapping.spanFor(0, 0, uri: "wrong_output.dart"), isNull);
161 });
162
163 test('incomplete paths', () {
164 expect(mapping.spanFor(0, 0, uri: "output1.dart").sourceUrl,
165 Uri.parse("file:///path/to/pkg/input1.dart"));
166 expect(mapping.spanFor(0, 0, uri: "output2.dart").sourceUrl,
167 Uri.parse("file:///path/to/pkg/input2.dart"));
168 });
169
170 // Test that the source map can handle cases where the uri passed in is
171 // not from the expected host but it is still unambiguous which source
172 // map should be used.
173 test('different paths', () {
174 expect(
175 mapping.spanFor(0, 0, uri: "http://localhost/output1.dart").sourceUrl,
176 Uri.parse("file:///path/to/pkg/input1.dart"));
177 expect(
178 mapping.spanFor(0, 0, uri: "http://localhost/output2.dart").sourceUrl,
179 Uri.parse("file:///path/to/pkg/input2.dart"));
180 });
181 });
182
125 test('parse and re-emit', () { 183 test('parse and re-emit', () {
126 for (var expected in [ 184 for (var expected in [
127 EXPECTED_MAP, 185 EXPECTED_MAP,
128 MAP_WITH_NO_SOURCE_LOCATION, 186 MAP_WITH_NO_SOURCE_LOCATION,
129 MAP_WITH_SOURCE_LOCATION, 187 MAP_WITH_SOURCE_LOCATION,
130 MAP_WITH_SOURCE_LOCATION_AND_NAME]) { 188 MAP_WITH_SOURCE_LOCATION_AND_NAME,
189 SOURCE_MAP_BUNDLE
190 ]) {
131 var mapping = parseJson(expected); 191 var mapping = parseJson(expected);
132 expect(mapping.toJson(), equals(expected)); 192 expect(mapping.toJson(), equals(expected));
133 } 193 }
134 }); 194 });
135 } 195 }
OLDNEW
« lib/parser.dart ('K') | « pubspec.yaml ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698