From 168e2fb98fc01c27643c0207dd601979b5fde739 Mon Sep 17 00:00:00 2001 From: Robert Shearman Date: Wed, 3 May 2006 14:47:35 +0100 Subject: [PATCH] ole32: Add tests for sub-storages and creating streams. Replace a test that fails on NT and with DCOM95 DLLs with a test that ensures access permissions are checked correctly for sub-storages and creating streams. --- dlls/ole32/tests/storage32.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/dlls/ole32/tests/storage32.c b/dlls/ole32/tests/storage32.c index e2f9d8a8e45..4236fd1f2f6 100644 --- a/dlls/ole32/tests/storage32.c +++ b/dlls/ole32/tests/storage32.c @@ -671,15 +671,31 @@ static void test_storage_refcount(void) /* test for grfMode open issue */ - r = StgOpenStorage( filename, NULL, 0x00010020, NULL, 0, &stg); + r = StgOpenStorage( filename, NULL, STGM_TRANSACTED|STGM_SHARE_DENY_WRITE|STGM_READWRITE, NULL, 0, &stg); ok(r==S_OK, "StgOpenStorage failed\n"); if(stg) { - r = IStorage_OpenStream( stg, stmname, 0, STGM_SHARE_EXCLUSIVE|STGM_READWRITE, 0, &stm ); - ok(r == S_OK, "OpenStream should succeed\n"); + static const WCHAR stgname[] = { ' ',' ',' ','2','9',0 }; + static const WCHAR stgname2[] = { 'C','V','_','i','e','w',0 }; + static const WCHAR stmname2[] = { 'V','a','r','2','D','a','t','a',0 }; + IStorage *stg2; + IStorage *stg3; + + r = IStorage_CreateStorage( stg, stgname, STGM_SHARE_EXCLUSIVE, 0, 0, &stg2 ); + ok(r == S_OK, "CreateStorage should have succeeded instead of returning 0x%08lx\n", r); + + todo_wine { + r = IStorage_CreateStorage( stg2, stgname2, STGM_SHARE_EXCLUSIVE|STGM_READWRITE, 0, 0, &stg3 ); + ok(r == STG_E_ACCESSDENIED, "CreateStorage should have returned STG_E_ACCESSDENIED instead of 0x%08lx\n", r); + + r = IStorage_CreateStream( stg2, stmname2, STGM_CREATE|STGM_SHARE_EXCLUSIVE, 0, 0, &stm ); + ok(r == STG_E_ACCESSDENIED, "CreateStream should have returned STG_E_ACCESSDENIED instead of 0x%08lx\n", r); + + IStorage_Release(stg2); r = IStorage_Release(stg); ok(r == 0, "wrong ref count\n"); + } } DeleteFileW(filename); -- 2.11.4.GIT