JAL-2446 merged to spike branch
[jalview.git] / test / jalview / schemes / UserColourSchemeTest.java
index 645d5b8..497014e 100644 (file)
@@ -21,8 +21,6 @@
 package jalview.schemes;
 
 import static org.testng.AssertJUnit.assertEquals;
-import static org.testng.AssertJUnit.assertNull;
-import static org.testng.AssertJUnit.assertSame;
 
 import jalview.gui.JvOptionPane;
 
@@ -42,40 +40,44 @@ public class UserColourSchemeTest
   }
 
   @Test(groups = "Functional")
-  public void testGetColourFromString()
+  public void testParseAppletParameter()
   {
-    /*
-     * by colour name - if known to AWT, and included in
-     * 
-     * @see ColourSchemeProperty.getAWTColorFromName()
-     */
-    assertSame(Color.RED, UserColourScheme.getColourFromString("red"));
-    assertSame(Color.RED, UserColourScheme.getColourFromString("Red"));
-    assertSame(Color.RED, UserColourScheme.getColourFromString(" RED "));
+    UserColourScheme cs = new UserColourScheme("white");
+    cs.parseAppletParameter("D,E=red; K,R,H=0022FF; c=10 , 20,30");
+    assertEquals(Color.RED, cs.findColour('D'));
+    assertEquals(Color.RED, cs.findColour('d'));
+    assertEquals(Color.RED, cs.findColour('E'));
+    assertEquals(Color.RED, cs.findColour('e'));
+    Color c1 = new Color(0x0022ff);
+    assertEquals(c1, cs.findColour('K'));
+    assertEquals(c1, cs.findColour('R'));
+    assertEquals(c1, cs.findColour('h'));
+    Color c2 = new Color(10, 20, 30);
+    assertEquals(c2, cs.findColour('c'));
 
-    /*
-     * by RGB hex code
-     */
-    String hexColour = Integer.toHexString(Color.RED.getRGB() & 0xffffff);
-    assertEquals(Color.RED, UserColourScheme.getColourFromString(hexColour));
-    // 'hex' prefixes _not_ wanted here
-    assertNull(UserColourScheme.getColourFromString("0x" + hexColour));
-    assertNull(UserColourScheme.getColourFromString("#" + hexColour));
-
-    /*
-     * by RGB triplet
-     */
-    String rgb = String.format("%d,%d,%d", Color.red.getRed(),
-            Color.red.getGreen(), Color.red.getBlue());
-    assertEquals(Color.RED, UserColourScheme.getColourFromString(rgb));
+    cs = new UserColourScheme("white");
+    cs.parseAppletParameter("D,E=red; K,R,H=0022FF; c=10 , 20,30;t=orange;lowercase=blue;s=pink");
+    assertEquals(Color.RED, cs.findColour('D'));
+    assertEquals(Color.blue, cs.findColour('d'));
+    assertEquals(Color.RED, cs.findColour('E'));
+    assertEquals(Color.blue, cs.findColour('e'));
+    assertEquals(c1, cs.findColour('K'));
+    assertEquals(c1, cs.findColour('R'));
+    assertEquals(Color.blue, cs.findColour('h'));
+    assertEquals(c2, cs.findColour('c'));
+    // 'lowercase' sets all lower-case not already set to the given colour
+    assertEquals(Color.orange, cs.findColour('t'));
+    assertEquals(Color.blue, cs.findColour('k'));
+    assertEquals(Color.blue, cs.findColour('a'));
+    assertEquals(Color.pink, cs.findColour('s'));
+  }
 
-    /*
-     * odds and ends
-     */
-    assertNull(UserColourScheme.getColourFromString(null));
-    assertNull(UserColourScheme.getColourFromString("rubbish"));
-    assertEquals(Color.WHITE, UserColourScheme.getColourFromString("-1"));
-    assertNull(UserColourScheme.getColourFromString(String
-            .valueOf(Integer.MAX_VALUE)));
+  @Test(groups = "Functional")
+  public void testToAppletParameter()
+  {
+    UserColourScheme cs = new UserColourScheme(
+            "E,D=red; K,R,H=0022FF; c=10 , 20,30");
+    String param = cs.toAppletParameter();
+    assertEquals("D,E=ff0000;H,K,R=0022ff;c=0a141e", param);
   }
 }