Skip to content

Commit

Permalink
[tool] Only run unit tests in Chrome for inline web (flutter#4153)
Browse files Browse the repository at this point in the history
Currently we are running Dart unit tests in Chrome for any plugin with
web support, but it should only be necessary for plugins that have an
inline web implementation, not for app-facing packages that endorse a
web implementation.
  • Loading branch information
stuartmorgan authored Jun 8, 2023
1 parent 1057ab4 commit e13b8c4
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -350,12 +350,12 @@ void main() {

test('file with special characters', () async {
final VideoPlayerController controller =
VideoPlayerController.file(File('A #1 Hit?.avi'));
VideoPlayerController.file(File('A #1 Hit.avi'));
await controller.initialize();

final String uri = fakeVideoPlayerPlatform.dataSources[0].uri!;
expect(uri.startsWith('file:///'), true, reason: 'Actual string: $uri');
expect(uri.endsWith('/A%20%231%20Hit%3F.avi'), true,
expect(uri.endsWith('/A%20%231%20Hit.avi'), true,
reason: 'Actual string: $uri');
}, skip: kIsWeb /* Web does not support file assets. */);

Expand Down
8 changes: 0 additions & 8 deletions script/configs/windows_unit_tests_exceptions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,12 @@
# Unit tests for plugins that support web currently run in
# Chrome, which isn't currently supported by web infrastructure.
# TODO(ditman): Fix this in the repo tooling.
- camera
- camera_web
- file_selector
- file_selector_web
- google_maps_flutter
- google_maps_flutter_web
- google_sign_in
- google_sign_in_web
- image_picker
- image_picker_for_web
- shared_preferences
- shared_preferences_web
- url_launcher
- url_launcher_web
- video_player
- video_player_web
- webview_flutter_web
4 changes: 3 additions & 1 deletion script/tool/lib/src/test_command.dart
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,9 @@ class TestCommand extends PackageLoopingCommand {
'--color',
if (experiment.isNotEmpty) '--enable-experiment=$experiment',
// TODO(ditman): Remove this once all plugins are migrated to 'drive'.
if (pluginSupportsPlatform(platformWeb, package)) '--platform=chrome',
if (pluginSupportsPlatform(platformWeb, package,
requiredMode: PlatformSupport.inline))
'--platform=chrome',
],
workingDir: package.directory,
);
Expand Down
23 changes: 22 additions & 1 deletion script/tool/test/test_command_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import 'mocks.dart';
import 'util.dart';

void main() {
group('$TestCommand', () {
group('TestCommand', () {
late FileSystem fileSystem;
late Platform mockPlatform;
late Directory packagesDir;
Expand Down Expand Up @@ -239,6 +239,27 @@ void main() {
);
});

test('Does not run on Chrome for web endorsements', () async {
final RepositoryPackage plugin = createFakePlugin(
'plugin',
packagesDir,
extraFiles: <String>['test/empty_test.dart'],
platformSupport: <String, PlatformDetails>{
platformWeb: const PlatformDetails(PlatformSupport.federated),
},
);

await runCapturingPrint(runner, <String>['test']);

expect(
processRunner.recordedCalls,
orderedEquals(<ProcessCall>[
ProcessCall(getFlutterCommand(mockPlatform),
const <String>['test', '--color'], plugin.path),
]),
);
});

test('enable-experiment flag', () async {
final RepositoryPackage plugin = createFakePlugin('a', packagesDir,
extraFiles: <String>['test/empty_test.dart']);
Expand Down

0 comments on commit e13b8c4

Please sign in to comment.