Unverified Commit 8dbfc82b authored by Danny Tuppeny's avatar Danny Tuppeny Committed by GitHub

Tweak the display name of emulators (#34785)

parent 39597ce7
...@@ -32,15 +32,14 @@ class AndroidEmulator extends Emulator { ...@@ -32,15 +32,14 @@ class AndroidEmulator extends Emulator {
Map<String, String> _properties; Map<String, String> _properties;
// Android Studio uses the ID with underscores replaced with spaces
// for the name if displayname is not set so we do the same.
@override @override
String get name => _prop('hw.device.name'); String get name => _prop('avd.ini.displayname') ?? id.replaceAll('_', ' ').trim();
@override @override
String get manufacturer => _prop('hw.device.manufacturer'); String get manufacturer => _prop('hw.device.manufacturer');
@override
String get label => _prop('avd.ini.displayname');
@override @override
Category get category => Category.mobile; Category get category => Category.mobile;
......
...@@ -218,7 +218,6 @@ abstract class Emulator { ...@@ -218,7 +218,6 @@ abstract class Emulator {
final bool hasConfig; final bool hasConfig;
String get name; String get name;
String get manufacturer; String get manufacturer;
String get label;
Category get category; Category get category;
PlatformType get platformType; PlatformType get platformType;
...@@ -250,7 +249,7 @@ abstract class Emulator { ...@@ -250,7 +249,7 @@ abstract class Emulator {
emulator.id ?? '', emulator.id ?? '',
emulator.name ?? '', emulator.name ?? '',
emulator.manufacturer ?? '', emulator.manufacturer ?? '',
emulator.label ?? '', emulator.platformType?.toString() ?? '',
]); ]);
} }
......
...@@ -32,9 +32,6 @@ class IOSEmulator extends Emulator { ...@@ -32,9 +32,6 @@ class IOSEmulator extends Emulator {
@override @override
String get manufacturer => 'Apple'; String get manufacturer => 'Apple';
@override
String get label => null;
@override @override
Category get category => Category.mobile; Category get category => Category.mobile;
......
...@@ -23,25 +23,43 @@ void main() { ...@@ -23,25 +23,43 @@ void main() {
expect(emulator.id, emulatorID); expect(emulator.id, emulatorID);
expect(emulator.hasConfig, true); expect(emulator.hasConfig, true);
}); });
testUsingContext('stores expected metadata', () { testUsingContext('reads expected metadata', () {
const String emulatorID = '1234'; const String emulatorID = '1234';
const String name = 'My Test Name';
const String manufacturer = 'Me'; const String manufacturer = 'Me';
const String label = 'The best one'; const String displayName = 'The best one';
final Map<String, String> properties = <String, String>{ final Map<String, String> properties = <String, String>{
'hw.device.name': name,
'hw.device.manufacturer': manufacturer, 'hw.device.manufacturer': manufacturer,
'avd.ini.displayname': label, 'avd.ini.displayname': displayName,
}; };
final AndroidEmulator emulator = final AndroidEmulator emulator =
AndroidEmulator(emulatorID, properties); AndroidEmulator(emulatorID, properties);
expect(emulator.id, emulatorID); expect(emulator.id, emulatorID);
expect(emulator.name, name); expect(emulator.name, displayName);
expect(emulator.manufacturer, manufacturer); expect(emulator.manufacturer, manufacturer);
expect(emulator.label, label);
expect(emulator.category, Category.mobile); expect(emulator.category, Category.mobile);
expect(emulator.platformType, PlatformType.android); expect(emulator.platformType, PlatformType.android);
}); });
testUsingContext('prefers displayname for name', () {
const String emulatorID = '1234';
const String displayName = 'The best one';
final Map<String, String> properties = <String, String>{
'avd.ini.displayname': displayName,
};
final AndroidEmulator emulator =
AndroidEmulator(emulatorID, properties);
expect(emulator.name, displayName);
});
testUsingContext('uses cleaned up ID if no displayname is set', () {
// Android Studio uses the ID with underscores replaced with spaces
// for the name if displayname is not set so we do the same.
const String emulatorID = 'This_is_my_ID';
final Map<String, String> properties = <String, String>{
'avd.ini.notadisplayname': 'this is not a display name',
};
final AndroidEmulator emulator =
AndroidEmulator(emulatorID, properties);
expect(emulator.name, 'This is my ID');
});
testUsingContext('parses ini files', () { testUsingContext('parses ini files', () {
const String iniFile = ''' const String iniFile = '''
hw.device.name=My Test Name hw.device.name=My Test Name
......
...@@ -46,11 +46,11 @@ void main() { ...@@ -46,11 +46,11 @@ void main() {
testUsingContext('getEmulatorsById', () async { testUsingContext('getEmulatorsById', () async {
final _MockEmulator emulator1 = final _MockEmulator emulator1 =
_MockEmulator('Nexus_5', 'Nexus 5', 'Google', ''); _MockEmulator('Nexus_5', 'Nexus 5', 'Google');
final _MockEmulator emulator2 = final _MockEmulator emulator2 =
_MockEmulator('Nexus_5X_API_27_x86', 'Nexus 5X', 'Google', ''); _MockEmulator('Nexus_5X_API_27_x86', 'Nexus 5X', 'Google');
final _MockEmulator emulator3 = final _MockEmulator emulator3 =
_MockEmulator('iOS Simulator', 'iOS Simulator', 'Apple', ''); _MockEmulator('iOS Simulator', 'iOS Simulator', 'Apple');
final List<Emulator> emulators = <Emulator>[ final List<Emulator> emulators = <Emulator>[
emulator1, emulator1,
emulator2, emulator2,
...@@ -160,7 +160,7 @@ class TestEmulatorManager extends EmulatorManager { ...@@ -160,7 +160,7 @@ class TestEmulatorManager extends EmulatorManager {
} }
class _MockEmulator extends Emulator { class _MockEmulator extends Emulator {
_MockEmulator(String id, this.name, this.manufacturer, this.label) _MockEmulator(String id, this.name, this.manufacturer)
: super(id, true); : super(id, true);
@override @override
...@@ -169,9 +169,6 @@ class _MockEmulator extends Emulator { ...@@ -169,9 +169,6 @@ class _MockEmulator extends Emulator {
@override @override
final String manufacturer; final String manufacturer;
@override
final String label;
@override @override
Category get category => Category.mobile; Category get category => Category.mobile;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment