2023-07-11 14:21:16 +00:00
|
|
|
|
//
|
|
|
|
|
// HashtagTests.swift
|
|
|
|
|
// damusTests
|
|
|
|
|
//
|
|
|
|
|
// Created by William Casarin on 2023-07-11.
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
import XCTest
|
|
|
|
|
@testable import damus
|
|
|
|
|
|
|
|
|
|
final class HashtagTests: XCTestCase {
|
|
|
|
|
|
|
|
|
|
override func setUpWithError() throws {
|
|
|
|
|
// Put setup code here. This method is called before the invocation of each test method in the class.
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override func tearDownWithError() throws {
|
|
|
|
|
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func testParseHashtag() {
|
|
|
|
|
let parsed = parse_mentions(content: "some hashtag #bitcoin derp", tags: []).blocks
|
|
|
|
|
|
|
|
|
|
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")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func testHashtagWithComma() {
|
|
|
|
|
let parsed = parse_mentions(content: "some hashtag #bitcoin, cool", tags: []).blocks
|
|
|
|
|
|
|
|
|
|
XCTAssertNotNil(parsed)
|
|
|
|
|
XCTAssertEqual(parsed.count, 3)
|
|
|
|
|
XCTAssertEqual(parsed[0].is_text, "some hashtag ")
|
|
|
|
|
XCTAssertEqual(parsed[1].is_hashtag, "bitcoin")
|
|
|
|
|
XCTAssertEqual(parsed[2].is_text, ", cool")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func testHashtagWithEmoji() {
|
2023-07-11 16:05:45 +00:00
|
|
|
|
let content = "some hashtag #bitcoin☕️ cool"
|
|
|
|
|
let parsed = parse_mentions(content: content, tags: []).blocks
|
|
|
|
|
let post_blocks = parse_post_blocks(content: content)
|
|
|
|
|
|
2023-07-11 14:21:16 +00:00
|
|
|
|
XCTAssertNotNil(parsed)
|
|
|
|
|
XCTAssertEqual(parsed.count, 3)
|
|
|
|
|
XCTAssertEqual(parsed[0].is_text, "some hashtag ")
|
|
|
|
|
XCTAssertEqual(parsed[1].is_hashtag, "bitcoin☕️")
|
|
|
|
|
XCTAssertEqual(parsed[2].is_text, " cool")
|
2023-07-11 16:05:45 +00:00
|
|
|
|
|
|
|
|
|
XCTAssertEqual(post_blocks.count, 3)
|
|
|
|
|
XCTAssertEqual(post_blocks[0].is_text, "some hashtag ")
|
|
|
|
|
XCTAssertEqual(post_blocks[1].is_hashtag, "bitcoin☕️")
|
|
|
|
|
XCTAssertEqual(post_blocks[2].is_text, " cool")
|
2023-07-11 14:21:16 +00:00
|
|
|
|
}
|
2023-07-11 16:05:45 +00:00
|
|
|
|
|
|
|
|
|
func testPowHashtag() {
|
|
|
|
|
let content = "pow! #ぽわ〜"
|
|
|
|
|
let parsed = parse_mentions(content: content, tags: []).blocks
|
|
|
|
|
let post_blocks = parse_post_blocks(content: content)
|
|
|
|
|
|
|
|
|
|
XCTAssertNotNil(parsed)
|
|
|
|
|
XCTAssertEqual(parsed.count, 2)
|
|
|
|
|
XCTAssertEqual(parsed[0].is_text, "pow! ")
|
|
|
|
|
XCTAssertEqual(parsed[1].is_hashtag, "ぽわ〜")
|
|
|
|
|
|
|
|
|
|
XCTAssertEqual(post_blocks.count, 2)
|
|
|
|
|
XCTAssertEqual(post_blocks[0].is_text, "pow! ")
|
|
|
|
|
XCTAssertEqual(post_blocks[1].is_hashtag, "ぽわ〜")
|
|
|
|
|
}
|
|
|
|
|
|
2023-07-11 14:21:16 +00:00
|
|
|
|
func testHashtagWithAccents() {
|
|
|
|
|
let parsed = parse_mentions(content: "hello from #türkiye", tags: []).blocks
|
|
|
|
|
|
|
|
|
|
XCTAssertNotNil(parsed)
|
|
|
|
|
XCTAssertEqual(parsed.count, 2)
|
|
|
|
|
XCTAssertEqual(parsed[0].is_text, "hello from ")
|
|
|
|
|
XCTAssertEqual(parsed[1].is_hashtag, "türkiye")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func testHashtagWithNonLatinCharacters() {
|
|
|
|
|
let parsed = parse_mentions(content: "this is a #시험 hope it works", tags: []).blocks
|
|
|
|
|
|
|
|
|
|
XCTAssertNotNil(parsed)
|
|
|
|
|
XCTAssertEqual(parsed.count, 3)
|
|
|
|
|
XCTAssertEqual(parsed[0].is_text, "this is a ")
|
|
|
|
|
XCTAssertEqual(parsed[1].is_hashtag, "시험")
|
|
|
|
|
XCTAssertEqual(parsed[2].is_text, " hope it works")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func testParseHashtagEnd() {
|
|
|
|
|
let parsed = parse_mentions(content: "some hashtag #bitcoin", tags: []).blocks
|
|
|
|
|
|
|
|
|
|
XCTAssertNotNil(parsed)
|
|
|
|
|
XCTAssertEqual(parsed.count, 2)
|
|
|
|
|
XCTAssertEqual(parsed[0].is_text, "some hashtag ")
|
|
|
|
|
XCTAssertEqual(parsed[1].is_hashtag, "bitcoin")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|