From f0ab6270314231f4986273ff065f139a4519d40f Mon Sep 17 00:00:00 2001 From: Krille Date: Mon, 24 Jun 2024 13:24:51 +0200 Subject: [PATCH] fix: Return empty uri instead of original uri if uri is not mxc --- lib/src/utils/uri_extension.dart | 4 ++-- test/mxc_uri_extension_test.dart | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/src/utils/uri_extension.dart b/lib/src/utils/uri_extension.dart index 1b56d3f6..77289763 100644 --- a/lib/src/utils/uri_extension.dart +++ b/lib/src/utils/uri_extension.dart @@ -28,7 +28,7 @@ extension MxcUriExtension on Uri { '_matrix/media/v3/download/$host${hasPort ? ':$port' : ''}$path') ?? Uri() : Uri() - : this; + : Uri(); /// Returns a scaled thumbnail link to this content with the given `width` and /// `height`. `method` can be `ThumbnailMethod.crop` or @@ -40,7 +40,7 @@ extension MxcUriExtension on Uri { num? height, ThumbnailMethod? method = ThumbnailMethod.crop, bool? animated = false}) { - if (!isScheme('mxc')) return this; + if (!isScheme('mxc')) return Uri(); final homeserver = matrix.homeserver; if (homeserver == null) { return Uri(); diff --git a/test/mxc_uri_extension_test.dart b/test/mxc_uri_extension_test.dart index e26d917e..3e6480d0 100644 --- a/test/mxc_uri_extension_test.dart +++ b/test/mxc_uri_extension_test.dart @@ -82,5 +82,13 @@ void main() { expect(content.getThumbnail(client, width: 50, height: 50).toString(), '${client.homeserver.toString()}/_matrix/media/v3/thumbnail/exampleserver.abc:1234/abcdefghijklmn?width=50&height=50&method=crop&animated=false'); }); + test('Wrong scheme returns empty object', () async { + final client = Client('testclient', httpClient: FakeMatrixApi()); + await client.checkHomeserver(Uri.parse('https://fakeserver.notexisting'), + checkWellKnown: false); + final mxc = Uri.parse('https://wrong-scheme.com'); + expect(mxc.getDownloadLink(client).toString(), ''); + expect(mxc.getThumbnail(client).toString(), ''); + }); }); }