Changeset View
Changeset View
Standalone View
Standalone View
src/tests/quick-tests/tst_SendMessageBox.qml
| /* | /* | ||||
| * This file is part of kazv. | * This file is part of kazv. | ||||
| * SPDX-FileCopyrightText: 2020-2024 tusooa <tusooa@kazv.moe> | * SPDX-FileCopyrightText: 2020-2024 tusooa <tusooa@kazv.moe> | ||||
| * SPDX-License-Identifier: AGPL-3.0-or-later | * SPDX-License-Identifier: AGPL-3.0-or-later | ||||
| */ | */ | ||||
| import QtQuick 2.15 | import QtQuick 2.15 | ||||
| import QtQuick.Layouts 1.15 | import QtQuick.Layouts 1.15 | ||||
| import QtQuick.Controls 2.15 | import QtQuick.Controls 2.15 | ||||
| import QtTest 1.0 | import QtTest 1.0 | ||||
| import org.kde.kirigami 2.13 as Kirigami | import org.kde.kirigami 2.13 as Kirigami | ||||
| import '../../contents/ui' as Kazv | import '../../contents/ui' as Kazv | ||||
| import 'test-helpers.js' as Helpers | import 'test-helpers.js' as JsHelpers | ||||
| import 'test-helpers' as TestHelpers | import 'test-helpers' as QmlHelpers | ||||
| Item { | QmlHelpers.TestItem { | ||||
| id: item | id: item | ||||
| width: 800 | |||||
| height: 600 | |||||
| property var mockHelper: TestHelpers.MockHelper {} | |||||
| function makeRoom () { | function makeRoom () { | ||||
| return { | return { | ||||
| timeline () { | timeline () { | ||||
| return { | return { | ||||
| count: 0, | count: 0, | ||||
| eventIds: [], | eventIds: [], | ||||
| gaps: [], | gaps: [], | ||||
| at () { return {}; }, | at () { return {}; }, | ||||
| Show All 22 Lines | property var membersModel: ListModel { | ||||
| ListElement { userId: '@foo:example.com' } | ListElement { userId: '@foo:example.com' } | ||||
| ListElement { userId: '@bar:example.com' } | ListElement { userId: '@bar:example.com' } | ||||
| property string filter | property string filter | ||||
| property var count: 2 | property var count: 2 | ||||
| function at(index) { | function at(index) { | ||||
| return get(index); | return get(index); | ||||
| } | } | ||||
| } | } | ||||
| property var l10n: Helpers.fluentMock | |||||
| property var matrixSdk: TestHelpers.MatrixSdkMock { | |||||
| property var serverUrl: "https://example.com" | |||||
| property var token: "token" | |||||
| } | |||||
| property var kazvIOManager: TestHelpers.KazvIOManagerMock { | |||||
| property var startNewUploadJob: mockHelper.noop([ | |||||
| 'serverUrl', | |||||
| 'fileUrl', | |||||
| 'token', | |||||
| 'roomId', | |||||
| 'roomList', | |||||
| 'encrypted', | |||||
| 'draftRelType', | |||||
| 'draftRelatedTo' | |||||
| ]) | |||||
| } | |||||
| property var sdkVars: ({ | |||||
| roomList: {} | |||||
| }) | |||||
| Kazv.SendMessageBox { | Kazv.SendMessageBox { | ||||
| id: sendMessageBox | id: sendMessageBox | ||||
| y: 400 | y: 400 | ||||
| room: item.room | room: item.room | ||||
| } | } | ||||
| TestCase { | TestCase { | ||||
| ▲ Show 20 Lines • Show All 159 Lines • ▼ Show 20 Lines | function test_replyWithFile() { | ||||
| verify(sendFileButton.enabled); | verify(sendFileButton.enabled); | ||||
| verify(!fileDialog.visible); | verify(!fileDialog.visible); | ||||
| mouseClick(sendFileButton); | mouseClick(sendFileButton); | ||||
| verify(fileDialog.visible); | verify(fileDialog.visible); | ||||
| fileDialog.accept(); | fileDialog.accept(); | ||||
| verify(!fileDialog.visible); | verify(!fileDialog.visible); | ||||
| compare(kazvIOManager.startNewUploadJob.calledTimes(), 1); | compare(kazvIOManager.startNewUploadJob.calledTimes(), 1); | ||||
| verify(Helpers.deepEqual(kazvIOManager.startNewUploadJob.lastArgs(), { | verify(JsHelpers.deepEqual(kazvIOManager.startNewUploadJob.lastArgs(), { | ||||
| serverUrl: matrixSdk.serverUrl, | serverUrl: matrixSdk.serverUrl, | ||||
| fileUrl: Qt.url(''), | fileUrl: Qt.url(''), | ||||
| token: matrixSdk.token, | token: matrixSdk.token, | ||||
| roomId: room.roomId, | roomId: room.roomId, | ||||
| roomList: sdkVars.roomList, | roomList: sdkVars.roomList, | ||||
| encrypted: room.encrypted, | encrypted: room.encrypted, | ||||
| draftRelType: 'm.in_reply_to', | draftRelType: 'm.in_reply_to', | ||||
| draftRelatedTo: '!some-event-id' | draftRelatedTo: '!some-event-id' | ||||
| })); | })); | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||