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/CMakeLists.txt?rev=68209&r1=68208&r2=68209&view=diff
==============================================================================
--- 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/CMyComputer.cpp?rev=68209
==============================================================================
--- 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 <[email protected]>
+ */
+
+#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.c?rev=68209&r1=68208&r2=68209&view=diff
==============================================================================
--- 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 }


Reply via email to