JAL-3253-applet JAL-3423 Windows TestNG
authorhansonr <hansonr@STO24954W.ad.stolaf.edu>
Wed, 28 Aug 2019 04:51:43 +0000 (23:51 -0500)
committerhansonr <hansonr@STO24954W.ad.stolaf.edu>
Wed, 28 Aug 2019 04:51:43 +0000 (23:51 -0500)
Bug found in wrap tool tip (also in Jalview-Develop) due to some
messages having only one of <html> or </html> and some having neither
but still having <br> (potentially)

src/jalview/gui/JvSwingUtils.java
test/jalview/gui/JvSwingUtilsTest.java

index b25b2c8..7dd8e6c 100644 (file)
@@ -58,6 +58,7 @@ public final class JvSwingUtils
 {
   public static final String HTML_PREFIX = "<html><div style=\"width:350px;white-space:pre-wrap;padding:2px;overflow-wrap:break-word;\">";
 
+
   /**
    * wrap a bare html safe string to around 60 characters per line using a CSS
    * style class specifying word-wrap and break-word
@@ -75,8 +76,19 @@ public final class JvSwingUtils
             "Tootip text to format must not be null!");
     ttext = ttext.trim();
     boolean maxLengthExceeded = false;
-
-    if (ttext.contains("<br>"))
+    boolean isHTML = ttext.startsWith("<html>");
+    if (isHTML)
+    {
+      ttext = ttext.substring(6);
+    }
+    if (ttext.endsWith("</html>"))
+    {
+      isHTML = true;
+      ttext = ttext.substring(0, ttext.length() - 7);
+    }
+    boolean hasBR = ttext.contains("<br>");
+    enclose |= isHTML || hasBR;
+    if (hasBR)
     {
       String[] htmllines = ttext.split("<br>");
       for (String line : htmllines)
index 5a8fba7..d46972a 100644 (file)
@@ -20,8 +20,8 @@
  */
 package jalview.gui;
 
+import static org.junit.Assert.assertTrue;
 import static org.testng.AssertJUnit.assertEquals;
-import static org.testng.AssertJUnit.assertFalse;
 
 import javax.swing.JScrollBar;
 
@@ -86,9 +86,17 @@ public class JvSwingUtilsTest
             JvSwingUtils.wrapTooltip(true, tip));
 
     tip = "0123456789012345678901234567890123456789012345678901234567890"; // 61
-    assertFalse(tip.equals(JvSwingUtils.wrapTooltip(false, tip)));
-    assertFalse(("<html>" + tip + "</html>").equals(JvSwingUtils
+    assertTrue(tip.equals(JvSwingUtils.wrapTooltip(false, tip)));
+    assertTrue((JvSwingUtils.HTML_PREFIX + tip + "</div></html>")
+            .equals(JvSwingUtils
             .wrapTooltip(true, tip)));
+    
+//    was:
+//     
+//        assertFalse(tip.equals(JvSwingUtils.wrapTooltip(false, tip)));
+//        assertFalse(("<html>" + tip + "</html>").equals(JvSwingUtils
+//                .wrapTooltip(true, tip)));
+
   }
 
   /**
@@ -100,9 +108,23 @@ public class JvSwingUtilsTest
   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));
+
+    // System.out.println(
+    // JvSwingUtils.wrapTooltip(false, "<html>" + tip + "</html>"));
+    // System.out.println(JvSwingUtils.wrapTooltip(true, tip));
+
+    assertEquals("<html>" + tip + "</html>",
+            JvSwingUtils.wrapTooltip(false, "<html>" + tip + "</html>"));
     assertEquals("<html>" + tip + "</html>",
             JvSwingUtils.wrapTooltip(true, tip));
+    
+//    was:
+//     
+//        assertEquals(tip, JvSwingUtils.wrapTooltip(false, tip));
+//        assertEquals("<html>" + tip + "</html>",
+//                JvSwingUtils.wrapTooltip(true, tip));
+//     
+    
   }
 
   /**
@@ -113,9 +135,9 @@ public class JvSwingUtilsTest
   public void testWrapTooltip_longText()
   {
     String tip = "Now is the winter of our discontent made glorious summer by this sun of York";
-    String expected = JvSwingUtils.HTML_PREFIX + tip + " </div></html>";
+    String expected = JvSwingUtils.HTML_PREFIX + tip + "</div></html>";
     assertEquals(expected,
             JvSwingUtils.wrapTooltip(true, tip));
-    assertEquals(expected, JvSwingUtils.wrapTooltip(false, tip));
+    assertEquals(tip, JvSwingUtils.wrapTooltip(false, tip));
   }
 }