Skip to content

Commit 8aadd89

Browse files
authored
Split fakes.dart into null-safe and non null-safe fakes (#1685)
1 parent b697974 commit 8aadd89

File tree

8 files changed

+156
-122
lines changed

8 files changed

+156
-122
lines changed

dwds/test/dart_uri_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ import 'package:dwds/src/utilities/sdk_configuration.dart';
1313
import 'package:path/path.dart' as p;
1414
import 'package:test/test.dart';
1515

16-
import 'fixtures/fakes.dart';
1716
import 'fixtures/logging.dart';
17+
import 'fixtures/migrated_fakes.dart';
1818

1919
class TestStrategy extends FakeStrategy {
2020
@override

dwds/test/debugger_test.dart

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
@TestOn('vm')
88
import 'dart:async';
99

10-
import 'package:dwds/asset_reader.dart';
1110
import 'package:dwds/src/debugging/debugger.dart';
1211
import 'package:dwds/src/debugging/frame_computer.dart';
1312
import 'package:dwds/src/debugging/inspector.dart';
@@ -22,6 +21,7 @@ import 'package:webkit_inspection_protocol/webkit_inspection_protocol.dart'
2221
import 'fixtures/context.dart';
2322
import 'fixtures/debugger_data.dart';
2423
import 'fixtures/fakes.dart';
24+
import 'fixtures/migrated_fakes.dart';
2525

2626
final context = TestContext();
2727
AppInspector inspector;
@@ -41,27 +41,13 @@ class TestStrategy extends FakeStrategy {
4141
'foo/ddc';
4242
}
4343

44-
class FakeAssetReader implements AssetReader {
45-
@override
46-
Future<String> dartSourceContents(String serverPath) =>
47-
throw UnimplementedError();
48-
49-
@override
50-
Future<String> metadataContents(String serverPath) =>
51-
throw UnimplementedError();
52-
53-
@override
54-
Future<String> sourceMapContents(String serverPath) async =>
55-
'{"version":3,"sourceRoot":"","sources":["main.dart"],"names":[],'
56-
'"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUwB,IAAtB,WAAM;AAKJ,'
57-
'IAHF,4BAAkB,aAAa,SAAC,GAAG;AACb,MAApB,WAAM;AACN,YAAgC,+CAAO,AAAK,oBAAO,'
58-
'yCAAC,WAAW;IAChE;AAC0D,IAA3D,AAAS,AAAK,0DAAO;AAAe,kBAAO;;;AAEvC,gBAAQ;'
59-
'AAGV,IAFI,kCAAqC,QAAC;AACX,MAA/B,WAAM,AAAwB,0BAAP,QAAF,AAAE,KAAK,GAAP;'
60-
';EAEzB","file":"main.ddc.js"}';
61-
62-
@override
63-
Future<void> close() async {}
64-
}
44+
final sourceMapContents =
45+
'{"version":3,"sourceRoot":"","sources":["main.dart"],"names":[],'
46+
'"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUwB,IAAtB,WAAM;AAKJ,'
47+
'IAHF,4BAAkB,aAAa,SAAC,GAAG;AACb,MAApB,WAAM;AACN,YAAgC,+CAAO,AAAK,oBAAO,'
48+
'yCAAC,WAAW;IAChE;AAC0D,IAA3D,AAAS,AAAK,0DAAO;AAAe,kBAAO;;;AAEvC,gBAAQ;'
49+
'AAGV,IAFI,kCAAqC,QAAC;AACX,MAA/B,WAAM,AAAwB,0BAAP,QAAF,AAAE,KAAK,GAAP;'
50+
';EAEzB","file":"main.ddc.js"}';
6551

6652
final sampleSyncFrame = WipCallFrame({
6753
'callFrameId': '{"ordinal":0,"injectedScriptId":2}',
@@ -101,7 +87,8 @@ void main() async {
10187
webkitDebugger.onPaused = pausedController.stream;
10288
globalLoadStrategy = TestStrategy();
10389
final root = 'fakeRoot';
104-
locations = Locations(FakeAssetReader(), FakeModules(), root);
90+
locations = Locations(
91+
FakeAssetReader(sourceMap: sourceMapContents), FakeModules(), root);
10592
locations.initialize('fake_entrypoint');
10693
skipLists = SkipLists();
10794
debugger = await Debugger.create(

dwds/test/fixtures/fakes.dart

Lines changed: 0 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,17 @@
66

77
import 'dart:async';
88

9-
import 'package:dwds/expression_compiler.dart';
109
import 'package:dwds/src/debugging/classes.dart';
1110
import 'package:dwds/src/debugging/execution_context.dart';
1211
import 'package:dwds/src/debugging/inspector.dart';
1312
import 'package:dwds/src/debugging/instance.dart';
1413
import 'package:dwds/src/debugging/libraries.dart';
15-
import 'package:dwds/src/debugging/metadata/provider.dart';
1614
import 'package:dwds/src/debugging/modules.dart';
1715
import 'package:dwds/src/debugging/remote_debugger.dart';
1816
import 'package:dwds/src/debugging/webkit_debugger.dart';
1917
import 'package:dwds/src/handlers/socket_connections.dart';
2018
import 'package:dwds/src/loaders/require.dart';
2119
import 'package:dwds/src/loaders/strategy.dart';
22-
import 'package:shelf/shelf.dart' as shelf;
2320
import 'package:vm_service/vm_service.dart';
2421

2522
/// A library of fake/stub implementations of our classes and their supporting
@@ -259,62 +256,3 @@ class FakeExecutionContext extends ExecutionContext {
259256

260257
FakeExecutionContext();
261258
}
262-
263-
class FakeStrategy implements LoadStrategy {
264-
@override
265-
Future<String> bootstrapFor(String entrypoint) async => 'dummy_bootstrap';
266-
267-
@override
268-
shelf.Handler get handler =>
269-
(request) => (request.url.path == 'someDummyPath')
270-
? shelf.Response.ok('some dummy response')
271-
: shelf.Response.notFound('someDummyPath');
272-
273-
@override
274-
String get id => 'dummy-id';
275-
276-
@override
277-
String get moduleFormat => 'dummy-format';
278-
279-
@override
280-
String get loadLibrariesModule => '';
281-
282-
@override
283-
String get loadLibrariesSnippet => '';
284-
285-
@override
286-
String loadLibrarySnippet(String libraryUri) => '';
287-
288-
@override
289-
String get loadModuleSnippet => '';
290-
291-
@override
292-
ReloadConfiguration get reloadConfiguration => ReloadConfiguration.none;
293-
294-
@override
295-
String loadClientSnippet(String clientScript) => 'dummy-load-client-snippet';
296-
297-
@override
298-
Future<String> moduleForServerPath(String entrypoint, String serverPath) =>
299-
null;
300-
301-
@override
302-
Future<String> serverPathForModule(String entrypoint, String module) => null;
303-
304-
@override
305-
Future<String> sourceMapPathForModule(String entrypoint, String module) =>
306-
null;
307-
308-
@override
309-
String serverPathForAppUri(String appUri) => null;
310-
311-
@override
312-
MetadataProvider metadataProviderFor(String entrypoint) => null;
313-
314-
@override
315-
void trackEntrypoint(String entrypoint) {}
316-
317-
@override
318-
Future<Map<String, ModuleInfo>> moduleInfoForEntrypoint(String entrypoint) =>
319-
throw UnimplementedError();
320-
}
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
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.
4+
5+
import 'dart:async';
6+
7+
import 'package:dwds/expression_compiler.dart';
8+
import 'package:dwds/src/debugging/metadata/provider.dart';
9+
import 'package:dwds/src/loaders/strategy.dart';
10+
import 'package:shelf/shelf.dart' as shelf;
11+
import 'package:dwds/asset_reader.dart';
12+
13+
class FakeStrategy implements LoadStrategy {
14+
@override
15+
Future<String> bootstrapFor(String entrypoint) async => 'dummy_bootstrap';
16+
17+
@override
18+
shelf.Handler get handler =>
19+
(request) => (request.url.path == 'someDummyPath')
20+
? shelf.Response.ok('some dummy response')
21+
: shelf.Response.notFound('someDummyPath');
22+
23+
@override
24+
String get id => 'dummy-id';
25+
26+
@override
27+
String get moduleFormat => 'dummy-format';
28+
29+
@override
30+
String get loadLibrariesModule => '';
31+
32+
@override
33+
String get loadLibrariesSnippet => '';
34+
35+
@override
36+
String loadLibrarySnippet(String libraryUri) => '';
37+
38+
@override
39+
String get loadModuleSnippet => '';
40+
41+
@override
42+
ReloadConfiguration get reloadConfiguration => ReloadConfiguration.none;
43+
44+
@override
45+
String loadClientSnippet(String clientScript) => 'dummy-load-client-snippet';
46+
47+
@override
48+
Future<String> moduleForServerPath(String entrypoint, String serverPath) =>
49+
Future.value('');
50+
51+
@override
52+
Future<String> serverPathForModule(String entrypoint, String module) =>
53+
Future.value('');
54+
55+
@override
56+
Future<String> sourceMapPathForModule(String entrypoint, String module) =>
57+
Future.value('');
58+
59+
@override
60+
String serverPathForAppUri(String appUri) => '';
61+
62+
@override
63+
MetadataProvider metadataProviderFor(String entrypoint) =>
64+
MetadataProvider(entrypoint, FakeAssetReader());
65+
66+
@override
67+
void trackEntrypoint(String entrypoint) {}
68+
69+
@override
70+
Future<Map<String, ModuleInfo>> moduleInfoForEntrypoint(String entrypoint) =>
71+
throw UnimplementedError();
72+
}
73+
74+
class FakeAssetReader implements AssetReader {
75+
final String? _metadata;
76+
final String? _dartSource;
77+
final String? _sourceMap;
78+
FakeAssetReader({
79+
metadata,
80+
dartSource,
81+
sourceMap,
82+
}) : _metadata = metadata,
83+
_dartSource = dartSource,
84+
_sourceMap = sourceMap;
85+
86+
@override
87+
Future<String> dartSourceContents(String serverPath) {
88+
return _throwUnimplementedOrReturnContents(_dartSource);
89+
}
90+
91+
@override
92+
Future<String> metadataContents(String serverPath) {
93+
return _throwUnimplementedOrReturnContents(_metadata);
94+
}
95+
96+
@override
97+
Future<String> sourceMapContents(String serverPath) {
98+
return _throwUnimplementedOrReturnContents(_sourceMap);
99+
}
100+
101+
@override
102+
Future<void> close() async {}
103+
104+
Future<String> _throwUnimplementedOrReturnContents(String? contents) {
105+
if (contents == null) throw UnimplementedError();
106+
return Future.value(contents);
107+
}
108+
}

dwds/test/handlers/injector_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import 'package:shelf/shelf.dart';
1313
import 'package:shelf/shelf_io.dart' as shelf_io;
1414
import 'package:test/test.dart';
1515

16-
import '../fixtures/fakes.dart';
16+
import '../fixtures/migrated_fakes.dart';
1717

1818
void main() {
1919
HttpServer server;

dwds/test/location_test.dart

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,15 @@ import 'package:dwds/src/utilities/dart_uri.dart';
1313
import 'package:shelf/shelf.dart' as shelf;
1414
import 'package:test/test.dart';
1515

16-
import 'debugger_test.dart';
16+
import 'fixtures/migrated_fakes.dart';
17+
18+
final sourceMapContents =
19+
'{"version":3,"sourceRoot":"","sources":["main.dart"],"names":[],'
20+
'"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUwB,IAAtB,WAAM;AAKJ,'
21+
'IAHF,4BAAkB,aAAa,SAAC,GAAG;AACb,MAApB,WAAM;AACN,YAAgC,+CAAO,AAAK,oBAAO,'
22+
'yCAAC,WAAW;IAChE;AAC0D,IAA3D,AAAS,AAAK,0DAAO;AAAe,kBAAO;;;AAEvC,gBAAQ;'
23+
'AAGV,IAFI,kCAAqC,QAAC;AACX,MAA/B,WAAM,AAAwB,0BAAP,QAAF,AAAE,KAAK,GAAP;'
24+
';EAEzB","file":"main.ddc.js"}';
1725

1826
void main() {
1927
const lines = 100;
@@ -22,7 +30,7 @@ void main() {
2230
globalLoadStrategy = MockLoadStrategy();
2331
final dartUri = DartUri('org-dartlang://web/main.dart');
2432

25-
final assetReader = FakeAssetReader();
33+
final assetReader = FakeAssetReader(sourceMap: sourceMapContents);
2634
final modules = MockModules();
2735
final locations = Locations(assetReader, modules, '');
2836
locations.initialize('fake_entrypoint');

dwds/test/metadata_test.dart

Lines changed: 5 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// @dart = 2.9
6-
7-
import 'package:dwds/asset_reader.dart';
85
import 'package:dwds/src/debugging/metadata/module_metadata.dart';
96
import 'package:dwds/src/debugging/metadata/provider.dart';
107
import 'package:test/test.dart';
118

9+
import 'fixtures/migrated_fakes.dart';
10+
1211
const _emptySourceMetadata =
1312
'{"version":"1.0.0","name":"web/main","closureName":"load__web__main",'
1413
'"sourceMapUri":"foo/web/main.ddc.js.map",'
@@ -38,29 +37,11 @@ const _fileUriMetadata =
3837
'"fileUri":"org-dartlang-app:///web/main.dart","partUris":[]}]}\n'
3938
'// intentionally empty: package blah has no dart sources';
4039

41-
class FakeAssetReader implements AssetReader {
42-
final String _metadata;
43-
FakeAssetReader(this._metadata);
44-
@override
45-
Future<String> dartSourceContents(String serverPath) =>
46-
throw UnimplementedError();
47-
48-
@override
49-
Future<String> metadataContents(String serverPath) async => _metadata;
50-
51-
@override
52-
Future<String> sourceMapContents(String serverPath) =>
53-
throw UnimplementedError();
54-
55-
@override
56-
Future<void> close() async {}
57-
}
58-
5940
void main() {
6041
test('can parse metadata with empty sources', () async {
6142
final provider = MetadataProvider(
6243
'foo.bootstrap.js',
63-
FakeAssetReader(_emptySourceMetadata),
44+
FakeAssetReader(metadata: _emptySourceMetadata),
6445
);
6546
expect(await provider.libraries,
6647
contains('org-dartlang-app:///web/main.dart'));
@@ -70,7 +51,7 @@ void main() {
7051
test('can parse metadata with no null safety information', () async {
7152
final provider = MetadataProvider(
7253
'foo.bootstrap.js',
73-
FakeAssetReader(_noNullSafetyMetadata),
54+
FakeAssetReader(metadata: _noNullSafetyMetadata),
7455
);
7556
expect(await provider.libraries,
7657
contains('org-dartlang-app:///web/main.dart'));
@@ -80,7 +61,7 @@ void main() {
8061
test('throws on metadata with absolute import uris', () async {
8162
final provider = MetadataProvider(
8263
'foo.bootstrap.js',
83-
FakeAssetReader(_fileUriMetadata),
64+
FakeAssetReader(metadata: _fileUriMetadata),
8465
);
8566
await expectLater(provider.libraries,
8667
throwsA(const TypeMatcher<AbsoluteImportUriException>()));

0 commit comments

Comments
 (0)