blob: 2f71f983dc8ed9c3e40baa6ec87a4bd9ce9444b1 [file] [log] [blame]
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:file_testing/file_testing.dart';
import 'package:flutter_tools/src/base/file_system.dart';
import '../src/common.dart';
import 'test_utils.dart';
// Test the android/app/build directory not be created unexpectedly after
// `flutter build` commands, see https://github.com/flutter/flutter/issues/91018.
//
// The easiest way to reproduce this issue is to create a plugin project, then run
// `flutter build` command inside the `example` directory, so we create a plugin
// project in the test.
void main() {
late Directory tempDir;
late String flutterBin;
late Directory exampleAppDir;
setUp(() async {
tempDir = createResolvedTempDirectorySync('flutter_plugin_test.');
flutterBin = fileSystem.path.join(
getFlutterRoot(),
'bin',
'flutter',
);
exampleAppDir = tempDir.childDirectory('aaa').childDirectory('example');
processManager.runSync(<String>[
flutterBin,
...getLocalEngineArguments(),
'create',
'--template=plugin',
'--platforms=android',
'aaa',
], workingDirectory: tempDir.path);
});
tearDown(() async {
tryToDelete(tempDir);
});
void checkBuildDir() {
// The android/app/build directory should not exists
final Directory appBuildDir = fileSystem.directory(fileSystem.path.join(
exampleAppDir.path,
'android',
'app',
'build',
));
expect(appBuildDir, isNot(exists));
}
test(
'android/app/build should not exists after flutter build apk',
() async {
processManager.runSync(<String>[
flutterBin,
...getLocalEngineArguments(),
'build',
'apk',
'--target-platform=android-arm',
], workingDirectory: exampleAppDir.path);
checkBuildDir();
},
);
test(
'android/app/build should not exists after flutter build appbundle',
() async {
processManager.runSync(<String>[
flutterBin,
...getLocalEngineArguments(),
'build',
'appbundle',
'--target-platform=android-arm',
], workingDirectory: exampleAppDir.path);
checkBuildDir();
},
);
}