Skip to content

Commit

Permalink
Rearrange test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
celeron533 committed Sep 22, 2019
1 parent 8e0ca62 commit f8f0ab5
Show file tree
Hide file tree
Showing 4 changed files with 118 additions and 69 deletions.
2 changes: 1 addition & 1 deletion shadowsocks-windows.sln
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ VisualStudioVersion = 15.0.26228.10
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "shadowsocks-csharp", "shadowsocks-csharp\shadowsocks-csharp.csproj", "{8C02D2F7-7CDB-4D55-9F25-CD03EF4AA062}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "test", "test\test.csproj", "{45913187-0685-4903-B250-DCEF0479CD86}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ShadowsocksTest", "test\ShadowsocksTest.csproj", "{45913187-0685-4903-B250-DCEF0479CD86}"
ProjectSection(ProjectDependencies) = postProject
{8C02D2F7-7CDB-4D55-9F25-CD03EF4AA062} = {8C02D2F7-7CDB-4D55-9F25-CD03EF4AA062}
EndProjectSection
Expand Down
File renamed without changes.
30 changes: 28 additions & 2 deletions test/Sip003PluginTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,12 @@ namespace Shadowsocks.Test
[TestClass]
public class Sip003PluginTest
{
string fake_plugin = "ftp";

[TestMethod]
public void Sip003PluginSupport()
public void TestSip003Plugin_NoPlugin()
{
string fake_plugin = "ftp";


var NoPlugin = Sip003Plugin.CreateIfConfigured(new Server
{
Expand All @@ -32,7 +34,11 @@ public void Sip003PluginSupport()
"",
"192.168.100.1",
8888);
}

[TestMethod]
public void TestSip003Plugin_Plugin()
{
var Plugin = Sip003Plugin.CreateIfConfigured(new Server
{
server = "192.168.100.1",
Expand All @@ -48,7 +54,11 @@ public void Sip003PluginSupport()
"",
"192.168.100.1",
8888);
}

[TestMethod]
public void TestSip003Plugin_PluginWithOpts()
{
var PluginWithOpts = Sip003Plugin.CreateIfConfigured(new Server
{
server = "192.168.100.1",
Expand All @@ -65,7 +75,11 @@ public void Sip003PluginSupport()
"",
"192.168.100.1",
8888);
}

[TestMethod]
public void TestSip003Plugin_PluginWithArgs()
{
var PluginWithArgs = Sip003Plugin.CreateIfConfigured(new Server
{
server = "192.168.100.1",
Expand All @@ -82,7 +96,11 @@ public void Sip003PluginSupport()
"_test",
"192.168.100.1",
8888);
}

[TestMethod]
public void TestSip003Plugin_PluginWithOptsAndArgs()
{
var PluginWithOptsAndArgs = Sip003Plugin.CreateIfConfigured(new Server
{
server = "192.168.100.1",
Expand All @@ -100,7 +118,11 @@ public void Sip003PluginSupport()
"_test",
"192.168.100.1",
8888);
}

[TestMethod]
public void TestSip003Plugin_PluginWithArgsReplaced()
{
var PluginWithArgsReplaced = Sip003Plugin.CreateIfConfigured(new Server
{
server = "192.168.100.1",
Expand All @@ -117,7 +139,11 @@ public void Sip003PluginSupport()
"_test,192.168.100.1",
"192.168.100.1",
8888);
}

[TestMethod]
public void TestSip003Plugin_PluginWithOptsAndArgsReplaced()
{
var PluginWithOptsAndArgsReplaced = Sip003Plugin.CreateIfConfigured(new Server
{
server = "192.168.100.1",
Expand Down
155 changes: 89 additions & 66 deletions test/UrlTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,60 +11,69 @@ namespace Shadowsocks.Test
[TestClass]
public class UrlTest
{
[TestMethod]
public void ParseAndGenerateShadowsocksUrl()
Server server1, server1WithRemark, server1WithPlugin, server1WithPluginAndRemark;
string server1CanonUrl, server1WithRemarkCanonUrl, server1WithPluginCanonUrl, server1WithPluginAndRemarkCanonUrl;

Server server2, server2WithRemark, server2WithPlugin, server2WithPluginAndRemark;
string server2CanonUrl, server2WithRemarkCanonUrl, server2WithPluginCanonUrl, server2WithPluginAndRemarkCanonUrl;


[TestInitialize]
public void PrepareTestData()
{
var server = new Server
server1 = new Server
{
server = "192.168.100.1",
server_port = 8888,
password = "test",
method = "bf-cfb"
};
var serverCanonUrl = "ss://YmYtY2ZiOnRlc3RAMTkyLjE2OC4xMDAuMTo4ODg4";
server1CanonUrl = "ss://YmYtY2ZiOnRlc3RAMTkyLjE2OC4xMDAuMTo4ODg4";

var server2 = new Server
// server2 has base64 padding
server2 = new Server
{
server = "192.168.1.1",
server_port = 8388,
password = "test",
method = "bf-cfb"
};
var server2CanonUrl = "ss://YmYtY2ZiOnRlc3RAMTkyLjE2OC4xLjE6ODM4OA==";
server2CanonUrl = "ss://YmYtY2ZiOnRlc3RAMTkyLjE2OC4xLjE6ODM4OA==";

var serverWithRemark = new Server
server1WithRemark = new Server
{
server = server.server,
server_port = server.server_port,
password = server.password,
method = server.method,
server = server1.server,
server_port = server1.server_port,
password = server1.password,
method = server1.method,
remarks = "example-server"
};
var serverWithRemarkCanonUrl = "ss://YmYtY2ZiOnRlc3RAMTkyLjE2OC4xMDAuMTo4ODg4#example-server";
server1WithRemarkCanonUrl = "ss://YmYtY2ZiOnRlc3RAMTkyLjE2OC4xMDAuMTo4ODg4#example-server";

var server2WithRemark = new Server
server2WithRemark = new Server
{
server = server2.server,
server_port = server2.server_port,
password = server2.password,
method = server2.method,
remarks = "example-server"
};
var server2WithRemarkCanonUrl = "ss://YmYtY2ZiOnRlc3RAMTkyLjE2OC4xLjE6ODM4OA==#example-server";

var serverWithPlugin = new Server
server2WithRemarkCanonUrl = "ss://YmYtY2ZiOnRlc3RAMTkyLjE2OC4xLjE6ODM4OA==#example-server";

server1WithPlugin = new Server
{
server = server.server,
server_port = server.server_port,
password = server.password,
method = server.method,
server = server1.server,
server_port = server1.server_port,
password = server1.password,
method = server1.method,
plugin = "obfs-local",
plugin_opts = "obfs=http;obfs-host=google.com"
};
var serverWithPluginCanonUrl =
server1WithPluginCanonUrl =
"ss://[email protected]:8888/?plugin=obfs-local%3bobfs%3dhttp%3bobfs-host%3dgoogle.com";

var server2WithPlugin = new Server
server2WithPlugin = new Server
{
server = server2.server,
server_port = server2.server_port,
Expand All @@ -73,23 +82,23 @@ public void ParseAndGenerateShadowsocksUrl()
plugin = "obfs-local",
plugin_opts = "obfs=http;obfs-host=google.com"
};
var server2WithPluginCanonUrl =
server2WithPluginCanonUrl =
"ss://[email protected]:8388/?plugin=obfs-local%3bobfs%3dhttp%3bobfs-host%3dgoogle.com";

var serverWithPluginAndRemark = new Server
server1WithPluginAndRemark = new Server
{
server = server.server,
server_port = server.server_port,
password = server.password,
method = server.method,
plugin = serverWithPlugin.plugin,
plugin_opts = serverWithPlugin.plugin_opts,
remarks = serverWithRemark.remarks
server = server1.server,
server_port = server1.server_port,
password = server1.password,
method = server1.method,
plugin = server1WithPlugin.plugin,
plugin_opts = server1WithPlugin.plugin_opts,
remarks = server1WithRemark.remarks
};
var serverWithPluginAndRemarkCanonUrl =
server1WithPluginAndRemarkCanonUrl =
"ss://[email protected]:8888/?plugin=obfs-local%3bobfs%3dhttp%3bobfs-host%3dgoogle.com#example-server";

var server2WithPluginAndRemark = new Server
server2WithPluginAndRemark = new Server
{
server = server2.server,
server_port = server2.server_port,
Expand All @@ -99,62 +108,71 @@ public void ParseAndGenerateShadowsocksUrl()
plugin_opts = server2WithPlugin.plugin_opts,
remarks = server2WithRemark.remarks
};
var server2WithPluginAndRemarkCanonUrl =
server2WithPluginAndRemarkCanonUrl =
"ss://[email protected]:8388/?plugin=obfs-local%3bobfs%3dhttp%3bobfs-host%3dgoogle.com#example-server";
}


[TestMethod]
public void TestParseUrl_Server1()
{
RunParseShadowsocksUrlTest(
string.Join(
"\r\n",
serverCanonUrl,
server1CanonUrl,
"\r\n",
"ss://YmYtY2ZiOnRlc3RAMTkyLjE2OC4xMDAuMTo4ODg4/",
serverWithRemarkCanonUrl,
server1WithRemarkCanonUrl,
"ss://YmYtY2ZiOnRlc3RAMTkyLjE2OC4xMDAuMTo4ODg4/#example-server"),
new[]
{
server,
server,
serverWithRemark,
serverWithRemark
server1,
server1,
server1WithRemark,
server1WithRemark
});

RunParseShadowsocksUrlTest(
string.Join(
"\r\n",
server2CanonUrl,
"ss://[email protected]:8888",
"\r\n",
"ss://YmYtY2ZiOnRlc3RAMTkyLjE2OC4xLjE6ODM4OA==/",
server2WithRemarkCanonUrl,
"ss://YmYtY2ZiOnRlc3RAMTkyLjE2OC4xLjE6ODM4OA==/#example-server"),
"ss://[email protected]:8888/",
"ss://[email protected]:8888#example-server",
"ss://[email protected]:8888/#example-server",
server1WithPluginCanonUrl,
server1WithPluginAndRemarkCanonUrl,
"ss://[email protected]:8888/?plugin=obfs-local%3bobfs%3dhttp%3bobfs-host%3dgoogle.com&unsupported=1#example-server"),
new[]
{
server2,
server2,
server2WithRemark,
server2WithRemark
server1,
server1,
server1WithRemark,
server1WithRemark,
server1WithPlugin,
server1WithPluginAndRemark,
server1WithPluginAndRemark
});
}



[TestMethod]
public void TestParseUrl_Server2()
{
RunParseShadowsocksUrlTest(
string.Join(
"\r\n",
"ss://[email protected]:8888",
server2CanonUrl,
"\r\n",
"ss://[email protected]:8888/",
"ss://[email protected]:8888#example-server",
"ss://[email protected]:8888/#example-server",
serverWithPluginCanonUrl,
serverWithPluginAndRemarkCanonUrl,
"ss://[email protected]:8888/?plugin=obfs-local%3bobfs%3dhttp%3bobfs-host%3dgoogle.com&unsupported=1#example-server"),
"ss://YmYtY2ZiOnRlc3RAMTkyLjE2OC4xLjE6ODM4OA==/",
server2WithRemarkCanonUrl,
"ss://YmYtY2ZiOnRlc3RAMTkyLjE2OC4xLjE6ODM4OA==/#example-server"),
new[]
{
server,
server,
serverWithRemark,
serverWithRemark,
serverWithPlugin,
serverWithPluginAndRemark,
serverWithPluginAndRemark
server2,
server2,
server2WithRemark,
server2WithRemark
});

RunParseShadowsocksUrlTest(
Expand All @@ -178,13 +196,18 @@ public void ParseAndGenerateShadowsocksUrl()
server2WithPluginAndRemark,
server2WithPluginAndRemark
});
}


[TestMethod]
public void TestUrlGenerate()
{
var generateUrlCases = new Dictionary<string, Server>
{
[serverCanonUrl] = server,
[serverWithRemarkCanonUrl] = serverWithRemark,
[serverWithPluginCanonUrl] = serverWithPlugin,
[serverWithPluginAndRemarkCanonUrl] = serverWithPluginAndRemark
[server1CanonUrl] = server1,
[server1WithRemarkCanonUrl] = server1WithRemark,
[server1WithPluginCanonUrl] = server1WithPlugin,
[server1WithPluginAndRemarkCanonUrl] = server1WithPluginAndRemark
};
RunGenerateShadowsocksUrlTest(generateUrlCases);
}
Expand Down

0 comments on commit f8f0ab5

Please sign in to comment.