Signal-iOS/SignalServiceKit/tests/Messages/Stickers/StickerPackInfoTest.swift
Evan Hahn 4bf9ee4ace
Fix check for sticker pack URL
This commit:

- Adds unit tests
- Checks for auth and port in the URL
2022-07-26 10:38:34 -05:00

44 lines
1.7 KiB
Swift

//
// Copyright (c) 2022 Open Whisper Systems. All rights reserved.
//
import XCTest
@testable import SignalServiceKit
class StickerPackInfoTest: XCTestCase {
func testIsStickerPackShareUrl() throws {
let validStrings = [
"https://signal.art/addstickers#pack_id=abc&pack_key=def",
"https://signal.art/addstickers",
"https://signal.art/addstickers?ignored=true"
]
for string in validStrings {
let url = try XCTUnwrap(URL(string: string))
XCTAssertTrue(StickerPackInfo.isStickerPackShare(url), string)
}
let invalidStrings = [
// Invalid capitalization
"HtTpS://SiGnAl.ArT/addstickers#pack_id=abc&pack_key=def",
// Invalid protocols
"http://signal.art/addstickers#pack_id=abc&pack_key=def",
"signal://signal.art/addstickers#pack_id=abc&pack_key=def",
"sgnl://signal.art/addstickers#pack_id=abc&pack_key=def",
// Extra auth
"https://user:pass@signal.art/addstickers#pack_id=abc&pack_key=def",
// Invalid host
"https://example.org/addstickers#pack_id=abc&pack_key=def",
"https://signal.group/addstickers#pack_id=abc&pack_key=def",
"https://signal.me/addstickers#pack_id=abc&pack_key=def",
"https://signal.art:80/addstickers#pack_id=abc&pack_key=def",
"https://signal.art:443/addstickers#pack_id=abc&pack_key=def",
// Wrong path
"https://signal.art/foo#pack_id=abc&pack_key=def"
]
for string in invalidStrings {
let url = try XCTUnwrap(URL(string: string))
XCTAssertFalse(StickerPackInfo.isStickerPackShare(url), string)
}
}
}