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

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

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

Powered by Google App Engine
This is Rietveld 408576698