[COM_APITEST]

- Add test for netshell classes
- Add some interfaces

svn path=/trunk/; revision=67313
This commit is contained in:
Thomas Faber 2015-04-19 21:28:09 +00:00
parent bea0b47db6
commit a04d175469
8 changed files with 196 additions and 8 deletions

View file

@ -4,6 +4,7 @@ add_definitions(-DWINE_NO_UNICODE_MACROS)
list(APPEND SOURCE
browseui.c
ieframe.c
netshell.c
shdocvw.c
shell32.c
com_apitest.c

View file

@ -34,7 +34,11 @@ static KNOWN_INTERFACE KnownInterfaces[] =
{ ID_NAME(IID_IACList), TRUE },
{ ID_NAME(IID_IACList2), TRUE },
{ ID_NAME(IID_IADesktopP2), TRUE },
{ ID_NAME(IID_IAccIdentity) },
{ ID_NAME(IID_IAccPropServer) },
{ ID_NAME(IID_IAccPropServices) },
{ ID_NAME(IID_IAccessible) },
{ ID_NAME(IID_IAccessibleHandler) },
{ ID_NAME(IID_IAccessControl), TRUE },
{ ID_NAME(IID_IAccessor) },
{ ID_NAME(IID_IActiveDesktop), TRUE },
@ -88,6 +92,7 @@ static KNOWN_INTERFACE KnownInterfaces[] =
{ ID_NAME(IID_IDefViewFrameGroup) },
{ ID_NAME(IID_IDefViewSafety), },
{ ID_NAME(IID_IDefViewScript), TRUE },
{ ID_NAME(IID_IDelayedRelease), TRUE },
{ ID_NAME(IID_IDeskBand) },
{ ID_NAME(IID_IDeskBandEx) },
{ ID_NAME(IID_IDeskBar), TRUE },
@ -105,6 +110,7 @@ static KNOWN_INTERFACE KnownInterfaces[] =
{ ID_NAME(IID_IEnumExtraSearch) },
{ ID_NAME(IID_IEnumGUID) },
{ ID_NAME(IID_IEnumIDList) },
{ ID_NAME(IID_IEnumNetConnection) },
{ ID_NAME(IID_IEnumShellItems) },
{ ID_NAME(IID_IEnumString) },
{ ID_NAME(IID_IEnumUnknown) },
@ -132,6 +138,7 @@ static KNOWN_INTERFACE KnownInterfaces[] =
{ ID_NAME(IID_IFolderViewHost), TRUE },
{ ID_NAME(IID_IFolderViewOC) },
{ ID_NAME(IID_IFolderViewSettings) },
{ ID_NAME(IID_IGetNameSpaceExtensionPointer),TRUE},
{ ID_NAME(IID_IGlobalFolderSettings), TRUE },
{ ID_NAME(IID_IHWEventHandler) },
{ ID_NAME(IID_IHWEventHandler2) },
@ -148,6 +155,12 @@ static KNOWN_INTERFACE KnownInterfaces[] =
{ ID_NAME(IID_IMultiQI), TRUE },
{ ID_NAME(IID_INamespaceProxy), TRUE },
{ ID_NAME(IID_INameSpaceTreeControl), TRUE },
{ ID_NAME(IID_INetConnectionConnectUi), TRUE },
{ ID_NAME(IID_INetConnectionPropertyUi), TRUE },
{ ID_NAME(IID_INetConnectionPropertyUi2), TRUE },
{ ID_NAME(IID_INetConnectionManager) },
{ ID_NAME(IID_INewShortcutHookA), TRUE },
{ ID_NAME(IID_INewShortcutHookW), TRUE },
{ ID_NAME(IID_INSCTree), TRUE },
{ ID_NAME(IID_INSCTree2), TRUE },
{ ID_NAME(IID_IObjMgr), TRUE },
@ -169,6 +182,7 @@ static KNOWN_INTERFACE KnownInterfaces[] =
{ ID_NAME(IID_IPersistFolder) },
{ ID_NAME(IID_IPersistFolder2) },
{ ID_NAME(IID_IPersistFolder3) },
{ ID_NAME(IID_IPersistFreeThreadedObject), TRUE },
{ ID_NAME(IID_IPersistHistory) },
{ ID_NAME(IID_IPersistIDList) },
{ ID_NAME(IID_IPersistMemory) },
@ -183,6 +197,7 @@ static KNOWN_INTERFACE KnownInterfaces[] =
{ ID_NAME(IID_IProgressDialog), TRUE },
{ ID_NAME(IID_IPropertyBag) },
{ ID_NAME(IID_IPropertyBag2) },
{ ID_NAME(IID_IPropSheetPage), TRUE },
{ ID_NAME(IID_IQueryAssociations), TRUE },
{ ID_NAME(IID_IQueryInfo), TRUE },
{ ID_NAME(IID_IRegTreeOptions), TRUE },
@ -196,6 +211,8 @@ static KNOWN_INTERFACE KnownInterfaces[] =
{ ID_NAME(IID_IShellBrowser) },
{ ID_NAME(IID_IShellBrowserService), TRUE },
{ ID_NAME(IID_IShellChangeNotify), TRUE },
{ ID_NAME(IID_IShellCopyHookA), TRUE },
{ ID_NAME(IID_IShellCopyHookW), TRUE },
{ ID_NAME(IID_IShellDesktopTray), TRUE },
{ ID_NAME(IID_IShellDetails), TRUE },
{ ID_NAME(IID_IShellDispatch) },
@ -203,9 +220,9 @@ static KNOWN_INTERFACE KnownInterfaces[] =
{ ID_NAME(IID_IShellDispatch3) },
{ ID_NAME(IID_IShellDispatch4) },
{ ID_NAME(IID_IShellDispatch5), TRUE },
{ ID_NAME(IID_IShellExecuteHookA), TRUE },
{ ID_NAME(IID_IShellExecuteHookW), TRUE },
{ ID_NAME(IID_IShellExtInit), TRUE },
{ ID_NAME(IID_IShellPropSheetExt), TRUE },
{ ID_NAME(IID_IShellIconOverlayIdentifier), TRUE },
{ ID_NAME(IID_IShellFolder) },
{ ID_NAME(IID_IShellFolder2) },
{ ID_NAME(IID_IShellFolderBand), TRUE },
@ -257,6 +274,8 @@ static KNOWN_INTERFACE KnownInterfaces[] =
{ ID_NAME(IID_ITrayPriv), TRUE },
{ ID_NAME(IID_ITrayPriv2), TRUE },
{ ID_NAME(IID_IUnknown) },
{ ID_NAME(IID_IURLSearchHook), TRUE },
{ ID_NAME(IID_IURLSearchHook2), TRUE },
{ ID_NAME(IID_IViewObject) },
{ ID_NAME(IID_IViewObject2) },
{ ID_NAME(IID_IViewObjectEx), TRUE },

View file

@ -23,6 +23,7 @@
#include <objsafe.h>
#include <oleacc.h>
#include <oaidl.h>
#include <netcon.h>
#include <mshtmhst.h>
#include <perhist.h>
#include <shlguid.h>
@ -126,9 +127,11 @@ DEFINE_GUID(IID_IFolderFilterSite, 0xc0a651f5, 0xb48b, 0x11d2, 0xb5, 0xe
DEFINE_GUID(IID_IFolderView2, 0x1af3a467, 0x214f, 0x4298, 0x90, 0x8e, 0x06, 0xb0, 0x3e, 0x0b, 0x39, 0xf9);
DEFINE_GUID(IID_IFolderViewHost, 0x1ea58f02, 0xd55a, 0x411d, 0xb0, 0x9e, 0x9e, 0x65, 0xac, 0x21, 0x60, 0x5b);
DEFINE_GUID(IID_IFolderViewSettings, 0xae8c987d, 0x8797, 0x4ed3, 0xbe, 0x72, 0x2a, 0x47, 0xdd, 0x93, 0x8d, 0xb0);
DEFINE_GUID(IID_IGetNameSpaceExtensionPointer,0x287d4a71, 0x439f, 0x43a4, 0x8d, 0x5b, 0x0e, 0x0a, 0xe7, 0x1e, 0x84, 0xa9);
DEFINE_GUID(IID_IHWEventHandler, 0xc1fb73d0, 0xec3a, 0x4ba2, 0xb5, 0x12, 0x8c, 0xdb, 0x91, 0x87, 0xb6, 0xd1);
DEFINE_GUID(IID_IHWEventHandler2, 0xcfcc809f, 0x295d, 0x42e8, 0x9f, 0xfc, 0x42, 0x4b, 0x33, 0xc4, 0x87, 0xe6);
DEFINE_GUID(IID_IMultiMonitorDockingSite, 0x03879de0, 0xa205, 0x11d0, 0x99, 0xcb, 0x00, 0xc0, 0x4f, 0xd6, 0x55, 0xe1);
DEFINE_GUID(IID_IPersistFreeThreadedObject,0xc7264bf0, 0xedb6, 0x11d1, 0x85, 0x46, 0x00, 0x60, 0x08, 0x05, 0x93, 0x68);
DEFINE_GUID(IID_IPreviewHandler, 0x8895b1c6, 0xb41f, 0x4c1c, 0xa5, 0x62, 0x0d, 0x56, 0x42, 0x50, 0x83, 0x6f);
DEFINE_GUID(IID_IPreviewHandlerFrame, 0xfec87aaf, 0x35f9, 0x447a, 0xad, 0xb7, 0x20, 0x23, 0x44, 0x91, 0x40, 0x1a);
DEFINE_GUID(IID_IPreviewHandlerVisuals, 0x196bf9a5, 0xb346, 0x4ef0, 0xaa, 0x1e, 0x5d, 0xcd, 0xb7, 0x67, 0x68, 0xb1);

View file

@ -15,12 +15,20 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
{
ID_NAME(CLSID_ShellWindows),
{
{ -0xa0, &IID_IMarshal },
{ -0x20, &IID_IClientSecurity },
{ 0x0, &IID_IMultiQI },
{ -0xa0, &IID_IMarshal },
{ -0x20, &IID_IClientSecurity },
{ 0x0, &IID_IMultiQI },
{ 0x0, &IID_IUnknown },
{ FARAWY, &IID_IShellWindows },
{ FARAWY, &IID_IDispatch },
}
},
{
ID_NAME(CLSID_CURLSearchHook),
{
{ 0x0, &IID_IURLSearchHook2 },
{ 0x0, &IID_IURLSearchHook },
{ 0x0, &IID_IUnknown },
{ FARAWY, &IID_IShellWindows },
{ FARAWY, &IID_IDispatch },
}
},
};

View file

@ -0,0 +1,152 @@
/*
* PROJECT: ReactOS api tests
* LICENSE: LGPLv2.1+ - See COPYING.LIB in the top level directory
* PURPOSE: COM interface test for netshell classes
* PROGRAMMER: Thomas Faber <thomas.faber@reactos.org>
*/
#include "com_apitest.h"
#define NDEBUG
#include <debug.h>
static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
{
{
ID_NAME(CLSID_ConnectionCommonUi),
{
{ 0x0, &IID_IUnknown },
},
L"Both"
},
{
ID_NAME(CLSID_ConnectionFolder),
{
{ 0x0, &IID_IPersistFolder2 },
{ 0x0, &IID_IPersistFolder },
{ 0x0, &IID_IPersist },
{ 0x0, &IID_IUnknown },
{ 0x4, &IID_IShellExtInit },
{ 0x8, &IID_IShellFolder2 },
{ 0x8, &IID_IShellFolder },
{ 0xc, &IID_IOleCommandTarget },
{ 0x10, &IID_IShellFolderViewCB },
},
L"Both"
},
{
ID_NAME(CLSID_ConnectionFolderEnum),
{
{ 0x0, &IID_IEnumIDList },
{ 0x0, &IID_IUnknown },
},
L"Both"
},
#if 0
{
ID_NAME(CLSID_ConnectionManager),
{
{ 0x0, &IID_IUnknown },
}
},
#endif
{
ID_NAME(CLSID_ConnectionTray),
{
{ 0x0, &IID_IOleCommandTarget },
{ 0x0, &IID_IUnknown },
},
L"Both"
},
{
ID_NAME(CLSID_DialupConnectionUi),
{
{ 0x0, &IID_INetConnectionConnectUi },
{ 0x0, &IID_IUnknown },
{ 0x4, &IID_INetConnectionPropertyUi2 },
//{ 0x4, &IID_INetConnectionPropertyUi },
},
L"Both"
},
{
ID_NAME(CLSID_DirectConnectionUi),
{
{ 0x0, &IID_INetConnectionConnectUi },
{ 0x0, &IID_IUnknown },
{ 0x4, &IID_INetConnectionPropertyUi2 },
//{ 0x4, &IID_INetConnectionPropertyUi },
},
L"Both"
},
{
ID_NAME(CLSID_InboundConnectionUi),
{
{ 0x0, &IID_INetConnectionPropertyUi2 },
{ 0x0, &IID_IUnknown },
},
L"Both"
},
{
ID_NAME(CLSID_InternetConnectionUi),
{
{ 0x0, &IID_INetConnectionConnectUi },
{ 0x0, &IID_IUnknown },
{ 0x4, &IID_INetConnectionPropertyUi2 },
//{ 0x4, &IID_INetConnectionPropertyUi },
},
L"Both"
},
{
ID_NAME(CLSID_LanConnectionUi),
{
{ 0x0, &IID_INetConnectionConnectUi },
{ 0x0, &IID_IUnknown },
{ 0x4, &IID_INetConnectionPropertyUi2 },
{ 0x4, &IID_INetConnectionPropertyUi },
},
L"Both"
},
{
ID_NAME(CLSID_NetConnectionUiUtilities),
{
{ 0x0, &IID_IUnknown },
},
L"Both"
},
{
ID_NAME(CLSID_SharedAccessConnectionUi),
{
{ 0x0, &IID_INetConnectionConnectUi },
{ 0x0, &IID_IUnknown },
{ 0x4, &IID_INetConnectionPropertyUi2 },
{ 0x4, &IID_INetConnectionPropertyUi },
},
L"Both"
},
{
ID_NAME(CLSID_PPPoEUi),
{
{ 0x0, &IID_INetConnectionConnectUi },
{ 0x0, &IID_IUnknown },
{ 0x4, &IID_INetConnectionPropertyUi2 },
//{ 0x4, &IID_INetConnectionPropertyUi },
},
L"Both"
},
{
ID_NAME(CLSID_VpnConnectionUi),
{
{ 0x0, &IID_INetConnectionConnectUi },
{ 0x0, &IID_IUnknown },
{ 0x4, &IID_INetConnectionPropertyUi2 },
//{ 0x4, &IID_INetConnectionPropertyUi },
},
L"Both"
},
};
static const INT ExpectedInterfaceCount = RTL_NUMBER_OF(ExpectedInterfaces);
START_TEST(netshell)
{
TestClasses(L"netshell", ExpectedInterfaces, ExpectedInterfaceCount);
}

View file

@ -57,7 +57,7 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
{
ID_NAME(CLSID_ShellDispatchInproc),
{
{ 0x0, &IID_IUnknown },
{ 0x0, &IID_IUnknown },
}
},
#endif

View file

@ -274,6 +274,7 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
{ 0x10, &IID_IPersistFolder2 },
{ 0x10, &IID_IPersistFolder },
{ 0x10, &IID_IPersist },
{ 0x10, &IID_IPersistFreeThreadedObject },
{ FARAWY, &IID_IShellIconOverlay },
{ FARAWY, &IID_IShellFolder2 },
{ FARAWY, &IID_IShellFolder },
@ -304,6 +305,7 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
{ 0x10, &IID_IPersistFolder2 },
{ 0x10, &IID_IPersistFolder },
{ 0x10, &IID_IPersist },
{ 0x10, &IID_IPersistFreeThreadedObject },
{ FARAWY, &IID_IShellIconOverlay },
{ FARAWY, &IID_IShellFolder2 },
{ FARAWY, &IID_IShellFolder },
@ -453,6 +455,7 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
{ 0x18, &IID_IPersistFolder2 },
{ 0x18, &IID_IPersistFolder },
{ 0x18, &IID_IPersist },
{ 0x18, &IID_IPersistFreeThreadedObject },
{ 0x1c, &IID_IStorage },
{ 0x2c, &IID_IContextMenuCB },
{ 0x34, &IID_IOleCommandTarget },

View file

@ -6,6 +6,7 @@
extern void func_browseui(void);
extern void func_ieframe(void);
extern void func_interfaces(void);
extern void func_netshell(void);
extern void func_shdocvw(void);
extern void func_shell32(void);
@ -14,6 +15,7 @@ const struct test winetest_testlist[] =
{ "browseui", func_browseui },
{ "ieframe", func_ieframe },
{ "interfaces", func_interfaces },
{ "netshell", func_netshell },
{ "shdocvw", func_shdocvw },
{ "shell32", func_shell32 },