From 0a9a0c390bce6a5b374f4d559d0b93797e5d36d0 Mon Sep 17 00:00:00 2001 From: kiramt Date: Fri, 21 Oct 2016 08:08:23 +0100 Subject: [PATCH] Created (failing) unit test for addFeatureLinks --- test/jalview/gui/PopupMenuTest.java | 89 +++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/test/jalview/gui/PopupMenuTest.java b/test/jalview/gui/PopupMenuTest.java index edf3202..fe52e92 100644 --- a/test/jalview/gui/PopupMenuTest.java +++ b/test/jalview/gui/PopupMenuTest.java @@ -27,6 +27,9 @@ import static org.testng.AssertJUnit.assertTrue; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.AlignmentI; import jalview.datamodel.Annotation; +import jalview.datamodel.DBRefEntry; +import jalview.datamodel.DBRefSource; +import jalview.datamodel.Sequence; import jalview.datamodel.SequenceI; import jalview.io.AppletFormatAdapter; import jalview.io.FormatAdapter; @@ -440,4 +443,90 @@ public class PopupMenuTest assertEquals(JSeparator.HORIZONTAL, ((JSeparator) hideOptions[1]).getOrientation()); } + + /** + * Test for adding feature links + */ + @Test(groups = { "Functional" }) + public void testAddFeatureLinks() + { + // sequences from the alignment + List seqs = parentPanel.getAlignment().getSequences(); + + // create list of links and list of DBRefs + List links = new ArrayList(); + List refs = new ArrayList(); + + // links as might be added into Preferences | Connections dialog + links.add("EMBL-EBI Search | http://www.ebi.ac.uk/ebisearch/search.ebi?db=allebi&query=$SEQUENCE_ID$"); + links.add("UNIPROT | http://www.uniprot.org/uniprot/$SEQUENCE_ID$"); + links.add("INTERPRO | http://www.ebi.ac.uk/interpro/entry/$SEQUENCE_ID$"); + // Gene3D entry tests for case (in)sensitivity + links.add("Gene3D | http://gene3d.biochem.ucl.ac.uk/Gene3D/search?sterm=$SEQUENCE_ID$&mode=protein"); + + // make seq0 dbrefs + refs.add(new DBRefEntry(DBRefSource.UNIPROT, "1", "P83527")); + refs.add(new DBRefEntry("INTERPRO", "1", "IPR001041")); + refs.add(new DBRefEntry("INTERPRO", "1", "IPR006058")); + refs.add(new DBRefEntry("INTERPRO", "1", "IPR012675")); + + // make seq1 dbrefs + refs.add(new DBRefEntry(DBRefSource.UNIPROT, "1", "Q9ZTS2")); + refs.add(new DBRefEntry("GENE3D", "1", "3.10.20.30")); + + // add all the dbrefs to the sequences: Uniprot 1 each, Interpro all 3 to + // seq0, Gene3D to seq1 + seqs.get(0).addDBRef(refs.get(0)); + + seqs.get(0).addDBRef(refs.get(1)); + seqs.get(0).addDBRef(refs.get(2)); + seqs.get(0).addDBRef(refs.get(3)); + + seqs.get(1).addDBRef(refs.get(4)); + seqs.get(1).addDBRef(refs.get(5)); + + // get the Popup Menu for first sequence + testee = new PopupMenu(parentPanel, (Sequence) seqs.get(0), links); + Component[] seqItems = testee.sequenceMenu.getMenuComponents(); + JMenu linkMenu = (JMenu) seqItems[6]; + Component[] linkItems = linkMenu.getMenuComponents(); + + // check the number of links are the expected number + assertEquals(5, linkItems.length); + + // first entry is EMBL-EBI which just uses sequence id not accession id? + assertEquals("EMBL-EBI Search", ((JMenuItem) linkItems[0]).getText()); + + // sequence id for each link should match corresponding DB accession id + for (int i = 1; i < 4; i++) + { + assertEquals(refs.get(i).getSource(), ((JMenuItem) linkItems[i]) + .getText().split(" \\|")[0]); + assertEquals(refs.get(i).getAccessionId(), ((JMenuItem) linkItems[i]) + .getText().split(" \\|")[1]); + } + + // get the Popup Menu for second sequence + testee = new PopupMenu(parentPanel, (Sequence) seqs.get(1), links); + seqItems = testee.sequenceMenu.getMenuComponents(); + linkMenu = (JMenu) seqItems[6]; + linkItems = linkMenu.getMenuComponents(); + + // check the number of links are the expected number + assertEquals(3, linkItems.length); + + // first entry is EMBL-EBI which just uses sequence id not accession id? + assertEquals("EMBL-EBI Search", ((JMenuItem) linkItems[0]).getText()); + + // sequence id for each link should match corresponding DB accession id + for (int i = 5; i < 7; i++) + { + assertEquals(refs.get(i).getSource(), ((JMenuItem) linkItems[i - 4]) + .getText().split(" \\|")[0]); + assertEquals(refs.get(i).getAccessionId(), + ((JMenuItem) linkItems[i - 4]).getText().split(" \\|")[1]); + } + + + } } -- 1.7.10.2