mirror of
git://jb55.com/damus
synced 2024-09-30 08:50:42 +00:00
85 lines
4.5 KiB
Swift
85 lines
4.5 KiB
Swift
|
//
|
|||
|
// RelayURLTests.swift
|
|||
|
// damusTests
|
|||
|
//
|
|||
|
// Created by Daniel D’Aquino on 2024-03-20.
|
|||
|
//
|
|||
|
|
|||
|
import Foundation
|
|||
|
import XCTest
|
|||
|
@testable import damus
|
|||
|
|
|||
|
final class RelayURLTests : XCTestCase {
|
|||
|
func testRelayURLTrailingSlash() {
|
|||
|
let relay_url_1: RelayURL = RelayURL("wss://relay.damus.io")!
|
|||
|
let relay_url_2: RelayURL = RelayURL("wss://relay.damus.io/")!
|
|||
|
|
|||
|
XCTAssertEqual(relay_url_1.id, relay_url_2.id, "Relays with the same address should have the same ID even if one of them was initialized with a trailing slash")
|
|||
|
XCTAssertEqual(relay_url_1, relay_url_2, "Relays with the same address should be equal even if one of them was initialized with a trailing slash")
|
|||
|
|
|||
|
var relays: [RelayURL: Int] = [:]
|
|||
|
relays[relay_url_1] = 1
|
|||
|
relays[relay_url_2] = 2
|
|||
|
|
|||
|
XCTAssertEqual(relays[relay_url_1], 2, "RelayURL with a trailing slash should evaluate to the same hash in a dictionary as an equivalent one without trailing slashes")
|
|||
|
}
|
|||
|
|
|||
|
func testRelayURLDifferentProtocols() {
|
|||
|
let relay_url_1: RelayURL = RelayURL("wss://relay.damus.io")!
|
|||
|
let relay_url_2: RelayURL = RelayURL("ws://relay.damus.io")!
|
|||
|
|
|||
|
XCTAssertNotEqual(relay_url_1.id, relay_url_2.id, "Relays with different protocols should not have the same ID")
|
|||
|
XCTAssertNotEqual(relay_url_1, relay_url_2, "Relays with different protocols should not be equal")
|
|||
|
|
|||
|
var relays: [RelayURL: Int] = [:]
|
|||
|
relays[relay_url_1] = 1
|
|||
|
relays[relay_url_2] = 2
|
|||
|
|
|||
|
XCTAssertNotEqual(relays[relay_url_1], relays[relay_url_2], "RelayURL with different protocols should not evaluate to the same hash in a dictionary")
|
|||
|
}
|
|||
|
|
|||
|
func testRelayURLDifferentDomains() {
|
|||
|
let relay_url_1: RelayURL = RelayURL("wss://relay.damus.io")!
|
|||
|
let relay_url_3: RelayURL = RelayURL("wss://example.com")!
|
|||
|
|
|||
|
XCTAssertNotEqual(relay_url_1, relay_url_3, "Relays with different domains should not be equal")
|
|||
|
|
|||
|
var relays: [RelayURL: Int] = [:]
|
|||
|
relays[relay_url_1] = 1
|
|||
|
relays[relay_url_3] = 3
|
|||
|
|
|||
|
XCTAssertNotEqual(relays[relay_url_1], relays[relay_url_3], "RelayURL with different domains should not evaluate to the same hash in a dictionary")
|
|||
|
}
|
|||
|
|
|||
|
func testRelayURLDifferentPaths() {
|
|||
|
let relay_url_1: RelayURL = RelayURL("wss://relay.damus.io")!
|
|||
|
let relay_url_2: RelayURL = RelayURL("wss://relay.damus.io/")!
|
|||
|
let relay_url_3: RelayURL = RelayURL("wss://relay.damus.io/v1")!
|
|||
|
let relay_url_4: RelayURL = RelayURL("wss://relay.damus.io/v2")!
|
|||
|
let relay_url_5: RelayURL = RelayURL("wss://relay.damus.io/v2/beta")!
|
|||
|
let relay_url_6: RelayURL = RelayURL("wss://relay.damus.io/v2/beta/")!
|
|||
|
|
|||
|
XCTAssertEqual(relay_url_1.id, relay_url_2.id, "Relays with the same address should have the same ID even if one of them was initialized with a trailing slash")
|
|||
|
XCTAssertEqual(relay_url_1, relay_url_2, "Relays with the same address should be equal even if one of them was initialized with a trailing slash")
|
|||
|
|
|||
|
XCTAssertNotEqual(relay_url_1, relay_url_3, "Relays with different paths should not be equal")
|
|||
|
XCTAssertNotEqual(relay_url_3, relay_url_4, "Relays with different paths should not be equal")
|
|||
|
XCTAssertNotEqual(relay_url_4, relay_url_5, "Relays with different subpaths should not be equal")
|
|||
|
XCTAssertEqual(relay_url_5, relay_url_6, "Relays with the same address should be equal if one of them is initialized with a trailing slash")
|
|||
|
|
|||
|
var relays: [RelayURL: Int] = [:]
|
|||
|
relays[relay_url_1] = 1
|
|||
|
relays[relay_url_2] = 2
|
|||
|
relays[relay_url_3] = 3
|
|||
|
relays[relay_url_4] = 4
|
|||
|
relays[relay_url_5] = 5
|
|||
|
relays[relay_url_6] = 6
|
|||
|
|
|||
|
XCTAssertEqual(relays[relay_url_1], relays[relay_url_2], "RelayURL with the same path should evaluate to the same hash in a dictionary")
|
|||
|
XCTAssertNotEqual(relays[relay_url_1], relays[relay_url_3], "RelayURLs with different pathsshould not evaluate to the same hash in a dictionary")
|
|||
|
XCTAssertNotEqual(relays[relay_url_3], relays[relay_url_4], "RelayURLs with different paths should not evaluate to the same hash in a dictionary")
|
|||
|
XCTAssertNotEqual(relays[relay_url_4], relays[relay_url_5], "RelayURLs with different subpaths should not evaluate to the same hash in a dictionary")
|
|||
|
XCTAssertEqual(relays[relay_url_5], relays[relay_url_6], "RelayURL with the same subpath should evaluate to the same hash in a dictionary even if one of them is initialized with a trailing slash")
|
|||
|
}
|
|||
|
}
|