JAL-4160 update args used in test suite for new CLI framework
[jalview.git] / test / jalview / gui / AlignFrameTest.java
index 60ca11f..2affde0 100644 (file)
@@ -27,6 +27,14 @@ import static org.testng.Assert.assertNotSame;
 import static org.testng.Assert.assertSame;
 import static org.testng.Assert.assertTrue;
 
+import java.awt.Color;
+import java.util.Iterator;
+
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
 import jalview.api.FeatureColourI;
 import jalview.bin.Cache;
 import jalview.bin.Jalview;
@@ -39,7 +47,7 @@ import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
 import jalview.io.DataSourceType;
 import jalview.io.FileLoader;
-import jalview.io.Jalview2xmlTests;
+import jalview.project.Jalview2xmlTests;
 import jalview.renderer.ResidueShaderI;
 import jalview.schemes.BuriedColourScheme;
 import jalview.schemes.FeatureColour;
@@ -49,20 +57,56 @@ import jalview.schemes.StrandColourScheme;
 import jalview.schemes.TurnColourScheme;
 import jalview.util.MessageManager;
 
-import java.awt.Color;
-import java.util.Iterator;
-
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
 public class AlignFrameTest
 {
   AlignFrame af;
 
   @BeforeClass(alwaysRun = true)
-  public void setUpJvOptionPane()
+  public static void setUpBeforeClass() throws Exception
+  {
+    setUpJvOptionPane();
+    /*
+     * use read-only test properties file
+     */
+    Cache.loadProperties("test/jalview/io/testProps.jvprops");
+    Jalview.main(new String[] { "--nonews" });
+  }
+
+  @AfterMethod(alwaysRun = true)
+  public void tearDown()
+  {
+    if (Desktop.instance != null)
+      Desktop.instance.closeAll_actionPerformed(null);
+  }
+
+  /**
+   * configure (read-only) properties for test to ensure Consensus is computed
+   * for colour Above PID testing
+   */
+  @BeforeMethod(alwaysRun = true)
+  public void setUp()
+  {
+    Cache.loadProperties("test/jalview/io/testProps.jvprops");
+    Cache.applicationProperties.setProperty("SHOW_IDENTITY",
+            Boolean.TRUE.toString());
+    af = new FileLoader().LoadFileWaitTillLoaded("examples/uniref50.fa",
+            DataSourceType.FILE);
+
+    /*
+     * wait for Consensus thread to complete
+     */
+    do
+    {
+      try
+      {
+        Thread.sleep(50);
+      } catch (InterruptedException x)
+      {
+      }
+    } while (af.getViewport().getCalcManager().isWorking());
+  }
+
+  public static void setUpJvOptionPane()
   {
     JvOptionPane.setInteractiveMode(false);
     JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
@@ -73,13 +117,14 @@ public class AlignFrameTest
   {
     SequenceI seq1 = new Sequence("Seq1", "ABCDEFGHIJ");
     SequenceI seq2 = new Sequence("Seq2", "ABCDEFGHIJ");
-    seq1.addSequenceFeature(new SequenceFeature("Metal", "", 1, 5, 0f, null));
-    seq2.addSequenceFeature(new SequenceFeature("Metal", "", 6, 10, 10f,
-            null));
-    seq1.addSequenceFeature(new SequenceFeature("Turn", "", 2, 4,
-            Float.NaN, null));
-    seq2.addSequenceFeature(new SequenceFeature("Turn", "", 7, 9,
-            Float.NaN, null));
+    seq1.addSequenceFeature(
+            new SequenceFeature("Metal", "", 1, 5, 0f, null));
+    seq2.addSequenceFeature(
+            new SequenceFeature("Metal", "", 6, 10, 10f, null));
+    seq1.addSequenceFeature(
+            new SequenceFeature("Turn", "", 2, 4, Float.NaN, null));
+    seq2.addSequenceFeature(
+            new SequenceFeature("Turn", "", 7, 9, Float.NaN, null));
     AlignmentI al = new Alignment(new SequenceI[] { seq1, seq2 });
     AlignFrame alignFrame = new AlignFrame(al, al.getWidth(),
             al.getHeight());
@@ -113,18 +158,19 @@ public class AlignFrameTest
     assertEquals(alignFrame.getViewport().getAlignment().getHiddenColumns()
             .getNumberOfRegions(), 0);
 
-
     /*
      * threshold Metal to hide features where score < 5
      * seq1 feature in columns 1-5 is hidden
      * seq2 feature in columns 6-10 is shown
      */
-    FeatureColourI fc = new FeatureColour(Color.red, Color.blue, 0f, 10f);
+    FeatureColourI fc = new FeatureColour(null, Color.red, Color.blue, null,
+            0f, 10f);
     fc.setAboveThreshold(true);
     fc.setThreshold(5f);
     alignFrame.getFeatureRenderer().setColour("Metal", fc);
     assertTrue(alignFrame.hideFeatureColumns("Metal", true));
-    HiddenColumns hidden = alignFrame.getViewport().getAlignment().getHiddenColumns();
+    HiddenColumns hidden = alignFrame.getViewport().getAlignment()
+            .getHiddenColumns();
     assertEquals(hidden.getNumberOfRegions(), 1);
     Iterator<int[]> regions = hidden.iterator();
     int[] next = regions.next();
@@ -138,8 +184,8 @@ public class AlignFrameTest
      */
     alignFrame.getViewport().showAllHiddenColumns();
     assertTrue(alignFrame.hideFeatureColumns("Turn", true));
-    regions = alignFrame.getViewport().getAlignment()
-            .getHiddenColumns().iterator();
+    regions = alignFrame.getViewport().getAlignment().getHiddenColumns()
+            .iterator();
     assertEquals(alignFrame.getViewport().getAlignment().getHiddenColumns()
             .getNumberOfRegions(), 2);
     next = regions.next();
@@ -150,58 +196,13 @@ public class AlignFrameTest
     assertEquals(next[1], 8);
   }
 
-  @BeforeClass(alwaysRun = true)
-  public static void setUpBeforeClass() throws Exception
-  {
-    /*
-     * use read-only test properties file
-     */
-    Cache.loadProperties("test/jalview/io/testProps.jvprops");
-    Jalview.main(new String[] { "-nonews" });
-  }
-
-  @AfterMethod(alwaysRun = true)
-  public void tearDown()
-  {
-    Desktop.instance.closeAll_actionPerformed(null);
-  }
-
-  /**
-   * configure (read-only) properties for test to ensure Consensus is computed
-   * for colour Above PID testing
-   */
-  @BeforeMethod(alwaysRun = true)
-  public void setUp()
-  {
-    Cache.loadProperties("test/jalview/io/testProps.jvprops");
-    Cache.applicationProperties.setProperty("SHOW_IDENTITY",
-            Boolean.TRUE.toString());
-    af = new FileLoader().LoadFileWaitTillLoaded("examples/uniref50.fa",
-            DataSourceType.FILE);
-
-    /*
-     * wait for Consensus thread to complete
-     */
-    synchronized (this)
-    {
-      while (af.getViewport().getConsensusSeq() == null)
-      {
-        try
-        {
-          wait(50);
-        } catch (InterruptedException e)
-        {
-        }
-      }
-    }
-  }
-
   /**
    * Test that changing background (alignment) colour scheme
    * <ul>
    * <li>with Apply Colour to All Groups not selected, does not change group
    * colours</li>
-   * <li>with Apply Colour to All Groups selected, does change group colours</li>
+   * <li>with Apply Colour to All Groups selected, does change group
+   * colours</li>
    * <li>in neither case, changes alignment or group colour thresholds (PID or
    * Conservation)</li>
    * </ul>
@@ -227,8 +228,8 @@ public class AlignFrameTest
     af.conservationMenuItem_actionPerformed(true);
     SliderPanel sp = SliderPanel.getSliderPanel();
     assertEquals(sp.getTitle(), MessageManager.formatMessage(
-            "label.conservation_colour_increment",
-            new String[] { "Background" }));
+            "label.conservation_colour_increment", new String[]
+            { "Background" }));
     assertTrue(sp.isForConservation());
     sp.valueChanged(20);
     assertTrue(av.getResidueShading().conservationApplied());
@@ -241,8 +242,8 @@ public class AlignFrameTest
     sp = SliderPanel.getSliderPanel();
     assertFalse(sp.isForConservation());
     assertEquals(sp.getTitle(), MessageManager.formatMessage(
-            "label.percentage_identity_threshold",
-            new String[] { "Background" }));
+            "label.percentage_identity_threshold", new String[]
+            { "Background" }));
     sp.valueChanged(10);
     assertEquals(av.getResidueShading().getThreshold(), 10);
     assertTrue(av.getResidueShading().conservationApplied());
@@ -260,10 +261,13 @@ public class AlignFrameTest
 
     /*
      * apply 30% Conservation to group
+     * (notice menu action applies to selection group even if mouse click
+     * is at a sequence not in the group)
      */
-    PopupMenu popupMenu = new PopupMenu(af.alignPanel, null, null);
-    popupMenu.changeColour_actionPerformed(JalviewColourScheme.Strand
-            .toString());
+    PopupMenu popupMenu = new PopupMenu(af.alignPanel, al.getSequenceAt(2),
+            null);
+    popupMenu.changeColour_actionPerformed(
+            JalviewColourScheme.Strand.toString());
     assertTrue(sg.getColourScheme() instanceof StrandColourScheme);
     assertEquals(al.getGroups().size(), 1);
     assertSame(al.getGroups().get(0), sg);
@@ -271,8 +275,8 @@ public class AlignFrameTest
     sp = SliderPanel.getSliderPanel();
     assertTrue(sp.isForConservation());
     assertEquals(sp.getTitle(), MessageManager.formatMessage(
-            "label.conservation_colour_increment",
-            new String[] { sg.getName() }));
+            "label.conservation_colour_increment", new String[]
+            { sg.getName() }));
     sp.valueChanged(30);
     assertTrue(sg.getGroupColourScheme().conservationApplied());
     assertEquals(sg.getGroupColourScheme().getConservationInc(), 30);
@@ -284,8 +288,8 @@ public class AlignFrameTest
     sp = SliderPanel.getSliderPanel();
     assertFalse(sp.isForConservation());
     assertEquals(sp.getTitle(), MessageManager.formatMessage(
-            "label.percentage_identity_threshold",
-            new String[] { sg.getName() }));
+            "label.percentage_identity_threshold", new String[]
+            { sg.getName() }));
     sp.valueChanged(40);
     assertEquals(sg.getGroupColourScheme().getThreshold(), 40);
     // conservation threshold is unchanged:
@@ -354,7 +358,7 @@ public class AlignFrameTest
 
     /*
      * inspect the colour of 
-     * FER_CAPAN.9(I), column 14 (14 base 0)
+     * FER_CAPAN.9(I), column 15 (14 base 0)
      * FER_CAPAN.10(SER), column 16 (15 base 0)
      */
     SequenceI ferCapan = al.findName("FER_CAPAN");
@@ -373,10 +377,14 @@ public class AlignFrameTest
     SliderPanel sp = SliderPanel.getSliderPanel();
     assertTrue(sp.isForConservation());
     assertEquals(sp.getValue(), 30); // initial slider setting
+    c = rs.findColour('I', 14, ferCapan);
+    Color i_faded = new Color(255, 255, 255);
+    assertEquals(c, i_faded);
     sp.valueChanged(10);
     assertSame(rs, av.getResidueShading());
+    assertEquals(rs.getConservationInc(), 10);
     c = rs.findColour('I', 14, ferCapan);
-    Color i_faded = new Color(196, 186, 196);
+    i_faded = new Color(196, 186, 196);
     assertEquals(c, i_faded);
     c = rs.findColour('S', 15, ferCapan);
     Color s_faded = new Color(144, 225, 144);
@@ -539,9 +547,10 @@ public class AlignFrameTest
     sg.setStartRes(15);
     sg.setEndRes(25);
     av.setSelectionGroup(sg);
-    PopupMenu popupMenu = new PopupMenu(af.alignPanel, null, null);
-    popupMenu.changeColour_actionPerformed(JalviewColourScheme.Strand
-            .toString());
+    PopupMenu popupMenu = new PopupMenu(af.alignPanel, al.getSequenceAt(0),
+            null);
+    popupMenu.changeColour_actionPerformed(
+            JalviewColourScheme.Strand.toString());
     assertTrue(sg.getColourScheme() instanceof StrandColourScheme);
     assertEquals(al.getGroups().size(), 1);
     assertSame(al.getGroups().get(0), sg);
@@ -565,8 +574,8 @@ public class AlignFrameTest
     sp = SliderPanel.getSliderPanel();
     assertTrue(sp.isForConservation());
     assertEquals(sp.getTitle(), MessageManager.formatMessage(
-            "label.conservation_colour_increment",
-            new String[] { "Background" }));
+            "label.conservation_colour_increment", new String[]
+            { "Background" }));
 
     /*
      * make a new View, verify alignment and group colour schemes
@@ -595,8 +604,8 @@ public class AlignFrameTest
     sp = SliderPanel.getSliderPanel();
     assertTrue(sp.isForConservation());
     assertEquals(sp.getTitle(), MessageManager.formatMessage(
-            "label.conservation_colour_increment",
-            new String[] { "View 1" }));
+            "label.conservation_colour_increment", new String[]
+            { "View 1" }));
     sp.valueChanged(22);
     assertEquals(av2.getResidueShading().getConservationInc(), 22);
   }