| Index: pkg/analysis_server/test/services/search/search_engine2_test.dart
 | 
| diff --git a/pkg/analysis_server/test/services/search/search_engine2_test.dart b/pkg/analysis_server/test/services/search/search_engine2_test.dart
 | 
| deleted file mode 100644
 | 
| index 1ad67ca172f003c6608aaac4ce031f6723f71ef5..0000000000000000000000000000000000000000
 | 
| --- a/pkg/analysis_server/test/services/search/search_engine2_test.dart
 | 
| +++ /dev/null
 | 
| @@ -1,297 +0,0 @@
 | 
| -// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
 | 
| -// for details. All rights reserved. Use of this source code is governed by a
 | 
| -// BSD-style license that can be found in the LICENSE file.
 | 
| -
 | 
| -import 'dart:async';
 | 
| -
 | 
| -import 'package:analysis_server/src/services/search/search_engine.dart';
 | 
| -import 'package:analysis_server/src/services/search/search_engine_internal2.dart';
 | 
| -import 'package:analyzer/dart/element/element.dart';
 | 
| -import 'package:analyzer/file_system/file_system.dart';
 | 
| -import 'package:analyzer/file_system/memory_file_system.dart';
 | 
| -import 'package:analyzer/src/dart/analysis/driver.dart';
 | 
| -import 'package:analyzer/src/dart/analysis/file_state.dart';
 | 
| -import 'package:analyzer/src/generated/engine.dart';
 | 
| -import 'package:analyzer/src/generated/sdk.dart';
 | 
| -import 'package:analyzer/src/generated/source.dart';
 | 
| -import 'package:front_end/src/base/performace_logger.dart';
 | 
| -import 'package:front_end/src/incremental/byte_store.dart';
 | 
| -import 'package:test/test.dart';
 | 
| -import 'package:test_reflective_loader/test_reflective_loader.dart';
 | 
| -
 | 
| -import '../../mock_sdk.dart';
 | 
| -
 | 
| -main() {
 | 
| -  defineReflectiveSuite(() {
 | 
| -    defineReflectiveTests(SearchEngineImpl2Test);
 | 
| -  });
 | 
| -}
 | 
| -
 | 
| -@reflectiveTest
 | 
| -class SearchEngineImpl2Test {
 | 
| -  final MemoryResourceProvider provider = new MemoryResourceProvider();
 | 
| -  DartSdk sdk;
 | 
| -  final ByteStore byteStore = new MemoryByteStore();
 | 
| -  final FileContentOverlay contentOverlay = new FileContentOverlay();
 | 
| -
 | 
| -  final StringBuffer logBuffer = new StringBuffer();
 | 
| -  PerformanceLog logger;
 | 
| -
 | 
| -  AnalysisDriverScheduler scheduler;
 | 
| -
 | 
| -  void setUp() {
 | 
| -    sdk = new MockSdk(resourceProvider: provider);
 | 
| -    logger = new PerformanceLog(logBuffer);
 | 
| -    scheduler = new AnalysisDriverScheduler(logger);
 | 
| -    scheduler.start();
 | 
| -  }
 | 
| -
 | 
| -  test_searchAllSubtypes() async {
 | 
| -    var p = _p('/test.dart');
 | 
| -
 | 
| -    provider.newFile(
 | 
| -        p,
 | 
| -        '''
 | 
| -class T {}
 | 
| -class A extends T {}
 | 
| -class B extends A {}
 | 
| -class C implements B {}
 | 
| -''');
 | 
| -
 | 
| -    var driver = _newDriver();
 | 
| -    driver.addFile(p);
 | 
| -
 | 
| -    var resultA = await driver.getResult(p);
 | 
| -    ClassElement element = resultA.unit.element.types[0];
 | 
| -
 | 
| -    var searchEngine = new SearchEngineImpl2([driver]);
 | 
| -    Set<ClassElement> subtypes = await searchEngine.searchAllSubtypes(element);
 | 
| -    expect(subtypes, hasLength(3));
 | 
| -    expect(subtypes, contains(predicate((ClassElement e) => e.name == 'A')));
 | 
| -    expect(subtypes, contains(predicate((ClassElement e) => e.name == 'B')));
 | 
| -    expect(subtypes, contains(predicate((ClassElement e) => e.name == 'C')));
 | 
| -  }
 | 
| -
 | 
| -  test_searchAllSubtypes_acrossDrivers() async {
 | 
| -    var a = _p('/test/a.dart');
 | 
| -    var b = _p('/test/b.dart');
 | 
| -
 | 
| -    provider.newFile(
 | 
| -        a,
 | 
| -        '''
 | 
| -class T {}
 | 
| -class A extends T {}
 | 
| -''');
 | 
| -    provider.newFile(
 | 
| -        b,
 | 
| -        '''
 | 
| -import 'a.dart';
 | 
| -class B extends A {}
 | 
| -class C extends B {}
 | 
| -''');
 | 
| -
 | 
| -    var driver1 = _newDriver();
 | 
| -    var driver2 = _newDriver();
 | 
| -
 | 
| -    driver1.addFile(a);
 | 
| -    driver2.addFile(b);
 | 
| -
 | 
| -    var resultA = await driver1.getResult(a);
 | 
| -    ClassElement element = resultA.unit.element.types[0];
 | 
| -
 | 
| -    var searchEngine = new SearchEngineImpl2([driver1, driver2]);
 | 
| -    Set<ClassElement> subtypes = await searchEngine.searchAllSubtypes(element);
 | 
| -    expect(subtypes, hasLength(3));
 | 
| -    expect(subtypes, contains(predicate((ClassElement e) => e.name == 'A')));
 | 
| -    expect(subtypes, contains(predicate((ClassElement e) => e.name == 'B')));
 | 
| -    expect(subtypes, contains(predicate((ClassElement e) => e.name == 'C')));
 | 
| -  }
 | 
| -
 | 
| -  test_searchMemberDeclarations() async {
 | 
| -    var a = _p('/test/a.dart');
 | 
| -    var b = _p('/test/b.dart');
 | 
| -
 | 
| -    var codeA = '''
 | 
| -class A {
 | 
| -  int test; // 1
 | 
| -  int testTwo;
 | 
| -}
 | 
| -''';
 | 
| -    var codeB = '''
 | 
| -class B {
 | 
| -  void test() {} // 2
 | 
| -  void testTwo() {}
 | 
| -}
 | 
| -int test;
 | 
| -''';
 | 
| -
 | 
| -    provider.newFile(a, codeA);
 | 
| -    provider.newFile(b, codeB);
 | 
| -
 | 
| -    var driver1 = _newDriver();
 | 
| -    var driver2 = _newDriver();
 | 
| -
 | 
| -    driver1.addFile(a);
 | 
| -    driver2.addFile(b);
 | 
| -
 | 
| -    while (scheduler.isAnalyzing) {
 | 
| -      await new Future.delayed(new Duration(milliseconds: 1));
 | 
| -    }
 | 
| -
 | 
| -    var searchEngine = new SearchEngineImpl2([driver1, driver2]);
 | 
| -    List<SearchMatch> matches =
 | 
| -        await searchEngine.searchMemberDeclarations('test');
 | 
| -    expect(matches, hasLength(2));
 | 
| -
 | 
| -    void assertHasElement(String name, int nameOffset) {
 | 
| -      expect(
 | 
| -          matches,
 | 
| -          contains(predicate((SearchMatch m) =>
 | 
| -              m.kind == MatchKind.DECLARATION &&
 | 
| -              m.element.name == name &&
 | 
| -              m.element.nameOffset == nameOffset)));
 | 
| -    }
 | 
| -
 | 
| -    assertHasElement('test', codeA.indexOf('test; // 1'));
 | 
| -    assertHasElement('test', codeB.indexOf('test() {} // 2'));
 | 
| -  }
 | 
| -
 | 
| -  test_searchMemberReferences() async {
 | 
| -    var a = _p('/test/a.dart');
 | 
| -    var b = _p('/test/b.dart');
 | 
| -
 | 
| -    provider.newFile(
 | 
| -        a,
 | 
| -        '''
 | 
| -class A {
 | 
| -  int test;
 | 
| -}
 | 
| -foo(p) {
 | 
| -  p.test;
 | 
| -}
 | 
| -''');
 | 
| -    provider.newFile(
 | 
| -        b,
 | 
| -        '''
 | 
| -import 'a.dart';
 | 
| -bar(p) {
 | 
| -  p.test = 1;
 | 
| -}
 | 
| -''');
 | 
| -
 | 
| -    var driver1 = _newDriver();
 | 
| -    var driver2 = _newDriver();
 | 
| -
 | 
| -    driver1.addFile(a);
 | 
| -    driver2.addFile(b);
 | 
| -
 | 
| -    var searchEngine = new SearchEngineImpl2([driver1, driver2]);
 | 
| -    List<SearchMatch> matches =
 | 
| -        await searchEngine.searchMemberReferences('test');
 | 
| -    expect(matches, hasLength(2));
 | 
| -    expect(
 | 
| -        matches,
 | 
| -        contains(predicate((SearchMatch m) =>
 | 
| -            m.element.name == 'foo' || m.kind == MatchKind.READ)));
 | 
| -    expect(
 | 
| -        matches,
 | 
| -        contains(predicate((SearchMatch m) =>
 | 
| -            m.element.name == 'bar' || m.kind == MatchKind.WRITE)));
 | 
| -  }
 | 
| -
 | 
| -  test_searchReferences() async {
 | 
| -    var a = _p('/test/a.dart');
 | 
| -    var b = _p('/test/b.dart');
 | 
| -
 | 
| -    provider.newFile(
 | 
| -        a,
 | 
| -        '''
 | 
| -class T {}
 | 
| -T a;
 | 
| -''');
 | 
| -    provider.newFile(
 | 
| -        b,
 | 
| -        '''
 | 
| -import 'a.dart';
 | 
| -T b;
 | 
| -''');
 | 
| -
 | 
| -    var driver1 = _newDriver();
 | 
| -    var driver2 = _newDriver();
 | 
| -
 | 
| -    driver1.addFile(a);
 | 
| -    driver2.addFile(b);
 | 
| -
 | 
| -    var resultA = await driver1.getResult(a);
 | 
| -    ClassElement element = resultA.unit.element.types[0];
 | 
| -
 | 
| -    var searchEngine = new SearchEngineImpl2([driver1, driver2]);
 | 
| -    List<SearchMatch> matches = await searchEngine.searchReferences(element);
 | 
| -    expect(matches, hasLength(2));
 | 
| -    expect(
 | 
| -        matches, contains(predicate((SearchMatch m) => m.element.name == 'a')));
 | 
| -    expect(
 | 
| -        matches, contains(predicate((SearchMatch m) => m.element.name == 'b')));
 | 
| -  }
 | 
| -
 | 
| -  test_searchTopLevelDeclarations() async {
 | 
| -    var a = _p('/test/a.dart');
 | 
| -    var b = _p('/test/b.dart');
 | 
| -
 | 
| -    provider.newFile(
 | 
| -        a,
 | 
| -        '''
 | 
| -class A {}
 | 
| -int a;
 | 
| -''');
 | 
| -    provider.newFile(
 | 
| -        b,
 | 
| -        '''
 | 
| -class B {}
 | 
| -get b => 42;
 | 
| -''');
 | 
| -
 | 
| -    var driver1 = _newDriver();
 | 
| -    var driver2 = _newDriver();
 | 
| -
 | 
| -    driver1.addFile(a);
 | 
| -    driver2.addFile(b);
 | 
| -
 | 
| -    while (scheduler.isAnalyzing) {
 | 
| -      await new Future.delayed(new Duration(milliseconds: 1));
 | 
| -    }
 | 
| -
 | 
| -    var searchEngine = new SearchEngineImpl2([driver1, driver2]);
 | 
| -    List<SearchMatch> matches =
 | 
| -        await searchEngine.searchTopLevelDeclarations('.*');
 | 
| -    expect(
 | 
| -        matches.where((match) => !match.libraryElement.isInSdk), hasLength(4));
 | 
| -
 | 
| -    void assertHasElement(String name) {
 | 
| -      expect(
 | 
| -          matches,
 | 
| -          contains(predicate((SearchMatch m) =>
 | 
| -              m.kind == MatchKind.DECLARATION && m.element.name == name)));
 | 
| -    }
 | 
| -
 | 
| -    assertHasElement('A');
 | 
| -    assertHasElement('a');
 | 
| -    assertHasElement('B');
 | 
| -    assertHasElement('b');
 | 
| -  }
 | 
| -
 | 
| -  AnalysisDriver _newDriver() => new AnalysisDriver(
 | 
| -      scheduler,
 | 
| -      logger,
 | 
| -      provider,
 | 
| -      byteStore,
 | 
| -      contentOverlay,
 | 
| -      null,
 | 
| -      new SourceFactory(
 | 
| -          [new DartUriResolver(sdk), new ResourceUriResolver(provider)],
 | 
| -          null,
 | 
| -          provider),
 | 
| -      new AnalysisOptionsImpl()..strongMode = true);
 | 
| -
 | 
| -  String _p(String path) => provider.convertPath(path);
 | 
| -}
 | 
| 
 |