mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-05 11:58:32 +00:00
Show a blank topic as removed. (#3706)
This commit is contained in:
@@ -169,13 +169,13 @@ struct RoomStateEventStringBuilder {
|
|||||||
}
|
}
|
||||||
case .roomTopic(let topic):
|
case .roomTopic(let topic):
|
||||||
switch (topic, isOutgoing) {
|
switch (topic, isOutgoing) {
|
||||||
case (.some(let topic), false):
|
case (.some(let topic), false) where !topic.isBlank:
|
||||||
return L10n.stateEventRoomTopicChanged(displayName, topic)
|
return L10n.stateEventRoomTopicChanged(displayName, topic)
|
||||||
case (nil, false):
|
case (_, false):
|
||||||
return L10n.stateEventRoomTopicRemoved(displayName)
|
return L10n.stateEventRoomTopicRemoved(displayName)
|
||||||
case (.some(let name), true):
|
case (.some(let topic), true) where !topic.isBlank:
|
||||||
return L10n.stateEventRoomTopicChangedByYou(name)
|
return L10n.stateEventRoomTopicChangedByYou(topic)
|
||||||
case (nil, true):
|
case (_, true):
|
||||||
return L10n.stateEventRoomTopicRemovedByYou
|
return L10n.stateEventRoomTopicRemovedByYou
|
||||||
}
|
}
|
||||||
case .roomPinnedEvents(let change):
|
case .roomPinnedEvents(let change):
|
||||||
|
|||||||
@@ -80,4 +80,26 @@ class RoomStateEventStringBuilderTests: XCTestCase {
|
|||||||
memberIsYou: sender.id == userID)
|
memberIsYou: sender.id == userID)
|
||||||
XCTAssertEqual(string, expectedString)
|
XCTAssertEqual(string, expectedString)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func testTopicChanges() {
|
||||||
|
let you = TimelineItemSender(id: userID, displayName: "Alice")
|
||||||
|
let other = TimelineItemSender(id: "@bob:matrix.org", displayName: "Bob")
|
||||||
|
|
||||||
|
let newTopic = "New topic"
|
||||||
|
var string = stringBuilder.buildString(for: .roomTopic(topic: newTopic), sender: you, isOutgoing: true)
|
||||||
|
XCTAssertEqual(string, L10n.stateEventRoomTopicChangedByYou(newTopic))
|
||||||
|
string = stringBuilder.buildString(for: .roomTopic(topic: newTopic), sender: other, isOutgoing: false)
|
||||||
|
XCTAssertEqual(string, L10n.stateEventRoomTopicChanged(other.displayName ?? "", newTopic))
|
||||||
|
|
||||||
|
let emptyTopic = ""
|
||||||
|
string = stringBuilder.buildString(for: .roomTopic(topic: emptyTopic), sender: you, isOutgoing: true)
|
||||||
|
XCTAssertEqual(string, L10n.stateEventRoomTopicRemovedByYou)
|
||||||
|
string = stringBuilder.buildString(for: .roomTopic(topic: emptyTopic), sender: other, isOutgoing: false)
|
||||||
|
XCTAssertEqual(string, L10n.stateEventRoomTopicRemoved(other.displayName ?? ""))
|
||||||
|
|
||||||
|
string = stringBuilder.buildString(for: .roomTopic(topic: nil), sender: you, isOutgoing: true)
|
||||||
|
XCTAssertEqual(string, L10n.stateEventRoomTopicRemovedByYou)
|
||||||
|
string = stringBuilder.buildString(for: .roomTopic(topic: nil), sender: other, isOutgoing: false)
|
||||||
|
XCTAssertEqual(string, L10n.stateEventRoomTopicRemoved(other.displayName ?? ""))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user