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

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

Issue 421723004: Remove support for the old Span classes from source_maps. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Code review changes Created 6 years, 4 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
« no previous file with comments | « pkg/source_maps/test/common.dart ('k') | pkg/source_maps/test/parser_test.dart » ('j') | 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.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 'package:source_span/source_span.dart';
9 import 'common.dart'; 10 import 'common.dart';
10 11
11 main() { 12 main() {
12 test('end-to-end setup', () { 13 test('end-to-end setup', () {
13 expect(inputVar1.text, 'longVar1'); 14 expect(inputVar1.text, 'longVar1');
14 expect(inputFunction.text, 'longName'); 15 expect(inputFunction.text, 'longName');
15 expect(inputVar2.text, 'longVar2'); 16 expect(inputVar2.text, 'longVar2');
16 expect(inputVar1NoSymbol.text, 'longVar1'); 17 expect(inputVar1NoSymbol.text, 'longVar1');
17 expect(inputFunctionNoSymbol.text, 'longName'); 18 expect(inputFunctionNoSymbol.text, 'longName');
18 expect(inputVar2NoSymbol.text, 'longVar2'); 19 expect(inputVar2NoSymbol.text, 'longVar2');
19 expect(inputExpr.text, 'longVar1 + longVar2'); 20 expect(inputExpr.text, 'longVar1 + longVar2');
20 21
21 expect(outputVar1.text, 'x'); 22 expect(outputVar1.text, 'x');
22 expect(outputFunction.text, 'f'); 23 expect(outputFunction.text, 'f');
23 expect(outputVar2.text, 'y'); 24 expect(outputVar2.text, 'y');
24 expect(outputVar1NoSymbol.text, 'x'); 25 expect(outputVar1NoSymbol.text, 'x');
25 expect(outputFunctionNoSymbol.text, 'f'); 26 expect(outputFunctionNoSymbol.text, 'f');
26 expect(outputVar2NoSymbol.text, 'y'); 27 expect(outputVar2NoSymbol.text, 'y');
27 expect(outputExpr.text, 'x + y'); 28 expect(outputExpr.text, 'x + y');
28 }); 29 });
29 30
30 test('build + parse', () { 31 test('build + parse', () {
31 var map = (new SourceMapBuilder() 32 var map = (new SourceMapBuilder()
32 ..addSpan(inputVar1, outputVar1) 33 ..addSpan(inputVar1, outputVar1)
33 ..addSpan(inputFunction, outputFunction) 34 ..addSpan(inputFunction, outputFunction)
34 ..addSpan(inputVar2, outputVar2) 35 ..addSpan(inputVar2, outputVar2)
35 ..addSpan(inputExpr, outputExpr)) 36 ..addSpan(inputExpr, outputExpr))
36 .build(output.url); 37 .build(output.url.toString());
37 var mapping = parseJson(map); 38 var mapping = parseJson(map);
38 check(outputVar1, mapping, inputVar1, false); 39 check(outputVar1, mapping, inputVar1, false);
39 check(outputVar2, mapping, inputVar2, false); 40 check(outputVar2, mapping, inputVar2, false);
40 check(outputFunction, mapping, inputFunction, false); 41 check(outputFunction, mapping, inputFunction, false);
41 check(outputExpr, mapping, inputExpr, false); 42 check(outputExpr, mapping, inputExpr, false);
42 }); 43 });
43 44
44 test('build + parse - no symbols', () { 45 test('build + parse - no symbols', () {
45 var map = (new SourceMapBuilder() 46 var map = (new SourceMapBuilder()
46 ..addSpan(inputVar1NoSymbol, outputVar1NoSymbol) 47 ..addSpan(inputVar1NoSymbol, outputVar1NoSymbol)
47 ..addSpan(inputFunctionNoSymbol, outputFunctionNoSymbol) 48 ..addSpan(inputFunctionNoSymbol, outputFunctionNoSymbol)
48 ..addSpan(inputVar2NoSymbol, outputVar2NoSymbol) 49 ..addSpan(inputVar2NoSymbol, outputVar2NoSymbol)
49 ..addSpan(inputExpr, outputExpr)) 50 ..addSpan(inputExpr, outputExpr))
50 .build(output.url); 51 .build(output.url.toString());
51 var mapping = parseJson(map); 52 var mapping = parseJson(map);
52 check(outputVar1NoSymbol, mapping, inputVar1NoSymbol, false); 53 check(outputVar1NoSymbol, mapping, inputVar1NoSymbol, false);
53 check(outputVar2NoSymbol, mapping, inputVar2NoSymbol, false); 54 check(outputVar2NoSymbol, mapping, inputVar2NoSymbol, false);
54 check(outputFunctionNoSymbol, mapping, inputFunctionNoSymbol, false); 55 check(outputFunctionNoSymbol, mapping, inputFunctionNoSymbol, false);
55 check(outputExpr, mapping, inputExpr, false); 56 check(outputExpr, mapping, inputExpr, false);
56 }); 57 });
57 58
58 test('build + parse, repeated entries', () { 59 test('build + parse, repeated entries', () {
59 var map = (new SourceMapBuilder() 60 var map = (new SourceMapBuilder()
60 ..addSpan(inputVar1, outputVar1) 61 ..addSpan(inputVar1, outputVar1)
61 ..addSpan(inputVar1, outputVar1) 62 ..addSpan(inputVar1, outputVar1)
62 ..addSpan(inputFunction, outputFunction) 63 ..addSpan(inputFunction, outputFunction)
63 ..addSpan(inputFunction, outputFunction) 64 ..addSpan(inputFunction, outputFunction)
64 ..addSpan(inputVar2, outputVar2) 65 ..addSpan(inputVar2, outputVar2)
65 ..addSpan(inputVar2, outputVar2) 66 ..addSpan(inputVar2, outputVar2)
66 ..addSpan(inputExpr, outputExpr) 67 ..addSpan(inputExpr, outputExpr)
67 ..addSpan(inputExpr, outputExpr)) 68 ..addSpan(inputExpr, outputExpr))
68 .build(output.url); 69 .build(output.url.toString());
69 var mapping = parseJson(map); 70 var mapping = parseJson(map);
70 check(outputVar1, mapping, inputVar1, false); 71 check(outputVar1, mapping, inputVar1, false);
71 check(outputVar2, mapping, inputVar2, false); 72 check(outputVar2, mapping, inputVar2, false);
72 check(outputFunction, mapping, inputFunction, false); 73 check(outputFunction, mapping, inputFunction, false);
73 check(outputExpr, mapping, inputExpr, false); 74 check(outputExpr, mapping, inputExpr, false);
74 }); 75 });
75 76
76 test('build + parse - no symbols, repeated entries', () { 77 test('build + parse - no symbols, repeated entries', () {
77 var map = (new SourceMapBuilder() 78 var map = (new SourceMapBuilder()
78 ..addSpan(inputVar1NoSymbol, outputVar1NoSymbol) 79 ..addSpan(inputVar1NoSymbol, outputVar1NoSymbol)
79 ..addSpan(inputVar1NoSymbol, outputVar1NoSymbol) 80 ..addSpan(inputVar1NoSymbol, outputVar1NoSymbol)
80 ..addSpan(inputFunctionNoSymbol, outputFunctionNoSymbol) 81 ..addSpan(inputFunctionNoSymbol, outputFunctionNoSymbol)
81 ..addSpan(inputFunctionNoSymbol, outputFunctionNoSymbol) 82 ..addSpan(inputFunctionNoSymbol, outputFunctionNoSymbol)
82 ..addSpan(inputVar2NoSymbol, outputVar2NoSymbol) 83 ..addSpan(inputVar2NoSymbol, outputVar2NoSymbol)
83 ..addSpan(inputVar2NoSymbol, outputVar2NoSymbol) 84 ..addSpan(inputVar2NoSymbol, outputVar2NoSymbol)
84 ..addSpan(inputExpr, outputExpr)) 85 ..addSpan(inputExpr, outputExpr))
85 .build(output.url); 86 .build(output.url.toString());
86 var mapping = parseJson(map); 87 var mapping = parseJson(map);
87 check(outputVar1NoSymbol, mapping, inputVar1NoSymbol, false); 88 check(outputVar1NoSymbol, mapping, inputVar1NoSymbol, false);
88 check(outputVar2NoSymbol, mapping, inputVar2NoSymbol, false); 89 check(outputVar2NoSymbol, mapping, inputVar2NoSymbol, false);
89 check(outputFunctionNoSymbol, mapping, inputFunctionNoSymbol, false); 90 check(outputFunctionNoSymbol, mapping, inputFunctionNoSymbol, false);
90 check(outputExpr, mapping, inputExpr, false); 91 check(outputExpr, mapping, inputExpr, false);
91 }); 92 });
92 93
93 test('build + parse with file', () { 94 test('build + parse with file', () {
94 var json = (new SourceMapBuilder() 95 var json = (new SourceMapBuilder()
95 ..addSpan(inputVar1, outputVar1) 96 ..addSpan(inputVar1, outputVar1)
96 ..addSpan(inputFunction, outputFunction) 97 ..addSpan(inputFunction, outputFunction)
97 ..addSpan(inputVar2, outputVar2) 98 ..addSpan(inputVar2, outputVar2)
98 ..addSpan(inputExpr, outputExpr)) 99 ..addSpan(inputExpr, outputExpr))
99 .toJson(output.url); 100 .toJson(output.url.toString());
100 var mapping = parse(json); 101 var mapping = parse(json);
101 check(outputVar1, mapping, inputVar1, true); 102 check(outputVar1, mapping, inputVar1, true);
102 check(outputVar2, mapping, inputVar2, true); 103 check(outputVar2, mapping, inputVar2, true);
103 check(outputFunction, mapping, inputFunction, true); 104 check(outputFunction, mapping, inputFunction, true);
104 check(outputExpr, mapping, inputExpr, true); 105 check(outputExpr, mapping, inputExpr, true);
105 }); 106 });
106 107
107 test('printer projecting marks + parse', () { 108 test('printer projecting marks + parse', () {
108 var out = INPUT.replaceAll('long', '_s'); 109 var out = INPUT.replaceAll('long', '_s');
109 var file = new SourceFile.text('output2.dart', out); 110 var file = new SourceFile(out, url: 'output2.dart');
110 var printer = new Printer('output2.dart'); 111 var printer = new Printer('output2.dart');
111 printer.mark(ispan(0, 0)); 112 printer.mark(ispan(0, 0));
112 113
113 bool first = true; 114 bool first = true;
114 var segments = INPUT.split('long'); 115 var segments = INPUT.split('long');
115 expect(segments.length, 6); 116 expect(segments.length, 6);
116 printer.add(segments[0], projectMarks: true); 117 printer.add(segments[0], projectMarks: true);
117 printer.mark(inputVar1); 118 printer.mark(inputVar1);
118 printer.add('_s'); 119 printer.add('_s');
119 printer.add(segments[1], projectMarks: true); 120 printer.add(segments[1], projectMarks: true);
120 printer.mark(inputFunction); 121 printer.mark(inputFunction);
121 printer.add('_s'); 122 printer.add('_s');
122 printer.add(segments[2], projectMarks: true); 123 printer.add(segments[2], projectMarks: true);
123 printer.mark(inputVar2); 124 printer.mark(inputVar2);
124 printer.add('_s'); 125 printer.add('_s');
125 printer.add(segments[3], projectMarks: true); 126 printer.add(segments[3], projectMarks: true);
126 printer.mark(inputExpr); 127 printer.mark(inputExpr);
127 printer.add('_s'); 128 printer.add('_s');
128 printer.add(segments[4], projectMarks: true); 129 printer.add(segments[4], projectMarks: true);
129 printer.add('_s'); 130 printer.add('_s');
130 printer.add(segments[5], projectMarks: true); 131 printer.add(segments[5], projectMarks: true);
131 132
132 expect(printer.text, out); 133 expect(printer.text, out);
133 134
134 var mapping = parse(printer.map); 135 var mapping = parse(printer.map);
135 checkHelper(Span inputSpan, int adjustment) { 136 checkHelper(SourceMapSpan inputSpan, int adjustment) {
136 var start = inputSpan.start.offset - adjustment; 137 var start = inputSpan.start.offset - adjustment;
137 var end = (inputSpan.end.offset - adjustment) - 2; 138 var end = (inputSpan.end.offset - adjustment) - 2;
138 var span = new FileSpan(file, start, end, inputSpan.isIdentifier); 139 var span = new SourceMapFileSpan(file.span(start, end),
140 isIdentifier: inputSpan.isIdentifier);
139 check(span, mapping, inputSpan, true); 141 check(span, mapping, inputSpan, true);
140 } 142 }
141 143
142 checkHelper(inputVar1, 0); 144 checkHelper(inputVar1, 0);
143 checkHelper(inputFunction, 2); 145 checkHelper(inputFunction, 2);
144 checkHelper(inputVar2, 4); 146 checkHelper(inputVar2, 4);
145 checkHelper(inputExpr, 6); 147 checkHelper(inputExpr, 6);
146 148
147 // We projected correctly lines that have no mappings 149 // We projected correctly lines that have no mappings
148 check(new FileSpan(file, 66, 66, false), mapping, ispan(45, 45), true); 150 check(file.span(66, 66), mapping, ispan(45, 45), true);
149 check(new FileSpan(file, 63, 64, false), mapping, ispan(45, 45), true); 151 check(file.span(63, 64), mapping, ispan(45, 45), true);
150 check(new FileSpan(file, 68, 68, false), mapping, ispan(70, 70), true); 152 check(file.span(68, 68), mapping, ispan(70, 70), true);
151 check(new FileSpan(file, 71, 71, false), mapping, ispan(70, 70), true); 153 check(file.span(71, 71), mapping, ispan(70, 70), true);
152 154
153 // Start of the last line 155 // Start of the last line
154 var oOffset = out.length - 2; 156 var oOffset = out.length - 2;
155 var iOffset = INPUT.length - 2; 157 var iOffset = INPUT.length - 2;
156 check(new FileSpan(file, oOffset, oOffset, false), mapping, 158 check(file.span(oOffset, oOffset), mapping, ispan(iOffset, iOffset), true);
157 ispan(iOffset, iOffset), true); 159 check(file.span(oOffset + 1, oOffset + 1), mapping,
158 check(new FileSpan(file, oOffset + 1, oOffset + 1, false), mapping,
159 ispan(iOffset, iOffset), true); 160 ispan(iOffset, iOffset), true);
160 }); 161 });
161 } 162 }
OLDNEW
« no previous file with comments | « pkg/source_maps/test/common.dart ('k') | pkg/source_maps/test/parser_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698