@@ -8,6 +8,7 @@ import 'dart:io';
88
99import 'package:analyzer/file_system/file_system.dart' ;
1010import 'package:analyzer/file_system/memory_file_system.dart' ;
11+ import 'package:analyzer/src/dart/sdk/sdk.dart' ;
1112import 'package:analyzer/src/test_utilities/mock_sdk.dart' ;
1213import 'package:dartdoc/src/dartdoc_options.dart' ;
1314import 'package:dartdoc/src/markdown_processor.dart' ;
@@ -82,50 +83,35 @@ PackageConfigProvider getTestPackageConfigProvider(String sdkPath) {
8283/// Returns a [PackageMetaProvider] using a [MemoryResourceProvider] .
8384PackageMetaProvider get testPackageMetaProvider {
8485 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);
8794
8895 return PackageMetaProvider (
8996 PubPackageMeta .fromElement,
9097 PubPackageMeta .fromFilename,
9198 PubPackageMeta .fromDir,
9299 resourceProvider,
93- sdkFolder ,
94- defaultSdk: mockSdk ,
100+ sdkRoot ,
101+ defaultSdk: FolderBasedDartSdk (resourceProvider, sdkRoot) ,
95102 messageForMissingPackageMeta: PubPackageMeta .messageForMissingPackageMeta,
96103 );
97104}
98105
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.
101107///
102108/// 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) {
120110 sdkFolder.getChildAssumingFile ('version' ).writeAsStringSync ('2.9.0' );
121111 sdkFolder.getChildAssumingFile ('api_readme.md' ).writeAsStringSync (
122112 'Welcome to the [Dart](https://dart.dev/) API reference documentation' );
123113
124114 _writeMockSdkBinFiles (sdkFolder);
125- _writeMockSdkBinFiles (
126- resourceProvider.getFolder (resourceProvider.convertPath (sdkRoot)));
127-
128- return sdkFolder;
129115}
130116
131117/// Dartdoc has a few indicator files it uses to verify that a directory
0 commit comments