Author: tfaber
Date: Sat Jun 20 16:28:38 2015
New Revision: 68209
URL:
http://svn.reactos.org/svn/reactos?rev=68209&view=rev
Log:
[SHELL32_APITEST]
- Add a test for CLSID_MyComputer that shows this folder object is also cached.
CORE-9839
Added:
trunk/rostests/apitests/shell32/CMyComputer.cpp (with props)
Modified:
trunk/rostests/apitests/shell32/CMakeLists.txt
trunk/rostests/apitests/shell32/testlist.c
Modified: trunk/rostests/apitests/shell32/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/shell32/CMakeLis…
==============================================================================
--- trunk/rostests/apitests/shell32/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/rostests/apitests/shell32/CMakeLists.txt [iso-8859-1] Sat Jun 20 16:28:38 2015
@@ -4,6 +4,7 @@
include_directories(${REACTOS_SOURCE_DIR}/lib/atl)
add_executable(shell32_apitest
+ CMyComputer.cpp
CShellDesktop.cpp
menu.cpp
testlist.c)
Added: trunk/rostests/apitests/shell32/CMyComputer.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/shell32/CMyCompu…
==============================================================================
--- trunk/rostests/apitests/shell32/CMyComputer.cpp (added)
+++ trunk/rostests/apitests/shell32/CMyComputer.cpp [iso-8859-1] Sat Jun 20 16:28:38 2015
@@ -0,0 +1,81 @@
+/*
+ * PROJECT: ReactOS api tests
+ * LICENSE: LGPLv2.1+ - See COPYING.LIB in the top level directory
+ * PURPOSE: Test for CMyComputer
+ * PROGRAMMER: Thomas Faber <thomas.faber(a)reactos.org>
+ */
+
+#include "shelltest.h"
+#include <atlbase.h>
+#include <atlcom.h>
+#include <strsafe.h>
+
+#define NDEBUG
+#include <debug.h>
+#include <shellutils.h>
+
+static
+VOID
+TestShellFolder(
+ _In_ IShellFolder2 *psf2)
+{
+ HRESULT hr;
+ CComPtr<IDropTarget> pdt;
+ CComPtr<IDropTarget> pdt_2;
+ CComPtr<IContextMenu> pcm;
+ CComPtr<IContextMenu> pcm_2;
+ CComPtr<IShellView> psv;
+ CComPtr<IShellView> psv_2;
+
+ hr = psf2->CreateViewObject(NULL, IID_PPV_ARG(IDropTarget, &pdt));
+ ok(hr == S_OK, "hr = %lx\n", hr);
+
+ hr = psf2->CreateViewObject(NULL, IID_PPV_ARG(IDropTarget, &pdt_2));
+ ok(hr == S_OK, "hr = %lx\n", hr);
+ ok(pdt != pdt_2, "Expected %p != %p\n", static_cast<PVOID>(pdt),
static_cast<PVOID>(pdt_2));
+
+ hr = psf2->CreateViewObject(NULL, IID_PPV_ARG(IContextMenu, &pcm));
+ ok(hr == S_OK, "hr = %lx\n", hr);
+
+ hr = psf2->CreateViewObject(NULL, IID_PPV_ARG(IContextMenu, &pcm_2));
+ ok(hr == S_OK, "hr = %lx\n", hr);
+ ok(pcm != pcm_2, "Expected %p != %p\n", static_cast<PVOID>(pcm),
static_cast<PVOID>(pcm_2));
+
+ hr = psf2->CreateViewObject(NULL, IID_PPV_ARG(IShellView, &psv));
+ ok(hr == S_OK, "hr = %lx\n", hr);
+
+ hr = psf2->CreateViewObject(NULL, IID_PPV_ARG(IShellView, &psv_2));
+ ok(hr == S_OK, "hr = %lx\n", hr);
+ ok(psv != psv_2, "Expected %p != %p\n", static_cast<PVOID>(psv),
static_cast<PVOID>(psv_2));
+}
+
+START_TEST(CMyComputer)
+{
+ HRESULT hr;
+ CComPtr<IShellFolder2> psf2;
+ CComPtr<IShellFolder2> psf2_2;
+ CComPtr<IShellFolder> psf;
+
+ CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
+
+ hr = CoCreateInstance(CLSID_MyComputer,
+ NULL,
+ CLSCTX_INPROC_SERVER,
+ IID_PPV_ARG(IShellFolder2, &psf2));
+ ok(hr == S_OK, "hr = %lx\n", hr);
+ if (FAILED(hr))
+ {
+ skip("Could not instantiate CShellDesktop\n");
+ return;
+ }
+
+ /* second create should give us a pointer to the same object */
+ hr = CoCreateInstance(CLSID_MyComputer,
+ NULL,
+ CLSCTX_INPROC_SERVER,
+ IID_PPV_ARG(IShellFolder2, &psf2_2));
+ ok(hr == S_OK, "hr = %lx\n", hr);
+ ok(psf2 == psf2_2, "Expected %p == %p\n", static_cast<PVOID>(psf2),
static_cast<PVOID>(psf2_2));
+
+ TestShellFolder(psf2);
+}
Propchange: trunk/rostests/apitests/shell32/CMyComputer.cpp
------------------------------------------------------------------------------
svn:eol-style = native
Modified: trunk/rostests/apitests/shell32/testlist.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/shell32/testlist…
==============================================================================
--- trunk/rostests/apitests/shell32/testlist.c [iso-8859-1] (original)
+++ trunk/rostests/apitests/shell32/testlist.c [iso-8859-1] Sat Jun 20 16:28:38 2015
@@ -3,11 +3,13 @@
#define STANDALONE
#include <wine/test.h>
+extern void func_CMyComputer(void);
extern void func_CShellDesktop(void);
extern void func_menu(void);
const struct test winetest_testlist[] =
{
+ { "CMyComputer", func_CMyComputer },
{ "CShellDesktop", func_CShellDesktop },
{ "menu", func_menu },
{ 0, 0 }