TF-2168 Add unit-test for parseMapMailtoFromUri

(cherry picked from commit b8974eec936807c072063fdaaf653c545be77959)
This commit is contained in:
dab246
2023-09-26 18:51:13 +07:00
committed by Dat H. Pham
parent 6710702924
commit 1bf2663d21
+69
View File
@@ -0,0 +1,69 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:tmail_ui_user/main/routes/app_routes.dart';
import 'package:tmail_ui_user/main/routes/route_utils.dart';
void main() {
group('parseMapMailtoFromUri test', () {
test('should parse a valid mailto URI', () {
const mailtoUri = 'mailto:test@example.com?subject=Hello';
final result = RouteUtils.parseMapMailtoFromUri(mailtoUri);
expect(result[RouteUtils.paramRouteName], equals(AppRoutes.mailtoURL));
expect(result[RouteUtils.paramMailtoAddress], equals('test@example.com'));
expect(result[RouteUtils.paramSubject], equals('Hello'));
});
test('should parse a valid mailto URI encoded', () {
const mailtoUri = 'mailto:test%40example.com%3Fsubject=Hello';
final result = RouteUtils.parseMapMailtoFromUri(mailtoUri);
expect(result[RouteUtils.paramRouteName], equals(AppRoutes.mailtoURL));
expect(result[RouteUtils.paramMailtoAddress], equals('test@example.com'));
expect(result[RouteUtils.paramSubject], equals('Hello'));
});
test('should handle a mailto URI without subject', () {
const mailtoUri = 'mailto:test@example.com';
final result = RouteUtils.parseMapMailtoFromUri(mailtoUri);
expect(result[RouteUtils.paramRouteName], equals(AppRoutes.mailtoURL));
expect(result[RouteUtils.paramMailtoAddress], equals('test@example.com'));
expect(result[RouteUtils.paramSubject], isNull);
});
test('should handle a mailto URI without subject encoded', () {
const mailtoUri = 'mailto:test%40example.com';
final result = RouteUtils.parseMapMailtoFromUri(mailtoUri);
expect(result[RouteUtils.paramRouteName], equals(AppRoutes.mailtoURL));
expect(result[RouteUtils.paramMailtoAddress], equals('test@example.com'));
expect(result[RouteUtils.paramSubject], isNull);
});
test('should handle a non-mailto URI', () {
const nonMailtoUri = 'test@example.com';
final result = RouteUtils.parseMapMailtoFromUri(nonMailtoUri);
expect(result[RouteUtils.paramRouteName], equals(AppRoutes.mailtoURL));
expect(result[RouteUtils.paramMailtoAddress], equals(nonMailtoUri));
expect(result[RouteUtils.paramSubject], isNull);
});
test('should handle a non-mailto URI encoded', () {
const nonMailtoUri = 'test%40example.com';
final result = RouteUtils.parseMapMailtoFromUri(nonMailtoUri);
expect(result[RouteUtils.paramRouteName], equals(AppRoutes.mailtoURL));
expect(result[RouteUtils.paramMailtoAddress], equals('test@example.com'));
expect(result[RouteUtils.paramSubject], isNull);
});
test('should handle null input', () {
final result = RouteUtils.parseMapMailtoFromUri(null);
expect(result[RouteUtils.paramRouteName], equals(AppRoutes.mailtoURL));
expect(result[RouteUtils.paramMailtoAddress], isNull);
expect(result[RouteUtils.paramSubject], isNull);
});
});
}