You've already forked linux-packaging-mono
Imported Upstream version 5.8.0.22
Former-commit-id: df344e34b07851d296efb3e6604c8db42b6f7aa3
This commit is contained in:
parent
5f4a27cc8a
commit
7d05485754
@@ -63,9 +63,6 @@
|
||||
<Compile Include="RegistryTestsBase.cs" />
|
||||
<Compile Include="TestData.cs" />
|
||||
<Compile Include="XunitAssemblyAttributes.cs" />
|
||||
<Compile Include="$(CommonTestPath)\System\AssertExtensions.cs">
|
||||
<Link>Common\System\AssertExtensions.cs</Link>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
|
||||
</Project>
|
||||
|
||||
@@ -14,7 +14,7 @@ namespace Microsoft.Win32.RegistryTests
|
||||
[Fact]
|
||||
public static void NullKeyName_ThrowsArgumentNullException()
|
||||
{
|
||||
AssertExtensions.Throws<ArgumentNullException>("keyName", () => Registry.GetValue(null, null, null));
|
||||
AssertExtensions.Throws<ArgumentNullException>("keyName", null, () => Registry.GetValue(null, null, null));
|
||||
}
|
||||
|
||||
public static readonly object[][] ArgumentExceptionTestData =
|
||||
@@ -34,7 +34,7 @@ namespace Microsoft.Win32.RegistryTests
|
||||
[MemberData(nameof(ArgumentExceptionTestData))]
|
||||
public static void InvalidKeyName_ThrowsArgumentException(string keyName)
|
||||
{
|
||||
Assert.Throws<ArgumentException>(() => Registry.GetValue(keyName, null, null));
|
||||
AssertExtensions.Throws<ArgumentException>("keyName", null, () => Registry.GetValue(keyName, null, null));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
||||
@@ -30,21 +30,21 @@ namespace Microsoft.Win32.RegistryTests
|
||||
Assert.Throws<ArgumentNullException>(() => Registry.SetValue(keyName: null, valueName: "test", value: "test"));
|
||||
|
||||
// Should throw if passed string does NOT start with one of the valid base key names
|
||||
Assert.Throws<ArgumentException>(() => Registry.SetValue("HHHH_MMMM", "test", "test"));
|
||||
AssertExtensions.Throws<ArgumentException>("keyName", null, () => Registry.SetValue("HHHH_MMMM", "test", "test"));
|
||||
|
||||
// Should throw if passed string which only starts with one of the valid base key names but actually it isn't valid.
|
||||
Assert.Throws<ArgumentException>(() => Registry.SetValue("HKEY_LOCAL_MACHINE_FOOBAR", "test", "test"));
|
||||
AssertExtensions.Throws<ArgumentException>("keyName", null, () => Registry.SetValue("HKEY_LOCAL_MACHINE_FOOBAR", "test", "test"));
|
||||
|
||||
// Should throw if key length above 255 characters but prior to V4, the limit is 16383
|
||||
const int maxValueNameLength = 16383;
|
||||
Assert.Throws<ArgumentException>(() => Registry.SetValue(TestRegistryKey.Name, new string('a', maxValueNameLength + 1), 5));
|
||||
AssertExtensions.Throws<ArgumentException>("name", null, () => Registry.SetValue(TestRegistryKey.Name, new string('a', maxValueNameLength + 1), 5));
|
||||
|
||||
// Should throw if passed value is array with uninitialized elements
|
||||
Assert.Throws<ArgumentException>(() => Registry.SetValue(TestRegistryKey.Name, "StringArr", value: new string[1]));
|
||||
AssertExtensions.Throws<ArgumentException>(null, () => Registry.SetValue(TestRegistryKey.Name, "StringArr", value: new string[1]));
|
||||
|
||||
// Should throw because only String[] (REG_MULTI_SZ) and byte[] (REG_BINARY) are supported.
|
||||
// RegistryKey.SetValue does not support arrays of type UInt32[].
|
||||
Assert.Throws<ArgumentException>(() => Registry.SetValue(TestRegistryKey.Name, "IntArray", new[] { 1, 2, 3 }));
|
||||
AssertExtensions.Throws<ArgumentException>(null, () => Registry.SetValue(TestRegistryKey.Name, "IntArray", new[] { 1, 2, 3 }));
|
||||
}
|
||||
|
||||
public static IEnumerable<object[]> TestValueTypes { get { return TestData.TestValueTypes; } }
|
||||
|
||||
@@ -172,25 +172,25 @@ namespace Microsoft.Win32.RegistryTests
|
||||
// Should throw if key length above 255 characters but prior to V4 the limit is 16383
|
||||
const int maxValueNameLength = 16383;
|
||||
var valueName = new string('a', maxValueNameLength + 1);
|
||||
Assert.Throws<ArgumentException>(() => Registry.SetValue(TestRegistryKey.Name, valueName, ulong.MaxValue, RegistryValueKind.String));
|
||||
AssertExtensions.Throws<ArgumentException>("name", null, () => Registry.SetValue(TestRegistryKey.Name, valueName, ulong.MaxValue, RegistryValueKind.String));
|
||||
|
||||
valueName = "FooBar";
|
||||
// Should throw if passed value is null
|
||||
Assert.Throws<ArgumentNullException>(() => Registry.SetValue(TestRegistryKey.Name, valueName, null, RegistryValueKind.QWord));
|
||||
|
||||
// Should throw because valueKind is equal to -2 which is not an acceptable value
|
||||
Assert.Throws<ArgumentException>(() => Registry.SetValue(TestRegistryKey.Name, valueName, int.MinValue, (RegistryValueKind)(-2)));
|
||||
AssertExtensions.Throws<ArgumentException>("valueKind", () => Registry.SetValue(TestRegistryKey.Name, valueName, int.MinValue, (RegistryValueKind)(-2)));
|
||||
|
||||
// Should throw because passed array contains null
|
||||
string[] strArr = { "one", "two", null, "three" };
|
||||
Assert.Throws<ArgumentException>(() => Registry.SetValue(TestRegistryKey.Name, valueName, strArr, RegistryValueKind.MultiString));
|
||||
AssertExtensions.Throws<ArgumentException>(null, () => Registry.SetValue(TestRegistryKey.Name, valueName, strArr, RegistryValueKind.MultiString));
|
||||
|
||||
// Should throw because passed array has wrong type
|
||||
Assert.Throws<ArgumentException>(() => Registry.SetValue(TestRegistryKey.Name, valueName, new[] { new object() }, RegistryValueKind.MultiString));
|
||||
AssertExtensions.Throws<ArgumentException>(null, () => Registry.SetValue(TestRegistryKey.Name, valueName, new[] { new object() }, RegistryValueKind.MultiString));
|
||||
|
||||
// Should throw because passed array has wrong type
|
||||
object[] objTemp = { "my string", "your string", "Any once string" };
|
||||
Assert.Throws<ArgumentException>(() => Registry.SetValue(TestRegistryKey.Name, valueName, objTemp, RegistryValueKind.Unknown));
|
||||
AssertExtensions.Throws<ArgumentException>(null, () => Registry.SetValue(TestRegistryKey.Name, valueName, objTemp, RegistryValueKind.Unknown));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace Microsoft.Win32.RegistryTests
|
||||
Assert.Null(TestRegistryKey.OpenSubKey(expected));
|
||||
Assert.Equal(0, TestRegistryKey.SubKeyCount);
|
||||
|
||||
Assert.Throws<ArgumentException>(() => deleteSubKey());
|
||||
AssertExtensions.Throws<ArgumentException>(null, () => deleteSubKey());
|
||||
}
|
||||
|
||||
protected void Verify_DeleteSubKey_KeyDoesNotExists_DoesNotThrow(string expected, Action deleteSubKey)
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace Microsoft.Win32.RegistryTests
|
||||
Assert.Null(TestRegistryKey.OpenSubKey(expected));
|
||||
Assert.Equal(0, TestRegistryKey.SubKeyCount);
|
||||
|
||||
Assert.Throws<ArgumentException>(() => deleteSubKeyTree());
|
||||
AssertExtensions.Throws<ArgumentException>(null, () => deleteSubKeyTree());
|
||||
}
|
||||
|
||||
protected void Verify_DeleteSubKeyTree_KeyDoesNotExists_DoesNotThrow(string expected, Action deleteSubKeyTree)
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace Microsoft.Win32.RegistryTests
|
||||
|
||||
// Should throw if key length above 255 characters
|
||||
const int maxValueNameLength = 255;
|
||||
Assert.Throws<ArgumentException>(() => TestRegistryKey.CreateSubKey(new string('a', maxValueNameLength + 1)));
|
||||
AssertExtensions.Throws<ArgumentException>("name", null, () => TestRegistryKey.CreateSubKey(new string('a', maxValueNameLength + 1)));
|
||||
|
||||
// Should throw if RegistryKey is readonly
|
||||
const string name = "FooBar";
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace Microsoft.Win32.RegistryTests
|
||||
// [] Vanilla; create a new subkey in read/write mode and write to it
|
||||
const string testValueName = "TestValue";
|
||||
const string testStringValueName = "TestString";
|
||||
const string testStringValue = "Hello World!†þ";
|
||||
const string testStringValue = "Hello World!\u2020\u00FE";
|
||||
const int testValue = 42;
|
||||
|
||||
using (var rk = TestRegistryKey.CreateSubKey(TestRegistryKeyName, writable: true))
|
||||
@@ -42,7 +42,7 @@ namespace Microsoft.Win32.RegistryTests
|
||||
// [] Vanilla; create a new subkey in read/write mode and write to it
|
||||
const string testValueName = "TestValue";
|
||||
const string testStringValueName = "TestString";
|
||||
const string testStringValue = "Hello World!†þ";
|
||||
const string testStringValue = "Hello World!\u2020\u00FE";
|
||||
const int testValue = 42;
|
||||
|
||||
using (var rk = TestRegistryKey.CreateSubKey(TestRegistryKeyName, RegistryKeyPermissionCheck.ReadWriteSubTree))
|
||||
@@ -71,16 +71,16 @@ namespace Microsoft.Win32.RegistryTests
|
||||
Assert.Throws<ArgumentNullException>(() => TestRegistryKey.CreateSubKey(null, RegistryKeyPermissionCheck.ReadWriteSubTree, new RegistryOptions(), new RegistrySecurity()));
|
||||
|
||||
// Should throw if passed option is invalid
|
||||
Assert.Throws<ArgumentException>(() => TestRegistryKey.CreateSubKey(TestRegistryKeyName, true, options: (RegistryOptions)(-1)));
|
||||
Assert.Throws<ArgumentException>(() => TestRegistryKey.CreateSubKey(TestRegistryKeyName, true, options: (RegistryOptions)3));
|
||||
Assert.Throws<ArgumentException>(() => TestRegistryKey.CreateSubKey(TestRegistryKeyName, RegistryKeyPermissionCheck.ReadWriteSubTree, (RegistryOptions)(-1)));
|
||||
Assert.Throws<ArgumentException>(() => TestRegistryKey.CreateSubKey(TestRegistryKeyName, RegistryKeyPermissionCheck.ReadWriteSubTree, (RegistryOptions)3));
|
||||
Assert.Throws<ArgumentException>(() => TestRegistryKey.CreateSubKey(TestRegistryKeyName, RegistryKeyPermissionCheck.ReadWriteSubTree, (RegistryOptions)(-1), new RegistrySecurity()));
|
||||
Assert.Throws<ArgumentException>(() => TestRegistryKey.CreateSubKey(TestRegistryKeyName, RegistryKeyPermissionCheck.ReadWriteSubTree, (RegistryOptions)3, new RegistrySecurity()));
|
||||
AssertExtensions.Throws<ArgumentException>("options", () => TestRegistryKey.CreateSubKey(TestRegistryKeyName, true, options: (RegistryOptions)(-1)));
|
||||
AssertExtensions.Throws<ArgumentException>("options", () => TestRegistryKey.CreateSubKey(TestRegistryKeyName, true, options: (RegistryOptions)3));
|
||||
AssertExtensions.Throws<ArgumentException>("options", () => TestRegistryKey.CreateSubKey(TestRegistryKeyName, RegistryKeyPermissionCheck.ReadWriteSubTree, (RegistryOptions)(-1)));
|
||||
AssertExtensions.Throws<ArgumentException>("options", () => TestRegistryKey.CreateSubKey(TestRegistryKeyName, RegistryKeyPermissionCheck.ReadWriteSubTree, (RegistryOptions)3));
|
||||
AssertExtensions.Throws<ArgumentException>("options", () => TestRegistryKey.CreateSubKey(TestRegistryKeyName, RegistryKeyPermissionCheck.ReadWriteSubTree, (RegistryOptions)(-1), new RegistrySecurity()));
|
||||
AssertExtensions.Throws<ArgumentException>("options", () => TestRegistryKey.CreateSubKey(TestRegistryKeyName, RegistryKeyPermissionCheck.ReadWriteSubTree, (RegistryOptions)3, new RegistrySecurity()));
|
||||
|
||||
// Should throw if key length above 255 characters
|
||||
const int maxValueNameLength = 255;
|
||||
Assert.Throws<ArgumentException>(() => TestRegistryKey.CreateSubKey(new string('a', maxValueNameLength + 1)));
|
||||
AssertExtensions.Throws<ArgumentException>("name", null, () => TestRegistryKey.CreateSubKey(new string('a', maxValueNameLength + 1)));
|
||||
|
||||
// Should throw if RegistryKey is readonly
|
||||
const string name = "FooBar";
|
||||
|
||||
@@ -19,10 +19,10 @@ namespace Microsoft.Win32.RegistryTests
|
||||
Assert.Throws<ArgumentNullException>(() => TestRegistryKey.DeleteSubKeyTree(null, throwOnMissingSubKey: false));
|
||||
|
||||
// Should throw if target subkey is system subkey and name is empty
|
||||
Assert.Throws<ArgumentException>(() => Registry.CurrentUser.DeleteSubKeyTree(string.Empty, throwOnMissingSubKey: false));
|
||||
AssertExtensions.Throws<ArgumentException>(null, () => Registry.CurrentUser.DeleteSubKeyTree(string.Empty, throwOnMissingSubKey: false));
|
||||
|
||||
// Should throw because subkey doesn't exists
|
||||
Assert.Throws<ArgumentException>(() => TestRegistryKey.DeleteSubKeyTree(name, throwOnMissingSubKey: true));
|
||||
AssertExtensions.Throws<ArgumentException>(null, () => TestRegistryKey.DeleteSubKeyTree(name, throwOnMissingSubKey: true));
|
||||
|
||||
// Should throw because RegistryKey is readonly
|
||||
using (var rk = TestRegistryKey.OpenSubKey(string.Empty, false))
|
||||
|
||||
@@ -20,10 +20,10 @@ namespace Microsoft.Win32.RegistryTests
|
||||
Assert.Throws<ArgumentNullException>(() => TestRegistryKey.DeleteSubKeyTree(null));
|
||||
|
||||
// Should throw if target subkey is system subkey and name is empty
|
||||
Assert.Throws<ArgumentException>(() => Registry.CurrentUser.DeleteSubKeyTree(string.Empty));
|
||||
AssertExtensions.Throws<ArgumentException>(null, () => Registry.CurrentUser.DeleteSubKeyTree(string.Empty));
|
||||
|
||||
// Should throw because subkey doesn't exists
|
||||
Assert.Throws<ArgumentException>(() => TestRegistryKey.DeleteSubKeyTree(name));
|
||||
AssertExtensions.Throws<ArgumentException>(null, () => TestRegistryKey.DeleteSubKeyTree(name));
|
||||
|
||||
// Should throw because RegistryKey is readonly
|
||||
using (var rk = TestRegistryKey.OpenSubKey(string.Empty, false))
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace Microsoft.Win32.RegistryTests
|
||||
Assert.Throws<ArgumentNullException>(() => TestRegistryKey.DeleteSubKey(null, false));
|
||||
|
||||
// Should throw because subkey doesn't exists
|
||||
Assert.Throws<ArgumentException>(() => TestRegistryKey.DeleteSubKey(name, throwOnMissingSubKey: true));
|
||||
AssertExtensions.Throws<ArgumentException>(null, () => TestRegistryKey.DeleteSubKey(name, throwOnMissingSubKey: true));
|
||||
|
||||
// Should throw if subkey has child subkeys
|
||||
using (var rk = TestRegistryKey.CreateSubKey(name))
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace Microsoft.Win32.RegistryTests
|
||||
Assert.Throws<ArgumentNullException>(() => TestRegistryKey.DeleteSubKey(null));
|
||||
|
||||
// Should throw because subkey doesn't exists
|
||||
Assert.Throws<ArgumentException>(() => TestRegistryKey.DeleteSubKey(name));
|
||||
AssertExtensions.Throws<ArgumentException>(null, () => TestRegistryKey.DeleteSubKey(name));
|
||||
|
||||
// Should throw if subkey has child subkeys
|
||||
using (var rk = TestRegistryKey.CreateSubKey(name))
|
||||
|
||||
@@ -15,13 +15,13 @@ namespace Microsoft.Win32.RegistryTests
|
||||
{
|
||||
const string valueName = "TestValue";
|
||||
|
||||
Assert.Throws<ArgumentException>(() => TestRegistryKey.DeleteValue(null, true));
|
||||
AssertExtensions.Throws<ArgumentException>(null, () => TestRegistryKey.DeleteValue(null, true));
|
||||
|
||||
// Should NOT throw because value doesn't exists
|
||||
TestRegistryKey.DeleteValue(valueName, throwOnMissingValue: false);
|
||||
|
||||
// Should throw because value doesn't exists
|
||||
Assert.Throws<ArgumentException>(() => TestRegistryKey.DeleteValue(valueName, throwOnMissingValue: true));
|
||||
AssertExtensions.Throws<ArgumentException>(null, () => TestRegistryKey.DeleteValue(valueName, throwOnMissingValue: true));
|
||||
|
||||
TestRegistryKey.SetValue(valueName, 42);
|
||||
|
||||
|
||||
@@ -16,10 +16,10 @@ namespace Microsoft.Win32.RegistryTests
|
||||
const string valueName = "TestValue";
|
||||
|
||||
// Should throw if passed subkey name is null
|
||||
Assert.Throws<ArgumentException>(() => TestRegistryKey.DeleteValue(null));
|
||||
AssertExtensions.Throws<ArgumentException>(null, () => TestRegistryKey.DeleteValue(null));
|
||||
|
||||
// Should throw because value doesn't exists
|
||||
Assert.Throws<ArgumentException>(() => TestRegistryKey.DeleteValue(valueName));
|
||||
AssertExtensions.Throws<ArgumentException>(null, () => TestRegistryKey.DeleteValue(valueName));
|
||||
|
||||
TestRegistryKey.SetValue(valueName, 42);
|
||||
|
||||
|
||||
@@ -13,8 +13,8 @@ namespace Microsoft.Win32.RegistryTests
|
||||
[Fact]
|
||||
public void NegativeTests()
|
||||
{
|
||||
Assert.Throws<ArgumentException>(() => TestRegistryKey.GetValue(null, null, (RegistryValueOptions)(-1)));
|
||||
Assert.Throws<ArgumentException>(() => TestRegistryKey.GetValue(null, null, (RegistryValueOptions)2));
|
||||
AssertExtensions.Throws<ArgumentException>("options", () => TestRegistryKey.GetValue(null, null, (RegistryValueOptions)(-1)));
|
||||
AssertExtensions.Throws<ArgumentException>("options", () => TestRegistryKey.GetValue(null, null, (RegistryValueOptions)2));
|
||||
|
||||
Assert.Throws<ObjectDisposedException>(() =>
|
||||
{
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace Microsoft.Win32.RegistryTests
|
||||
Assert.Throws<ArgumentNullException>(() => TestRegistryKey.OpenSubKey(name: null));
|
||||
|
||||
// Should throw if subkey name greater than 255 chars
|
||||
Assert.Throws<ArgumentException>(() => TestRegistryKey.OpenSubKey(new string('a', 256)));
|
||||
AssertExtensions.Throws<ArgumentException>("name", null, () => TestRegistryKey.OpenSubKey(new string('a', 256)));
|
||||
|
||||
// OpenSubKey should be read only by default
|
||||
const string name = "FooBar";
|
||||
|
||||
@@ -16,7 +16,7 @@ namespace Microsoft.Win32.RegistryTests
|
||||
Assert.Throws<ArgumentNullException>(() => TestRegistryKey.OpenSubKey(name: null, writable: false));
|
||||
|
||||
// Should throw if subkey name greater than 255 chars
|
||||
Assert.Throws<ArgumentException>(() => TestRegistryKey.OpenSubKey(new string('a', 256), true));
|
||||
AssertExtensions.Throws<ArgumentException>("name", null, () => TestRegistryKey.OpenSubKey(new string('a', 256), true));
|
||||
|
||||
// OpenSubKey should be read only
|
||||
const string name = "FooBar";
|
||||
|
||||
@@ -16,7 +16,7 @@ namespace Microsoft.Win32.RegistryTests
|
||||
Assert.Throws<ArgumentNullException>(() => TestRegistryKey.OpenSubKey(name: null, permissionCheck: RegistryKeyPermissionCheck.ReadSubTree));
|
||||
|
||||
// Should throw if subkey name greater than 255 chars
|
||||
Assert.Throws<ArgumentException>(() => TestRegistryKey.OpenSubKey(new string('a', 256), RegistryKeyPermissionCheck.Default));
|
||||
AssertExtensions.Throws<ArgumentException>("name", null, () => TestRegistryKey.OpenSubKey(new string('a', 256), RegistryKeyPermissionCheck.Default));
|
||||
|
||||
// Should throw when opened with default permission check
|
||||
const string name = "FooBar";
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace Microsoft.Win32.RegistryTests
|
||||
Assert.Throws<ArgumentNullException>(() => TestRegistryKey.OpenSubKey(name: null, permissionCheck: RegistryKeyPermissionCheck.ReadSubTree, rights: RegistryRights.ReadKey));
|
||||
|
||||
// Should throw if subkey name greater than 255 chars
|
||||
Assert.Throws<ArgumentException>(() => TestRegistryKey.OpenSubKey(new string('a', 256), RegistryKeyPermissionCheck.Default, rights: RegistryRights.FullControl));
|
||||
AssertExtensions.Throws<ArgumentException>("name", null, () => TestRegistryKey.OpenSubKey(new string('a', 256), RegistryKeyPermissionCheck.Default, rights: RegistryRights.FullControl));
|
||||
|
||||
// Should throw when opened with default permission check and write rights
|
||||
const string name = "FooBar";
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace Microsoft.Win32.RegistryTests
|
||||
Assert.Throws<ArgumentNullException>(() => TestRegistryKey.OpenSubKey(name: null, rights: RegistryRights.ReadKey));
|
||||
|
||||
// Should throw if subkey name greater than 255 chars
|
||||
Assert.Throws<ArgumentException>(() => TestRegistryKey.OpenSubKey(new string('a', 256), RegistryRights.FullControl));
|
||||
AssertExtensions.Throws<ArgumentException>("name", null, () => TestRegistryKey.OpenSubKey(new string('a', 256), RegistryRights.FullControl));
|
||||
|
||||
// OpenSubKey should be read only
|
||||
const string name = "FooBar";
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user