From aa2b010155bf0f5d62a591c3e5c14e575c13bf4e Mon Sep 17 00:00:00 2001 From: Krille Date: Thu, 21 Dec 2023 08:39:26 +0100 Subject: [PATCH] ci: Test that database can write and read at least 5mb of data This does not yet test on Android but at least makes sure that this problem does not occur when using future databases. --- test/database_api_test.dart | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/test/database_api_test.dart b/test/database_api_test.dart index f3198e60..0ebc5159 100644 --- a/test/database_api_test.dart +++ b/test/database_api_test.dart @@ -26,6 +26,16 @@ import 'package:test/test.dart'; import 'package:matrix/matrix.dart'; import 'fake_database.dart'; +String createLargeString(String character, int desiredSize) { + final buffer = StringBuffer(); + + while (buffer.length < desiredSize) { + buffer.write(character); + } + + return buffer.toString(); +} + void main() { final databaseBuilders = { 'Matrix SDK Database': getMatrixSdkDatabase, @@ -173,6 +183,21 @@ void main() { expect( events2.values.any((element) => element.type == 'm.abc+de'), true); }); + test('Database can write and read 5MB data', () async { + final hugeDataObject = {'foo': createLargeString('A', 5 * 1024 * 1024)}; + + await database.storeAccountData( + 'm.huge_data_test', + jsonEncode(hugeDataObject), + ); + + final events = await database.getAccountData(); + + expect( + events.values.any((data) => data.type == 'm.huge_data_test'), + true, + ); + }); test('storeEventUpdate', () async { await database.storeEventUpdate( EventUpdate(