JAL-4281 store/restore ID width and manual adjustment flag in Jalview projects
[jalview.git] / test / jalview / project / Jalview2xmlTests.java
index c9532cc..07f2766 100644 (file)
@@ -1648,4 +1648,67 @@ public class Jalview2xmlTests extends Jalview2xmlBase
     Assert.assertEquals(restoredMat.getNewick(), dummyMat.getNewick());
   }
 
+  @Test(groups = "Functional")
+  public void testStoreAndRestoreIDwidthAndAnnotationHeight() throws IOException
+  {
+    Desktop.instance.closeAll_actionPerformed(null);
+    final String SECONDVIEW = "With Diffferent IDwidth";
+    // create a new tempfile
+    File tempfile = File.createTempFile("jvIdWidthStoreRestore", "jvp");
+
+
+    AlignFrame af = new FileLoader().LoadFileWaitTillLoaded("examples/exampleFile.jvp",
+              DataSourceType.FILE);
+      assertNotNull(af, "Didn't read in the example file correctly.");
+      assertEquals(af.alignPanel.getAlignViewport().getIdWidth(), 144,
+              "Legacy project import should have fixed ID width");
+      assertTrue(af.alignPanel.getIdPanel().getIdCanvas().isManuallyAdjusted());
+      
+      
+      af.alignPanel.getAlignViewport().setIdWidth(100);
+      af.alignPanel.updateLayout();
+      assertTrue(af.alignPanel.getIdPanel().getIdCanvas().isManuallyAdjusted());
+      
+      Jalview2XML jv2xml = new jalview.project.Jalview2XML(false);
+      tempfile.delete();
+      jv2xml.saveState(tempfile);
+      assertTrue(jv2xml.errorMessage == null,
+              "Failed to save dummy project with PCA: test broken");
+      af = null;
+      // load again.
+      Desktop.instance.closeAll_actionPerformed(null);
+      af = new FileLoader().LoadFileWaitTillLoaded(
+              tempfile.getCanonicalPath(), DataSourceType.FILE);
+      assertTrue(af.alignPanel.getIdPanel().getIdCanvas()
+              .isManuallyAdjusted());
+      assertEquals(af.alignPanel.getAlignViewport().getIdWidth(), 100,
+              "New project exported and import should have adjusted ID width");
+
+      af.alignPanel.getAlignViewport().setIdWidth(100);
+      af.alignPanel.updateLayout();
+      assertTrue(af.alignPanel.getIdPanel().getIdCanvas().isManuallyAdjusted());
+      
+      // now make it autoadjusted
+      af.alignPanel.getAlignViewport().setIdWidth(-1);
+      af.alignPanel.getIdPanel().getIdCanvas().setManuallyAdjusted(false);
+      af.alignPanel.updateLayout();
+      assertFalse(af.alignPanel.getIdPanel().getIdCanvas().isManuallyAdjusted());
+      assertTrue(af.alignPanel.getAlignViewport().getIdWidth()>-1,
+              "New project exported and import should have adjusted ID width");
+      
+      jv2xml = new jalview.project.Jalview2XML(false);
+      tempfile.delete();
+      jv2xml.saveState(tempfile);
+      assertTrue(jv2xml.errorMessage == null,
+              "Failed to save dummy project with PCA: test broken");
+      af = null;
+      // load again.
+      Desktop.instance.closeAll_actionPerformed(null);
+      af = new FileLoader().LoadFileWaitTillLoaded(
+              tempfile.getCanonicalPath(), DataSourceType.FILE);
+      assertFalse(af.alignPanel.getIdPanel().getIdCanvas().isManuallyAdjusted());
+      assertTrue(af.alignPanel.getAlignViewport().getIdWidth()>-1,
+              "New project exported and import should have adjusted ID width");
+  }
+
 }