From: Sebastien Pouliot Date: Thu, 14 Sep 2006 17:18:18 +0000 (-0000) Subject: 2006-09-14 Sebastien Pouliot X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=5bcc698393e137da873758a93253fdef2ab7c0bc;p=mono.git 2006-09-14 Sebastien Pouliot * GDIPlusTest.cs: Added test cases for GdipBitmapUnlockBits. svn path=/trunk/mcs/; revision=65418 --- diff --git a/mcs/class/System.Drawing/Test/System.Drawing/ChangeLog b/mcs/class/System.Drawing/Test/System.Drawing/ChangeLog index 07e421590fa..2d7d2fbfc42 100644 --- a/mcs/class/System.Drawing/Test/System.Drawing/ChangeLog +++ b/mcs/class/System.Drawing/Test/System.Drawing/ChangeLog @@ -1,3 +1,7 @@ +2006-09-14 Sebastien Pouliot + + * GDIPlusTest.cs: Added test cases for GdipBitmapUnlockBits. + 2006-09-11 Sebastien Pouliot * TestBitmap.cs: Fix the bitmap loading code to work in more cases. diff --git a/mcs/class/System.Drawing/Test/System.Drawing/GDIPlusTest.cs b/mcs/class/System.Drawing/Test/System.Drawing/GDIPlusTest.cs index 8a810a02049..3eff8f0a776 100644 --- a/mcs/class/System.Drawing/Test/System.Drawing/GDIPlusTest.cs +++ b/mcs/class/System.Drawing/Test/System.Drawing/GDIPlusTest.cs @@ -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 ()