Author: spouliot
Date: 2007-05-30 21:16:49 -0400 (Wed, 30 May 2007)
New Revision: 78287

Modified:
   trunk/mcs/class/System.Drawing/Test/System.Drawing/ChangeLog
   trunk/mcs/class/System.Drawing/Test/System.Drawing/TestGraphics.cs
Log:
2007-05-30  Sebastien Pouliot  <[EMAIL PROTECTED]>

        * Graphics.cs: Add more test cases for [Get|Release]Hdc[Internal] 
        methods. Add test case for drawing lines with a pen's width > 1.



Modified: trunk/mcs/class/System.Drawing/Test/System.Drawing/ChangeLog
===================================================================
--- trunk/mcs/class/System.Drawing/Test/System.Drawing/ChangeLog        
2007-05-31 01:15:22 UTC (rev 78286)
+++ trunk/mcs/class/System.Drawing/Test/System.Drawing/ChangeLog        
2007-05-31 01:16:49 UTC (rev 78287)
@@ -1,3 +1,8 @@
+2007-05-30  Sebastien Pouliot  <[EMAIL PROTECTED]>
+
+       * Graphics.cs: Add more test cases for [Get|Release]Hdc[Internal] 
+       methods. Add test case for drawing lines with a pen's width > 1.
+
 2007-05-28  Sebastien Pouliot  <[EMAIL PROTECTED]>
 
        * GDIPlusTest.cs: Add test cases for GdipDrawRectangles[I]

Modified: trunk/mcs/class/System.Drawing/Test/System.Drawing/TestGraphics.cs
===================================================================
--- trunk/mcs/class/System.Drawing/Test/System.Drawing/TestGraphics.cs  
2007-05-31 01:15:22 UTC (rev 78286)
+++ trunk/mcs/class/System.Drawing/Test/System.Drawing/TestGraphics.cs  
2007-05-31 01:16:49 UTC (rev 78287)
@@ -35,10 +35,12 @@
 using System.Drawing.Text;
 using System.IO;
 using System.Reflection;
+using System.Security.Permissions;
 
-namespace MonoTests.System.Drawing
-{
+namespace MonoTests.System.Drawing {
+
        [TestFixture]
+       [SecurityPermission (SecurityAction.Deny, UnmanagedCode = true)]
        public class GraphicsTest {
 
                private RectangleF[] rects;
@@ -60,8 +62,8 @@
                        if (font != null)
                                font.Dispose ();
                }
-               
 
+
                private bool IsEmptyBitmap (Bitmap bitmap, out int x, out int y)
                {
                        bool result = true;
@@ -121,31 +123,31 @@
                        Graphics g = Graphics.FromImage (bmp);
                        Region r = new Region ();
 
-                       AssertEquals ("DefaultProperties1", r.GetBounds (g) , 
g.ClipBounds);
+                       AssertEquals ("DefaultProperties1", r.GetBounds (g), 
g.ClipBounds);
                        AssertEquals ("DefaultProperties2", 
CompositingMode.SourceOver, g.CompositingMode);
                        AssertEquals ("DefaultProperties3", 
CompositingQuality.Default, g.CompositingQuality);
                        AssertEquals ("DefaultProperties4", 
InterpolationMode.Bilinear, g.InterpolationMode);
                        AssertEquals ("DefaultProperties5", 1, g.PageScale);
                        AssertEquals ("DefaultProperties6", 
GraphicsUnit.Display, g.PageUnit);
                        AssertEquals ("DefaultProperties7", 
PixelOffsetMode.Default, g.PixelOffsetMode);
-                       AssertEquals ("DefaultProperties8", new Point (0, 0) , 
g.RenderingOrigin);
+                       AssertEquals ("DefaultProperties8", new Point (0, 0), 
g.RenderingOrigin);
                        AssertEquals ("DefaultProperties9", SmoothingMode.None, 
g.SmoothingMode);
                        AssertEquals ("DefaultProperties10", 
TextRenderingHint.SystemDefault, g.TextRenderingHint);
 
                        r.Dispose ();
                }
-               
+
                [Test]
                public void SetGetProperties ()
                {
                        Bitmap bmp = new Bitmap (200, 200);
-                       Graphics g = Graphics.FromImage (bmp);                  
                        
-                       
+                       Graphics g = Graphics.FromImage (bmp);
+
                        g.CompositingMode = CompositingMode.SourceCopy;
                        g.CompositingQuality = 
CompositingQuality.GammaCorrected;
                        g.InterpolationMode = 
InterpolationMode.HighQualityBilinear;
                        g.PageScale = 2;
-                       g.PageUnit = GraphicsUnit.Inch;                 
+                       g.PageUnit = GraphicsUnit.Inch;
                        g.PixelOffsetMode = PixelOffsetMode.Half;
                        g.RenderingOrigin = new Point (10, 20);
                        g.SmoothingMode = SmoothingMode.AntiAlias;
@@ -160,14 +162,14 @@
                        AssertEquals ("SetGetProperties7", 
PixelOffsetMode.Half, g.PixelOffsetMode);
                        AssertEquals ("SetGetProperties8", new Point (10, 20), 
g.RenderingOrigin);
                        AssertEquals ("SetGetProperties9", 
SmoothingMode.AntiAlias, g.SmoothingMode);
-                       AssertEquals ("SetGetProperties10", 
TextRenderingHint.SystemDefault, g.TextRenderingHint);                      
+                       AssertEquals ("SetGetProperties10", 
TextRenderingHint.SystemDefault, g.TextRenderingHint);
                }
 
                // Properties
                [Test]
                public void Clip ()
                {
-                       RectangleF[] rects ;
+                       RectangleF[] rects;
                        Bitmap bmp = new Bitmap (200, 200);
                        Graphics g = Graphics.FromImage (bmp);
                        g.Clip = new Region (new Rectangle (50, 40, 210, 220));
@@ -259,7 +261,7 @@
                [Test]
                public void SetClip ()
                {
-                       RectangleF[] rects ;
+                       RectangleF[] rects;
                        Bitmap bmp = new Bitmap (200, 200);
                        Graphics g = Graphics.FromImage (bmp);
 
@@ -292,43 +294,43 @@
                        AssertEquals ("SetClip13", 210, rects[0].Width);
                        AssertEquals ("SetClip14", 220, rects[0].Height);
                }
-               
+
                [Test]
                public void SetSaveReset ()
                {
                        Bitmap bmp = new Bitmap (200, 200);
                        Graphics g = Graphics.FromImage (bmp);
                        GraphicsState state_default, state_modified;
-                       
+
                        state_default = g.Save (); // Default
-                       
+
                        g.CompositingMode = CompositingMode.SourceCopy;
                        g.CompositingQuality = 
CompositingQuality.GammaCorrected;
                        g.InterpolationMode = 
InterpolationMode.HighQualityBilinear;
                        g.PageScale = 2;
-                       g.PageUnit = GraphicsUnit.Inch;                 
+                       g.PageUnit = GraphicsUnit.Inch;
                        g.PixelOffsetMode = PixelOffsetMode.Half;
                        g.Clip = new Region (new Rectangle (0, 0, 100, 100));
                        g.RenderingOrigin = new Point (10, 20);
                        g.SmoothingMode = SmoothingMode.AntiAlias;
                        g.TextRenderingHint = 
TextRenderingHint.ClearTypeGridFit;
-                       
-                       
+
+
                        state_modified = g.Save (); // Modified
-                       
+
                        g.CompositingMode = CompositingMode.SourceOver;
                        g.CompositingQuality = CompositingQuality.Default;
                        g.InterpolationMode = InterpolationMode.Bilinear;
                        g.PageScale = 5;
-                       g.PageUnit = GraphicsUnit.Display;                      
+                       g.PageUnit = GraphicsUnit.Display;
                        g.PixelOffsetMode = PixelOffsetMode.Default;
                        g.Clip = new Region (new Rectangle (1, 2, 20, 25));
                        g.RenderingOrigin = new Point (5, 6);
                        g.SmoothingMode = SmoothingMode.None;
-                       g.TextRenderingHint = TextRenderingHint.SystemDefault;  
                
-                                               
+                       g.TextRenderingHint = TextRenderingHint.SystemDefault;
+
                        g.Restore (state_modified);
-                       
+
                        AssertEquals ("SetSaveReset1", 
CompositingMode.SourceCopy, g.CompositingMode);
                        AssertEquals ("SetSaveReset2", 
CompositingQuality.GammaCorrected, g.CompositingQuality);
                        AssertEquals ("SetSaveReset3", 
InterpolationMode.HighQualityBilinear, g.InterpolationMode);
@@ -337,26 +339,26 @@
                        AssertEquals ("SetSaveReset6", PixelOffsetMode.Half, 
g.PixelOffsetMode);
                        AssertEquals ("SetSaveReset7", new Point (10, 20), 
g.RenderingOrigin);
                        AssertEquals ("SetSaveReset8", SmoothingMode.AntiAlias, 
g.SmoothingMode);
-                       AssertEquals ("SetSaveReset9", 
TextRenderingHint.ClearTypeGridFit, g.TextRenderingHint);                       
 
+                       AssertEquals ("SetSaveReset9", 
TextRenderingHint.ClearTypeGridFit, g.TextRenderingHint);
                        AssertEquals ("SetSaveReset10", 0, (int) 
g.ClipBounds.X);
                        AssertEquals ("SetSaveReset10", 0, (int) 
g.ClipBounds.Y);
-                       
-                       g.Restore (state_default);                      
-                       
+
+                       g.Restore (state_default);
+
                        AssertEquals ("SetSaveReset11", 
CompositingMode.SourceOver, g.CompositingMode);
                        AssertEquals ("SetSaveReset12", 
CompositingQuality.Default, g.CompositingQuality);
                        AssertEquals ("SetSaveReset13", 
InterpolationMode.Bilinear, g.InterpolationMode);
                        AssertEquals ("SetSaveReset14", 1, g.PageScale);
                        AssertEquals ("SetSaveReset15", GraphicsUnit.Display, 
g.PageUnit);
                        AssertEquals ("SetSaveReset16", 
PixelOffsetMode.Default, g.PixelOffsetMode);
-                       AssertEquals ("SetSaveReset17", new Point (0, 0) , 
g.RenderingOrigin);
+                       AssertEquals ("SetSaveReset17", new Point (0, 0), 
g.RenderingOrigin);
                        AssertEquals ("SetSaveReset18", SmoothingMode.None, 
g.SmoothingMode);
-                       AssertEquals ("SetSaveReset19", 
TextRenderingHint.SystemDefault, g.TextRenderingHint);          
+                       AssertEquals ("SetSaveReset19", 
TextRenderingHint.SystemDefault, g.TextRenderingHint);
 
                        Region r = new Region ();
-                       AssertEquals ("SetSaveReset20", r.GetBounds (g) , 
g.ClipBounds);
-                       
-                       g.Dispose ();                   
+                       AssertEquals ("SetSaveReset20", r.GetBounds (g), 
g.ClipBounds);
+
+                       g.Dispose ();
                }
 
                [Test]
@@ -621,7 +623,7 @@
                        g.TranslateTransform (8, 8);
                        CheckBounds ("translate.ClipBounds", g.ClipBounds, -8, 
-24, 32, 16);
                        CheckBounds ("translate.Clip.GetBounds", 
g.Clip.GetBounds (g), -8, -24, 32, 16);
-                       
+
                        g.MultiplyTransform (g.Transform);
                        CheckBounds ("multiply.ClipBounds", g.ClipBounds, -104, 
-56, 64, 64);
                        CheckBounds ("multiply.Clip.GetBounds", 
g.Clip.GetBounds (g), -104, -56, 64, 64);
@@ -1214,7 +1216,7 @@
                [ExpectedException (typeof (ArgumentException))]
                public void BeginContainer_GraphicsUnit_Bad ()
                {
-                       BeginContainer_GraphicsUnit 
((GraphicsUnit)Int32.MinValue);
+                       BeginContainer_GraphicsUnit ((GraphicsUnit) 
Int32.MinValue);
                }
 
                [Test]
@@ -1330,7 +1332,7 @@
                {
                        using (Bitmap bitmap = new Bitmap (20, 20)) {
                                using (Graphics g = Graphics.FromImage 
(bitmap)) {
-                                       g.FillRectangles (Brushes.Red, 
(RectangleF[])null);
+                                       g.FillRectangles (Brushes.Red, 
(RectangleF[]) null);
                                }
                        }
                }
@@ -1675,7 +1677,157 @@
                        }
                }
 
+               private Bitmap DrawLines (float width)
+               {
+                       Bitmap bitmap = new Bitmap (20, 20);
+                       using (Graphics g = Graphics.FromImage (bitmap)) {
+                               g.Clear (Color.Red);
+                               Point[] pts = new Point[3] { new Point (5, 5), 
new Point (15, 5), new Point (15, 15) };
+                               if (width >= 0) {
+                                       using (Pen pen = new Pen (Color.Blue, 
width)) {
+                                               g.DrawLines (pen, pts);
+                                       }
+                               } else {
+                                       g.DrawLines (Pens.Blue, pts);
+                               }
+                       }
+                       return bitmap;
+               }
+
                [Test]
+               public void DrawLines_Width_Default ()
+               {
+                       // default pen size
+                       using (Bitmap bitmap = DrawLines (Single.MinValue)) {
+                               // start
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (4, 4).ToArgb (), "4,4");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (4, 5).ToArgb (), "4,5");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (4, 6).ToArgb (), "4,6");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (5, 4).ToArgb (), "5,4");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (5, 5).ToArgb (), "5,5");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (5, 6).ToArgb (), "5,6");
+                               // middle
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (14, 4).ToArgb (), "14,4");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (14, 5).ToArgb (), "14,5");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (14, 6).ToArgb (), "14,6");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (15, 4).ToArgb (), "15,4");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (15, 5).ToArgb (), "15,5");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (15, 6).ToArgb (), "15,6");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (16, 4).ToArgb (), "16,4");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (16, 5).ToArgb (), "16,5");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (16, 6).ToArgb (), "16,6");
+                               //end
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (14, 15).ToArgb (), "14,15");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (15, 15).ToArgb (), "15,15");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (16, 15).ToArgb (), "16,15");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (14, 16).ToArgb (), "14,16");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (15, 16).ToArgb (), "15,16");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (16, 16).ToArgb (), "16,16");
+                       }
+               }
+
+               [Test]
+               [Category ("NotWorking")]
+               public void DrawLines_Width_2 ()
+               {
+                       // default pen size
+                       using (Bitmap bitmap = DrawLines (2.0f)) {
+                               // start
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (4, 3).ToArgb (), "4,3");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (4, 4).ToArgb (), "4,4");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (4, 5).ToArgb (), "4,5");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (4, 6).ToArgb (), "4,6");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (5, 3).ToArgb (), "5,3");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (5, 4).ToArgb (), "5,4");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (5, 5).ToArgb (), "5,5");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (5, 6).ToArgb (), "5,6");
+                               // middle
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (13, 3).ToArgb (), "13,3");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (13, 4).ToArgb (), "13,4");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (13, 5).ToArgb (), "13,5");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (13, 6).ToArgb (), "13,6");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (14, 3).ToArgb (), "14,3");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (14, 4).ToArgb (), "14,4");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (14, 5).ToArgb (), "14,5");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (14, 6).ToArgb (), "14,6");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (15, 3).ToArgb (), "15,3");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (15, 4).ToArgb (), "15,4");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (15, 5).ToArgb (), "15,5");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (15, 6).ToArgb (), "15,6");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (16, 3).ToArgb (), "16,3");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (16, 4).ToArgb (), "16,4");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (16, 5).ToArgb (), "16,5");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (16, 6).ToArgb (), "16,6");
+                               //end
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (13, 14).ToArgb (), "13,14");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (14, 14).ToArgb (), "14,14");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (15, 14).ToArgb (), "15,14");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (16, 14).ToArgb (), "16,14");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (13, 15).ToArgb (), "13,15");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (14, 15).ToArgb (), "14,15");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (15, 15).ToArgb (), "15,15");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (16, 15).ToArgb (), "16,15");
+                       }
+               }
+
+               [Test]
+               [Category ("NotWorking")]
+               public void DrawLines_Width_3 ()
+               {
+                       // default pen size
+                       using (Bitmap bitmap = DrawLines (3.0f)) {
+                               // start
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (4, 3).ToArgb (), "4,3");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (4, 4).ToArgb (), "4,4");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (4, 5).ToArgb (), "4,5");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (4, 6).ToArgb (), "4,6");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (4, 7).ToArgb (), "4,7");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (5, 3).ToArgb (), "5,3");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (5, 4).ToArgb (), "5,4");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (5, 5).ToArgb (), "5,5");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (5, 6).ToArgb (), "5,6");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (5, 7).ToArgb (), "5,7");
+                               // middle
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (13, 3).ToArgb (), "13,3");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (13, 4).ToArgb (), "13,4");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (13, 5).ToArgb (), "13,5");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (13, 6).ToArgb (), "13,6");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (13, 7).ToArgb (), "13,7");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (14, 3).ToArgb (), "14,3");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (14, 4).ToArgb (), "14,4");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (14, 5).ToArgb (), "14,5");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (14, 6).ToArgb (), "14,6");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (14, 7).ToArgb (), "14,7");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (15, 3).ToArgb (), "15,3");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (15, 4).ToArgb (), "15,4");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (15, 5).ToArgb (), "15,5");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (15, 6).ToArgb (), "15,6");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (15, 7).ToArgb (), "15,7");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (16, 3).ToArgb (), "16,3");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (16, 4).ToArgb (), "16,4");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (16, 5).ToArgb (), "16,5");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (16, 6).ToArgb (), "16,6");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (16, 7).ToArgb (), "16,7");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (17, 3).ToArgb (), "17,3");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (17, 4).ToArgb (), "17,4");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (17, 5).ToArgb (), "17,5");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (17, 6).ToArgb (), "17,6");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (17, 7).ToArgb (), "17,7");
+                               //end
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (13, 14).ToArgb (), "13,14");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (14, 14).ToArgb (), "14,14");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (15, 14).ToArgb (), "15,14");
+                               Assert.AreEqual (0xFF0000FF, (uint) 
bitmap.GetPixel (16, 14).ToArgb (), "16,14");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (17, 14).ToArgb (), "17,14");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (13, 15).ToArgb (), "13,15");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (14, 15).ToArgb (), "14,15");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (15, 15).ToArgb (), "15,15");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (16, 15).ToArgb (), "16,15");
+                               Assert.AreEqual (0xFFFF0000, (uint) 
bitmap.GetPixel (17, 15).ToArgb (), "17,15");
+                       }
+               }
+
+               [Test]
                public void MeasureString_StringFont ()
                {
                        using (Bitmap bitmap = new Bitmap (20, 20)) {
@@ -1874,14 +2026,14 @@
                {
                        using (Bitmap bitmap = new Bitmap (20, 20)) {
                                using (Graphics g = Graphics.FromImage 
(bitmap)) {
-                                       StringFormat string_format = new 
StringFormat();
-                                       
+                                       StringFormat string_format = new 
StringFormat ();
+
                                        string text1 = "Test\nTest123\nTest 
456\nTest 1,2,3,4,5...";
                                        string text2 = "Test 1,2,3,4,5...";
-                               
+
                                        SizeF size1 = g.MeasureString (text1, 
font, SizeF.Empty, string_format);
                                        SizeF size2 = g.MeasureString (text2, 
font, SizeF.Empty, string_format);
-                                       
+
                                        Assert.AreEqual ((int) size1.Width, 
(int) size2.Width, "Multiline Text Width");
                                }
                        }
@@ -2009,9 +2161,9 @@
                                Assert.Ignore ("Couldn't create required font");
 
                        string text = "this\nis a test";
-                       CharacterRange[] ranges = new CharacterRange [2];
-                       ranges[0] = new CharacterRange (0,5);
-                       ranges[1] = new CharacterRange (5,9);
+                       CharacterRange[] ranges = new CharacterRange[2];
+                       ranges[0] = new CharacterRange (0, 5);
+                       ranges[1] = new CharacterRange (5, 9);
 
                        StringFormat string_format = new StringFormat ();
                        string_format.FormatFlags = StringFormatFlags.NoClip;
@@ -2019,8 +2171,8 @@
 
                        using (Bitmap bitmap = new Bitmap (20, 20)) {
                                using (Graphics g = Graphics.FromImage 
(bitmap)) {
-                                       SizeF size = g.MeasureString (text, 
font, new Point (0,0), string_format);
-                                       RectangleF layout_rect = new RectangleF 
(0.0f, 0.0f, size.Width, size.Height);                  
+                                       SizeF size = g.MeasureString (text, 
font, new Point (0, 0), string_format);
+                                       RectangleF layout_rect = new RectangleF 
(0.0f, 0.0f, size.Width, size.Height);
                                        Region[] regions = 
g.MeasureCharacterRanges (text, font, layout_rect, string_format);
 
                                        AssertEquals ("Length", 2, 
regions.Length);
@@ -2353,39 +2505,81 @@
                                }
                        }
                }
+
+               [Test]
+               public void GetReleaseHdcInternal ()
+               {
+                       using (Bitmap b = new Bitmap (10, 10)) {
+                               using (Graphics g = Graphics.FromImage (b)) {
+                                       IntPtr hdc1 = g.GetHdc ();
+                                       g.ReleaseHdcInternal (hdc1);
+                                       IntPtr hdc2 = g.GetHdc ();
+                                       g.ReleaseHdcInternal (hdc2);
+                                       Assert.AreEqual (hdc1, hdc2, "hdc");
+                               }
+                       }
+               }
+
+               [Test]
+               [ExpectedException (typeof (ArgumentException))]
+               public void ReleaseHdcInternal_IntPtrZero ()
+               {
+                       using (Bitmap b = new Bitmap (10, 10)) {
+                               using (Graphics g = Graphics.FromImage (b)) {
+                                       g.ReleaseHdcInternal (IntPtr.Zero);
+                               }
+                       }
+               }
+
+               [Test]
+               [ExpectedException (typeof (ArgumentException))]
+               public void ReleaseHdcInternal_TwoTimes ()
+               {
+                       using (Bitmap b = new Bitmap (10, 10)) {
+                               using (Graphics g = Graphics.FromImage (b)) {
+                                       IntPtr hdc = g.GetHdc ();
+                                       g.ReleaseHdcInternal (hdc);
+                                       g.ReleaseHdcInternal (hdc);
+                               }
+                       }
+               }
 #if NET_2_0
                [Test]
                public void TestReleaseHdc ()
                {
-                       Bitmap b = new Bitmap (100, 100);
-                       Graphics g = Graphics.FromImage (b);
-
-                       g.GetHdc ();
-                       g.ReleaseHdc ();
-                       g.GetHdc ();
-                       g.ReleaseHdc ();
+                       using (Bitmap b = new Bitmap (10, 10)) {
+                               using (Graphics g = Graphics.FromImage (b)) {
+                                       IntPtr hdc1 = g.GetHdc ();
+                                       g.ReleaseHdc ();
+                                       IntPtr hdc2 = g.GetHdc ();
+                                       g.ReleaseHdc ();
+                                       Assert.AreEqual (hdc1, hdc2, "hdc");
+                               }
+                       }
                }
 
                [Test]
                [ExpectedException (typeof (ArgumentException))]
                public void TestReleaseHdcException ()
                {
-                       Bitmap b = new Bitmap (100, 100);
-                       Graphics g = Graphics.FromImage (b);
-
-                       g.ReleaseHdc ();
+                       using (Bitmap b = new Bitmap (10, 10)) {
+                               using (Graphics g = Graphics.FromImage (b)) {
+                                       g.ReleaseHdc ();
+                               }
+                       }
                }
 
                [Test]
                [ExpectedException (typeof (ArgumentException))]
                public void TestReleaseHdcException2 ()
                {
-                       Bitmap b = new Bitmap (100, 100);
-                       Graphics g = Graphics.FromImage (b);
-
-                       g.GetHdc ();
-                       g.ReleaseHdc ();
-                       g.ReleaseHdc ();
+                       using (Bitmap b = new Bitmap (10, 10)) {
+                               using (Graphics g = Graphics.FromImage (b)) {
+                                       g.GetHdc ();
+                                       g.ReleaseHdc ();
+                                       g.ReleaseHdc ();
+                               }
+                       }
                }
 #endif
                [Test]
@@ -2664,7 +2858,7 @@
                {
                        using (Bitmap bmp = new Bitmap (40, 40)) {
                                using (Graphics g = Graphics.FromImage (bmp)) {
-                                       g.DrawImage (bmp, (PointF[])null);
+                                       g.DrawImage (bmp, (PointF[]) null);
                                }
                        }
                }
@@ -3198,4 +3392,25 @@
                }
 #endif
        }
+
+       [TestFixture]
+       public class GraphicsFullTrustTest {
+
+               // note: this test would fail, on ReleaseHdc, without fulltrust
+               // i.e. it's a demand and not a linkdemand
+               [Test]
+               public void GetReleaseHdc ()
+               {
+                       using (Bitmap b = new Bitmap (100, 100)) {
+                               using (Graphics g = Graphics.FromImage (b)) {
+                                       IntPtr hdc1 = g.GetHdc ();
+                                       g.ReleaseHdc (hdc1);
+                                       IntPtr hdc2 = g.GetHdc ();
+                                       g.ReleaseHdc (hdc2);
+                                       Assert.AreEqual (hdc1, hdc2, "hdc");
+                               }
+                       }
+               }
+
+       }
 }

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to