@@ -83,10 +83,7 @@ public void simpleAlertCall() throws IOException {
83
83
84
84
Compiler compiler = compileTypedAstShards (options );
85
85
86
- Node expectedRoot = parseExpectedCode ("alert(10);" );
87
- assertNode (compiler .getRoot ().getSecondChild ())
88
- .usingSerializer (compiler ::toSource )
89
- .isEqualTo (expectedRoot );
86
+ assertCompiledCodeEquals (compiler , "alert(10);" );
90
87
}
91
88
92
89
@ Test
@@ -104,10 +101,7 @@ public void alertCallWithCrossLibraryVarReference() throws IOException {
104
101
105
102
Compiler compiler = compileTypedAstShards (options );
106
103
107
- Node expectedRoot = parseExpectedCode ("" , "alert(10);" );
108
- assertNode (compiler .getRoot ().getSecondChild ())
109
- .usingSerializer (compiler ::toSource )
110
- .isEqualTo (expectedRoot );
104
+ assertCompiledCodeEquals (compiler , "" , "alert(10);" );
111
105
}
112
106
113
107
@ Test
@@ -125,12 +119,8 @@ public void disambiguatesGoogScopeAcrossLibraries() throws IOException {
125
119
options .setClosurePass (true );
126
120
127
121
Compiler compiler = compileTypedAstShards (options );
128
- Node expectedRoot =
129
- parseExpectedCode (
130
- "var $jscomp$scope$1954846972$0$x=3;" , "var $jscomp$scope$1954846973$0$x=4" );
131
- assertNode (compiler .getRoot ().getSecondChild ())
132
- .usingSerializer (compiler ::toSource )
133
- .isEqualTo (expectedRoot );
122
+ assertCompiledCodeEquals (
123
+ compiler , "var $jscomp$scope$1954846972$0$x=3;" , "var $jscomp$scope$1954846973$0$x=4" );
134
124
}
135
125
136
126
@ Test
@@ -152,10 +142,7 @@ public void disambiguatesAndDeletesMethodsAcrossLibraries() throws IOException {
152
142
153
143
Compiler compiler = compileTypedAstShards (options );
154
144
155
- Node expectedRoot = parseExpectedCode ("" , "" , "alert('lib1'); alert('lib2')" );
156
- assertNode (compiler .getRoot ().getSecondChild ())
157
- .usingSerializer (compiler ::toSource )
158
- .isEqualTo (expectedRoot );
145
+ assertCompiledCodeEquals (compiler , "" , "" , "alert('lib1'); alert('lib2')" );
159
146
}
160
147
161
148
@ Test
@@ -178,10 +165,7 @@ public void disambiguatesAndDeletesMethodsAcrossLibraries_withTranspilation() th
178
165
179
166
Compiler compiler = compileTypedAstShards (options );
180
167
181
- Node expectedRoot = parseExpectedCode ("" , "" , "alert('lib1'); alert('lib2')" );
182
- assertNode (compiler .getRoot ().getSecondChild ())
183
- .usingSerializer (compiler ::toSource )
184
- .isEqualTo (expectedRoot );
168
+ assertCompiledCodeEquals (compiler , "" , "" , "alert('lib1'); alert('lib2')" );
185
169
}
186
170
187
171
@ Test
@@ -250,10 +234,7 @@ public void disambiguatesAndDeletesMethodsAcrossLibraries_ignoresInvalidationsIn
250
234
251
235
Compiler compiler = compileTypedAstShards (options );
252
236
253
- Node expectedRoot = parseExpectedCode ("" , "" , "alert('lib1'); alert('lib2')" );
254
- assertNode (compiler .getRoot ().getSecondChild ())
255
- .usingSerializer (compiler ::toSource )
256
- .isEqualTo (expectedRoot );
237
+ assertCompiledCodeEquals (compiler , "" , "" , "alert('lib1'); alert('lib2')" );
257
238
}
258
239
259
240
@ Test
@@ -280,17 +261,14 @@ public void exportAnnotationOnPropertyPreventsRenaming() throws IOException {
280
261
281
262
Compiler compiler = compileTypedAstShards (options );
282
263
283
- Node expectedRoot =
284
- parseExpectedCode (
285
- lines (
286
- "class a {" , //
287
- "constructor() { this.foo = 1; }" ,
288
- "}" ,
289
- "alert(new a());" ),
290
- "" );
291
- assertNode (compiler .getRoot ().getSecondChild ())
292
- .usingSerializer (compiler ::toSource )
293
- .isEqualTo (expectedRoot );
264
+ assertCompiledCodeEquals (
265
+ compiler ,
266
+ lines (
267
+ "class a {" , //
268
+ "constructor() { this.foo = 1; }" ,
269
+ "}" ,
270
+ "alert(new a());" ),
271
+ "" );
294
272
}
295
273
296
274
@ Test
@@ -325,14 +303,11 @@ public void exportAnnotationOnProperty_ignoredInUnusedTypedAstShard() throws IOE
325
303
326
304
Compiler compiler = compileTypedAstShards (options );
327
305
328
- Node expectedRoot =
329
- parseExpectedCode (
330
- lines (
331
- "class a {}" , //
332
- "alert(new a());" ));
333
- assertNode (compiler .getRoot ().getSecondChild ())
334
- .usingSerializer (compiler ::toSource )
335
- .isEqualTo (expectedRoot );
306
+ assertCompiledCodeEquals (
307
+ compiler ,
308
+ lines (
309
+ "class a {}" , //
310
+ "alert(new a());" ));
336
311
}
337
312
338
313
@ Test
@@ -364,10 +339,7 @@ public void lateFulfilledGlobalVariableIsRenamed() throws IOException {
364
339
"}" ),
365
340
"var $lib2Var$$ = 10; $lib1$$();"
366
341
};
367
- Node expectedRoot = parseExpectedCode (expected );
368
- assertNode (compiler .getRoot ().getSecondChild ())
369
- .usingSerializer (compiler ::toSource )
370
- .isEqualTo (expectedRoot );
342
+ assertCompiledCodeEquals (compiler , expected );
371
343
}
372
344
373
345
@ Test
@@ -394,11 +366,7 @@ public void lateFulfilledNameReferencedInExternsAndCode_notRenamed() throws IOEx
394
366
395
367
Compiler compiler = compileTypedAstShards (options );
396
368
397
- Node expectedRoot =
398
- parseExpectedCode ("lateDefinedVar;" , "var lateDefinedVar; var $normalVar$$;" );
399
- assertNode (compiler .getRoot ().getSecondChild ())
400
- .usingSerializer (compiler ::toSource )
401
- .isEqualTo (expectedRoot );
369
+ assertCompiledCodeEquals (compiler , "lateDefinedVar;" , "var lateDefinedVar; var $normalVar$$;" );
402
370
}
403
371
404
372
@ Test
@@ -421,10 +389,7 @@ public void externJSDocPropertiesNotRenamed() throws IOException {
421
389
422
390
Compiler compiler = compileTypedAstShards (options );
423
391
424
- Node expectedRoot = parseExpectedCode ("takeCoord({x: 1, y: 2});" );
425
- assertNode (compiler .getRoot ().getSecondChild ())
426
- .usingSerializer (compiler ::toSource )
427
- .isEqualTo (expectedRoot );
392
+ assertCompiledCodeEquals (compiler , "takeCoord({x: 1, y: 2});" );
428
393
}
429
394
430
395
@ Test
@@ -447,10 +412,7 @@ public void gatherExternProperties() throws IOException {
447
412
448
413
Compiler compiler = compileTypedAstShards (options );
449
414
450
- Node expectedRoot = parseExpectedCode ("ns.a = 2; console.log(ns.x);console.log(ns.a);" );
451
- assertNode (compiler .getRoot ().getSecondChild ())
452
- .usingSerializer (compiler ::toSource )
453
- .isEqualTo (expectedRoot );
415
+ assertCompiledCodeEquals (compiler , "ns.a = 2; console.log(ns.x);console.log(ns.a);" );
454
416
}
455
417
456
418
@ Test
@@ -480,10 +442,7 @@ public void protectsHiddenSideEffects() throws IOException {
480
442
481
443
Compiler compiler = compileTypedAstShards (options );
482
444
483
- Node expectedRoot = parseExpectedCode ("foo.bar" );
484
- assertNode (compiler .getRoot ().getSecondChild ())
485
- .usingSerializer (compiler ::toSource )
486
- .isEqualTo (expectedRoot );
445
+ assertCompiledCodeEquals (compiler , "foo.bar" );
487
446
}
488
447
489
448
@ Test
@@ -506,10 +465,7 @@ public void protectsHiddenSideEffects_ignoringProtectSideEffectOption() throws I
506
465
507
466
Compiler compiler = compileTypedAstShards (options );
508
467
509
- Node expectedRoot = parseExpectedCode ("foo.bar" );
510
- assertNode (compiler .getRoot ().getSecondChild ())
511
- .usingSerializer (compiler ::toSource )
512
- .isEqualTo (expectedRoot );
468
+ assertCompiledCodeEquals (compiler , "foo.bar" );
513
469
}
514
470
515
471
@ Test
@@ -523,10 +479,7 @@ public void removesRegExpCallsIfSafe() throws IOException {
523
479
524
480
Compiler compiler = compileTypedAstShards (options );
525
481
526
- Node expectedRoot = parseExpectedCode ("" );
527
- assertNode (compiler .getRoot ().getSecondChild ())
528
- .usingSerializer (compiler ::toSource )
529
- .isEqualTo (expectedRoot );
482
+ assertCompiledCodeEquals (compiler , "" );
530
483
}
531
484
532
485
@ Test
@@ -543,10 +496,7 @@ public void removesRegExpCallsIfUnsafelyReferenced() throws IOException {
543
496
544
497
Compiler compiler = compileTypedAstShards (options );
545
498
546
- Node expectedRoot = parseExpectedCode ("(/abc/gi).exec(''); console.log(RegExp.$1);" );
547
- assertNode (compiler .getRoot ().getSecondChild ())
548
- .usingSerializer (compiler ::toSource )
549
- .isEqualTo (expectedRoot );
499
+ assertCompiledCodeEquals (compiler , "(/abc/gi).exec(''); console.log(RegExp.$1);" );
550
500
}
551
501
552
502
@ Test
@@ -570,10 +520,7 @@ public void runsJ2clOptimizations() throws IOException {
570
520
571
521
Compiler compiler = compileTypedAstShards (options );
572
522
573
- Node expectedRoot = parseExpectedCode ("" );
574
- assertNode (compiler .getRoot ().getSecondChild ())
575
- .usingSerializer (compiler ::toSource )
576
- .isEqualTo (expectedRoot );
523
+ assertCompiledCodeEquals (compiler , "" );
577
524
}
578
525
579
526
@ Test
@@ -590,15 +537,12 @@ public void testAngularPass() throws IOException {
590
537
591
538
Compiler compiler = compileTypedAstShards (options );
592
539
593
- Node expectedRoot =
594
- parseExpectedCode (
595
- lines (
596
- "function f() {} " ,
597
- "function g(a) {} g['$inject']=['a'];" ,
598
- "var b = function f(a, b, c) {}; b['$inject']=['a', 'b', 'c']" ));
599
- assertNode (compiler .getRoot ().getSecondChild ())
600
- .usingSerializer (compiler ::toSource )
601
- .isEqualTo (expectedRoot );
540
+ assertCompiledCodeEquals (
541
+ compiler ,
542
+ lines (
543
+ "function f() {} " ,
544
+ "function g(a) {} g['$inject']=['a'];" ,
545
+ "var b = function f(a, b, c) {}; b['$inject']=['a', 'b', 'c']" ));
602
546
}
603
547
604
548
@ Test
@@ -646,10 +590,7 @@ public void testCrossChunkMethodMotion() throws IOException {
646
590
+ "Foo.prototype.bar=JSCompiler_stubMethod(0); var x=new Foo;" ,
647
591
"Foo.prototype.bar=JSCompiler_unstubMethod(0,function(){}); x.bar()" ,
648
592
};
649
- Node expectedRoot = parseExpectedCode (expected );
650
- assertNode (compiler .getRoot ().getSecondChild ())
651
- .usingSerializer (compiler ::toSource )
652
- .isEqualTo (expectedRoot );
593
+ assertCompiledCodeEquals (compiler , expected );
653
594
}
654
595
655
596
@ Test
@@ -776,9 +717,12 @@ private static InputStream toInputStream(ArrayList<Path> typedAsts) throws IOExc
776
717
return new SequenceInputStream (Collections .enumeration (inputShards ));
777
718
}
778
719
779
- private Node parseExpectedCode (String ... files ) {
780
- // pass empty CompilerOptions; CompilerOptions only matters for CommonJS module parsing
781
- CompilerOptions options = new CompilerOptions ();
782
- return super .parseExpectedCode (files , options );
720
+ private void assertCompiledCodeEquals (Compiler compiler , String ... expected ) {
721
+ // Passing the default CompilerOptions to parse the expected code is OK, since it configures the
722
+ // parser to support all input languages.
723
+ Node expectedRoot = super .parseExpectedCode (expected , new CompilerOptions ());
724
+ assertNode (compiler .getRoot ().getSecondChild ())
725
+ .usingSerializer (compiler ::toSource )
726
+ .isEqualTo (expectedRoot );
783
727
}
784
728
}
0 commit comments