diff --git a/test/ui-test/fixtures/group_chat/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479.db b/test/ui-test/fixtures/mutual_contacts/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479.db
similarity index 100%
rename from test/ui-test/fixtures/group_chat/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479.db
rename to test/ui-test/fixtures/mutual_contacts/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479.db
diff --git a/test/ui-test/fixtures/group_chat/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479.db-shm b/test/ui-test/fixtures/mutual_contacts/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479.db-shm
similarity index 100%
rename from test/ui-test/fixtures/group_chat/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479.db-shm
rename to test/ui-test/fixtures/mutual_contacts/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479.db-shm
diff --git a/test/ui-test/fixtures/group_chat/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479.db-wal b/test/ui-test/fixtures/mutual_contacts/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479.db-wal
similarity index 100%
rename from test/ui-test/fixtures/group_chat/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479.db-wal
rename to test/ui-test/fixtures/mutual_contacts/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479.db-wal
diff --git a/test/ui-test/fixtures/group_chat/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955.db b/test/ui-test/fixtures/mutual_contacts/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955.db
similarity index 100%
rename from test/ui-test/fixtures/group_chat/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955.db
rename to test/ui-test/fixtures/mutual_contacts/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955.db
diff --git a/test/ui-test/fixtures/group_chat/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955.db-shm b/test/ui-test/fixtures/mutual_contacts/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955.db-shm
similarity index 100%
rename from test/ui-test/fixtures/group_chat/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955.db-shm
rename to test/ui-test/fixtures/mutual_contacts/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955.db-shm
diff --git a/test/ui-test/fixtures/group_chat/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955.db-wal b/test/ui-test/fixtures/mutual_contacts/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955.db-wal
similarity index 100%
rename from test/ui-test/fixtures/group_chat/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955.db-wal
rename to test/ui-test/fixtures/mutual_contacts/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955.db-wal
diff --git a/test/ui-test/fixtures/group_chat/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0.db b/test/ui-test/fixtures/mutual_contacts/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0.db
similarity index 100%
rename from test/ui-test/fixtures/group_chat/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0.db
rename to test/ui-test/fixtures/mutual_contacts/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0.db
diff --git a/test/ui-test/fixtures/group_chat/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0.db-shm b/test/ui-test/fixtures/mutual_contacts/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0.db-shm
similarity index 100%
rename from test/ui-test/fixtures/group_chat/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0.db-shm
rename to test/ui-test/fixtures/mutual_contacts/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0.db-shm
diff --git a/test/ui-test/fixtures/group_chat/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0.db-wal b/test/ui-test/fixtures/mutual_contacts/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0.db-wal
similarity index 100%
rename from test/ui-test/fixtures/group_chat/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0.db-wal
rename to test/ui-test/fixtures/mutual_contacts/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0.db-wal
diff --git a/test/ui-test/fixtures/group_chat/accounts.sql b/test/ui-test/fixtures/mutual_contacts/accounts.sql
similarity index 100%
rename from test/ui-test/fixtures/group_chat/accounts.sql
rename to test/ui-test/fixtures/mutual_contacts/accounts.sql
diff --git a/test/ui-test/fixtures/group_chat/accounts.sql-shm b/test/ui-test/fixtures/mutual_contacts/accounts.sql-shm
similarity index 100%
rename from test/ui-test/fixtures/group_chat/accounts.sql-shm
rename to test/ui-test/fixtures/mutual_contacts/accounts.sql-shm
diff --git a/test/ui-test/fixtures/group_chat/accounts.sql-wal b/test/ui-test/fixtures/mutual_contacts/accounts.sql-wal
similarity index 100%
rename from test/ui-test/fixtures/group_chat/accounts.sql-wal
rename to test/ui-test/fixtures/mutual_contacts/accounts.sql-wal
diff --git a/test/ui-test/fixtures/group_chat/keystore/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479/UTC--2022-07-22T11-35-18.014338000Z--0568750156c53c50fb9c6a0b9c0ec5b32876c99a b/test/ui-test/fixtures/mutual_contacts/keystore/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479/UTC--2022-07-22T11-35-18.014338000Z--0568750156c53c50fb9c6a0b9c0ec5b32876c99a
similarity index 100%
rename from test/ui-test/fixtures/group_chat/keystore/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479/UTC--2022-07-22T11-35-18.014338000Z--0568750156c53c50fb9c6a0b9c0ec5b32876c99a
rename to test/ui-test/fixtures/mutual_contacts/keystore/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479/UTC--2022-07-22T11-35-18.014338000Z--0568750156c53c50fb9c6a0b9c0ec5b32876c99a
diff --git a/test/ui-test/fixtures/group_chat/keystore/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479/UTC--2022-07-22T11-35-18.382818000Z--66f4321c3b7b0a26258fbf6fd0175f5a8945c30e b/test/ui-test/fixtures/mutual_contacts/keystore/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479/UTC--2022-07-22T11-35-18.382818000Z--66f4321c3b7b0a26258fbf6fd0175f5a8945c30e
similarity index 100%
rename from test/ui-test/fixtures/group_chat/keystore/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479/UTC--2022-07-22T11-35-18.382818000Z--66f4321c3b7b0a26258fbf6fd0175f5a8945c30e
rename to test/ui-test/fixtures/mutual_contacts/keystore/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479/UTC--2022-07-22T11-35-18.382818000Z--66f4321c3b7b0a26258fbf6fd0175f5a8945c30e
diff --git a/test/ui-test/fixtures/group_chat/keystore/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479/UTC--2022-07-22T11-35-18.725413000Z--5694d8a8597af05aa8abcb246c1c0590bddb0a30 b/test/ui-test/fixtures/mutual_contacts/keystore/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479/UTC--2022-07-22T11-35-18.725413000Z--5694d8a8597af05aa8abcb246c1c0590bddb0a30
similarity index 100%
rename from test/ui-test/fixtures/group_chat/keystore/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479/UTC--2022-07-22T11-35-18.725413000Z--5694d8a8597af05aa8abcb246c1c0590bddb0a30
rename to test/ui-test/fixtures/mutual_contacts/keystore/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479/UTC--2022-07-22T11-35-18.725413000Z--5694d8a8597af05aa8abcb246c1c0590bddb0a30
diff --git a/test/ui-test/fixtures/group_chat/keystore/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479/UTC--2022-07-22T11-35-19.067197000Z--0d9da7bcf72f0bfd691ba3a35f199cabc7ad957f b/test/ui-test/fixtures/mutual_contacts/keystore/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479/UTC--2022-07-22T11-35-19.067197000Z--0d9da7bcf72f0bfd691ba3a35f199cabc7ad957f
similarity index 100%
rename from test/ui-test/fixtures/group_chat/keystore/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479/UTC--2022-07-22T11-35-19.067197000Z--0d9da7bcf72f0bfd691ba3a35f199cabc7ad957f
rename to test/ui-test/fixtures/mutual_contacts/keystore/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479/UTC--2022-07-22T11-35-19.067197000Z--0d9da7bcf72f0bfd691ba3a35f199cabc7ad957f
diff --git a/test/ui-test/fixtures/group_chat/keystore/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479/UTC--2022-07-22T11-35-19.406223000Z--c7d7ec0db0f39fcf1c25484ea8b7b380c3f64a78 b/test/ui-test/fixtures/mutual_contacts/keystore/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479/UTC--2022-07-22T11-35-19.406223000Z--c7d7ec0db0f39fcf1c25484ea8b7b380c3f64a78
similarity index 100%
rename from test/ui-test/fixtures/group_chat/keystore/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479/UTC--2022-07-22T11-35-19.406223000Z--c7d7ec0db0f39fcf1c25484ea8b7b380c3f64a78
rename to test/ui-test/fixtures/mutual_contacts/keystore/0x14c36af7255a6a75cecadd2aad3ed9e9cbb98127ea4e4eafc204bfeb00569479/UTC--2022-07-22T11-35-19.406223000Z--c7d7ec0db0f39fcf1c25484ea8b7b380c3f64a78
diff --git a/test/ui-test/fixtures/group_chat/keystore/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955/UTC--2022-07-22T11-38-49.153782000Z--209a105b4d0b2a09a0a2a2bdde0e99595ecf8e37 b/test/ui-test/fixtures/mutual_contacts/keystore/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955/UTC--2022-07-22T11-38-49.153782000Z--209a105b4d0b2a09a0a2a2bdde0e99595ecf8e37
similarity index 100%
rename from test/ui-test/fixtures/group_chat/keystore/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955/UTC--2022-07-22T11-38-49.153782000Z--209a105b4d0b2a09a0a2a2bdde0e99595ecf8e37
rename to test/ui-test/fixtures/mutual_contacts/keystore/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955/UTC--2022-07-22T11-38-49.153782000Z--209a105b4d0b2a09a0a2a2bdde0e99595ecf8e37
diff --git a/test/ui-test/fixtures/group_chat/keystore/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955/UTC--2022-07-22T11-38-49.520410000Z--a8a4687b94578445fd27a436708303344e48515c b/test/ui-test/fixtures/mutual_contacts/keystore/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955/UTC--2022-07-22T11-38-49.520410000Z--a8a4687b94578445fd27a436708303344e48515c
similarity index 100%
rename from test/ui-test/fixtures/group_chat/keystore/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955/UTC--2022-07-22T11-38-49.520410000Z--a8a4687b94578445fd27a436708303344e48515c
rename to test/ui-test/fixtures/mutual_contacts/keystore/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955/UTC--2022-07-22T11-38-49.520410000Z--a8a4687b94578445fd27a436708303344e48515c
diff --git a/test/ui-test/fixtures/group_chat/keystore/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955/UTC--2022-07-22T11-38-49.863180000Z--863cc6d4d54e52897b2da516c3bfc19ffb37af45 b/test/ui-test/fixtures/mutual_contacts/keystore/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955/UTC--2022-07-22T11-38-49.863180000Z--863cc6d4d54e52897b2da516c3bfc19ffb37af45
similarity index 100%
rename from test/ui-test/fixtures/group_chat/keystore/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955/UTC--2022-07-22T11-38-49.863180000Z--863cc6d4d54e52897b2da516c3bfc19ffb37af45
rename to test/ui-test/fixtures/mutual_contacts/keystore/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955/UTC--2022-07-22T11-38-49.863180000Z--863cc6d4d54e52897b2da516c3bfc19ffb37af45
diff --git a/test/ui-test/fixtures/group_chat/keystore/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955/UTC--2022-07-22T11-38-50.200434000Z--9e9bf7a8687ae8c0f9cf82224c35774cc0e4def4 b/test/ui-test/fixtures/mutual_contacts/keystore/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955/UTC--2022-07-22T11-38-50.200434000Z--9e9bf7a8687ae8c0f9cf82224c35774cc0e4def4
similarity index 100%
rename from test/ui-test/fixtures/group_chat/keystore/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955/UTC--2022-07-22T11-38-50.200434000Z--9e9bf7a8687ae8c0f9cf82224c35774cc0e4def4
rename to test/ui-test/fixtures/mutual_contacts/keystore/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955/UTC--2022-07-22T11-38-50.200434000Z--9e9bf7a8687ae8c0f9cf82224c35774cc0e4def4
diff --git a/test/ui-test/fixtures/group_chat/keystore/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955/UTC--2022-07-22T11-38-50.541043000Z--3ac2452916e9227e9e7107150d212d460ea4fa8c b/test/ui-test/fixtures/mutual_contacts/keystore/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955/UTC--2022-07-22T11-38-50.541043000Z--3ac2452916e9227e9e7107150d212d460ea4fa8c
similarity index 100%
rename from test/ui-test/fixtures/group_chat/keystore/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955/UTC--2022-07-22T11-38-50.541043000Z--3ac2452916e9227e9e7107150d212d460ea4fa8c
rename to test/ui-test/fixtures/mutual_contacts/keystore/0x37803779578fc9b1da6f7068553367e31efce3342bd163dac69e2ada90c1b955/UTC--2022-07-22T11-38-50.541043000Z--3ac2452916e9227e9e7107150d212d460ea4fa8c
diff --git a/test/ui-test/fixtures/group_chat/keystore/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0/UTC--2022-07-22T11-34-19.695209000Z--d7a4015deecd67e99bff32654850758d4ab1247b b/test/ui-test/fixtures/mutual_contacts/keystore/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0/UTC--2022-07-22T11-34-19.695209000Z--d7a4015deecd67e99bff32654850758d4ab1247b
similarity index 100%
rename from test/ui-test/fixtures/group_chat/keystore/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0/UTC--2022-07-22T11-34-19.695209000Z--d7a4015deecd67e99bff32654850758d4ab1247b
rename to test/ui-test/fixtures/mutual_contacts/keystore/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0/UTC--2022-07-22T11-34-19.695209000Z--d7a4015deecd67e99bff32654850758d4ab1247b
diff --git a/test/ui-test/fixtures/group_chat/keystore/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0/UTC--2022-07-22T11-34-20.062040000Z--7becc6d935ee1609a0aa012dca618070c83277b3 b/test/ui-test/fixtures/mutual_contacts/keystore/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0/UTC--2022-07-22T11-34-20.062040000Z--7becc6d935ee1609a0aa012dca618070c83277b3
similarity index 100%
rename from test/ui-test/fixtures/group_chat/keystore/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0/UTC--2022-07-22T11-34-20.062040000Z--7becc6d935ee1609a0aa012dca618070c83277b3
rename to test/ui-test/fixtures/mutual_contacts/keystore/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0/UTC--2022-07-22T11-34-20.062040000Z--7becc6d935ee1609a0aa012dca618070c83277b3
diff --git a/test/ui-test/fixtures/group_chat/keystore/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0/UTC--2022-07-22T11-34-20.404024000Z--eccb99b8a81d83ed73bd8a8c64432a3ee9e14cd0 b/test/ui-test/fixtures/mutual_contacts/keystore/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0/UTC--2022-07-22T11-34-20.404024000Z--eccb99b8a81d83ed73bd8a8c64432a3ee9e14cd0
similarity index 100%
rename from test/ui-test/fixtures/group_chat/keystore/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0/UTC--2022-07-22T11-34-20.404024000Z--eccb99b8a81d83ed73bd8a8c64432a3ee9e14cd0
rename to test/ui-test/fixtures/mutual_contacts/keystore/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0/UTC--2022-07-22T11-34-20.404024000Z--eccb99b8a81d83ed73bd8a8c64432a3ee9e14cd0
diff --git a/test/ui-test/fixtures/group_chat/keystore/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0/UTC--2022-07-22T11-34-20.742255000Z--f0613179339d41bfd3fc0128410d971dfcbdcb1a b/test/ui-test/fixtures/mutual_contacts/keystore/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0/UTC--2022-07-22T11-34-20.742255000Z--f0613179339d41bfd3fc0128410d971dfcbdcb1a
similarity index 100%
rename from test/ui-test/fixtures/group_chat/keystore/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0/UTC--2022-07-22T11-34-20.742255000Z--f0613179339d41bfd3fc0128410d971dfcbdcb1a
rename to test/ui-test/fixtures/mutual_contacts/keystore/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0/UTC--2022-07-22T11-34-20.742255000Z--f0613179339d41bfd3fc0128410d971dfcbdcb1a
diff --git a/test/ui-test/fixtures/group_chat/keystore/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0/UTC--2022-07-22T11-34-21.083447000Z--ea123f7beff45e3c9fdf54b324c29dbda14a639a b/test/ui-test/fixtures/mutual_contacts/keystore/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0/UTC--2022-07-22T11-34-21.083447000Z--ea123f7beff45e3c9fdf54b324c29dbda14a639a
similarity index 100%
rename from test/ui-test/fixtures/group_chat/keystore/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0/UTC--2022-07-22T11-34-21.083447000Z--ea123f7beff45e3c9fdf54b324c29dbda14a639a
rename to test/ui-test/fixtures/mutual_contacts/keystore/0xc9424660d13562045a3cb387b296219dbdb819690936de3d0b3eccbcfb7dfdf0/UTC--2022-07-22T11-34-21.083447000Z--ea123f7beff45e3c9fdf54b324c29dbda14a639a
diff --git a/test/ui-test/src/screens/StatusCommunityScreen.py b/test/ui-test/src/screens/StatusCommunityScreen.py
index 687826974f..ae60a7c7e0 100644
--- a/test/ui-test/src/screens/StatusCommunityScreen.py
+++ b/test/ui-test/src/screens/StatusCommunityScreen.py
@@ -45,6 +45,11 @@ class CommunityScreenComponents(Enum):
CHAT_INPUT_ROOT = "chatInput_Root"
TOGGLE_PIN_MESSAGE_BUTTON = "chatView_TogglePinMessageButton"
PIN_TEXT = "chatInfoButton_Pin_Text"
+ ADD_MEMBERS_BUTTON = "community_AddMembers_Button"
+ EXISTING_CONTACTS_LISTVIEW = "community_InviteFirends_Popup_ExistinContacts_ListView"
+ INVITE_POPUP_NEXT_BUTTON = "community_InviteFriendsToCommunityPopup_NextButton"
+ INVITE_POPUP_MESSAGE_INPUT = "community_ProfilePopupInviteMessagePanel_MessageInput"
+ INVITE_POPUP_SEND_BUTTON = "community_InviteFriend_SendButton"
class CommunitySettingsComponents(Enum):
EDIT_COMMUNITY_SCROLL_VIEW = "communitySettings_EditCommunity_ScrollView"
@@ -322,3 +327,26 @@ class StatusCommunityScreen:
def check_pin_count(self, wanted_pin_count: int):
pin_text_obj = wait_and_get_obj(CommunityScreenComponents.PIN_TEXT.value)
verify_equals(pin_text_obj.text, wanted_pin_count)
+
+ def invite_user_to_community(self, user_name: str, message: str):
+ click_obj_by_name(CommunityScreenComponents.ADD_MEMBERS_BUTTON.value)
+
+ contacts_list = wait_and_get_obj(CommunityScreenComponents.EXISTING_CONTACTS_LISTVIEW.value)
+
+ contact_item = None
+ found = False
+ for index in range(contacts_list.count):
+ contact_item = contacts_list.itemAtIndex(index)
+ if (contact_item.userName.toLower() == user_name.lower()):
+ found = True
+ break
+
+ if not found:
+ verify_failure("Contact with name " + user_name + " not found in the Existing Contacts list")
+
+ click_obj(contact_item)
+ click_obj_by_name(CommunityScreenComponents.INVITE_POPUP_NEXT_BUTTON.value)
+ time.sleep(0.5)
+ type(CommunityScreenComponents.INVITE_POPUP_MESSAGE_INPUT.value, message)
+ click_obj_by_name(CommunityScreenComponents.INVITE_POPUP_SEND_BUTTON.value)
+
diff --git a/test/ui-test/testSuites/global_shared/scripts/global_names.py b/test/ui-test/testSuites/global_shared/scripts/global_names.py
index 62da0048ed..c0f6d81e34 100644
--- a/test/ui-test/testSuites/global_shared/scripts/global_names.py
+++ b/test/ui-test/testSuites/global_shared/scripts/global_names.py
@@ -14,6 +14,8 @@ mainWindow_ScrollView_2 = {"container": statusDesktop_mainWindow, "occurrence":
mainWindow_ProfileNavBarButton = {"container": statusDesktop_mainWindow, "objectName": "statusProfileNavBarTabButton", "type": "StatusNavBarTabButton", "visible": True}
settings_navbar_settings_icon_StatusIcon = {"container": mainWindow_navBarListView_ListView, "objectName": "settings-icon", "type": "StatusIcon", "visible": True}
splashScreen = {"container": statusDesktop_mainWindow, "objectName": "splashScreen", "type": "SplashScreen"}
+navBarListView_Chat_navbar_StatusNavBarTabButton = {"checkable": True, "container": mainWindow_navBarListView_ListView, "objectName": "Chat-navbar", "type": "StatusNavBarTabButton", "visible": True}
+
# main right panel
mainWindow_RighPanel= {"container": statusDesktop_mainWindow, "type": "ColumnLayout", "objectName": "mainRightView", "visible": True}
diff --git a/test/ui-test/testSuites/global_shared/scripts/login_names.py b/test/ui-test/testSuites/global_shared/scripts/login_names.py
index 2719b87419..2021e154a3 100644
--- a/test/ui-test/testSuites/global_shared/scripts/login_names.py
+++ b/test/ui-test/testSuites/global_shared/scripts/login_names.py
@@ -7,5 +7,5 @@ loginView_currentUserNameLabel = {"container": statusDesktop_mainWindow, "object
loginView_submitBtn = {"container": statusDesktop_mainWindow, "type": "StatusRoundButton", "visible": True}
loginView_main = {"container": statusDesktop_mainWindow, "type": "LoginView", "visible": True}
loginView_errMsgLabel = {"container": statusDesktop_mainWindow, "objectName": "loginPassworkInputValidationErrorText", "type": "StatusBaseText", "visible": True}
-accountsView_accountListPanel = {"container": statusDesktop_mainWindow, "type": "ListView", "visible": True} # This probably is missing an objectName
+accountsView_accountListPanel = {"container": statusDesktop_mainWindow, "objectName": "LoginView_AccountsRepeater", "type": "Repeater", "visible": True}
loginView_userImage = {"container": statusDesktop_mainWindow, "objectName": "loginViewUserImage", "type": "UserImage", "visible": True}
diff --git a/test/ui-test/testSuites/suite_communities/config.xml b/test/ui-test/testSuites/suite_communities/config.xml
new file mode 100644
index 0000000000..27738dbabd
--- /dev/null
+++ b/test/ui-test/testSuites/suite_communities/config.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/test/ui-test/testSuites/suite_communities/shared/scripts/community_names.py b/test/ui-test/testSuites/suite_communities/shared/scripts/community_names.py
index 2ee934f5cc..fc689918eb 100644
--- a/test/ui-test/testSuites/suite_communities/shared/scripts/community_names.py
+++ b/test/ui-test/testSuites/suite_communities/shared/scripts/community_names.py
@@ -19,6 +19,14 @@ mainWindow_chatInfoBtnInHeader_StatusChatInfoButton = {"container": statusDeskto
communityChatListCategories_Repeater = {"container": statusDesktop_mainWindow, "objectName": "communityChatListCategories", "type": "Repeater"}
chatInput_Root = {"container": statusDesktop_mainWindow, "objectName": "statusChatInput", "type": "Rectangle", "visible": True}
emojiPopup_Emoji_Button_Placeholder = {"container": statusDesktop_mainWindow, "objectName": "statusEmoji_%NAME%", "type": "StatusEmoji", "visible": True}
+community_AddMembers_Button = {"container": statusDesktop_mainWindow, "objectName": "CommunityWelcomeBannerPanel_AddMembersButton", "type": "StatusButton", "visible": True}
+community_InviteFirends_Popup_InvitePanel = {"container": statusDesktop_mainWindow_overlay, "objectName": "CommunityProfilePopupInviteFrindsPanel_ColumnLayout", "type": "ColumnLayout", "visible": True}
+community_InviteFirends_Popup_ExistinContacts_ListView = {"container": community_InviteFirends_Popup_InvitePanel, "objectName": "ExistingContacts_ListView", "type": "StatusListView", "visible": True}
+community_InviteFriendsToCommunityPopup_NextButton = {"container": statusDesktop_mainWindow_overlay, "objectName": "InviteFriendsToCommunityPopup_NextButton", "type": "StatusButton", "visible": True}
+community_InviteFriends_Popup_MessagePanel = {"container": statusDesktop_mainWindow_overlay, "objectName": "CommunityProfilePopupInviteMessagePanel_ColumnLayout", "type": "ColumnLayout", "visible": True}
+community_ProfilePopupInviteMessagePanel_MessageInput = {"container": community_InviteFriends_Popup_MessagePanel, "objectName": "CommunityProfilePopupInviteMessagePanel_MessageInput", "type": "TextEdit", "visible": True}
+community_InviteFriend_SendButton = {"container": statusDesktop_mainWindow_overlay, "objectName": "InviteFriendsToCommunityPopup_SendButton", "type": "StatusButton", "visible": True}
+
# Community channel popup:
createOrEditCommunityChannelNameInput_TextEdit = {"container": statusDesktop_mainWindow_overlay, "objectName": "createOrEditCommunityChannelNameInput", "type": "TextEdit", "visible": True}
diff --git a/test/ui-test/testSuites/suite_communities/shared/steps/communitySteps.py b/test/ui-test/testSuites/suite_communities/shared/steps/communitySteps.py
index 2a7ca04c79..4430545caf 100644
--- a/test/ui-test/testSuites/suite_communities/shared/steps/communitySteps.py
+++ b/test/ui-test/testSuites/suite_communities/shared/steps/communitySteps.py
@@ -111,6 +111,9 @@ def step(context, emoji_description: str):
def step(context):
_statusCommunityScreen.delete_current_community_channel()
+@When("the admin invites the user named |any| to the community with message |any|")
+def step(context, user_name, message):
+ _statusCommunityScreen.invite_user_to_community(user_name, message)
#########################
### VERIFICATIONS region:
@@ -184,4 +187,5 @@ def the_admin_creates_a_community_category(name: str, channels: str, method: str
_statusCommunityScreen.create_community_category(name, channels, method)
def the_category_contains_channels(category_name: str, channels: str):
- _statusCommunityScreen.verify_category_contains_channels(category_name, channels)
\ No newline at end of file
+ _statusCommunityScreen.verify_category_contains_channels(category_name, channels)
+
diff --git a/test/ui-test/testSuites/suite_communities/suite.conf b/test/ui-test/testSuites/suite_communities/suite.conf
index c81e7a9acc..8a88e333b4 100644
--- a/test/ui-test/testSuites/suite_communities/suite.conf
+++ b/test/ui-test/testSuites/suite_communities/suite.conf
@@ -1,6 +1,7 @@
AUT=nim_status_client
+ENVVARS=envvars
LANGUAGE=Python
OBJECTMAPSTYLE=script
-TEST_CASES=tst_communityFlows tst_searchFlows tst_communityMessageFlows
+TEST_CASES=tst_communityFlows tst_searchFlows tst_communityMessageFlows tst_communityMemberFlows
VERSION=3
WRAPPERS=Qt
diff --git a/test/ui-test/testSuites/suite_communities/tst_communityMemberFlows/test.feature b/test/ui-test/testSuites/suite_communities/tst_communityMemberFlows/test.feature
new file mode 100644
index 0000000000..5061375909
--- /dev/null
+++ b/test/ui-test/testSuites/suite_communities/tst_communityMemberFlows/test.feature
@@ -0,0 +1,32 @@
+#******************************************************************************
+# Status.im
+#*****************************************************************************/
+#/**
+# * \file test.feature
+# *
+# * \test Status Desktop - Community Member Flows
+# * \date August 2022
+# **
+# *****************************************************************************/
+
+Feature: Status Desktop community members
+
+ As a user I want to interact with members in a community
+
+
+ Background:
+ Given the user starts the application with a specific data folder "../../../fixtures/mutual_contacts"
+ When the user "tester123" logs in with password "TesTEr16843/!@00"
+ Then the user lands on the signed in app
+ Given the user opens the community portal section
+ And the user lands on the community portal section
+ And the user creates a community named "test_community", with description "Community description", intro "community intro" and outro "commmunity outro"
+ Then the user lands on the community named "test_community"
+
+
+ Scenario: User invites a mutual contact
+ When the admin invites the user named Athletic to the community with message You are invited to my community
+ And the user opens the chat section
+ And the user switches to "Athletic" chat
+ Then the last chat message contains "You are invited to my community"
+
diff --git a/test/ui-test/testSuites/suite_communities/tst_communityMemberFlows/test.py b/test/ui-test/testSuites/suite_communities/tst_communityMemberFlows/test.py
new file mode 100644
index 0000000000..76d23a8ff1
--- /dev/null
+++ b/test/ui-test/testSuites/suite_communities/tst_communityMemberFlows/test.py
@@ -0,0 +1,9 @@
+source(findFile('scripts', 'python/bdd.py'))
+
+setupHooks('../../global_shared/scripts/bdd_hooks.py')
+collectStepDefinitions('./steps', '../shared/steps/', '../../global_shared/steps/', '../../suite_onboarding/shared/steps/', '../../suite_messaging/shared/steps/')
+
+
+def main():
+ testSettings.throwOnFailure = True
+ runFeatureFile('test.feature')
diff --git a/test/ui-test/testSuites/suite_messaging/config.xml b/test/ui-test/testSuites/suite_messaging/config.xml
new file mode 100644
index 0000000000..27738dbabd
--- /dev/null
+++ b/test/ui-test/testSuites/suite_messaging/config.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/test/ui-test/testSuites/suite_messaging/shared/steps/chatSteps.py b/test/ui-test/testSuites/suite_messaging/shared/steps/chatSteps.py
index 5e49defdf4..8fc05bf77f 100644
--- a/test/ui-test/testSuites/suite_messaging/shared/steps/chatSteps.py
+++ b/test/ui-test/testSuites/suite_messaging/shared/steps/chatSteps.py
@@ -40,7 +40,7 @@ def step(context):
@Given("the group chat is created")
def step(context):
the_group_chat_is_created()
-
+
@Given("the user clicks on \"|any|\" chat")
def step(context, chatName):
_statusMain.open_chat(chatName)
@@ -81,6 +81,7 @@ def step(context):
### ACTIONS region:
#########################
+
@When("the user opens the chat section")
def step(context):
the_user_opens_the_chat_section()
diff --git a/test/ui-test/testSuites/suite_messaging/suite.conf b/test/ui-test/testSuites/suite_messaging/suite.conf
index 0c33262421..fd38d6f338 100644
--- a/test/ui-test/testSuites/suite_messaging/suite.conf
+++ b/test/ui-test/testSuites/suite_messaging/suite.conf
@@ -1,4 +1,5 @@
AUT=nim_status_client
+ENVVARS=envvars
LANGUAGE=Python
OBJECTMAPSTYLE=script
TEST_CASES=tst_ChatFlow tst_groupChat tst_adminGroupChat
diff --git a/test/ui-test/testSuites/suite_messaging/tst_adminGroupChat/test.feature b/test/ui-test/testSuites/suite_messaging/tst_adminGroupChat/test.feature
index 32f3de8fe6..652e1f485d 100644
--- a/test/ui-test/testSuites/suite_messaging/tst_adminGroupChat/test.feature
+++ b/test/ui-test/testSuites/suite_messaging/tst_adminGroupChat/test.feature
@@ -6,7 +6,7 @@ Feature: Status Desktop Group Chat
Background:
- Given the user starts the application with a specific data folder "../../../fixtures/group_chat"
+ Given the user starts the application with a specific data folder "../../../fixtures/mutual_contacts"
When the user "tester123" logs in with password "TesTEr16843/!@00"
Then the user lands on the signed in app
diff --git a/test/ui-test/testSuites/suite_messaging/tst_groupChat/test.feature b/test/ui-test/testSuites/suite_messaging/tst_groupChat/test.feature
index fe9c942533..82ed893fb5 100644
--- a/test/ui-test/testSuites/suite_messaging/tst_groupChat/test.feature
+++ b/test/ui-test/testSuites/suite_messaging/tst_groupChat/test.feature
@@ -6,7 +6,7 @@ Feature: Status Desktop Group Chat
Background:
- Given the user starts the application with a specific data folder "../../../fixtures/group_chat"
+ Given the user starts the application with a specific data folder "../../../fixtures/mutual_contacts"
When the user "tester123" logs in with password "TesTEr16843/!@00"
Then the user lands on the signed in app
diff --git a/ui/app/AppLayouts/Chat/panels/communities/CommunityProfilePopupInviteFriendsPanel.qml b/ui/app/AppLayouts/Chat/panels/communities/CommunityProfilePopupInviteFriendsPanel.qml
index d47dd147fd..6342a8e2cd 100644
--- a/ui/app/AppLayouts/Chat/panels/communities/CommunityProfilePopupInviteFriendsPanel.qml
+++ b/ui/app/AppLayouts/Chat/panels/communities/CommunityProfilePopupInviteFriendsPanel.qml
@@ -14,6 +14,7 @@ import shared.status 1.0
ColumnLayout {
id: root
+ objectName: "CommunityProfilePopupInviteFrindsPanel_ColumnLayout"
property string headerTitle: ""
diff --git a/ui/app/AppLayouts/Chat/panels/communities/CommunityProfilePopupInviteMessagePanel.qml b/ui/app/AppLayouts/Chat/panels/communities/CommunityProfilePopupInviteMessagePanel.qml
index f5b60076bf..28369dc924 100644
--- a/ui/app/AppLayouts/Chat/panels/communities/CommunityProfilePopupInviteMessagePanel.qml
+++ b/ui/app/AppLayouts/Chat/panels/communities/CommunityProfilePopupInviteMessagePanel.qml
@@ -14,6 +14,7 @@ import shared.status 1.0
ColumnLayout {
id: root
+ objectName: "CommunityProfilePopupInviteMessagePanel_ColumnLayout"
property var pubKeys: ([])
@@ -33,6 +34,7 @@ ColumnLayout {
StatusInput {
id: messageInput
+ input.edit.objectName: "CommunityProfilePopupInviteMessagePanel_MessageInput"
label: qsTr("Invitation Message")
charLimit: d.maxMsgLength
placeholderText: qsTr("The message a contact will get with community invitation")
diff --git a/ui/app/AppLayouts/Chat/panels/communities/CommunityWelcomeBannerPanel.qml b/ui/app/AppLayouts/Chat/panels/communities/CommunityWelcomeBannerPanel.qml
index 2fedc1abfa..30406008af 100644
--- a/ui/app/AppLayouts/Chat/panels/communities/CommunityWelcomeBannerPanel.qml
+++ b/ui/app/AppLayouts/Chat/panels/communities/CommunityWelcomeBannerPanel.qml
@@ -83,6 +83,7 @@ Rectangle {
StatusButton {
id: addMembersBtn
+ objectName:"CommunityWelcomeBannerPanel_AddMembersButton"
text: qsTr("Add members")
anchors.horizontalCenter: parent.horizontalCenter
anchors.top: welcomeText.bottom
diff --git a/ui/app/AppLayouts/Chat/popups/community/InviteFriendsToCommunityPopup.qml b/ui/app/AppLayouts/Chat/popups/community/InviteFriendsToCommunityPopup.qml
index 953e601206..dbac63abcd 100644
--- a/ui/app/AppLayouts/Chat/popups/community/InviteFriendsToCommunityPopup.qml
+++ b/ui/app/AppLayouts/Chat/popups/community/InviteFriendsToCommunityPopup.qml
@@ -58,6 +58,7 @@ StatusStackModal {
rightPadding: 0
nextButton: StatusButton {
+ objectName: "InviteFriendsToCommunityPopup_NextButton"
text: qsTr("Next")
enabled: root.pubKeys.length
onClicked: {
@@ -66,6 +67,7 @@ StatusStackModal {
}
finishButton: StatusButton {
+ objectName: "InviteFriendsToCommunityPopup_SendButton"
enabled: root.pubKeys.length > 0
text: qsTr("Send Invites")
onClicked: {
diff --git a/ui/app/AppLayouts/Onboarding/views/LoginView.qml b/ui/app/AppLayouts/Onboarding/views/LoginView.qml
index b6bd5b05d4..1b94762013 100644
--- a/ui/app/AppLayouts/Onboarding/views/LoginView.qml
+++ b/ui/app/AppLayouts/Onboarding/views/LoginView.qml
@@ -289,6 +289,9 @@ Item {
width: parent.width
Repeater {
+ objectName: "LoginView_AccountsRepeater"
+ width: parent.width
+ height: parent.height
model: proxyModel
delegate: AccountMenuItemPanel {
diff --git a/ui/imports/shared/views/ExistingContacts.qml b/ui/imports/shared/views/ExistingContacts.qml
index 707b1df9ec..77c570ca1b 100644
--- a/ui/imports/shared/views/ExistingContacts.qml
+++ b/ui/imports/shared/views/ExistingContacts.qml
@@ -40,6 +40,7 @@ Item {
StatusListView {
id: contactListView
+ objectName: "ExistingContacts_ListView"
anchors.fill: parent
rightMargin: 0
leftMargin: 0