2006-09-14 Sebastien Pouliot <sebastien@ximian.com>
authorSebastien Pouliot <sebastien@ximian.com>
Thu, 14 Sep 2006 17:18:18 +0000 (17:18 -0000)
committerSebastien Pouliot <sebastien@ximian.com>
Thu, 14 Sep 2006 17:18:18 +0000 (17:18 -0000)
* GDIPlusTest.cs: Added test cases for GdipBitmapUnlockBits.

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

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

index 07e421590fa9aa59a6ae44e055f6962f3654be3a..2d7d2fbfc42b5581a0d7d132b49081c2298ced15 100644 (file)
@@ -1,3 +1,7 @@
+2006-09-14  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * GDIPlusTest.cs: Added test cases for GdipBitmapUnlockBits.
+
 2006-09-11  Sebastien Pouliot  <sebastien@ximian.com>
 
        * TestBitmap.cs: Fix the bitmap loading code to work in more cases.
index 8a810a02049eac3e6b476a9e161a93fe4c485264..3eff8f0a7767383c708c641f82c8639a81ddbe7a 100644 (file)
@@ -142,6 +142,34 @@ namespace MonoTests.System.Drawing {
                        Assert.AreEqual (Status.InvalidParameter, GDIPlus.GdipCreateBitmapFromScan0 (-1, 10, 10, PixelFormat.Format32bppArgb, IntPtr.Zero, out bmp), "negative width");
                }
 
+               [Test]
+               public void Unlock ()
+               {
+                       IntPtr bmp;
+                       GDIPlus.GdipCreateBitmapFromScan0 (10, 10, 0, PixelFormat.Format32bppArgb, IntPtr.Zero, out bmp);
+                       Assert.IsTrue (bmp != IntPtr.Zero, "bmp");
+
+                       BitmapData bd = null;
+                       Assert.AreEqual (Status.InvalidParameter, GDIPlus.GdipBitmapUnlockBits (bmp, bd), "BitmapData");
+
+                       bd = new BitmapData ();
+                       Assert.AreEqual (Status.InvalidParameter, GDIPlus.GdipBitmapUnlockBits (IntPtr.Zero, bd), "handle");
+
+                       Assert.AreEqual (Status.Win32Error, GDIPlus.GdipBitmapUnlockBits (bmp, bd), "not locked");
+
+                       Rectangle rect = new Rectangle (2, 2, 5, 5);
+                       Assert.AreEqual (Status.Ok, GDIPlus.GdipBitmapLockBits (bmp, ref rect, ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb, bd), "locked");
+                       Assert.AreEqual (rect.Width, bd.Width, "Width");
+                       Assert.AreEqual (rect.Height, bd.Height, "Height");
+                       Assert.AreEqual (PixelFormat.Format24bppRgb, bd.PixelFormat, "PixelFormat");
+
+                       Assert.AreEqual (Status.Ok, GDIPlus.GdipBitmapUnlockBits (bmp, bd), "unlocked");
+
+                       Assert.AreEqual (Status.Win32Error, GDIPlus.GdipBitmapUnlockBits (bmp, bd), "unlocked-twice");
+
+                       Assert.AreEqual (Status.Ok, GDIPlus.GdipDisposeImage (bmp), "GdipDisposeImage");
+               }
+
                // Brush
                [Test]
                public void DeleteBrush ()