2005-01-31 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mcs / class / System / Test / System.Net / SocketPermissionTest.cs
1 //\r
2 // SocketPermissionTest.cs - NUnit Test Cases for System.Net.SocketPermission\r
3 //\r
4 // Authors:\r
5 //   Lawrence Pit (loz@cable.a2000.nl)\r
6 //   Martin Willemoes Hansen (mwh@sysrq.dk)\r
7 //\r
8 // (C) 2003 Martin Willemoes Hansen\r
9 //\r
10 \r
11 using NUnit.Framework;\r
12 using System;\r
13 using System.Net;\r
14 using System.Collections;\r
15 using System.Security;\r
16 using System.Security.Permissions;\r
17 \r
18 namespace MonoTests.System.Net\r
19 {\r
20 \r
21 [TestFixture]\r
22 public class SocketPermissionTest\r
23 {\r
24         SocketPermission s1;\r
25         SocketPermission s2;\r
26         \r
27         [SetUp]\r
28         public void GetReady () \r
29         {\r
30                 s1 = new SocketPermission(NetworkAccess.Connect, TransportType.Tcp, "12.13.14.15", 80);\r
31                 //s1.AddPermission(NetworkAccess.Accept, TransportType.All, "localhost", 8080);\r
32                 //s1.AddPermission(NetworkAccess.Accept, TransportType.All, "123", SocketPermission.AllPorts);\r
33                 //s1.AddPermission(NetworkAccess.Accept, TransportType.All, "www.ximian.com", SocketPermission.AllPorts);\r
34                 //s1.AddPermission(NetworkAccess.Accept, TransportType.All, "120.4.3.2", SocketPermission.AllPorts);\r
35                 //s1.AddPermission(NetworkAccess.Accept, TransportType.Tcp, "www.google.com", 80);\r
36                 //s1.AddPermission(NetworkAccess.Accept, TransportType.All, "1.*.10.*.99", SocketPermission.AllPorts);\r
37                 //s1.AddPermission(NetworkAccess.Accept, TransportType.All, "128.0.0.1", SocketPermission.AllPorts);\r
38                 //s1.AddPermission(NetworkAccess.Accept, TransportType.All, "0.0.0.0", SocketPermission.AllPorts);\r
39                 s1.AddPermission(NetworkAccess.Accept, TransportType.All, "10.11.4.*", SocketPermission.AllPorts);\r
40 \r
41                 s2 = new SocketPermission(NetworkAccess.Connect, TransportType.All, "12.13.14.15", 80);\r
42                 //s2.AddPermission(NetworkAccess.Accept, TransportType.All, "localhost", 8080);\r
43                 //s2.AddPermission(NetworkAccess.Accept, TransportType.All, "123", 8080);\r
44                 //s2.AddPermission(NetworkAccess.Accept, TransportType.Tcp, "www.google.com", SocketPermission.AllPorts);\r
45                 s2.AddPermission(NetworkAccess.Accept, TransportType.All, "213.*.*.*", SocketPermission.AllPorts);\r
46                 //s2.AddPermission(NetworkAccess.Accept, TransportType.All, "128.0.0.1", 9090);\r
47                 s2.AddPermission(NetworkAccess.Accept, TransportType.Tcp, "216.239.*.*", SocketPermission.AllPorts);\r
48                 //s2.AddPermission(NetworkAccess.Accept, TransportType.All, "128.0.0.1", SocketPermission.AllPorts);\r
49                 //s2.AddPermission(NetworkAccess.Accept, TransportType.Tcp, "120.4.3.2", 80);\r
50                 //s2.AddPermission(NetworkAccess.Accept, TransportType.All, "196.*.*.*", SocketPermission.AllPorts);\r
51                 //s2.AddPermission(NetworkAccess.Accept, TransportType.All, "1.*.*.*.99", SocketPermission.AllPorts);\r
52                 s2.AddPermission(NetworkAccess.Accept, TransportType.All, "10.11.*.*", 9090);\r
53                 //s2.AddPermission(NetworkAccess.Accept, TransportType.All, "10.11.4.7", SocketPermission.AllPorts);            \r
54         }\r
55 \r
56         [Test]\r
57         public void IsSubsetOf ()\r
58         {\r
59                 s1 = new SocketPermission(NetworkAccess.Connect, TransportType.Tcp, "12.13.14.15", 80);\r
60                 s1.AddPermission(NetworkAccess.Accept, TransportType.All, "10.11.4.*", SocketPermission.AllPorts);\r
61                 s2 = new SocketPermission(NetworkAccess.Connect, TransportType.All, "12.13.14.15", 80);\r
62                 s2.AddPermission(NetworkAccess.Accept, TransportType.All, "10.11.*.*", 9090);\r
63                 \r
64                 Assertion.Assert ("#1", !s1.IsSubsetOf (s2));\r
65                 Assertion.Assert ("#2", !s2.IsSubsetOf (s1));\r
66 \r
67                 s1 = new SocketPermission(NetworkAccess.Connect, TransportType.Tcp, "12.13.14.15", 80);\r
68                 s1.AddPermission(NetworkAccess.Accept, TransportType.All, "10.11.4.*", 9090);\r
69                 s2 = new SocketPermission(NetworkAccess.Connect, TransportType.All, "12.13.14.15", 80);\r
70                 s2.AddPermission(NetworkAccess.Accept, TransportType.All, "10.11.*.*", 9090);\r
71                 \r
72                 Assertion.Assert ("#4", !s2.IsSubsetOf (s1));\r
73                 \r
74                 s1 = new SocketPermission(NetworkAccess.Connect, TransportType.Tcp, "12.13.*.*", 80);\r
75                 s2 = new SocketPermission(NetworkAccess.Connect, TransportType.All, "12.13.14.*", 80);\r
76                 Assertion.Assert ("#5", s1.IsSubsetOf (s2));\r
77                 Assertion.Assert ("#6", !s2.IsSubsetOf (s1));\r
78 \r
79                 s1 = new SocketPermission(NetworkAccess.Connect, TransportType.Tcp, "12.13.14.15", 80);\r
80                 s1.AddPermission(NetworkAccess.Accept, TransportType.Tcp, "10.11.*.*", 9090);\r
81                 s2 = new SocketPermission(NetworkAccess.Connect, TransportType.Tcp, "12.13.14.15", 80);\r
82                 s2.AddPermission(NetworkAccess.Accept, TransportType.All, "10.11.4.*", SocketPermission.AllPorts);\r
83                 Assertion.Assert ("#7", s1.IsSubsetOf (s2));\r
84                 Assertion.Assert ("#8", !s2.IsSubsetOf (s1));\r
85         }\r
86         \r
87         [Test]\r
88         [Category("NotDotNet")]\r
89         public void IsSubsetOf2 ()\r
90         {\r
91                 s1 = new SocketPermission(NetworkAccess.Connect, TransportType.Tcp, "12.13.14.15", 80);\r
92                 s1.AddPermission(NetworkAccess.Accept, TransportType.All, "10.11.4.*", 9090);\r
93                 s2 = new SocketPermission(NetworkAccess.Connect, TransportType.All, "12.13.14.15", 80);\r
94                 s2.AddPermission(NetworkAccess.Accept, TransportType.All, "10.11.*.*", 9090);\r
95                 \r
96                 Assertion.Assert ("#3: bug in MS.Net", s1.IsSubsetOf (s2));\r
97         }\r
98 \r
99         [Test]\r
100         public void Intersect ()\r
101         {\r
102         }\r
103         \r
104     [Test]\r
105         public void Union ()\r
106         {\r
107         }\r
108         \r
109     [Test]\r
110         public void Xml ()\r
111         {\r
112                 SecurityElement elem = s2.ToXml ();\r
113                 s1.FromXml (elem);\r
114                 Assertion.Assert ("#1", s2.IsSubsetOf (s1) && s1.IsSubsetOf (s2));\r
115         }\r
116 }\r
117 \r
118 }\r
119 \r