Fixes bug when decode SIP002 URL with plugin but plugin opts is empty string.

This commit is contained in:
Qiu Yuzhou
2019-09-09 14:26:43 +08:00
parent 51aa36e19c
commit dce14f3c3c
2 changed files with 21 additions and 0 deletions

View File

@ -137,6 +137,8 @@ class ServerProfile: NSObject, NSCopying {
if parts.count == 2 {
plugin = String(parts[0])
pluginOptions = String(parts[1])
} else if parts.count == 1 {
plugin = String(parts[0])
}
}
}

View File

@ -141,6 +141,24 @@ class ServerProfileTests: XCTestCase {
XCTAssertNotNil(profile)
XCTAssertEqual(profile?.remark, "Overriden")
}
func testInitWithSIP002URLProfileWithSIP003PluginNoPluginOpts() {
let url = URL(string: "ss://YWVzLTI1Ni1jZmI6cGFzc3dvcmQ=@134.209.56.100:8088/?plugin=v2ray-plugin;#moon-v2ray")!
let profile = ServerProfile(url: url)
XCTAssertNotNil(profile)
XCTAssertEqual(profile?.plugin, "v2ray-plugin")
}
func testInitWithSIP002URLProfileWithSIP003Plugin() {
let url = URL(string: "ss://YWVzLTI1Ni1jZmI6cGFzc3dvcmQ=@134.209.56.100:8088/?plugin=v2ray-plugin;tls#moon-v2ray")!
let profile = ServerProfile(url: url)
XCTAssertNotNil(profile)
XCTAssertEqual(profile?.plugin, "v2ray-plugin")
}
func testPerformanceExample() {
// This is an example of a performance test case.
@ -148,5 +166,6 @@ class ServerProfileTests: XCTestCase {
// Put the code you want to measure the time of here.
}
}
}