From cd874d1d30ba4f20549104543e1361acfb407efd Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Mon, 21 Sep 2020 16:01:02 -0700 Subject: [PATCH 1/3] [path_provider_windows] Add missing method to fake The fake didn't have getFolder, so if a test of something using path_provider_windows (such as shared_preferences_windows) had a fake that overrode getFolder, the analyzer would complain about overriding a non-existent method. This adds it to avoid that analyzer warning. It also fixes a minor issue introduced in the previous change, where folder.dart was accidentally made internal rather than public. --- packages/path_provider/path_provider_windows/CHANGELOG.md | 7 +++++++ .../lib/src/path_provider_windows_real.dart | 2 +- .../lib/src/path_provider_windows_stub.dart | 4 ++++ packages/path_provider/path_provider_windows/pubspec.yaml | 2 +- 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/path_provider/path_provider_windows/CHANGELOG.md b/packages/path_provider/path_provider_windows/CHANGELOG.md index a7cfe1dbb283..b7bc07e82bc7 100644 --- a/packages/path_provider/path_provider_windows/CHANGELOG.md +++ b/packages/path_provider/path_provider_windows/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.0.4+1 + +* Add getPath to the stub, so that the analyzer won't complain about + fakes that override it. +* export 'folders.dart' rather than importing it, since it's intended to be + public. + ## 0.0.4 * Move the actual implementation behind a conditional import, exporting diff --git a/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_real.dart b/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_real.dart index 7ff448abf020..e58a5af74baa 100644 --- a/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_real.dart +++ b/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_real.dart @@ -12,7 +12,7 @@ import 'package:path/path.dart' as path; import 'package:path_provider_platform_interface/path_provider_platform_interface.dart'; import 'package:win32/win32.dart'; -import 'folders.dart'; +export 'folders.dart'; /// Wraps the Win32 VerQueryValue API call. /// diff --git a/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_stub.dart b/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_stub.dart index fedb53735fb1..11a946542f26 100644 --- a/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_stub.dart +++ b/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_stub.dart @@ -20,6 +20,10 @@ class PathProviderWindows extends PathProviderPlatform { /// Stub; see comment on VersionInfoQuerier. VersionInfoQuerier versionInfoQuerier; + + /// Match PathProviderWindows so that the analyzer won't report invalid + /// overrides if tests provide fake PathProviderWindows implementations. + Future getPath(String folderID) async => ''; } /// Stub to satisfy the analyzer, which doesn't seem to handle conditional diff --git a/packages/path_provider/path_provider_windows/pubspec.yaml b/packages/path_provider/path_provider_windows/pubspec.yaml index 38f6316abef8..a04366cf0962 100644 --- a/packages/path_provider/path_provider_windows/pubspec.yaml +++ b/packages/path_provider/path_provider_windows/pubspec.yaml @@ -1,7 +1,7 @@ name: path_provider_windows description: Windows implementation of the path_provider plugin homepage: https://github.com/flutter/plugins/tree/master/packages/path_provider/path_provider_windows -version: 0.0.4 +version: 0.0.4+1 flutter: plugin: From 9e5e4a645fb8978d50cb5833dd98281a1a8fbab3 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Mon, 21 Sep 2020 16:38:02 -0700 Subject: [PATCH 2/3] Fix exporting --- .../path_provider_windows/lib/path_provider_windows.dart | 2 ++ .../path_provider_windows/lib/src/folders_stub.dart | 6 ++++++ .../lib/src/path_provider_windows_real.dart | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 packages/path_provider/path_provider_windows/lib/src/folders_stub.dart diff --git a/packages/path_provider/path_provider_windows/lib/path_provider_windows.dart b/packages/path_provider/path_provider_windows/lib/path_provider_windows.dart index ed96698c9589..1414085ec942 100644 --- a/packages/path_provider/path_provider_windows/lib/path_provider_windows.dart +++ b/packages/path_provider/path_provider_windows/lib/path_provider_windows.dart @@ -5,5 +5,7 @@ // path_provider_windows is implemented using FFI; export a stub for platforms // that don't support FFI (e.g., web) to avoid having transitive dependencies // break web compilation. +export 'src/folders_stub.dart' + if (dart.library.ffi) 'src/folders.dart'; export 'src/path_provider_windows_stub.dart' if (dart.library.ffi) 'src/path_provider_windows_real.dart'; diff --git a/packages/path_provider/path_provider_windows/lib/src/folders_stub.dart b/packages/path_provider/path_provider_windows/lib/src/folders_stub.dart new file mode 100644 index 000000000000..d19103602cdc --- /dev/null +++ b/packages/path_provider/path_provider_windows/lib/src/folders_stub.dart @@ -0,0 +1,6 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +/// Stub version of the actual class. +class WindowsKnownFolder {} diff --git a/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_real.dart b/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_real.dart index e58a5af74baa..7ff448abf020 100644 --- a/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_real.dart +++ b/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_real.dart @@ -12,7 +12,7 @@ import 'package:path/path.dart' as path; import 'package:path_provider_platform_interface/path_provider_platform_interface.dart'; import 'package:win32/win32.dart'; -export 'folders.dart'; +import 'folders.dart'; /// Wraps the Win32 VerQueryValue API call. /// From 8fc5f27cfea95d3e2117b91e0740d5982f72eb2e Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Mon, 21 Sep 2020 16:54:13 -0700 Subject: [PATCH 3/3] dartfmt --- .../path_provider_windows/lib/path_provider_windows.dart | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/path_provider/path_provider_windows/lib/path_provider_windows.dart b/packages/path_provider/path_provider_windows/lib/path_provider_windows.dart index 1414085ec942..b7aeb7a6d5f6 100644 --- a/packages/path_provider/path_provider_windows/lib/path_provider_windows.dart +++ b/packages/path_provider/path_provider_windows/lib/path_provider_windows.dart @@ -5,7 +5,6 @@ // path_provider_windows is implemented using FFI; export a stub for platforms // that don't support FFI (e.g., web) to avoid having transitive dependencies // break web compilation. -export 'src/folders_stub.dart' - if (dart.library.ffi) 'src/folders.dart'; +export 'src/folders_stub.dart' if (dart.library.ffi) 'src/folders.dart'; export 'src/path_provider_windows_stub.dart' if (dart.library.ffi) 'src/path_provider_windows_real.dart';