| // 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:flutter_devicelab/framework/devices.dart'; |
| import 'package:flutter_devicelab/framework/framework.dart'; |
| import 'package:flutter_devicelab/framework/ios.dart'; |
| import 'package:flutter_devicelab/framework/task_result.dart'; |
| import 'package:flutter_devicelab/framework/utils.dart'; |
| import 'package:path/path.dart' as path; |
| |
| Future<void> main() async { |
| deviceOperatingSystem = DeviceOperatingSystem.ios; |
| await task(() async { |
| final String projectDirectory = '${flutterDirectory.path}/dev/integration_tests/ios_platform_view_tests'; |
| |
| await inDirectory(projectDirectory, () async { |
| |
| // To address "Failed to terminate" failure. |
| section('Uninstall previously installed app'); |
| |
| await flutter( |
| 'install', |
| options: <String>[ |
| '--uninstall-only', |
| ], |
| ); |
| |
| section('Build clean'); |
| |
| await flutter('clean'); |
| |
| section('Build platform view app'); |
| |
| await flutter( |
| 'build', |
| options: <String>[ |
| 'ios', |
| '-v', |
| '--release', |
| '--config-only', |
| ], |
| ); |
| }); |
| |
| section('Run platform view XCUITests'); |
| |
| final Device device = await devices.workingDevice; |
| if (!await runXcodeTests( |
| platformDirectory: path.join(projectDirectory, 'ios'), |
| destination: 'id=${device.deviceId}', |
| testName: 'native_platform_view_ui_tests_ios', |
| )) { |
| return TaskResult.failure('Platform view XCUITests failed'); |
| } |
| |
| return TaskResult.success(null); |
| }); |
| } |