Inline image loading

Changelog-Added: Added inline image loading
Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
William Casarin
2022-10-16 16:11:27 -07:00
parent 66eefa0ff2
commit a47645929e
16 changed files with 267 additions and 60 deletions

View File

@@ -31,8 +31,8 @@ class ReplyTests: XCTestCase {
XCTAssertNil(ref.is_reply)
XCTAssertNil(ref.is_thread_id)
XCTAssertNil(ref.is_direct_reply)
XCTAssertEqual(ref.is_mention!.type, .event)
XCTAssertEqual(ref.is_mention!.ref.ref_id, "event_id")
XCTAssertEqual(ref.is_mention?.type, .event)
XCTAssertEqual(ref.is_mention?.ref.ref_id, "event_id")
}
func testUrlAnchorsAreNotHashtags() {
@@ -96,11 +96,11 @@ class ReplyTests: XCTestCase {
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!.ref_id, "thread_id")
XCTAssertEqual(event_refs[0].is_thread_id!.ref_id, "thread_id")
XCTAssertEqual(event_refs[0].is_reply?.ref_id, "thread_id")
XCTAssertEqual(event_refs[0].is_thread_id?.ref_id, "thread_id")
XCTAssertNotNil(event_refs[1].is_mention)
XCTAssertEqual(event_refs[1].is_mention!.type, .event)
XCTAssertEqual(event_refs[1].is_mention!.ref.ref_id, "mentioned_id")
XCTAssertEqual(event_refs[1].is_mention?.type, .event)
XCTAssertEqual(event_refs[1].is_mention?.ref.ref_id, "mentioned_id")
}
func testEmptyMention() throws {

View File

@@ -64,6 +64,33 @@ class damusTests: XCTestCase {
XCTAssertNotNil(parsed[0].is_text)
}
func testParseUrl() {
let parsed = parse_mentions(content: "a https://jb55.com b", tags: [])
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
XCTAssertEqual(parsed[1].is_url?.absoluteString, "https://jb55.com")
}
func testParseUrlEnd() {
let parsed = parse_mentions(content: "a https://jb55.com", tags: [])
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 2)
XCTAssertEqual(parsed[0].is_text, "a ")
XCTAssertEqual(parsed[1].is_url?.absoluteString, "https://jb55.com")
}
func testParseUrlStart() {
let parsed = parse_mentions(content: "https://jb55.com br", tags: [])
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
XCTAssertEqual(parsed[0].is_text, "")
XCTAssertEqual(parsed[1].is_url?.absoluteString, "https://jb55.com")
XCTAssertEqual(parsed[2].is_text, " br")
}
func testParseMentionBlank() {
let parsed = parse_mentions(content: "", tags: [["e", "event_id"]])
@@ -91,9 +118,9 @@ class damusTests: XCTestCase {
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 3)
XCTAssertEqual(parsed[0].is_text!, "some hashtag ")
XCTAssertEqual(parsed[1].is_hashtag!, "bitcoin")
XCTAssertEqual(parsed[2].is_text!, " derp")
XCTAssertEqual(parsed[0].is_text, "some hashtag ")
XCTAssertEqual(parsed[1].is_hashtag, "bitcoin")
XCTAssertEqual(parsed[2].is_text, " derp")
}
func testParseHashtagEnd() {
@@ -101,8 +128,8 @@ class damusTests: XCTestCase {
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 2)
XCTAssertEqual(parsed[0].is_text!, "some hashtag ")
XCTAssertEqual(parsed[1].is_hashtag!, "bitcoin")
XCTAssertEqual(parsed[0].is_text, "some hashtag ")
XCTAssertEqual(parsed[1].is_hashtag, "bitcoin")
}
func testParseMentionOnlyText() {
@@ -110,7 +137,7 @@ class damusTests: XCTestCase {
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 1)
XCTAssertEqual(parsed[0].is_text!, "there is no mention here")
XCTAssertEqual(parsed[0].is_text, "there is no mention here")
guard case .text(let txt) = parsed[0] else {
XCTAssertTrue(false)