| Index: pkg/analysis_server/test/mocks.dart
|
| diff --git a/pkg/analysis_server/test/mocks.dart b/pkg/analysis_server/test/mocks.dart
|
| index f8f3f9a66b8b30d3cf811d5db64b6f59379a852f..ac90e2403d2962452905255864c295faa8bf5fef 100644
|
| --- a/pkg/analysis_server/test/mocks.dart
|
| +++ b/pkg/analysis_server/test/mocks.dart
|
| @@ -11,10 +11,13 @@ import 'dart:io';
|
| import 'dart:mirrors';
|
|
|
| import 'package:analyzer/src/generated/engine.dart';
|
| +import 'package:analyzer/src/generated/sdk.dart';
|
| +import 'package:analyzer/src/generated/sdk_io.dart';
|
| import 'package:analyzer/src/generated/source.dart';
|
| import 'package:analysis_server/src/analysis_server.dart';
|
| import 'package:analysis_server/src/channel.dart';
|
| import 'package:analysis_server/src/protocol.dart';
|
| +import 'package:analysis_server/src/resource.dart' as resource;
|
| import 'package:matcher/matcher.dart';
|
| import 'package:mock/mock.dart';
|
| import 'package:unittest/unittest.dart';
|
| @@ -294,3 +297,117 @@ class _IsResponseFailure extends Matcher {
|
| return mismatchDescription;
|
| }
|
| }
|
| +
|
| +class MockSdk implements DartSdk {
|
| +
|
| + final resource.MemoryResourceProvider provider = new resource.MemoryResourceProvider();
|
| +
|
| + MockSdk() {
|
| + // TODO(paulberry): Add to this as needed.
|
| + const Map<String, String> pathToSource = const {
|
| + "/lib/core/core.dart": '''
|
| + library dart.core;
|
| + class Object {}
|
| + class Function {}
|
| + class StackTrace {}
|
| + class Symbol {}
|
| + class Type {}
|
| +
|
| + class String extends Object {}
|
| + class bool extends Object {}
|
| + abstract class num extends Object {
|
| + num operator +(num other);
|
| + num operator -(num other);
|
| + num operator *(num other);
|
| + num operator /(num other);
|
| + }
|
| + abstract class int extends num {
|
| + int operator -();
|
| + }
|
| + class double extends num {}
|
| + class DateTime extends Object {}
|
| + class Null extends Object {}
|
| +
|
| + class Deprecated extends Object {
|
| + final String expires;
|
| + const Deprecated(this.expires);
|
| + }
|
| + const Object deprecated = const Deprecated("next release");
|
| +
|
| + abstract class List<E> extends Object {
|
| + void add(E value);
|
| + E operator [](int index);
|
| + void operator []=(int index, E value);
|
| + }
|
| + class Map<K, V> extends Object {}
|
| +
|
| + void print(Object object) {}
|
| + ''',
|
| +
|
| + "/lib/html/dartium/html_dartium.dart": '''
|
| + library dart.html;
|
| + class HtmlElement {}
|
| + ''',
|
| +
|
| + "/lib/math/math.dart": '''
|
| + library dart.math;
|
| + '''
|
| + };
|
| +
|
| + pathToSource.forEach((String path, String source) {
|
| + provider.newFile(path, source);
|
| + });
|
| + }
|
| +
|
| + // Not used
|
| + @override
|
| + AnalysisContext get context => throw unimplemented;
|
| +
|
| + @override
|
| + Source fromEncoding(UriKind kind, Uri uri) {
|
| + // Not used
|
| + throw unimplemented;
|
| + }
|
| +
|
| + UnimplementedError get unimplemented => new UnimplementedError();
|
| +
|
| + @override
|
| + SdkLibrary getSdkLibrary(String dartUri) {
|
| + // getSdkLibrary() is only used to determine whether a library is internal
|
| + // to the SDK. The mock SDK doesn't have any internals, so it's safe to
|
| + // return null.
|
| + return null;
|
| + }
|
| +
|
| + @override
|
| + Source mapDartUri(String dartUri) {
|
| + const Map<String, String> uriToPath = const {
|
| + "dart:core": "/lib/core/core.dart",
|
| + "dart:html": "/lib/html/dartium/html_dartium.dart",
|
| + "dart:math": "/lib/math/math.dart"
|
| + };
|
| +
|
| + String path = uriToPath[dartUri];
|
| + if (path != null) {
|
| + resource.File file = provider.getResource(path);
|
| + return file.createSource(UriKind.DART_URI);
|
| + }
|
| +
|
| + // If we reach here then we tried to use a dartUri that's not in the
|
| + // table above.
|
| + throw unimplemented;
|
| + }
|
| +
|
| + // Not used.
|
| + @override
|
| + List<SdkLibrary> get sdkLibraries => throw unimplemented;
|
| +
|
| + // Not used.
|
| + @override
|
| + String get sdkVersion => throw unimplemented;
|
| +
|
| + // Not used.
|
| + @override
|
| + List<String> get uris => throw unimplemented;
|
| +}
|
| +
|
|
|