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

Side by Side Diff: pkg/source_maps/test/end2end_test.dart

Issue 19019006: Fix bug in source-maps parsing: parser failed when most information could be (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 5 months 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 | Annotate | Revision Log
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.end2end_test; 5 library test.end2end_test;
6 6
7 import 'package:unittest/unittest.dart'; 7 import 'package:unittest/unittest.dart';
8 import 'package:source_maps/source_maps.dart'; 8 import 'package:source_maps/source_maps.dart';
9 import 'common.dart'; 9 import 'common.dart';
10 10
11 main() { 11 main() {
12 test('end-to-end setup', () { 12 test('end-to-end setup', () {
13 expect(inputVar1.text, 'longVar1'); 13 expect(inputVar1.text, 'longVar1');
14 expect(inputFunction.text, 'longName'); 14 expect(inputFunction.text, 'longName');
15 expect(inputVar2.text, 'longVar2'); 15 expect(inputVar2.text, 'longVar2');
16 expect(inputVar1NoSymbol.text, 'longVar1');
17 expect(inputFunctionNoSymbol.text, 'longName');
18 expect(inputVar2NoSymbol.text, 'longVar2');
16 expect(inputExpr.text, 'longVar1 + longVar2'); 19 expect(inputExpr.text, 'longVar1 + longVar2');
17 20
18 expect(outputVar1.text, 'x'); 21 expect(outputVar1.text, 'x');
19 expect(outputFunction.text, 'f'); 22 expect(outputFunction.text, 'f');
20 expect(outputVar2.text, 'y'); 23 expect(outputVar2.text, 'y');
24 expect(outputVar1NoSymbol.text, 'x');
25 expect(outputFunctionNoSymbol.text, 'f');
26 expect(outputVar2NoSymbol.text, 'y');
21 expect(outputExpr.text, 'x + y'); 27 expect(outputExpr.text, 'x + y');
22 }); 28 });
23 29
24 test('build + parse', () { 30 test('build + parse', () {
25 var map = (new SourceMapBuilder() 31 var map = (new SourceMapBuilder()
26 ..addSpan(inputVar1, outputVar1) 32 ..addSpan(inputVar1, outputVar1)
27 ..addSpan(inputFunction, outputFunction) 33 ..addSpan(inputFunction, outputFunction)
28 ..addSpan(inputVar2, outputVar2) 34 ..addSpan(inputVar2, outputVar2)
29 ..addSpan(inputExpr, outputExpr)) 35 ..addSpan(inputExpr, outputExpr))
30 .build(output.url); 36 .build(output.url);
31 var mapping = parseJson(map); 37 var mapping = parseJson(map);
32 check(outputVar1, mapping, inputVar1, false); 38 check(outputVar1, mapping, inputVar1, false);
33 check(outputVar2, mapping, inputVar2, false); 39 check(outputVar2, mapping, inputVar2, false);
34 check(outputFunction, mapping, inputFunction, false); 40 check(outputFunction, mapping, inputFunction, false);
35 check(outputExpr, mapping, inputExpr, false); 41 check(outputExpr, mapping, inputExpr, false);
36 }); 42 });
37 43
44 test('build + parse - no symbols', () {
45 var map = (new SourceMapBuilder()
46 ..addSpan(inputVar1NoSymbol, outputVar1NoSymbol)
47 ..addSpan(inputFunctionNoSymbol, outputFunctionNoSymbol)
48 ..addSpan(inputVar2NoSymbol, outputVar2NoSymbol)
49 ..addSpan(inputExpr, outputExpr))
50 .build(output.url);
51 var mapping = parseJson(map);
52 check(outputVar1NoSymbol, mapping, inputVar1NoSymbol, false);
53 check(outputVar2NoSymbol, mapping, inputVar2NoSymbol, false);
54 check(outputFunctionNoSymbol, mapping, inputFunctionNoSymbol, false);
55 check(outputExpr, mapping, inputExpr, false);
56 });
57
58 test('build + parse, repeated entries', () {
59 var map = (new SourceMapBuilder()
60 ..addSpan(inputVar1, outputVar1)
61 ..addSpan(inputVar1, outputVar1)
62 ..addSpan(inputFunction, outputFunction)
63 ..addSpan(inputFunction, outputFunction)
64 ..addSpan(inputVar2, outputVar2)
65 ..addSpan(inputVar2, outputVar2)
66 ..addSpan(inputExpr, outputExpr)
67 ..addSpan(inputExpr, outputExpr))
68 .build(output.url);
69 var mapping = parseJson(map);
70 check(outputVar1, mapping, inputVar1, false);
71 check(outputVar2, mapping, inputVar2, false);
72 check(outputFunction, mapping, inputFunction, false);
73 check(outputExpr, mapping, inputExpr, false);
74 });
75
76 test('build + parse - no symbols, repeated entries', () {
77 var map = (new SourceMapBuilder()
78 ..addSpan(inputVar1NoSymbol, outputVar1NoSymbol)
79 ..addSpan(inputVar1NoSymbol, outputVar1NoSymbol)
80 ..addSpan(inputFunctionNoSymbol, outputFunctionNoSymbol)
81 ..addSpan(inputFunctionNoSymbol, outputFunctionNoSymbol)
82 ..addSpan(inputVar2NoSymbol, outputVar2NoSymbol)
83 ..addSpan(inputVar2NoSymbol, outputVar2NoSymbol)
84 ..addSpan(inputExpr, outputExpr))
85 .build(output.url);
86 var mapping = parseJson(map);
87 check(outputVar1NoSymbol, mapping, inputVar1NoSymbol, false);
88 check(outputVar2NoSymbol, mapping, inputVar2NoSymbol, false);
89 check(outputFunctionNoSymbol, mapping, inputFunctionNoSymbol, false);
90 check(outputExpr, mapping, inputExpr, false);
91 });
92
38 test('build + parse with file', () { 93 test('build + parse with file', () {
39 var json = (new SourceMapBuilder() 94 var json = (new SourceMapBuilder()
40 ..addSpan(inputVar1, outputVar1) 95 ..addSpan(inputVar1, outputVar1)
41 ..addSpan(inputFunction, outputFunction) 96 ..addSpan(inputFunction, outputFunction)
42 ..addSpan(inputVar2, outputVar2) 97 ..addSpan(inputVar2, outputVar2)
43 ..addSpan(inputExpr, outputExpr)) 98 ..addSpan(inputExpr, outputExpr))
44 .toJson(output.url); 99 .toJson(output.url);
45 var mapping = parse(json); 100 var mapping = parse(json);
46 check(outputVar1, mapping, inputVar1, true); 101 check(outputVar1, mapping, inputVar1, true);
47 check(outputVar2, mapping, inputVar2, true); 102 check(outputVar2, mapping, inputVar2, true);
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 152
98 // Start of the last line 153 // Start of the last line
99 var oOffset = out.length - 2; 154 var oOffset = out.length - 2;
100 var iOffset = INPUT.length - 2; 155 var iOffset = INPUT.length - 2;
101 check(new FileSpan(file, oOffset, oOffset, false), mapping, 156 check(new FileSpan(file, oOffset, oOffset, false), mapping,
102 ispan(iOffset, iOffset), true); 157 ispan(iOffset, iOffset), true);
103 check(new FileSpan(file, oOffset + 1, oOffset + 1, false), mapping, 158 check(new FileSpan(file, oOffset + 1, oOffset + 1, false), mapping,
104 ispan(iOffset, iOffset), true); 159 ispan(iOffset, iOffset), true);
105 }); 160 });
106 } 161 }
OLDNEW
« pkg/source_maps/lib/builder.dart ('K') | « pkg/source_maps/test/common.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698