| // 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_tools/src/build_info.dart'; |
| import 'package:flutter_tools/src/device.dart'; |
| import 'package:flutter_tools/src/project.dart'; |
| |
| /// A list of fake devices to test JSON serialization |
| /// (`Device.toJson()` and `--machine` flag for `devices` command) |
| List<FakeDeviceJsonData> fakeDevices = <FakeDeviceJsonData>[ |
| FakeDeviceJsonData( |
| FakeDevice('ephemeral', 'ephemeral', true, true, PlatformType.android), |
| <String, Object>{ |
| 'name': 'ephemeral', |
| 'id': 'ephemeral', |
| 'isSupported': true, |
| 'targetPlatform': 'android-arm', |
| 'emulator': true, |
| 'sdk': 'Test SDK (1.2.3)', |
| 'capabilities': <String, Object>{ |
| 'hotReload': true, |
| 'hotRestart': true, |
| 'screenshot': false, |
| 'fastStart': false, |
| 'flutterExit': true, |
| 'hardwareRendering': true, |
| 'startPaused': true |
| } |
| } |
| ), |
| FakeDeviceJsonData( |
| FakeDevice('webby', 'webby') |
| ..targetPlatform = Future<TargetPlatform>.value(TargetPlatform.web_javascript) |
| ..sdkNameAndVersion = Future<String>.value('Web SDK (1.2.4)'), |
| <String,Object>{ |
| 'name': 'webby', |
| 'id': 'webby', |
| 'isSupported': true, |
| 'targetPlatform': 'web-javascript', |
| 'emulator': true, |
| 'sdk': 'Web SDK (1.2.4)', |
| 'capabilities': <String, Object>{ |
| 'hotReload': true, |
| 'hotRestart': true, |
| 'screenshot': false, |
| 'fastStart': false, |
| 'flutterExit': true, |
| 'hardwareRendering': true, |
| 'startPaused': true |
| } |
| } |
| ), |
| ]; |
| |
| /// Fake device to test `devices` command. |
| class FakeDevice extends Device { |
| FakeDevice(this.name, String id, [bool ephemeral = true, this._isSupported = true, PlatformType type = PlatformType.web]) : super( |
| id, |
| platformType: type, |
| category: Category.mobile, |
| ephemeral: ephemeral, |
| ); |
| |
| final bool _isSupported; |
| |
| @override |
| final String name; |
| |
| @override |
| Future<TargetPlatform> targetPlatform = Future<TargetPlatform>.value(TargetPlatform.android_arm); |
| |
| @override |
| void noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); |
| |
| @override |
| bool isSupportedForProject(FlutterProject flutterProject) => _isSupported; |
| |
| @override |
| bool isSupported() => _isSupported; |
| |
| @override |
| Future<bool> isLocalEmulator = Future<bool>.value(true); |
| |
| @override |
| Future<String> sdkNameAndVersion = Future<String>.value('Test SDK (1.2.3)'); |
| } |
| |
| /// Combines fake device with its canonical JSON representation. |
| class FakeDeviceJsonData { |
| FakeDeviceJsonData(this.dev, this.json); |
| |
| final FakeDevice dev; |
| final Map<String, Object> json; |
| } |