merge from develop
[jalview.git] / test / jalview / gui / JvSwingUtilsTest.java
index 8a6f63b..eb810e6 100644 (file)
@@ -1,6 +1,7 @@
 package jalview.gui;
 
 import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertFalse;
 
 import javax.swing.JScrollBar;
 
@@ -24,7 +25,7 @@ public class JvSwingUtilsTest
     assertEquals(0.25f, JvSwingUtils.getScrollBarProportion(sb), 0.001f);
   }
 
-  @Test(groups ={ "Functional" })
+  @Test(groups = { "Functional" })
   public void testGetScrollValueForProportion()
   {
     /*
@@ -38,4 +39,56 @@ public class JvSwingUtilsTest
      */
     assertEquals(125, JvSwingUtils.getScrollValueForProportion(sb, 0.25f));
   }
+
+  /**
+   * Test wrap tooltip where it is less than or equal to 60 characters long - no
+   * wrap should be applied
+   */
+  @Test(groups = { "Functional" })
+  public void testWrapTooltip_shortText()
+  {
+    String tip = "hello world";
+    assertEquals(tip, JvSwingUtils.wrapTooltip(false, tip));
+    assertEquals("<html>" + tip + "</html>",
+            JvSwingUtils.wrapTooltip(true, tip));
+
+    tip = "012345678901234567890123456789012345678901234567890123456789"; // 60
+    assertEquals(tip, JvSwingUtils.wrapTooltip(false, tip));
+    assertEquals("<html>" + tip + "</html>",
+            JvSwingUtils.wrapTooltip(true, tip));
+
+    tip = "0123456789012345678901234567890123456789012345678901234567890"; // 61
+    assertFalse(tip.equals(JvSwingUtils.wrapTooltip(false, tip)));
+    assertFalse(("<html>" + tip + "</html>").equals(JvSwingUtils
+            .wrapTooltip(true, tip)));
+  }
+
+  /**
+   * Test wrap tooltip where it is more than one line (separated by &lt;br&gt;
+   * tags) of less than or equal to 60 characters long - no wrap should be
+   * applied
+   */
+  @Test(groups = { "Functional" })
+  public void testWrapTooltip_multilineShortText()
+  {
+    String tip = "Now is the winter of our discontent<br>Made glorious summer by this sun of York";
+    assertEquals(tip, JvSwingUtils.wrapTooltip(false, tip));
+    assertEquals("<html>" + tip + "</html>",
+            JvSwingUtils.wrapTooltip(true, tip));
+  }
+
+  /**
+   * Test wrap tooltip where it is more than 60 characters long - word break and
+   * word wrap styling should be applied
+   */
+  @Test(groups = { "Functional" })
+  public void testWrapTooltip_longText()
+  {
+    String tip = "Now is the winter of our discontent made glorious summer by this sun of York";
+    String expected = "<style> p.ttip {width: 350; text-align: justify; word-wrap: break-word;}</style><p class=\"ttip\">"
+            + tip + "</p>";
+    assertEquals("<html>" + expected + "</html>",
+            JvSwingUtils.wrapTooltip(true, tip));
+    assertEquals(expected, JvSwingUtils.wrapTooltip(false, tip));
+  }
 }