blob: 5dd2bebcb044327dd8091645d43adba0cc7d615c [file] [log] [blame]
// 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:async';
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),
<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': false,
'startPaused': true
}
}
),
];
/// Fake device to test `devices` command
class FakeDevice extends Device {
FakeDevice(this.name, String id, [bool ephemeral = true, this._isSupported = true]) : super(
id,
platformType: PlatformType.web,
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;
}