@@ -8,6 +8,7 @@ import 'dart:io';
8
8
9
9
import 'package:analyzer/file_system/file_system.dart' ;
10
10
import 'package:analyzer/file_system/memory_file_system.dart' ;
11
+ import 'package:analyzer/src/dart/sdk/sdk.dart' ;
11
12
import 'package:analyzer/src/test_utilities/mock_sdk.dart' ;
12
13
import 'package:dartdoc/src/dartdoc_options.dart' ;
13
14
import 'package:dartdoc/src/markdown_processor.dart' ;
@@ -82,50 +83,35 @@ PackageConfigProvider getTestPackageConfigProvider(String sdkPath) {
82
83
/// Returns a [PackageMetaProvider] using a [MemoryResourceProvider] .
83
84
PackageMetaProvider get testPackageMetaProvider {
84
85
var resourceProvider = MemoryResourceProvider ();
85
- var mockSdk = MockSdk (resourceProvider: resourceProvider);
86
- var sdkFolder = writeMockSdkFiles (mockSdk);
86
+ final sdkRoot = resourceProvider.getFolder (
87
+ resourceProvider.convertPath ('/sdk' ),
88
+ );
89
+ createMockSdk (
90
+ resourceProvider: resourceProvider,
91
+ root: sdkRoot,
92
+ );
93
+ writeMockSdkFiles (sdkRoot);
87
94
88
95
return PackageMetaProvider (
89
96
PubPackageMeta .fromElement,
90
97
PubPackageMeta .fromFilename,
91
98
PubPackageMeta .fromDir,
92
99
resourceProvider,
93
- sdkFolder ,
94
- defaultSdk: mockSdk ,
100
+ sdkRoot ,
101
+ defaultSdk: FolderBasedDartSdk (resourceProvider, sdkRoot) ,
95
102
messageForMissingPackageMeta: PubPackageMeta .messageForMissingPackageMeta,
96
103
);
97
104
}
98
105
99
- /// Writes [mockSdk] to disk at both its original path, and its canonicalized
100
- /// path (they may be different on Windows).
106
+ /// Writes additional files for a mock SDK.
101
107
///
102
108
/// Included is a "version" file and an "api_readme.md" file.
103
- Folder writeMockSdkFiles (MockSdk mockSdk) {
104
- var resourceProvider = mockSdk.resourceProvider;
105
- var pathContext = resourceProvider.pathContext;
106
-
107
- // The [MockSdk] only works in non-canonicalized paths, which include
108
- // "C:\sdk", on Windows. However, dartdoc works almost exclusively with
109
- // canonical paths ("c:\sdk"). Copy all MockSdk files to the canonicalized
110
- // path.
111
- for (var l in mockSdk.sdkLibraries) {
112
- var p = l.path;
113
- resourceProvider
114
- .getFile (pathContext.canonicalize (p))
115
- .writeAsStringSync (resourceProvider.getFile (p).readAsStringSync ());
116
- }
117
- var sdkFolder = resourceProvider.getFolder (
118
- pathContext.canonicalize (resourceProvider.convertPath (sdkRoot)))
119
- ..create ();
109
+ void writeMockSdkFiles (Folder sdkFolder) {
120
110
sdkFolder.getChildAssumingFile ('version' ).writeAsStringSync ('2.9.0' );
121
111
sdkFolder.getChildAssumingFile ('api_readme.md' ).writeAsStringSync (
122
112
'Welcome to the [Dart](https://dart.dev/) API reference documentation' );
123
113
124
114
_writeMockSdkBinFiles (sdkFolder);
125
- _writeMockSdkBinFiles (
126
- resourceProvider.getFolder (resourceProvider.convertPath (sdkRoot)));
127
-
128
- return sdkFolder;
129
115
}
130
116
131
117
/// Dartdoc has a few indicator files it uses to verify that a directory
0 commit comments