mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-02 06:14:00 +00:00
shell32/tests: Get rid of the a2bstr() helper.
This commit is contained in:
parent
a16cf63858
commit
dbe9f348d4
|
@ -47,22 +47,10 @@ static HRESULT (WINAPI *pSHGetNameFromIDList)(PCIDLIST_ABSOLUTE,SIGDN,PWSTR*);
|
||||||
/* Updated Windows 7 has a new IShellDispatch6 in its typelib */
|
/* Updated Windows 7 has a new IShellDispatch6 in its typelib */
|
||||||
DEFINE_GUID(IID_IWin7ShellDispatch6, 0x34936ba1, 0x67ad, 0x4c41, 0x99,0xb8, 0x8c,0x12,0xdf,0xf1,0xe9,0x74);
|
DEFINE_GUID(IID_IWin7ShellDispatch6, 0x34936ba1, 0x67ad, 0x4c41, 0x99,0xb8, 0x8c,0x12,0xdf,0xf1,0xe9,0x74);
|
||||||
|
|
||||||
static BSTR a2bstr(const char *str)
|
static void variant_set_string(VARIANT *v, const WCHAR *s)
|
||||||
{
|
|
||||||
BSTR ret;
|
|
||||||
int len;
|
|
||||||
|
|
||||||
len = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
|
|
||||||
ret = SysAllocStringLen(NULL, len);
|
|
||||||
MultiByteToWideChar(CP_ACP, 0, str, -1, ret, len);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void variant_set_string(VARIANT *v, const char *s)
|
|
||||||
{
|
{
|
||||||
V_VT(v) = VT_BSTR;
|
V_VT(v) = VT_BSTR;
|
||||||
V_BSTR(v) = a2bstr(s);
|
V_BSTR(v) = SysAllocString(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void init_function_pointers(void)
|
static void init_function_pointers(void)
|
||||||
|
@ -356,7 +344,7 @@ static void test_items(void)
|
||||||
{
|
{
|
||||||
static const struct
|
static const struct
|
||||||
{
|
{
|
||||||
char name[32];
|
WCHAR name[32];
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
DIRECTORY,
|
DIRECTORY,
|
||||||
|
@ -366,8 +354,8 @@ static void test_items(void)
|
||||||
}
|
}
|
||||||
file_defs[] =
|
file_defs[] =
|
||||||
{
|
{
|
||||||
{ "00-Myfolder", DIRECTORY },
|
{ L"00-Myfolder", DIRECTORY },
|
||||||
{ "01-empty.bin", EMPTY_FILE },
|
{ L"01-empty.bin", EMPTY_FILE },
|
||||||
};
|
};
|
||||||
WCHAR path[MAX_PATH], cur_dir[MAX_PATH], orig_dir[MAX_PATH];
|
WCHAR path[MAX_PATH], cur_dir[MAX_PATH], orig_dir[MAX_PATH];
|
||||||
HRESULT r;
|
HRESULT r;
|
||||||
|
@ -384,7 +372,7 @@ static void test_items(void)
|
||||||
IUnknown *unk;
|
IUnknown *unk;
|
||||||
HANDLE file;
|
HANDLE file;
|
||||||
BSTR bstr;
|
BSTR bstr;
|
||||||
char cstr[64];
|
WCHAR cstr[64];
|
||||||
BOOL ret;
|
BOOL ret;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -475,16 +463,16 @@ static void test_items(void)
|
||||||
switch (file_defs[i].type)
|
switch (file_defs[i].type)
|
||||||
{
|
{
|
||||||
case DIRECTORY:
|
case DIRECTORY:
|
||||||
r = CreateDirectoryA(file_defs[i].name, NULL);
|
r = CreateDirectoryW(file_defs[i].name, NULL);
|
||||||
ok(r, "CreateDirectory failed: %08lx\n", GetLastError());
|
ok(r, "CreateDirectory failed: %08lx\n", GetLastError());
|
||||||
PathCombineA(cstr, file_defs[i].name, "foo.txt");
|
PathCombineW(cstr, file_defs[i].name, L"foo.txt");
|
||||||
file = CreateFileA(cstr, 0, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
file = CreateFileW(cstr, 0, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||||
ok(file != INVALID_HANDLE_VALUE, "CreateFile failed: %08lx\n", GetLastError());
|
ok(file != INVALID_HANDLE_VALUE, "CreateFile failed: %08lx\n", GetLastError());
|
||||||
CloseHandle(file);
|
CloseHandle(file);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EMPTY_FILE:
|
case EMPTY_FILE:
|
||||||
file = CreateFileA(file_defs[i].name, 0, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
file = CreateFileW(file_defs[i].name, 0, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||||
ok(file != INVALID_HANDLE_VALUE, "CreateFile failed: %08lx\n", GetLastError());
|
ok(file != INVALID_HANDLE_VALUE, "CreateFile failed: %08lx\n", GetLastError());
|
||||||
CloseHandle(file);
|
CloseHandle(file);
|
||||||
break;
|
break;
|
||||||
|
@ -644,7 +632,7 @@ static void test_items(void)
|
||||||
"file_defs[%d]: expected %s, got %s\n", i, wine_dbgstr_w(path), wine_dbgstr_w(bstr));
|
"file_defs[%d]: expected %s, got %s\n", i, wine_dbgstr_w(path), wine_dbgstr_w(bstr));
|
||||||
SysFreeString(bstr);
|
SysFreeString(bstr);
|
||||||
|
|
||||||
bstr = a2bstr(file_defs[i].name);
|
bstr = SysAllocString(file_defs[i].name);
|
||||||
r = FolderItem_get_Name(item, &name);
|
r = FolderItem_get_Name(item, &name);
|
||||||
ok(r == S_OK, "Failed to get item name, hr %#lx.\n", r);
|
ok(r == S_OK, "Failed to get item name, hr %#lx.\n", r);
|
||||||
/* Returned display name does not have to strictly match file name, e.g. extension could be omitted. */
|
/* Returned display name does not have to strictly match file name, e.g. extension could be omitted. */
|
||||||
|
@ -678,7 +666,7 @@ static void test_items(void)
|
||||||
if (file_defs[i].type == DIRECTORY)
|
if (file_defs[i].type == DIRECTORY)
|
||||||
{
|
{
|
||||||
/* test that getting an item object for a file in a subdirectory succeeds */
|
/* test that getting an item object for a file in a subdirectory succeeds */
|
||||||
PathCombineA(cstr, file_defs[i].name, "foo.txt");
|
PathCombineW(cstr, file_defs[i].name, L"foo.txt");
|
||||||
variant_set_string(&str_index2, cstr);
|
variant_set_string(&str_index2, cstr);
|
||||||
item2 = NULL;
|
item2 = NULL;
|
||||||
r = FolderItems_Item(items, str_index2, &item2);
|
r = FolderItems_Item(items, str_index2, &item2);
|
||||||
|
@ -688,13 +676,13 @@ static void test_items(void)
|
||||||
VariantClear(&str_index2);
|
VariantClear(&str_index2);
|
||||||
|
|
||||||
/* delete the file in the subdirectory */
|
/* delete the file in the subdirectory */
|
||||||
ret = DeleteFileA(cstr);
|
ret = DeleteFileW(cstr);
|
||||||
ok(ret, "file_defs[%d]: DeleteFile failed: %08lx\n", i, GetLastError());
|
ok(ret, "file_defs[%d]: DeleteFile failed: %08lx\n", i, GetLastError());
|
||||||
|
|
||||||
/* test that getting an item object via a relative path fails */
|
/* test that getting an item object via a relative path fails */
|
||||||
strcpy(cstr, file_defs[i].name);
|
wcscpy(cstr, file_defs[i].name);
|
||||||
strcat(cstr, "\\..\\");
|
wcscat(cstr, L"\\..\\");
|
||||||
strcat(cstr, file_defs[i].name);
|
wcscat(cstr, file_defs[i].name);
|
||||||
variant_set_string(&str_index2, cstr);
|
variant_set_string(&str_index2, cstr);
|
||||||
item2 = (FolderItem*)0xdeadbeef;
|
item2 = (FolderItem*)0xdeadbeef;
|
||||||
r = FolderItems_Item(items, str_index2, &item2);
|
r = FolderItems_Item(items, str_index2, &item2);
|
||||||
|
@ -703,12 +691,12 @@ static void test_items(void)
|
||||||
VariantClear(&str_index2);
|
VariantClear(&str_index2);
|
||||||
|
|
||||||
/* remove the directory */
|
/* remove the directory */
|
||||||
ret = RemoveDirectoryA(file_defs[i].name);
|
ret = RemoveDirectoryW(file_defs[i].name);
|
||||||
ok(ret, "file_defs[%d]: RemoveDirectory failed: %08lx\n", i, GetLastError());
|
ok(ret, "file_defs[%d]: RemoveDirectory failed: %08lx\n", i, GetLastError());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ret = DeleteFileA(file_defs[i].name);
|
ret = DeleteFileW(file_defs[i].name);
|
||||||
ok(ret, "file_defs[%d]: DeleteFile failed: %08lx\n", i, GetLastError());
|
ok(ret, "file_defs[%d]: DeleteFile failed: %08lx\n", i, GetLastError());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue