From c387b33e9fb0c278beb00563ab4e021bf10c9959 Mon Sep 17 00:00:00 2001 From: Christian Pauly Date: Tue, 1 Jun 2021 15:27:18 +0200 Subject: [PATCH] refactor: Make support for file storing optional in database API --- lib/src/database/database.dart | 3 +++ lib/src/database/database_api.dart | 1 + test/client_test.dart | 3 ++- test/event_test.dart | 6 ++++-- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/src/database/database.dart b/lib/src/database/database.dart index 40d41428..bfe85755 100644 --- a/lib/src/database/database.dart +++ b/lib/src/database/database.dart @@ -75,6 +75,9 @@ class Database extends _$Database implements DatabaseApi { Database.connect(DatabaseConnection connection) : super.connect(connection); + @override + bool get supportsFileStoring => true; + @override int get schemaVersion => 12; diff --git a/lib/src/database/database_api.dart b/lib/src/database/database_api.dart index cec08ffb..3fff321c 100644 --- a/lib/src/database/database_api.dart +++ b/lib/src/database/database_api.dart @@ -28,6 +28,7 @@ import '../../famedlysdk.dart'; abstract class DatabaseApi { int get maxFileSize => 1 * 1024 * 1024; + bool get supportsFileStoring => false; Future> getClient(String name); Future updateClient( diff --git a/test/client_test.dart b/test/client_test.dart index 0f213dc2..87468e9f 100644 --- a/test/client_test.dart +++ b/test/client_test.dart @@ -590,7 +590,8 @@ void main() { final client = await getClient(); final response = await client.uploadContent(Uint8List(0), 'file.jpeg'); expect(response, 'mxc://example.com/AQwafuaFswefuhsfAFAgsw'); - expect(await client.database.getFile(response) != null, true); + expect(await client.database.getFile(response) != null, + client.database.supportsFileStoring); await client.dispose(closeDatabase: true); }); diff --git a/test/event_test.dart b/test/event_test.dart index 16075740..e9ee7fa8 100644 --- a/test/event_test.dart +++ b/test/event_test.dart @@ -1263,13 +1263,15 @@ void main() { expect(await event.isAttachmentInLocalStore(), false); var buffer = await event.downloadAndDecryptAttachment( downloadCallback: downloadCallback); - expect(await event.isAttachmentInLocalStore(), true); + expect(await event.isAttachmentInLocalStore(), + event.room.client.database.supportsFileStoring); expect(buffer.bytes, FILE_BUFF); expect(serverHits, 1); buffer = await event.downloadAndDecryptAttachment( downloadCallback: downloadCallback); expect(buffer.bytes, FILE_BUFF); - expect(serverHits, 1); + expect( + serverHits, event.room.client.database.supportsFileStoring ? 1 : 2); await room.client.dispose(closeDatabase: true); });