diff --git a/damus.xcodeproj/project.pbxproj b/damus.xcodeproj/project.pbxproj index 5a1f4e46..5a92b857 100644 --- a/damus.xcodeproj/project.pbxproj +++ b/damus.xcodeproj/project.pbxproj @@ -375,6 +375,7 @@ BA693074295D649800ADDB87 /* UserSettingsStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA693073295D649800ADDB87 /* UserSettingsStore.swift */; }; BAB68BED29543FA3007BA466 /* SelectWalletView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BAB68BEC29543FA3007BA466 /* SelectWalletView.swift */; }; D2277EEA2A089BD5006C3807 /* Router.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2277EE92A089BD5006C3807 /* Router.swift */; }; + D78525252A7B2EA4002FA637 /* NoteContentViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D78525242A7B2EA4002FA637 /* NoteContentViewTests.swift */; }; E4FA1C032A24BB7F00482697 /* SearchSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4FA1C022A24BB7F00482697 /* SearchSettingsView.swift */; }; E990020F2955F837003BBC5A /* EditMetadataView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E990020E2955F837003BBC5A /* EditMetadataView.swift */; }; E9E4ED0B295867B900DD7078 /* ThreadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9E4ED0A295867B900DD7078 /* ThreadView.swift */; }; @@ -918,6 +919,7 @@ BA693073295D649800ADDB87 /* UserSettingsStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserSettingsStore.swift; sourceTree = ""; }; BAB68BEC29543FA3007BA466 /* SelectWalletView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectWalletView.swift; sourceTree = ""; }; D2277EE92A089BD5006C3807 /* Router.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Router.swift; sourceTree = ""; }; + D78525242A7B2EA4002FA637 /* NoteContentViewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NoteContentViewTests.swift; sourceTree = ""; }; E4FA1C022A24BB7F00482697 /* SearchSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchSettingsView.swift; sourceTree = ""; }; E990020E2955F837003BBC5A /* EditMetadataView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditMetadataView.swift; sourceTree = ""; }; E9E4ED0A295867B900DD7078 /* ThreadView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThreadView.swift; sourceTree = ""; }; @@ -1705,6 +1707,7 @@ 4C4F14A62A2A61A30045A0B9 /* NostrScriptTests.swift */, 4C19AE542A5D977400C90DB7 /* HashtagTests.swift */, 3AAC7A012A60FE72002B50DF /* LocalizationUtilTests.swift */, + D78525242A7B2EA4002FA637 /* NoteContentViewTests.swift */, ); path = damusTests; sourceTree = ""; @@ -2409,6 +2412,7 @@ 501F8C822A0224EB001AFC1D /* KeychainStorageTests.swift in Sources */, 3ACBCB78295FE5C70037388A /* TimeAgoTests.swift in Sources */, 4C4F14A72A2A61A30045A0B9 /* NostrScriptTests.swift in Sources */, + D78525252A7B2EA4002FA637 /* NoteContentViewTests.swift in Sources */, 4C3EA67B28FF7B3900C48A62 /* InvoiceTests.swift in Sources */, 4C363A9E2828A822006E126D /* ReplyTests.swift in Sources */, 4C7D097E2A0C58B900943473 /* WalletConnectTests.swift in Sources */, diff --git a/damusTests/NoteContentViewTests.swift b/damusTests/NoteContentViewTests.swift new file mode 100644 index 00000000..512667cb --- /dev/null +++ b/damusTests/NoteContentViewTests.swift @@ -0,0 +1,27 @@ +// +// NoteContentViewTests.swift +// damusTests +// +// Created by Daniel D’Aquino on 2023-08-02. +// + +import XCTest +@testable import damus + +class NoteContentViewTests: XCTestCase { + func testRenderBlocksWithNonLatinHashtags() { + let parsed: Blocks = parse_note_content(content: "Damusはかっこいいです #cool #かっこいい", tags: [["t", "かっこいい"]]) + + let testState = test_damus_state() + + let text: NoteArtifactsSeparated = render_blocks(blocks: parsed, profiles: testState.profiles) + let attributedText: AttributedString = text.content.attributed + + let runs: AttributedString.Runs = attributedText.runs + let runArray: [AttributedString.Runs.Run] = Array(runs) + print(runArray.description) + XCTAssertEqual(runArray[1].link?.absoluteString, "damus:t:cool", "Latin-character hashtag is missing. Runs description :\(runArray.description)") + XCTAssertEqual(runArray[3].link?.absoluteString.removingPercentEncoding!, "damus:t:かっこいい", "Non-latin-character hashtag is missing. Runs description :\(runArray.description)") + } + +} diff --git a/damusTests/damusTests.swift b/damusTests/damusTests.swift index 1f705c67..6d03045a 100644 --- a/damusTests/damusTests.swift +++ b/damusTests/damusTests.swift @@ -180,15 +180,17 @@ class damusTests: XCTestCase { } func testMakeHashtagPost() { - let post = NostrPost(content: "#damus some content #bitcoin derp", references: []) + let post = NostrPost(content: "#damus some content #bitcoin derp #かっこいい wow", references: []) let ev = post_to_event(post: post, keypair: test_keypair_full)! - XCTAssertEqual(ev.tags.count, 2) - XCTAssertEqual(ev.content, "#damus some content #bitcoin derp") + XCTAssertEqual(ev.tags.count, 3) + XCTAssertEqual(ev.content, "#damus some content #bitcoin derp #かっこいい wow") XCTAssertEqual(ev.tags[0][0], "t") XCTAssertEqual(ev.tags[0][1], "damus") XCTAssertEqual(ev.tags[1][0], "t") XCTAssertEqual(ev.tags[1][1], "bitcoin") + XCTAssertEqual(ev.tags[2][0], "t") + XCTAssertEqual(ev.tags[2][1], "かっこいい") } func testParseMentionOnlyText() {