@@ -10,6 +10,7 @@ import 'dart:io';
1010
1111import 'package:analyzer/file_system/file_system.dart' ;
1212import 'package:analyzer/file_system/memory_file_system.dart' ;
13+ import 'package:analyzer/src/dart/sdk/sdk.dart' ;
1314import 'package:analyzer/src/test_utilities/mock_sdk.dart' ;
1415import 'package:dartdoc/src/dartdoc_options.dart' ;
1516import 'package:dartdoc/src/markdown_processor.dart' ;
@@ -84,50 +85,35 @@ PackageConfigProvider getTestPackageConfigProvider(String sdkPath) {
8485/// Returns a [PackageMetaProvider] using a [MemoryResourceProvider] .
8586PackageMetaProvider get testPackageMetaProvider {
8687 var resourceProvider = MemoryResourceProvider ();
87- var mockSdk = MockSdk (resourceProvider: resourceProvider);
88- var sdkFolder = writeMockSdkFiles (mockSdk);
88+ final sdkRoot = resourceProvider.getFolder (
89+ resourceProvider.convertPath ('/sdk' ),
90+ );
91+ createMockSdk (
92+ resourceProvider: resourceProvider,
93+ root: sdkRoot,
94+ );
95+ writeMockSdkFiles (sdkRoot);
8996
9097 return PackageMetaProvider (
9198 PubPackageMeta .fromElement,
9299 PubPackageMeta .fromFilename,
93100 PubPackageMeta .fromDir,
94101 resourceProvider,
95- sdkFolder ,
96- defaultSdk: mockSdk ,
102+ sdkRoot ,
103+ defaultSdk: FolderBasedDartSdk (resourceProvider, sdkRoot) ,
97104 messageForMissingPackageMeta: PubPackageMeta .messageForMissingPackageMeta,
98105 );
99106}
100107
101- /// Writes [mockSdk] to disk at both its original path, and its canonicalized
102- /// path (they may be different on Windows).
108+ /// Writes additional files for a mock SDK.
103109///
104110/// Included is a "version" file and an "api_readme.md" file.
105- Folder writeMockSdkFiles (MockSdk mockSdk) {
106- var resourceProvider = mockSdk.resourceProvider;
107- var pathContext = resourceProvider.pathContext;
108-
109- // The [MockSdk] only works in non-canonicalized paths, which include
110- // "C:\sdk", on Windows. However, dartdoc works almost exclusively with
111- // canonical paths ("c:\sdk"). Copy all MockSdk files to the canonicalized
112- // path.
113- for (var l in mockSdk.sdkLibraries) {
114- var p = l.path;
115- resourceProvider
116- .getFile (pathContext.canonicalize (p))
117- .writeAsStringSync (resourceProvider.getFile (p).readAsStringSync ());
118- }
119- var sdkFolder = resourceProvider.getFolder (
120- pathContext.canonicalize (resourceProvider.convertPath (sdkRoot)))
121- ..create ();
111+ void writeMockSdkFiles (Folder sdkFolder) {
122112 sdkFolder.getChildAssumingFile ('version' ).writeAsStringSync ('2.9.0' );
123113 sdkFolder.getChildAssumingFile ('api_readme.md' ).writeAsStringSync (
124114 'Welcome to the [Dart](https://dart.dev/) API reference documentation' );
125115
126116 _writeMockSdkBinFiles (sdkFolder);
127- _writeMockSdkBinFiles (
128- resourceProvider.getFolder (resourceProvider.convertPath (sdkRoot)));
129-
130- return sdkFolder;
131117}
132118
133119/// Dartdoc has a few indicator files it uses to verify that a directory
0 commit comments