| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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.domain.analysis; | 5 library test.domain.analysis; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 | 8 |
| 9 import 'package:analysis_server/plugin/protocol/protocol.dart'; | 9 import 'package:analysis_server/plugin/protocol/protocol.dart'; |
| 10 import 'package:analysis_server/src/analysis_server.dart'; | 10 import 'package:analysis_server/src/analysis_server.dart'; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 34 MemoryResourceProvider resourceProvider; | 34 MemoryResourceProvider resourceProvider; |
| 35 AnalysisServer server; | 35 AnalysisServer server; |
| 36 AnalysisDomainHandler handler; | 36 AnalysisDomainHandler handler; |
| 37 | 37 |
| 38 setUp(() { | 38 setUp(() { |
| 39 serverChannel = new MockServerChannel(); | 39 serverChannel = new MockServerChannel(); |
| 40 resourceProvider = new MemoryResourceProvider(); | 40 resourceProvider = new MemoryResourceProvider(); |
| 41 ExtensionManager manager = new ExtensionManager(); | 41 ExtensionManager manager = new ExtensionManager(); |
| 42 ServerPlugin serverPlugin = new ServerPlugin(); | 42 ServerPlugin serverPlugin = new ServerPlugin(); |
| 43 manager.processPlugins([serverPlugin]); | 43 manager.processPlugins([serverPlugin]); |
| 44 MockSdk sdk = new MockSdk(resourceProvider: resourceProvider); |
| 44 server = new AnalysisServer( | 45 server = new AnalysisServer( |
| 45 serverChannel, | 46 serverChannel, |
| 46 resourceProvider, | 47 resourceProvider, |
| 47 new MockPackageMapProvider(), | 48 new MockPackageMapProvider(), |
| 48 null, | 49 null, |
| 49 serverPlugin, | 50 serverPlugin, |
| 50 new AnalysisServerOptions(), | 51 new AnalysisServerOptions(), |
| 51 new DartSdkManager('', false, (_) => new MockSdk()), | 52 new DartSdkManager('/', false, (_) => sdk), |
| 52 InstrumentationService.NULL_SERVICE); | 53 InstrumentationService.NULL_SERVICE); |
| 53 handler = new AnalysisDomainHandler(server); | 54 handler = new AnalysisDomainHandler(server); |
| 54 }); | 55 }); |
| 55 | 56 |
| 56 group('updateContent', testUpdateContent); | 57 group('updateContent', testUpdateContent); |
| 57 | 58 |
| 58 group('AnalysisDomainHandler', () { | 59 group('AnalysisDomainHandler', () { |
| 59 group('getReachableSources', () { | 60 group('getReachableSources', () { |
| 60 test('valid sources', () async { | 61 test('valid sources', () async { |
| 61 String fileA = '/project/a.dart'; | 62 String fileA = '/project/a.dart'; |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 243 }); | 244 }); |
| 244 } | 245 } |
| 245 | 246 |
| 246 testUpdateContent() { | 247 testUpdateContent() { |
| 247 test('bad type', () { | 248 test('bad type', () { |
| 248 AnalysisTestHelper helper = new AnalysisTestHelper(); | 249 AnalysisTestHelper helper = new AnalysisTestHelper(); |
| 249 helper.createSingleFileProject('// empty'); | 250 helper.createSingleFileProject('// empty'); |
| 250 return helper.onAnalysisComplete.then((_) { | 251 return helper.onAnalysisComplete.then((_) { |
| 251 Request request = new Request('0', ANALYSIS_UPDATE_CONTENT, { | 252 Request request = new Request('0', ANALYSIS_UPDATE_CONTENT, { |
| 252 'files': { | 253 'files': { |
| 253 helper.testFile: {TYPE: 'foo',} | 254 helper.testFile: { |
| 255 TYPE: 'foo', |
| 256 } |
| 254 } | 257 } |
| 255 }); | 258 }); |
| 256 Response response = helper.handler.handleRequest(request); | 259 Response response = helper.handler.handleRequest(request); |
| 257 expect(response, isResponseFailure('0')); | 260 expect(response, isResponseFailure('0')); |
| 258 }); | 261 }); |
| 259 }); | 262 }); |
| 260 | 263 |
| 261 test('full content', () { | 264 test('full content', () { |
| 262 AnalysisTestHelper helper = new AnalysisTestHelper(); | 265 AnalysisTestHelper helper = new AnalysisTestHelper(); |
| 263 helper.createSingleFileProject('// empty'); | 266 helper.createSingleFileProject('// empty'); |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 418 | 421 |
| 419 test_setRoots_packages() { | 422 test_setRoots_packages() { |
| 420 // prepare package | 423 // prepare package |
| 421 String pkgFile = '/packages/pkgA/libA.dart'; | 424 String pkgFile = '/packages/pkgA/libA.dart'; |
| 422 resourceProvider.newFile( | 425 resourceProvider.newFile( |
| 423 pkgFile, | 426 pkgFile, |
| 424 ''' | 427 ''' |
| 425 library lib_a; | 428 library lib_a; |
| 426 class A {} | 429 class A {} |
| 427 '''); | 430 '''); |
| 428 packageMapProvider.packageMap['pkgA'] = [ | 431 resourceProvider.newFile( |
| 429 resourceProvider.getResource('/packages/pkgA') | 432 '/project/.packages', 'pkgA:file:///packages/pkgA'); |
| 430 ]; | |
| 431 addTestFile(''' | 433 addTestFile(''' |
| 432 import 'package:pkgA/libA.dart'; | 434 import 'package:pkgA/libA.dart'; |
| 433 main(A a) { | 435 main(A a) { |
| 434 } | 436 } |
| 435 '''); | 437 '''); |
| 436 // create project and wait for analysis | 438 // create project and wait for analysis |
| 437 createProject(); | 439 createProject(); |
| 438 return waitForTasksFinished().then((_) { | 440 return waitForTasksFinished().then((_) { |
| 439 // if 'package:pkgA/libA.dart' was resolved, then there are no errors | 441 // if 'package:pkgA/libA.dart' was resolved, then there are no errors |
| 440 expect(filesErrors[testFile], isEmpty); | 442 expect(filesErrors[testFile], isEmpty); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 461 | 463 |
| 462 String testFile = '/project/bin/test.dart'; | 464 String testFile = '/project/bin/test.dart'; |
| 463 String testCode; | 465 String testCode; |
| 464 | 466 |
| 465 AnalysisTestHelper() { | 467 AnalysisTestHelper() { |
| 466 serverChannel = new MockServerChannel(); | 468 serverChannel = new MockServerChannel(); |
| 467 resourceProvider = new MemoryResourceProvider(); | 469 resourceProvider = new MemoryResourceProvider(); |
| 468 ExtensionManager manager = new ExtensionManager(); | 470 ExtensionManager manager = new ExtensionManager(); |
| 469 ServerPlugin serverPlugin = new ServerPlugin(); | 471 ServerPlugin serverPlugin = new ServerPlugin(); |
| 470 manager.processPlugins([serverPlugin]); | 472 manager.processPlugins([serverPlugin]); |
| 473 MockSdk sdk = new MockSdk(resourceProvider: resourceProvider); |
| 471 server = new AnalysisServer( | 474 server = new AnalysisServer( |
| 472 serverChannel, | 475 serverChannel, |
| 473 resourceProvider, | 476 resourceProvider, |
| 474 new MockPackageMapProvider(), | 477 new MockPackageMapProvider(), |
| 475 null, | 478 null, |
| 476 serverPlugin, | 479 serverPlugin, |
| 477 new AnalysisServerOptions(), | 480 new AnalysisServerOptions(), |
| 478 new DartSdkManager('', false, (_) => new MockSdk()), | 481 new DartSdkManager('/', false, (_) => sdk), |
| 479 InstrumentationService.NULL_SERVICE); | 482 InstrumentationService.NULL_SERVICE); |
| 480 handler = new AnalysisDomainHandler(server); | 483 handler = new AnalysisDomainHandler(server); |
| 481 // listen for notifications | 484 // listen for notifications |
| 482 Stream<Notification> notificationStream = | 485 Stream<Notification> notificationStream = |
| 483 serverChannel.notificationController.stream; | 486 serverChannel.notificationController.stream; |
| 484 notificationStream.listen((Notification notification) { | 487 notificationStream.listen((Notification notification) { |
| 485 if (notification.event == ANALYSIS_ERRORS) { | 488 if (notification.event == ANALYSIS_ERRORS) { |
| 486 var decoded = new AnalysisErrorsParams.fromNotification(notification); | 489 var decoded = new AnalysisErrorsParams.fromNotification(notification); |
| 487 filesErrors[decoded.file] = decoded.errors; | 490 filesErrors[decoded.file] = decoded.errors; |
| 488 } | 491 } |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 697 } | 700 } |
| 698 | 701 |
| 699 test_afterAnalysis_packageFile_external() async { | 702 test_afterAnalysis_packageFile_external() async { |
| 700 String pkgFile = '/packages/pkgA/lib/libA.dart'; | 703 String pkgFile = '/packages/pkgA/lib/libA.dart'; |
| 701 resourceProvider.newFile( | 704 resourceProvider.newFile( |
| 702 pkgFile, | 705 pkgFile, |
| 703 ''' | 706 ''' |
| 704 library lib_a; | 707 library lib_a; |
| 705 class A {} | 708 class A {} |
| 706 '''); | 709 '''); |
| 707 packageMapProvider.packageMap = { | 710 resourceProvider.newFile( |
| 708 'pkgA': [(resourceProvider.newFolder('/packages/pkgA/lib'))] | 711 '/project/.packages', 'pkgA:file:///packages/pkgA/lib'); |
| 709 }; | |
| 710 // | 712 // |
| 711 addTestFile(''' | 713 addTestFile(''' |
| 712 import 'package:pkgA/libA.dart'; | 714 import 'package:pkgA/libA.dart'; |
| 713 main() { | 715 main() { |
| 714 new A(); | 716 new A(); |
| 715 } | 717 } |
| 716 '''); | 718 '''); |
| 717 createProject(); | 719 createProject(); |
| 718 // wait for analysis, no results initially | 720 // wait for analysis, no results initially |
| 719 await waitForTasksFinished(); | 721 await waitForTasksFinished(); |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 767 } | 769 } |
| 768 | 770 |
| 769 test_afterAnalysis_packageFile_notUsed() async { | 771 test_afterAnalysis_packageFile_notUsed() async { |
| 770 String pkgFile = '/packages/pkgA/lib/libA.dart'; | 772 String pkgFile = '/packages/pkgA/lib/libA.dart'; |
| 771 resourceProvider.newFile( | 773 resourceProvider.newFile( |
| 772 pkgFile, | 774 pkgFile, |
| 773 ''' | 775 ''' |
| 774 library lib_a; | 776 library lib_a; |
| 775 class A {} | 777 class A {} |
| 776 '''); | 778 '''); |
| 777 packageMapProvider.packageMap = { | 779 resourceProvider.newFile('/project/.packages', 'pkgA:/packages/pkgA/lib'); |
| 778 'pkgA': [(resourceProvider.newFolder('/packages/pkgA/lib'))] | |
| 779 }; | |
| 780 // | 780 // |
| 781 addTestFile('// no "pkgA" reference'); | 781 addTestFile('// no "pkgA" reference'); |
| 782 createProject(); | 782 createProject(); |
| 783 // wait for analysis, no results initially | 783 // wait for analysis, no results initially |
| 784 await waitForTasksFinished(); | 784 await waitForTasksFinished(); |
| 785 expect(filesHighlights[pkgFile], isNull); | 785 expect(filesHighlights[pkgFile], isNull); |
| 786 // make it a priority file, so make analyzable | 786 // make it a priority file, so make analyzable |
| 787 server.setPriorityFiles('0', [pkgFile]); | 787 server.setPriorityFiles('0', [pkgFile]); |
| 788 // subscribe | 788 // subscribe |
| 789 addAnalysisSubscription(AnalysisService.HIGHLIGHTS, pkgFile); | 789 addAnalysisSubscription(AnalysisService.HIGHLIGHTS, pkgFile); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 809 test_beforeAnalysis() async { | 809 test_beforeAnalysis() async { |
| 810 addTestFile('int V = 42;'); | 810 addTestFile('int V = 42;'); |
| 811 createProject(); | 811 createProject(); |
| 812 // subscribe | 812 // subscribe |
| 813 addAnalysisSubscription(AnalysisService.HIGHLIGHTS, testFile); | 813 addAnalysisSubscription(AnalysisService.HIGHLIGHTS, testFile); |
| 814 // wait for analysis | 814 // wait for analysis |
| 815 await waitForTasksFinished(); | 815 await waitForTasksFinished(); |
| 816 expect(filesHighlights[testFile], isNotEmpty); | 816 expect(filesHighlights[testFile], isNotEmpty); |
| 817 } | 817 } |
| 818 } | 818 } |
| OLD | NEW |