2006-08-04 Sebastien Pouliot <sebastien@ximian.com>
authorSebastien Pouliot <sebastien@ximian.com>
Fri, 4 Aug 2006 13:29:53 +0000 (13:29 -0000)
committerSebastien Pouliot <sebastien@ximian.com>
Fri, 4 Aug 2006 13:29:53 +0000 (13:29 -0000)
* GDIPlusTest.cs: Some test cases for GraphicsPath, PathGradientBrush
related GDI+ calls.

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

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

index 09c0ca64702071f9016a56263b45766a0a7271cc..53414c3aaec66c5c5a6fb5aba56e1bd24c9a9c54 100644 (file)
@@ -1,6 +1,7 @@
-2006-08-04  Sebastien Pouliot  <sebastien@ximian.com> 
+2006-08-04  Sebastien Pouliot  <sebastien@ximian.com>
 
-       * GDIPlusTest.cs: Some test cases for GraphicsPath related GDI+ calls.
+       * GDIPlusTest.cs: Some test cases for GraphicsPath, PathGradientBrush
+       related GDI+ calls.
  
 2006-08-03  Sebastien Pouliot  <sebastien@ximian.com> 
 
index f15d7f161cff6fb964b4fdeae6d5dc6de5fd9f0f..956fffce8227a78679cc8f0b406c2732a1db9528 100644 (file)
@@ -112,6 +112,17 @@ namespace MonoTests.System.Drawing {
                        Assert.AreEqual (Status.InvalidParameter, GdipCreateBitmapFromScan0 (-1, 10, 10, PixelFormat.Format32bppArgb, IntPtr.Zero, out bmp), "negative width");
                }
 
+               // Brush
+
+               [DllImport ("gdiplus.dll")]
+               static internal extern Status GdipDeleteBrush (IntPtr brush);
+
+               [Test]
+               public void DeleteBrush ()
+               {
+                       Assert.AreEqual (Status.InvalidParameter, GdipDeleteBrush (IntPtr.Zero), "GdipDeleteBrush");
+               }
+
                // GraphicsPath
 
                [DllImport ("gdiplus.dll")]
@@ -204,6 +215,47 @@ namespace MonoTests.System.Drawing {
                        }
                }
 
+               // PathGradientBrush
+
+               [DllImport ("gdiplus.dll")]
+               static internal extern Status GdipCreatePathGradient (PointF[] points, int count, WrapMode wrapMode, out IntPtr brush);
+
+               [DllImport ("gdiplus.dll")]
+               static internal extern Status GdipGetPathGradientBlendCount (IntPtr brush, out int count);
+
+               [DllImport ("gdiplus.dll")]
+               static internal extern Status GdipGetPathGradientPresetBlend (IntPtr brush, int[] blend, float[] positions, int count);
+
+
+               [Test]
+               public void CreatePathGradient ()
+               {
+                       PointF[] points = null;
+                       IntPtr brush;
+                       Assert.AreEqual (Status.OutOfMemory, GdipCreatePathGradient (points, 0, WrapMode.Clamp, out brush), "null");
+
+                       points = new PointF [0];
+                       Assert.AreEqual (Status.OutOfMemory, GdipCreatePathGradient (points, 0, WrapMode.Clamp, out brush), "empty");
+
+                       points = new PointF[1];
+                       Assert.AreEqual (Status.OutOfMemory, GdipCreatePathGradient (points, 1, WrapMode.Clamp, out brush), "one");
+
+                       points = new PointF[2] { new PointF (1, 2), new PointF (20, 30) };
+                       Assert.AreEqual (Status.Ok, GdipCreatePathGradient (points, 2, WrapMode.Clamp, out brush), "two");
+
+                       int count;
+                       Assert.AreEqual (Status.Ok, GdipGetPathGradientBlendCount (brush, out count), "GdipGetPathGradientBlendCount");
+                       Assert.AreEqual (1, count, "blend count");
+
+                       int[] colors = new int[count];
+                       float[] positions = new float[count];
+                       Assert.AreEqual (Status.InvalidParameter, GdipGetPathGradientPresetBlend (brush, colors, positions, count), "GdipGetPathGradientBlend");
+                       // can't call that for 1 count!
+
+                       Assert.AreEqual (Status.Ok, GdipDeleteBrush (brush), "GdipDeleteBrush");
+               }
+
+
                // Region
 
                [DllImport ("gdiplus.dll")]