SocketPermissionTest.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. //
  2. // SocketPermissionTest.cs - NUnit Test Cases for System.Net.SocketPermission
  3. //
  4. // Author:
  5. // Lawrence Pit ([email protected])
  6. //
  7. using NUnit.Framework;
  8. using System;
  9. using System.Net;
  10. using System.Collections;
  11. using System.Security;
  12. using System.Security.Permissions;
  13. namespace MonoTests.System.Net
  14. {
  15. public class SocketPermissionTest : TestCase
  16. {
  17. SocketPermission s1;
  18. SocketPermission s2;
  19. public SocketPermissionTest () :
  20. base ("[MonoTests.System.Net.SocketPermissionTest]") {}
  21. public SocketPermissionTest (string name) : base (name) {}
  22. protected override void SetUp ()
  23. {
  24. s1 = new SocketPermission(NetworkAccess.Connect, TransportType.Tcp, "12.13.14.15", 80);
  25. //s1.AddPermission(NetworkAccess.Accept, TransportType.All, "localhost", 8080);
  26. //s1.AddPermission(NetworkAccess.Accept, TransportType.All, "123", SocketPermission.AllPorts);
  27. //s1.AddPermission(NetworkAccess.Accept, TransportType.All, "www.ximian.com", SocketPermission.AllPorts);
  28. //s1.AddPermission(NetworkAccess.Accept, TransportType.All, "120.4.3.2", SocketPermission.AllPorts);
  29. //s1.AddPermission(NetworkAccess.Accept, TransportType.Tcp, "www.google.com", 80);
  30. //s1.AddPermission(NetworkAccess.Accept, TransportType.All, "1.*.10.*.99", SocketPermission.AllPorts);
  31. //s1.AddPermission(NetworkAccess.Accept, TransportType.All, "128.0.0.1", SocketPermission.AllPorts);
  32. //s1.AddPermission(NetworkAccess.Accept, TransportType.All, "0.0.0.0", SocketPermission.AllPorts);
  33. s1.AddPermission(NetworkAccess.Accept, TransportType.All, "10.11.4.*", SocketPermission.AllPorts);
  34. s2 = new SocketPermission(NetworkAccess.Connect, TransportType.All, "12.13.14.15", 80);
  35. //s2.AddPermission(NetworkAccess.Accept, TransportType.All, "localhost", 8080);
  36. //s2.AddPermission(NetworkAccess.Accept, TransportType.All, "123", 8080);
  37. //s2.AddPermission(NetworkAccess.Accept, TransportType.Tcp, "www.google.com", SocketPermission.AllPorts);
  38. s2.AddPermission(NetworkAccess.Accept, TransportType.All, "213.*.*.*", SocketPermission.AllPorts);
  39. //s2.AddPermission(NetworkAccess.Accept, TransportType.All, "128.0.0.1", 9090);
  40. s2.AddPermission(NetworkAccess.Accept, TransportType.Tcp, "216.239.*.*", SocketPermission.AllPorts);
  41. //s2.AddPermission(NetworkAccess.Accept, TransportType.All, "128.0.0.1", SocketPermission.AllPorts);
  42. //s2.AddPermission(NetworkAccess.Accept, TransportType.Tcp, "120.4.3.2", 80);
  43. //s2.AddPermission(NetworkAccess.Accept, TransportType.All, "196.*.*.*", SocketPermission.AllPorts);
  44. //s2.AddPermission(NetworkAccess.Accept, TransportType.All, "1.*.*.*.99", SocketPermission.AllPorts);
  45. s2.AddPermission(NetworkAccess.Accept, TransportType.All, "10.11.*.*", 9090);
  46. //s2.AddPermission(NetworkAccess.Accept, TransportType.All, "10.11.4.7", SocketPermission.AllPorts);
  47. }
  48. protected override void TearDown () {}
  49. public static ITest Suite
  50. {
  51. get {
  52. return new TestSuite (typeof (SocketPermissionTest));
  53. }
  54. }
  55. public void TestIsSubsetOf ()
  56. {
  57. s1 = new SocketPermission(NetworkAccess.Connect, TransportType.Tcp, "12.13.14.15", 80);
  58. s1.AddPermission(NetworkAccess.Accept, TransportType.All, "10.11.4.*", SocketPermission.AllPorts);
  59. s2 = new SocketPermission(NetworkAccess.Connect, TransportType.All, "12.13.14.15", 80);
  60. s2.AddPermission(NetworkAccess.Accept, TransportType.All, "10.11.*.*", 9090);
  61. Assert ("#1", !s1.IsSubsetOf (s2));
  62. Assert ("#2", !s2.IsSubsetOf (s1));
  63. s1 = new SocketPermission(NetworkAccess.Connect, TransportType.Tcp, "12.13.14.15", 80);
  64. s1.AddPermission(NetworkAccess.Accept, TransportType.All, "10.11.4.*", 9090);
  65. s2 = new SocketPermission(NetworkAccess.Connect, TransportType.All, "12.13.14.15", 80);
  66. s2.AddPermission(NetworkAccess.Accept, TransportType.All, "10.11.*.*", 9090);
  67. Assert ("#3: bug in MS.Net", s1.IsSubsetOf (s2));
  68. Assert ("#4", !s2.IsSubsetOf (s1));
  69. s1 = new SocketPermission(NetworkAccess.Connect, TransportType.Tcp, "12.13.*.*", 80);
  70. s2 = new SocketPermission(NetworkAccess.Connect, TransportType.All, "12.13.14.*", 80);
  71. Assert ("#5", !s1.IsSubsetOf (s2));
  72. Assert ("#6", !s2.IsSubsetOf (s1));
  73. s1 = new SocketPermission(NetworkAccess.Connect, TransportType.Tcp, "12.13.14.15", 80);
  74. s1.AddPermission(NetworkAccess.Accept, TransportType.Tcp, "10.11.*.*", 9090);
  75. s2 = new SocketPermission(NetworkAccess.Connect, TransportType.Tcp, "12.13.14.15", 80);
  76. s2.AddPermission(NetworkAccess.Accept, TransportType.All, "10.11.4.*", SocketPermission.AllPorts);
  77. Assert ("#7", !s1.IsSubsetOf (s2));
  78. Assert ("#8", !s2.IsSubsetOf (s1));
  79. }
  80. public void TestIntersect ()
  81. {
  82. }
  83. public void TestUnion ()
  84. {
  85. }
  86. public void TestXml ()
  87. {
  88. SecurityElement elem = s2.ToXml ();
  89. s1.FromXml (elem);
  90. Assert ("#1", s2.IsSubsetOf (s1) && s1.IsSubsetOf (s2));
  91. }
  92. }
  93. }