JAL-3368 removed parsing web colours (now on a separate branch)
[jalview.git] / test / jalview / util / ColorUtilsTest.java
index 77a03d6..08d77b6 100644 (file)
@@ -71,9 +71,6 @@ public class ColorUtilsTest
     assertNull(ColorUtils.brighterThan(null));
   }
 
-  /**
-   * @see http://www.rtapo.com/notes/named_colors.html
-   */
   @Test(groups = { "Functional" })
   public void testToTkCode()
   {
@@ -188,8 +185,9 @@ public class ColorUtilsTest
     // 'hex' prefixes _not_ wanted here
     assertNull(ColorUtils.parseColourString("0x" + hexColour));
     assertNull(ColorUtils.parseColourString("#" + hexColour));
-    // out of range, but Color constructor just or's the rgb value with 0
-    assertEquals(Color.black, ColorUtils.parseColourString("1000000"));
+    // hex values must be 6 hex digits
+    assertNull(ColorUtils.parseColourString("1000000"));
+    assertNull(ColorUtils.parseColourString("0ff00"));
 
     /*
      * by RGB triplet
@@ -206,7 +204,7 @@ public class ColorUtilsTest
      */
     assertNull(ColorUtils.parseColourString(null));
     assertNull(ColorUtils.parseColourString("rubbish"));
-    assertEquals(Color.WHITE, ColorUtils.parseColourString("-1"));
+    assertNull(ColorUtils.parseColourString("-1"));
     assertNull(ColorUtils.parseColourString(String
             .valueOf(Integer.MAX_VALUE)));
     assertNull(ColorUtils.parseColourString("100,200,300")); // out of range
@@ -214,14 +212,33 @@ public class ColorUtilsTest
     assertNull(ColorUtils.parseColourString("100,200,100,200")); // too many
   }
 
-  @Test
+  @Test(groups = "Functional")
   public void testGetAWTColorFromName() {
-    assertEquals(Color.white, ColorUtils.getAWTColorFromName("white"));
-    assertEquals(Color.white, ColorUtils.getAWTColorFromName("White"));
-    assertEquals(Color.white, ColorUtils.getAWTColorFromName("WHITE"));
-    assertEquals(Color.pink, ColorUtils.getAWTColorFromName("pink"));
-    assertNull(ColorUtils.getAWTColorFromName("mauve")); // no such name
-    assertNull(ColorUtils.getAWTColorFromName(""));
-    assertNull(ColorUtils.getAWTColorFromName(null));
+    assertEquals(Color.white, ColorUtils.getColorFromName("white"));
+    assertEquals(Color.white, ColorUtils.getColorFromName("White"));
+    assertEquals(Color.white, ColorUtils.getColorFromName("WHITE"));
+    assertEquals(Color.pink, ColorUtils.getColorFromName("pink"));
+    assertNull(ColorUtils.getColorFromName("mauve")); // no such name
+    assertNull(ColorUtils.getColorFromName(""));
+    assertNull(ColorUtils.getColorFromName(null));
+  }
+
+  @Test(groups = "Functional")
+  public void testCreateColourFromName()
+  {
+    assertEquals(Color.white, ColorUtils.createColourFromName(null));
+    assertEquals(new Color(20, 20, 20), ColorUtils.createColourFromName(""));
+    assertEquals(new Color(98, 131, 171),
+            ColorUtils.createColourFromName("None")); // no special treatment!
+    assertEquals(new Color(123, 211, 122),
+            ColorUtils.createColourFromName("hello world"));
+    assertEquals(new Color(27, 147, 112),
+            ColorUtils.createColourFromName("HELLO WORLD"));
+    /*
+     * the algorithm makes the same values for r,g,b if 
+     * the string consists of 3 repeating substrings
+     */
+    assertEquals(new Color(184, 184, 184),
+            ColorUtils.createColourFromName("HELLO HELLO HELLO "));
   }
 }