mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 12:07:55 +00:00
Better identification system for virtual items (#1361)
* better identification system * better handling for unknown
This commit is contained in:
@@ -252,21 +252,21 @@ class LoggingTests: XCTestCase {
|
||||
func testTimelineContentIsRedacted() throws {
|
||||
// Given timeline items that contain text
|
||||
let textAttributedString = "TextAttributed"
|
||||
let textMessage = TextRoomTimelineItem(id: .init(timelineID: UUID().uuidString),
|
||||
let textMessage = TextRoomTimelineItem(id: .random,
|
||||
timestamp: "",
|
||||
isOutgoing: false,
|
||||
isEditable: false,
|
||||
sender: .init(id: "sender"),
|
||||
content: .init(body: "TextString", formattedBody: AttributedString(textAttributedString)))
|
||||
let noticeAttributedString = "NoticeAttributed"
|
||||
let noticeMessage = NoticeRoomTimelineItem(id: .init(timelineID: UUID().uuidString),
|
||||
let noticeMessage = NoticeRoomTimelineItem(id: .random,
|
||||
timestamp: "",
|
||||
isOutgoing: false,
|
||||
isEditable: false,
|
||||
sender: .init(id: "sender"),
|
||||
content: .init(body: "NoticeString", formattedBody: AttributedString(noticeAttributedString)))
|
||||
let emoteAttributedString = "EmoteAttributed"
|
||||
let emoteMessage = EmoteRoomTimelineItem(id: .init(timelineID: UUID().uuidString),
|
||||
let emoteMessage = EmoteRoomTimelineItem(id: .random,
|
||||
timestamp: "",
|
||||
isOutgoing: false,
|
||||
isEditable: false,
|
||||
@@ -278,13 +278,13 @@ class LoggingTests: XCTestCase {
|
||||
isEditable: false,
|
||||
sender: .init(id: "sender"),
|
||||
content: .init(body: "ImageString", source: MediaSourceProxy(url: .picturesDirectory, mimeType: "image/gif"), thumbnailSource: nil))
|
||||
let videoMessage = VideoRoomTimelineItem(id: .init(timelineID: UUID().uuidString),
|
||||
let videoMessage = VideoRoomTimelineItem(id: .random,
|
||||
timestamp: "",
|
||||
isOutgoing: false,
|
||||
isEditable: false,
|
||||
sender: .init(id: "sender"),
|
||||
content: .init(body: "VideoString", duration: 0, source: nil, thumbnailSource: nil))
|
||||
let fileMessage = FileRoomTimelineItem(id: .init(timelineID: UUID().uuidString),
|
||||
let fileMessage = FileRoomTimelineItem(id: .random,
|
||||
timestamp: "",
|
||||
isOutgoing: false,
|
||||
isEditable: false,
|
||||
|
||||
@@ -309,7 +309,7 @@ class RoomScreenViewModelTests: XCTestCase {
|
||||
userIndicatorController: userIndicatorControllerMock)
|
||||
|
||||
// Test
|
||||
viewModel.context.send(viewAction: .retrySend(itemID: .init(timelineID: UUID().uuidString)))
|
||||
viewModel.context.send(viewAction: .retrySend(itemID: .random))
|
||||
await Task.yield()
|
||||
XCTAssert(roomProxyMock.retrySendTransactionIDCallsCount == 0)
|
||||
}
|
||||
@@ -346,7 +346,7 @@ class RoomScreenViewModelTests: XCTestCase {
|
||||
userIndicatorController: userIndicatorControllerMock)
|
||||
|
||||
// Test
|
||||
viewModel.context.send(viewAction: .cancelSend(itemID: .init(timelineID: UUID().uuidString)))
|
||||
viewModel.context.send(viewAction: .cancelSend(itemID: .random))
|
||||
await Task.yield()
|
||||
XCTAssert(roomProxyMock.cancelSendTransactionIDCallsCount == 0)
|
||||
}
|
||||
@@ -376,7 +376,7 @@ class RoomScreenViewModelTests: XCTestCase {
|
||||
private extension TextRoomTimelineItem {
|
||||
init(text: String, sender: String, addReactions: Bool = false) {
|
||||
let reactions = addReactions ? [AggregatedReaction(accountOwnerID: "bob", key: "🦄", senders: [ReactionSender(senderID: sender, timestamp: Date())])] : []
|
||||
self.init(id: .init(timelineID: UUID().uuidString),
|
||||
self.init(id: .random,
|
||||
timestamp: "10:47 am",
|
||||
isOutgoing: sender == "bob",
|
||||
isEditable: sender == "bob",
|
||||
|
||||
@@ -20,7 +20,7 @@ import XCTest
|
||||
final class TextBasedRoomTimelineTests: XCTestCase {
|
||||
func testTextRoomTimelineItemWhitespaceEnd() {
|
||||
let timestamp = "Now"
|
||||
let timelineItem = TextRoomTimelineItem(id: .init(timelineID: UUID().uuidString), timestamp: timestamp, isOutgoing: true, isEditable: true, sender: .init(id: UUID().uuidString), content: .init(body: "Test"))
|
||||
let timelineItem = TextRoomTimelineItem(id: .random, timestamp: timestamp, isOutgoing: true, isEditable: true, sender: .init(id: UUID().uuidString), content: .init(body: "Test"))
|
||||
let view = TextBasedRoomTimelineViewMock<TextRoomTimelineItem>()
|
||||
view.underlyingTimelineItem = timelineItem
|
||||
view.timelineStyle = .bubbles
|
||||
@@ -30,7 +30,7 @@ final class TextBasedRoomTimelineTests: XCTestCase {
|
||||
|
||||
func testTextRoomTimelineItemWhitespaceEndLonger() {
|
||||
let timestamp = "10:00 AM"
|
||||
let timelineItem = TextRoomTimelineItem(id: .init(timelineID: UUID().uuidString), timestamp: timestamp, isOutgoing: true, isEditable: true, sender: .init(id: UUID().uuidString), content: .init(body: "Test"))
|
||||
let timelineItem = TextRoomTimelineItem(id: .random, timestamp: timestamp, isOutgoing: true, isEditable: true, sender: .init(id: UUID().uuidString), content: .init(body: "Test"))
|
||||
let view = TextBasedRoomTimelineViewMock<TextRoomTimelineItem>()
|
||||
view.underlyingTimelineItem = timelineItem
|
||||
view.timelineStyle = .bubbles
|
||||
@@ -39,7 +39,7 @@ final class TextBasedRoomTimelineTests: XCTestCase {
|
||||
}
|
||||
|
||||
func testTextRoomTimelineItemWhitespaceEndPlain() {
|
||||
let timelineItem = TextRoomTimelineItem(id: .init(timelineID: UUID().uuidString), timestamp: "Now", isOutgoing: true, isEditable: true, sender: .init(id: UUID().uuidString), content: .init(body: "Test"))
|
||||
let timelineItem = TextRoomTimelineItem(id: .random, timestamp: "Now", isOutgoing: true, isEditable: true, sender: .init(id: UUID().uuidString), content: .init(body: "Test"))
|
||||
let view = TextBasedRoomTimelineViewMock<TextRoomTimelineItem>()
|
||||
view.underlyingTimelineItem = timelineItem
|
||||
view.timelineStyle = .plain
|
||||
@@ -49,7 +49,7 @@ final class TextBasedRoomTimelineTests: XCTestCase {
|
||||
|
||||
func testTextRoomTimelineItemWhitespaceEndWithEdit() {
|
||||
let timestamp = "Now"
|
||||
var timelineItem = TextRoomTimelineItem(id: .init(timelineID: UUID().uuidString), timestamp: timestamp, isOutgoing: true, isEditable: true, sender: .init(id: UUID().uuidString), content: .init(body: "Test"))
|
||||
var timelineItem = TextRoomTimelineItem(id: .random, timestamp: timestamp, isOutgoing: true, isEditable: true, sender: .init(id: UUID().uuidString), content: .init(body: "Test"))
|
||||
timelineItem.properties.isEdited = true
|
||||
let editedCount = L10n.commonEditedSuffix.count
|
||||
let view = TextBasedRoomTimelineViewMock<TextRoomTimelineItem>()
|
||||
@@ -61,7 +61,7 @@ final class TextBasedRoomTimelineTests: XCTestCase {
|
||||
|
||||
func testTextRoomTimelineItemWhitespaceEndWithEditAndAlert() {
|
||||
let timestamp = "Now"
|
||||
var timelineItem = TextRoomTimelineItem(id: .init(timelineID: UUID().uuidString), timestamp: timestamp, isOutgoing: true, isEditable: true, sender: .init(id: UUID().uuidString), content: .init(body: "Test"))
|
||||
var timelineItem = TextRoomTimelineItem(id: .random, timestamp: timestamp, isOutgoing: true, isEditable: true, sender: .init(id: UUID().uuidString), content: .init(body: "Test"))
|
||||
timelineItem.properties.isEdited = true
|
||||
timelineItem.properties.deliveryStatus = .sendingFailed
|
||||
let editedCount = L10n.commonEditedSuffix.count
|
||||
|
||||
Reference in New Issue
Block a user