|
|
|
@ -49,6 +49,7 @@ private slots: |
|
|
|
QTRY_VERIFY_WITH_TIMEOUT(!manager.image(channel).isNull(), 5000); |
|
|
|
QTRY_VERIFY_WITH_TIMEOUT(!manager.image(channel).isNull(), 5000); |
|
|
|
QVERIFY(manager.image(channel).width() <= 128); QCOMPARE(manager.image(channel).width(), manager.image(channel).height()); |
|
|
|
QVERIFY(manager.image(channel).width() <= 128); QCOMPARE(manager.image(channel).width(), manager.image(channel).height()); |
|
|
|
const QByteArray saved = db.getChannelAvatar(channel); |
|
|
|
const QByteArray saved = db.getChannelAvatar(channel); |
|
|
|
|
|
|
|
const ChannelRow original = db.getChannels()[0]; |
|
|
|
quint64 version = db.getChannels()[0].avatarVersion; QVERIFY(result.size() >= 2); |
|
|
|
quint64 version = db.getChannels()[0].avatarVersion; QVERIFY(result.size() >= 2); |
|
|
|
QSignalSpy changed(&manager, &GroupAvatarManager::changed); |
|
|
|
QSignalSpy changed(&manager, &GroupAvatarManager::changed); |
|
|
|
for (int i = 0; i < 10; i++) QVERIFY(!manager.image(channel).isNull()); QCOMPARE(changed.count(), 0); |
|
|
|
for (int i = 0; i < 10; i++) QVERIFY(!manager.image(channel).isNull()); QCOMPARE(changed.count(), 0); |
|
|
|
@ -59,11 +60,11 @@ private slots: |
|
|
|
ChannelSettingsDialog reader(channel, &db); |
|
|
|
ChannelSettingsDialog reader(channel, &db); |
|
|
|
QVERIFY(!reader.findChild<QPushButton*>("uploadGroupAvatar")->isEnabled()); QVERIFY(!reader.findChild<QPushButton*>("removeGroupAvatar")->isEnabled()); |
|
|
|
QVERIFY(!reader.findChild<QPushButton*>("uploadGroupAvatar")->isEnabled()); QVERIFY(!reader.findChild<QPushButton*>("removeGroupAvatar")->isEnabled()); |
|
|
|
manager.remove(channel); QTest::qWait(50); QCOMPARE(db.getChannels()[0].avatarVersion, version); QCOMPARE(db.getChannelAvatar(channel), saved); |
|
|
|
manager.remove(channel); QTest::qWait(50); QCOMPARE(db.getChannels()[0].avatarVersion, version); QCOMPARE(db.getChannelAvatar(channel), saved); |
|
|
|
// Закрытый ключ вернём через публичное описание группы; creator UID не используется как право.
|
|
|
|
QCOMPARE(topo_node_sqlite_channel_put(instance->topo_sqlite_db, ch.constData(), original.name.toUtf8().constData(), original.ownerNodeId, |
|
|
|
const ChannelRow row = db.getChannels()[0]; uint8_t edPrivate[32]; |
|
|
|
(const uint8_t*)original.x25519_pubkey.constData(), nullptr, (const uint8_t*)original.ed25519_pubkey.constData(), |
|
|
|
const QByteArray configKeys = row.ed25519_pubkey; Q_UNUSED(configKeys); |
|
|
|
(const uint8_t*)original.ed25519_privkey.constData(), (const uint8_t*)original.signature.constData()), 0); |
|
|
|
// Ключ был сохранён перед удалением в owner DTO.
|
|
|
|
manager.remove(channel); QTRY_VERIFY_WITH_TIMEOUT(db.getChannels()[0].avatarVersion > version, 5000); |
|
|
|
Q_UNUSED(edPrivate); |
|
|
|
QVERIFY(db.getChannelAvatar(channel).isEmpty()); QVERIFY(manager.image(channel).isNull()); |
|
|
|
} |
|
|
|
} |
|
|
|
poll.stop(); chat_event_set_handler(instance, nullptr); db.setDb(nullptr); |
|
|
|
poll.stop(); chat_event_set_handler(instance, nullptr); db.setDb(nullptr); |
|
|
|
utun_instance_destroy(instance); instance = nullptr; uasync_destroy(ua, 0); |
|
|
|
utun_instance_destroy(instance); instance = nullptr; uasync_destroy(ua, 0); |
|
|
|
|