mirror of
https://github.com/shadowsocks/ShadowsocksX-NG.git
synced 2026-11-08 10:54:50 +00:00
26 lines
948 B
Swift
26 lines
948 B
Swift
import XCTest
|
|
|
|
@testable import ShadowsocksX_NG2
|
|
|
|
/// 二维码分享/识别互逆(验收:分享与添加互逆)。
|
|
final class QrCodeCodecTests: XCTestCase {
|
|
func testGenerateThenDetectRoundTrip() throws {
|
|
let payload = "ss://YWVzLTI1Ni1nY206cGFzc3dvcmQxMjM@203.0.113.7:8388#香港 01"
|
|
let png = try QrCodeCodec.generatePNG(for: payload)
|
|
let payloads = try QrCodeCodec.detectPayloads(in: png)
|
|
XCTAssertEqual(payloads, [payload])
|
|
}
|
|
|
|
func testDetectHandlesChineseAndPluginPayload() throws {
|
|
let payload =
|
|
"ss://cmM0LW1kNTpwYXNzd29yZA@192.168.100.1:8888"
|
|
+ "/?plugin=obfs-local%3Bobfs%3Dhttp%3Bobfs-host%3Dexample.com#示例节点 🇭🇰"
|
|
let png = try QrCodeCodec.generatePNG(for: payload)
|
|
XCTAssertEqual(try QrCodeCodec.detectPayloads(in: png), [payload])
|
|
}
|
|
|
|
func testDetectGarbageDataThrows() {
|
|
XCTAssertThrowsError(try QrCodeCodec.detectPayloads(in: Data("not an image".utf8)))
|
|
}
|
|
}
|