Fixes #2618 - Allow dashes in room identifiers

This commit is contained in:
Stefan Ceriu
2024-04-01 10:52:02 +03:00
parent 834a830952
commit cb585eef5f
4 changed files with 14 additions and 1 deletions
@@ -34,7 +34,7 @@ enum MatrixEntityRegex: String {
case .roomAlias:
return "#[A-Z0-9._%#@=+-]+:" + MatrixEntityRegex.homeserver.rawValue
case .roomId:
return "![A-Z0-9]+:" + MatrixEntityRegex.homeserver.rawValue
return "![A-Z0-9_\\-\\/]+:" + MatrixEntityRegex.homeserver.rawValue
case .eventId:
return "\\$[a-z0-9_\\-\\/]+(:[a-z0-9]+\\.[a-z0-9]+)?"
case .allUsers:
@@ -41,6 +41,7 @@ class MatrixEntityRegexTests: XCTestCase {
func testRoomId() {
XCTAssertTrue(MatrixEntityRegex.isMatrixRoomIdentifier("!pMBteVpcoJRdCJxDmn:matrix.org"))
XCTAssertTrue(MatrixEntityRegex.isMatrixRoomIdentifier("!pMBte-Vpco-JRdCJxDmn:matrix.org"))
XCTAssertFalse(MatrixEntityRegex.isMatrixRoomIdentifier("pMBteVpcoJRdCJxDmn:matrix.org"))
XCTAssertFalse(MatrixEntityRegex.isMatrixRoomIdentifier("!pMBteVpcoJRdCJxDmn.matrix.org"))
}
@@ -57,6 +57,17 @@ class PermalinkBuilderTests: XCTestCase {
}
}
func testMautrixBridgePermalink() throws {
let roomId = "!mautrix-signal-v6:maunium.net"
do {
let permalink = try PermalinkBuilder.permalinkTo(roomIdentifier: roomId, baseURL: appSettings.permalinkBaseURL)
XCTAssertEqual(permalink, URL(string: "\(appSettings.permalinkBaseURL)/#/!mautrix-signal-v6%3Amaunium.net"))
} catch {
XCTFail("Room identifier must be valid: \(error)")
}
}
func testInvalidRoomIdentifier() {
do {
_ = try PermalinkBuilder.permalinkTo(roomIdentifier: "This1sN0tV4lid!@#$%^&*()", baseURL: appSettings.permalinkBaseURL)
+1
View File
@@ -0,0 +1 @@
Fix room permalink building, allow dashes in room identifiers