diff --git a/packages/flutter_tools/lib/src/asset.dart b/packages/flutter_tools/lib/src/asset.dart index 1cd0d1d750f..09708b02c23 100644 --- a/packages/flutter_tools/lib/src/asset.dart +++ b/packages/flutter_tools/lib/src/asset.dart @@ -909,6 +909,22 @@ class ManifestAssetBundle implements AssetBundle { attributedPackage: attributedPackage, ); } + + final Iterable nonVariantSubDirectories = entities + .whereType() + .where((Directory directory) => !_assetVariantDirectoryRegExp.hasMatch(directory.basename)); + for (final Directory dir in nonVariantSubDirectories) { + final String relativePath = _fileSystem.path.relative(dir.path, from: assetBase); + final Uri relativePathsUri = Uri.directory(relativePath, windows: _platform.isWindows); + + _parseAssetsFromFolder(packageConfig, + flutterManifest, + assetBase, + cache, + result, + relativePathsUri + ); + } } void _parseAssetFromFile( diff --git a/packages/flutter_tools/test/general.shard/asset_bundle_test.dart b/packages/flutter_tools/test/general.shard/asset_bundle_test.dart index 764b959a899..5927c8a5409 100644 --- a/packages/flutter_tools/test/general.shard/asset_bundle_test.dart +++ b/packages/flutter_tools/test/general.shard/asset_bundle_test.dart @@ -9,15 +9,11 @@ import 'package:file/memory.dart'; import 'package:flutter_tools/src/artifacts.dart'; import 'package:flutter_tools/src/asset.dart'; import 'package:flutter_tools/src/base/file_system.dart'; -import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/user_messages.dart'; import 'package:flutter_tools/src/build_info.dart'; import 'package:flutter_tools/src/bundle_builder.dart'; -import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/devfs.dart'; import 'package:flutter_tools/src/globals.dart' as globals; -import 'package:flutter_tools/src/project.dart'; import 'package:standard_message_codec/standard_message_codec.dart'; import '../src/common.dart'; @@ -73,59 +69,6 @@ void main() { ProcessManager: () => FakeProcessManager.any(), }); - testWithoutContext('wildcard directories do not include subdirectories', () async { - final Platform platform = FakePlatform(); - final FileSystem fs = MemoryFileSystem.test(); - Cache.flutterRoot = Cache.defaultFlutterRoot(platform: platform, fileSystem: fs, userMessages: UserMessages()); - - fs.file('.packages').createSync(); - fs.file('pubspec.yaml').writeAsStringSync( -''' -name: test -dependencies: - flutter: - sdk: flutter -flutter: - assets: - - assets/foo/ - - assets/bar/lizard.png -''' - ); - - final List assets = [ - 'assets/foo/dog.png', - 'assets/foo/sub/cat.png', - 'assets/bar/lizard.png', - 'assets/bar/sheep.png' - ]; - - for (final String asset in assets) { - final File assetFile = fs.file(asset); - assetFile.createSync(recursive: true); - assetFile.writeAsStringSync(asset); - } - - final ManifestAssetBundle bundle = ManifestAssetBundle( - logger: BufferLogger.test(), - fileSystem: fs, - platform: platform, - ); - - await bundle.build( - packagesPath: '.packages', - flutterProject: FlutterProject.fromDirectoryTest(fs.currentDirectory), - ); - - expect(bundle.entries.keys, unorderedEquals([ - 'AssetManifest.json', - 'AssetManifest.bin', - 'FontManifest.json', - 'NOTICES.Z', - 'assets/foo/dog.png', - 'assets/bar/lizard.png' - ])); - }); - testUsingContext('wildcard directories are updated when filesystem changes', () async { final File packageFile = globals.fs.file('.packages')..createSync(); globals.fs.file(globals.fs.path.join('assets', 'foo', 'bar.txt')).createSync(recursive: true); diff --git a/packages/flutter_tools/test/general.shard/asset_bundle_variant_test.dart b/packages/flutter_tools/test/general.shard/asset_bundle_variant_test.dart index 46c7caef6ca..9bec3b76707 100644 --- a/packages/flutter_tools/test/general.shard/asset_bundle_variant_test.dart +++ b/packages/flutter_tools/test/general.shard/asset_bundle_variant_test.dart @@ -54,9 +54,6 @@ dependencies: flutter: assets: - assets/ - - assets/notAVariant/ - - assets/folder/ - - assets/normalFolder/ ''' ); }); @@ -187,7 +184,6 @@ dependencies: flutter: assets: - assets/ - - assets/somewhereElse/ ''' ); });