Merge pull request #2274 from esdrubal/udpclientreceive
[mono.git] / mcs / class / System.Drawing / Test / System.Drawing / ColorTranslator.cs
index 552b77c77b066f9181633c9e0e0aa735763f7829..27ee0f55305493680b0b4796047f2bdd5a171aaf 100644 (file)
@@ -1,3 +1,28 @@
+//
+// ColorTranslator class testing unit
+//
+// Copyright (C) 2006-2007 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
 using System;
 using System.Drawing;
 using System.Security.Permissions;
@@ -7,7 +32,78 @@ namespace MonoTests.System.Drawing {
 
        [TestFixture]
        [SecurityPermission (SecurityAction.Deny, UnmanagedCode = true)]
-       public class ColorTranslatorFixture {
+       public class ColorTranslatorTest {
+
+               [Test]
+               public void FromHtml_Null ()
+               {
+                       Assert.AreEqual (0, ColorTranslator.FromHtml (null).ToArgb ());
+               }
+
+               [Test]
+               public void FromHtml_Empty ()
+               {
+                       Assert.AreEqual (0, ColorTranslator.FromHtml (String.Empty).ToArgb ());
+               }
+
+               [Test]
+               public void FromHtml_KnownValues ()
+               {
+                       Assert.AreEqual (SystemColors.Control, ColorTranslator.FromHtml ("buttonface"), "buttonface");
+                       Assert.AreEqual (SystemColors.ActiveCaptionText, ColorTranslator.FromHtml ("CAPTIONTEXT"), "captiontext");
+                       Assert.AreEqual (SystemColors.ControlDarkDark, ColorTranslator.FromHtml ("threedDARKshadow"), "threeddarkshadow");
+                       Assert.AreEqual (SystemColors.Desktop, ColorTranslator.FromHtml ("background"), "background");
+                       Assert.AreEqual (SystemColors.ControlText, ColorTranslator.FromHtml ("ButtonText"), "buttontext");
+                       Assert.AreEqual (SystemColors.Info, ColorTranslator.FromHtml ("infobackground"), "infobackground");
+               }
+
+               [Test]
+               public void FromHtml_Int ()
+               {
+                       Assert.AreEqual (-1, ColorTranslator.FromHtml ("-1").ToArgb (), "-1");
+                       Assert.AreEqual (0, ColorTranslator.FromHtml ("0").ToArgb (), "0");
+                       Assert.AreEqual (1, ColorTranslator.FromHtml ("1").ToArgb (), "1");
+               }
+
+               [Test]
+               public void FromHtml_PoundInt ()
+               {
+                       Assert.AreEqual (0, ColorTranslator.FromHtml ("#0").ToArgb (), "#0");
+                       Assert.AreEqual (1, ColorTranslator.FromHtml ("#1").ToArgb (), "#1");
+                       Assert.AreEqual (255, ColorTranslator.FromHtml ("#FF").ToArgb (), "#FF");
+                       Assert.AreEqual (-15654349, ColorTranslator.FromHtml ("#123").ToArgb (), "#123");
+                       Assert.AreEqual (-1, ColorTranslator.FromHtml ("#FFF").ToArgb (), "#FFF");
+                       Assert.AreEqual (65535, ColorTranslator.FromHtml ("#FFFF").ToArgb (), "#FFFF");
+                       Assert.AreEqual (-15584170, ColorTranslator.FromHtml ("#123456").ToArgb (), "#123456");
+                       Assert.AreEqual (-1, ColorTranslator.FromHtml ("#FFFFFF").ToArgb (), "#FFFFFF");
+                       Assert.AreEqual (305419896, ColorTranslator.FromHtml ("#12345678").ToArgb (), "#12345678");
+                       Assert.AreEqual (-1, ColorTranslator.FromHtml ("#FFFFFFFF").ToArgb (), "#FFFFFFFF");
+                       
+                       Assert.AreEqual (Color.White, ColorTranslator.FromHtml ("#FFFFFF"), "used to resolve to some KnownColor");
+                       Assert.AreEqual (Color.White, ColorTranslator.FromHtml ("0xFFFFFF"), "used to resolve to some KnownColor");
+               }
+
+               [Test]
+               [ExpectedException (typeof (Exception))]
+               public void FromHtml_PoundNegative ()
+               {
+                       ColorTranslator.FromHtml ("#-1");
+               }
+
+               [Test]
+               [ExpectedException (typeof (Exception))]
+               public void FromHtml_PoundTooLarge ()
+               {
+                       ColorTranslator.FromHtml ("#100000000");
+               }
+
+               [Test]
+               [ExpectedException (typeof (Exception))]
+               public void FromHtml_Unknown ()
+               {
+                       ColorTranslator.FromHtml ("unknown-color-test");
+               }
+
                [Test]
                public void FromHtml ()
                {
@@ -61,6 +157,12 @@ SystemColors.MenuText, SystemColors.ScrollBar,
                                Assert.AreEqual (colors[i], ColorTranslator.FromHtml (htmlColors [i]));
                }
 
+               [Test] // 340917
+               public void FromHtml_LightGrey ()
+               {
+                       Assert.AreEqual (Color.LightGray, ColorTranslator.FromHtml(ColorTranslator.ToHtml(Color.LightGray)));
+               }
+
                [Test]
                public void FromOle ()
                {