mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
93 lines
3.0 KiB
Dart
93 lines
3.0 KiB
Dart
// 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:convert';
|
|
|
|
import 'package:file/file.dart';
|
|
import 'package:args/command_runner.dart';
|
|
import 'package:flutter_tools/src/device.dart';
|
|
import 'package:flutter_tools/src/web/chrome.dart';
|
|
import 'package:flutter_tools/src/commands/devices.dart';
|
|
import 'package:flutter_tools/src/base/logger.dart';
|
|
import 'package:flutter_tools/src/base/config.dart';
|
|
import 'package:flutter_tools/src/globals.dart' as globals;
|
|
import 'package:flutter_tools/src/base/context.dart';
|
|
|
|
import '../../src/common.dart';
|
|
import '../../src/context.dart';
|
|
|
|
void main() {
|
|
group('devices', () {
|
|
Directory configDir;
|
|
Config config;
|
|
|
|
tearDown(() {
|
|
if (configDir != null) {
|
|
tryToDelete(configDir);
|
|
configDir = null;
|
|
}
|
|
});
|
|
|
|
setUpAll(() {
|
|
configDir ??= globals.fs.systemTempDirectory.createTempSync(
|
|
'flutter_config_dir_test.',
|
|
);
|
|
config = Config.test(
|
|
Config.kFlutterSettings,
|
|
directory: configDir,
|
|
logger: globals.logger,
|
|
)..setValue('enable-web', true);
|
|
});
|
|
|
|
// Test assumes no devices connected.
|
|
// Should return only `web-server` device
|
|
testUsingContext('Test the --machine flag', () async {
|
|
final BufferLogger logger = context.get<Logger>() as BufferLogger;
|
|
final DevicesCommand command = DevicesCommand();
|
|
final CommandRunner<void> runner = createTestCommandRunner(command);
|
|
await runner.run(<String>['devices', '--machine']);
|
|
expect(
|
|
json.decode(logger.statusText),
|
|
<Map<String,Object>>[
|
|
<String, Object>{
|
|
'name': 'Web Server',
|
|
'id': 'web-server',
|
|
'isSupported': true,
|
|
'targetPlatform': 'web-javascript',
|
|
'emulator': false,
|
|
'sdk': 'Flutter Tools',
|
|
'capabilities': <String, Object>{
|
|
'hotReload': true,
|
|
'hotRestart': true,
|
|
'screenshot': false,
|
|
'fastStart': false,
|
|
'flutterExit': true,
|
|
'hardwareRendering': false,
|
|
'startPaused': true
|
|
}
|
|
}
|
|
]
|
|
);
|
|
},
|
|
overrides: <Type, Generator>{
|
|
DeviceManager: () => DeviceManager(),
|
|
Config: () => config,
|
|
ChromeLauncher: () => _DisabledChromeLauncher(),
|
|
});
|
|
});
|
|
}
|
|
|
|
// Without ChromeLauncher DeviceManager constructor fails with noSuchMethodError
|
|
// trying to call canFindChrome on null
|
|
// Also, Chrome may have different versions on different machines and
|
|
// JSON will not match, because the `sdk` field of the Device contains version number
|
|
// Mock the launcher to make it appear that we don't have Chrome.
|
|
class _DisabledChromeLauncher implements ChromeLauncher {
|
|
@override
|
|
bool canFindChrome() => false;
|
|
|
|
@override
|
|
Future<Chrome> launch(String url, {bool headless = false, int debugPort, bool skipCheck = false, Directory cacheDir})
|
|
=> Future<Chrome>.error('Chrome disabled');
|
|
} |