--- /dev/null
+package jalview.schemes;
+
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertNull;
+import static org.testng.AssertJUnit.assertSame;
+
+import java.awt.Color;
+
+import org.testng.annotations.Test;
+public class UserColourSchemeTest
+{
+
+ @Test(groups = "functional")
+ public void testGetColourFromString()
+ {
+ /*
+ * 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 "));
+
+ /*
+ * 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));
+
+ /*
+ * 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)));
+ }
+}