2 * PROJECT: ReactOS api tests
3 * LICENSE: GPLv2+ - See COPYING in the top level directory
4 * PURPOSE: Test for SetCurrentDirectory
5 * PROGRAMMER: Thomas Faber <thomas.faber@reactos.org>
12 SetUnrelatedDirectory(VOID
)
14 WCHAR Buffer
[MAX_PATH
];
17 GetWindowsDirectoryW(Buffer
, sizeof(Buffer
) / sizeof(WCHAR
));
18 Ret
= SetCurrentDirectoryW(Buffer
);
19 ok(Ret
== TRUE
, "SetCurrentDirectoryW failed\n");
24 TestSetCurrentDirectoryA(VOID
)
27 CHAR Buffer
[MAX_PATH
];
30 SetUnrelatedDirectory();
32 Ret
= SetCurrentDirectoryA("C:\\");
33 ok(Ret
== TRUE
, "SetCurrentDirectoryA failed\n");
34 Length
= GetCurrentDirectoryA(sizeof(Buffer
), Buffer
);
35 ok(Length
== 3, "Length = %lu\n", Length
);
36 ok(!strcmp(Buffer
, "C:\\"), "Current directory is %s\n", Buffer
);
38 /* Same directory - succeeds */
39 Ret
= SetCurrentDirectoryA("C:\\");
40 ok(Ret
== TRUE
, "SetCurrentDirectoryA failed\n");
41 Length
= GetCurrentDirectoryA(sizeof(Buffer
), Buffer
);
42 ok(Length
== 3, "Length = %lu\n", Length
);
43 ok(!strcmp(Buffer
, "C:\\"), "Current directory is %s\n", Buffer
);
45 /* Same directory, lowercase - succeeds and does not change case */
46 Ret
= SetCurrentDirectoryA("c:\\");
47 ok(Ret
== TRUE
, "SetCurrentDirectoryA failed\n");
48 Length
= GetCurrentDirectoryA(sizeof(Buffer
), Buffer
);
49 ok(Length
== 3, "Length = %lu\n", Length
);
50 ok(!strcmp(Buffer
, "C:\\"), "Current directory is %s\n", Buffer
);
52 SetUnrelatedDirectory();
54 /* Now this one does change case */
55 Ret
= SetCurrentDirectoryA("c:\\");
56 ok(Ret
== TRUE
, "SetCurrentDirectoryA failed\n");
57 Length
= GetCurrentDirectoryA(sizeof(Buffer
), Buffer
);
58 ok(Length
== 3, "Length = %lu\n", Length
);
59 ok(!strcmp(Buffer
, "c:\\"), "Current directory is %s\n", Buffer
);
64 TestSetCurrentDirectoryW(VOID
)
67 WCHAR Buffer
[MAX_PATH
];
70 SetUnrelatedDirectory();
72 Ret
= SetCurrentDirectoryW(L
"C:\\");
73 ok(Ret
== TRUE
, "SetCurrentDirectoryW failed\n");
74 Length
= GetCurrentDirectoryW(sizeof(Buffer
) / sizeof(WCHAR
), Buffer
);
75 ok(Length
== 3, "Length = %lu\n", Length
);
76 ok(!wcscmp(Buffer
, L
"C:\\"), "Current directory is %ls\n", Buffer
);
78 /* Same directory - succeeds */
79 Ret
= SetCurrentDirectoryW(L
"C:\\");
80 ok(Ret
== TRUE
, "SetCurrentDirectoryW failed\n");
81 Length
= GetCurrentDirectoryW(sizeof(Buffer
) / sizeof(WCHAR
), Buffer
);
82 ok(Length
== 3, "Length = %lu\n", Length
);
83 ok(!wcscmp(Buffer
, L
"C:\\"), "Current directory is %ls\n", Buffer
);
85 /* Same directory, lowercase - succeeds and does not change case */
86 Ret
= SetCurrentDirectoryW(L
"c:\\");
87 ok(Ret
== TRUE
, "SetCurrentDirectoryW failed\n");
88 Length
= GetCurrentDirectoryW(sizeof(Buffer
) / sizeof(WCHAR
), Buffer
);
89 ok(Length
== 3, "Length = %lu\n", Length
);
90 ok(!wcscmp(Buffer
, L
"C:\\"), "Current directory is %ls\n", Buffer
);
92 SetUnrelatedDirectory();
94 /* Now this one does change case */
95 Ret
= SetCurrentDirectoryW(L
"c:\\");
96 ok(Ret
== TRUE
, "SetCurrentDirectoryW failed\n");
97 Length
= GetCurrentDirectoryW(sizeof(Buffer
) / sizeof(WCHAR
), Buffer
);
98 ok(Length
== 3, "Length = %lu\n", Length
);
99 ok(!wcscmp(Buffer
, L
"c:\\"), "Current directory is %ls\n", Buffer
);
102 START_TEST(SetCurrentDirectory
)
104 TestSetCurrentDirectoryA();
105 TestSetCurrentDirectoryW();