SocketPermissionTest.cs 5.1 KB

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