From aa1ae78bcecd73d13ed5599c13b28a5623f71d1f Mon Sep 17 00:00:00 2001 From: Jaideep Prasad Date: Mon, 24 Feb 2020 18:30:15 +0530 Subject: [PATCH 01/11] updated _launchUniversalLinkIos updated _launchUniversalLinkIos to launch the url passed. It could also be done that we remove the url argument passed and open the hardcoded url. Either of the case needs to be done. --- packages/url_launcher/url_launcher/example/lib/main.dart | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/url_launcher/url_launcher/example/lib/main.dart b/packages/url_launcher/url_launcher/example/lib/main.dart index 00ab6c5b047d..f7d90c4bef65 100644 --- a/packages/url_launcher/url_launcher/example/lib/main.dart +++ b/packages/url_launcher/url_launcher/example/lib/main.dart @@ -91,15 +91,15 @@ class _MyHomePageState extends State { } Future _launchUniversalLinkIos(String url) async { - if (await canLaunch('https://youtube.com')) { + if (await canLaunch(url)) { final bool nativeAppLaunchSucceeded = await launch( - 'https://youtube.com', + url, forceSafariVC: false, universalLinksOnly: true, ); if (!nativeAppLaunchSucceeded) { await launch( - 'https://youtube.com', + url, forceSafariVC: true, ); } From efa3fe087ba306592cbbbc42f9b50f31c1ad81b9 Mon Sep 17 00:00:00 2001 From: Jaideep Prasad Date: Tue, 25 Feb 2020 15:01:40 +0530 Subject: [PATCH 02/11] updated pubspec.yaml --- packages/url_launcher/url_launcher/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/url_launcher/url_launcher/pubspec.yaml b/packages/url_launcher/url_launcher/pubspec.yaml index ba929709b01e..f0568e0029c0 100644 --- a/packages/url_launcher/url_launcher/pubspec.yaml +++ b/packages/url_launcher/url_launcher/pubspec.yaml @@ -2,7 +2,7 @@ name: url_launcher description: Flutter plugin for launching a URL on Android and iOS. Supports web, phone, SMS, and email schemes. homepage: https://github.com/flutter/plugins/tree/master/packages/url_launcher/url_launcher -version: 5.4.2 +version: 5.4.3 flutter: plugin: From 535bded9b7cc14f836a1e611855cf5599df2502c Mon Sep 17 00:00:00 2001 From: Jaideep Prasad Date: Tue, 25 Feb 2020 15:04:09 +0530 Subject: [PATCH 03/11] Updated ChangeLog.md --- packages/url_launcher/url_launcher/CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/url_launcher/url_launcher/CHANGELOG.md b/packages/url_launcher/url_launcher/CHANGELOG.md index 0cab10180cd8..3097a2122ae1 100644 --- a/packages/url_launcher/url_launcher/CHANGELOG.md +++ b/packages/url_launcher/url_launcher/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.4.3 + +* Fixed the launchUniversalLinkIos method. + ## 5.4.2 * Make the pedantic dev_dependency explicit. From ecf8bc1766f6accf16627972316a6693ea5bda78 Mon Sep 17 00:00:00 2001 From: Jaideep Prasad Date: Wed, 26 Feb 2020 08:41:05 +0530 Subject: [PATCH 04/11] Updated mac_os example --- .../url_launcher/url_launcher_macos/example/lib/main.dart | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/url_launcher/url_launcher_macos/example/lib/main.dart b/packages/url_launcher/url_launcher_macos/example/lib/main.dart index f079bb272663..b5cce7482d07 100644 --- a/packages/url_launcher/url_launcher_macos/example/lib/main.dart +++ b/packages/url_launcher/url_launcher_macos/example/lib/main.dart @@ -90,15 +90,15 @@ class _MyHomePageState extends State { } Future _launchUniversalLinkIos(String url) async { - if (await canLaunch('https://youtube.com')) { + if (await canLaunch(url)) { final bool nativeAppLaunchSucceeded = await launch( - 'https://youtube.com', + url, forceSafariVC: false, universalLinksOnly: true, ); if (!nativeAppLaunchSucceeded) { await launch( - 'https://youtube.com', + url, forceSafariVC: true, ); } From 33b5958ad614e13834022218148a66077c1c628a Mon Sep 17 00:00:00 2001 From: Jaideep Prasad Date: Wed, 26 Feb 2020 09:01:51 +0530 Subject: [PATCH 05/11] Updated pubspec for mac_os --- packages/url_launcher/url_launcher_macos/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/url_launcher/url_launcher_macos/pubspec.yaml b/packages/url_launcher/url_launcher_macos/pubspec.yaml index 3f6d5e04b026..04a6b33f1e68 100644 --- a/packages/url_launcher/url_launcher_macos/pubspec.yaml +++ b/packages/url_launcher/url_launcher_macos/pubspec.yaml @@ -1,6 +1,6 @@ name: url_launcher_macos description: macOS implementation of the url_launcher plugin. -version: 0.0.1+4 +version: 0.0.1+5 homepage: https://github.com/flutter/plugins/tree/master/packages/url_launcher/url_launcher_macos flutter: From e2c73c921cf25922286f0a9490964866a519873f Mon Sep 17 00:00:00 2001 From: Jaideep Prasad Date: Wed, 26 Feb 2020 09:02:57 +0530 Subject: [PATCH 06/11] Updated ChangeLog.md --- packages/url_launcher/url_launcher_macos/CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/url_launcher/url_launcher_macos/CHANGELOG.md b/packages/url_launcher/url_launcher_macos/CHANGELOG.md index 6ecac5bd9faf..fc2448201e22 100644 --- a/packages/url_launcher/url_launcher_macos/CHANGELOG.md +++ b/packages/url_launcher/url_launcher_macos/CHANGELOG.md @@ -1,3 +1,7 @@ +# 0.0.1+5 + +* Fixed the launchUniversalLinkIos method. + # 0.0.1+4 * Make the pedantic dev_dependency explicit. From 6ed75e74b313fa4661e0f4f3696169697b320d3e Mon Sep 17 00:00:00 2001 From: Jaideep Prasad Date: Thu, 27 Feb 2020 18:25:51 +0530 Subject: [PATCH 07/11] Added mockito --- packages/url_launcher/url_launcher/example/pubspec.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/url_launcher/url_launcher/example/pubspec.yaml b/packages/url_launcher/url_launcher/example/pubspec.yaml index 065693e1432c..1eb3e603696f 100644 --- a/packages/url_launcher/url_launcher/example/pubspec.yaml +++ b/packages/url_launcher/url_launcher/example/pubspec.yaml @@ -12,6 +12,8 @@ dev_dependencies: flutter_driver: sdk: flutter pedantic: ^1.8.0 + mockito: ^4.1.1 + plugin_platform_interface: ^1.0.0 flutter: uses-material-design: true From be91c2174cf54e09f2411152a33e29af1552668a Mon Sep 17 00:00:00 2001 From: Jaideep Prasad Date: Thu, 27 Feb 2020 18:26:51 +0530 Subject: [PATCH 08/11] Added widget test for example --- .../test/url_launcher_example_test.dart | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 packages/url_launcher/url_launcher/example/test/url_launcher_example_test.dart diff --git a/packages/url_launcher/url_launcher/example/test/url_launcher_example_test.dart b/packages/url_launcher/url_launcher/example/test/url_launcher_example_test.dart new file mode 100644 index 000000000000..921354e92422 --- /dev/null +++ b/packages/url_launcher/url_launcher/example/test/url_launcher_example_test.dart @@ -0,0 +1,40 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:flutter/material.dart'; +import 'package:mockito/mockito.dart'; +import 'package:plugin_platform_interface/plugin_platform_interface.dart'; +import 'package:url_launcher_platform_interface/url_launcher_platform_interface.dart'; +import 'package:url_launcher_example/main.dart'; + +void main() { + final MockUrlLauncher mock = MockUrlLauncher(); + UrlLauncherPlatform.instance = mock; + + testWidgets('Can open URLs', (WidgetTester tester) async { + await tester.pumpWidget(MyApp()); + const String defaultUrl = 'https://www.cylog.org/headers/'; + when(mock.canLaunch(defaultUrl)).thenAnswer((_) => Future.value(true)); + const Map defaultHeaders = {'my_header_key': 'my_header_value'}; + verifyNever(mock.launch(defaultUrl, + useSafariVC: false, + useWebView: false, + enableDomStorage: false, + enableJavaScript: false, + universalLinksOnly: false, + headers: defaultHeaders)); + + Finder browserlaunchBtn = find.widgetWithText(RaisedButton, 'Launch in browser'); + expect(browserlaunchBtn, findsOneWidget); + await tester.tap(browserlaunchBtn); + + verify(mock.launch(defaultUrl, + useSafariVC: false, + useWebView: false, + enableDomStorage: false, + enableJavaScript: false, + universalLinksOnly: false, + headers: defaultHeaders)) + .called(1); + }); +} + +class MockUrlLauncher extends Mock with MockPlatformInterfaceMixin implements UrlLauncherPlatform {} From d1758809fe4eca227e83373f933bd05afb028ded Mon Sep 17 00:00:00 2001 From: Jaideep Prasad Date: Thu, 27 Feb 2020 19:44:02 +0530 Subject: [PATCH 09/11] Updating test --- .../example/test/url_launcher_example_test.dart | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/url_launcher/url_launcher/example/test/url_launcher_example_test.dart b/packages/url_launcher/url_launcher/example/test/url_launcher_example_test.dart index 921354e92422..8d1f1cc855df 100644 --- a/packages/url_launcher/url_launcher/example/test/url_launcher_example_test.dart +++ b/packages/url_launcher/url_launcher/example/test/url_launcher_example_test.dart @@ -13,7 +13,9 @@ void main() { await tester.pumpWidget(MyApp()); const String defaultUrl = 'https://www.cylog.org/headers/'; when(mock.canLaunch(defaultUrl)).thenAnswer((_) => Future.value(true)); - const Map defaultHeaders = {'my_header_key': 'my_header_value'}; + const Map defaultHeaders = { ++ 'my_header_key': 'my_header_value' ++ }; verifyNever(mock.launch(defaultUrl, useSafariVC: false, useWebView: false, @@ -22,7 +24,8 @@ void main() { universalLinksOnly: false, headers: defaultHeaders)); - Finder browserlaunchBtn = find.widgetWithText(RaisedButton, 'Launch in browser'); ++ Finder browserlaunchBtn = ++ find.widgetWithText(RaisedButton, 'Launch in browser'); expect(browserlaunchBtn, findsOneWidget); await tester.tap(browserlaunchBtn); @@ -37,4 +40,6 @@ void main() { }); } -class MockUrlLauncher extends Mock with MockPlatformInterfaceMixin implements UrlLauncherPlatform {} ++class MockUrlLauncher extends Mock ++ with MockPlatformInterfaceMixin ++ implements UrlLauncherPlatform {} From bc0cca8e512c24268ed4d3e0a2e2a66adb0a4889 Mon Sep 17 00:00:00 2001 From: Jaideep Prasad Date: Thu, 27 Feb 2020 19:45:47 +0530 Subject: [PATCH 10/11] updating test From d026d5560b8321cb2577cf0fde0ec53021efc9d2 Mon Sep 17 00:00:00 2001 From: Jaideep Prasad Date: Thu, 27 Feb 2020 19:54:52 +0530 Subject: [PATCH 11/11] updating test --- .../example/test/url_launcher_example_test.dart | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/url_launcher/url_launcher/example/test/url_launcher_example_test.dart b/packages/url_launcher/url_launcher/example/test/url_launcher_example_test.dart index 8d1f1cc855df..41b9f6f5ec6c 100644 --- a/packages/url_launcher/url_launcher/example/test/url_launcher_example_test.dart +++ b/packages/url_launcher/url_launcher/example/test/url_launcher_example_test.dart @@ -14,8 +14,8 @@ void main() { const String defaultUrl = 'https://www.cylog.org/headers/'; when(mock.canLaunch(defaultUrl)).thenAnswer((_) => Future.value(true)); const Map defaultHeaders = { -+ 'my_header_key': 'my_header_value' -+ }; + 'my_header_key': 'my_header_value' + }; verifyNever(mock.launch(defaultUrl, useSafariVC: false, useWebView: false, @@ -24,8 +24,8 @@ void main() { universalLinksOnly: false, headers: defaultHeaders)); -+ Finder browserlaunchBtn = -+ find.widgetWithText(RaisedButton, 'Launch in browser'); + Finder browserlaunchBtn = + find.widgetWithText(RaisedButton, 'Launch in browser'); expect(browserlaunchBtn, findsOneWidget); await tester.tap(browserlaunchBtn); @@ -40,6 +40,6 @@ void main() { }); } -+class MockUrlLauncher extends Mock -+ with MockPlatformInterfaceMixin -+ implements UrlLauncherPlatform {} +class MockUrlLauncher extends Mock + with MockPlatformInterfaceMixin + implements UrlLauncherPlatform {}