test: fix broken tests

Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
William Casarin
2024-04-05 11:13:04 -07:00
committed by Daniel D’Aquino
parent 744bf4bb07
commit 690e1347e0
23 changed files with 611 additions and 367 deletions

View File

@@ -16,7 +16,7 @@ class Bech32ObjectTests: XCTestCase {
func testTLVParsing_NeventHasRelaysNoAuthorNoKind_ValidContent() throws {
let content = "nevent1qqstna2yrezu5wghjvswqqculvvwxsrcvu7uc0f78gan4xqhvz49d9spr3mhxue69uhkummnw3ez6un9d3shjtn4de6x2argwghx6egpr4mhxue69uhkummnw3ez6ur4vgh8wetvd3hhyer9wghxuet5nxnepm"
let expectedNoteIDHex = "b9f5441e45ca39179320e0031cfb18e34078673dcc3d3e3a3b3a981760aa5696"
let relays = ["wss://nostr-relay.untethr.me", "wss://nostr-pub.wellorder.net"]
let relays = ["wss://nostr-relay.untethr.me", "wss://nostr-pub.wellorder.net"].compactMap(RelayURL.init)
guard let noteid = hex_decode_noteid(expectedNoteIDHex) else {
XCTFail("Parsing note ID failed")
return
@@ -34,7 +34,7 @@ class Bech32ObjectTests: XCTestCase {
func testTLVParsing_NeventHasRelaysNoAuthorHasKind_ValidContent() throws {
let content = "nevent1qqstna2yrezu5wghjvswqqculvvwxsrcvu7uc0f78gan4xqhvz49d9spr3mhxue69uhkummnw3ez6un9d3shjtn4de6x2argwghx6egpr4mhxue69uhkummnw3ez6ur4vgh8wetvd3hhyer9wghxuet5qvzqqqqqqyjyqz7d"
let expectedNoteIDHex = "b9f5441e45ca39179320e0031cfb18e34078673dcc3d3e3a3b3a981760aa5696"
let relays = ["wss://nostr-relay.untethr.me", "wss://nostr-pub.wellorder.net"]
let relays = ["wss://nostr-relay.untethr.me", "wss://nostr-pub.wellorder.net"].compactMap(RelayURL.init)
guard let noteid = hex_decode_noteid(expectedNoteIDHex) else {
XCTFail("Parsing note ID failed")
return
@@ -53,7 +53,7 @@ class Bech32ObjectTests: XCTestCase {
let content = "nevent1qqstna2yrezu5wghjvswqqculvvwxsrcvu7uc0f78gan4xqhvz49d9spr3mhxue69uhkummnw3ez6un9d3shjtn4de6x2argwghx6egpr4mhxue69uhkummnw3ez6ur4vgh8wetvd3hhyer9wghxuet5qgsrhuxx8l9ex335q7he0f09aej04zpazpl0ne2cgukyawd24mayt8grqsqqqqqpw4032x"
let expectedNoteIDHex = "b9f5441e45ca39179320e0031cfb18e34078673dcc3d3e3a3b3a981760aa5696"
let relays = ["wss://nostr-relay.untethr.me", "wss://nostr-pub.wellorder.net"]
let relays = ["wss://nostr-relay.untethr.me", "wss://nostr-pub.wellorder.net"].compactMap(RelayURL.init)
guard let noteid = hex_decode_noteid(expectedNoteIDHex) else {
XCTFail("Parsing note ID failed")
return
@@ -78,8 +78,8 @@ class Bech32ObjectTests: XCTestCase {
XCTFail()
return
}
let relays = ["wss://r.x.com", "wss://djbas.sadkb.com"]
let relays = ["wss://r.x.com", "wss://djbas.sadkb.com"].compactMap(RelayURL.init)
let expectedObject = Bech32Object.nprofile(NProfile(author: Pubkey(author.data), relays: relays))
guard let actualObject = Bech32Object.parse(content) else {
XCTFail("Invalid Object")
@@ -106,7 +106,7 @@ class Bech32ObjectTests: XCTestCase {
XCTFail("Can't decode npub")
return
}
let relays = ["wss://relay.nostr.band"]
let relays = ["wss://relay.nostr.band"].compactMap(RelayURL.init)
let identifier = "1700730909108"
let kind: UInt32 = 30023
@@ -122,8 +122,8 @@ class Bech32ObjectTests: XCTestCase {
return
}
let relays = ["wss://nostr-relay.untethr.me", "wss://nostr-pub.wellorder.net"]
let relays = ["wss://nostr-relay.untethr.me", "wss://nostr-pub.wellorder.net"].compactMap(RelayURL.init)
let expectedEncoding = "nevent1qqstna2yrezu5wghjvswqqculvvwxsrcvu7uc0f78gan4xqhvz49d9spr3mhxue69uhkummnw3ez6un9d3shjtn4de6x2argwghx6egpr4mhxue69uhkummnw3ez6ur4vgh8wetvd3hhyer9wghxuet5nxnepm"
let actualEncoding = Bech32Object.encode(.nevent(NEvent(noteid: noteid, relays: relays)))
@@ -140,8 +140,8 @@ class Bech32ObjectTests: XCTestCase {
let relays = [
"wss://nostr-relay.untethr.me",
"wss://nostr-pub.wellorder.net"
]
].compactMap(RelayURL.init)
let expectedEncoding = "nevent1qqstna2yrezu5wghjvswqqculvvwxsrcvu7uc0f78gan4xqhvz49d9spr3mhxue69uhkummnw3ez6un9d3shjtn4de6x2argwghx6egpr4mhxue69uhkummnw3ez6ur4vgh8wetvd3hhyer9wghxuet5qvzqqqqqqyjyqz7d"
let actualEncoding = Bech32Object.encode(.nevent(NEvent(noteid: noteid, relays: relays, kind: 1)))
@@ -159,8 +159,8 @@ class Bech32ObjectTests: XCTestCase {
return
}
let relays = ["wss://nostr-relay.untethr.me", "wss://nostr-pub.wellorder.net"]
let relays = ["wss://nostr-relay.untethr.me", "wss://nostr-pub.wellorder.net"].compactMap(RelayURL.init)
let expectedEncoding = "nevent1qqstna2yrezu5wghjvswqqculvvwxsrcvu7uc0f78gan4xqhvz49d9spr3mhxue69uhkummnw3ez6un9d3shjtn4de6x2argwghx6egpr4mhxue69uhkummnw3ez6ur4vgh8wetvd3hhyer9wghxuet5qgsrhuxx8l9ex335q7he0f09aej04zpazpl0ne2cgukyawd24mayt8grqsqqqqqpw4032x"
let actualEncoding = Bech32Object.encode(.nevent(NEvent(noteid: noteid, relays: relays, author: Pubkey(author.data), kind: 1)))
@@ -194,8 +194,8 @@ class Bech32ObjectTests: XCTestCase {
let relays = [
"wss://r.x.com",
"wss://djbas.sadkb.com"
]
].compactMap(RelayURL.init)
let expectedEncoding = "nprofile1qqsrhuxx8l9ex335q7he0f09aej04zpazpl0ne2cgukyawd24mayt8gpp4mhxue69uhhytnc9e3k7mgpz4mhxue69uhkg6nzv9ejuumpv34kytnrdaksjlyr9p"
let actualEncoding = Bech32Object.encode(.nprofile(NProfile(author: Pubkey(author.data), relays: relays)))
@@ -219,7 +219,7 @@ class Bech32ObjectTests: XCTestCase {
return
}
let relays = ["wss://relay.nostr.band"]
let relays = ["wss://relay.nostr.band"].compactMap(RelayURL.init)
let identifier = "1700730909108"
let kind: UInt32 = 30023

View File

@@ -9,12 +9,13 @@
import XCTest
@testable import damus
final class HashtagTests: XCTestCase {
// Basic hashtag tests
func testParseHashtag() {
let parsed = parse_note_content(content: .content("some hashtag #bitcoin derp",nil)).blocks
let parsed = parse_note_content(content: .content("some hashtag #bitcoin derp",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -24,7 +25,7 @@ final class HashtagTests: XCTestCase {
}
func testParseHashtagEnd() {
let parsed = parse_note_content(content: .content("some hashtag #bitcoin",nil)).blocks
let parsed = parse_note_content(content: .content("some hashtag #bitcoin",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 2)
@@ -40,7 +41,7 @@ final class HashtagTests: XCTestCase {
// Underscores are allowed in hashtags
func testHashtagWithUnderscore() {
let parsed = parse_note_content(content: .content("the #under_score is allowed in hashtags",nil)).blocks
let parsed = parse_note_content(content: .content("the #under_score is allowed in hashtags",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -52,7 +53,7 @@ final class HashtagTests: XCTestCase {
// Test ASCII punctuation (not allowed in hashtags)
func testHashtagWithComma() {
let parsed = parse_note_content(content: .content("the #comma, is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #comma, is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -62,7 +63,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithPeriod() {
let parsed = parse_note_content(content: .content("the #period. is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #period. is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -72,7 +73,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithQuestionMark() {
let parsed = parse_note_content(content: .content("the #question?mark is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #question?mark is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -82,7 +83,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithGraveAccent() {
let parsed = parse_note_content(content: .content("the #grave`accent is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #grave`accent is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -92,7 +93,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithTilde() {
let parsed = parse_note_content(content: .content("the #tilde~ is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #tilde~ is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -102,7 +103,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithExclamationPoint() {
let parsed = parse_note_content(content: .content("the #exclamation!point is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #exclamation!point is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -112,7 +113,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithAtSign() {
let parsed = parse_note_content(content: .content("the #at@sign is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #at@sign is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -122,7 +123,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithDollarSign() {
let parsed = parse_note_content(content: .content("the #dollar$sign is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #dollar$sign is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -132,7 +133,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithPercentSign() {
let parsed = parse_note_content(content: .content("the #percent%sign is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #percent%sign is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -142,7 +143,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithCaret() {
let parsed = parse_note_content(content: .content("the #caret^ is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #caret^ is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -152,7 +153,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithAmpersand() {
let parsed = parse_note_content(content: .content("the #ampersand& is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #ampersand& is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -162,7 +163,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithAsterisk() {
let parsed = parse_note_content(content: .content("the #asterisk* is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #asterisk* is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -172,7 +173,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithLeftParenthesis() {
let parsed = parse_note_content(content: .content("the #left(parenthesis is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #left(parenthesis is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -182,7 +183,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithRightParenthesis() {
let parsed = parse_note_content(content: .content("the #right)parenthesis is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #right)parenthesis is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -192,7 +193,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithDash() {
let parsed = parse_note_content(content: .content("the #dash- is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #dash- is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -202,7 +203,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithPlusSign() {
let parsed = parse_note_content(content: .content("the #plus+sign is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #plus+sign is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -212,7 +213,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithEqualsSign() {
let parsed = parse_note_content(content: .content("the #equals=sign is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #equals=sign is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -222,7 +223,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithLeftBracket() {
let parsed = parse_note_content(content: .content("the #left[bracket is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #left[bracket is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -232,7 +233,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithRightBracket() {
let parsed = parse_note_content(content: .content("the #right]bracket is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #right]bracket is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -242,7 +243,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithLeftBrace() {
let parsed = parse_note_content(content: .content("the #left{brace is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #left{brace is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -252,7 +253,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithRightBrace() {
let parsed = parse_note_content(content: .content("the #right}brace is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #right}brace is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -262,7 +263,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithBackslash() {
let parsed = parse_note_content(content: .content("the #back\\slash is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #back\\slash is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -272,7 +273,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithVerticalLine() {
let parsed = parse_note_content(content: .content("the #vertical|line is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #vertical|line is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -282,7 +283,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithSemicolon() {
let parsed = parse_note_content(content: .content("the #semicolon; is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #semicolon; is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -292,7 +293,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithColon() {
let parsed = parse_note_content(content: .content("the #colon: is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #colon: is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -302,7 +303,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithApostrophe() {
let parsed = parse_note_content(content: .content("the #apostrophe' is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #apostrophe' is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -312,7 +313,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithQuotationMark() {
let parsed = parse_note_content(content: .content("the #quotation\"mark is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #quotation\"mark is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -322,7 +323,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithLessThanSign() {
let parsed = parse_note_content(content: .content("the #lessthan<sign is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #lessthan<sign is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -332,7 +333,7 @@ final class HashtagTests: XCTestCase {
}
func testHashtagWithGreaterThanSign() {
let parsed = parse_note_content(content: .content("the #greaterthan>sign is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #greaterthan>sign is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -349,7 +350,7 @@ final class HashtagTests: XCTestCase {
// Test pound sign (£) (U+00A3)
func testHashtagWithPoundSign() {
let parsed = parse_note_content(content: .content("the #pound£sign is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #pound£sign is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -360,7 +361,7 @@ final class HashtagTests: XCTestCase {
// Test yen sign (¥) (U+00A5)
func testHashtagWithYenSign() {
let parsed = parse_note_content(content: .content("the #yen¥sign is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #yen¥sign is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -371,7 +372,7 @@ final class HashtagTests: XCTestCase {
// Test section sign (§) (U+00A7)
func testHashtagWithSectionSign() {
let parsed = parse_note_content(content: .content("the #section§sign is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #section§sign is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -382,7 +383,7 @@ final class HashtagTests: XCTestCase {
// Test plus-minus sign (±) (U+00B1)
func testHashtagWithPlusMinusSign() {
let parsed = parse_note_content(content: .content("the #plusminus±sign is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #plusminus±sign is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -393,7 +394,7 @@ final class HashtagTests: XCTestCase {
// Test inverted question mark (¿) (U+00BF)
func testHashtagWithInvertedQuestionMark() {
let parsed = parse_note_content(content: .content("the #invertedquestion¿mark is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #invertedquestion¿mark is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -406,7 +407,7 @@ final class HashtagTests: XCTestCase {
// Test Latin small letter u with diaeresis (ü) (U+00FC) (allowed in hashtags)
func testHashtagWithAccents() {
let parsed = parse_note_content(content: .content("hello from #türkiye",nil)).blocks
let parsed = parse_note_content(content: .content("hello from #türkiye",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 2)
@@ -418,7 +419,7 @@ final class HashtagTests: XCTestCase {
// Test en dash () (U+2013)
func testHashtagWithEnDash() {
let parsed = parse_note_content(content: .content("the #endash is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #endash is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -429,7 +430,7 @@ final class HashtagTests: XCTestCase {
// Test em dash () (U+2014)
func testHashtagWithEmDash() {
let parsed = parse_note_content(content: .content("the #em—dash is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #em—dash is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -440,7 +441,7 @@ final class HashtagTests: XCTestCase {
// Test horizontal bar () (U+2015)
func testHashtagWithHorizontalBar() {
let parsed = parse_note_content(content: .content("the #horizontal―bar is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #horizontal―bar is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -451,7 +452,7 @@ final class HashtagTests: XCTestCase {
// Test horizontal ellipsis () (U+2026)
func testHashtagWithHorizontalEllipsis() {
let parsed = parse_note_content(content: .content("the #horizontal…ellipsis is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #horizontal…ellipsis is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -464,7 +465,7 @@ final class HashtagTests: XCTestCase {
// Test euro sign () (U+20AC)
func testHashtagWithEuroSign() {
let parsed = parse_note_content(content: .content("the #euro€sign is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #euro€sign is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -475,7 +476,7 @@ final class HashtagTests: XCTestCase {
// Test Bitcoin sign () (U+20BF)
func testHashtagWithBitcoinSign() {
let parsed = parse_note_content(content: .content("the #bitcoin₿sign is not allowed",nil)).blocks
let parsed = parse_note_content(content: .content("the #bitcoin₿sign is not allowed",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -489,8 +490,8 @@ final class HashtagTests: XCTestCase {
// Emojis such as (U+2615) are allowed in hashtags
func testHashtagWithEmoji() {
let content = "some hashtag #bitcoin☕ cool"
let parsed = parse_note_content(content: .content(content, nil)).blocks
let post_blocks = parse_post_blocks(content: content)
let parsed = parse_note_content(content: .content(content, nil))!.blocks
let post_blocks = parse_post_blocks(content: content)!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -509,8 +510,8 @@ final class HashtagTests: XCTestCase {
// Japanese: wave dash () (U+301C) (allowed in hashtags)
func testPowHashtag() {
let content = "pow! #ぽわ〜"
let parsed = parse_note_content(content: .content(content,nil)).blocks
let post_blocks = parse_post_blocks(content: content)
let parsed = parse_note_content(content: .content(content,nil))!.blocks
let post_blocks = parse_post_blocks(content: content)!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 2)
@@ -525,7 +526,7 @@ final class HashtagTests: XCTestCase {
// Hangul: Hangul Syllable Si () (U+C2DC) and
// Hangul Syllable Heom () (U+D5D8) (allowed in hashtags)
func testHashtagWithNonLatinCharacters() {
let parsed = parse_note_content(content: .content("this is a #시험 hope it works",nil)).blocks
let parsed = parse_note_content(content: .content("this is a #시험 hope it works",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -536,8 +537,8 @@ final class HashtagTests: XCTestCase {
// Japanese: fullwidth tilde () (U+FF5E) (allowed in hashtags)
func testHashtagWithFullwidthTilde() {
let parsed = parse_note_content(content: .content("pow! the fullwidth tilde #ぽわ~ is allowed in hashtags",nil)).blocks
let parsed = parse_note_content(content: .content("pow! the fullwidth tilde #ぽわ~ is allowed in hashtags",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
XCTAssertEqual(parsed[0].asText, "pow! the fullwidth tilde ")
@@ -547,7 +548,7 @@ final class HashtagTests: XCTestCase {
// Japanese: bai () (U+500D) (allowed in hashtags)
func testHashtagWithBaiKanji() {
let parsed = parse_note_content(content: .content("pow! #10倍界王拳 is allowed in hashtags",nil)).blocks
let parsed = parse_note_content(content: .content("pow! #10倍界王拳 is allowed in hashtags",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)

View File

@@ -21,7 +21,7 @@ final class InvoiceTests: XCTestCase {
func testParseAnyAmountInvoice() throws {
let invstr = "LNBC1P3MR5UJSP5G7SA48YD4JWTTPCHWMY4QYN4UWZQCJQ8NMWKD6QE3HCRVYTDLH9SPP57YM9TSA9NN4M4XU59XMJCXKR7YDV29DDP6LVQUT46ZW6CU3KE9GQDQ9V9H8JXQ8P3MYLZJCQPJRZJQF60PZDVNGGQWQDNERZSQN35L8CVQ3QG2Z5NSZYD0D3Q0JW2TL6VUZA7FYQQWKGQQYQQQQLGQQQQXJQQ9Q9QXPQYSGQ39EM4QJMQFKZGJXZVGL7QJMYNSWA8PGDTAGXXRG5Z92M7VLCGKQK2L2THDF8LM0AUKAURH7FVAWDLRNMVF38W4EYJDNVN9V4Z9CRS5CQCV465C"
let parsed = parse_note_content(content: .content(invstr,nil)).blocks
let parsed = parse_note_content(content: .content(invstr,nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 1)
@@ -40,7 +40,7 @@ final class InvoiceTests: XCTestCase {
let invstr = """
LNBC1P3MR5UJSP5G7SA48YD4JWTTPCHWMY4QYN4UWZQCJQ8NMWKD6QE3HCRVYTDLH9SPP57YM9TSA9NN4M4XU59XMJCXKR7YDV29DDP6LVQUT46ZW6CU3KE9GQDQ9V9H8JXQ8P3MYLZJCQPJRZJQF60PZDVNGGQWQDNERZSQN35L8CVQ3QG2Z5NSZYD0D3Q0JW2TL6VUZA7FYQQWKGQQYQQQQLGQQQQXJQQ9Q9QXPQYSGQ39EM4QJMQFKZGJXZVGL7QJMYNSWA8PGDTAGXXRG5Z92M7VLCGKQK2L2THDF8LM0AUKAURH7FVAWDLRNMVF38W4EYJDNVN9V4Z9CRS5CQCV465C hi there
"""
let parsed = parse_note_content(content: .content(invstr,nil)).blocks
let parsed = parse_note_content(content: .content(invstr,nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 2)
@@ -57,7 +57,7 @@ LNBC1P3MR5UJSP5G7SA48YD4JWTTPCHWMY4QYN4UWZQCJQ8NMWKD6QE3HCRVYTDLH9SPP57YM9TSA9NN
func testParseInvoiceUpper() throws {
let invstr = "LNBC100N1P357SL0SP5T9N56WDZTUN39LGDQLR30XQWKSG3K69Q4Q2RKR52APLUJW0ESN0QPP5MRQGLJK62Z20Q4NVGR6LZCYN6FHYLZCCWDVU4K77APG3ZMRKUJJQDPZW35XJUEQD9EJQCFQV3JHXCMJD9C8G6T0DCXQYJW5QCQPJRZJQT56H4GVP5YX36U2UZQA6QWCSK3E2DUUNFXPPZJ9VHYPC3WFE2WSWZ607UQQ3XQQQSQQQQQQQQQQQLQQYG9QYYSGQAGX5H20AEULJ3GDWX3KXS8U9F4MCAKDKWUAKASAMM9562FFYR9EN8YG20LG0YGNR9ZPWP68524KMDA0T5XP2WYTEX35PU8HAPYJAJXQPSQL29R"
let parsed = parse_note_content(content: .content(invstr,nil)).blocks
let parsed = parse_note_content(content: .content(invstr,nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 1)
@@ -74,7 +74,7 @@ LNBC1P3MR5UJSP5G7SA48YD4JWTTPCHWMY4QYN4UWZQCJQ8NMWKD6QE3HCRVYTDLH9SPP57YM9TSA9NN
func testParseInvoiceWithPrefix() throws {
let invstr = "lightning:lnbc100n1p357sl0sp5t9n56wdztun39lgdqlr30xqwksg3k69q4q2rkr52aplujw0esn0qpp5mrqgljk62z20q4nvgr6lzcyn6fhylzccwdvu4k77apg3zmrkujjqdpzw35xjueqd9ejqcfqv3jhxcmjd9c8g6t0dcxqyjw5qcqpjrzjqt56h4gvp5yx36u2uzqa6qwcsk3e2duunfxppzj9vhypc3wfe2wswz607uqq3xqqqsqqqqqqqqqqqlqqyg9qyysgqagx5h20aeulj3gdwx3kxs8u9f4mcakdkwuakasamm9562ffyr9en8yg20lg0ygnr9zpwp68524kmda0t5xp2wytex35pu8hapyjajxqpsql29r"
let parsed = parse_note_content(content: .content(invstr,nil)).blocks
let parsed = parse_note_content(content: .content(invstr,nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 1)
@@ -83,7 +83,7 @@ LNBC1P3MR5UJSP5G7SA48YD4JWTTPCHWMY4QYN4UWZQCJQ8NMWKD6QE3HCRVYTDLH9SPP57YM9TSA9NN
func testParseInvoiceWithPrefixCapitalized() throws {
let invstr = "LIGHTNING:LNBC100N1P357SL0SP5T9N56WDZTUN39LGDQLR30XQWKSG3K69Q4Q2RKR52APLUJW0ESN0QPP5MRQGLJK62Z20Q4NVGR6LZCYN6FHYLZCCWDVU4K77APG3ZMRKUJJQDPZW35XJUEQD9EJQCFQV3JHXCMJD9C8G6T0DCXQYJW5QCQPJRZJQT56H4GVP5YX36U2UZQA6QWCSK3E2DUUNFXPPZJ9VHYPC3WFE2WSWZ607UQQ3XQQQSQQQQQQQQQQQLQQYG9QYYSGQAGX5H20AEULJ3GDWX3KXS8U9F4MCAKDKWUAKASAMM9562FFYR9EN8YG20LG0YGNR9ZPWP68524KMDA0T5XP2WYTEX35PU8HAPYJAJXQPSQL29R"
let parsed = parse_note_content(content: .content(invstr,nil)).blocks
let parsed = parse_note_content(content: .content(invstr,nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 1)
@@ -92,7 +92,7 @@ LNBC1P3MR5UJSP5G7SA48YD4JWTTPCHWMY4QYN4UWZQCJQ8NMWKD6QE3HCRVYTDLH9SPP57YM9TSA9NN
func testParseInvoice() throws {
let invstr = "lnbc100n1p357sl0sp5t9n56wdztun39lgdqlr30xqwksg3k69q4q2rkr52aplujw0esn0qpp5mrqgljk62z20q4nvgr6lzcyn6fhylzccwdvu4k77apg3zmrkujjqdpzw35xjueqd9ejqcfqv3jhxcmjd9c8g6t0dcxqyjw5qcqpjrzjqt56h4gvp5yx36u2uzqa6qwcsk3e2duunfxppzj9vhypc3wfe2wswz607uqq3xqqqsqqqqqqqqqqqlqqyg9qyysgqagx5h20aeulj3gdwx3kxs8u9f4mcakdkwuakasamm9562ffyr9en8yg20lg0ygnr9zpwp68524kmda0t5xp2wytex35pu8hapyjajxqpsql29r"
let parsed = parse_note_content(content: .content(invstr,nil)).blocks
let parsed = parse_note_content(content: .content(invstr,nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 1)

View File

@@ -24,7 +24,7 @@ class ContentParserTests: XCTestCase {
let url = "https://media.tenor.com/5MibLt95scAAAAAC/%ED%98%BC%ED%8C%8C%EB%A7%9D-%ED%94%BC%EC%9E%90.gif"
let content = "gm 🤙\(url)"
let blocks = parse_note_content(content: .content(content,nil)).blocks
let blocks = parse_note_content(content: .content(content,nil))!.blocks
XCTAssertEqual(blocks.count, 2)
XCTAssertEqual(blocks[0], .text("gm 🤙"))
XCTAssertEqual(blocks[1], .url(URL(string: url)!))

View File

@@ -29,22 +29,22 @@ final class NIP19Tests: XCTestCase {
*/
func test_parse_npub() throws {
let res = parse_note_content(content: .content("nostr:npub10elfcs4fr0l0r8af98jlmgdh9c8tcxjvz9qkw038js35mp4dma8qzvjptg ",nil)).blocks
let res = parse_note_content(content: .content("nostr:npub10elfcs4fr0l0r8af98jlmgdh9c8tcxjvz9qkw038js35mp4dma8qzvjptg ",nil))!.blocks
XCTAssertEqual(res.count, 2)
let expected_ref = Pubkey(hex: "7e7e9c42a91bfef19fa929e5fda1b72e0ebc1a4c1141673e2794234d86addf4e")!
let expected_mention: Mention<MentionRef> = Mention(index: nil, ref: .pubkey(expected_ref))
let expected_mention: Mention<MentionRef> = .any(.init(bech32_str: "npub10elfcs4fr0l0r8af98jlmgdh9c8tcxjvz9qkw038js35mp4dma8qzvjptg")!)
XCTAssertEqual(res[0], .mention(expected_mention))
}
func test_parse_note() throws {
let res = parse_note_content(content: .content(" nostr:note1s4p70596lv50x0zftuses32t6ck8x6wgd4edwacyetfxwns2jtysux7vep",nil)).blocks
let res = parse_note_content(content: .content(" nostr:note1s4p70596lv50x0zftuses32t6ck8x6wgd4edwacyetfxwns2jtysux7vep",nil))!.blocks
XCTAssertEqual(res.count, 2)
let note_id = NoteId(hex:"8543e7d0bafb28f33c495f2198454bd62c7369c86d72d77704cad2674e0a92c9")!
XCTAssertEqual(res[1], .mention(.any(.note(note_id))))
}
func test_mention_with_adjacent() throws {
let res = parse_note_content(content: .content(" nostr:note1s4p70596lv50x0zftuses32t6ck8x6wgd4edwacyetfxwns2jtysux7vep?",nil)).blocks
let res = parse_note_content(content: .content(" nostr:note1s4p70596lv50x0zftuses32t6ck8x6wgd4edwacyetfxwns2jtysux7vep?",nil))!.blocks
XCTAssertEqual(res.count, 3)
let note_id = NoteId(hex: "8543e7d0bafb28f33c495f2198454bd62c7369c86d72d77704cad2674e0a92c9")!
XCTAssertEqual(res[0], .text(" "))

View File

@@ -10,14 +10,15 @@ import SwiftUI
@testable import damus
class NoteContentViewTests: XCTestCase {
func testRenderBlocksWithNonLatinHashtags() throws {
/*
func testRenderBlocksWithNonLatinHashtags() {
let content = "Damus #cool #"
let note = try XCTUnwrap(NostrEvent(content: content, keypair: test_keypair, tags: [["t", ""]]))
let parsed: Blocks = parse_note_content(content: .init(note: note, keypair: test_keypair))
let testState = test_damus_state
let text: NoteArtifactsSeparated = render_blocks(blocks: parsed, profiles: testState.profiles, can_hide_last_previewable_refs: true)
let text: NoteArtifactsSeparated = render_blocks(blocks: parsed, profiles: testState.profiles, note: note, can_hide_last_previewable_refs: true)
let attributedText: AttributedString = text.content.attributed
let runs: AttributedString.Runs = attributedText.runs
@@ -329,14 +330,15 @@ class NoteContentViewTests: XCTestCase {
XCTAssertEqual(noteArtifactsSeparated.invoices.count, 1)
XCTAssertEqual(noteArtifactsSeparated.invoices[0].string, invoiceString)
}
*/
/// Based on https://github.com/damus-io/damus/issues/1468
/// Tests whether a note content view correctly parses an image block when url in JSON content contains optional escaped slashes
func testParseImageBlockInContentWithEscapedSlashes() throws {
let testJSONWithEscapedSlashes = "{\"tags\":[],\"pubkey\":\"f8e6c64342f1e052480630e27e1016dce35fc3a614e60434fef4aa2503328ca9\",\"content\":\"https:\\/\\/cdn.nostr.build\\/i\\/5c1d3296f66c2630131bf123106486aeaf051ed8466031c0e0532d70b33cddb2.jpg\",\"created_at\":1691864981,\"kind\":1,\"sig\":\"fc0033aa3d4df50b692a5b346fa816fdded698de2045e36e0642a021391468c44ca69c2471adc7e92088131872d4aaa1e90ea6e1ad97f3cc748f4aed96dfae18\",\"id\":\"e8f6eca3b161abba034dac9a02bb6930ecde9fd2fb5d6c5f22a05526e11382cb\"}"
let testNote = try XCTUnwrap(NostrEvent.owned_from_json(json: testJSONWithEscapedSlashes))
let parsed = parse_note_content(content: .init(note: testNote, keypair: test_keypair))
let testNote = NostrEvent.owned_from_json(json: testJSONWithEscapedSlashes)!
let parsed = parse_note_content(content: .init(note: testNote, keypair: test_keypair))!
XCTAssertTrue((parsed.blocks[0].asURL != nil), "NoteContentView does not correctly parse an image block when url in JSON content contains optional escaped slashes.")
}

View File

@@ -20,16 +20,16 @@ class ReplyTests: XCTestCase {
func testAtAtEnd() {
let content = "what @"
let blocks = parse_post_blocks(content: content)
let blocks = parse_post_blocks(content: content)!.blocks
XCTAssertEqual(blocks.count, 1)
XCTAssertEqual(blocks[0].asText, "what @")
}
func testHashtagsInQuote() {
let content = "This is my \"#awesome post\""
let blocks = parse_post_blocks(content: content)
let blocks = parse_post_blocks(content: content)!.blocks
XCTAssertEqual(blocks.count, 3)
XCTAssertEqual(blocks[0].asText, "This is my \"")
XCTAssertEqual(blocks[1].asHashtag, "awesome")
@@ -38,25 +38,46 @@ class ReplyTests: XCTestCase {
func testHashtagAtStartWorks() {
let content = "#hashtag"
let blocks = parse_post_blocks(content: content)
let blocks = parse_post_blocks(content: content)!.blocks
XCTAssertEqual(blocks.count, 1)
XCTAssertEqual(blocks[0].asHashtag, "hashtag")
}
func testGroupOfHashtags() {
let content = "#hashtag#what#nope"
let blocks = parse_post_blocks(content: content)
let blocks = parse_post_blocks(content: content)!.blocks
XCTAssertEqual(blocks.count, 3)
XCTAssertEqual(blocks[0].asHashtag, "hashtag")
XCTAssertEqual(blocks[1].asHashtag, "what")
XCTAssertEqual(blocks[2].asHashtag, "nope")
}
<<<<<<< HEAD
=======
func testRootReplyWithMention() throws {
let content = "this is #[1] a mention"
let thread_id = NoteId(hex: "c75e5cbafbefd5de2275f831c2a2386ea05ec5e5a78a5ccf60d467582db48945")!
let mentioned_id = NoteId(hex: "5a534797e8cd3b9f4c1cf63e20e48bd0e8bd7f8c4d6353fbd576df000f6f54d3")!
let tags = [thread_id.tag, mentioned_id.tag]
let ev = NostrEvent(content: content, keypair: test_keypair, tags: tags)!
let event_refs = interpret_event_refs(tags: ev.tags)
XCTAssertEqual(event_refs.count, 2)
XCTAssertNotNil(event_refs[0].is_reply)
XCTAssertNotNil(event_refs[0].is_thread_id)
XCTAssertNotNil(event_refs[0].is_reply)
XCTAssertNotNil(event_refs[0].is_direct_reply)
XCTAssertEqual(event_refs[0].is_reply, .some(NoteRef(note_id: thread_id)))
XCTAssertEqual(event_refs[0].is_thread_id, .some(NoteRef(note_id: thread_id)))
XCTAssertNotNil(event_refs[1].is_mention)
XCTAssertEqual(event_refs[1].is_mention, .some(NoteRef(note_id: mentioned_id)))
}
func testEmptyMention() throws {
let content = "this is some & content"
let ev = NostrEvent(content: content, keypair: test_keypair, tags: [])!
let blocks = parse_note_content(content: .init(note: ev, keypair: test_keypair)).blocks
let post_blocks = parse_post_blocks(content: content)
let post_blocks = parse_post_blocks(content: content)!.blocks
let post = NostrPost(content: content, kind: NostrKind.text, tags: [])
let post_tags = post.make_post_tags(post_blocks: post_blocks, tags: [])
let tr = interpret_event_refs(tags: ev.tags)
@@ -82,7 +103,7 @@ class ReplyTests: XCTestCase {
let expected_render = "nostr:\(pk.npub)\nnostr:\(pk.npub)"
XCTAssertEqual(post_note.content, expected_render)
let blocks = parse_note_content(content: .content(post_note.content,nil)).blocks
let blocks = parse_note_content(content: .content(post_note.content,nil))!.blocks
let rendered = blocks.map { $0.asString }.joined(separator: "")
XCTAssertEqual(rendered, expected_render)
@@ -210,15 +231,15 @@ class ReplyTests: XCTestCase {
}
func testEmptyPostReference() throws {
let parsed = parse_post_blocks(content: "")
let parsed = parse_post_blocks(content: "")!.blocks
XCTAssertEqual(parsed.count, 0)
}
func testBech32MentionAtStart() throws {
let pk = Pubkey(hex: "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245")!
let content = "@\(pk.npub) hello there"
let blocks = parse_post_blocks(content: content)
let blocks = parse_post_blocks(content: content)!.blocks
XCTAssertEqual(blocks.count, 2)
XCTAssertEqual(blocks[0].asMention, .any(.pubkey(pk)))
XCTAssertEqual(blocks[1].asText, " hello there")
@@ -228,7 +249,7 @@ class ReplyTests: XCTestCase {
func testBech32MentionAtEnd() throws {
let pk = Pubkey(hex: "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245")!
let content = "this is a @\(pk.npub)"
let blocks = parse_post_blocks(content: content)
let blocks = parse_post_blocks(content: content)!.blocks
XCTAssertEqual(blocks.count, 2)
XCTAssertEqual(blocks[1].asMention, .any(.pubkey(pk)))
@@ -239,8 +260,8 @@ class ReplyTests: XCTestCase {
let evid = NoteId(hex: "71ba3e5ddaf48103be294aa370e470fb60b6c8bca3fb01706eecd00054c2f588")!
let pk = Pubkey(hex: "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245")!
let content = "this is a @\(pk.npub) mention"
let blocks = parse_post_blocks(content: content)
let post = NostrPost(content: content, tags: [["e", evid.hex()]])
let blocks = parse_post_blocks(content: content)!.blocks
let post = NostrPost(content: content, references: [.event(evid)])
let ev = post.to_event(keypair: test_keypair_full)!
XCTAssertEqual(ev.tags.count, 2)
@@ -254,8 +275,8 @@ class ReplyTests: XCTestCase {
let pk = Pubkey(hex: "ccf95d668650178defca5ac503693b6668eb77895f610178ff8ed9fe5cf9482e")!
let nsec = "nsec1jmzdz7d0ldqctdxwm5fzue277ttng2pk28n2u8wntc2r4a0w96ssnyukg7"
let content = "this is a @\(nsec) mention"
let blocks = parse_post_blocks(content: content)
let post = NostrPost(content: content, tags: [["e", evid.hex()]])
let blocks = parse_post_blocks(content: content)!.blocks
let post = NostrPost(content: content, references: [.event(evid)])
let ev = post.to_event(keypair: test_keypair_full)!
XCTAssertEqual(ev.tags.count, 2)
@@ -285,7 +306,7 @@ class ReplyTests: XCTestCase {
func testInvalidPostReference() throws {
let pk = "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e24"
let content = "this is a @\(pk) mention"
let parsed = parse_post_blocks(content: content)
let parsed = parse_post_blocks(content: content)!.blocks
XCTAssertEqual(parsed.count, 1)
guard case .text(let txt) = parsed[0] else {
XCTAssert(false)
@@ -296,7 +317,7 @@ class ReplyTests: XCTestCase {
func testInvalidPostReferenceEmptyAt() throws {
let content = "this is a @ mention"
let parsed = parse_post_blocks(content: content)
let parsed = parse_post_blocks(content: content)!.blocks
XCTAssertEqual(parsed.count, 1)
guard case .text(let txt) = parsed[0] else {
XCTAssert(false)
@@ -308,8 +329,8 @@ class ReplyTests: XCTestCase {
func testInvalidUriReference() throws {
let id = "6fec2ee6cfff779fe8560976b3d9df782b74577f0caefa7a77c0ed4c3749b5de"
let content = "this is a nostr:z:\(id) event mention"
let parsed = parse_post_blocks(content: content)
let parsed = parse_post_blocks(content: content)!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 1)
@@ -323,7 +344,7 @@ class ReplyTests: XCTestCase {
func testParsePostUriPubkeyReference() throws {
let id = Pubkey(hex: "6fec2ee6cfff779fe8560976b3d9df782b74577f0caefa7a77c0ed4c3749b5de")!
let parsed = parse_post_blocks(content: "this is a nostr:\(id.npub) event mention")
let parsed = parse_post_blocks(content: "this is a nostr:\(id.npub) event mention")!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -346,7 +367,7 @@ class ReplyTests: XCTestCase {
func testParsePostUriReference() throws {
let id = NoteId(hex: "6fec2ee6cfff779fe8560976b3d9df782b74577f0caefa7a77c0ed4c3749b5de")!
let parsed = parse_post_blocks(content: "this is a nostr:\(id.bech32) event mention")
let parsed = parse_post_blocks(content: "this is a nostr:\(id.bech32) event mention")!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -366,5 +387,4 @@ class ReplyTests: XCTestCase {
}
XCTAssertEqual(t2, " event mention")
}
}

View File

@@ -42,7 +42,7 @@ final class UrlTests: XCTestCase {
let testString = "https://en.m.wikipedia.org/wiki/Delicious_(website)"
let parsed = parse_note_content(content: .content(testString, nil)).blocks
let parsed = parse_note_content(content: .content(testString, nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed[0].asURL, testURL)
@@ -53,8 +53,8 @@ final class UrlTests: XCTestCase {
XCTAssertNotNil(testURL)
let testString = "( https://en.m.wikipedia.org/wiki/Delicious_(website)"
let parsed = parse_note_content(content: .content(testString, nil)).blocks
let parsed = parse_note_content(content: .content(testString, nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed[1].asURL, testURL)
}
@@ -64,7 +64,7 @@ final class UrlTests: XCTestCase {
XCTAssertNotNil(testURL)
let testString = "(https://jb55.com)"
let parsed = parse_note_content(content: .content(testString, nil)).blocks
let parsed = parse_note_content(content: .content(testString, nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed[1].asURL, testURL)
@@ -75,7 +75,7 @@ final class UrlTests: XCTestCase {
XCTAssertNotNil(testURL)
let testString = "(https://nostr-con.com/simplex)"
let parsed = parse_note_content(content: .content(testString, nil)).blocks
let parsed = parse_note_content(content: .content(testString, nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed[1].asURL, testURL)
@@ -87,7 +87,7 @@ final class UrlTests: XCTestCase {
XCTAssertNotNil(testURL)
let content = "my \(link) link"
let blocks = parse_post_blocks(content: content)
let blocks = parse_post_blocks(content: content)!.blocks
XCTAssertEqual(blocks.count, 3)
XCTAssertEqual(blocks[0].asText, "my ")
@@ -99,7 +99,7 @@ final class UrlTests: XCTestCase {
let testURL = URL(string: "HTTPS://jb55.COM")
XCTAssertNotNil(testURL)
let parsed = parse_note_content(content: .content("a HTTPS://jb55.COM b", nil)).blocks
let parsed = parse_note_content(content: .content("a HTTPS://jb55.COM b", nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -111,7 +111,7 @@ final class UrlTests: XCTestCase {
XCTAssertNotNil(testURL)
let content = "this is my link: https://jb55.com/index.html#buybitcoin this is not a hashtag!"
let blocks = parse_post_blocks(content: content)
let blocks = parse_post_blocks(content: content)!.blocks
XCTAssertEqual(blocks.count, 3)
XCTAssertEqual(blocks[0].asText, "this is my link: ")
@@ -206,7 +206,7 @@ final class UrlTests: XCTestCase {
}
func testParseURL(inputURLString: String, expectedURLs: String...) {
let parsedURL: [Block] = parse_note_content(content: .content(inputURLString, nil)).blocks.filter {
let parsedURL: [Block] = parse_note_content(content: .content(inputURLString, nil))!.blocks.filter {
$0.isURL
}

View File

@@ -66,7 +66,7 @@ class damusTests: XCTestCase {
[my website](https://jb55.com)
"""
let parsed = parse_note_content(content: .content(md, nil)).blocks
let parsed = parse_note_content(content: .content(md, nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -121,7 +121,7 @@ class damusTests: XCTestCase {
}
func testParseUrl() {
let parsed = parse_note_content(content: .content("a https://jb55.com b", nil)).blocks
let parsed = parse_note_content(content: .content("a https://jb55.com b", nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
@@ -133,7 +133,7 @@ class damusTests: XCTestCase {
}
func testParseUrlEnd() {
let parsed = parse_note_content(content: .content("a https://jb55.com", nil)).blocks
let parsed = parse_note_content(content: .content("a https://jb55.com", nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 2)
@@ -147,7 +147,7 @@ class damusTests: XCTestCase {
}
func testParseUrlStart() {
let parsed = parse_note_content(content: .content("https://jb55.com br",nil)).blocks
let parsed = parse_note_content(content: .content("https://jb55.com br",nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 2)
@@ -162,7 +162,7 @@ class damusTests: XCTestCase {
func testNoParseUrlWithOnlyWhitespace() {
let testString = "https:// "
let parsed = parse_note_content(content: .content(testString,nil)).blocks
let parsed = parse_note_content(content: .content(testString,nil))!.blocks
XCTAssertNotNil(parsed)
XCTAssertFalse(parsed[0].isURL)
@@ -171,7 +171,7 @@ class damusTests: XCTestCase {
func testNoParseUrlTrailingCharacters() {
let testString = "https://foo.bar, "
let parsed = parse_note_content(content: .content(testString,nil)).blocks
let parsed = parse_note_content(content: .content(testString,nil))!.blocks
let testURL = URL(string: "https://foo.bar")
XCTAssertNotNil(testURL)
@@ -207,7 +207,7 @@ class damusTests: XCTestCase {
func testParseMentionOnlyText() {
let tags = [["e", "event_id"]]
let ev = NostrEvent(content: "there is no mention here", keypair: test_keypair, tags: tags)!
let parsed = parse_note_content(content: .init(note: ev, keypair: test_keypair)).blocks
let parsed = parse_note_content(content: .init(note: ev, keypair: test_keypair))!.blocks
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 1)