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: pkg/analyzer/test/src/task/html_work_manager_test.dart

Issue 2933753002: Run the sorter to reduce code churn (Closed)
Patch Set: Created 3 years, 6 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
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 analyzer.test.src.task.html_work_manager_test; 5 library analyzer.test.src.task.html_work_manager_test;
6 6
7 import 'package:analyzer/error/error.dart' show AnalysisError; 7 import 'package:analyzer/error/error.dart' show AnalysisError;
8 import 'package:analyzer/exception/exception.dart'; 8 import 'package:analyzer/exception/exception.dart';
9 import 'package:analyzer/src/context/cache.dart'; 9 import 'package:analyzer/src/context/cache.dart';
10 import 'package:analyzer/src/context/context.dart'; 10 import 'package:analyzer/src/context/context.dart';
(...skipping 20 matching lines...) Expand all
31 import '../../generated/test_support.dart'; 31 import '../../generated/test_support.dart';
32 32
33 main() { 33 main() {
34 defineReflectiveSuite(() { 34 defineReflectiveSuite(() {
35 defineReflectiveTests(HtmlWorkManagerTest); 35 defineReflectiveTests(HtmlWorkManagerTest);
36 defineReflectiveTests(HtmlWorkManagerIntegrationTest); 36 defineReflectiveTests(HtmlWorkManagerIntegrationTest);
37 }); 37 });
38 } 38 }
39 39
40 @reflectiveTest 40 @reflectiveTest
41 class HtmlWorkManagerIntegrationTest {
42 InternalAnalysisContext context = new AnalysisContextImpl();
43 HtmlWorkManager manager;
44
45 Source source1 = new TestSource('1.html');
46 Source source2 = new TestSource('2.html');
47 CacheEntry entry1;
48 CacheEntry entry2;
49
50 void expect_sourceQueue(List<Source> sources) {
51 expect(manager.sourceQueue, unorderedEquals(sources));
52 }
53
54 void setUp() {
55 manager = new HtmlWorkManager(context);
56 entry1 = context.getCacheEntry(source1);
57 entry2 = context.getCacheEntry(source2);
58 }
59
60 void
61 test_onResultInvalidated_scheduleInvalidatedLibrariesAfterSetSourceFactory () {
62 // Change the source factory, changing the analysis cache from when
63 // the work manager was constructed. This used to create a failure
64 // case for test_onResultInvalidated_scheduleInvalidLibraries so its
65 // tested here.
66 context.sourceFactory = new _SourceFactoryMock();
67
68 // now just do the same checks as
69 // test_onResultInvalidated_scheduleInvalidLibraries
70
71 // set HTML_ERRORS for source1 and source2
72 entry1.setValue(HTML_ERRORS, [], []);
73 entry2.setValue(HTML_ERRORS, [], []);
74 // invalidate HTML_ERRORS for source1, schedule it
75 entry1.setState(HTML_ERRORS, CacheState.INVALID);
76 expect_sourceQueue([source1]);
77 // invalidate HTML_ERRORS for source2, schedule it
78 entry2.setState(HTML_ERRORS, CacheState.INVALID);
79 expect_sourceQueue([source1, source2]);
80 }
81 }
82
83 @reflectiveTest
41 class HtmlWorkManagerTest { 84 class HtmlWorkManagerTest {
42 InternalAnalysisContext context = new _InternalAnalysisContextMock(); 85 InternalAnalysisContext context = new _InternalAnalysisContextMock();
43 AnalysisCache cache; 86 AnalysisCache cache;
44 HtmlWorkManager manager; 87 HtmlWorkManager manager;
45 88
46 CaughtException caughtException = new CaughtException(null, null); 89 CaughtException caughtException = new CaughtException(null, null);
47 90
48 Source source1 = new TestSource('1.html'); 91 Source source1 = new TestSource('1.html');
49 Source source2 = new TestSource('2.html'); 92 Source source2 = new TestSource('2.html');
50 Source source3 = new TestSource('3.html'); 93 Source source3 = new TestSource('3.html');
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 entry1.setValue(HTML_ERRORS, <AnalysisError>[error1, error2], []); 341 entry1.setValue(HTML_ERRORS, <AnalysisError>[error1, error2], []);
299 // RESOLVED_UNIT is ready, set errors 342 // RESOLVED_UNIT is ready, set errors
300 manager.resultsComputed(source1, {HTML_ERRORS: null}); 343 manager.resultsComputed(source1, {HTML_ERRORS: null});
301 // all of the errors are included 344 // all of the errors are included
302 ChangeNoticeImpl notice = context.getNotice(source1); 345 ChangeNoticeImpl notice = context.getNotice(source1);
303 expect(notice.errors, unorderedEquals([error1, error2])); 346 expect(notice.errors, unorderedEquals([error1, error2]));
304 expect(notice.lineInfo, lineInfo); 347 expect(notice.lineInfo, lineInfo);
305 } 348 }
306 } 349 }
307 350
308 @reflectiveTest
309 class HtmlWorkManagerIntegrationTest {
310 InternalAnalysisContext context = new AnalysisContextImpl();
311 HtmlWorkManager manager;
312
313 Source source1 = new TestSource('1.html');
314 Source source2 = new TestSource('2.html');
315 CacheEntry entry1;
316 CacheEntry entry2;
317
318 void expect_sourceQueue(List<Source> sources) {
319 expect(manager.sourceQueue, unorderedEquals(sources));
320 }
321
322 void setUp() {
323 manager = new HtmlWorkManager(context);
324 entry1 = context.getCacheEntry(source1);
325 entry2 = context.getCacheEntry(source2);
326 }
327
328 void
329 test_onResultInvalidated_scheduleInvalidatedLibrariesAfterSetSourceFactory () {
330 // Change the source factory, changing the analysis cache from when
331 // the work manager was constructed. This used to create a failure
332 // case for test_onResultInvalidated_scheduleInvalidLibraries so its
333 // tested here.
334 context.sourceFactory = new _SourceFactoryMock();
335
336 // now just do the same checks as
337 // test_onResultInvalidated_scheduleInvalidLibraries
338
339 // set HTML_ERRORS for source1 and source2
340 entry1.setValue(HTML_ERRORS, [], []);
341 entry2.setValue(HTML_ERRORS, [], []);
342 // invalidate HTML_ERRORS for source1, schedule it
343 entry1.setState(HTML_ERRORS, CacheState.INVALID);
344 expect_sourceQueue([source1]);
345 // invalidate HTML_ERRORS for source2, schedule it
346 entry2.setState(HTML_ERRORS, CacheState.INVALID);
347 expect_sourceQueue([source1, source2]);
348 }
349 }
350
351 class _SourceFactoryMock extends TypedMock implements SourceFactory {}
352
353 class _InternalAnalysisContextMock extends TypedMock 351 class _InternalAnalysisContextMock extends TypedMock
354 implements InternalAnalysisContext { 352 implements InternalAnalysisContext {
355 @override 353 @override
356 CachePartition privateAnalysisCachePartition; 354 CachePartition privateAnalysisCachePartition;
357 355
358 @override 356 @override
359 AnalysisCache analysisCache; 357 AnalysisCache analysisCache;
360 358
361 // The production version is a stream that carries messages from the cache 359 // The production version is a stream that carries messages from the cache
362 // since the cache changes. Here, we can just pass the inner stream because 360 // since the cache changes. Here, we can just pass the inner stream because
363 // it doesn't change. 361 // it doesn't change.
364 @override
365 get onResultInvalidated => analysisCache.onResultInvalidated;
366
367 Map<Source, ChangeNoticeImpl> _pendingNotices = <Source, ChangeNoticeImpl>{}; 362 Map<Source, ChangeNoticeImpl> _pendingNotices = <Source, ChangeNoticeImpl>{};
368 363
369 _InternalAnalysisContextMock() { 364 _InternalAnalysisContextMock() {
370 privateAnalysisCachePartition = new UniversalCachePartition(this); 365 privateAnalysisCachePartition = new UniversalCachePartition(this);
371 analysisCache = new AnalysisCache([privateAnalysisCachePartition]); 366 analysisCache = new AnalysisCache([privateAnalysisCachePartition]);
372 } 367 }
373 368
374 @override 369 @override
370 get onResultInvalidated => analysisCache.onResultInvalidated;
371
372 @override
375 CacheEntry getCacheEntry(AnalysisTarget target) { 373 CacheEntry getCacheEntry(AnalysisTarget target) {
376 CacheEntry entry = analysisCache.get(target); 374 CacheEntry entry = analysisCache.get(target);
377 if (entry == null) { 375 if (entry == null) {
378 entry = new CacheEntry(target); 376 entry = new CacheEntry(target);
379 analysisCache.put(entry); 377 analysisCache.put(entry);
380 } 378 }
381 return entry; 379 return entry;
382 } 380 }
383 381
384 @override 382 @override
385 AnalysisErrorInfo getErrors(Source source) { 383 AnalysisErrorInfo getErrors(Source source) {
386 String name = source.shortName; 384 String name = source.shortName;
387 List<AnalysisError> errors = AnalysisError.NO_ERRORS; 385 List<AnalysisError> errors = AnalysisError.NO_ERRORS;
388 if (AnalysisEngine.isDartFileName(name) || source is DartScript) { 386 if (AnalysisEngine.isDartFileName(name) || source is DartScript) {
389 errors = getCacheEntry(source).getValue(DART_ERRORS); 387 errors = getCacheEntry(source).getValue(DART_ERRORS);
390 } else if (AnalysisEngine.isHtmlFileName(name)) { 388 } else if (AnalysisEngine.isHtmlFileName(name)) {
391 errors = getCacheEntry(source).getValue(HTML_ERRORS); 389 errors = getCacheEntry(source).getValue(HTML_ERRORS);
392 } 390 }
393 return new AnalysisErrorInfoImpl( 391 return new AnalysisErrorInfoImpl(
394 errors, getCacheEntry(source).getValue(LINE_INFO)); 392 errors, getCacheEntry(source).getValue(LINE_INFO));
395 } 393 }
396 394
397 @override 395 @override
398 ChangeNoticeImpl getNotice(Source source) { 396 ChangeNoticeImpl getNotice(Source source) {
399 return _pendingNotices.putIfAbsent( 397 return _pendingNotices.putIfAbsent(
400 source, () => new ChangeNoticeImpl(source)); 398 source, () => new ChangeNoticeImpl(source));
401 } 399 }
402 } 400 }
401
402 class _SourceFactoryMock extends TypedMock implements SourceFactory {}
OLDNEW
« no previous file with comments | « pkg/analyzer/test/src/summary/package_bundle_reader_test.dart ('k') | pkg/analyzer/test/src/task/strong/checker_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698