Improve URL handling

This commit is contained in:
Arkadiusz Fal
2022-06-25 00:48:57 +02:00
parent 321c265a11
commit f3f8466a95
26 changed files with 616 additions and 216 deletions

View File

@@ -1,17 +0,0 @@
import XCTest
final class InstancesModelTests: XCTestCase {
func testStandardizedURL() throws {
let samples: [String: String] = [
"https://www.youtube.com/": "https://www.youtube.com",
"https://www.youtube.com": "https://www.youtube.com",
]
samples.forEach { url, standardized in
XCTAssertEqual(
InstancesModel.standardizedURL(url),
standardized
)
}
}
}

View File

@@ -1,39 +0,0 @@
import XCTest
final class VideoURLParserTests: XCTestCase {
func testIDParsing() throws {
let samples: [String: String] = [
"https://www.youtube.com/watch?v=_E0PWQvW-14&list=WL&index=4&t=155s": "_E0PWQvW-14",
"https://youtu.be/IRsc57nK8mg?t=20": "IRsc57nK8mg",
"https://www.youtube-nocookie.com/watch?index=4&v=cE1PSQrWc11&list=WL&t=155s": "cE1PSQrWc11",
"https://invidious.snopyta.org/watch?v=XpowfENlJAw" : "XpowfENlJAw",
"/watch?v=VQ_f5RymW70" : "VQ_f5RymW70",
"watch?v=IUTGFQpKaPU&t=30s": "IUTGFQpKaPU"
]
samples.forEach { url, id in
XCTAssertEqual(
VideoURLParser(url: URL(string: url)!).id,
id
)
}
}
func testTimeParsing() throws {
let samples: [String: TimeInterval?] = [
"https://www.youtube.com/watch?v=_E0PWQvW-14&list=WL&index=4&t=155s": 155,
"https://youtu.be/IRsc57nK8mg?t=20m10s": 1210,
"https://youtu.be/IRsc57nK8mg?t=3x4z": nil,
"https://www.youtube-nocookie.com/watch?index=4&v=cE1PSQrWc11&list=WL&t=2H3m5s": 7385,
"https://youtu.be/VQ_f5RymW70?t=378": 378,
"watch?v=IUTGFQpKaPU&t=30s": 30
]
samples.forEach { url, time in
XCTAssertEqual(
VideoURLParser(url: URL(string: url)!).time,
time
)
}
}
}