X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2FAlignmentViewTest.java;h=b201c7eb1f19cd9f4cbe9055a10c5328d1c0ff24;hb=08f7a2be3977da8704dd4751de7245bcc6fc41c3;hp=bce2289a10ce7eac33acf170eb0bce2475ea04ef;hpb=17e77c3f2949a0729322b4a8d907f3f34b6a9914;p=jalview.git diff --git a/test/jalview/datamodel/AlignmentViewTest.java b/test/jalview/datamodel/AlignmentViewTest.java index bce2289..b201c7e 100644 --- a/test/jalview/datamodel/AlignmentViewTest.java +++ b/test/jalview/datamodel/AlignmentViewTest.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9) - * Copyright (C) 2015 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * @@ -22,10 +22,25 @@ package jalview.datamodel; import static org.testng.Assert.assertEquals; +import jalview.gui.AlignFrame; +import jalview.gui.AlignViewport; +import jalview.gui.JvOptionPane; +import jalview.io.DataSourceType; +import jalview.io.FileLoader; + +import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class AlignmentViewTest { + + @BeforeClass(alwaysRun = true) + public void setUpJvOptionPane() + { + JvOptionPane.setInteractiveMode(false); + JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); + } + @Test(groups = { "Functional" }) public void testGetVisibleAlignmentGapChar() { @@ -39,4 +54,69 @@ public class AlignmentViewTest assertEquals(av.getVisibleAlignment('$').getSequenceAt(0) .getSequenceAsString(), "A$$CDE"); } + + @Test(groups = { "Functional" }) + public void testGetVisibleContigs() + { + AlignFrame af = new FileLoader().LoadFileWaitTillLoaded( + ">s1\n0123456789\n", DataSourceType.PASTE); + AlignViewport av = af.getViewport(); + AlignmentView view = av.getAlignmentView(true); + + /* + * verify getVisibleContigs returns inclusive [start, end] ranges + * + * no columns hidden + */ + int[] contigs = view.getVisibleContigs(); + assertEquals(contigs, new int[] { 0, 9 }); + + /* + * hide 3 internal columns + */ + av.hideColumns(5, 7); + // the old AlignmentView is now stale! + contigs = view.getVisibleContigs(); + assertEquals(contigs, new int[] { 0, 9 }); + // get a fresh AlignmentView + view = av.getAlignmentView(true); + contigs = view.getVisibleContigs(); + assertEquals(contigs, new int[] { 0, 4, 8, 9 }); + + // hide first 2 columns + av.hideColumns(0, 1); + view = av.getAlignmentView(true); + contigs = view.getVisibleContigs(); + assertEquals(contigs, new int[] { 2, 4, 8, 9 }); + + // hide last column + av.hideColumns(9, 9); + view = av.getAlignmentView(true); + contigs = view.getVisibleContigs(); + assertEquals(contigs, new int[] { 2, 4, 8, 8 }); + + // unhide columns 5-7 + av.showColumn(5); + view = av.getAlignmentView(true); + contigs = view.getVisibleContigs(); + assertEquals(contigs, new int[] { 2, 8 }); + + // hide columns 2-7 + av.hideColumns(2, 7); + view = av.getAlignmentView(true); + contigs = view.getVisibleContigs(); + assertEquals(contigs, new int[] { 8, 8 }); + + // hide column 8 + av.hideColumns(8, 8); + view = av.getAlignmentView(true); + contigs = view.getVisibleContigs(); + assertEquals(contigs, new int[] {}); + + // unhide all + av.showAllHiddenColumns(); + view = av.getAlignmentView(true); + contigs = view.getVisibleContigs(); + assertEquals(contigs, new int[] { 0, 9 }); + } }