flutter/packages/flutter_tools/test/integration/test_utils.dart
Danny Tuppeny b931640c1d
Improve flutter tools integration tests (#18865)
* Rename util -> test_utils

* Rename flutter_test_driver -> test_driver

* Switch testWithContext -> test

* Remove unused import

* Move test project into a class to make it easier to have multiple of these

Each "TestProject" class can contain its files and things like named breakpoint locations.

* Split expression evaluation tests into own file

* Include last response in error messages

* Update expectations based on current bugs

* Fix async-ness in tests

* Fix incorrect expectation in test

* Fix incorrect evaluations

* Remove skips for tests that are now passing on master

* Expect pass on Linux

🤷‍♂️

* Call the code

* Skip expression evaluation tests on Windows

* Skip whole group, not just one test

* Remove duplicated method from merge

* Fix misplaced close of group

* Remove code that was duplicated from test we copied

Not sure how this ended up in here?

* Re-fix typo
2018-07-10 06:51:12 +01:00

49 lines
1.4 KiB
Dart

// Copyright 2018 The Chromium 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:async';
import 'dart:convert';
import 'package:flutter_tools/src/base/file_system.dart';
import 'package:flutter_tools/src/base/io.dart';
import 'package:flutter_tools/src/base/process_manager.dart';
import '../src/common.dart';
void writeFile(String path, String content) {
fs.file(path)
..createSync(recursive: true)
..writeAsStringSync(content);
}
void writePackages(String folder) {
writeFile(fs.path.join(folder, '.packages'), '''
test:${fs.path.join(fs.currentDirectory.path, 'lib')}/
''');
}
void writePubspec(String folder) {
writeFile(fs.path.join(folder, 'pubspec.yaml'), '''
name: test
dependencies:
flutter:
sdk: flutter
''');
}
Future<void> getPackages(String folder) async {
final List<String> command = <String>[
fs.path.join(getFlutterRoot(), 'bin', 'flutter'),
'packages',
'get'
];
final Process process = await processManager.start(command, workingDirectory: folder);
final StringBuffer errorOutput = new StringBuffer();
process.stderr.transform(utf8.decoder).listen(errorOutput.write);
final int exitCode = await process.exitCode;
if (exitCode != 0)
throw new Exception(
'flutter packages get failed: ${errorOutput.toString()}');
}