Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/image_picker/image_picker/lib/image_picker.dart
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ export 'package:image_picker_platform_interface/image_picker_platform_interface.
class ImagePicker {
/// The platform interface that drives this plugin
@visibleForTesting
static ImagePickerPlatform platform = ImagePickerPlatform.instance;
static ImagePickerPlatform get platform => ImagePickerPlatform.instance;

/// Returns a [File] object pointing to the image that was picked.
///
Expand Down
2 changes: 2 additions & 0 deletions packages/image_picker/image_picker/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ dev_dependencies:
sdk: flutter
integration_test:
path: ../../integration_test
mockito: ^4.1.3
pedantic: ^1.8.0
plugin_platform_interface: ^1.0.3

environment:
sdk: ">=2.1.0 <3.0.0"
Expand Down
16 changes: 16 additions & 0 deletions packages/image_picker/image_picker/test/image_picker_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
import 'package:flutter/services.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:image_picker/image_picker.dart';
import 'package:image_picker_platform_interface/image_picker_platform_interface.dart';
import 'package:mockito/mockito.dart';
import 'package:plugin_platform_interface/plugin_platform_interface.dart';

void main() {
TestWidgetsFlutterBinding.ensureInitialized();
Expand All @@ -26,6 +29,15 @@ void main() {
log.clear();
});

test('ImagePicker platform instance overrides the actual platform used',
() {
final ImagePickerPlatform savedPlatform = ImagePickerPlatform.instance;
final MockPlatform mockPlatform = MockPlatform();
ImagePickerPlatform.instance = mockPlatform;
expect(ImagePicker.platform, mockPlatform);
ImagePickerPlatform.instance = savedPlatform;
});

group('#pickImage', () {
test('passes the image source argument correctly', () async {
await picker.getImage(source: ImageSource.camera);
Expand Down Expand Up @@ -336,3 +348,7 @@ void main() {
});
});
}

class MockPlatform extends Mock
with MockPlatformInterfaceMixin
implements ImagePickerPlatform {}