You've already forked linux-packaging-mono
Imported Upstream version 5.18.0.142
Former-commit-id: 7467d4b717762eeaf652d77f1486dd11ffb1ff1f
This commit is contained in:
parent
e52655b4dc
commit
0abdbe5a7d
@ -146,9 +146,26 @@ namespace MonoTests.System.IO
|
||||
}
|
||||
}
|
||||
|
||||
internal const string LIBC = "libc";
|
||||
// geteuid(2)
|
||||
// uid_t geteuid(void);
|
||||
[DllImport (LIBC, SetLastError=true)]
|
||||
static extern uint geteuid ();
|
||||
|
||||
static bool RunningAsRoot // FIXME?
|
||||
{
|
||||
get {
|
||||
//return RunningOnUnix && System.Security.WindowsIdentity.GetCurrentToken () == IntPtr.Zero;
|
||||
return RunningOnUnix && geteuid () == 0;
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Create_Path_ReadOnly ()
|
||||
{
|
||||
if (RunningAsRoot) // FIXME?
|
||||
Assert.Ignore ("Setting readonly in Mono does not block root writes.");
|
||||
|
||||
string path = Path.Combine (tmpFolder, "foo");
|
||||
File.Create (path).Close ();
|
||||
File.SetAttributes (path, FileAttributes.ReadOnly);
|
||||
@ -169,6 +186,8 @@ namespace MonoTests.System.IO
|
||||
[Test]
|
||||
public void Create_Path_Whitespace ()
|
||||
{
|
||||
// FIXME? This is valid on Unix and can work on Windows.
|
||||
// This test and Mono have in mind an incorrect low common denominator.
|
||||
try {
|
||||
File.Create (" ");
|
||||
Assert.Fail ("#1");
|
||||
@ -619,6 +638,9 @@ namespace MonoTests.System.IO
|
||||
[Test]
|
||||
public void GetAttributes_ReadOnly ()
|
||||
{
|
||||
if (RunningAsRoot) // FIXME?
|
||||
Assert.Ignore ("Setting readonly in Mono does not block root writes.");
|
||||
|
||||
FileAttributes attrs;
|
||||
|
||||
string path = Path.Combine (tmpFolder, "GetAttributes.tmp");
|
||||
|
@ -31,6 +31,7 @@ using NUnit.Framework;
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace MonoTests.System.Reflection
|
||||
{
|
||||
@ -42,10 +43,24 @@ namespace MonoTests.System.Reflection
|
||||
[TestFixture]
|
||||
public class CustomAttributeDataTest
|
||||
{
|
||||
[MarshalAs (UnmanagedType.LPStr)]
|
||||
[NonSerialized]
|
||||
public string fieldDecoratedWithPseudoCustomAttributes = "test";
|
||||
|
||||
[Attr (new byte [] { 1, 2 })]
|
||||
public void MethodWithAttr () {
|
||||
}
|
||||
|
||||
public void MethodWithParamDecoratedWithPseudoCustomAttributes ([Optional, In, Out, MarshalAs (UnmanagedType.LPStr)] String s)
|
||||
{
|
||||
}
|
||||
|
||||
[return: MarshalAs (UnmanagedType.LPStr)]
|
||||
public string MethodWithReturnValueDecoratedWithMarshalAs ()
|
||||
{
|
||||
return "test";
|
||||
}
|
||||
|
||||
[Test]
|
||||
[Category ("MobileNotWorking")] // #10263
|
||||
public void Arrays () {
|
||||
@ -60,5 +75,63 @@ namespace MonoTests.System.Reflection
|
||||
Assert.AreEqual (typeof (byte), arr [1].ArgumentType);
|
||||
Assert.AreEqual (2, arr [1].Value);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ParameterIncludesPseudoCustomAttributesData ()
|
||||
{
|
||||
var methodInfo = typeof (CustomAttributeDataTest).GetMethod ("MethodWithParamDecoratedWithPseudoCustomAttributes");
|
||||
var paramInfo = methodInfo.GetParameters () [0];
|
||||
var customAttributesData = CustomAttributeData.GetCustomAttributes (paramInfo);
|
||||
|
||||
Assert.AreEqual (4, customAttributesData.Count);
|
||||
|
||||
var inAttributeData = customAttributesData [0];
|
||||
var optionalAttributeData = customAttributesData [1];
|
||||
var outAttributeData = customAttributesData [2];
|
||||
var marshalAsAttributeData = customAttributesData [3];
|
||||
|
||||
var marshalAsAttributeCtorArg = marshalAsAttributeData.ConstructorArguments [0];
|
||||
|
||||
Assert.AreEqual (typeof (InAttribute), inAttributeData.AttributeType);
|
||||
Assert.AreEqual (typeof (OptionalAttribute), optionalAttributeData.AttributeType);
|
||||
Assert.AreEqual (typeof (OutAttribute), outAttributeData.AttributeType);
|
||||
|
||||
Assert.AreEqual (typeof (MarshalAsAttribute), marshalAsAttributeData.AttributeType);
|
||||
Assert.AreEqual (typeof (UnmanagedType), marshalAsAttributeCtorArg.ArgumentType);
|
||||
Assert.AreEqual (UnmanagedType.LPStr, marshalAsAttributeCtorArg.Value);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void FieldIncludesPseudoCustomAttributesData ()
|
||||
{
|
||||
var fieldInfo = typeof (CustomAttributeDataTest).GetField ("fieldDecoratedWithPseudoCustomAttributes");
|
||||
var customAttributesData = CustomAttributeData.GetCustomAttributes (fieldInfo);
|
||||
|
||||
Assert.AreEqual (2, customAttributesData.Count);
|
||||
|
||||
var nonSerializedAttributeData = customAttributesData [0];
|
||||
var marshalAsAttributeData = customAttributesData [1];
|
||||
var marshalAsAttributeDataCtorArg = marshalAsAttributeData.ConstructorArguments [0];
|
||||
|
||||
Assert.AreEqual (typeof (NonSerializedAttribute), nonSerializedAttributeData.AttributeType);
|
||||
Assert.AreEqual (typeof (MarshalAsAttribute), marshalAsAttributeData.AttributeType);
|
||||
Assert.AreEqual (typeof (UnmanagedType), marshalAsAttributeDataCtorArg.ArgumentType);
|
||||
Assert.AreEqual (UnmanagedType.LPStr, marshalAsAttributeDataCtorArg.Value);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void MethodIncludesMarshalAsAttributeData ()
|
||||
{
|
||||
var methodInfo = typeof (CustomAttributeDataTest).GetMethod ("MethodWithReturnValueDecoratedWithMarshalAs");
|
||||
var paramInfo = (ParameterInfo)methodInfo.ReturnTypeCustomAttributes;
|
||||
var customAttributesData = CustomAttributeData.GetCustomAttributes (paramInfo);
|
||||
var marshalAsAttributeData = customAttributesData [0];
|
||||
var ctorArg = marshalAsAttributeData.ConstructorArguments [0];
|
||||
|
||||
Assert.AreEqual (1, customAttributesData.Count);
|
||||
Assert.AreEqual (typeof (MarshalAsAttribute), marshalAsAttributeData.AttributeType);
|
||||
Assert.AreEqual (typeof (UnmanagedType), ctorArg.ArgumentType);
|
||||
Assert.AreEqual (UnmanagedType.LPStr, ctorArg.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -29,6 +29,9 @@ namespace MonoTests.System.Security.Cryptography.X509Certificates {
|
||||
// is similar to the one provided by CAPI.
|
||||
|
||||
[TestFixture]
|
||||
// We are throwing `PlatformNotSupportedException`.
|
||||
// See https://github.com/mono/mono/pull/9472#issuecomment-404006558 for details.
|
||||
[Category ("NotWorking")]
|
||||
public class X509CAPI {
|
||||
|
||||
// copied from X509Certificate for test uses only
|
||||
|
@ -42,6 +42,7 @@ namespace MonoCasTests.System.Security.Cryptography.X509Certificates {
|
||||
|
||||
[TestFixture]
|
||||
[Category ("CAS")]
|
||||
[Category ("X509Certificates")]
|
||||
public class X509CertificateCas {
|
||||
|
||||
private static readonly byte[] cert = { 0x30,0x82,0x01,0xFF,0x30,0x82,0x01,0x6C,0x02,0x05,0x02,0x72,0x00,0x06,0xE8,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x02,0x05,0x00,0x30,0x5F,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x20,0x30,0x1E,0x06,0x03,0x55,0x04,0x0A,0x13,0x17,0x52,0x53,0x41,0x20,0x44,0x61,0x74,0x61,0x20,0x53,0x65,0x63,0x75,0x72,0x69,0x74,0x79,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x31,0x2E,0x30,0x2C,0x06,0x03,0x55,0x04,0x0B,0x13,0x25,0x53,0x65,0x63,0x75,0x72,0x65,0x20,0x53,0x65,0x72,0x76,
|
||||
|
@ -1 +1 @@
|
||||
634dda0599c90556f1d6a23661203f22d01cbfa3
|
||||
aa0f9e9a5afdd4397e18bae68a24eb10da0d5cd0
|
@ -1016,6 +1016,7 @@ namespace MonoTests.System.Security.Cryptography.X509Certificates {
|
||||
}
|
||||
|
||||
[Test]
|
||||
[Category ("NotWorking")] // we are now throwing due to the invalid signature
|
||||
public void InvalidSignature ()
|
||||
{
|
||||
string filename = Path.Combine (Path.GetTempPath (), "smallspc-invalid.exe");
|
||||
|
@ -467,6 +467,43 @@ public abstract class HashAlgorithmTestBase {
|
||||
hash.TransformFinalBlock (input, 0, input.Length);
|
||||
Assert.IsNotNull (hash.Hash);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Hash_NoExternalChanges ()
|
||||
{
|
||||
byte[] input = new byte [512];
|
||||
for (int i = 0; i < input.Length; i++)
|
||||
input[i] = (byte)(i % 0xFF);
|
||||
hash.TransformFinalBlock (input, 0, input.Length);
|
||||
|
||||
byte[] brokenHash = hash.Hash;
|
||||
Array.Clear (brokenHash, 0, brokenHash.Length);
|
||||
|
||||
// if the byte array is returned as a ref, both instance will be cleared.
|
||||
Assert.AreNotEqual (hash.Hash, brokenHash, "ExternalChanges");
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException (typeof (ObjectDisposedException))]
|
||||
public void Hash_DisposedException ()
|
||||
{
|
||||
hash.Dispose ();
|
||||
// should fail since the hash object is disposed.
|
||||
Assert.IsNull (hash.Hash);
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException (typeof (CryptographicUnexpectedOperationException))]
|
||||
public void Hash_StateExeception ()
|
||||
{
|
||||
hash.Initialize ();
|
||||
byte[] input = new byte [8];
|
||||
byte[] output = new byte [8];
|
||||
hash.TransformBlock (input, 0, input.Length, output, 0);
|
||||
|
||||
// should fail with CryptographicUnexpectedOperationException as TransformFinalBlock was not called.
|
||||
Assert.IsNull (hash.Hash);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -363,14 +363,14 @@ namespace MonoTests.System.Security.Cryptography {
|
||||
badSignature[0] = (byte) ~md5Signature [0];
|
||||
HashAlgorithm hash = MD5.Create ();
|
||||
try {
|
||||
fmt.VerifySignature (hash, md5Signature);
|
||||
fmt.VerifySignature (hash, badSignature);
|
||||
Assert.Fail ("VerifyBadSignatureMD5Hash - Expected CryptographicUnexpectedOperationException but none");
|
||||
}
|
||||
catch (CryptographicUnexpectedOperationException) {
|
||||
// this was expected
|
||||
}
|
||||
catch (NullReferenceException) {
|
||||
// this wasn't expected - but that's the result from framework 1.1
|
||||
// this wasn't expected - but that's the result from .NET Framework
|
||||
}
|
||||
catch (Exception e) {
|
||||
Assert.Fail ("VerifyBadSignatureMD5Hash - Expected CryptographicUnexpectedOperationException but got: " + e.ToString ());
|
||||
@ -385,14 +385,14 @@ namespace MonoTests.System.Security.Cryptography {
|
||||
byte[] badSignature = new byte [md5Signature.Length-1];
|
||||
HashAlgorithm hash = MD5.Create ();
|
||||
try {
|
||||
fmt.VerifySignature (hash, md5Signature);
|
||||
fmt.VerifySignature (hash, badSignature);
|
||||
Assert.Fail ("VerifySignatureMD5HashBadSignatureLength - Expected CryptographicUnexpectedOperationException but none");
|
||||
}
|
||||
catch (CryptographicUnexpectedOperationException) {
|
||||
// this was expected
|
||||
}
|
||||
catch (NullReferenceException) {
|
||||
// this wasn't expected - but that's the result from framework 1.1
|
||||
// this wasn't expected - but that's the result from .NET Framework
|
||||
}
|
||||
catch (Exception e) {
|
||||
Assert.Fail ("VerifySignatureMD5HashBadSignatureLength - Expected CryptographicUnexpectedOperationException but got: " + e.ToString ());
|
||||
|
@ -1,312 +0,0 @@
|
||||
//
|
||||
// PublisherMembershipConditionTest.cs -
|
||||
// NUnit Test Cases for PublisherMembershipCondition
|
||||
//
|
||||
// Author:
|
||||
// Sebastien Pouliot <sebastien@ximian.com>
|
||||
//
|
||||
// (C) 2002, 2003 Motus Technologies Inc. (http://www.motus.com)
|
||||
// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining
|
||||
// a copy of this software and associated documentation files (the
|
||||
// "Software"), to deal in the Software without restriction, including
|
||||
// without limitation the rights to use, copy, modify, merge, publish,
|
||||
// distribute, sublicense, and/or sell copies of the Software, and to
|
||||
// permit persons to whom the Software is furnished to do so, subject to
|
||||
// the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be
|
||||
// included in all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
|
||||
using NUnit.Framework;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Security;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using System.Security.Policy;
|
||||
|
||||
namespace MonoTests.System.Security.Policy {
|
||||
|
||||
[TestFixture]
|
||||
public class PublisherMembershipConditionTest {
|
||||
|
||||
static byte[] msSpCert = { 0x30, 0x82, 0x05, 0x0F, 0x30, 0x82, 0x03, 0xF7, 0xA0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x0A, 0x61, 0x07, 0x11, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81, 0xA6, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x0A, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6E, 0x67, 0x74, 0x6F, 0x6E, 0x31, 0x10, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x52, 0x65, 0x64, 0x6D, 0x6F, 0x6E, 0x64, 0x31, 0x1E, 0x30, 0x1C, 0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, 0x15, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x43, 0x6F, 0x72, 0x70, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x31, 0x2B, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x0B, 0x13, 0x22, 0x43, 0x6F, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x30, 0x20, 0x4D, 0x69, 0x63, 0x72,
|
||||
0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x43, 0x6F, 0x72, 0x70, 0x2E, 0x31, 0x23, 0x30, 0x21, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1A, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x43, 0x6F, 0x64, 0x65, 0x20, 0x53, 0x69, 0x67, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x50, 0x43, 0x41, 0x30, 0x1E, 0x17, 0x0D, 0x30, 0x32, 0x30, 0x35, 0x32, 0x35, 0x30, 0x30, 0x35, 0x35, 0x34, 0x38, 0x5A, 0x17, 0x0D, 0x30, 0x33, 0x31, 0x31, 0x32, 0x35, 0x30, 0x31, 0x30, 0x35, 0x34, 0x38, 0x5A, 0x30, 0x81, 0xA1, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x0A, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6E, 0x67, 0x74, 0x6F, 0x6E, 0x31, 0x10, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x52, 0x65, 0x64, 0x6D, 0x6F, 0x6E, 0x64, 0x31, 0x1E, 0x30, 0x1C, 0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, 0x15, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x43, 0x6F, 0x72, 0x70, 0x6F, 0x72, 0x61,
|
||||
0x74, 0x69, 0x6F, 0x6E, 0x31, 0x2B, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x0B, 0x13, 0x22, 0x43, 0x6F, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x32, 0x20, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x43, 0x6F, 0x72, 0x70, 0x2E, 0x31, 0x1E, 0x30, 0x1C, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x15, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x43, 0x6F, 0x72, 0x70, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0F, 0x00, 0x30, 0x82, 0x01, 0x0A, 0x02, 0x82, 0x01, 0x01, 0x00, 0xAA, 0x99, 0xBD, 0x39, 0xA8, 0x18, 0x27, 0xF4, 0x2B, 0x3D, 0x0B, 0x4C, 0x3F, 0x7C, 0x77, 0x2E, 0xA7, 0xCB, 0xB5, 0xD1, 0x8C, 0x0D, 0xC2, 0x3A, 0x74, 0xD7, 0x93, 0xB5, 0xE0, 0xA0, 0x4B, 0x3F, 0x59, 0x5E, 0xCE, 0x45, 0x4F, 0x9A, 0x79, 0x29, 0xF1, 0x49, 0xCC, 0x1A, 0x47, 0xEE, 0x55, 0xC2, 0x08,
|
||||
0x3E, 0x12, 0x20, 0xF8, 0x55, 0xF2, 0xEE, 0x5F, 0xD3, 0xE0, 0xCA, 0x96, 0xBC, 0x30, 0xDE, 0xFE, 0x58, 0xC8, 0x27, 0x32, 0xD0, 0x85, 0x54, 0xE8, 0xF0, 0x91, 0x10, 0xBB, 0xF3, 0x2B, 0xBE, 0x19, 0xE5, 0x03, 0x9B, 0x0B, 0x86, 0x1D, 0xF3, 0xB0, 0x39, 0x8C, 0xB8, 0xFD, 0x0B, 0x1D, 0x3C, 0x73, 0x26, 0xAC, 0x57, 0x2B, 0xCA, 0x29, 0xA2, 0x15, 0x90, 0x82, 0x15, 0xE2, 0x77, 0xA3, 0x40, 0x52, 0x03, 0x8B, 0x9D, 0xC2, 0x70, 0xBA, 0x1F, 0xE9, 0x34, 0xF6, 0xF3, 0x35, 0x92, 0x4E, 0x55, 0x83, 0xF8, 0xDA, 0x30, 0xB6, 0x20, 0xDE, 0x57, 0x06, 0xB5, 0x5A, 0x42, 0x06, 0xDE, 0x59, 0xCB, 0xF2, 0xDF, 0xA6, 0xBD, 0x15, 0x47, 0x71, 0x19, 0x25, 0x23, 0xD2, 0xCB, 0x6F, 0x9B, 0x19, 0x79, 0xDF, 0x6A, 0x5B, 0xF1, 0x76, 0x05, 0x79, 0x29, 0xFC, 0xC3, 0x56, 0xCA, 0x8F, 0x44, 0x08, 0x85, 0x55, 0x8A, 0xCB, 0xC8, 0x0F, 0x46, 0x4B, 0x55, 0xCB, 0x8C, 0x96, 0x77, 0x4A, 0x87, 0xE8, 0xA9, 0x41, 0x06, 0xC7, 0xFF, 0x0D, 0xE9, 0x68, 0x57, 0x63, 0x72, 0xC3, 0x69, 0x57, 0xB4, 0x43, 0xCF, 0x32, 0x3A, 0x30, 0xDC,
|
||||
0x1B, 0xE9, 0xD5, 0x43, 0x26, 0x2A, 0x79, 0xFE, 0x95, 0xDB, 0x22, 0x67, 0x24, 0xC9, 0x2F, 0xD0, 0x34, 0xE3, 0xE6, 0xFB, 0x51, 0x49, 0x86, 0xB8, 0x3C, 0xD0, 0x25, 0x5F, 0xD6, 0xEC, 0x9E, 0x03, 0x61, 0x87, 0xA9, 0x68, 0x40, 0xC7, 0xF8, 0xE2, 0x03, 0xE6, 0xCF, 0x05, 0x02, 0x03, 0x01, 0x00, 0x01, 0xA3, 0x82, 0x01, 0x40, 0x30, 0x82, 0x01, 0x3C, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x1D, 0x0F, 0x01, 0x01, 0xFF, 0x04, 0x04, 0x03, 0x02, 0x06, 0xC0, 0x30, 0x13, 0x06, 0x03, 0x55, 0x1D, 0x25, 0x04, 0x0C, 0x30, 0x0A, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x03, 0x30, 0x1D, 0x06, 0x03, 0x55, 0x1D, 0x0E, 0x04, 0x16, 0x04, 0x14, 0x6B, 0xC8, 0xC6, 0x51, 0x20, 0xF0, 0xB4, 0x2F, 0xD3, 0xA0, 0xB6, 0xAE, 0x7F, 0x5E, 0x26, 0xB2, 0xB8, 0x87, 0x52, 0x29, 0x30, 0x81, 0xA9, 0x06, 0x03, 0x55, 0x1D, 0x23, 0x04, 0x81, 0xA1, 0x30, 0x81, 0x9E, 0x80, 0x14, 0x29, 0x5C, 0xB9, 0x1B, 0xB6, 0xCD, 0x33, 0xEE, 0xBB, 0x9E, 0x59, 0x7D, 0xF7, 0xE5, 0xCA, 0x2E, 0xC4, 0x0D, 0x34, 0x28, 0xA1, 0x74,
|
||||
0xA4, 0x72, 0x30, 0x70, 0x31, 0x2B, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x0B, 0x13, 0x22, 0x43, 0x6F, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x63, 0x29, 0x20, 0x31, 0x39, 0x39, 0x37, 0x20, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x43, 0x6F, 0x72, 0x70, 0x2E, 0x31, 0x1E, 0x30, 0x1C, 0x06, 0x03, 0x55, 0x04, 0x0B, 0x13, 0x15, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x43, 0x6F, 0x72, 0x70, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x31, 0x21, 0x30, 0x1F, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x18, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x52, 0x6F, 0x6F, 0x74, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6F, 0x72, 0x69, 0x74, 0x79, 0x82, 0x10, 0x6A, 0x0B, 0x99, 0x4F, 0xC0, 0x00, 0xDE, 0xAA, 0x11, 0xD4, 0xD8, 0x40, 0x9A, 0xA8, 0xBE, 0xE6, 0x30, 0x4A, 0x06, 0x03, 0x55, 0x1D, 0x1F, 0x04, 0x43, 0x30, 0x41, 0x30, 0x3F, 0xA0, 0x3D, 0xA0, 0x3B, 0x86, 0x39, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x63, 0x72, 0x6C,
|
||||
0x2E, 0x6D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x70, 0x6B, 0x69, 0x2F, 0x63, 0x72, 0x6C, 0x2F, 0x70, 0x72, 0x6F, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2F, 0x43, 0x6F, 0x64, 0x65, 0x53, 0x69, 0x67, 0x6E, 0x50, 0x43, 0x41, 0x2E, 0x63, 0x72, 0x6C, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x35, 0x23, 0xFD, 0x13, 0x54, 0xFC, 0xE9, 0xDC, 0xF0, 0xDD, 0x0C, 0x14, 0x7A, 0xFA, 0xA7, 0xB3, 0xCE, 0xFD, 0xA7, 0x3A, 0xC8, 0xBA, 0xE5, 0xE7, 0xF6, 0x03, 0xFB, 0x53, 0xDB, 0xA7, 0x99, 0xA9, 0xA0, 0x9B, 0x36, 0x9C, 0x03, 0xEB, 0x82, 0x47, 0x1C, 0x21, 0xBD, 0x14, 0xCB, 0xE7, 0x67, 0x40, 0x09, 0xC7, 0x16, 0x91, 0x02, 0x55, 0xCE, 0x43, 0x42, 0xB4, 0xCD, 0x1B, 0x5D, 0xB0, 0xF3, 0x32, 0x04, 0x3D, 0x12, 0xE5, 0x1D, 0xA7, 0x07, 0xA7, 0x8F, 0xA3, 0x7E, 0x45, 0x55, 0x76, 0x1B, 0x96, 0x95, 0x91, 0x69, 0xF0, 0xDD, 0x38, 0xF3, 0x48, 0x89, 0xEF, 0x70, 0x40, 0xB7, 0xDB, 0xB5, 0x55,
|
||||
0x80, 0xC0, 0x03, 0xC4, 0x2E, 0xB6, 0x28, 0xDC, 0x0A, 0x82, 0x0E, 0xC7, 0x43, 0xE3, 0x7A, 0x48, 0x5D, 0xB8, 0x06, 0x89, 0x92, 0x40, 0x6C, 0x6E, 0xC5, 0xDC, 0xF8, 0x9A, 0xEF, 0x0B, 0xBE, 0x21, 0x0A, 0x8C, 0x2F, 0x3A, 0xB5, 0xED, 0xA7, 0xCE, 0x71, 0x87, 0x68, 0x23, 0xE1, 0xB3, 0xE4, 0x18, 0x7D, 0xB8, 0x47, 0x01, 0xA5, 0x2B, 0xC4, 0x58, 0xCB, 0xB2, 0x89, 0x6C, 0x5F, 0xFD, 0xD3, 0x2C, 0xC4, 0x6F, 0xB8, 0x23, 0xB2, 0x0D, 0xFF, 0x3C, 0xF2, 0x11, 0x45, 0x74, 0xF2, 0x09, 0x06, 0x99, 0x18, 0xDD, 0x6F, 0xC0, 0x86, 0x01, 0x18, 0x12, 0x1D, 0x2B, 0x16, 0xAF, 0x56, 0xEF, 0x65, 0x33, 0xA1, 0xEA, 0x67, 0x4E, 0xF4, 0x4B, 0x82, 0xAB, 0xE9, 0x0F, 0xDC, 0x01, 0xFA, 0xDF, 0x60, 0x7F, 0x66, 0x47, 0x5D, 0xCB, 0x2C, 0x70, 0xCC, 0x7B, 0x4E, 0xD9, 0x06, 0xB8, 0x6E, 0x8C, 0x0C, 0xFE, 0x62, 0x1E, 0x42, 0xF9, 0x93, 0x7C, 0xA2, 0xAB, 0x0A, 0x9E, 0xD0, 0x23, 0x10, 0xAE, 0x4D, 0x7B, 0x27, 0x91, 0x6F, 0x26, 0xBE, 0x68, 0xFA, 0xA6, 0x3F, 0x9F, 0x23, 0xEB, 0xC8, 0x9D, 0xBB, 0x87 };
|
||||
|
||||
static X509Certificate x509;
|
||||
|
||||
[TestFixtureSetUp]
|
||||
public void FixtureSetUp ()
|
||||
{
|
||||
x509 = new X509Certificate (msSpCert);
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException (typeof (ArgumentNullException))]
|
||||
public void NullConstructor ()
|
||||
{
|
||||
PublisherMembershipCondition pmc = new PublisherMembershipCondition (null);
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException (typeof (ArgumentNullException))]
|
||||
public void NullCertificate ()
|
||||
{
|
||||
PublisherMembershipCondition pmc = new PublisherMembershipCondition (x509);
|
||||
pmc.Certificate = null;
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException (typeof (ArgumentException))]
|
||||
public void InvalidConstructor ()
|
||||
{
|
||||
byte[] n = null;
|
||||
// having an empty certificate always break down things
|
||||
X509Certificate x509 = new X509Certificate (n);
|
||||
PublisherMembershipCondition pmc = new PublisherMembershipCondition (x509);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Constructor ()
|
||||
{
|
||||
PublisherMembershipCondition pmc = new PublisherMembershipCondition (x509);
|
||||
Assert.IsTrue (pmc.Certificate.Equals (x509), "Certificate");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Check ()
|
||||
{
|
||||
PublisherMembershipCondition pmc = new PublisherMembershipCondition (x509);
|
||||
Publisher p = new Publisher (x509);
|
||||
|
||||
Evidence e = null;
|
||||
Assert.IsFalse (pmc.Check (e), "Check (null)");
|
||||
e = new Evidence ();
|
||||
Assert.IsFalse (pmc.Check (e), "Check (empty)");
|
||||
e.AddHost (new Zone (SecurityZone.MyComputer));
|
||||
Assert.IsFalse (pmc.Check (e), "Check (zone)");
|
||||
e.AddAssembly (p);
|
||||
Assert.IsFalse (pmc.Check (e), "Check (x509-assembly)");
|
||||
|
||||
e = new Evidence ();
|
||||
e.AddHost (p);
|
||||
Assert.IsTrue (pmc.Check (e), "Check (x509-host)");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Copy ()
|
||||
{
|
||||
PublisherMembershipCondition pmc = new PublisherMembershipCondition (x509);
|
||||
PublisherMembershipCondition pmcCopy = (PublisherMembershipCondition) pmc.Copy ();
|
||||
|
||||
Assert.IsNotNull (pmcCopy.Certificate, "Copy-Cert");
|
||||
Assert.IsTrue (pmc.Equals (pmcCopy), "Copy-Equals");
|
||||
Assert.AreEqual (pmc.GetHashCode (), pmcCopy.GetHashCode (), "Copy-GetHashCode");
|
||||
Assert.AreEqual (pmc.ToString (), pmcCopy.ToString (), "Copy-ToString");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Equals ()
|
||||
{
|
||||
PublisherMembershipCondition pmc = new PublisherMembershipCondition (x509);
|
||||
Assert.IsFalse (pmc.Equals (null), "Equals(null)");
|
||||
Assert.IsFalse (pmc.Equals (new object ()), "Equals (object)");
|
||||
|
||||
PublisherMembershipCondition p2 = new PublisherMembershipCondition (x509);
|
||||
Assert.IsTrue (pmc.Equals (p2), "Equals(p2)");
|
||||
Assert.IsTrue (p2.Equals (pmc), "Equals(hash)");
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException (typeof (ArgumentNullException))]
|
||||
public void FromXml_Null ()
|
||||
{
|
||||
PublisherMembershipCondition pmc = new PublisherMembershipCondition (x509);
|
||||
pmc.FromXml (null);
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException (typeof (ArgumentException))]
|
||||
public void FromXml_Invalid ()
|
||||
{
|
||||
PublisherMembershipCondition pmc = new PublisherMembershipCondition (x509);
|
||||
SecurityElement se = pmc.ToXml ();
|
||||
se.Tag = "IMonoship";
|
||||
pmc.FromXml (se);
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException (typeof (ArgumentException))]
|
||||
public void FromXml_InvalidTag ()
|
||||
{
|
||||
PublisherMembershipCondition pmc = new PublisherMembershipCondition (x509);
|
||||
SecurityElement se = pmc.ToXml ();
|
||||
se.Tag = "IMonoship";
|
||||
pmc.FromXml (se);
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException (typeof (ArgumentException))]
|
||||
public void FromXml_WrongTagCase ()
|
||||
{
|
||||
PublisherMembershipCondition pmc = new PublisherMembershipCondition (x509);
|
||||
SecurityElement se = pmc.ToXml ();
|
||||
se.Tag = "IMEMBERSHIPCONDITION"; // instehash of IMembershipCondition
|
||||
pmc.FromXml (se);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void FromXml_InvalidClass ()
|
||||
{
|
||||
PublisherMembershipCondition pmc = new PublisherMembershipCondition (x509);
|
||||
SecurityElement se = pmc.ToXml ();
|
||||
se.Attributes ["class"] = "Hello world";
|
||||
pmc.FromXml (se);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void FromXml_NoClass ()
|
||||
{
|
||||
PublisherMembershipCondition pmc = new PublisherMembershipCondition (x509);
|
||||
SecurityElement se = pmc.ToXml ();
|
||||
|
||||
SecurityElement w = new SecurityElement (se.Tag);
|
||||
w.AddAttribute ("version", se.Attribute ("version"));
|
||||
pmc.FromXml (w);
|
||||
// doesn't even care of the class attribute presence
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void FromXml_InvalidVersion ()
|
||||
{
|
||||
PublisherMembershipCondition pmc = new PublisherMembershipCondition (x509);
|
||||
SecurityElement se = pmc.ToXml ();
|
||||
|
||||
SecurityElement w = new SecurityElement (se.Tag);
|
||||
w.AddAttribute ("class", se.Attribute ("class"));
|
||||
w.AddAttribute ("version", "2");
|
||||
pmc.FromXml (w);
|
||||
// doesn't seems to care about the version number!
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void FromXml_NoVersion ()
|
||||
{
|
||||
PublisherMembershipCondition pmc = new PublisherMembershipCondition (x509);
|
||||
SecurityElement se = pmc.ToXml ();
|
||||
|
||||
SecurityElement w = new SecurityElement (se.Tag);
|
||||
w.AddAttribute ("class", se.Attribute ("class"));
|
||||
pmc.FromXml (w);
|
||||
}
|
||||
|
||||
[Test]
|
||||
#if MOBILE
|
||||
[Ignore]
|
||||
#endif
|
||||
[ExpectedException (typeof (ArgumentNullException))]
|
||||
public void FromXml_SecurityElementNull ()
|
||||
{
|
||||
PublisherMembershipCondition pmc = new PublisherMembershipCondition (x509);
|
||||
pmc.FromXml (null, PolicyLevel.CreateAppDomainLevel ());
|
||||
}
|
||||
|
||||
[Test]
|
||||
#if MOBILE
|
||||
[ExpectedException (typeof (NotSupportedException))]
|
||||
#endif
|
||||
public void FromXml_PolicyLevel ()
|
||||
{
|
||||
PublisherMembershipCondition pmc = new PublisherMembershipCondition (x509);
|
||||
SecurityElement se = pmc.ToXml ();
|
||||
// is it accepted for all policy levels ?
|
||||
IEnumerator e = SecurityManager.PolicyHierarchy ();
|
||||
while (e.MoveNext ())
|
||||
{
|
||||
PolicyLevel pl = e.Current as PolicyLevel;
|
||||
pmc.FromXml (se, pl);
|
||||
Assert.IsTrue (x509.Equals (pmc.Certificate), "FromXml(PolicyLevel='" + pl.Label + "')");
|
||||
}
|
||||
// yes!
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetHashCode_ ()
|
||||
{
|
||||
PublisherMembershipCondition pmc = new PublisherMembershipCondition (x509);
|
||||
PublisherMembershipCondition copy = (PublisherMembershipCondition)pmc.Copy ();
|
||||
Assert.AreEqual (pmc.GetHashCode (), copy.GetHashCode (), "GetHashCode");
|
||||
Assert.AreEqual (x509.GetHashCode (), pmc.GetHashCode (), "GetHashCode-X509Certificate");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ToString_ ()
|
||||
{
|
||||
PublisherMembershipCondition pmc = new PublisherMembershipCondition (x509);
|
||||
string s = "Publisher - 3082010A0282010100AA99BD39A81827F42B3D0B4C3F7C772EA7CBB5D18C0DC23A74D793B5E0A04B3F595ECE454F9A7929F149CC1A47EE55C2083E1220F855F2EE5FD3E0CA96BC30DEFE58C82732D08554E8F09110BBF32BBE19E5039B0B861DF3B0398CB8FD0B1D3C7326AC572BCA29A215908215E277A34052038B9DC270BA1FE934F6F335924E5583F8DA30B620DE5706B55A4206DE59CBF2DFA6BD154771192523D2CB6F9B1979DF6A5BF176057929FCC356CA8F440885558ACBC80F464B55CB8C96774A87E8A94106C7FF0DE968576372C36957B443CF323A30DC1BE9D543262A79FE95DB226724C92FD034E3E6FB514986B83CD0255FD6EC9E036187A96840C7F8E203E6CF050203010001";
|
||||
Assert.AreEqual (s, pmc.ToString (), "ToString");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ToXml_Null ()
|
||||
{
|
||||
PublisherMembershipCondition pmc = new PublisherMembershipCondition (x509);
|
||||
// no ArgumentNullException here
|
||||
SecurityElement se = pmc.ToXml (null);
|
||||
Assert.IsNotNull (se, "ToXml(null)");
|
||||
}
|
||||
|
||||
[Test]
|
||||
#if MOBILE
|
||||
[ExpectedException (typeof (NotSupportedException))]
|
||||
#endif
|
||||
public void ToXmlPolicyLevel ()
|
||||
{
|
||||
PublisherMembershipCondition pmc = new PublisherMembershipCondition (x509);
|
||||
string s = pmc.ToXml ().ToString ();
|
||||
// are they all the same ?
|
||||
IEnumerator e = SecurityManager.PolicyHierarchy ();
|
||||
while (e.MoveNext ()) {
|
||||
PolicyLevel pl = e.Current as PolicyLevel;
|
||||
Assert.AreEqual (s, pmc.ToXml (pl).ToString (), "ToXml(PolicyLevel='" + pl.Label + "')");
|
||||
}
|
||||
// yes!
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ToFromXmlRoundTrip ()
|
||||
{
|
||||
PublisherMembershipCondition pmc = new PublisherMembershipCondition (x509);
|
||||
SecurityElement se = pmc.ToXml ();
|
||||
|
||||
string expectedXmlFragment = "X509Certificate=\"3082050F308203F7A003020102020A61071143000000000034300D06092A864886F70D01010505003081A6310B3009060355040613025553311330110603550408130A57617368696E67746F6E3110300E060355040713075265646D6F6E64311E301C060355040A13154D6963726F736F667420436F72706F726174696F6E312B3029060355040B1322436F7079726967687420";
|
||||
expectedXmlFragment += "2863292032303030204D6963726F736F667420436F72702E312330210603550403131A4D6963726F736F667420436F6465205369676E696E6720504341301E170D3032303532353030353534385A170D3033313132353031303534385A3081A1310B3009060355040613025553311330110603550408130A57617368696E67746F6E3110300E060355040713075265646D6F6E64311E301C060355040A13154D6963726F736F667420436F72706F726174696F6E312B3029060355040B1322436F70797269676874202863292032303032204D6963726F736F667420436F72702E311E301C060355040313154D6963726F736F667420436F72706F726174696F6E30820122300D06092A864886F70D010101";
|
||||
expectedXmlFragment += "05000382010F003082010A0282010100AA99BD39A81827F42B3D0B4C3F7C772EA7CBB5D18C0DC23A74D793B5E0A04B3F595ECE454F9A7929F149CC1A47EE55C2083E1220F855F2EE5FD3E0CA96BC30DEFE58C82732D08554E8F09110BBF32BBE19E5039B0B861DF3B0398CB8FD0B1D3C7326AC572BCA29A215908215E277A34052038B9DC270BA1FE934F6F335924E5583F8DA30B620DE5706B55A4206DE59CBF2DFA6BD154771192523D2CB6F9B1979DF6A5BF176057929FCC356CA8F440885558ACBC80F464B55CB8C96774A87E8A94106C7FF0DE968576372C36957B443CF323A30DC1BE9D543262A79FE95DB226724C92FD034E3E6FB514986B83CD0255FD6EC9E036187A96840C7F8E203E6CF050203";
|
||||
expectedXmlFragment += "010001A38201403082013C300E0603551D0F0101FF0404030206C030130603551D25040C300A06082B06010505070303301D0603551D0E041604146BC8C65120F0B42FD3A0B6AE7F5E26B2B88752293081A90603551D230481A130819E8014295CB91BB6CD33EEBB9E597DF7E5CA2EC40D3428A174A4723070312B3029060355040B1322436F70797269676874202863292031393937204D6963726F736F667420436F72702E311E301C060355040B13154D6963726F736F667420436F72706F726174696F6E3121301F060355040313184D6963726F736F667420526F6F7420417574686F7269747982106A0B994FC000DEAA11D4D8409AA8BEE6304A0603551D1F04433041303FA03DA03B863968747470";
|
||||
expectedXmlFragment += "3A2F2F63726C2E6D6963726F736F66742E636F6D2F706B692F63726C2F70726F64756374732F436F64655369676E5043412E63726C300D06092A864886F70D010105050003820101003523FD1354FCE9DCF0DD0C147AFAA7B3CEFDA73AC8BAE5E7F603FB53DBA799A9A09B369C03EB82471C21BD14CBE7674009C716910255CE4342B4CD1B5DB0F332043D12E51DA707A78FA37E4555761B96959169F0DD38F34889EF7040B7DBB55580C003C42EB628DC0A820EC743E37A485DB8068992406C6EC5DCF89AEF0BBE210A8C2F3AB5EDA7CE71876823E1B3E4187DB84701A52BC458CBB2896C5FFDD32CC46FB823B20DFF3CF2114574F209069918DD6FC0860118121D2B16AF56EF6533A1EA674EF44B82ABE9";
|
||||
expectedXmlFragment += "0FDC01FADF607F66475DCB2C70CC7B4ED906B86E8C0CFE621E42F9937CA2AB0A9ED02310AE4D7B27916F26BE68FAA63F9F23EBC89DBB87\"/>{0}";
|
||||
expectedXmlFragment = String.Format (expectedXmlFragment, Environment.NewLine);
|
||||
Assert.AreEqual ("IMembershipCondition", se.Tag, "ToXml().Tag");
|
||||
Assert.IsTrue (se.ToString ().EndsWith (expectedXmlFragment), "ToXml().ToString()");
|
||||
|
||||
pmc.FromXml (se);
|
||||
Assert.AreEqual (x509.GetHashCode (), pmc.Certificate.GetHashCode (), "XmlCertificate");
|
||||
}
|
||||
}
|
||||
}
|
@ -1,111 +0,0 @@
|
||||
//
|
||||
// PublisherTest.cs - NUnit Test Cases for Publisher
|
||||
//
|
||||
// Author:
|
||||
// Sebastien Pouliot <sebastien@ximian.com>
|
||||
//
|
||||
// (C) 2002, 2003 Motus Technologies Inc. (http://www.motus.com)
|
||||
// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining
|
||||
// a copy of this software and associated documentation files (the
|
||||
// "Software"), to deal in the Software without restriction, including
|
||||
// without limitation the rights to use, copy, modify, merge, publish,
|
||||
// distribute, sublicense, and/or sell copies of the Software, and to
|
||||
// permit persons to whom the Software is furnished to do so, subject to
|
||||
// the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be
|
||||
// included in all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
|
||||
using NUnit.Framework;
|
||||
using System;
|
||||
using System.Security;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using System.Security.Permissions;
|
||||
using System.Security.Policy;
|
||||
|
||||
namespace MonoTests.System.Security.Policy {
|
||||
|
||||
[TestFixture]
|
||||
public class PublisherTest {
|
||||
|
||||
static byte[] msSpCert = { 0x30, 0x82, 0x05, 0x0F, 0x30, 0x82, 0x03, 0xF7, 0xA0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x0A, 0x61, 0x07, 0x11, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81, 0xA6, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x0A, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6E, 0x67, 0x74, 0x6F, 0x6E, 0x31, 0x10, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x52, 0x65, 0x64, 0x6D, 0x6F, 0x6E, 0x64, 0x31, 0x1E, 0x30, 0x1C, 0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, 0x15, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x43, 0x6F, 0x72, 0x70, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x31, 0x2B, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x0B, 0x13, 0x22, 0x43, 0x6F, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x30, 0x20, 0x4D, 0x69, 0x63, 0x72,
|
||||
0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x43, 0x6F, 0x72, 0x70, 0x2E, 0x31, 0x23, 0x30, 0x21, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1A, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x43, 0x6F, 0x64, 0x65, 0x20, 0x53, 0x69, 0x67, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x50, 0x43, 0x41, 0x30, 0x1E, 0x17, 0x0D, 0x30, 0x32, 0x30, 0x35, 0x32, 0x35, 0x30, 0x30, 0x35, 0x35, 0x34, 0x38, 0x5A, 0x17, 0x0D, 0x30, 0x33, 0x31, 0x31, 0x32, 0x35, 0x30, 0x31, 0x30, 0x35, 0x34, 0x38, 0x5A, 0x30, 0x81, 0xA1, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x0A, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6E, 0x67, 0x74, 0x6F, 0x6E, 0x31, 0x10, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x52, 0x65, 0x64, 0x6D, 0x6F, 0x6E, 0x64, 0x31, 0x1E, 0x30, 0x1C, 0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, 0x15, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x43, 0x6F, 0x72, 0x70, 0x6F, 0x72, 0x61,
|
||||
0x74, 0x69, 0x6F, 0x6E, 0x31, 0x2B, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x0B, 0x13, 0x22, 0x43, 0x6F, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x32, 0x20, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x43, 0x6F, 0x72, 0x70, 0x2E, 0x31, 0x1E, 0x30, 0x1C, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x15, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x43, 0x6F, 0x72, 0x70, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0F, 0x00, 0x30, 0x82, 0x01, 0x0A, 0x02, 0x82, 0x01, 0x01, 0x00, 0xAA, 0x99, 0xBD, 0x39, 0xA8, 0x18, 0x27, 0xF4, 0x2B, 0x3D, 0x0B, 0x4C, 0x3F, 0x7C, 0x77, 0x2E, 0xA7, 0xCB, 0xB5, 0xD1, 0x8C, 0x0D, 0xC2, 0x3A, 0x74, 0xD7, 0x93, 0xB5, 0xE0, 0xA0, 0x4B, 0x3F, 0x59, 0x5E, 0xCE, 0x45, 0x4F, 0x9A, 0x79, 0x29, 0xF1, 0x49, 0xCC, 0x1A, 0x47, 0xEE, 0x55, 0xC2, 0x08,
|
||||
0x3E, 0x12, 0x20, 0xF8, 0x55, 0xF2, 0xEE, 0x5F, 0xD3, 0xE0, 0xCA, 0x96, 0xBC, 0x30, 0xDE, 0xFE, 0x58, 0xC8, 0x27, 0x32, 0xD0, 0x85, 0x54, 0xE8, 0xF0, 0x91, 0x10, 0xBB, 0xF3, 0x2B, 0xBE, 0x19, 0xE5, 0x03, 0x9B, 0x0B, 0x86, 0x1D, 0xF3, 0xB0, 0x39, 0x8C, 0xB8, 0xFD, 0x0B, 0x1D, 0x3C, 0x73, 0x26, 0xAC, 0x57, 0x2B, 0xCA, 0x29, 0xA2, 0x15, 0x90, 0x82, 0x15, 0xE2, 0x77, 0xA3, 0x40, 0x52, 0x03, 0x8B, 0x9D, 0xC2, 0x70, 0xBA, 0x1F, 0xE9, 0x34, 0xF6, 0xF3, 0x35, 0x92, 0x4E, 0x55, 0x83, 0xF8, 0xDA, 0x30, 0xB6, 0x20, 0xDE, 0x57, 0x06, 0xB5, 0x5A, 0x42, 0x06, 0xDE, 0x59, 0xCB, 0xF2, 0xDF, 0xA6, 0xBD, 0x15, 0x47, 0x71, 0x19, 0x25, 0x23, 0xD2, 0xCB, 0x6F, 0x9B, 0x19, 0x79, 0xDF, 0x6A, 0x5B, 0xF1, 0x76, 0x05, 0x79, 0x29, 0xFC, 0xC3, 0x56, 0xCA, 0x8F, 0x44, 0x08, 0x85, 0x55, 0x8A, 0xCB, 0xC8, 0x0F, 0x46, 0x4B, 0x55, 0xCB, 0x8C, 0x96, 0x77, 0x4A, 0x87, 0xE8, 0xA9, 0x41, 0x06, 0xC7, 0xFF, 0x0D, 0xE9, 0x68, 0x57, 0x63, 0x72, 0xC3, 0x69, 0x57, 0xB4, 0x43, 0xCF, 0x32, 0x3A, 0x30, 0xDC,
|
||||
0x1B, 0xE9, 0xD5, 0x43, 0x26, 0x2A, 0x79, 0xFE, 0x95, 0xDB, 0x22, 0x67, 0x24, 0xC9, 0x2F, 0xD0, 0x34, 0xE3, 0xE6, 0xFB, 0x51, 0x49, 0x86, 0xB8, 0x3C, 0xD0, 0x25, 0x5F, 0xD6, 0xEC, 0x9E, 0x03, 0x61, 0x87, 0xA9, 0x68, 0x40, 0xC7, 0xF8, 0xE2, 0x03, 0xE6, 0xCF, 0x05, 0x02, 0x03, 0x01, 0x00, 0x01, 0xA3, 0x82, 0x01, 0x40, 0x30, 0x82, 0x01, 0x3C, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x1D, 0x0F, 0x01, 0x01, 0xFF, 0x04, 0x04, 0x03, 0x02, 0x06, 0xC0, 0x30, 0x13, 0x06, 0x03, 0x55, 0x1D, 0x25, 0x04, 0x0C, 0x30, 0x0A, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x03, 0x30, 0x1D, 0x06, 0x03, 0x55, 0x1D, 0x0E, 0x04, 0x16, 0x04, 0x14, 0x6B, 0xC8, 0xC6, 0x51, 0x20, 0xF0, 0xB4, 0x2F, 0xD3, 0xA0, 0xB6, 0xAE, 0x7F, 0x5E, 0x26, 0xB2, 0xB8, 0x87, 0x52, 0x29, 0x30, 0x81, 0xA9, 0x06, 0x03, 0x55, 0x1D, 0x23, 0x04, 0x81, 0xA1, 0x30, 0x81, 0x9E, 0x80, 0x14, 0x29, 0x5C, 0xB9, 0x1B, 0xB6, 0xCD, 0x33, 0xEE, 0xBB, 0x9E, 0x59, 0x7D, 0xF7, 0xE5, 0xCA, 0x2E, 0xC4, 0x0D, 0x34, 0x28, 0xA1, 0x74,
|
||||
0xA4, 0x72, 0x30, 0x70, 0x31, 0x2B, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x0B, 0x13, 0x22, 0x43, 0x6F, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x63, 0x29, 0x20, 0x31, 0x39, 0x39, 0x37, 0x20, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x43, 0x6F, 0x72, 0x70, 0x2E, 0x31, 0x1E, 0x30, 0x1C, 0x06, 0x03, 0x55, 0x04, 0x0B, 0x13, 0x15, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x43, 0x6F, 0x72, 0x70, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x31, 0x21, 0x30, 0x1F, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x18, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x52, 0x6F, 0x6F, 0x74, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6F, 0x72, 0x69, 0x74, 0x79, 0x82, 0x10, 0x6A, 0x0B, 0x99, 0x4F, 0xC0, 0x00, 0xDE, 0xAA, 0x11, 0xD4, 0xD8, 0x40, 0x9A, 0xA8, 0xBE, 0xE6, 0x30, 0x4A, 0x06, 0x03, 0x55, 0x1D, 0x1F, 0x04, 0x43, 0x30, 0x41, 0x30, 0x3F, 0xA0, 0x3D, 0xA0, 0x3B, 0x86, 0x39, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x63, 0x72, 0x6C,
|
||||
0x2E, 0x6D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x70, 0x6B, 0x69, 0x2F, 0x63, 0x72, 0x6C, 0x2F, 0x70, 0x72, 0x6F, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2F, 0x43, 0x6F, 0x64, 0x65, 0x53, 0x69, 0x67, 0x6E, 0x50, 0x43, 0x41, 0x2E, 0x63, 0x72, 0x6C, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x35, 0x23, 0xFD, 0x13, 0x54, 0xFC, 0xE9, 0xDC, 0xF0, 0xDD, 0x0C, 0x14, 0x7A, 0xFA, 0xA7, 0xB3, 0xCE, 0xFD, 0xA7, 0x3A, 0xC8, 0xBA, 0xE5, 0xE7, 0xF6, 0x03, 0xFB, 0x53, 0xDB, 0xA7, 0x99, 0xA9, 0xA0, 0x9B, 0x36, 0x9C, 0x03, 0xEB, 0x82, 0x47, 0x1C, 0x21, 0xBD, 0x14, 0xCB, 0xE7, 0x67, 0x40, 0x09, 0xC7, 0x16, 0x91, 0x02, 0x55, 0xCE, 0x43, 0x42, 0xB4, 0xCD, 0x1B, 0x5D, 0xB0, 0xF3, 0x32, 0x04, 0x3D, 0x12, 0xE5, 0x1D, 0xA7, 0x07, 0xA7, 0x8F, 0xA3, 0x7E, 0x45, 0x55, 0x76, 0x1B, 0x96, 0x95, 0x91, 0x69, 0xF0, 0xDD, 0x38, 0xF3, 0x48, 0x89, 0xEF, 0x70, 0x40, 0xB7, 0xDB, 0xB5, 0x55,
|
||||
0x80, 0xC0, 0x03, 0xC4, 0x2E, 0xB6, 0x28, 0xDC, 0x0A, 0x82, 0x0E, 0xC7, 0x43, 0xE3, 0x7A, 0x48, 0x5D, 0xB8, 0x06, 0x89, 0x92, 0x40, 0x6C, 0x6E, 0xC5, 0xDC, 0xF8, 0x9A, 0xEF, 0x0B, 0xBE, 0x21, 0x0A, 0x8C, 0x2F, 0x3A, 0xB5, 0xED, 0xA7, 0xCE, 0x71, 0x87, 0x68, 0x23, 0xE1, 0xB3, 0xE4, 0x18, 0x7D, 0xB8, 0x47, 0x01, 0xA5, 0x2B, 0xC4, 0x58, 0xCB, 0xB2, 0x89, 0x6C, 0x5F, 0xFD, 0xD3, 0x2C, 0xC4, 0x6F, 0xB8, 0x23, 0xB2, 0x0D, 0xFF, 0x3C, 0xF2, 0x11, 0x45, 0x74, 0xF2, 0x09, 0x06, 0x99, 0x18, 0xDD, 0x6F, 0xC0, 0x86, 0x01, 0x18, 0x12, 0x1D, 0x2B, 0x16, 0xAF, 0x56, 0xEF, 0x65, 0x33, 0xA1, 0xEA, 0x67, 0x4E, 0xF4, 0x4B, 0x82, 0xAB, 0xE9, 0x0F, 0xDC, 0x01, 0xFA, 0xDF, 0x60, 0x7F, 0x66, 0x47, 0x5D, 0xCB, 0x2C, 0x70, 0xCC, 0x7B, 0x4E, 0xD9, 0x06, 0xB8, 0x6E, 0x8C, 0x0C, 0xFE, 0x62, 0x1E, 0x42, 0xF9, 0x93, 0x7C, 0xA2, 0xAB, 0x0A, 0x9E, 0xD0, 0x23, 0x10, 0xAE, 0x4D, 0x7B, 0x27, 0x91, 0x6F, 0x26, 0xBE, 0x68, 0xFA, 0xA6, 0x3F, 0x9F, 0x23, 0xEB, 0xC8, 0x9D, 0xBB, 0x87 };
|
||||
|
||||
[Test]
|
||||
[ExpectedException (typeof (ArgumentNullException))]
|
||||
public void NullConstructor ()
|
||||
{
|
||||
Publisher p = new Publisher (null);
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException (typeof (ArgumentException))]
|
||||
public void EmptyCertificateConstructor ()
|
||||
{
|
||||
byte[] n = null;
|
||||
X509Certificate x509 = new X509Certificate (n);
|
||||
Publisher p = new Publisher (x509);
|
||||
|
||||
Assert.AreEqual (x509.GetHashCode (), p.GetHashCode (), "GetHashCode");
|
||||
Assert.AreEqual ("<System.Security.Policy.Publisher version=\"1\">" + Environment.NewLine + " <X509v3Certificate/>" + Environment.NewLine + "</System.Security.Policy.Publisher>" + Environment.NewLine, p.ToString (), "ToString");
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException (typeof (ArgumentException))]
|
||||
public void EmptyCertificateConstructor2 ()
|
||||
{
|
||||
byte[] n = null;
|
||||
X509Certificate x509 = new X509Certificate (n);
|
||||
Publisher p = new Publisher (x509);
|
||||
x509 = p.Certificate;
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Constructor ()
|
||||
{
|
||||
X509Certificate x509 = new X509Certificate (msSpCert);
|
||||
Publisher p = new Publisher (x509);
|
||||
|
||||
Assert.AreEqual (x509.GetHashCode (), p.GetHashCode (), "GetHashCode");
|
||||
|
||||
IPermission ip = p.CreateIdentityPermission (null);
|
||||
Assert.IsTrue ((ip is PublisherIdentityPermission), "CreateIdentityPermission");
|
||||
|
||||
string s = "<System.Security.Policy.Publisher version=\"1\">" + Environment.NewLine;
|
||||
s += "<X509v3Certificate>3082050F308203F7A003020102020A61071143000000000034300D06092A864886F70D01010505003081A6310B3009060355040613025553311330110603550408130A57617368696E67746F6E3110300E060355040713075265646D6F6E64311E301C060355040A13154D6963726F736F667420436F72706F726174696F6E312B3029060355040B1322436F70797269676874202863292032303030204D6963726F736F667420436F72702E312330210603550403131A4D6963726F736F667420436F6465205369676E696E6720504341301E170D3032303532353030353534385A170D3033313132353031303534385A3081A1310B3009060355040613025553311330110603550408130A57617368696E67746F6E3110300E060355040713075265646D6F6E64311E301C060355040A13154D6963726F736F667420436F72706F726174696F6E312B3029060355040B1322436F70797269676874202863292032303032204D6963726F736F667420436F72702E311E301C060355040313154D6963726F736F667420436F72706F726174696F6E30820122300D06092A864886F70D01010105000382010F003082010A0282010100AA99BD39A81827F42B3D0B4C3F";
|
||||
s += "7C772EA7CBB5D18C0DC23A74D793B5E0A04B3F595ECE454F9A7929F149CC1A47EE55C2083E1220F855F2EE5FD3E0CA96BC30DEFE58C82732D08554E8F09110BBF32BBE19E5039B0B861DF3B0398CB8FD0B1D3C7326AC572BCA29A215908215E277A34052038B9DC270BA1FE934F6F335924E5583F8DA30B620DE5706B55A4206DE59CBF2DFA6BD154771192523D2CB6F9B1979DF6A5BF176057929FCC356CA8F440885558ACBC80F464B55CB8C96774A87E8A94106C7FF0DE968576372C36957B443CF323A30DC1BE9D543262A79FE95DB226724C92FD034E3E6FB514986B83CD0255FD6EC9E036187A96840C7F8E203E6CF050203010001A38201403082013C300E0603551D0F0101FF0404030206C030130603551D25040C300A06082B06010505070303301D0603551D0E041604146BC8C65120F0B42FD3A0B6AE7F5E26B2B88752293081A90603551D230481A130819E8014295CB91BB6CD33EEBB9E597DF7E5CA2EC40D3428A174A4723070312B3029060355040B1322436F70797269676874202863292031393937204D6963726F736F667420436F72702E311E301C060355040B13154D6963726F736F667420436F72706F726174696F6E3121301F060355040313184D6963726F736F667420526F6F7420417574686F7269747982106A0B994FC000DEAA11D4D8";
|
||||
s += "409AA8BEE6304A0603551D1F04433041303FA03DA03B8639687474703A2F2F63726C2E6D6963726F736F66742E636F6D2F706B692F63726C2F70726F64756374732F436F64655369676E5043412E63726C300D06092A864886F70D010105050003820101003523FD1354FCE9DCF0DD0C147AFAA7B3CEFDA73AC8BAE5E7F603FB53DBA799A9A09B369C03EB82471C21BD14CBE7674009C716910255CE4342B4CD1B5DB0F332043D12E51DA707A78FA37E4555761B96959169F0DD38F34889EF7040B7DBB55580C003C42EB628DC0A820EC743E37A485DB8068992406C6EC5DCF89AEF0BBE210A8C2F3AB5EDA7CE71876823E1B3E4187DB84701A52BC458CBB2896C5FFDD32CC46FB823B20DFF3CF2114574F209069918DD6FC0860118121D2B16AF56EF6533A1EA674EF44B82ABE90FDC01FADF607F66475DCB2C70CC7B4ED906B86E8C0CFE621E42F9937CA2AB0A9ED02310AE4D7B27916F26BE68FAA63F9F23EBC89DBB87</X509v3Certificate>" + Environment.NewLine + "</System.Security.Policy.Publisher>" + Environment.NewLine;
|
||||
Assert.AreEqual (s, p.ToString (), "ToString");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Copy ()
|
||||
{
|
||||
X509Certificate x509 = new X509Certificate (msSpCert);
|
||||
Publisher p = new Publisher (x509);
|
||||
Publisher pCopy = (Publisher) p.Copy ();
|
||||
|
||||
Assert.IsNotNull (pCopy.Certificate, "Copy-Cert");
|
||||
Assert.IsTrue (p.Equals (pCopy), "Copy-Equals");
|
||||
Assert.AreEqual (p.GetHashCode (), pCopy.GetHashCode (), "Copy-GetHashCode");
|
||||
Assert.AreEqual (p.ToString (), pCopy.ToString (), "Copy-ToString");
|
||||
}
|
||||
}
|
||||
}
|
@ -13,6 +13,8 @@ using System;
|
||||
using System.Collections;
|
||||
using System.Runtime.Serialization;
|
||||
|
||||
using System.Reflection;
|
||||
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace MonoTests.System
|
||||
@ -400,6 +402,79 @@ namespace MonoTests.System
|
||||
Assert.IsNull (a.InnerException.Source);
|
||||
}
|
||||
|
||||
#if !MOBILE
|
||||
// Ensure that we can convert a stacktrace to a
|
||||
// telemetry message
|
||||
//
|
||||
[Test]
|
||||
[Category("NotOnWindows")]
|
||||
public void StacktraceToState ()
|
||||
{
|
||||
try {
|
||||
throw new Exception ("#0");
|
||||
} catch (Exception exc) {
|
||||
var monoType = Type.GetType ("Mono.Runtime", false);
|
||||
var convert = monoType.GetMethod("ExceptionToState", BindingFlags.NonPublic | BindingFlags.Static);
|
||||
object [] convert_params = new object[] {exc};
|
||||
var output = (Tuple<String, ulong, ulong>) convert.Invoke(null, convert_params);
|
||||
|
||||
var dump = output.Item1;
|
||||
var portable_hash = output.Item2;
|
||||
var unportable_hash = output.Item3;
|
||||
|
||||
Assert.IsTrue (portable_hash != 0, "#1");
|
||||
Assert.IsTrue (unportable_hash != 0, "#2");
|
||||
Assert.IsTrue (dump.Length > 0, "#3");
|
||||
|
||||
// Console.WriteLine (dump);
|
||||
// dump should look something like:
|
||||
// {
|
||||
// "protocol_version" : "0.0.1",
|
||||
// "configuration" : {
|
||||
// "version" : "5.19.0 (managed_telemetry_pipeline/d342c73e320 Wed Aug 15 14:40:40 EDT 2018)",
|
||||
// "tlc" : "normal",
|
||||
// "sigsgev" : "altstack",
|
||||
// "notifications" : "kqueue",
|
||||
// "architecture" : "amd64",
|
||||
// "disabled_features" : "none",
|
||||
// "smallconfig" : "disabled",
|
||||
// "bigarrays" : "disabled",
|
||||
// "softdebug" : "enabled",
|
||||
// "interpreter" : "enabled",
|
||||
// "llvm_support" : "disabled",
|
||||
// "suspend" : "hybrid"
|
||||
// },
|
||||
// "memory" : {
|
||||
// "Resident Size" : "40693760",
|
||||
// "Virtual Size" : "4521312256",
|
||||
// "minor_gc_time" : "216992",
|
||||
// "major_gc_time" : "0",
|
||||
// "minor_gc_count" : "6",
|
||||
// "major_gc_count" : "0",
|
||||
// "major_gc_time_concurrent" : "0"
|
||||
// },
|
||||
// "threads" : [
|
||||
// {
|
||||
// "is_managed" : false,
|
||||
// "managed_thread_ptr" : "0x0",
|
||||
// "thread_info_addr" : "0x0",
|
||||
// "native_thread_id" : "0x0",
|
||||
// "managed_frames" : [
|
||||
// {
|
||||
// "is_managed" : "true",
|
||||
// "guid" : "43A03618-E657-44B0-B9FA-F63314A3C1B2",
|
||||
// "token" : "0x60008da",
|
||||
// "native_offset" : "0xb2",
|
||||
// "il_offset" : "0x00000"
|
||||
// }
|
||||
// ]
|
||||
// }
|
||||
// ]
|
||||
// }
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
[Test]
|
||||
public void StackTrace ()
|
||||
{
|
||||
|
@ -40,5 +40,19 @@ namespace MonoTests.System
|
||||
Assert.AreSame (typeof (int), Nullable.GetUnderlyingType (typeof (Nullable<int>)), "#1");
|
||||
Assert.IsNull (Nullable.GetUnderlyingType (typeof (Nullable<>)), "#2");
|
||||
}
|
||||
|
||||
private struct MutatingStruct
|
||||
{
|
||||
public int Value;
|
||||
public override bool Equals(object obj) => Value++.Equals(null);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void EqualsImpl ()
|
||||
{
|
||||
MutatingStruct? ms = new MutatingStruct () { Value = 1 };
|
||||
ms.Equals (new object ());
|
||||
Assert.AreEqual (ms.Value.Value, 2, "#1");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1 +1 @@
|
||||
be7c06e492f19830004719e43e6448e4ebe66d81
|
||||
4b8b335a56693c36d68d47bcb0c31e1e03288a4a
|
@ -1 +1 @@
|
||||
0be02f7a0bafa90f444ffe344ae9d4564513f5f1
|
||||
29cd9e998c4364233a67531eea5afb4eae336256
|
@ -1158,13 +1158,13 @@ public class TimeSpanTest {
|
||||
try {
|
||||
TimeSpan.ParseExact (null, "g", null);
|
||||
Assert.Fail ("#A1");
|
||||
} catch (ArgumentNullException) {
|
||||
} catch (FormatException) {
|
||||
}
|
||||
|
||||
try {
|
||||
TimeSpan.ParseExact ("10:12", (string)null, null);
|
||||
Assert.Fail ("#A2");
|
||||
} catch (ArgumentNullException) {
|
||||
} catch (FormatException) {
|
||||
}
|
||||
|
||||
try {
|
||||
|
Reference in New Issue
Block a user