Files
brov-macbook/tests/SafeWebURLTests.swift
2026-10-06 19:34:32 +03:00

28 lines
1.1 KiB
Swift

import Foundation
@main
enum SafeWebURLTests {
static func main() {
// Accepted: plain http/https URLs
precondition(safeWebURL("https://example.com") != nil)
precondition(safeWebURL("http://example.com/a?b=1") != nil)
precondition(safeWebURL("HTTPS://EXAMPLE.COM") != nil)
precondition(safeWebURL(" https://example.com \n") != nil)
precondition(safeWebURL("http://localhost:5678") != nil)
// Rejected: nil, empty, non-web schemes, malformed
precondition(safeWebURL(nil) == nil)
precondition(safeWebURL("") == nil)
precondition(safeWebURL("file:///etc/hosts") == nil)
precondition(safeWebURL("javascript:alert(1)") == nil)
precondition(safeWebURL("vscode://file/etc/hosts") == nil)
precondition(safeWebURL("smb://server/share") == nil)
precondition(safeWebURL("mailto:a@b.c") == nil)
precondition(safeWebURL("https://") == nil)
precondition(safeWebURL("https:example.com") == nil)
precondition(safeWebURL("//example.com") == nil)
print("Safe web links: 15 cases passed")
}
}