Ge van Geldorp : mscms/tests: Pass correct device name to AssociateColorProfileWithDevice().

Alexandre Julliard julliard at winehq.org
Mon Jan 5 10:24:44 CST 2009


Module: wine
Branch: master
Commit: 1f62d854969773d5c0883bcfeb49c5ed1940264e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=1f62d854969773d5c0883bcfeb49c5ed1940264e

Author: Ge van Geldorp <ge at gse.nl>
Date:   Sun Jan  4 16:23:47 2009 +0100

mscms/tests: Pass correct device name to AssociateColorProfileWithDevice().

---

 dlls/mscms/tests/profile.c |  136 ++++++++++++++++++++++++++-----------------
 1 files changed, 82 insertions(+), 54 deletions(-)

diff --git a/dlls/mscms/tests/profile.c b/dlls/mscms/tests/profile.c
index 56d7732..e33280a 100644
--- a/dlls/mscms/tests/profile.c
+++ b/dlls/mscms/tests/profile.c
@@ -31,6 +31,7 @@
 #include "wine/test.h"
 
 HMODULE hmscms;
+HMODULE huser32;
 
 static BOOL     (WINAPI *pAssociateColorProfileWithDeviceA)(PCSTR,PCSTR,PCSTR);
 static BOOL     (WINAPI *pCloseColorProfile)(HPROFILE);
@@ -58,6 +59,8 @@ static BOOL     (WINAPI *pSetStandardColorSpaceProfileW)(PCWSTR,DWORD,PWSTR);
 static BOOL     (WINAPI *pUninstallColorProfileA)(PCSTR,PCSTR,BOOL);
 static BOOL     (WINAPI *pUninstallColorProfileW)(PCWSTR,PCWSTR,BOOL);
 
+static BOOL     (WINAPI *pEnumDisplayDevicesA)(LPCSTR,DWORD,PDISPLAY_DEVICE,DWORD);
+
 #define GETFUNCPTR(func) p##func = (void *)GetProcAddress( hmscms, #func ); \
     if (!p##func) return FALSE;
 
@@ -89,6 +92,8 @@ static BOOL init_function_ptrs( void )
     GETFUNCPTR( UninstallColorProfileA )
     GETFUNCPTR( UninstallColorProfileW )
 
+    pEnumDisplayDevicesA = (void *)GetProcAddress( huser32, "EnumDisplayDevicesA" );
+
     return TRUE;
 }
 
@@ -1367,63 +1372,77 @@ static void test_AssociateColorProfileWithDeviceA(void)
     BOOL ret;
     char profile[MAX_PATH], basename[MAX_PATH];
     DWORD error, size = sizeof(profile);
+    DISPLAY_DEVICE display;
+    BOOL res;
+    DISPLAY_DEVICE monitor;
 
-    if (testprofile)
+    if (testprofile && pEnumDisplayDevicesA)
     {
-        SetLastError(0xdeadbeef);
-        ret = pAssociateColorProfileWithDeviceA( "machine", testprofile, NULL );
-        error = GetLastError();
-        ok( !ret, "AssociateColorProfileWithDevice() succeeded\n" );
-        ok( error == ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER, got %u\n", error );
-
-        SetLastError(0xdeadbeef);
-        ret = pAssociateColorProfileWithDeviceA( "machine", NULL, "DISPLAY" );
-        error = GetLastError();
-        ok( !ret, "AssociateColorProfileWithDevice() succeeded\n" );
-        ok( error == ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER, got %u\n", error );
-
-        SetLastError(0xdeadbeef);
-        ret = pAssociateColorProfileWithDeviceA( "machine", testprofile, "DISPLAY" );
-        error = GetLastError();
-        ok( !ret, "AssociateColorProfileWithDevice() succeeded\n" );
-        ok( error == ERROR_NOT_SUPPORTED, "expected ERROR_NOT_SUPPORTED, got %u\n", error );
+        display.cb = sizeof( DISPLAY_DEVICE );
+        res = pEnumDisplayDevicesA( NULL, 0, &display, 0 );
+        ok( res, "Can't get display info\n" );
 
-        ret = pInstallColorProfileA( NULL, testprofile );
-        ok( ret, "InstallColorProfileA() failed (%u)\n", GetLastError() );
-
-        ret = pGetColorDirectoryA( NULL, profile, &size );
-        ok( ret, "GetColorDirectoryA() failed (%d)\n", GetLastError() );
-
-        MSCMS_basenameA( testprofile, basename );
-        lstrcatA( profile, "\\" );
-        lstrcatA( profile, basename );
-
-        ret = pAssociateColorProfileWithDeviceA( NULL, profile, "DISPLAY" );
-        ok( ret, "AssociateColorProfileWithDevice() failed (%u)\n", GetLastError() );
-
-        SetLastError(0xdeadbeef);
-        ret = pDisassociateColorProfileFromDeviceA( "machine", profile, NULL );
-        error = GetLastError();
-        ok( !ret, "DisassociateColorProfileFromDeviceA() succeeded\n" );
-        ok( error == ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER, got %u\n", error );
-
-        SetLastError(0xdeadbeef);
-        ret = pDisassociateColorProfileFromDeviceA( "machine", NULL, "DISPLAY" );
-        error = GetLastError();
-        ok( !ret, "DisassociateColorProfileFromDeviceA() succeeded\n" );
-        ok( error == ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER, got %u\n", error );
-
-        SetLastError(0xdeadbeef);
-        ret = pDisassociateColorProfileFromDeviceA( "machine", profile, "DISPLAY" );
-        error = GetLastError();
-        ok( !ret, "DisassociateColorProfileFromDeviceA() succeeded\n" );
-        ok( error == ERROR_NOT_SUPPORTED, "expected ERROR_NOT_SUPPORTED, got %u\n", error );
-
-        ret = pDisassociateColorProfileFromDeviceA( NULL, profile, "DISPLAY" );
-        ok( ret, "DisassociateColorProfileFromDeviceA() failed (%u)\n", GetLastError() );
-
-        ret = pUninstallColorProfileA( NULL, profile, TRUE );
-        ok( ret, "UninstallColorProfileA() failed (%d)\n", GetLastError() );
+        monitor.cb = sizeof( DISPLAY_DEVICE );
+        res = pEnumDisplayDevicesA( display.DeviceName, 0, &monitor, 0 );
+        if (res)
+        {
+            SetLastError(0xdeadbeef);
+            ret = pAssociateColorProfileWithDeviceA( "machine", testprofile, NULL );
+            error = GetLastError();
+            ok( !ret, "AssociateColorProfileWithDevice() succeeded\n" );
+            ok( error == ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER, got %u\n", error );
+
+            SetLastError(0xdeadbeef);
+            ret = pAssociateColorProfileWithDeviceA( "machine", NULL, monitor.DeviceID );
+            error = GetLastError();
+            ok( !ret, "AssociateColorProfileWithDevice() succeeded\n" );
+            ok( error == ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER, got %u\n", error );
+
+            SetLastError(0xdeadbeef);
+            ret = pAssociateColorProfileWithDeviceA( "machine", testprofile, monitor.DeviceID );
+            error = GetLastError();
+            ok( !ret, "AssociateColorProfileWithDevice() succeeded\n" );
+            ok( error == ERROR_NOT_SUPPORTED, "expected ERROR_NOT_SUPPORTED, got %u\n", error );
+
+            ret = pInstallColorProfileA( NULL, testprofile );
+            ok( ret, "InstallColorProfileA() failed (%u)\n", GetLastError() );
+
+            ret = pGetColorDirectoryA( NULL, profile, &size );
+            ok( ret, "GetColorDirectoryA() failed (%d)\n", GetLastError() );
+
+            MSCMS_basenameA( testprofile, basename );
+            lstrcatA( profile, "\\" );
+            lstrcatA( profile, basename );
+
+            ret = pAssociateColorProfileWithDeviceA( NULL, profile, monitor.DeviceID );
+            ok( ret, "AssociateColorProfileWithDevice() failed (%u)\n", GetLastError() );
+
+            SetLastError(0xdeadbeef);
+            ret = pDisassociateColorProfileFromDeviceA( "machine", profile, NULL );
+            error = GetLastError();
+            ok( !ret, "DisassociateColorProfileFromDeviceA() succeeded\n" );
+            ok( error == ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER, got %u\n", error );
+
+            SetLastError(0xdeadbeef);
+            ret = pDisassociateColorProfileFromDeviceA( "machine", NULL, monitor.DeviceID );
+            error = GetLastError();
+            ok( !ret, "DisassociateColorProfileFromDeviceA() succeeded\n" );
+            ok( error == ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER, got %u\n", error );
+
+            SetLastError(0xdeadbeef);
+            ret = pDisassociateColorProfileFromDeviceA( "machine", profile, monitor.DeviceID );
+            error = GetLastError();
+            ok( !ret, "DisassociateColorProfileFromDeviceA() succeeded\n" );
+            ok( error == ERROR_NOT_SUPPORTED, "expected ERROR_NOT_SUPPORTED, got %u\n", error );
+
+            ret = pDisassociateColorProfileFromDeviceA( NULL, profile, monitor.DeviceID );
+            ok( ret, "DisassociateColorProfileFromDeviceA() failed (%u)\n", GetLastError() );
+
+            ret = pUninstallColorProfileA( NULL, profile, TRUE );
+            ok( ret, "UninstallColorProfileA() failed (%d)\n", GetLastError() );
+        }
+        else
+            skip("Unable to obtain monitor name\n");
     }
 }
 
@@ -1441,8 +1460,16 @@ START_TEST(profile)
     hmscms = LoadLibraryA( "mscms.dll" );
     if (!hmscms) return;
 
+    huser32 = LoadLibraryA( "user32.dll" );
+    if (!huser32)
+    {
+        FreeLibrary( hmscms );
+        return;
+    }
+
     if (!init_function_ptrs())
     {
+        FreeLibrary( huser32 );
         FreeLibrary( hmscms );
         return;
     }
@@ -1537,5 +1564,6 @@ START_TEST(profile)
     if (testprofile)
         DeleteFileA( testprofile );
     
+    FreeLibrary( huser32 );
     FreeLibrary( hmscms );
 }




More information about the wine-cvs mailing list