Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F7892360
tst_RoomPage.qml
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
3 KB
Referenced Files
None
Subscribers
None
tst_RoomPage.qml
View Options
/*
* This file is part of kazv.
* SPDX-FileCopyrightText: 2023 tusooa <tusooa@kazv.moe>
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import
QtQuick
2.3
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
mockHelper:
TestHelpers
.
MockHelper
{}
property
var
roomTimeline:
QtObject
{
property
var
count:
5
function
at
(
i
)
{
if
(
i
<
2
)
{
return
{
isLocalEcho:
true
,
};
}
if
(
i
<
3
)
{
return
{
isLocalEcho:
false
,
sender:
'@foo:example.org'
,
eventId:
`
$event$
{
i
}
`
,
};
}
return
{
isLocalEcho:
false
,
sender:
'@bar:example.org'
,
eventId:
`
$event$
{
i
}
`
,
};
}
}
property
var
roomInvite:
Helpers
.
factory
.
room
({
membership:
MK
.
MatrixRoom
.
Invite
,
})
property
var
roomJoin:
Helpers
.
factory
.
room
({
membership:
MK
.
MatrixRoom
.
Join
,
paginateBackFrom:
mockHelper
.
promise
(),
})
property
var
roomLeave:
Helpers
.
factory
.
room
({
membership:
MK
.
MatrixRoom
.
Leave
,
})
property
var
l10n:
Helpers
.
fluentMock
property
var
matrixSdk:
TestHelpers
.
MatrixSdkMock
{
property
var
userId:
'@foo:example.org'
}
property
var
sdkVars:
({})
ColumnLayout
{
Kazv
.
RoomPage
{
id: pageInvite
room:
roomInvite
}
Kazv
.
RoomPage
{
id: pageJoin
room:
roomJoin
}
Kazv
.
RoomPage
{
id: pageLeave
room:
roomLeave
}
}
TestCase
{
id: roomPageTest
name:
'RoomPageTest'
when:
windowShown
function
init
()
{
mockHelper
.
clearAll
();
}
function
test_inviteRoom
()
{
const
sendMessageBox
=
findChild
(
pageInvite
,
'sendMessageBox'
);
verify
(
sendMessageBox
);
verify
(
!
sendMessageBox
.
enabled
);
}
function
test_joinRoom
()
{
const
sendMessageBox
=
findChild
(
pageJoin
,
'sendMessageBox'
);
verify
(
sendMessageBox
);
verify
(
sendMessageBox
.
enabled
);
}
function
test_leaveRoom
()
{
const
sendMessageBox
=
findChild
(
pageLeave
,
'sendMessageBox'
);
verify
(
sendMessageBox
);
verify
(
!
sendMessageBox
.
enabled
);
}
function
test_receiptableEventId
()
{
verify
(
pageJoin
.
getLastReceiptableEventId
(
item
.
roomTimeline
,
item
.
roomTimeline
.
count
)
===
'$event3'
);
}
function
test_paginateBack
()
{
pageJoin
.
paginateBackRequested
(
'$1'
);
tryVerify
(()
=>
roomJoin
.
paginateBackFrom
.
calledTimes
()
===
1
);
verify
(
roomJoin
.
paginateBackFrom
.
lastArgs
()[
0
]
===
'$1'
);
// one pagination under way, do not call it twice
pageJoin
.
paginateBackRequested
(
'$1'
);
verify
(
roomJoin
.
paginateBackFrom
.
calledTimes
()
===
1
);
// paginating from another event is not affected
pageJoin
.
paginateBackRequested
(
'$2'
);
tryVerify
(()
=>
roomJoin
.
paginateBackFrom
.
calledTimes
()
===
2
);
verify
(
roomJoin
.
paginateBackFrom
.
lastArgs
()[
0
]
===
'$2'
);
// after the promise resolves, we can paginate from this id again
roomJoin
.
paginateBackFrom
.
retVals
[
0
].
resolve
(
true
);
pageJoin
.
paginateBackRequested
(
'$1'
);
tryVerify
(()
=>
roomJoin
.
paginateBackFrom
.
calledTimes
()
===
3
);
verify
(
roomJoin
.
paginateBackFrom
.
lastArgs
()[
0
]
===
'$1'
);
}
}
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Oct 2, 4:22 AM (13 h, 27 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
470968
Default Alt Text
tst_RoomPage.qml (3 KB)
Attached To
Mode
rK kazv
Attached
Detach File
Event Timeline
Log In to Comment