// // CharacterCounterTests.swift // ComposeUITests // // Created by Shadowfacts on 9/29/18. // Copyright © 2018 Shadowfacts. All rights reserved. // import XCTest @testable import ComposeUI import InstanceFeatures class CharacterCounterTests: XCTestCase { override func setUp() { } override func tearDown() { } let features = InstanceFeatures() func testCountEmpty() { XCTAssertEqual(CharacterCounter.count(text: "", for: features), 0) } func testCountPlainText() { XCTAssertEqual(CharacterCounter.count(text: "This is an example message", for: features), 26) XCTAssertEqual(CharacterCounter.count(text: "This is an example message with an Emoji: 😄", for: features), 43) XCTAssertEqual(CharacterCounter.count(text: "😄😄😄😄😄😄😄", for: features), 7) } func testCountLinks() { XCTAssertEqual(CharacterCounter.count(text: "This is an example with a link: https://example.com", for: features), 55) XCTAssertEqual(CharacterCounter.count(text: "This is an example with a link 😄: https://example.com", for: features), 57) XCTAssertEqual(CharacterCounter.count(text: "😄😄😄😄😄😄😄: https://example.com", for: features), 32) XCTAssertEqual(CharacterCounter.count(text: "This is an example with a link: https://a.much.longer.example.com/link?foo=bar#baz", for: features), 55) } func testCountLocalMentions() { XCTAssertEqual(CharacterCounter.count(text: "hello @example", for: features), 14) XCTAssertEqual(CharacterCounter.count(text: "@some_really_long_name", for: features), 22) } func testCountRemoteMentions() { XCTAssertEqual(CharacterCounter.count(text: "hello @example@some.remote.social", for: features), 14) XCTAssertEqual(CharacterCounter.count(text: "hello @some_really_long_name@some-long.remote-instance.social", for: features), 28) } }