Rob Shearman : advapi32:
Add tests for ConvertStringSecurityDescriptorToSecurityDescriptor.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Jul 19 07:59:41 CDT 2007
Module: wine
Branch: master
Commit: 4fdf90d406fcfe78b93b686fdc209548233dcb69
URL: http://source.winehq.org/git/wine.git/?a=commit;h=4fdf90d406fcfe78b93b686fdc209548233dcb69
Author: Rob Shearman <rob at codeweavers.com>
Date: Wed Jul 18 18:13:25 2007 +0100
advapi32: Add tests for ConvertStringSecurityDescriptorToSecurityDescriptor.
---
dlls/advapi32/tests/security.c | 98 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 98 insertions(+), 0 deletions(-)
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
index 247827c..f67f0a6 100644
--- a/dlls/advapi32/tests/security.c
+++ b/dlls/advapi32/tests/security.c
@@ -1758,6 +1758,103 @@ static void test_GetNamedSecurityInfoA(void)
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)
{
init();
@@ -1780,4 +1877,5 @@ START_TEST(security)
test_impersonation_level();
test_SetEntriesInAcl();
test_GetNamedSecurityInfoA();
+ test_ConvertSecurityStringSecurityDescriptor();
}
More information about the wine-cvs
mailing list