diff --git a/ShadowsocksX-NG/ServerProfile.swift b/ShadowsocksX-NG/ServerProfile.swift index 49a9acc..1016e23 100644 --- a/ShadowsocksX-NG/ServerProfile.swift +++ b/ShadowsocksX-NG/ServerProfile.swift @@ -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]) } } } diff --git a/ShadowsocksX-NGTests/ServerProfileTests.swift b/ShadowsocksX-NGTests/ServerProfileTests.swift index bca5aa5..d47c7c3 100644 --- a/ShadowsocksX-NGTests/ServerProfileTests.swift +++ b/ShadowsocksX-NGTests/ServerProfileTests.swift @@ -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. } } + }