Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F2698341
tst_RoomListViewItemDelegate.qml
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
6 KB
Referenced Files
None
Subscribers
None
tst_RoomListViewItemDelegate.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
roomInvite:
Helpers
.
factory
.
room
({
membership:
MK
.
MatrixRoom
.
Invite
,
})
property
var
roomJoin:
Helpers
.
factory
.
room
({
membership:
MK
.
MatrixRoom
.
Join
,
})
property
var
roomLeave:
Helpers
.
factory
.
room
({
membership:
MK
.
MatrixRoom
.
Leave
,
})
property
var
timelineUnread:
QtObject
{
property
var
count:
5
function
at
(
i
)
{
if
(
i
<
2
)
{
return
{
isLocalEcho:
true
,
readers:
()
=>
({
count:
0
}),
};
}
if
(
i
<
3
)
{
return
{
isLocalEcho:
false
,
sender:
'@bar:example.org'
,
eventId:
`
$event$
{
i
}
`
,
readers:
()
=>
({
count:
0
}),
};
}
return
{
isLocalEcho:
false
,
sender:
'@foo:example.org'
,
eventId:
`
$event$
{
i
}
`
,
readers:
()
=>
({
count:
0
}),
};
}
}
property
var
timelineLastSentIsMine:
QtObject
{
property
var
count:
5
function
at
(
i
)
{
if
(
i
<
2
)
{
return
{
isLocalEcho:
true
,
readers:
()
=>
({
count:
0
}),
};
}
if
(
i
<
3
)
{
return
{
isLocalEcho:
false
,
sender:
'@foo:example.org'
,
eventId:
`
$event$
{
i
}
`
,
readers:
()
=>
({
count:
0
}),
};
}
return
{
isLocalEcho:
false
,
sender:
'@bar:example.org'
,
eventId:
`
$event$
{
i
}
`
,
readers:
()
=>
({
count:
0
}),
};
}
}
property
var
timelineRead:
QtObject
{
property
var
count:
5
function
at
(
i
)
{
if
(
i
<
2
)
{
return
{
isLocalEcho:
true
,
readers:
()
=>
({
count:
0
}),
};
}
if
(
i
<
3
)
{
return
{
isLocalEcho:
false
,
sender:
'@bar:example.org'
,
eventId:
`
$event$
{
i
}
`
,
readers:
()
=>
({
count:
1
,
at
()
{
return
{
userId:
'@foo:example.org'
};
},
}),
};
}
return
{
isLocalEcho:
false
,
sender:
'@foo:example.org'
,
eventId:
`
$event$
{
i
}
`
,
readers:
()
=>
({
count:
0
}),
};
}
}
property
var
l10n:
Helpers
.
fluentMock
property
var
matrixSdk:
TestHelpers
.
MatrixSdkMock
{
property
var
userId:
'@foo:example.org'
}
property
var
sdkVars:
QtObject
{
property
var
userGivenNicknameMap:
QtObject
{
property
var
map:
({
'@foo:example.com'
:
'something'
,
})
}
}
property
string
testRoomId:
'room-test'
signal
switchToRoomRequested
(
string
roomId
)
SignalSpy
{
id: switchToRoomSpy
target:
item
signalName:
'switchToRoomRequested'
}
ColumnLayout
{
anchors.fill:
parent
Kazv
.
RoomListViewItemDelegate
{
id: delegateInvite
item:
roomInvite
}
Kazv
.
RoomListViewItemDelegate
{
id: delegateJoin
item:
roomJoin
}
Kazv
.
RoomListViewItemDelegate
{
id: delegateLeave
item:
roomLeave
}
Kazv
.
RoomListViewItemDelegate
{
id: delegateRoom
item:
Helpers
.
factory
.
room
({
roomId:
testRoomId
})
}
Kazv
.
RoomListViewItemDelegate
{
id: delegateRoomWithName
item:
QtObject
{
property
var
roomId:
testRoomId
property
var
name:
'some name'
}
}
Kazv
.
RoomListViewItemDelegate
{
id: delegateRoomWithHeroes
item:
QtObject
{
property
var
roomId:
testRoomId
property
var
heroEvents:
[{
type:
'm.room.member'
,
state_key:
'@foo:example.com'
,
content:
{
displayname:
'foo'
,
},
},
{
type:
'm.room.member'
,
state_key:
'@bar:example.com'
,
content:
{
displayname:
'bar'
,
},
}]
}
}
}
TestCase
{
id: roomListViewItemDelegateTest
name:
'RoomListViewItemDelegateTest'
when:
windowShown
function
test_inviteIndicator
()
{
const
indicator
=
findChild
(
delegateInvite
,
'inviteIndicator'
);
verify
(
indicator
);
verify
(
indicator
.
visible
);
const
leaveIndicator
=
findChild
(
delegateInvite
,
'leaveIndicator'
);
verify
(
leaveIndicator
);
verify
(
!
leaveIndicator
.
visible
);
}
function
test_inviteIndicatorJoin
()
{
const
indicator
=
findChild
(
delegateJoin
,
'inviteIndicator'
);
verify
(
indicator
);
verify
(
!
indicator
.
visible
);
const
leaveIndicator
=
findChild
(
delegateJoin
,
'leaveIndicator'
);
verify
(
leaveIndicator
);
verify
(
!
leaveIndicator
.
visible
);
}
function
test_inviteIndicatorLeave
()
{
const
indicator
=
findChild
(
delegateLeave
,
'inviteIndicator'
);
verify
(
indicator
);
verify
(
!
indicator
.
visible
);
const
leaveIndicator
=
findChild
(
delegateLeave
,
'leaveIndicator'
);
verify
(
leaveIndicator
);
verify
(
leaveIndicator
.
visible
);
}
function
test_lastUnreadMessage
()
{
compare
(
delegateJoin
.
getLastUnreadMessage
(
timelineUnread
,
timelineUnread
.
count
).
eventId
,
'$event2'
);
compare
(
delegateJoin
.
getLastUnreadMessage
(
timelineLastSentIsMine
,
timelineLastSentIsMine
.
count
),
undefined
);
compare
(
delegateJoin
.
getLastUnreadMessage
(
timelineRead
,
timelineRead
.
count
),
undefined
);
}
function
test_returnRoom
()
{
compare
(
switchToRoomSpy
.
count
,
0
);
mouseClick
(
delegateRoom
);
tryCompare
(
switchToRoomSpy
,
'count'
,
1
);
verify
(
Helpers
.
deepEqual
(
switchToRoomSpy
.
signalArguments
[
0
],
[
testRoomId
]));
}
function
test_roomName
()
{
compare
(
findChild
(
delegateRoomWithName
,
'roomDisplayNameLabel'
).
text
,
l10n
.
get
(
'room-list-view-room-item-title-name'
,
{
name:
'some name'
}));
compare
(
findChild
(
delegateRoomWithHeroes
,
'roomDisplayNameLabel'
).
text
,
l10n
.
get
(
'room-list-view-room-item-title-heroes'
,
{
hero:
l10n
.
get
(
'user-name-overrided'
,
{
overridedName:
'something'
,
globalName:
'foo'
}),
secondHero:
'bar'
,
otherNum:
1
,
}));
}
}
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Jul 18, 8:28 AM (10 h, 23 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
259379
Default Alt Text
tst_RoomListViewItemDelegate.qml (6 KB)
Attached To
Mode
rK kazv
Attached
Detach File
Event Timeline
Log In to Comment