SocketPermissionTest.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  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 ("#3: bug in MS.Net", s1.IsSubsetOf (s2));
  64. Assertion.Assert ("#4", !s2.IsSubsetOf (s1));
  65. s1 = new SocketPermission(NetworkAccess.Connect, TransportType.Tcp, "12.13.*.*", 80);
  66. s2 = new SocketPermission(NetworkAccess.Connect, TransportType.All, "12.13.14.*", 80);
  67. Assertion.Assert ("#5", !s1.IsSubsetOf (s2));
  68. Assertion.Assert ("#6", !s2.IsSubsetOf (s1));
  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. Assertion.Assert ("#7", !s1.IsSubsetOf (s2));
  74. Assertion.Assert ("#8", !s2.IsSubsetOf (s1));
  75. }
  76. [Test]
  77. public void Intersect ()
  78. {
  79. }
  80. [Test]
  81. public void Union ()
  82. {
  83. }
  84. [Test]
  85. public void Xml ()
  86. {
  87. SecurityElement elem = s2.ToXml ();
  88. s1.FromXml (elem);
  89. Assertion.Assert ("#1", s2.IsSubsetOf (s1) && s1.IsSubsetOf (s2));
  90. }
  91. }
  92. }