Merge branch 'develop' into feature/JAL-1713_overviewInProject
authorJames Procter <j.procter@dundee.ac.uk>
Wed, 15 Feb 2023 15:25:53 +0000 (15:25 +0000)
committerJames Procter <j.procter@dundee.ac.uk>
Wed, 15 Feb 2023 15:25:53 +0000 (15:25 +0000)
1  2 
test/jalview/project/Jalview2xmlTests.java

@@@ -1366,115 -1361,23 +1366,139 @@@ public class Jalview2xmlTests extends J
    }
  
    /**
 +   * test store and recovery of Overview windows
 +   * 
 +   * @throws Exception
 +   */
 +  @Test(groups = { "Functional" }, enabled = true)
 +  public void testStoreAndRecoverOverview() throws Exception
 +  {
 +    Desktop.instance.closeAll_actionPerformed(null);
 +
 +    Cache.setProperty("SHOW_OVERVIEW", "false");
 +    Cache.setProperty(Preferences.USE_LEGACY_GAP, "false");
 +    Cache.setColourProperty(Preferences.GAP_COLOUR, Color.green);
 +    Cache.setColourProperty(Preferences.HIDDEN_COLOUR, Color.yellow);
 +    Cache.setProperty(Preferences.SHOW_OV_HIDDEN_AT_START, "true");
 +
 +    AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
 +            "examples/uniref50.fa", DataSourceType.FILE);
 +
 +    /*
 +     * open and resize / reposition overview 
 +     */
 +    af.overviewMenuItem_actionPerformed(null);
 +    OverviewPanel ov1 = af.alignPanel.getOverviewPanel();
 +    assertNotNull(ov1);
 +    ov1.setFrameBounds(20, 30, 200, 400);
 +    assertEquals(ov1.getTitle(), "Overview examples/uniref50.fa");
 +    assertTrue(ov1.isShowHiddenRegions());
 +
 +    /*
 +     * open a New View and its Overview and reposition it
 +     */
 +    af.newView_actionPerformed(null);
 +    af.overviewMenuItem_actionPerformed(null);
 +    OverviewPanel ov2 = af.alignPanel.getOverviewPanel();
 +    assertNotNull(ov2);
 +    assertNotSame(ov1, ov2);
 +    ov2.setFrameBounds(25, 35, 205, 405);
 +    assertEquals(ov1.getTitle(), "Overview examples/uniref50.fa Original");
 +    assertEquals(ov2.getTitle(), "Overview examples/uniref50.fa View 1");
 +
 +    File tfile = File.createTempFile("testStoreAndRecoverOverview", ".jvp");
 +    new Jalview2XML(false).saveState(tfile);
 +    Desktop.instance.closeAll_actionPerformed(null);
 +
 +    /*
 +     * change preferences (should _not_ affect reloaded Overviews)
 +     */
 +    Cache.setProperty("SHOW_OVERVIEW", "true");
 +    Cache.setProperty(Preferences.USE_LEGACY_GAP, "true");
 +    Cache.setColourProperty(Preferences.GAP_COLOUR, Color.blue);
 +    Cache.setColourProperty(Preferences.HIDDEN_COLOUR, Color.orange);
 +    Cache.setProperty(Preferences.SHOW_OV_HIDDEN_AT_START, "false");
 +
 +    af = new FileLoader().LoadFileWaitTillLoaded(tfile.getAbsolutePath(),
 +            DataSourceType.FILE);
 +
 +    /*
 +     * workaround: explicitly select View 1 (not in focus after restore)
 +     */
 +    af.tabSelectionChanged(1);
 +
 +    /*
 +     * verify restored overview for View 1
 +     */
 +    ov2 = af.alignPanel.getOverviewPanel();
 +    assertEquals(ov2.getCanvas().getGapColour(), Color.green);
 +    // 'non-legacy' colouring uses white for non-gapped residues
 +    assertEquals(ov2.getCanvas().getResidueColour(), Color.white);
 +    assertEquals(ov2.getCanvas().getHiddenColour(), Color.yellow);
 +    assertEquals(ov2.getTitle(), "Overview examples/uniref50.fa View 1");
 +    assertEquals(ov2.getFrameBounds(), new Rectangle(25, 35, 205, 405));
 +    assertTrue(ov2.isShowHiddenRegions());
 +
 +    /*
 +     * verify restored overview for Original view
 +     */
 +    af.tabSelectionChanged(0);
 +    ov1 = af.alignPanel.getOverviewPanel();
 +    assertEquals(ov1.getCanvas().getGapColour(), Color.green);
 +    // 'non-legacy' colouring uses white for non-gapped residues
 +    assertEquals(ov1.getCanvas().getResidueColour(), Color.white);
 +    assertEquals(ov1.getCanvas().getHiddenColour(), Color.yellow);
 +    assertEquals(ov1.getTitle(), "Overview examples/uniref50.fa Original");
 +    assertEquals(ov1.getFrameBounds(), new Rectangle(20, 30, 200, 400));
 +    assertTrue(ov1.isShowHiddenRegions());
 +  }
 +
 +  /**
 +   * Test that a view with no Overview is restored with no Overview, even if
 +   * 'Open Overview' is selected in Preferences
 +   * 
 +   * @throws Exception
 +   */
 +  @Test(groups = { "Functional" }, enabled = true)
 +  public void testStoreAndRecoverNoOverview() throws Exception
 +  {
 +    Cache.setProperty("SHOW_OVERVIEW", "false");
 +    Desktop.instance.closeAll_actionPerformed(null);
 +    AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
 +            ">seq1\nMATRSQFLVNF\n", DataSourceType.PASTE);
 +
 +    File tfile = File.createTempFile("testStoreAndRecoverOverview", ".jvp");
 +    new Jalview2XML(false).saveState(tfile);
 +    Desktop.instance.closeAll_actionPerformed(null);
 +
 +    Cache.setProperty("SHOW_OVERVIEW", "true");
 +    af = new FileLoader().LoadFileWaitTillLoaded(tfile.getAbsolutePath(),
 +            DataSourceType.FILE);
 +
 +    assertNull(af.alignPanel.getOverviewPanel());
 +  }
++
++  /**
+    * Test that loading example.jvp, doing some stuff, then hitting reload
+    * doesn't leave the modified window still open
+    * 
++   * See JAL-4127 - interactively performing the same actions and reloading
++   * works fine, but programmatically they do not
++   * 
+    * @throws Exception
+    */
 -  @Test(groups = { "Functional" }, enabled = true)
++  @Test(groups = {"Functional"}, enabled=false)
+   public void testReloadActuallyReloads() throws Exception
+   {
+     Desktop.instance.closeAll_actionPerformed(null);
+     AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
+             "examples/exampleFile.jvp", DataSourceType.FILE);
+     af.getViewport().getColumnSelection().addElement(3);
+     af.hideSelColumns_actionPerformed(null);
+     af.newView("new", true);
+     af.reload_actionPerformed(null);
+     Thread.sleep(30);
+     // af exists still but isn't shown
+     assertTrue(af.isClosed());
+   }
  }