SocketPermissionTest.cs 5.0 KB

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