Skip to content

Commit

Permalink
Add more test for saveBaseUrl and toQualifiedUrl
Browse files Browse the repository at this point in the history
  • Loading branch information
hoangdat committed Aug 15, 2024
1 parent 021ee8e commit 66b0994
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 0 deletions.
10 changes: 10 additions & 0 deletions core/test/presentation/extensions/uri_extension_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -85,5 +85,15 @@ void main() {

expect(qualifiedUrlResult, equals(qualifiedUrlExpected));
});

test('convertToQualifiedUrl() should return qualified url when baseUrl is localhost and sourceUrl is `https://domain.com:2001/basiauth/jmap`', () async {
final baseUrl = Uri.parse('https://localhost:9080/basicauth');
final sourceUrl = Uri.parse('https://domain.com:2001/basicauth/jmap');

final qualifiedUrlExpected = Uri.parse('https://domain.com:2001/basicauth/jmap');
final qualifiedUrlResult = sourceUrl.toQualifiedUrl(baseUrl: baseUrl);

expect(qualifiedUrlResult, equals(qualifiedUrlExpected));
});
});
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:mockito/annotations.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:tmail_ui_user/features/login/data/local/authentication_info_cache_manager.dart';
import 'package:tmail_ui_user/features/login/data/repository/credential_repository_impl.dart';

import 'credential_repository_imp_test.mocks.dart';

@GenerateMocks([AuthenticationInfoCacheManager])
void main() {
late SharedPreferences sharedPreferences;
late AuthenticationInfoCacheManager authenticationInfoCacheManager;
late CredentialRepositoryImpl credentialRepositoryImpl;

setUp(() async {
SharedPreferences.setMockInitialValues({});
sharedPreferences = await SharedPreferences.getInstance();
authenticationInfoCacheManager = MockAuthenticationInfoCacheManager();
credentialRepositoryImpl = CredentialRepositoryImpl(sharedPreferences, authenticationInfoCacheManager);
});

group('test saveBaseUrl', () {
test('baseUrl should be save exactly when url has no sub path', () async {
final url = Uri.parse('https://example.com');
credentialRepositoryImpl.saveBaseUrl(url);

final storedUrl = await credentialRepositoryImpl.getBaseUrl();
expect(storedUrl, url);
});

test('baseUrl should be save exactly when url has sub path', () async {
final url = Uri.parse('https://example.com/basicauth');
credentialRepositoryImpl.saveBaseUrl(url);

final storedUrl = await credentialRepositoryImpl.getBaseUrl();
expect(storedUrl, url);
});

test('baseUrl should be save exactly when url has sub port', () async {
final url = Uri.parse('https://example.com:8080/');
credentialRepositoryImpl.saveBaseUrl(url);

final storedUrl = await credentialRepositoryImpl.getBaseUrl();
expect(storedUrl, url);
});

test('baseUrl should be save exactly when url has port and sub path', () async {
final url = Uri.parse('https://example.com:8080/basicauth');
credentialRepositoryImpl.saveBaseUrl(url);

final storedUrl = await credentialRepositoryImpl.getBaseUrl();
expect(storedUrl, url);
});

test('baseUrl should be save exactly when url has multiple sub paths', () async {
final url = Uri.parse('https://example.com:8080/basicauth/jmap');
credentialRepositoryImpl.saveBaseUrl(url);

final storedUrl = await credentialRepositoryImpl.getBaseUrl();
expect(storedUrl, url);
});
});
}

0 comments on commit 66b0994

Please sign in to comment.