// 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 'dart:io'; import 'package:file_testing/file_testing.dart'; import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/platform.dart'; import 'package:flutter_tools/src/cache.dart'; import '../src/common.dart'; import '../src/context.dart'; import 'test_utils.dart'; void main() { Cache.disableLocking(); late Directory tempDir; final FileSystem fs = LocalFileSystemBlockingSetCurrentDirectory(); final String flutterBin = fs.path.join(getFlutterRoot(), 'bin', 'flutter'); final File previewBin = fs .directory(getFlutterRoot()) .childDirectory('bin') .childDirectory('cache') .childDirectory('artifacts') .childDirectory('flutter_preview') .childFile('flutter_preview.exe'); setUp(() { tempDir = fs.systemTempDirectory.createTempSync('flutter_tools_preview_integration_test.'); }); tearDown(() { tryToDelete(tempDir); tryToDelete(previewBin); }); testUsingContext('flutter build _preview creates preview device', () async { final ProcessResult result = await processManager.run([ flutterBin, 'build', '_preview', '--verbose', ]); expect(result, const ProcessResultMatcher()); expect( previewBin, exists, ); }, skip: !const LocalPlatform().isWindows); // [intended] Flutter Preview only supported on Windows currently }