static void test_GetObject(void) { IActiveScriptParse *parser; HRESULT hres; /* Never allowed with security manager */ parser = create_script(TRUE); hres = parse_script_ae(parser, "Call GetObject(\"clsid:" TESTOBJINST_CLSID "\").reportSuccess()"); ok(hres == VB_E_CANNOT_CREATE_OBJ, "hres = %08x\n", hres); IActiveScriptParse_Release(parser); parser = create_script(FALSE); SET_EXPECT(QI_IObjectWithSite); SET_EXPECT(SetSite); SET_EXPECT(reportSuccess); hres = parse_script_ae(parser, "Call GetObject(\"clsid:" TESTOBJINST_CLSID "\").reportSuccess()"); if(hres == HRESULT_FROM_WIN32(ERROR_MOD_NOT_FOUND)) { /* Workaround for broken win2k */ win_skip("got unexpected error %08x\n", hres); CLEAR_CALLED(QI_IObjectWithSite); CLEAR_CALLED(SetSite); CLEAR_CALLED(reportSuccess); IActiveScriptParse_Release(parser); return; } ok(hres == S_OK, "hres = %08x\n", hres); CHECK_CALLED(QI_IObjectWithSite); CHECK_CALLED(SetSite); CHECK_CALLED(reportSuccess); SetSite_hres = E_FAIL; SET_EXPECT(QI_IObjectWithSite); SET_EXPECT(SetSite); hres = parse_script_ae(parser, "Call GetObject(\"clsid:" TESTOBJINST_CLSID "\").reportSuccess()"); ok(hres == E_FAIL, "hres = %08x\n", hres); CHECK_CALLED(QI_IObjectWithSite); CHECK_CALLED(SetSite); QI_IObjectWithSite_hres = E_NOINTERFACE; SET_EXPECT(QI_IObjectWithSite); SET_EXPECT(reportSuccess); parse_script_a(parser, "Call GetObject(\"clsid:" TESTOBJINST_CLSID "\").reportSuccess()"); CHECK_CALLED(QI_IObjectWithSite); CHECK_CALLED(reportSuccess); IActiveScriptParse_Release(parser); /* Invalid moniker */ parser = create_script(FALSE); hres = parse_script_ae(parser, "Call GetObject(\"nonexistent:test\").reportSuccess()"); ok(hres == MK_E_SYNTAX, "hres = %08x\n", hres); IActiveScriptParse_Release(parser); }
static void test_CreateObject(void) { IActiveScriptParse *parser; HRESULT hres; parser = create_script(TRUE); SET_EXPECT(Host_QS_SecMgr); SET_EXPECT(ProcessUrlAction); SET_EXPECT(CreateInstance); SET_EXPECT(QueryCustomPolicy); SET_EXPECT(QI_IObjectWithSite); SET_EXPECT(reportSuccess); parse_script_a(parser, "Call CreateObject(\"Wine.Test\").reportSuccess()"); CHECK_CALLED(Host_QS_SecMgr); CHECK_CALLED(ProcessUrlAction); CHECK_CALLED(CreateInstance); CHECK_CALLED(QueryCustomPolicy); CHECK_CALLED(QI_IObjectWithSite); CHECK_CALLED(reportSuccess); IUnknown_Release(parser); parser = create_script(TRUE); hres = parse_script_ae(parser, "Call CreateObject(\"Wine.TestABC\")"); ok(hres == VB_E_CANNOT_CREATE_OBJ, "hres = %08x\n", hres); IUnknown_Release(parser); parser = create_script(TRUE); QS_SecMgr_hres = E_NOINTERFACE; SET_EXPECT(Host_QS_SecMgr); hres = parse_script_ae(parser, "Call CreateObject(\"Wine.Test\")"); ok(hres == VB_E_CANNOT_CREATE_OBJ, "hres = %08x\n", hres); CHECK_CALLED(Host_QS_SecMgr); IUnknown_Release(parser); parser = create_script(TRUE); ProcessUrlAction_hres = E_FAIL; SET_EXPECT(Host_QS_SecMgr); SET_EXPECT(ProcessUrlAction); hres = parse_script_ae(parser, "Call CreateObject(\"Wine.Test\")"); ok(hres == VB_E_CANNOT_CREATE_OBJ, "hres = %08x\n", hres); CHECK_CALLED(Host_QS_SecMgr); CHECK_CALLED(ProcessUrlAction); IUnknown_Release(parser); parser = create_script(TRUE); ProcessUrlAction_policy = URLPOLICY_DISALLOW; SET_EXPECT(Host_QS_SecMgr); SET_EXPECT(ProcessUrlAction); hres = parse_script_ae(parser, "Call CreateObject(\"Wine.Test\")"); ok(hres == VB_E_CANNOT_CREATE_OBJ, "hres = %08x\n", hres); CHECK_CALLED(Host_QS_SecMgr); CHECK_CALLED(ProcessUrlAction); IUnknown_Release(parser); parser = create_script(TRUE); CreateInstance_hres = E_FAIL; SET_EXPECT(Host_QS_SecMgr); SET_EXPECT(ProcessUrlAction); SET_EXPECT(CreateInstance); hres = parse_script_ae(parser, "Call CreateObject(\"Wine.Test\")"); ok(hres == VB_E_CANNOT_CREATE_OBJ, "hres = %08x\n", hres); CHECK_CALLED(Host_QS_SecMgr); CHECK_CALLED(ProcessUrlAction); CHECK_CALLED(CreateInstance); IUnknown_Release(parser); parser = create_script(TRUE); QueryCustomPolicy_hres = E_FAIL; SET_EXPECT(Host_QS_SecMgr); SET_EXPECT(ProcessUrlAction); SET_EXPECT(CreateInstance); SET_EXPECT(QueryCustomPolicy); hres = parse_script_ae(parser, "Call CreateObject(\"Wine.Test\")"); ok(hres == VB_E_CANNOT_CREATE_OBJ, "hres = %08x\n", hres); CHECK_CALLED(Host_QS_SecMgr); CHECK_CALLED(ProcessUrlAction); CHECK_CALLED(CreateInstance); CHECK_CALLED(QueryCustomPolicy); IUnknown_Release(parser); parser = create_script(TRUE); QueryCustomPolicy_psize = 6; SET_EXPECT(Host_QS_SecMgr); SET_EXPECT(ProcessUrlAction); SET_EXPECT(CreateInstance); SET_EXPECT(QueryCustomPolicy); SET_EXPECT(QI_IObjectWithSite); SET_EXPECT(reportSuccess); parse_script_a(parser, "Call CreateObject(\"Wine.Test\").reportSuccess()"); CHECK_CALLED(Host_QS_SecMgr); CHECK_CALLED(ProcessUrlAction); CHECK_CALLED(CreateInstance); CHECK_CALLED(QueryCustomPolicy); CHECK_CALLED(QI_IObjectWithSite); CHECK_CALLED(reportSuccess); IUnknown_Release(parser); parser = create_script(TRUE); QueryCustomPolicy_policy = URLPOLICY_DISALLOW; SET_EXPECT(Host_QS_SecMgr); SET_EXPECT(ProcessUrlAction); SET_EXPECT(CreateInstance); SET_EXPECT(QueryCustomPolicy); hres = parse_script_ae(parser, "Call CreateObject(\"Wine.Test\")"); ok(hres == VB_E_CANNOT_CREATE_OBJ, "hres = %08x\n", hres); CHECK_CALLED(Host_QS_SecMgr); CHECK_CALLED(ProcessUrlAction); CHECK_CALLED(CreateInstance); CHECK_CALLED(QueryCustomPolicy); QueryCustomPolicy_psize = 6; SET_EXPECT(ProcessUrlAction); SET_EXPECT(CreateInstance); SET_EXPECT(QueryCustomPolicy); hres = parse_script_ae(parser, "Call CreateObject(\"Wine.Test\")"); ok(hres == VB_E_CANNOT_CREATE_OBJ, "hres = %08x\n", hres); CHECK_CALLED(ProcessUrlAction); CHECK_CALLED(CreateInstance); CHECK_CALLED(QueryCustomPolicy); QueryCustomPolicy_policy = URLPOLICY_ALLOW; QueryCustomPolicy_psize = 3; SET_EXPECT(ProcessUrlAction); SET_EXPECT(CreateInstance); SET_EXPECT(QueryCustomPolicy); hres = parse_script_ae(parser, "Call CreateObject(\"Wine.Test\")"); ok(hres == VB_E_CANNOT_CREATE_OBJ, "hres = %08x\n", hres); CHECK_CALLED(ProcessUrlAction); CHECK_CALLED(CreateInstance); CHECK_CALLED(QueryCustomPolicy); IUnknown_Release(parser); parser = create_script(FALSE); SET_EXPECT(CreateInstance); SET_EXPECT(QI_IObjectWithSite); SET_EXPECT(reportSuccess); parse_script_a(parser, "Call CreateObject(\"Wine.Test\").reportSuccess()"); CHECK_CALLED(CreateInstance); CHECK_CALLED(QI_IObjectWithSite); CHECK_CALLED(reportSuccess); IUnknown_Release(parser); parser = create_script(TRUE); object_with_site = &ObjectWithSite; SET_EXPECT(Host_QS_SecMgr); SET_EXPECT(ProcessUrlAction); SET_EXPECT(CreateInstance); SET_EXPECT(QueryCustomPolicy); SET_EXPECT(QI_IObjectWithSite); SET_EXPECT(SetSite); SET_EXPECT(reportSuccess); parse_script_a(parser, "Call CreateObject(\"Wine.Test\").reportSuccess()"); CHECK_CALLED(Host_QS_SecMgr); CHECK_CALLED(ProcessUrlAction); CHECK_CALLED(CreateInstance); CHECK_CALLED(QueryCustomPolicy); CHECK_CALLED(QI_IObjectWithSite); CHECK_CALLED(SetSite); CHECK_CALLED(reportSuccess); SetSite_hres = E_FAIL; SET_EXPECT(ProcessUrlAction); SET_EXPECT(CreateInstance); SET_EXPECT(QueryCustomPolicy); SET_EXPECT(QI_IObjectWithSite); SET_EXPECT(SetSite); hres = parse_script_ae(parser, "Call CreateObject(\"Wine.Test\")"); ok(hres == VB_E_CANNOT_CREATE_OBJ, "hres = %08x\n", hres); CHECK_CALLED(ProcessUrlAction); CHECK_CALLED(CreateInstance); CHECK_CALLED(QueryCustomPolicy); CHECK_CALLED(QI_IObjectWithSite); CHECK_CALLED(SetSite); IUnknown_Release(parser); }