2006-08-25 Sebastien Pouliot <sebastien@ximian.com>
authorSebastien Pouliot <sebastien@ximian.com>
Fri, 25 Aug 2006 17:25:36 +0000 (17:25 -0000)
committerSebastien Pouliot <sebastien@ximian.com>
Fri, 25 Aug 2006 17:25:36 +0000 (17:25 -0000)
* GDIPlusTest.cs: Fix ImageAttributes test case.

svn path=/trunk/mcs/; revision=64368

mcs/class/System.Drawing/Test/System.Drawing/ChangeLog
mcs/class/System.Drawing/Test/System.Drawing/GDIPlusTest.cs

index b23be0fd065a9615aad6b7d95cd72991b88997ff..b8f084d30a984c4510aef4fecc6ff0c9d8c15769 100644 (file)
@@ -1,3 +1,7 @@
+2006-08-25  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * GDIPlusTest.cs: Fix ImageAttributes test case.
+
 2006-08-24  Sebastien Pouliot  <sebastien@ximian.com>
 
        * GDIPlusTest.cs: Added more test cases for TextureBrush functions.
index e6e4b604bea25e928d4a1eb95a439b1bec0d9c5d..784bf0da76d9724d4c9b847c1d27c205a987128a 100644 (file)
@@ -597,7 +597,6 @@ namespace MonoTests.System.Drawing {
 
                // ImageAttribute
                [Test]
-               [Category ("NotWorking")] // crash in GdipSetImageAttributesColorMatrix
                public void ImageAttribute ()
                {
                        IntPtr attr;
@@ -607,10 +606,19 @@ namespace MonoTests.System.Drawing {
                        Assert.AreEqual (Status.InvalidParameter, GDIPlus.GdipCloneImageAttributes (IntPtr.Zero, out clone), "GdipCloneImageAttributes");
                        Assert.AreEqual (Status.Ok, GDIPlus.GdipCloneImageAttributes (attr, out clone), "GdipCloneImageAttributes");
 
-                       Assert.AreEqual (Status.InvalidParameter, GDIPlus.GdipSetImageAttributesColorMatrix (attr, ColorAdjustType.Default, true, null, null, ColorMatrixFlag.Default), "GdipSetImageAttributesColorMatrix-matrix1");
-                       ColorMatrix color = new ColorMatrix ();
-                       Assert.AreEqual (Status.InvalidParameter, GDIPlus.GdipSetImageAttributesColorMatrix (IntPtr.Zero, ColorAdjustType.Default, true, color, null, ColorMatrixFlag.Default), "GdipSetImageAttributesColorMatrix-null");
-                       Assert.AreEqual (Status.Ok, GDIPlus.GdipSetImageAttributesColorMatrix (attr, ColorAdjustType.Default, true, color, null, ColorMatrixFlag.Default), "GdipCloneImageAttributes");
+                       Assert.AreEqual (Status.InvalidParameter, GDIPlus.GdipSetImageAttributesColorMatrix (attr, ColorAdjustType.Default, true, IntPtr.Zero, IntPtr.Zero, ColorMatrixFlag.Default), "GdipSetImageAttributesColorMatrix-true-matrix1");
+                       // the first color matrix can be null if enableFlag is false
+                       Assert.AreEqual (Status.Ok, GDIPlus.GdipSetImageAttributesColorMatrix (attr, ColorAdjustType.Default, false, IntPtr.Zero, IntPtr.Zero, ColorMatrixFlag.Default), "GdipSetImageAttributesColorMatrix-false-matrix1");
+                       ColorMatrix cm = new ColorMatrix ();
+                       IntPtr color = Marshal.AllocHGlobal (Marshal.SizeOf (typeof (ColorMatrix)));
+                       try {
+                               Marshal.StructureToPtr (cm, color, false);
+                               Assert.AreEqual (Status.InvalidParameter, GDIPlus.GdipSetImageAttributesColorMatrix (IntPtr.Zero, ColorAdjustType.Default, true, color, IntPtr.Zero, ColorMatrixFlag.Default), "GdipSetImageAttributesColorMatrix-null");
+                               Assert.AreEqual (Status.Ok, GDIPlus.GdipSetImageAttributesColorMatrix (attr, ColorAdjustType.Default, true, color, IntPtr.Zero, ColorMatrixFlag.Default), "GdipCloneImageAttributes");
+                       }
+                       finally {
+                               Marshal.FreeHGlobal (color);
+                       }
 
                        Assert.AreEqual (Status.InvalidParameter, GDIPlus.GdipDisposeImageAttributes (IntPtr.Zero), "GdipDisposeImageAttributes-null");
                        Assert.AreEqual (Status.Ok, GDIPlus.GdipDisposeImageAttributes (attr), "GdipDisposeImageAttributes");
@@ -845,6 +853,7 @@ namespace MonoTests.System.Drawing {
 
                        Assert.AreEqual (Status.Ok, GDIPlus.GdipDeleteBrush (brush), "GdipDeleteBrush");
                        Assert.AreEqual (Status.Ok, GDIPlus.GdipDisposeImage (image), "GdipDisposeImage");
+                       Assert.AreEqual (Status.Ok, GDIPlus.GdipDisposeImage (image2), "GdipDisposeImage-image2");
                }
 
                [Test]