diff --git a/dwds/test/dart_uri_test.dart b/dwds/test/dart_uri_test.dart index 90f6a265c..fe2d0ac37 100644 --- a/dwds/test/dart_uri_test.dart +++ b/dwds/test/dart_uri_test.dart @@ -14,7 +14,7 @@ import 'package:path/path.dart' as p; import 'package:test/test.dart'; import 'fixtures/logging.dart'; -import 'fixtures/migrated_fakes.dart'; +import 'fixtures/fakes.dart'; class TestStrategy extends FakeStrategy { @override diff --git a/dwds/test/debugger_test.dart b/dwds/test/debugger_test.dart index b5d883c6b..b251eb51a 100644 --- a/dwds/test/debugger_test.dart +++ b/dwds/test/debugger_test.dart @@ -21,7 +21,6 @@ import 'package:webkit_inspection_protocol/webkit_inspection_protocol.dart' import 'fixtures/context.dart'; import 'fixtures/debugger_data.dart'; import 'fixtures/fakes.dart'; -import 'fixtures/migrated_fakes.dart'; final context = TestContext(); AppInspector inspector; @@ -98,7 +97,7 @@ void main() async { skipLists, root, ); - inspector = FakeInspector(); + inspector = FakeInspector(fakeIsolate: simpleIsolate); debugger.updateInspector(inspector); }); diff --git a/dwds/test/fixtures/fakes.dart b/dwds/test/fixtures/fakes.dart index 60fea34cc..324f5b91f 100644 --- a/dwds/test/fixtures/fakes.dart +++ b/dwds/test/fixtures/fakes.dart @@ -2,21 +2,23 @@ // 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. -// @dart = 2.9 - import 'dart:async'; +import 'package:dwds/asset_reader.dart'; +import 'package:dwds/expression_compiler.dart'; import 'package:dwds/src/debugging/classes.dart'; import 'package:dwds/src/debugging/execution_context.dart'; import 'package:dwds/src/debugging/inspector.dart'; import 'package:dwds/src/debugging/instance.dart'; import 'package:dwds/src/debugging/libraries.dart'; +import 'package:dwds/src/debugging/metadata/provider.dart'; import 'package:dwds/src/debugging/modules.dart'; import 'package:dwds/src/debugging/remote_debugger.dart'; import 'package:dwds/src/debugging/webkit_debugger.dart'; import 'package:dwds/src/handlers/socket_connections.dart'; import 'package:dwds/src/loaders/require.dart'; import 'package:dwds/src/loaders/strategy.dart'; +import 'package:shelf/shelf.dart' as shelf; import 'package:vm_service/vm_service.dart'; /// A library of fake/stub implementations of our classes and their supporting @@ -44,12 +46,10 @@ Isolate get simpleIsolate => Isolate( ); class FakeInspector implements AppInspector { - FakeInspector({this.fakeIsolate}); + FakeInspector({required this.fakeIsolate}); Isolate fakeIsolate; - final _instanceHelper = InstanceHelper(null, null); - @override Object noSuchMethod(Invocation invocation) { throw UnsupportedError('This is a fake'); @@ -57,31 +57,37 @@ class FakeInspector implements AppInspector { @override Future initialize(LibraryHelper libraryHelper, ClassHelper classHelper, - InstanceHelper instanceHelper) => - null; + InstanceHelper instanceHelper) async => + {}; @override - Future instanceRefFor(Object value) => - _instanceHelper.instanceRefFor(value); + Future instanceRefFor(Object value) async => + InstanceHelper.kNullInstanceRef; @override - Future getObject(String objectId, {int offset, int count}) => null; + Future getObject(String objectId, {int? offset, int? count}) async => + Obj.parse({})!; @override - Future getScripts() => null; + Future getScripts() async => ScriptList(scripts: []); @override - Future scriptRefFor(String uri) => - Future.value(ScriptRef(id: 'fake', uri: 'fake://uri')); + Future scriptRefFor(String uri) async => + ScriptRef(id: 'fake', uri: 'fake://uri'); @override - ScriptRef scriptWithId(String scriptId) => null; + ScriptRef? scriptWithId(String? scriptId) => null; @override Isolate get isolate => fakeIsolate; @override - IsolateRef get isolateRef => null; + IsolateRef get isolateRef => IsolateRef( + id: fakeIsolate.id, + number: fakeIsolate.number, + name: fakeIsolate.name, + isSystemIsolate: fakeIsolate.isSystemIsolate, + ); } class FakeSseConnection implements SseSocketConnection { @@ -130,105 +136,108 @@ class FakeModules implements Modules { } class FakeWebkitDebugger implements WebkitDebugger { - final Map _scripts; + final Map? _scripts; @override - Future disable() => null; + Future disable() async => null; @override - Future enable() => null; + Future enable() async => null; - FakeWebkitDebugger({Map scripts}) : _scripts = scripts { + FakeWebkitDebugger({Map? scripts}) : _scripts = scripts { globalLoadStrategy = RequireStrategy( - ReloadConfiguration.none, - (_) async => {}, - (_) async => {}, - (_, __) async => null, - (_, __) async => null, - (_, __) async => null, - null, - (_) async => null, - null); + ReloadConfiguration.none, + (_) async => {}, + (_) async => {}, + (_, __) async => null, + (MetadataProvider _, String __) async => '', + (MetadataProvider _, String __) async => '', + (String _) => '', + (MetadataProvider _) async => {}, + FakeAssetReader(), + ); } @override Stream eventStream(String method, WipEventTransformer transformer) => - null; + Stream.empty(); @override - Future getScriptSource(String scriptId) => null; + Future getScriptSource(String scriptId) async => ''; - Stream get onClosed => null; + Stream? get onClosed => null; @override - Stream get onGlobalObjectCleared => null; + Stream get onGlobalObjectCleared => Stream.empty(); @override - Stream onPaused; + late Stream onPaused; @override - Stream get onResumed => null; + Stream get onResumed => Stream.empty(); @override - Stream get onScriptParsed => null; + Stream get onScriptParsed => Stream.empty(); @override - Stream get onTargetCrashed => null; + Stream get onTargetCrashed => Stream.empty(); @override - Future pause() => null; + Future pause() async => WipResponse({}); @override - Future resume() => null; + Future resume() async => WipResponse({}); @override - Map get scripts => _scripts; + Map get scripts => _scripts!; List results = variables1; int resultsReturned = 0; @override - Future sendCommand( - String method, { - Map params, - }) async { + Future sendCommand(String command, + {Map? params}) async { // Force the results that we expect for looking up the variables. - if (method == 'Runtime.getProperties') { + if (command == 'Runtime.getProperties') { return results[resultsReturned++]; } - return null; + return WipResponse({}); } @override - Future setPauseOnExceptions(PauseState state) => null; + Future setPauseOnExceptions(PauseState state) async => + WipResponse({}); @override - Future removeBreakpoint(String breakpointId) => null; + Future removeBreakpoint(String breakpointId) async => + WipResponse({}); @override - Future stepInto({Map params}) => null; + Future stepInto({Map? params}) async => + WipResponse({}); @override - Future stepOut() => null; + Future stepOut() async => WipResponse({}); @override - Future stepOver({Map params}) => null; + Future stepOver({Map? params}) async => + WipResponse({}); @override - Stream get onConsoleAPICalled => null; + Stream get onConsoleAPICalled => Stream.empty(); @override - Stream get onExceptionThrown => null; + Stream get onExceptionThrown => Stream.empty(); @override void close() {} @override - Stream get onClose => null; + Stream get onClose => Stream.empty(); @override Future evaluate(String expression, - {bool returnByValue, int contextId}) => - null; + {bool? returnByValue, int? contextId}) async => + RemoteObject({}); @override Future evaluateOnCallFrame( @@ -237,14 +246,15 @@ class FakeWebkitDebugger implements WebkitDebugger { } @override - Future> getPossibleBreakpoints(WipLocation start) => - null; + Future> getPossibleBreakpoints( + WipLocation start) async => + []; @override - Future enablePage() => null; + Future enablePage() async => WipResponse({}); @override - Future pageReload() => null; + Future pageReload() async => WipResponse({}); } /// Fake execution context that is needed for id only @@ -256,3 +266,102 @@ class FakeExecutionContext extends ExecutionContext { FakeExecutionContext(); } + +class FakeStrategy implements LoadStrategy { + @override + Future bootstrapFor(String entrypoint) async => 'dummy_bootstrap'; + + @override + shelf.Handler get handler => + (request) => (request.url.path == 'someDummyPath') + ? shelf.Response.ok('some dummy response') + : shelf.Response.notFound('someDummyPath'); + + @override + String get id => 'dummy-id'; + + @override + String get moduleFormat => 'dummy-format'; + + @override + String get loadLibrariesModule => ''; + + @override + String get loadLibrariesSnippet => ''; + + @override + String loadLibrarySnippet(String libraryUri) => ''; + + @override + String get loadModuleSnippet => ''; + + @override + ReloadConfiguration get reloadConfiguration => ReloadConfiguration.none; + + @override + String loadClientSnippet(String clientScript) => 'dummy-load-client-snippet'; + + @override + Future moduleForServerPath( + String entrypoint, String serverPath) async => + ''; + + @override + Future serverPathForModule(String entrypoint, String module) async => + ''; + + @override + Future sourceMapPathForModule( + String entrypoint, String module) async => + ''; + + @override + String serverPathForAppUri(String appUri) => ''; + + @override + MetadataProvider metadataProviderFor(String entrypoint) => + MetadataProvider(entrypoint, FakeAssetReader()); + + @override + void trackEntrypoint(String entrypoint) {} + + @override + Future> moduleInfoForEntrypoint(String entrypoint) => + throw UnimplementedError(); +} + +class FakeAssetReader implements AssetReader { + final String? _metadata; + final String? _dartSource; + final String? _sourceMap; + FakeAssetReader({ + metadata, + dartSource, + sourceMap, + }) : _metadata = metadata, + _dartSource = dartSource, + _sourceMap = sourceMap; + + @override + Future dartSourceContents(String serverPath) { + return _throwUnimplementedOrReturnContents(_dartSource); + } + + @override + Future metadataContents(String serverPath) { + return _throwUnimplementedOrReturnContents(_metadata); + } + + @override + Future sourceMapContents(String serverPath) { + return _throwUnimplementedOrReturnContents(_sourceMap); + } + + @override + Future close() async {} + + Future _throwUnimplementedOrReturnContents(String? contents) async { + if (contents == null) throw UnimplementedError(); + return contents; + } +} diff --git a/dwds/test/fixtures/migrated_fakes.dart b/dwds/test/fixtures/migrated_fakes.dart deleted file mode 100644 index 19eb5140c..000000000 --- a/dwds/test/fixtures/migrated_fakes.dart +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright (c) 2022, 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:dwds/expression_compiler.dart'; -import 'package:dwds/src/debugging/metadata/provider.dart'; -import 'package:dwds/src/loaders/strategy.dart'; -import 'package:shelf/shelf.dart' as shelf; -import 'package:dwds/asset_reader.dart'; - -class FakeStrategy implements LoadStrategy { - @override - Future bootstrapFor(String entrypoint) async => 'dummy_bootstrap'; - - @override - shelf.Handler get handler => - (request) => (request.url.path == 'someDummyPath') - ? shelf.Response.ok('some dummy response') - : shelf.Response.notFound('someDummyPath'); - - @override - String get id => 'dummy-id'; - - @override - String get moduleFormat => 'dummy-format'; - - @override - String get loadLibrariesModule => ''; - - @override - String get loadLibrariesSnippet => ''; - - @override - String loadLibrarySnippet(String libraryUri) => ''; - - @override - String get loadModuleSnippet => ''; - - @override - ReloadConfiguration get reloadConfiguration => ReloadConfiguration.none; - - @override - String loadClientSnippet(String clientScript) => 'dummy-load-client-snippet'; - - @override - Future moduleForServerPath(String entrypoint, String serverPath) => - Future.value(''); - - @override - Future serverPathForModule(String entrypoint, String module) => - Future.value(''); - - @override - Future sourceMapPathForModule(String entrypoint, String module) => - Future.value(''); - - @override - String serverPathForAppUri(String appUri) => ''; - - @override - MetadataProvider metadataProviderFor(String entrypoint) => - MetadataProvider(entrypoint, FakeAssetReader()); - - @override - void trackEntrypoint(String entrypoint) {} - - @override - Future> moduleInfoForEntrypoint(String entrypoint) => - throw UnimplementedError(); -} - -class FakeAssetReader implements AssetReader { - final String? _metadata; - final String? _dartSource; - final String? _sourceMap; - FakeAssetReader({ - metadata, - dartSource, - sourceMap, - }) : _metadata = metadata, - _dartSource = dartSource, - _sourceMap = sourceMap; - - @override - Future dartSourceContents(String serverPath) { - return _throwUnimplementedOrReturnContents(_dartSource); - } - - @override - Future metadataContents(String serverPath) { - return _throwUnimplementedOrReturnContents(_metadata); - } - - @override - Future sourceMapContents(String serverPath) { - return _throwUnimplementedOrReturnContents(_sourceMap); - } - - @override - Future close() async {} - - Future _throwUnimplementedOrReturnContents(String? contents) { - if (contents == null) throw UnimplementedError(); - return Future.value(contents); - } -} diff --git a/dwds/test/handlers/injector_test.dart b/dwds/test/handlers/injector_test.dart index e39cf792a..bded69ad7 100644 --- a/dwds/test/handlers/injector_test.dart +++ b/dwds/test/handlers/injector_test.dart @@ -13,7 +13,7 @@ import 'package:shelf/shelf.dart'; import 'package:shelf/shelf_io.dart' as shelf_io; import 'package:test/test.dart'; -import '../fixtures/migrated_fakes.dart'; +import '../fixtures/fakes.dart'; void main() { HttpServer server; diff --git a/dwds/test/location_test.dart b/dwds/test/location_test.dart index 194dd7e61..721746d0b 100644 --- a/dwds/test/location_test.dart +++ b/dwds/test/location_test.dart @@ -13,7 +13,7 @@ import 'package:dwds/src/utilities/dart_uri.dart'; import 'package:shelf/shelf.dart' as shelf; import 'package:test/test.dart'; -import 'fixtures/migrated_fakes.dart'; +import 'fixtures/fakes.dart'; final sourceMapContents = '{"version":3,"sourceRoot":"","sources":["main.dart"],"names":[],' diff --git a/dwds/test/metadata_test.dart b/dwds/test/metadata_test.dart index 499a6ed62..aa4b10c09 100644 --- a/dwds/test/metadata_test.dart +++ b/dwds/test/metadata_test.dart @@ -6,7 +6,7 @@ import 'package:dwds/src/debugging/metadata/module_metadata.dart'; import 'package:dwds/src/debugging/metadata/provider.dart'; import 'package:test/test.dart'; -import 'fixtures/migrated_fakes.dart'; +import 'fixtures/fakes.dart'; const _emptySourceMetadata = '{"version":"1.0.0","name":"web/main","closureName":"load__web__main",' diff --git a/dwds/test/skip_list_test.dart b/dwds/test/skip_list_test.dart index 66ce9aa60..06c6b2717 100644 --- a/dwds/test/skip_list_test.dart +++ b/dwds/test/skip_list_test.dart @@ -9,7 +9,7 @@ import 'package:dwds/src/utilities/dart_uri.dart'; import 'package:source_maps/parser.dart'; import 'package:test/test.dart'; -import 'fixtures/migrated_fakes.dart'; +import 'fixtures/fakes.dart'; class TestStrategy extends FakeStrategy { @override