Page MenuHomePhorge

tst_JoinRoomPage.qml
No OneTemporary

Size
3 KB
Referenced Files
None
Subscribers
None

tst_JoinRoomPage.qml

/*
* This file is part of kazv.
* SPDX-FileCopyrightText: 2024 tusooa <tusooa@kazv.moe>
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import QtQuick 2.15
import QtQuick.Layouts 1.15
import QtTest 1.0
import '../../contents/ui' as Kazv
import 'test-helpers.js' as Helpers
import 'test-helpers' as TestHelpers
import moe.kazv.mxc.kazv 0.0 as MK
Item {
id: item
width: 800
height: 600
property var promiseComp: Component {
TestHelpers.MatrixPromiseMock {}
}
property var l10n: Helpers.fluentMock
property var showPassiveNotification: () => {}
property var matrixSdk: TestHelpers.MatrixSdkMock {
property var _joinRoomCalled: 0
property var _joinRoomArgs: ({})
property var _joinRoomPromise: undefined
function joinRoom(
room, serverNames
) {
++item.matrixSdk._joinRoomCalled;
item.matrixSdk._joinRoomArgs = {
room,
serverNames,
};
item.matrixSdk._joinRoomPromise = promiseComp.createObject(item);
return item.matrixSdk._joinRoomPromise;
}
}
property var sdkVars: ({})
property var pageStack: ({
removePage (page) {
++item.pageStack._removePageCalled;
},
_removePageCalled: 0,
})
Kazv.JoinRoomPage {
id: joinRoomPage
}
TestCase {
id: joinRoomPageTest
name: 'JoinRoomPageTest'
when: windowShown
function cleanup() {
item.matrixSdk._joinRoomCalled = 0;
item.matrixSdk._joinRoomArgs = {};
item.matrixSdk._joinRoomPromise = undefined;
item.pageStack._removePageCalled = 0;
}
function test_joinRoomWithServers() {
findChild(joinRoomPage, 'idOrAliasInput').text = '#foo:example.com';
findChild(joinRoomPage, 'serversInput').text = 'example.com\nexample.org';
const button = findChild(joinRoomPage, 'joinRoomButton');
verify(button.enabled);
mouseClick(button);
tryVerify(() => item.matrixSdk._joinRoomCalled === 1, 1000);
console.log(JSON.stringify(item.matrixSdk._joinRoomArgs));
verify(Helpers.deepEqual(item.matrixSdk._joinRoomArgs, {
room: '#foo:example.com',
serverNames: ['example.com', 'example.org'],
}));
item.matrixSdk._joinRoomPromise.resolve(true, {});
tryVerify(() => item.pageStack._removePageCalled === 1);
}
function test_joinRoomWithoutServers() {
findChild(joinRoomPage, 'idOrAliasInput').text = '#foo:example.com';
findChild(joinRoomPage, 'serversInput').text = '';
const button = findChild(joinRoomPage, 'joinRoomButton');
verify(button.enabled);
mouseClick(button);
tryVerify(() => item.matrixSdk._joinRoomCalled === 1, 1000);
verify(Helpers.deepEqual(item.matrixSdk._joinRoomArgs, {
room: '#foo:example.com',
serverNames: [],
}));
item.matrixSdk._joinRoomPromise.resolve(true, {});
tryVerify(() => item.pageStack._removePageCalled === 1);
}
function test_joinRoomFailure() {
findChild(joinRoomPage, 'idOrAliasInput').text = '#foo:example.com';
findChild(joinRoomPage, 'serversInput').text = '';
const button = findChild(joinRoomPage, 'joinRoomButton');
verify(button.enabled);
mouseClick(button);
tryVerify(() => item.matrixSdk._joinRoomCalled === 1, 1000);
item.matrixSdk._joinRoomPromise.resolve(false, {});
tryVerify(() => item.pageStack._removePageCalled === 0);
}
}
}

File Metadata

Mime Type
text/plain
Expires
Thu, Oct 2, 4:51 AM (1 d, 6 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
471328
Default Alt Text
tst_JoinRoomPage.qml (3 KB)

Event Timeline