Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, 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 import 'dart:async'; | 5 import 'dart:async'; |
| 6 import 'dart:io' as io; | 6 import 'dart:io' as io; |
| 7 | 7 |
| 8 import 'package:analysis_server/src/plugin/notification_manager.dart'; | 8 import 'package:analysis_server/src/plugin/notification_manager.dart'; |
| 9 import 'package:analysis_server/src/plugin/plugin_manager.dart'; | 9 import 'package:analysis_server/src/plugin/plugin_manager.dart'; |
| 10 import 'package:analyzer/context/context_root.dart'; | 10 import 'package:analyzer/context/context_root.dart'; |
| (...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 387 expect(responses, hasLength(0)); | 387 expect(responses, hasLength(0)); |
| 388 } | 388 } |
| 389 | 389 |
| 390 void test_creation() { | 390 void test_creation() { |
| 391 expect(manager.resourceProvider, resourceProvider); | 391 expect(manager.resourceProvider, resourceProvider); |
| 392 expect(manager.byteStorePath, byteStorePath); | 392 expect(manager.byteStorePath, byteStorePath); |
| 393 expect(manager.sdkPath, sdkPath); | 393 expect(manager.sdkPath, sdkPath); |
| 394 expect(manager.notificationManager, notificationManager); | 394 expect(manager.notificationManager, notificationManager); |
| 395 } | 395 } |
| 396 | 396 |
| 397 void test_pathsFor_withPackagesFile() { | |
| 398 path.Context context = resourceProvider.pathContext; | |
| 399 // | |
| 400 // Build the minimal directory structure for a plugin package that includes | |
| 401 // a .packages file. | |
| 402 // | |
| 403 String pluginDirPath = resourceProvider.convertPath('/plugin'); | |
| 404 resourceProvider.newFolder(pluginDirPath); | |
| 405 String binPath = context.join(pluginDirPath, 'bin'); | |
| 406 resourceProvider.newFolder(binPath); | |
| 407 String pluginFilePath = context.join(binPath, 'plugin.dart'); | |
| 408 resourceProvider.newFile(pluginFilePath, ''); | |
|
scheglov
2017/07/24 15:35:34
MemoryResourceProvider.newFile() creates all enclo
Brian Wilkerson
2017/07/24 15:57:42
Done
| |
| 409 String packagesFilePath = context.join(pluginDirPath, '.packages'); | |
| 410 resourceProvider.newFile(packagesFilePath, ''); | |
| 411 // | |
| 412 // Test path computation. | |
| 413 // | |
| 414 List<String> paths = manager.pathsFor(pluginDirPath); | |
| 415 expect(paths, hasLength(2)); | |
| 416 expect(paths[0], pluginFilePath); | |
| 417 expect(paths[1], packagesFilePath); | |
| 418 } | |
| 419 | |
| 420 void test_pathsFor_withPubspec_inBazelWorkspace() { | |
| 421 path.Context context = resourceProvider.pathContext; | |
| 422 // | |
| 423 // Build a Bazel workspace containing four packages, including the plugin. | |
| 424 // | |
| 425 String rootPath = resourceProvider.convertPath('/workspaceRoot'); | |
| 426 resourceProvider.newFolder(rootPath); | |
| 427 resourceProvider.newFile(context.join(rootPath, 'WORKSPACE'), ''); | |
| 428 resourceProvider.newFolder(context.join(rootPath, 'bazel-bin')); | |
| 429 resourceProvider.newFolder(context.join(rootPath, 'bazel-genfiles')); | |
| 430 | |
| 431 String newPackage(String packageName, [List<String> dependencies]) { | |
| 432 String packageRoot = | |
| 433 context.join(rootPath, 'third_party', 'dart', packageName); | |
| 434 resourceProvider.newFile( | |
| 435 context.join(packageRoot, 'lib', packageName + '.dart'), ''); | |
| 436 StringBuffer buffer = new StringBuffer(); | |
| 437 if (dependencies != null) { | |
| 438 buffer.writeln('dependencies:'); | |
| 439 for (String dependency in dependencies) { | |
| 440 buffer.writeln(' $dependency: any'); | |
| 441 } | |
| 442 } | |
| 443 resourceProvider.newFile( | |
| 444 context.join(packageRoot, 'pubspec.yaml'), buffer.toString()); | |
| 445 return packageRoot; | |
| 446 } | |
| 447 | |
| 448 String pluginDirPath = newPackage('plugin', ['b', 'c']); | |
| 449 newPackage('b', ['d']); | |
| 450 newPackage('c', ['d']); | |
| 451 newPackage('d'); | |
| 452 String binPath = context.join(pluginDirPath, 'bin'); | |
| 453 resourceProvider.newFolder(binPath); | |
| 454 String pluginFilePath = context.join(binPath, 'plugin.dart'); | |
| 455 resourceProvider.newFile(pluginFilePath, ''); | |
| 456 // | |
| 457 // Test path computation. | |
| 458 // | |
| 459 List<String> paths = manager.pathsFor(pluginDirPath); | |
| 460 expect(paths, hasLength(2)); | |
| 461 expect(paths[0], pluginFilePath); | |
| 462 File packagesFile = resourceProvider.getFile(paths[1]); | |
| 463 expect(packagesFile.exists, isTrue); | |
| 464 String content = packagesFile.readAsStringSync(); | |
| 465 List<String> lines = content.split('\n'); | |
| 466 expect( | |
| 467 lines, | |
| 468 unorderedEquals([ | |
| 469 'plugin:file:///workspaceRoot/third_party/dart/plugin/lib', | |
| 470 'b:file:///workspaceRoot/third_party/dart/b/lib', | |
| 471 'c:file:///workspaceRoot/third_party/dart/c/lib', | |
| 472 'd:file:///workspaceRoot/third_party/dart/d/lib', | |
| 473 '' | |
| 474 ])); | |
| 475 } | |
| 476 | |
| 397 void test_pluginsForContextRoot_none() { | 477 void test_pluginsForContextRoot_none() { |
| 398 ContextRoot contextRoot = new ContextRoot('/pkg1', []); | 478 ContextRoot contextRoot = new ContextRoot('/pkg1', []); |
| 399 expect(manager.pluginsForContextRoot(contextRoot), isEmpty); | 479 expect(manager.pluginsForContextRoot(contextRoot), isEmpty); |
| 400 } | 480 } |
| 401 | 481 |
| 402 void test_stopAll_none() { | 482 void test_stopAll_none() { |
| 403 manager.stopAll(); | 483 manager.stopAll(); |
| 404 } | 484 } |
| 405 } | 485 } |
| 406 | 486 |
| (...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 797 } | 877 } |
| 798 | 878 |
| 799 @override | 879 @override |
| 800 void sendRequest(Request request) { | 880 void sendRequest(Request request) { |
| 801 sentRequests.add(request); | 881 sentRequests.add(request); |
| 802 if (request.method == 'plugin.shutdown') { | 882 if (request.method == 'plugin.shutdown') { |
| 803 session.handleOnDone(); | 883 session.handleOnDone(); |
| 804 } | 884 } |
| 805 } | 885 } |
| 806 } | 886 } |
| OLD | NEW |