Imported Upstream version 5.8.0.22

Former-commit-id: df344e34b07851d296efb3e6604c8db42b6f7aa3
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2017-10-19 20:04:20 +00:00
parent 5f4a27cc8a
commit 7d05485754
5020 changed files with 114082 additions and 186061 deletions

View File

@@ -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>

View File

@@ -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]

View File

@@ -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; } }

View File

@@ -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));
}
}
}

View File

@@ -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)

View File

@@ -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)

View File

@@ -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";

View File

@@ -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";

View File

@@ -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))

View File

@@ -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))

View File

@@ -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))

View File

@@ -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))

View File

@@ -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);

View File

@@ -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);

View File

@@ -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>(() =>
{

View File

@@ -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";

View File

@@ -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";

View File

@@ -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";

View File

@@ -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";

View File

@@ -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