From cf0fcd45363559d70754ab23cf0bd726d443d2ef Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Fri, 24 Apr 2020 17:03:04 -0700 Subject: [PATCH] [flutter_tools] detect ipv6 in fuchsia server url (#55605) --- packages/flutter_tools/lib/src/fuchsia/fuchsia_pm.dart | 2 +- .../test/general.shard/fuchsia/fuchsia_pm_test.dart | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/flutter_tools/lib/src/fuchsia/fuchsia_pm.dart b/packages/flutter_tools/lib/src/fuchsia/fuchsia_pm.dart index 53875dd646..82792e7730 100644 --- a/packages/flutter_tools/lib/src/fuchsia/fuchsia_pm.dart +++ b/packages/flutter_tools/lib/src/fuchsia/fuchsia_pm.dart @@ -192,7 +192,7 @@ class FuchsiaPackageServer { Process _process; /// The URL that can be used by the device to access this package server. - String get url => 'http://$_host:$_port'; + String get url => Uri(scheme: 'http', host: _host, port: _port).toString(); // The name used to reference the server by fuchsia-pkg:// urls. final String name; diff --git a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_pm_test.dart b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_pm_test.dart index 1973eb7186..c29915b94b 100644 --- a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_pm_test.dart +++ b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_pm_test.dart @@ -71,6 +71,16 @@ void main() { FuchsiaArtifacts: () => mockFuchsiaArtifacts, ProcessManager: () => mockProcessManager, }); + + testWithoutContext('ipv6 formatting logic of FuchsiaPackageServer', () { + const String host = 'fe80::ec4:7aff:fecc:ea8f%eno2'; + const int port = 23; + + expect( + FuchsiaPackageServer('a', 'b', host, port).url, + 'http://[fe80::ec4:7aff:fecc:ea8f%25eno2]:23', + ); + }); }); }