Huw Davies : ole32/tests: Add tests for InitNew().
Alexandre Julliard
julliard at winehq.org
Tue Jun 6 15:23:33 CDT 2017
Module: wine
Branch: master
Commit: 292f8266b951e8daef0067acb1ad3e98f218420d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=292f8266b951e8daef0067acb1ad3e98f218420d
Author: Huw Davies <huw at codeweavers.com>
Date: Tue Jun 6 11:46:54 2017 +0100
ole32/tests: Add tests for InitNew().
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ole32/tests/ole2.c | 115 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 115 insertions(+)
diff --git a/dlls/ole32/tests/ole2.c b/dlls/ole32/tests/ole2.c
index 2db6de9..b30f63b 100644
--- a/dlls/ole32/tests/ole2.c
+++ b/dlls/ole32/tests/ole2.c
@@ -2300,6 +2300,120 @@ static void test_data_cache_init(void)
}
}
+static void test_data_cache_initnew(void)
+{
+ HRESULT hr;
+ IOleCache2 *cache;
+ IPersistStorage *persist;
+ IStorage *stg_dib, *stg_mf, *stg_wine;
+ CLSID clsid;
+ static const STATDATA initnew_expect[] =
+ {
+ {{ CF_DIB, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }, 0, NULL, 1 },
+ {{ CF_BITMAP, 0, DVASPECT_CONTENT, -1, TYMED_GDI }, 0, NULL, 1 },
+ };
+ static const STATDATA initnew2_expect[] =
+ {
+ {{ CF_METAFILEPICT, 0, DVASPECT_CONTENT, -1, TYMED_MFPICT }, 0, NULL, 1 },
+ {{ CF_DIB, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }, 0, NULL, 2 },
+ {{ CF_BITMAP, 0, DVASPECT_CONTENT, -1, TYMED_GDI }, 0, NULL, 2 },
+ };
+ static const STATDATA initnew3_expect[] =
+ {
+ {{ CF_DIB, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }, 0, NULL, 1 },
+ {{ CF_BITMAP, 0, DVASPECT_CONTENT, -1, TYMED_GDI }, 0, NULL, 1 },
+ {{ CF_DIB, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }, 0, NULL, 2 },
+ {{ CF_BITMAP, 0, DVASPECT_CONTENT, -1, TYMED_GDI }, 0, NULL, 2 },
+ {{ CF_METAFILEPICT, 0, DVASPECT_CONTENT, -1, TYMED_MFPICT }, 0, NULL, 3 },
+ };
+ static const STATDATA initnew4_expect[] =
+ {
+ {{ CF_DIB, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }, 0, NULL, 2 },
+ {{ CF_BITMAP, 0, DVASPECT_CONTENT, -1, TYMED_GDI }, 0, NULL, 2 },
+ {{ CF_METAFILEPICT, 0, DVASPECT_CONTENT, -1, TYMED_MFPICT }, 0, NULL, 3 },
+ {{ CF_DIB, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }, 0, NULL, 4 },
+ {{ CF_BITMAP, 0, DVASPECT_CONTENT, -1, TYMED_GDI }, 0, NULL, 4 },
+ };
+
+ hr = StgCreateDocfile( NULL, STGM_READWRITE | STGM_SHARE_EXCLUSIVE | STGM_CREATE | STGM_DELETEONRELEASE, 0, &stg_dib );
+ ok( hr == S_OK, "got %08x\n", hr);
+ hr = IStorage_SetClass( stg_dib, &CLSID_Picture_Dib );
+ ok( hr == S_OK, "got %08x\n", hr);
+
+ hr = StgCreateDocfile( NULL, STGM_READWRITE | STGM_SHARE_EXCLUSIVE | STGM_CREATE | STGM_DELETEONRELEASE, 0, &stg_mf );
+ ok( hr == S_OK, "got %08x\n", hr);
+ hr = IStorage_SetClass( stg_mf, &CLSID_Picture_Metafile );
+ ok( hr == S_OK, "got %08x\n", hr);
+
+ hr = StgCreateDocfile( NULL, STGM_READWRITE | STGM_SHARE_EXCLUSIVE | STGM_CREATE | STGM_DELETEONRELEASE, 0, &stg_wine );
+ ok( hr == S_OK, "got %08x\n", hr);
+ hr = IStorage_SetClass( stg_wine, &CLSID_WineTestOld );
+ ok( hr == S_OK, "got %08x\n", hr);
+
+ hr = CreateDataCache( NULL, &CLSID_WineTestOld, &IID_IOleCache2, (void **)&cache );
+ ok( hr == S_OK, "got %08x\n", hr );
+ IOleCache2_QueryInterface( cache, &IID_IPersistStorage, (void **) &persist );
+
+ hr = IPersistStorage_InitNew( persist, stg_dib );
+ ok( hr == S_OK, "got %08x\n", hr);
+
+ hr = IPersistStorage_GetClassID( persist, &clsid );
+ ok( hr == S_OK, "got %08x\n", hr );
+ ok( IsEqualCLSID( &clsid, &CLSID_Picture_Dib ), "got %s\n", wine_dbgstr_guid( &clsid ) );
+
+ check_enum_cache( cache, initnew_expect, 2 );
+
+ hr = IPersistStorage_InitNew( persist, stg_mf );
+ ok( hr == CO_E_ALREADYINITIALIZED, "got %08x\n", hr);
+
+ hr = IPersistStorage_HandsOffStorage( persist );
+ ok( hr == S_OK, "got %08x\n", hr);
+
+ hr = IPersistStorage_GetClassID( persist, &clsid );
+ ok( hr == S_OK, "got %08x\n", hr );
+ ok( IsEqualCLSID( &clsid, &CLSID_Picture_Dib ), "got %s\n", wine_dbgstr_guid( &clsid ) );
+
+ hr = IPersistStorage_InitNew( persist, stg_mf );
+ ok( hr == S_OK, "got %08x\n", hr);
+
+ hr = IPersistStorage_GetClassID( persist, &clsid );
+ ok( hr == S_OK, "got %08x\n", hr );
+ ok( IsEqualCLSID( &clsid, &CLSID_Picture_Metafile ), "got %s\n", wine_dbgstr_guid( &clsid ) );
+
+ check_enum_cache( cache, initnew2_expect, 3 );
+
+ hr = IPersistStorage_HandsOffStorage( persist );
+ ok( hr == S_OK, "got %08x\n", hr);
+
+ hr = IPersistStorage_InitNew( persist, stg_dib );
+ ok( hr == S_OK, "got %08x\n", hr);
+
+ hr = IPersistStorage_GetClassID( persist, &clsid );
+ ok( hr == S_OK, "got %08x\n", hr );
+ ok( IsEqualCLSID( &clsid, &CLSID_Picture_Dib ), "got %s\n", wine_dbgstr_guid( &clsid ) );
+
+ check_enum_cache( cache, initnew3_expect, 5 );
+
+ hr = IPersistStorage_HandsOffStorage( persist );
+ ok( hr == S_OK, "got %08x\n", hr);
+
+ hr = IPersistStorage_InitNew( persist, stg_wine );
+ ok( hr == S_OK, "got %08x\n", hr);
+
+ hr = IPersistStorage_GetClassID( persist, &clsid );
+ ok( hr == S_OK, "got %08x\n", hr );
+ ok( IsEqualCLSID( &clsid, &CLSID_WineTestOld ), "got %s\n", wine_dbgstr_guid( &clsid ) );
+
+ check_enum_cache( cache, initnew4_expect, 5 );
+
+ IStorage_Release( stg_wine );
+ IStorage_Release( stg_mf );
+ IStorage_Release( stg_dib );
+
+ IPersistStorage_Release( persist );
+ IOleCache2_Release( cache );
+}
+
static void test_default_handler(void)
{
HRESULT hr;
@@ -3054,6 +3168,7 @@ START_TEST(ole2)
test_data_cache_dib_contents_stream( 1 );
test_data_cache_bitmap();
test_data_cache_init();
+ test_data_cache_initnew();
test_default_handler();
test_runnable();
test_OleRun();
More information about the wine-cvs
mailing list