advapi32: Add tests for ConvertStringSecurityDescriptorToSecurityDescriptor.
This commit is contained in:
parent
ccfa9ad8df
commit
4fdf90d406
|
@ -1758,6 +1758,103 @@ static void test_GetNamedSecurityInfoA(void)
|
||||||
ok(group != NULL, "group should not be NULL\n");
|
ok(group != NULL, "group should not be NULL\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_ConvertSecurityStringSecurityDescriptor(void)
|
||||||
|
{
|
||||||
|
BOOL ret;
|
||||||
|
PSECURITY_DESCRIPTOR pSD;
|
||||||
|
|
||||||
|
SetLastError(0xdeadbeef);
|
||||||
|
ret = ConvertStringSecurityDescriptorToSecurityDescriptor(
|
||||||
|
"D:(A;;GA;;;WD)", 0xdeadbeef, &pSD, NULL);
|
||||||
|
ok(!ret && GetLastError() == ERROR_UNKNOWN_REVISION,
|
||||||
|
"ConvertStringSecurityDescriptorToSecurityDescriptor should have failed with ERROR_UNKNOWN_REVISION instead of %d\n",
|
||||||
|
GetLastError());
|
||||||
|
|
||||||
|
/* test ACE string type */
|
||||||
|
SetLastError(0xdeadbeef);
|
||||||
|
ret = ConvertStringSecurityDescriptorToSecurityDescriptor(
|
||||||
|
"D:(A;;GA;;;WD)", SDDL_REVISION_1, &pSD, NULL);
|
||||||
|
ok(ret, "ConvertStringSecurityDescriptorToSecurityDescriptor failed with error %d\n", GetLastError());
|
||||||
|
LocalFree(pSD);
|
||||||
|
|
||||||
|
SetLastError(0xdeadbeef);
|
||||||
|
ret = ConvertStringSecurityDescriptorToSecurityDescriptor(
|
||||||
|
"D:(D;;GA;;;WD)", SDDL_REVISION_1, &pSD, NULL);
|
||||||
|
ok(ret, "ConvertStringSecurityDescriptorToSecurityDescriptor failed with error %d\n", GetLastError());
|
||||||
|
LocalFree(pSD);
|
||||||
|
|
||||||
|
SetLastError(0xdeadbeef);
|
||||||
|
ret = ConvertStringSecurityDescriptorToSecurityDescriptor(
|
||||||
|
"ERROR:(D;;GA;;;WD)", SDDL_REVISION_1, &pSD, NULL);
|
||||||
|
ok(!ret && GetLastError() == ERROR_INVALID_PARAMETER,
|
||||||
|
"ConvertStringSecurityDescriptorToSecurityDescriptor should have failed with ERROR_INVALID_PARAMETER instead of %d\n",
|
||||||
|
GetLastError());
|
||||||
|
|
||||||
|
/* test ACE string access rights */
|
||||||
|
SetLastError(0xdeadbeef);
|
||||||
|
ret = ConvertStringSecurityDescriptorToSecurityDescriptor(
|
||||||
|
"D:(A;;GA;;;WD)", SDDL_REVISION_1, &pSD, NULL);
|
||||||
|
ok(ret, "ConvertStringSecurityDescriptorToSecurityDescriptor failed with error %d\n", GetLastError());
|
||||||
|
LocalFree(pSD);
|
||||||
|
SetLastError(0xdeadbeef);
|
||||||
|
ret = ConvertStringSecurityDescriptorToSecurityDescriptor(
|
||||||
|
"D:(A;;GRGWGX;;;WD)", SDDL_REVISION_1, &pSD, NULL);
|
||||||
|
ok(ret, "ConvertStringSecurityDescriptorToSecurityDescriptor failed with error %d\n", GetLastError());
|
||||||
|
LocalFree(pSD);
|
||||||
|
SetLastError(0xdeadbeef);
|
||||||
|
ret = ConvertStringSecurityDescriptorToSecurityDescriptor(
|
||||||
|
"D:(A;;RCSDWDWO;;;WD)", SDDL_REVISION_1, &pSD, NULL);
|
||||||
|
ok(ret, "ConvertStringSecurityDescriptorToSecurityDescriptor failed with error %d\n", GetLastError());
|
||||||
|
LocalFree(pSD);
|
||||||
|
SetLastError(0xdeadbeef);
|
||||||
|
ret = ConvertStringSecurityDescriptorToSecurityDescriptor(
|
||||||
|
"D:(A;;RPWPCCDCLCSWLODTCR;;;WD)", SDDL_REVISION_1, &pSD, NULL);
|
||||||
|
todo_wine
|
||||||
|
ok(ret, "ConvertStringSecurityDescriptorToSecurityDescriptor failed with error %d\n", GetLastError());
|
||||||
|
LocalFree(pSD);
|
||||||
|
SetLastError(0xdeadbeef);
|
||||||
|
ret = ConvertStringSecurityDescriptorToSecurityDescriptor(
|
||||||
|
"D:(A;;FAFRFWFX;;;WD)", SDDL_REVISION_1, &pSD, NULL);
|
||||||
|
todo_wine
|
||||||
|
ok(ret, "ConvertStringSecurityDescriptorToSecurityDescriptor failed with error %d\n", GetLastError());
|
||||||
|
LocalFree(pSD);
|
||||||
|
SetLastError(0xdeadbeef);
|
||||||
|
ret = ConvertStringSecurityDescriptorToSecurityDescriptor(
|
||||||
|
"D:(A;;KAKRKWKX;;;WD)", SDDL_REVISION_1, &pSD, NULL);
|
||||||
|
todo_wine
|
||||||
|
ok(ret, "ConvertStringSecurityDescriptorToSecurityDescriptor failed with error %d\n", GetLastError());
|
||||||
|
LocalFree(pSD);
|
||||||
|
SetLastError(0xdeadbeef);
|
||||||
|
ret = ConvertStringSecurityDescriptorToSecurityDescriptor(
|
||||||
|
"D:(A;;0xFFFFFFFF;;;WD)", SDDL_REVISION_1, &pSD, NULL);
|
||||||
|
ok(ret, "ConvertStringSecurityDescriptorToSecurityDescriptor failed with error %d\n", GetLastError());
|
||||||
|
LocalFree(pSD);
|
||||||
|
|
||||||
|
/* test ACE string access right error case */
|
||||||
|
SetLastError(0xdeadbeef);
|
||||||
|
ret = ConvertStringSecurityDescriptorToSecurityDescriptor(
|
||||||
|
"D:(A;;ROB;;;WD)", SDDL_REVISION_1, &pSD, NULL);
|
||||||
|
todo_wine
|
||||||
|
ok(!ret && GetLastError() == ERROR_INVALID_ACL,
|
||||||
|
"ConvertStringSecurityDescriptorToSecurityDescriptor should have failed with ERROR_INVALID_ACL instead of %d\n",
|
||||||
|
GetLastError());
|
||||||
|
|
||||||
|
/* test ACE string SID */
|
||||||
|
SetLastError(0xdeadbeef);
|
||||||
|
ret = ConvertStringSecurityDescriptorToSecurityDescriptor(
|
||||||
|
"D:(D;;GA;;;S-1-0-0)", SDDL_REVISION_1, &pSD, NULL);
|
||||||
|
ok(ret, "ConvertStringSecurityDescriptorToSecurityDescriptor failed with error %d\n", GetLastError());
|
||||||
|
LocalFree(pSD);
|
||||||
|
|
||||||
|
SetLastError(0xdeadbeef);
|
||||||
|
ret = ConvertStringSecurityDescriptorToSecurityDescriptor(
|
||||||
|
"D:(D;;GA;;;Non existant account)", SDDL_REVISION_1, &pSD, NULL);
|
||||||
|
todo_wine
|
||||||
|
ok(!ret && GetLastError() == ERROR_INVALID_ACL,
|
||||||
|
"ConvertStringSecurityDescriptorToSecurityDescriptor should have failed with ERROR_INVALID_ACL instead of %d\n",
|
||||||
|
GetLastError());
|
||||||
|
}
|
||||||
|
|
||||||
START_TEST(security)
|
START_TEST(security)
|
||||||
{
|
{
|
||||||
init();
|
init();
|
||||||
|
@ -1780,4 +1877,5 @@ START_TEST(security)
|
||||||
test_impersonation_level();
|
test_impersonation_level();
|
||||||
test_SetEntriesInAcl();
|
test_SetEntriesInAcl();
|
||||||
test_GetNamedSecurityInfoA();
|
test_GetNamedSecurityInfoA();
|
||||||
|
test_ConvertSecurityStringSecurityDescriptor();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue