Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Unified Diff: lib/src/sdk.dart

Issue 2417463002: Move MockSdk into tests. (Closed)
Patch Set: Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/src/analysis.dart ('k') | pubspec.yaml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/src/sdk.dart
diff --git a/lib/src/sdk.dart b/lib/src/sdk.dart
deleted file mode 100644
index 2904637b292376c2aa8f61dfe7fcbb53aecd3a40..0000000000000000000000000000000000000000
--- a/lib/src/sdk.dart
+++ /dev/null
@@ -1,386 +0,0 @@
-// Copyright (c) 2015, 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.
-
-library linter.src.sdk;
-
-import 'package:analyzer/file_system/file_system.dart' as resource;
-import 'package:analyzer/file_system/memory_file_system.dart' as resource;
-import 'package:analyzer/src/context/cache.dart'
- show AnalysisCache, CachePartition;
-import 'package:analyzer/src/context/context.dart' show AnalysisContextImpl;
-import 'package:analyzer/src/generated/engine.dart'
- show AnalysisEngine, ChangeSet;
-import 'package:analyzer/src/generated/sdk.dart' show DartSdk, SdkLibrary;
-import 'package:analyzer/src/generated/source.dart'
- show DartUriResolver, Source, SourceFactory;
-import 'package:analyzer/src/summary/idl.dart';
-
-/// Mock SDK for testing purposes.
-class MockSdk implements DartSdk {
- static const _MockSdkLibrary LIB_CORE = const _MockSdkLibrary(
- 'dart:core',
- '/lib/core/core.dart',
- '''
-library dart.core;
-
-import 'dart:async';
-
-class Object {
- bool operator ==(other) => identical(this, other);
- String toString() => 'a string';
- int get hashCode => 0;
-}
-
-class Function {}
-class StackTrace {}
-class Symbol {}
-class Type {}
-
-abstract class Comparable<T> {
- int compareTo(T other);
-}
-
-abstract class String implements Comparable<String> {
- external factory String.fromCharCodes(Iterable<int> charCodes,
- [int start = 0, int end]);
- bool get isEmpty => false;
- bool get isNotEmpty => false;
- int get length => 0;
- String toUpperCase();
- List<int> get codeUnits;
-}
-
-class bool extends Object {}
-abstract class num implements Comparable<num> {
- bool operator <(num other);
- bool operator <=(num other);
- bool operator >(num other);
- bool operator >=(num other);
- num operator +(num other);
- num operator -(num other);
- num operator *(num other);
- num operator /(num other);
- int toInt();
- num abs();
- int round();
-}
-abstract class int extends num {
- bool get isEven => false;
- int operator -();
- external static int parse(String source,
- { int radix,
- int onError(String source) });
-}
-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");
-
-class Iterator<E> {
- bool moveNext();
- E get current;
-}
-
-abstract class Iterable<E> {
- Iterator<E> get iterator;
- bool get isEmpty;
- bool get isNotEmpty;
-}
-
-abstract class List<E> implements Iterable<E> {
- void add(E value);
- E operator [](int index);
- void operator []=(int index, E value);
- Iterator<E> get iterator => null;
- void clear();
- bool get isEmpty;
- bool get isNotEmpty;
-}
-
-abstract class Map<K, V> extends Object {
- Iterable<K> get keys;
- bool get isEmpty;
- bool get isNotEmpty;
-}
-
-external bool identical(Object a, Object b);
-
-void print(Object object) {}
-
-class _Override {
- const _Override();
-}
-const Object override = const _Override();
-
-
-abstract class RegExp {
- external factory RegExp(String source, {bool multiLine: false,
- bool caseSensitive: true});
-''');
-
- static const _MockSdkLibrary LIB_ASYNC = const _MockSdkLibrary(
- 'dart:async',
- '/lib/async/async.dart',
- '''
-library dart.async;
-
-import 'dart:math';
-
-part 'stream.dart';
-
-class Future<T> {
- factory Future.delayed(Duration duration, [T computation()]) => null;
- factory Future.value([value]) => null;
- static Future wait(List<Future> futures) => null;
-}
-''',
- const <_MockSdkFile>[
- const _MockSdkFile(
- '/lib/async/stream.dart',
- r'''
-part of dart.async;
-class Stream<T> {}
-abstract class StreamTransformer<S, T> {}
-''')
- ]);
-
- static const _MockSdkLibrary LIB_COLLECTION = const _MockSdkLibrary(
- 'dart:collection',
- '/lib/collection/collection.dart',
- '''
-library dart.collection;
-
-abstract class HashMap<K, V> implements Map<K, V> {}
-''');
-
- static const _MockSdkLibrary LIB_CONVERT = const _MockSdkLibrary(
- 'dart:convert',
- '/lib/convert/convert.dart',
- '''
-library dart.convert;
-
-import 'dart:async';
-
-abstract class Converter<S, T> implements StreamTransformer {}
-class JsonDecoder extends Converter<String, Object> {}
-''');
-
- static const _MockSdkLibrary LIB_MATH = const _MockSdkLibrary(
- 'dart:math',
- '/lib/math/math.dart',
- '''
-library dart.math;
-const double E = 2.718281828459045;
-const double PI = 3.1415926535897932;
-const double LN10 = 2.302585092994046;
-num min(num a, num b) => 0;
-num max(num a, num b) => 0;
-external double cos(num x);
-external double sin(num x);
-external double sqrt(num x);
-class Random {
- bool nextBool() => true;
- double nextDouble() => 2.0;
- int nextInt() => 1;
-}
-''');
-
- static const _MockSdkLibrary LIB_HTML = const _MockSdkLibrary(
- 'dart:html',
- '/lib/html/dartium/html_dartium.dart',
- '''
-library dart.html;
-class HtmlElement {}
-''');
-
- static const List<SdkLibrary> LIBRARIES = const [
- LIB_CORE,
- LIB_ASYNC,
- LIB_COLLECTION,
- LIB_CONVERT,
- LIB_MATH,
- LIB_HTML,
- ];
-
- final resource.MemoryResourceProvider provider =
- new resource.MemoryResourceProvider();
-
- /// The [AnalysisContextImpl] which is used for all of the sources.
- AnalysisContextImpl _analysisContext;
-
- MockSdk() {
- LIBRARIES.forEach((SdkLibrary library) {
- if (library is _MockSdkLibrary) {
- provider.newFile(library.path, library.content);
- library.parts.forEach((file) {
- provider.newFile(file.path, file.content);
- });
- }
- });
- }
-
- @override
- AnalysisContextImpl get context {
- if (_analysisContext == null) {
- _analysisContext = new _SdkAnalysisContext(this);
- SourceFactory factory = new SourceFactory([new DartUriResolver(this)]);
- _analysisContext.sourceFactory = factory;
- ChangeSet changeSet = new ChangeSet();
- for (String uri in uris) {
- Source source = factory.forUri(uri);
- changeSet.addedSource(source);
- }
- _analysisContext.applyChanges(changeSet);
- }
- return _analysisContext;
- }
-
- @override
- List<SdkLibrary> get sdkLibraries => LIBRARIES;
-
- @override
- String get sdkVersion => throw unimplemented;
-
- UnimplementedError get unimplemented => new UnimplementedError();
-
- @override
- List<String> get uris {
- List<String> uris = <String>[];
- for (SdkLibrary library in LIBRARIES) {
- uris.add(library.shortName);
- }
- return uris;
- }
-
- @override
- Source fromFileUri(Uri uri) {
- String filePath = uri.path;
- String libPath = '/lib';
- if (!filePath.startsWith("$libPath/")) {
- return null;
- }
- for (SdkLibrary library in LIBRARIES) {
- String libraryPath = library.path;
- if (filePath.replaceAll('\\', '/') == libraryPath) {
- try {
- resource.File file = provider.getResource(uri.path);
- Uri dartUri = Uri.parse(library.shortName);
- return file.createSource(dartUri);
- } catch (exception) {
- return null;
- }
- }
- if (filePath.startsWith("$libraryPath/")) {
- String pathInLibrary = filePath.substring(libraryPath.length + 1);
- String path = '${library.shortName}/$pathInLibrary';
- try {
- resource.File file = provider.getResource(uri.path);
- Uri dartUri = new Uri(scheme: 'dart', path: path);
- return file.createSource(dartUri);
- } catch (exception) {
- return null;
- }
- }
- }
- return null;
- }
-
- @override
- PackageBundle getLinkedBundle() => null;
-
- @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:async": "/lib/async/async.dart",
- "dart:async/stream.dart": "/lib/async/stream.dart",
- "dart:collection": "/lib/collection/collection.dart",
- "dart:convert": "/lib/convert/convert.dart",
- "dart:math": "/lib/math/math.dart"
- };
-
- String path = uriToPath[dartUri];
- if (path != null) {
- resource.File file = provider.getResource(path);
- Uri uri = new Uri(scheme: 'dart', path: dartUri.substring(5));
- return file.createSource(uri);
- }
-
- // If we reach here then we tried to use a dartUri that's not in the
- // table above.
- return null;
- }
-}
-
-class _MockSdkFile {
- final String path;
- final String content;
-
- const _MockSdkFile(this.path, this.content);
-}
-
-class _MockSdkLibrary implements SdkLibrary {
- @override
- final String shortName;
- @override
- final String path;
- final String content;
- final List<_MockSdkFile> parts;
-
- const _MockSdkLibrary(this.shortName, this.path, this.content,
- [this.parts = const <_MockSdkFile>[]]);
-
- @override
- String get category => throw unimplemented;
-
- @override
- bool get isDart2JsLibrary => throw unimplemented;
-
- @override
- bool get isDocumented => throw unimplemented;
-
- @override
- bool get isImplementation => throw unimplemented;
-
- @override
- bool get isInternal => throw unimplemented;
-
- @override
- bool get isShared => throw unimplemented;
-
- @override
- bool get isVmLibrary => throw unimplemented;
-
- UnimplementedError get unimplemented => new UnimplementedError();
-}
-
-/// An [AnalysisContextImpl] that only contains sources for a Dart SDK.
-class _SdkAnalysisContext extends AnalysisContextImpl {
- final DartSdk sdk;
-
- _SdkAnalysisContext(this.sdk);
-
- @override
- AnalysisCache createCacheFromSourceFactory(SourceFactory factory) {
- if (factory == null) {
- return super.createCacheFromSourceFactory(factory);
- }
- return new AnalysisCache(
- <CachePartition>[AnalysisEngine.instance.partitionManager.forSdk(sdk)]);
- }
-}
« no previous file with comments | « lib/src/analysis.dart ('k') | pubspec.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698