public void setUp() throws IOException
{
Cache.loadProperties("test/jalview/io/testProps.jvprops");
+ Cache.initLogger();
+
String inMenuString = ("EMBL-EBI Search | http://www.ebi.ac.uk/ebisearch/search.ebi?db=allebi&query=$"
+ SEQUENCE_ID
+ "$"
DataSourceType.PASTE, FileFormat.Fasta);
AlignFrame af = new AlignFrame(alignment, 700, 500);
parentPanel = new AlignmentPanel(af, af.getViewport());
- testee = new PopupMenu(parentPanel, null, null);
+ testee = new PopupMenu(parentPanel, alignment.getSequenceAt(0), null);
int i = 0;
for (SequenceI seq : alignment.getSequences())
{
* Test for adding sequence id, dbref and feature links
*/
@Test(groups = { "Functional" })
- public void testConstructor_links()
+ public void testBuildLinkMenu()
{
List<SequenceI> seqs = parentPanel.getAlignment().getSequences();
final SequenceI seq0 = seqs.get(0);
seq1.addDBRef(new DBRefEntry("GENE3D", "1", "3.10.20.30"));
/*
- * check the Popup Menu for the first sequence
+ * check the Link Menu for the first sequence
*/
- testee = new PopupMenu(parentPanel, seq0, noFeatures);
- Component[] seqItems = testee.sequenceMenu.getMenuComponents();
- JMenu linkMenu = (JMenu) seqItems[6];
+ JMenu linkMenu = PopupMenu.buildLinkMenu(seq0, noFeatures);
assertEquals(linkText, linkMenu.getText());
Component[] linkItems = linkMenu.getMenuComponents();
assertEquals("UNIPROT|P83527", ((JMenuItem) linkItems[4]).getText());
/*
- * check the Popup Menu for second sequence
+ * check the Link Menu for the second sequence
* note dbref GENE3D is matched to link Gene3D, the latter is displayed
*/
- testee = new PopupMenu(parentPanel, seq1, noFeatures);
- seqItems = testee.sequenceMenu.getMenuComponents();
- linkMenu = (JMenu) seqItems[6];
- assertEquals(linkText, linkMenu.getText());
+ linkMenu = PopupMenu.buildLinkMenu(seq1, noFeatures);
linkItems = linkMenu.getMenuComponents();
assertEquals(3, linkItems.length);
assertEquals("EMBL-EBI Search", ((JMenuItem) linkItems[0]).getText());
unmatched, "");
Preferences.sequenceUrlLinks = factory.createUrlProvider();
- testee = new PopupMenu(parentPanel, seq1, noFeatures);
- seqItems = testee.sequenceMenu.getMenuComponents();
- linkMenu = (JMenu) seqItems[6];
- assertEquals(linkText, linkMenu.getText());
+ linkMenu = PopupMenu.buildLinkMenu(seq1, noFeatures);
linkItems = linkMenu.getMenuComponents();
assertEquals(1, linkItems.length);
assertEquals("EMBL-EBI Search", ((JMenuItem) linkItems[0]).getText());
+
+ /*
+ * if sequence is null, only feature links are shown (alignment popup submenu)
+ */
+ linkMenu = PopupMenu.buildLinkMenu(null, noFeatures);
+ linkItems = linkMenu.getMenuComponents();
+ assertEquals(0, linkItems.length);
+
+ List<SequenceFeature> features = new ArrayList<>();
+ SequenceFeature sf = new SequenceFeature("type", "desc", 1, 20, null);
+ features.add(sf);
+ linkMenu = PopupMenu.buildLinkMenu(null, features);
+ linkItems = linkMenu.getMenuComponents();
+ assertEquals(0, linkItems.length); // feature has no links
+
+ sf.addLink("Pfam family|http://pfam.xfam.org/family/PF00111");
+ linkMenu = PopupMenu.buildLinkMenu(null, features);
+ linkItems = linkMenu.getMenuComponents();
+ assertEquals(1, linkItems.length);
+ JMenuItem item = (JMenuItem) linkItems[0];
+ assertEquals("Pfam family", item.getText());
+ // ? no way to verify URL, compiled into link's actionListener
}
@Test(groups = { "Functional" })