Kai Blin : netapi32/tests: Make NetGetUserInfo checks language
independent.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Mar 26 08:12:54 CDT 2007
Module: wine
Branch: master
Commit: 936662094f188d449bdc7099b1007a41f5b2da7e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=936662094f188d449bdc7099b1007a41f5b2da7e
Author: Kai Blin <kai.blin at gmail.com>
Date: Sat Mar 24 09:02:54 2007 +0100
netapi32/tests: Make NetGetUserInfo checks language independent.
---
dlls/netapi32/tests/access.c | 65 +++++++++++++++++++++++++++++------------
1 files changed, 46 insertions(+), 19 deletions(-)
diff --git a/dlls/netapi32/tests/access.c b/dlls/netapi32/tests/access.c
index e06681e..c92c9f8 100644
--- a/dlls/netapi32/tests/access.c
+++ b/dlls/netapi32/tests/access.c
@@ -32,10 +32,6 @@
WCHAR user_name[UNLEN + 1];
WCHAR computer_name[MAX_COMPUTERNAME_LENGTH + 1];
-/* FIXME : Tests should be language independent */
-static const WCHAR sAdminUserName[] = {'A','d','m','i','n','i','s','t','r','a','t',
- 'o','r',0};
-static const WCHAR sGuestUserName[] = {'G','u','e','s','t',0};
static const WCHAR sNonexistentUser[] = {'N','o','n','e','x','i','s','t','e','n','t',' ',
'U','s','e','r',0};
static WCHAR sTooLongName[] = {'T','h','i','s',' ','i','s',' ','a',' ','b','a','d',
@@ -91,6 +87,26 @@ static int init_access_tests(void)
return 1;
}
+static NET_API_STATUS create_test_user(void)
+{
+ USER_INFO_1 usri;
+
+ usri.usri1_name = sTestUserName;
+ usri.usri1_password = sTestUserOldPass;
+ usri.usri1_priv = USER_PRIV_USER;
+ usri.usri1_home_dir = NULL;
+ usri.usri1_comment = NULL;
+ usri.usri1_flags = UF_SCRIPT;
+ usri.usri1_script_path = NULL;
+
+ return pNetUserAdd(NULL, 1, (LPBYTE)&usri, NULL);
+}
+
+static NET_API_STATUS delete_test_user(void)
+{
+ return pNetUserDel(NULL, sTestUserName);
+}
+
static void run_usergetinfo_tests(void)
{
NET_API_STATUS rc;
@@ -98,22 +114,25 @@ static void run_usergetinfo_tests(void)
PUSER_INFO_10 ui10 = NULL;
DWORD dwSize;
- /* Level 0 */
- rc=pNetUserGetInfo(NULL, sAdminUserName, 0, (LPBYTE *)&ui0);
- if (rc != NERR_Success) {
- skip("Aborting usergetinfo_tests(). NetUserGetInfo: rc=%d\n", rc);
+ if((rc = create_test_user()) != NERR_Success )
+ {
+ skip("Skipping usergetinfo_tests, create_test_user failed: 0x%08x\n", rc);
return;
}
- ok(!lstrcmpW(sAdminUserName, ui0->usri0_name), "This is really user name\n");
+
+ /* Level 0 */
+ rc=pNetUserGetInfo(NULL, sTestUserName, 0, (LPBYTE *)&ui0);
+ ok(rc == NERR_Success, "NetUserGetInfo level 0 failed: 0x%08x.\n", rc);
+ ok(!lstrcmpW(sTestUserName, ui0->usri0_name),"Username mismatch for level 0.\n");
pNetApiBufferSize(ui0, &dwSize);
ok(dwSize >= (sizeof(USER_INFO_0) +
(lstrlenW(ui0->usri0_name) + 1) * sizeof(WCHAR)),
"Is allocated with NetApiBufferAllocate\n");
/* Level 10 */
- rc=pNetUserGetInfo(NULL, sAdminUserName, 10, (LPBYTE *)&ui10);
- ok(rc == NERR_Success, "NetUserGetInfo: rc=%d\n", rc);
- ok(!lstrcmpW(sAdminUserName, ui10->usri10_name), "This is really user name\n");
+ rc=pNetUserGetInfo(NULL, sTestUserName, 10, (LPBYTE *)&ui10);
+ ok(rc == NERR_Success, "NetUserGetInfo level 10 failed: 0x%08x.\n", rc);
+ ok(!lstrcmpW(sTestUserName, ui10->usri10_name), "Username mismatch for level 10.\n");
pNetApiBufferSize(ui10, &dwSize);
ok(dwSize >= (sizeof(USER_INFO_10) +
(lstrlenW(ui10->usri10_name) + 1 +
@@ -126,26 +145,31 @@ static void run_usergetinfo_tests(void)
pNetApiBufferFree(ui10);
/* errors handling */
- rc=pNetUserGetInfo(NULL, sAdminUserName, 10000, (LPBYTE *)&ui0);
+ rc=pNetUserGetInfo(NULL, sTestUserName, 10000, (LPBYTE *)&ui0);
ok(rc == ERROR_INVALID_LEVEL,"Invalid Level: rc=%d\n",rc);
rc=pNetUserGetInfo(NULL, sNonexistentUser, 0, (LPBYTE *)&ui0);
ok(rc == NERR_UserNotFound,"Invalid User Name: rc=%d\n",rc);
todo_wine {
/* FIXME - Currently Wine can't verify whether the network path is good or bad */
- rc=pNetUserGetInfo(sBadNetPath, sAdminUserName, 0, (LPBYTE *)&ui0);
+ rc=pNetUserGetInfo(sBadNetPath, sTestUserName, 0, (LPBYTE *)&ui0);
ok(rc == ERROR_BAD_NETPATH || rc == ERROR_NETWORK_UNREACHABLE,
"Bad Network Path: rc=%d\n",rc);
}
- rc=pNetUserGetInfo(sEmptyStr, sAdminUserName, 0, (LPBYTE *)&ui0);
+ rc=pNetUserGetInfo(sEmptyStr, sTestUserName, 0, (LPBYTE *)&ui0);
ok(rc == ERROR_BAD_NETPATH || rc == NERR_Success,
"Bad Network Path: rc=%d\n",rc);
- rc=pNetUserGetInfo(sInvalidName, sAdminUserName, 0, (LPBYTE *)&ui0);
+ rc=pNetUserGetInfo(sInvalidName, sTestUserName, 0, (LPBYTE *)&ui0);
ok(rc == ERROR_INVALID_NAME,"Invalid Server Name: rc=%d\n",rc);
- rc=pNetUserGetInfo(sInvalidName2, sAdminUserName, 0, (LPBYTE *)&ui0);
+ rc=pNetUserGetInfo(sInvalidName2, sTestUserName, 0, (LPBYTE *)&ui0);
ok(rc == ERROR_INVALID_NAME,"Invalid Server Name: rc=%d\n",rc);
+
+ if(delete_test_user() != NERR_Success)
+ trace("Deleting the test user failed. You might have to manually delete it.");
}
-/* checks Level 1 of NetQueryDisplayInformation */
+/* checks Level 1 of NetQueryDisplayInformation
+ * FIXME: Needs to be rewritten to not depend on the spelling of the users,
+ * ideally based on the admin and guest user SIDs/RIDs.*/
static void run_querydisplayinformation1_tests(void)
{
PNET_DISPLAY_USER Buffer, rec;
@@ -153,6 +177,9 @@ static void run_querydisplayinformation1_tests(void)
DWORD i = 0;
BOOL hasAdmin = FALSE;
BOOL hasGuest = FALSE;
+ static const WCHAR sAdminUserName[] = {'A','d','m','i','n','i','s','t','r','a',
+ 't','o','r',0};
+ static const WCHAR sGuestUserName[] = {'G','u','e','s','t',0};
do
{
@@ -308,10 +335,10 @@ START_TEST(access)
}
if (init_access_tests()) {
+ run_userhandling_tests();
run_usergetinfo_tests();
run_querydisplayinformation1_tests();
run_usermodalsget_tests();
- run_userhandling_tests();
}
FreeLibrary(hnetapi32);
More information about the wine-cvs
mailing list