Unverified Commit de4f0527 authored by Shi-Hao Hong's avatar Shi-Hao Hong Committed by GitHub

[gen_l10n] Fix unintended breaking change introduced by output-dir option (#55909)

* Fix breaking change introduced by gen_l10n output-dir option
parent b744cce1
......@@ -27,10 +27,10 @@ void main(List<String> arguments) {
);
parser.addOption(
'output-dir',
defaultsTo: path.join('lib', 'l10n'),
help: 'The directory where the generated localization classes will be written. '
'The app must import the file specified in the \'output-localization-file\' '
'option from this directory.'
'option from this directory. If unspecified, this defaults to the same '
'directory as the input directory specified in \'arb-dir\'.'
);
parser.addOption(
'template-arb-file',
......
......@@ -511,7 +511,7 @@ class LocalizationsGenerator {
bool useDeferredLoading = false,
}) {
setInputDirectory(inputPathString);
setOutputDirectory(outputPathString);
setOutputDirectory(outputPathString ?? inputPathString);
setTemplateArbFile(templateArbFileName);
setOutputFile(outputFileString);
setPreferredSupportedLocales(preferredSupportedLocaleString);
......
......@@ -346,6 +346,30 @@ void main() {
expect(unimplementedOutputString, contains('subtitle'));
});
test('uses inputPathString as outputPathString when the outputPathString is null', () {
_standardFlutterDirectoryL10nSetup(fs);
LocalizationsGenerator generator;
try {
generator = LocalizationsGenerator(fs);
generator
..initialize(
inputPathString: defaultL10nPathString,
templateArbFileName: defaultTemplateArbFileName,
outputFileString: defaultOutputFileString,
classNameString: defaultClassNameString,
)
..loadResources()
..writeOutputFile();
} on L10nException catch (e) {
fail('Generating output should not fail: \n${e.message}');
}
final Directory outputDirectory = fs.directory('lib').childDirectory('l10n');
expect(outputDirectory.childFile('output-localization-file.dart').existsSync(), isTrue);
expect(outputDirectory.childFile('output-localization-file_en.dart').existsSync(), isTrue);
expect(outputDirectory.childFile('output-localization-file_es.dart').existsSync(), isTrue);
});
test('correctly generates output files in non-default output directory if it already exists', () {
final Directory l10nDirectory = fs.currentDirectory
.childDirectory('lib')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment