remove testUsingContext (#70482)
diff --git a/packages/flutter_tools/lib/src/context_runner.dart b/packages/flutter_tools/lib/src/context_runner.dart
index fc65f44..088f002 100644
--- a/packages/flutter_tools/lib/src/context_runner.dart
+++ b/packages/flutter_tools/lib/src/context_runner.dart
@@ -229,7 +229,10 @@
featureFlags: featureFlags,
platform: globals.platform,
),
- MDnsObservatoryDiscovery: () => MDnsObservatoryDiscovery(),
+ MDnsObservatoryDiscovery: () => MDnsObservatoryDiscovery(
+ logger: globals.logger,
+ flutterUsage: globals.flutterUsage,
+ ),
OperatingSystemUtils: () => OperatingSystemUtils(
fileSystem: globals.fs,
logger: globals.logger,
diff --git a/packages/flutter_tools/lib/src/mdns_discovery.dart b/packages/flutter_tools/lib/src/mdns_discovery.dart
index ac76abd..695ccb8 100644
--- a/packages/flutter_tools/lib/src/mdns_discovery.dart
+++ b/packages/flutter_tools/lib/src/mdns_discovery.dart
@@ -8,24 +8,30 @@
import 'base/common.dart';
import 'base/context.dart';
import 'base/io.dart';
+import 'base/logger.dart';
import 'build_info.dart';
import 'device.dart';
-import 'globals.dart' as globals;
import 'reporting/reporting.dart';
/// A wrapper around [MDnsClient] to find a Dart observatory instance.
class MDnsObservatoryDiscovery {
/// Creates a new [MDnsObservatoryDiscovery] object.
///
- /// The [client] parameter will be defaulted to a new [MDnsClient] if null.
+ /// The [_client] parameter will be defaulted to a new [MDnsClient] if null.
/// The [applicationId] parameter may be null, and can be used to
/// automatically select which application to use if multiple are advertising
/// Dart observatory ports.
- MDnsObservatoryDiscovery({MDnsClient mdnsClient})
- : client = mdnsClient ?? MDnsClient();
+ MDnsObservatoryDiscovery({
+ MDnsClient mdnsClient,
+ @required Logger logger,
+ @required Usage flutterUsage,
+ }): _client = mdnsClient ?? MDnsClient(),
+ _logger = logger,
+ _flutterUsage = flutterUsage;
- /// The [MDnsClient] used to do a lookup.
- final MDnsClient client;
+ final MDnsClient _client;
+ final Logger _logger;
+ final Usage _flutterUsage;
@visibleForTesting
static const String dartObservatoryName = '_dartobservatory._tcp.local';
@@ -53,16 +59,16 @@
// TODO(jonahwilliams): use `deviceVmservicePort` to filter mdns results.
@visibleForTesting
Future<MDnsObservatoryDiscoveryResult> query({String applicationId, int deviceVmservicePort}) async {
- globals.printTrace('Checking for advertised Dart observatories...');
+ _logger.printTrace('Checking for advertised Dart observatories...');
try {
- await client.start();
- final List<PtrResourceRecord> pointerRecords = await client
+ await _client.start();
+ final List<PtrResourceRecord> pointerRecords = await _client
.lookup<PtrResourceRecord>(
ResourceRecordQuery.serverPointer(dartObservatoryName),
)
.toList();
if (pointerRecords.isEmpty) {
- globals.printTrace('No pointer records found.');
+ _logger.printTrace('No pointer records found.');
return null;
}
// We have no guarantee that we won't get multiple hits from the same
@@ -94,9 +100,9 @@
} else {
domainName = pointerRecords[0].domainName;
}
- globals.printTrace('Checking for available port on $domainName');
+ _logger.printTrace('Checking for available port on $domainName');
// Here, if we get more than one, it should just be a duplicate.
- final List<SrvResourceRecord> srv = await client
+ final List<SrvResourceRecord> srv = await _client
.lookup<SrvResourceRecord>(
ResourceRecordQuery.service(domainName),
)
@@ -105,11 +111,11 @@
return null;
}
if (srv.length > 1) {
- globals.printError('Unexpectedly found more than one observatory report for $domainName '
+ _logger.printError('Unexpectedly found more than one observatory report for $domainName '
'- using first one (${srv.first.port}).');
}
- globals.printTrace('Checking for authentication code for $domainName');
- final List<TxtResourceRecord> txt = await client
+ _logger.printTrace('Checking for authentication code for $domainName');
+ final List<TxtResourceRecord> txt = await _client
.lookup<TxtResourceRecord>(
ResourceRecordQuery.text(domainName),
)
@@ -133,7 +139,7 @@
}
return MDnsObservatoryDiscoveryResult(srv.first.port, authCode);
} finally {
- client.stop();
+ _client.stop();
}
}
@@ -166,14 +172,14 @@
// If there's not an ipv4 link local address in `NetworkInterfaces.list`,
// then request user interventions with a `printError()` if possible.
Future<void> _checkForIPv4LinkLocal(Device device) async {
- globals.printTrace(
+ _logger.printTrace(
'mDNS query failed. Checking for an interface with a ipv4 link local address.'
);
final List<NetworkInterface> interfaces = await listNetworkInterfaces(
includeLinkLocal: true,
type: InternetAddressType.IPv4,
);
- if (globals.logger.isVerbose) {
+ if (_logger.isVerbose) {
_logInterfaces(interfaces);
}
final bool hasIPv4LinkLocal = interfaces.any(
@@ -182,14 +188,14 @@
),
);
if (hasIPv4LinkLocal) {
- globals.printTrace('An interface with an ipv4 link local address was found.');
+ _logger.printTrace('An interface with an ipv4 link local address was found.');
return;
}
final TargetPlatform targetPlatform = await device.targetPlatform;
switch (targetPlatform) {
case TargetPlatform.ios:
- UsageEvent('ios-mdns', 'no-ipv4-link-local', flutterUsage: globals.flutterUsage).send();
- globals.printError(
+ UsageEvent('ios-mdns', 'no-ipv4-link-local', flutterUsage: _flutterUsage).send();
+ _logger.printError(
'The mDNS query for an attached iOS device failed. It may '
'be necessary to disable the "Personal Hotspot" on the device, and '
'to ensure that the "Disable unless needed" setting is unchecked '
@@ -198,18 +204,18 @@
);
break;
default:
- globals.printTrace('No interface with an ipv4 link local address was found.');
+ _logger.printTrace('No interface with an ipv4 link local address was found.');
break;
}
}
void _logInterfaces(List<NetworkInterface> interfaces) {
for (final NetworkInterface interface in interfaces) {
- if (globals.logger.isVerbose) {
- globals.printTrace('Found interface "${interface.name}":');
+ if (_logger.isVerbose) {
+ _logger.printTrace('Found interface "${interface.name}":');
for (final InternetAddress address in interface.addresses) {
final String linkLocal = address.isLinkLocal ? 'link local' : '';
- globals.printTrace('\tBound address: "${address.address}" $linkLocal');
+ _logger.printTrace('\tBound address: "${address.address}" $linkLocal');
}
}
}
diff --git a/packages/flutter_tools/test/general.shard/mdns_discovery_test.dart b/packages/flutter_tools/test/general.shard/mdns_discovery_test.dart
index ed7fa15..41c2c2b 100644
--- a/packages/flutter_tools/test/general.shard/mdns_discovery_test.dart
+++ b/packages/flutter_tools/test/general.shard/mdns_discovery_test.dart
@@ -3,13 +3,14 @@
// found in the LICENSE file.
import 'package:flutter_tools/src/base/io.dart';
+import 'package:flutter_tools/src/base/logger.dart';
import 'package:flutter_tools/src/device.dart';
import 'package:flutter_tools/src/mdns_discovery.dart';
+import 'package:flutter_tools/src/reporting/reporting.dart';
import 'package:mockito/mockito.dart';
import 'package:multicast_dns/multicast_dns.dart';
import '../src/common.dart';
-import '../src/context.dart';
import '../src/mocks.dart';
void main() {
@@ -55,27 +56,35 @@
return client;
}
- testUsingContext('No ports available', () async {
+ testWithoutContext('No ports available', () async {
final MDnsClient client = getMockClient(<PtrResourceRecord>[], <String, List<SrvResourceRecord>>{});
- final MDnsObservatoryDiscovery portDiscovery = MDnsObservatoryDiscovery(mdnsClient: client);
+ final MDnsObservatoryDiscovery portDiscovery = MDnsObservatoryDiscovery(
+ mdnsClient: client,
+ logger: BufferLogger.test(),
+ flutterUsage: Usage.test(),
+ );
final int port = (await portDiscovery.query())?.port;
expect(port, isNull);
});
- testUsingContext('Prints helpful message when there is no ipv4 link local address.', () async {
+ testWithoutContext('Prints helpful message when there is no ipv4 link local address.', () async {
final MDnsClient client = getMockClient(<PtrResourceRecord>[], <String, List<SrvResourceRecord>>{});
- final MDnsObservatoryDiscovery portDiscovery = MDnsObservatoryDiscovery(mdnsClient: client);
-
+ final BufferLogger logger = BufferLogger.test();
+ final MDnsObservatoryDiscovery portDiscovery = MDnsObservatoryDiscovery(
+ mdnsClient: client,
+ logger: logger,
+ flutterUsage: Usage.test(),
+ );
final Uri uri = await portDiscovery.getObservatoryUri(
'',
MockIOSDevice(),
);
expect(uri, isNull);
- expect(testLogger.errorText, contains('Personal Hotspot'));
+ expect(logger.errorText, contains('Personal Hotspot'));
});
- testUsingContext('One port available, no appId', () async {
+ testWithoutContext('One port available, no appId', () async {
final MDnsClient client = getMockClient(
<PtrResourceRecord>[
PtrResourceRecord('foo', year3000, domainName: 'bar'),
@@ -87,12 +96,16 @@
},
);
- final MDnsObservatoryDiscovery portDiscovery = MDnsObservatoryDiscovery(mdnsClient: client);
+ final MDnsObservatoryDiscovery portDiscovery = MDnsObservatoryDiscovery(
+ mdnsClient: client,
+ logger: BufferLogger.test(),
+ flutterUsage: Usage.test(),
+ );
final int port = (await portDiscovery.query())?.port;
expect(port, 123);
});
- testUsingContext('One port available, no appId, with authCode', () async {
+ testWithoutContext('One port available, no appId, with authCode', () async {
final MDnsClient client = getMockClient(
<PtrResourceRecord>[
PtrResourceRecord('foo', year3000, domainName: 'bar'),
@@ -111,13 +124,15 @@
final MDnsObservatoryDiscovery portDiscovery = MDnsObservatoryDiscovery(
mdnsClient: client,
+ logger: BufferLogger.test(),
+ flutterUsage: Usage.test(),
);
final MDnsObservatoryDiscoveryResult result = await portDiscovery.query();
expect(result?.port, 123);
expect(result?.authCode, 'xyz/');
});
- testUsingContext('Multiple ports available, without appId', () async {
+ testWithoutContext('Multiple ports available, without appId', () async {
final MDnsClient client = getMockClient(
<PtrResourceRecord>[
PtrResourceRecord('foo', year3000, domainName: 'bar'),
@@ -133,11 +148,15 @@
},
);
- final MDnsObservatoryDiscovery portDiscovery = MDnsObservatoryDiscovery(mdnsClient: client);
+ final MDnsObservatoryDiscovery portDiscovery = MDnsObservatoryDiscovery(
+ mdnsClient: client,
+ logger: BufferLogger.test(),
+ flutterUsage: Usage.test(),
+ );
expect(portDiscovery.query, throwsToolExit());
});
- testUsingContext('Multiple ports available, with appId', () async {
+ testWithoutContext('Multiple ports available, with appId', () async {
final MDnsClient client = getMockClient(
<PtrResourceRecord>[
PtrResourceRecord('foo', year3000, domainName: 'bar'),
@@ -153,12 +172,16 @@
},
);
- final MDnsObservatoryDiscovery portDiscovery = MDnsObservatoryDiscovery(mdnsClient: client);
+ final MDnsObservatoryDiscovery portDiscovery = MDnsObservatoryDiscovery(
+ mdnsClient: client,
+ logger: BufferLogger.test(),
+ flutterUsage: Usage.test(),
+ );
final int port = (await portDiscovery.query(applicationId: 'fiz'))?.port;
expect(port, 321);
});
- testUsingContext('Multiple ports available per process, with appId', () async {
+ testWithoutContext('Multiple ports available per process, with appId', () async {
final MDnsClient client = getMockClient(
<PtrResourceRecord>[
PtrResourceRecord('foo', year3000, domainName: 'bar'),
@@ -176,23 +199,31 @@
},
);
- final MDnsObservatoryDiscovery portDiscovery = MDnsObservatoryDiscovery(mdnsClient: client);
+ final MDnsObservatoryDiscovery portDiscovery = MDnsObservatoryDiscovery(
+ mdnsClient: client,
+ logger: BufferLogger.test(),
+ flutterUsage: Usage.test(),
+ );
final int port = (await portDiscovery.query(applicationId: 'bar'))?.port;
expect(port, 1234);
});
- testUsingContext('Query returns null', () async {
+ testWithoutContext('Query returns null', () async {
final MDnsClient client = getMockClient(
<PtrResourceRecord>[],
<String, List<SrvResourceRecord>>{},
);
- final MDnsObservatoryDiscovery portDiscovery = MDnsObservatoryDiscovery(mdnsClient: client);
+ final MDnsObservatoryDiscovery portDiscovery = MDnsObservatoryDiscovery(
+ mdnsClient: client,
+ logger: BufferLogger.test(),
+ flutterUsage: Usage.test(),
+ );
final int port = (await portDiscovery.query(applicationId: 'bar'))?.port;
expect(port, isNull);
});
- testUsingContext('Throws Exception when client throws OSError on start', () async {
+ testWithoutContext('Throws Exception when client throws OSError on start', () async {
final MDnsClient client = MockMDnsClient();
when(client.start()).thenAnswer((_) {
throw const OSError('Operation not suppoted on socket', 102);
@@ -200,6 +231,8 @@
final MDnsObservatoryDiscovery portDiscovery = MDnsObservatoryDiscovery(
mdnsClient: client,
+ logger: BufferLogger.test(),
+ flutterUsage: Usage.test(),
);
expect(
() async => await portDiscovery.query(),
@@ -207,7 +240,7 @@
);
});
- testUsingContext('Correctly builds Observatory URI with hostVmservicePort == 0', () async {
+ testWithoutContext('Correctly builds Observatory URI with hostVmservicePort == 0', () async {
final MDnsClient client = getMockClient(
<PtrResourceRecord>[
PtrResourceRecord('foo', year3000, domainName: 'bar'),
@@ -221,7 +254,11 @@
final MockIOSDevice mockDevice = MockIOSDevice();
when(mockDevice.portForwarder).thenReturn(const NoOpDevicePortForwarder());
- final MDnsObservatoryDiscovery portDiscovery = MDnsObservatoryDiscovery(mdnsClient: client);
+ final MDnsObservatoryDiscovery portDiscovery = MDnsObservatoryDiscovery(
+ mdnsClient: client,
+ logger: BufferLogger.test(),
+ flutterUsage: Usage.test(),
+ );
final Uri uri = await portDiscovery.getObservatoryUri('bar', mockDevice, hostVmservicePort: 0);
expect(uri.toString(), 'http://127.0.0.1:123/');
});