JAL-3253-applet JAL-3423 TestNG/Win
[jalview.git] / test / jalview / gui / AlignmentPanelTest.java
index c580a88..fd67ac4 100644 (file)
@@ -21,6 +21,7 @@
 package jalview.gui;
 
 import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotEquals;
 
 import jalview.bin.Cache;
 import jalview.bin.Jalview;
@@ -30,6 +31,8 @@ import jalview.io.DataSourceType;
 import jalview.io.FileLoader;
 import jalview.viewmodel.ViewportRanges;
 
+import java.lang.reflect.InvocationTargetException;
+
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
@@ -130,15 +133,17 @@ public class AlignmentPanelTest
   AlignFrame af;
 
   @BeforeMethod(alwaysRun = true)
-  public void setUp()
+  public void setUp() throws InvocationTargetException, InterruptedException
   {
     Jalview.main(new String[] { "-nonews", "-props",
         "test/jalview/testProps.jvprops" });
 
-    Cache.applicationProperties.setProperty("SHOW_IDENTITY",
+    Cache.setPropertyNoSave("SHOW_IDENTITY",
             Boolean.TRUE.toString());
     af = new FileLoader().LoadFileWaitTillLoaded("examples/uniref50.fa",
             DataSourceType.FILE);
+    
+    af.paintImmediately(af.getBounds());
 
     /*
      * wait for Consensus thread to complete
@@ -149,7 +154,7 @@ public class AlignmentPanelTest
       {
         try
         {
-          wait(50);
+          wait(250); // BH was 50
         } catch (InterruptedException e)
         {
         }
@@ -166,6 +171,7 @@ public class AlignmentPanelTest
   public void TestSetScrollValues()
   {
     ViewportRanges ranges = af.getViewport().getRanges();
+    af.alignPanel.setScrollValues(0, 0);
 
     int oldres = ranges.getEndRes();
     af.alignPanel.setScrollValues(-1, 5);
@@ -187,6 +193,8 @@ public class AlignmentPanelTest
     int scrollpos = 60;
     af.getViewport().hideColumns(30, 50);
     af.alignPanel.setScrollValues(scrollpos, 5);
+
+    af.paintImmediately(af.getBounds());
     assertEquals(ranges.getEndRes(), oldres + scrollpos);
 
     // scroll to position within hidden columns, still sets endres to oldres +
@@ -204,6 +212,7 @@ public class AlignmentPanelTest
     scrollpos = 130;
     af.getViewport().showAllHiddenColumns();
     af.alignPanel.setScrollValues(scrollpos, 5);
+    af.paintImmediately(af.getBounds());
     assertEquals(ranges.getEndRes(), af.getViewport()
             .getAlignment().getWidth() - 1);
 
@@ -212,9 +221,38 @@ public class AlignmentPanelTest
     // endRes should be set to width of alignment - 1 - the number of hidden
     // columns
     af.getViewport().hideColumns(30, 50);
+    af.paintImmediately(af.getBounds());
     af.alignPanel.setScrollValues(scrollpos, 5);
     assertEquals(ranges.getEndRes(), af.getViewport()
             .getAlignment().getWidth() - 1 - 21); // 21 is the number of hidden
                                                   // columns
   }
+
+  /**
+   * Test that update layout reverts to original (unwrapped) values for endRes
+   * when switching from wrapped back to unwrapped mode (JAL-2739)
+   */
+  @Test(groups = "Functional")
+  public void TestUpdateLayout_endRes()
+  {
+    // get details of original alignment dimensions
+    ViewportRanges ranges = af.getViewport().getRanges();
+    int endres = ranges.getEndRes();
+
+    // wrap
+    af.alignPanel.getAlignViewport().setWrapAlignment(true);
+    af.alignPanel.updateLayout();
+    af.paintImmediately(af.getBounds());
+
+    // endRes has changed
+    assertNotEquals(ranges.getEndRes(), endres);
+
+    // unwrap
+    af.alignPanel.getAlignViewport().setWrapAlignment(false);
+    af.alignPanel.updateLayout();
+    af.paintImmediately(af.getBounds());
+    // endRes back to original value
+    assertEquals(ranges.getEndRes(), endres);
+
+  }
 }