From 8b9b6a39afa208ab2bd222c352f975440791ddba Mon Sep 17 00:00:00 2001 From: Matan Lurey Date: Tue, 28 Jan 2025 18:04:50 -0800 Subject: [PATCH] Fix tests to prepare for `--explicit-package-dependencies` and a bug. (#162289) @camsim99 discovered these would fail here: https://github.com/flutter/flutter/pull/161826#issuecomment-2617059566. This fixes in preparation for the flag flipping, and also fixes a bug in resolving `synthetic-package` I missed (it _can't_ be true if `--explicit-package-dependencies` is set). --- .../src/commands/generate_localizations.dart | 8 +-- .../localizations/localizations_utils.dart | 2 +- .../hermetic/generate_localizations_test.dart | 49 ++++++++----------- .../generate_localizations_test.dart | 6 +-- .../resident_web_runner_test.dart | 5 +- 5 files changed, 29 insertions(+), 41 deletions(-) diff --git a/packages/flutter_tools/lib/src/commands/generate_localizations.dart b/packages/flutter_tools/lib/src/commands/generate_localizations.dart index 5422bf5d79..f71f1a85aa 100644 --- a/packages/flutter_tools/lib/src/commands/generate_localizations.dart +++ b/packages/flutter_tools/lib/src/commands/generate_localizations.dart @@ -151,7 +151,7 @@ class GenerateLocalizationsCommand extends FlutterCommand { ); argParser.addFlag( 'synthetic-package', - defaultsTo: true, + defaultsTo: !featureFlags.isExplicitPackageDependenciesEnabled, help: 'Determines whether or not the generated output files will be ' 'generated as a synthetic package or at a specified directory in ' @@ -159,12 +159,8 @@ class GenerateLocalizationsCommand extends FlutterCommand { '\n' 'DEPRECATED: https://flutter.dev/to/flutter-gen-deprecation.\n' '\n' - 'This flag is set to true by default.\n' - '\n' 'When synthetic-package is set to false, it will generate the ' - 'localizations files in the directory specified by arb-dir by default.\n' - '\n' - 'If output-dir is specified, files will be generated there.', + 'localizations files in the directory specified by arb-dir by default.\n', ); argParser.addOption( 'project-dir', diff --git a/packages/flutter_tools/lib/src/localizations/localizations_utils.dart b/packages/flutter_tools/lib/src/localizations/localizations_utils.dart index 360dd99d5c..2830240108 100644 --- a/packages/flutter_tools/lib/src/localizations/localizations_utils.dart +++ b/packages/flutter_tools/lib/src/localizations/localizations_utils.dart @@ -353,7 +353,7 @@ class LocalizationOptions { outputLocalizationFile = outputLocalizationFile ?? 'app_localizations.dart', outputClass = outputClass ?? 'AppLocalizations', useDeferredLoading = useDeferredLoading ?? false, - syntheticPackage = syntheticPackage ?? true, + syntheticPackage = syntheticPackage ?? !featureFlags.isExplicitPackageDependenciesEnabled, requiredResourceAttributes = requiredResourceAttributes ?? false, nullableGetter = nullableGetter ?? true, format = format ?? false, diff --git a/packages/flutter_tools/test/commands.shard/hermetic/generate_localizations_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/generate_localizations_test.dart index 4bd7f8e203..d937de7adc 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/generate_localizations_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/generate_localizations_test.dart @@ -65,14 +65,13 @@ void main() { ); await createTestCommandRunner(command).run(['gen-l10n']); - final Directory outputDirectory = fileSystem.directory( - fileSystem.path.join('.dart_tool', 'flutter_gen', 'gen_l10n'), - ); + final Directory outputDirectory = fileSystem.directory(fileSystem.path.join('lib', 'l10n')); expect(outputDirectory.existsSync(), true); expect(outputDirectory.childFile('app_localizations_en.dart').existsSync(), true); expect(outputDirectory.childFile('app_localizations.dart').existsSync(), true); }, overrides: { + FeatureFlags: enableExplicitPackageDependencies, FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.any(), }, @@ -211,14 +210,13 @@ flutter: logger.statusText, contains('Because l10n.yaml exists, the options defined there will be used instead.'), ); - final Directory outputDirectory = fileSystem.directory( - fileSystem.path.join('.dart_tool', 'flutter_gen', 'gen_l10n'), - ); + final Directory outputDirectory = fileSystem.directory(fileSystem.path.join('lib', 'l10n')); expect(outputDirectory.existsSync(), true); expect(outputDirectory.childFile('app_localizations_en.dart').existsSync(), true); expect(outputDirectory.childFile('app_localizations.dart').existsSync(), true); }, overrides: { + FeatureFlags: enableExplicitPackageDependencies, FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.any(), }, @@ -273,8 +271,8 @@ flutter: command: [ 'Artifact.engineDartBinary', 'format', - '/.dart_tool/flutter_gen/gen_l10n/app_localizations_en.dart', - '/.dart_tool/flutter_gen/gen_l10n/app_localizations.dart', + '/lib/l10n/app_localizations_en.dart', + '/lib/l10n/app_localizations.dart', ], ), ); @@ -288,15 +286,14 @@ flutter: await createTestCommandRunner(command).run(['gen-l10n', '--format']); - final Directory outputDirectory = fileSystem.directory( - fileSystem.path.join('.dart_tool', 'flutter_gen', 'gen_l10n'), - ); + final Directory outputDirectory = fileSystem.directory(fileSystem.path.join('lib', 'l10n')); expect(outputDirectory.existsSync(), true); expect(outputDirectory.childFile('app_localizations_en.dart').existsSync(), true); expect(outputDirectory.childFile('app_localizations.dart').existsSync(), true); expect(processManager, hasNoRemainingExpectations); }, overrides: { + FeatureFlags: enableExplicitPackageDependencies, FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.any(), }, @@ -325,8 +322,8 @@ format: true command: [ 'Artifact.engineDartBinary', 'format', - '/.dart_tool/flutter_gen/gen_l10n/app_localizations_en.dart', - '/.dart_tool/flutter_gen/gen_l10n/app_localizations.dart', + '/lib/l10n/app_localizations_en.dart', + '/lib/l10n/app_localizations.dart', ], ), ); @@ -338,15 +335,14 @@ format: true ); await createTestCommandRunner(command).run(['gen-l10n']); - final Directory outputDirectory = fileSystem.directory( - fileSystem.path.join('.dart_tool', 'flutter_gen', 'gen_l10n'), - ); + final Directory outputDirectory = fileSystem.directory(fileSystem.path.join('lib', 'l10n')); expect(outputDirectory.existsSync(), true); expect(outputDirectory.childFile('app_localizations_en.dart').existsSync(), true); expect(outputDirectory.childFile('app_localizations.dart').existsSync(), true); expect(processManager, hasNoRemainingExpectations); }, overrides: { + FeatureFlags: enableExplicitPackageDependencies, FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.any(), }, @@ -381,9 +377,9 @@ untranslated-messages-file: lib/l10n/untranslated.json command: [ 'Artifact.engineDartBinary', 'format', - '/.dart_tool/flutter_gen/gen_l10n/app_localizations_en.dart', - '/.dart_tool/flutter_gen/gen_l10n/app_localizations_es.dart', - '/.dart_tool/flutter_gen/gen_l10n/app_localizations.dart', + '/lib/l10n/app_localizations_en.dart', + '/lib/l10n/app_localizations_es.dart', + '/lib/l10n/app_localizations.dart', ], ), ); @@ -395,9 +391,7 @@ untranslated-messages-file: lib/l10n/untranslated.json ); await createTestCommandRunner(command).run(['gen-l10n']); - final Directory outputDirectory = fileSystem.directory( - fileSystem.path.join('.dart_tool', 'flutter_gen', 'gen_l10n'), - ); + final Directory outputDirectory = fileSystem.directory(fileSystem.path.join('lib', 'l10n')); expect(outputDirectory.existsSync(), true); expect(outputDirectory.childFile('app_localizations_en.dart').existsSync(), true); expect(outputDirectory.childFile('app_localizations_es.dart').existsSync(), true); @@ -409,6 +403,7 @@ untranslated-messages-file: lib/l10n/untranslated.json expect(processManager, hasNoRemainingExpectations); }, overrides: { + FeatureFlags: enableExplicitPackageDependencies, FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.any(), }, @@ -484,9 +479,7 @@ format: true ); await createTestCommandRunner(command).run(['gen-l10n']); - final Directory outputDirectory = fileSystem.directory( - fileSystem.path.join('.dart_tool', 'flutter_gen', 'gen_l10n'), - ); + final Directory outputDirectory = fileSystem.directory(fileSystem.path.join('lib', 'l10n')); expect(outputDirectory.existsSync(), isTrue); expect(outputDirectory.childFile('app_localizations.dart').existsSync(), isTrue); expect( @@ -495,6 +488,7 @@ format: true ); }, overrides: { + FeatureFlags: enableExplicitPackageDependencies, FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.any(), }, @@ -630,14 +624,13 @@ format: true ); await createTestCommandRunner(command).run(['gen-l10n']); - final Directory outputDirectory = fileSystem.directory( - fileSystem.path.join('.dart_tool', 'flutter_gen', 'gen_l10n'), - ); + final Directory outputDirectory = fileSystem.directory(fileSystem.path.join('lib', 'l10n')); expect(outputDirectory.existsSync(), true); expect(outputDirectory.childFile('app_localizations_en.dart').existsSync(), true); expect(outputDirectory.childFile('app_localizations.dart').existsSync(), true); }, overrides: { + FeatureFlags: enableExplicitPackageDependencies, FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.any(), }, diff --git a/packages/flutter_tools/test/general.shard/generate_localizations_test.dart b/packages/flutter_tools/test/general.shard/generate_localizations_test.dart index e0a5c73a6c..43ec62d7a0 100644 --- a/packages/flutter_tools/test/general.shard/generate_localizations_test.dart +++ b/packages/flutter_tools/test/general.shard/generate_localizations_test.dart @@ -13,7 +13,7 @@ import 'package:flutter_tools/src/localizations/localizations_utils.dart'; import 'package:yaml/yaml.dart'; import '../src/common.dart'; -import '../src/fake_process_manager.dart'; +import '../src/context.dart'; const String defaultTemplateArbFileName = 'app_en.arb'; const String defaultOutputFileString = 'output-localization-file.dart'; @@ -834,7 +834,7 @@ class FooEn extends Foo { '''); }); - testWithoutContext('throws exception on missing flutter: generate: true flag', () async { + testUsingContext('throws exception on missing flutter: generate: true flag', () async { _standardFlutterDirectoryL10nSetup(fs); // Missing flutter: generate: true should throw exception. @@ -875,7 +875,7 @@ flutter: ); }); - testWithoutContext('uses the same line terminator as pubspec.yaml', () async { + testUsingContext('uses the same line terminator as pubspec.yaml', () async { _standardFlutterDirectoryL10nSetup(fs); fs.file('pubspec.yaml') diff --git a/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart b/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart index 3befdcfd35..5b2137f958 100644 --- a/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart +++ b/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart @@ -1315,9 +1315,8 @@ flutter: '''); expect(await residentWebRunner.run(), 0); final File generatedLocalizationsFile = globals.fs - .directory('.dart_tool') - .childDirectory('flutter_gen') - .childDirectory('gen_l10n') + .directory('lib') + .childDirectory('l10n') .childFile('app_localizations.dart'); expect(generatedLocalizationsFile.existsSync(), isTrue); // Completing this future ensures that the daemon can exit correctly.