Hotfix API Url concat incorrect

This commit is contained in:
dab246
2024-07-23 16:45:03 +07:00
committed by Dat H. Pham
parent 71ae708939
commit 1b63786c6b
2 changed files with 51 additions and 6 deletions
@@ -10,12 +10,27 @@ extension URIExtension on Uri {
log('SessionUtils::toQualifiedUrl():qualifiedUrl: $qualifiedUrl');
return Uri.parse(qualifiedUrl);
} else {
final baseUrlValid = baseUrl.toString().removeLastSlashOfUrl();
final sourceUrlValid = toString().addFirstSlashOfUrl().removeLastSlashOfUrl();
log('SessionUtils::toQualifiedUrl():baseUrlValid: $baseUrlValid | sourceUrlValid: $sourceUrlValid');
final qualifiedUrl = baseUrlValid + sourceUrlValid;
log('SessionUtils::toQualifiedUrl():qualifiedUrl: $qualifiedUrl');
return Uri.parse(qualifiedUrl);
if (!hasOrigin) {
final baseUrlValid = baseUrl.toString().removeLastSlashOfUrl();
final sourceUrlValid = toString().addFirstSlashOfUrl().removeLastSlashOfUrl();
log('SessionUtils::toQualifiedUrl():baseUrlValid: $baseUrlValid | sourceUrlValid: $sourceUrlValid');
final qualifiedUrl = baseUrlValid + sourceUrlValid;
log('SessionUtils::toQualifiedUrl():qualifiedUrl: $qualifiedUrl');
return Uri.parse(qualifiedUrl);
} else {
final qualifiedUrl = toString().removeLastSlashOfUrl();
log('SessionUtils::toQualifiedUrl():qualifiedUrl: $qualifiedUrl');
return Uri.parse(qualifiedUrl);
}
}
}
bool get hasOrigin {
try {
return origin.isNotEmpty;
} catch (e) {
logError('URIExtension::hasOrigin:Exception = $e');
return false;
}
}
}
@@ -55,5 +55,35 @@ void main() {
expect(qualifiedUrlResult, equals(qualifiedUrlExpected));
});
test('convertToQualifiedUrl() should return qualified url when baseUrl is `https://domain.com:2000/jmap` and sourceUrl is `https://domain.com:2001/jmap`', () async {
final baseUrl = Uri.parse('https://domain.com:2000/jmap');
final sourceUrl = Uri.parse('https://domain.com:2001/jmap');
final qualifiedUrlExpected = Uri.parse('https://domain.com:2001/jmap');
final qualifiedUrlResult = sourceUrl.toQualifiedUrl(baseUrl: baseUrl);
expect(qualifiedUrlResult, equals(qualifiedUrlExpected));
});
test('convertToQualifiedUrl() should return qualified url when baseUrl is `https://domain.com:2000/jmap` and sourceUrl is `https://domain.com:2001/jmap/`', () async {
final baseUrl = Uri.parse('https://domain.com:2000/jmap');
final sourceUrl = Uri.parse('https://domain.com:2001/jmap/');
final qualifiedUrlExpected = Uri.parse('https://domain.com:2001/jmap');
final qualifiedUrlResult = sourceUrl.toQualifiedUrl(baseUrl: baseUrl);
expect(qualifiedUrlResult, equals(qualifiedUrlExpected));
});
test('convertToQualifiedUrl() should return qualified url when baseUrl is `https://domain.com:20001/jmap` and sourceUrl is `https://domain.com:2001/jmap`', () async {
final baseUrl = Uri.parse('https://domain.com:2001/jmap');
final sourceUrl = Uri.parse('https://domain.com:2001/jmap');
final qualifiedUrlExpected = Uri.parse('https://domain.com:2001/jmap');
final qualifiedUrlResult = sourceUrl.toQualifiedUrl(baseUrl: baseUrl);
expect(qualifiedUrlResult, equals(qualifiedUrlExpected));
});
});
}