Skip to content

Commit

Permalink
Merge pull request #1913 from nextcloud/fix-mentions-with-curly-brakets
Browse files Browse the repository at this point in the history
fix(mentions): Adjust regex
  • Loading branch information
Ivansss authored Dec 12, 2024
2 parents 4893dfe + 34eb678 commit e37d01c
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 1 deletion.
2 changes: 1 addition & 1 deletion NextcloudTalk/NCChatMessage.m
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,7 @@ - (NSMutableAttributedString *)parsedMessage
static NSRegularExpression *parameterRegex;

if (!parameterRegex) {
parameterRegex = [NSRegularExpression regularExpressionWithPattern:@"\\{([^}]+)\\}" options:NSRegularExpressionCaseInsensitive error:&error];
parameterRegex = [NSRegularExpression regularExpressionWithPattern:@"\\{([a-z\\-_.0-9]+)\\}" options:NSRegularExpressionCaseInsensitive error:&error];
}

NSArray *matches = [parameterRegex matchesInString:originalMessage
Expand Down
31 changes: 31 additions & 0 deletions NextcloudTalkTests/Unit/Chat/UnitNCChatMessageTest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,35 @@ final class UnitNCChatMessageTest: TestBaseRealm {
XCTAssertFalse(message.containsURL())
}

func testMentionRendering() throws {
let mentionParameters = """
{
"mention-user1": {
"type": "user",
"id": "[email protected]",
"name": "Username with space",
"server": "https://nextcloud.invalid"
}
}
"""

let mentionMessage = NCChatMessage()
mentionMessage.messageParametersJSONString = mentionParameters

mentionMessage.message = "{mention-user1}"
XCTAssertEqual(mentionMessage.parsedMarkdownForChat().string, "@Username with space")

mentionMessage.message = "{\n{mention-user1}"
XCTAssertEqual(mentionMessage.parsedMarkdownForChat().string, "{\n@Username with space")

mentionMessage.message = "@{mention-user1}"
XCTAssertEqual(mentionMessage.parsedMarkdownForChat().string, "@@Username with space")

mentionMessage.message = " abc{mention-user1}abc "
XCTAssertEqual(mentionMessage.parsedMarkdownForChat().string, " abc@Username with spaceabc ")

mentionMessage.message = "{mention-user1}{mention-user2}"
XCTAssertEqual(mentionMessage.parsedMarkdownForChat().string, "@Username with space{mention-user2}")
}

}

0 comments on commit e37d01c

Please sign in to comment.