migration
This commit is contained in:
46
PediFoodsTests/ImageSourceResolverTests.swift
Normal file
46
PediFoodsTests/ImageSourceResolverTests.swift
Normal file
@@ -0,0 +1,46 @@
|
||||
import Foundation
|
||||
import Testing
|
||||
@testable import PediFoods
|
||||
|
||||
@Test("ImageSourceResolver returns nil for nil, empty, or whitespace-only input")
|
||||
func imageSourceResolverNilOnEmptyInput() {
|
||||
#expect(ImageSourceResolver.resolve(nil) == nil)
|
||||
#expect(ImageSourceResolver.resolve("") == nil)
|
||||
#expect(ImageSourceResolver.resolve(" ") == nil)
|
||||
}
|
||||
|
||||
@Test("ImageSourceResolver passes absolute http/https URLs through unchanged")
|
||||
func imageSourceResolverPassesAbsoluteURLsThrough() {
|
||||
#expect(ImageSourceResolver.resolve("https://cdn.example.com/img.png") == "https://cdn.example.com/img.png")
|
||||
#expect(ImageSourceResolver.resolve("http://cdn.example.com/img.png") == "http://cdn.example.com/img.png")
|
||||
}
|
||||
|
||||
@Test("ImageSourceResolver treats the http/https scheme check case-insensitively")
|
||||
func imageSourceResolverSchemeCheckIsCaseInsensitive() {
|
||||
let resolved = ImageSourceResolver.resolve("HTTPS://cdn.example.com/img.png")
|
||||
#expect(resolved == "HTTPS://cdn.example.com/img.png")
|
||||
}
|
||||
|
||||
@Test("ImageSourceResolver passes data:image URLs through unchanged")
|
||||
func imageSourceResolverPassesDataImageURLsThrough() {
|
||||
let dataURL = "data:image/png;base64,iVBORw0KGgo="
|
||||
#expect(ImageSourceResolver.resolve(dataURL) == dataURL)
|
||||
}
|
||||
|
||||
@Test("ImageSourceResolver normalizes JSON-escaped backslash-slashes before checking the scheme")
|
||||
func imageSourceResolverNormalizesEscapedSlashes() {
|
||||
let escaped = "https:\\/\\/cdn.example.com\\/img.png"
|
||||
#expect(ImageSourceResolver.resolve(escaped) == "https://cdn.example.com/img.png")
|
||||
}
|
||||
|
||||
@Test("ImageSourceResolver prefixes a relative path with the API base URL")
|
||||
func imageSourceResolverPrefixesRelativePathWithBaseURL() {
|
||||
let resolved = ImageSourceResolver.resolve("uploads/img.png")
|
||||
#expect(resolved == "\(ApiConfig.baseURL.absoluteString)/uploads/img.png")
|
||||
}
|
||||
|
||||
@Test("ImageSourceResolver doesn't double the leading slash for an already-rooted relative path")
|
||||
func imageSourceResolverDoesNotDoubleLeadingSlash() {
|
||||
let resolved = ImageSourceResolver.resolve("/uploads/img.png")
|
||||
#expect(resolved == "\(ApiConfig.baseURL.absoluteString)/uploads/img.png")
|
||||
}
|
||||
Reference in New Issue
Block a user