Skip to content

Commit 932a047

Browse files
jddeepEgor
authored and
Egor
committed
[url_launcher] fix: url_launcher - updated _launchUniversalLinkIos and Added Tests (flutter#2552)
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.
1 parent 0618fdf commit 932a047

File tree

8 files changed

+63
-8
lines changed

8 files changed

+63
-8
lines changed

packages/url_launcher/url_launcher/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 5.4.3
2+
3+
* Fixed the launchUniversalLinkIos method.
4+
15
## 5.4.2
26

37
* Make the pedantic dev_dependency explicit.

packages/url_launcher/url_launcher/example/lib/main.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,15 +91,15 @@ class _MyHomePageState extends State<MyHomePage> {
9191
}
9292

9393
Future<void> _launchUniversalLinkIos(String url) async {
94-
if (await canLaunch('https://youtube.com')) {
94+
if (await canLaunch(url)) {
9595
final bool nativeAppLaunchSucceeded = await launch(
96-
'https://youtube.com',
96+
url,
9797
forceSafariVC: false,
9898
universalLinksOnly: true,
9999
);
100100
if (!nativeAppLaunchSucceeded) {
101101
await launch(
102-
'https://youtube.com',
102+
url,
103103
forceSafariVC: true,
104104
);
105105
}

packages/url_launcher/url_launcher/example/pubspec.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ dev_dependencies:
1212
flutter_driver:
1313
sdk: flutter
1414
pedantic: ^1.8.0
15+
mockito: ^4.1.1
16+
plugin_platform_interface: ^1.0.0
1517

1618
flutter:
1719
uses-material-design: true
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import 'package:flutter_test/flutter_test.dart';
2+
import 'package:flutter/material.dart';
3+
import 'package:mockito/mockito.dart';
4+
import 'package:plugin_platform_interface/plugin_platform_interface.dart';
5+
import 'package:url_launcher_platform_interface/url_launcher_platform_interface.dart';
6+
import 'package:url_launcher_example/main.dart';
7+
8+
void main() {
9+
final MockUrlLauncher mock = MockUrlLauncher();
10+
UrlLauncherPlatform.instance = mock;
11+
12+
testWidgets('Can open URLs', (WidgetTester tester) async {
13+
await tester.pumpWidget(MyApp());
14+
const String defaultUrl = 'https://www.cylog.org/headers/';
15+
when(mock.canLaunch(defaultUrl)).thenAnswer((_) => Future.value(true));
16+
const Map<String, String> defaultHeaders = {
17+
'my_header_key': 'my_header_value'
18+
};
19+
verifyNever(mock.launch(defaultUrl,
20+
useSafariVC: false,
21+
useWebView: false,
22+
enableDomStorage: false,
23+
enableJavaScript: false,
24+
universalLinksOnly: false,
25+
headers: defaultHeaders));
26+
27+
Finder browserlaunchBtn =
28+
find.widgetWithText(RaisedButton, 'Launch in browser');
29+
expect(browserlaunchBtn, findsOneWidget);
30+
await tester.tap(browserlaunchBtn);
31+
32+
verify(mock.launch(defaultUrl,
33+
useSafariVC: false,
34+
useWebView: false,
35+
enableDomStorage: false,
36+
enableJavaScript: false,
37+
universalLinksOnly: false,
38+
headers: defaultHeaders))
39+
.called(1);
40+
});
41+
}
42+
43+
class MockUrlLauncher extends Mock
44+
with MockPlatformInterfaceMixin
45+
implements UrlLauncherPlatform {}

packages/url_launcher/url_launcher/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: url_launcher
22
description: Flutter plugin for launching a URL on Android and iOS. Supports
33
web, phone, SMS, and email schemes.
44
homepage: https://github.com/flutter/plugins/tree/master/packages/url_launcher/url_launcher
5-
version: 5.4.2
5+
version: 5.4.3
66

77
flutter:
88
plugin:

packages/url_launcher/url_launcher_macos/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# 0.0.1+5
2+
3+
* Fixed the launchUniversalLinkIos method.
4+
15
# 0.0.1+4
26

37
* Make the pedantic dev_dependency explicit.

packages/url_launcher/url_launcher_macos/example/lib/main.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,15 +90,15 @@ class _MyHomePageState extends State<MyHomePage> {
9090
}
9191

9292
Future<void> _launchUniversalLinkIos(String url) async {
93-
if (await canLaunch('https://youtube.com')) {
93+
if (await canLaunch(url)) {
9494
final bool nativeAppLaunchSucceeded = await launch(
95-
'https://youtube.com',
95+
url,
9696
forceSafariVC: false,
9797
universalLinksOnly: true,
9898
);
9999
if (!nativeAppLaunchSucceeded) {
100100
await launch(
101-
'https://youtube.com',
101+
url,
102102
forceSafariVC: true,
103103
);
104104
}

packages/url_launcher/url_launcher_macos/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: url_launcher_macos
22
description: macOS implementation of the url_launcher plugin.
3-
version: 0.0.1+4
3+
version: 0.0.1+5
44
homepage: https://github.com/flutter/plugins/tree/master/packages/url_launcher/url_launcher_macos
55

66
flutter:

0 commit comments

Comments
 (0)