anchor.diff:  
     void writeAssets(String path, List<String> assets) {
       for (String asset in assets) {
  -      final String fullPath = fs.path.join(path, asset); // posix compatible
  -
  -      final String normalizedFullPath = // posix and windows compatible over MemoryFileSystem
  -      new Uri.file(
  -          fullPath, windows: platform.isWindows)
  -          .toFilePath(windows: platform.isWindows);
  -
  -      fs.file(normalizedFullPath)
  +      final String fullPath = fixPath(fs.path.join(path, asset));
  +
  +      fs.file(fullPath)
           ..createSync(recursive: true)
           ..writeAsStringSync(asset);
       }
     }
   
  -  // These tests do not use a memory file system because we want to ensure that
  -  // asset bundles work correctly on Windows and Posix systems.
  -  Directory tempDir;
  -  Directory oldCurrentDir;
  +  FileSystem testFileSystem;
   
     setUp(() async {
  -    tempDir = fs.systemTempDirectory.createTempSync('flutter_asset_bundle_test.');
  -    oldCurrentDir = fs.currentDirectory;
  -    fs.currentDirectory = tempDir;
  -  });
  -
  -  tearDown(() {
  -    fs.currentDirectory = oldCurrentDir;
  -    tryToDelete(tempDir);
  +    testFileSystem = new MemoryFileSystem(
  +      style: platform.isWindows
  +        ? FileSystemStyle.windows
  +        : FileSystemStyle.posix,
  +    );
  +    testFileSystem.currentDirectory = testFileSystem.systemTempDirectory.createTempSync('flutter_asset_bundle_test.');
     });
   
     group('AssetBundle assets from packages', () {
       testUsingContext('No assets are bundled when the package has no assets', () async {
         establishFlutterRoot();
  +      writeEmptySchemaFile(fs);
   
         writePubspecFile('pubspec.yaml', 'test');
         writePackagesFile('test_package:p/p/lib/');
  
positive.code:         <String>['test_package'],
          expectedManifest,
        );
      });
  
      testUsingContext('One asset and its variant are bundled when the package has an asset and a variant, and the app lists the asset in its pubspec', () async {
        establishFlutterRoot();
  
        writePubspecFile(
          'pubspec.yaml',
  
negative.code:         <String>['test_package'],
          expectedAssetManifest,
        );
      }, overrides: <Type, Generator>{
        FileSystem: () => testFileSystem,
      });
  
      testUsingContext('Two assets are bundled when two packages each have and list an asset their pubspec', () async {
        establishFlutterRoot();
        writeEmptySchemaFile(fs);
  
        writePubspecFile(
          'pubspec.yaml',
  