tv-anarchy/Tests/TVAnarchyCoreTests/MediaPathsTests.swift
Natalie b44b5a2d1a feat(@applications): add adult content browsing tab
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-09 19:51:12 -07:00

39 lines
1.9 KiB
Swift

import XCTest
@testable import TVAnarchyCore
final class MediaPathsTests: XCTestCase {
private var home: String { FileManager.default.homeDirectoryForCurrentUser.path }
func testPlumMountsTranslateToBlack() {
// ~/_/bigdisk/_/media/... and ~/media/... both map to /bigdisk/_/media/...
XCTAssertEqual(MediaPaths.toRemote(home + "/_/bigdisk/_/media/tv/Psych/e.mkv"),
"/bigdisk/_/media/tv/Psych/e.mkv")
XCTAssertEqual(MediaPaths.toRemote(home + "/media/anime/Frieren/e.mkv"),
"/bigdisk/_/media/anime/Frieren/e.mkv")
// the broader ~/_/bigdisk mount maps to /bigdisk
XCTAssertEqual(MediaPaths.toRemote(home + "/_/bigdisk/other/x"), "/bigdisk/other/x")
}
func testFileURIStrippedAndPassthrough() {
XCTAssertEqual(MediaPaths.toRemote("file://" + home + "/media/tv/x.mkv"),
"/bigdisk/_/media/tv/x.mkv")
// an already-remote / unknown path is returned unchanged
XCTAssertEqual(MediaPaths.toRemote("/bigdisk/_/media/tv/x.mkv"), "/bigdisk/_/media/tv/x.mkv")
XCTAssertEqual(MediaPaths.toRemote("/some/other/path.mkv"), "/some/other/path.mkv")
}
func testStreamURLPassesThroughResolvedURLs() {
for u in ["file:///x.mkv", "http://h/x.mkv", "https://h/x.mkv", "sftp://u@h/x.mkv"] {
XCTAssertEqual(MediaPaths.toStreamURL(u), u)
}
}
func testStreamURLWrapsUndownloadedPathAsFileURL() {
// VLC can only open a local file (no NFS, no working sftp). A path with no
// downloaded copy becomes a best-effort file:// URL PlayerController's
// reroute-to-black guard catches the not-local case before it reaches VLC.
// Uses a basename that can't exist in the real downloads dir.
let p = "/bigdisk/_/media/tv/Psych/__tva_undownloaded_\(ProcessInfo.processInfo.globallyUniqueString).mkv"
XCTAssertEqual(MediaPaths.toStreamURL(p), "file://" + p)
}
}