shell32/tests: Don't crash on missing class implementations.
This commit is contained in:
parent
5bd7e306b4
commit
c88aea3b0c
|
@ -33,7 +33,7 @@ static HWND hMainWnd, hEdit;
|
||||||
static HINSTANCE hinst;
|
static HINSTANCE hinst;
|
||||||
static int killfocus_count;
|
static int killfocus_count;
|
||||||
|
|
||||||
static void test_init(void) {
|
static BOOL test_init(void) {
|
||||||
HRESULT r;
|
HRESULT r;
|
||||||
IAutoComplete* ac;
|
IAutoComplete* ac;
|
||||||
IUnknown *acSource;
|
IUnknown *acSource;
|
||||||
|
@ -41,16 +41,28 @@ static void test_init(void) {
|
||||||
/* AutoComplete instance */
|
/* AutoComplete instance */
|
||||||
r = CoCreateInstance(&CLSID_AutoComplete, NULL, CLSCTX_INPROC_SERVER,
|
r = CoCreateInstance(&CLSID_AutoComplete, NULL, CLSCTX_INPROC_SERVER,
|
||||||
&IID_IAutoComplete, (LPVOID*)&ac);
|
&IID_IAutoComplete, (LPVOID*)&ac);
|
||||||
|
if (r == REGDB_E_CLASSNOTREG)
|
||||||
|
{
|
||||||
|
win_skip("CLSID_AutoComplete is not registered\n");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
ok(SUCCEEDED(r), "no IID_IAutoComplete (0x%08x)\n", r);
|
ok(SUCCEEDED(r), "no IID_IAutoComplete (0x%08x)\n", r);
|
||||||
|
|
||||||
/* AutoComplete source */
|
/* AutoComplete source */
|
||||||
r = CoCreateInstance(&CLSID_ACLMulti, NULL, CLSCTX_INPROC_SERVER,
|
r = CoCreateInstance(&CLSID_ACLMulti, NULL, CLSCTX_INPROC_SERVER,
|
||||||
&IID_IACList, (LPVOID*)&acSource);
|
&IID_IACList, (LPVOID*)&acSource);
|
||||||
|
if (r == REGDB_E_CLASSNOTREG)
|
||||||
|
{
|
||||||
|
win_skip("CLSID_ACLMulti is not registered\n");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
ok(SUCCEEDED(r), "no IID_IACList (0x%08x)\n", r);
|
ok(SUCCEEDED(r), "no IID_IACList (0x%08x)\n", r);
|
||||||
|
|
||||||
/* bind to edit control */
|
/* bind to edit control */
|
||||||
r = IAutoComplete_Init(ac, hEdit, acSource, NULL, NULL);
|
r = IAutoComplete_Init(ac, hEdit, acSource, NULL, NULL);
|
||||||
ok(SUCCEEDED(r), "Init failed (0x%08x)\n", r);
|
ok(SUCCEEDED(r), "Init failed (0x%08x)\n", r);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
static void test_killfocus(void) {
|
static void test_killfocus(void) {
|
||||||
/* Test if WM_KILLFOCUS messages are handled properly by checking if
|
/* Test if WM_KILLFOCUS messages are handled properly by checking if
|
||||||
|
@ -106,7 +118,8 @@ START_TEST(autocomplete) {
|
||||||
if(!ok(hMainWnd != NULL, "Failed to create parent window. Tests aborted.\n"))
|
if(!ok(hMainWnd != NULL, "Failed to create parent window. Tests aborted.\n"))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
test_init();
|
if (!test_init())
|
||||||
|
goto cleanup;
|
||||||
test_killfocus();
|
test_killfocus();
|
||||||
|
|
||||||
PostQuitMessage(0);
|
PostQuitMessage(0);
|
||||||
|
@ -115,6 +128,7 @@ START_TEST(autocomplete) {
|
||||||
DispatchMessageA(&msg);
|
DispatchMessageA(&msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cleanup:
|
||||||
DestroyWindow(hEdit);
|
DestroyWindow(hEdit);
|
||||||
DestroyWindow(hMainWnd);
|
DestroyWindow(hMainWnd);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue