2007-03-30 Sebastien Pouliot <sebastien@ximian.com>
authorSebastien Pouliot <sebastien@ximian.com>
Fri, 30 Mar 2007 15:12:17 +0000 (15:12 -0000)
committerSebastien Pouliot <sebastien@ximian.com>
Fri, 30 Mar 2007 15:12:17 +0000 (15:12 -0000)
* GDIPlusTest.cs: Add pen test case to check for #81266 (note: will
crash libgdiplus if it's not updated to the latest svn revision).

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

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

index 9afef66a3e2af051fa76d688ee61dc26a4334921..c5a45211ad6ce9f4c07633f057519d3950969122 100644 (file)
@@ -1,5 +1,7 @@
-2007-03-30  Sebastien Pouliot  <sebastien@ximian.com> 
+2007-03-30  Sebastien Pouliot  <sebastien@ximian.com>
 
+       * GDIPlusTest.cs: Add pen test case to check for #81266 (note: will
+       crash libgdiplus if it's not updated to the latest svn revision).
        * SystemFontsTest.cs: Allow a small delta when comparing floats. This
        allows the ARM to work properly (e.g. 8.249999 versus 8.25).
 
index 71af15cd04589a6f1b35f34401a220286efd90d4..2ee3ee2b90e0dd069b2719cd3f6520bd8dc0c5b9 100644 (file)
@@ -914,6 +914,47 @@ namespace MonoTests.System.Drawing {
                        Assert.AreEqual (Status.InvalidParameter, GDIPlus.GdipDeletePen (IntPtr.Zero), "GdipDeletePen-null");
                }
 
+               [Test]
+               public void PenColor_81266 ()
+               {
+                       IntPtr pen;
+                       Assert.AreEqual (Status.Ok, GDIPlus.GdipCreatePen1 (0x7f0000ff, 1f, Unit.UnitPixel, out pen), "GdipCreatePen1");
+                       try {
+                               int color = 0;
+                               IntPtr brush;
+                               Assert.AreEqual (Status.InvalidParameter, GDIPlus.GdipGetPenBrushFill (IntPtr.Zero, out brush), "GdipGetPenBrushFill-null");
+                               Assert.AreEqual (Status.Ok, GDIPlus.GdipGetPenBrushFill (pen, out brush), "GdipGetPenBrushFill");
+                               try {
+                                       Assert.AreEqual (Status.InvalidParameter, GDIPlus.GdipGetSolidFillColor (IntPtr.Zero, out color), "GdipGetSolidFillColor-null");
+                                       Assert.AreEqual (Status.Ok, GDIPlus.GdipGetSolidFillColor (brush, out color), "GdipGetSolidFillColor-0");
+                                       Assert.AreEqual (0x7f0000ff, color, "color-0");
+
+                                       Assert.AreEqual (Status.InvalidParameter, GDIPlus.GdipSetPenColor (IntPtr.Zero, 0x7fff0000), "GdipSetPenColor-null");
+                                       Assert.AreEqual (Status.Ok, GDIPlus.GdipSetPenColor (pen, 0x7fff0000), "GdipSetPenColor");
+
+                                       Assert.AreEqual (Status.Ok, GDIPlus.GdipGetSolidFillColor (brush, out color), "GdipGetSolidFillColor-1");
+                                       // previous brush color didn't change
+                                       Assert.AreEqual (0x7f0000ff, color, "color-1");
+                               }
+                               finally {
+                                       Assert.AreEqual (Status.Ok, GDIPlus.GdipDeleteBrush (brush), "GdipDeleteBrush");
+                               }
+
+                               Assert.AreEqual (Status.Ok, GDIPlus.GdipGetPenBrushFill (pen, out brush), "GdipGetPenBrushFill-2");
+                               try {
+                                       Assert.AreEqual (Status.Ok, GDIPlus.GdipGetSolidFillColor (brush, out color), "GdipGetSolidFillColor-2");
+                                       // new brush color is updated
+                                       Assert.AreEqual (0x7fff0000, color, "color-2");
+                               }
+                               finally {
+                                       Assert.AreEqual (Status.Ok, GDIPlus.GdipDeleteBrush (brush), "GdipDeleteBrush-2");
+                               }
+                       }
+                       finally {
+                               Assert.AreEqual (Status.Ok, GDIPlus.GdipDeletePen (pen), "GdipDeletePen");
+                       }
+               }
+
                // Region
                [Test]
                public void CreateRegionRgnData ()