TF-2305 Fixed getUploadUri and getDownloadUri not working with Cyrus

This commit is contained in:
Florent Azavant
2025-01-17 11:36:14 +01:00
committed by Dat H. Pham
parent c3887b7705
commit 327af38fb0
13 changed files with 333 additions and 163 deletions
@@ -5,23 +5,20 @@ extension URIExtension on Uri {
Uri toQualifiedUrl({required Uri baseUrl}) {
log('SessionUtils::toQualifiedUrl():baseUrl: $baseUrl | sourceUrl: $this');
if (toString().startsWith(baseUrl.toString())) {
final qualifiedUrl = toString().removeLastSlashOfUrl();
if (hasOrigin) {
final qualifiedUrl = toString();
log('SessionUtils::toQualifiedUrl():qualifiedUrl: $qualifiedUrl');
return Uri.parse(qualifiedUrl);
} else if (toString().isEmpty) {
log('SessionUtils::toQualifiedUrl():qualifiedUrl: $baseUrl');
return baseUrl;
} else {
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);
}
final baseUrlValid = baseUrl.toString().removeLastSlashOfUrl();
final sourceUrlValid = toString().addFirstSlashOfUrl();
log('SessionUtils::toQualifiedUrl():baseUrlValid: $baseUrlValid | sourceUrlValid: $sourceUrlValid');
final qualifiedUrl = baseUrlValid + sourceUrlValid;
log('SessionUtils::toQualifiedUrl():qualifiedUrl: $qualifiedUrl');
return Uri.parse(qualifiedUrl);
}
}
@@ -16,11 +16,21 @@ void main() {
expect(qualifiedUrlResult, equals(qualifiedUrlExpected));
});
test('convertToQualifiedUrl() should return qualified url when baseUrl is `https://domain.com` and sourceUrl is `https://domain.com/jmap/`', () async {
final baseUrl = Uri.parse('https://domain.com');
final sourceUrl = Uri.parse('https://domain.com/jmap/');
final qualifiedUrlExpected = Uri.parse('https://domain.com/jmap/');
final qualifiedUrlResult = sourceUrl.toQualifiedUrl(baseUrl: baseUrl);
expect(qualifiedUrlResult, equals(qualifiedUrlExpected));
});
test('convertToQualifiedUrl() should return qualified url when baseUrl is `https://domain.com` and sourceUrl is `/jmap/`', () async {
final baseUrl = Uri.parse('https://domain.com');
final sourceUrl = Uri.parse('/jmap/');
final qualifiedUrlExpected = Uri.parse('https://domain.com/jmap');
final qualifiedUrlExpected = Uri.parse('https://domain.com/jmap/');
final qualifiedUrlResult = sourceUrl.toQualifiedUrl(baseUrl: baseUrl);
expect(qualifiedUrlResult, equals(qualifiedUrlExpected));
@@ -50,7 +60,7 @@ void main() {
final baseUrl = Uri.parse('https://domain.com/jmap');
final sourceUrl = Uri.parse('/');
final qualifiedUrlExpected = Uri.parse('https://domain.com/jmap');
final qualifiedUrlExpected = Uri.parse('https://domain.com/jmap/');
final qualifiedUrlResult = sourceUrl.toQualifiedUrl(baseUrl: baseUrl);
expect(qualifiedUrlResult, equals(qualifiedUrlExpected));
@@ -70,7 +80,7 @@ void main() {
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 qualifiedUrlExpected = Uri.parse('https://domain.com:2001/jmap/');
final qualifiedUrlResult = sourceUrl.toQualifiedUrl(baseUrl: baseUrl);
expect(qualifiedUrlResult, equals(qualifiedUrlExpected));
@@ -86,7 +96,7 @@ 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 {
test('convertToQualifiedUrl() should return qualified url when baseUrl is localhost and sourceUrl is `https://domain.com:2001/basicauth/jmap`', () async {
final baseUrl = Uri.parse('https://localhost:9080/basicauth');
final sourceUrl = Uri.parse('https://domain.com:2001/basicauth/jmap');
@@ -95,5 +105,15 @@ void main() {
expect(qualifiedUrlResult, equals(qualifiedUrlExpected));
});
test('convertToQualifiedUrl() should return qualified url when baseUrl is localhost and sourceUrl is `https://domain.com:2001/basicauth/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));
});
});
}