localhost1978's picture
download
raw
4.12 kB
//
// SSKURITests.swift
// SSK_AbstractionsTests
//
// Unit tests for SSKURI, Identifiable protocol conformance, and ssk:// URI formatting.
//
import XCTest
@testable import SSK_Abstractions
final class SSKURITests: XCTestCase {
func testSSKURICanonicalFormatting() {
let uri = SSKURI(
authority: .cas(hash: SSKURI.ContentHash(rawValue: "7a9f8b")),
domain: .code,
subdomain: "ast",
pathComponents: ["SSK_Foundation", "PeerRegistry"],
fragment: "registerPeer",
queryParams: ["hlc": "100.1", "author": "z6Mku"]
)
let expected = "ssk://cas:7a9f8b/code/ast/SSK_Foundation/PeerRegistry#registerPeer?author=z6Mku&hlc=100.1"
XCTAssertEqual(uri.stringValue, expected)
XCTAssertEqual(uri.id, expected)
XCTAssertEqual(uri.description, expected)
}
func testSSKURIParsing() {
let rawString = "ssk://did:key:z6Mku123/social/chat/room42#msg-10?hlc=50.2&v=1"
guard let parsed = SSKURI(rawString) else {
XCTFail("Failed to parse valid SSKURI string: \(rawString)")
return
}
XCTAssertEqual(
parsed.authority,
.did(pubkey: SSKURI.PublicKey(rawValue: "z6Mku123"))
)
XCTAssertEqual(parsed.domain, .social)
XCTAssertEqual(parsed.subdomain, "chat")
XCTAssertEqual(parsed.pathComponents, ["room42"])
XCTAssertEqual(parsed.fragment, "msg-10")
XCTAssertEqual(parsed.queryParams["hlc"], "50.2")
XCTAssertEqual(parsed.queryParams["v"], "1")
XCTAssertEqual(parsed.stringValue, rawString)
}
func testSSKURIInvalidParsing() {
let invalidScheme = "http://invalid.scheme/code/ast"
let invalidAuth = "ssk://invalidAuthority/code/ast"
let invalidDomain = "ssk://cas:1234/invalidDomain/ast"
let tooShort = "ssk://cas:1234"
XCTAssertNil(SSKURI(invalidScheme))
XCTAssertNil(SSKURI(invalidAuth))
XCTAssertNil(SSKURI(invalidDomain))
XCTAssertNil(SSKURI(tooShort))
}
func testSSKURICodable() throws {
let uri = SSKURI(
authority: .node(nodeID: SSKURI.NodeIdentifier(rawValue: "alpha")),
domain: .identity,
subdomain: "session",
pathComponents: ["test-uuid-1234"]
)
let encoder = JSONEncoder()
let decoder = JSONDecoder()
let data = try encoder.encode(uri)
let decoded = try decoder.decode(SSKURI.self, from: data)
XCTAssertEqual(uri, decoded)
XCTAssertEqual(uri.stringValue, decoded.stringValue)
}
func testSSKURIParentAndChildNavigation() {
let parentURI = SSKURI(
authority: .spec(
standardID: SSKURI.StandardIdentifier(rawValue: "ACP-1.0")
),
domain: .spec,
subdomain: "mandate",
pathComponents: ["security"]
)
let child = parentURI.appending(child: "encryption")
XCTAssertEqual(child.stringValue, "ssk://spec:ACP-1.0/spec/mandate/security/encryption")
let withFrag = child.withFragment("sec-4")
XCTAssertEqual(withFrag.stringValue, "ssk://spec:ACP-1.0/spec/mandate/security/encryption#sec-4")
let backToChild = withFrag.parent
XCTAssertEqual(backToChild?.stringValue, child.stringValue)
let backToParent = child.parent
XCTAssertEqual(backToParent?.stringValue, parentURI.stringValue)
}
func testSSKURISemanticAppEntityIntegration() {
let sskURI = SSKURI(
authority: .cas(hash: SSKURI.ContentHash(rawValue: "a1b2c3d4")),
domain: .vault,
subdomain: "kasset",
pathComponents: ["audio", "track1"]
)
let entity = SemanticAppEntity(
sskURI: sskURI,
type: .media,
semanticPrimitives: [.media]
)
XCTAssertEqual(entity.uri, sskURI.stringValue)
XCTAssertEqual(entity.sskURI, sskURI)
XCTAssertEqual(entity.displayRepresentation.title.key, "vault/kasset")
}
}

Xet Storage Details

Size:
4.12 kB
·
Xet hash:
09302c6dfa71b01c6e8e7da001e962993bb26ff45d7ec6823cc0f0feb3e1fe2d

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.