Merge branch 'develop' into Jalview-JS/develop
[jalview.git] / test / jalview / gui / PopupMenuTest.java
index e42c34c..fc60949 100644 (file)
@@ -91,6 +91,8 @@ public class PopupMenuTest
   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
             + "$"
@@ -113,7 +115,7 @@ public class PopupMenuTest
             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())
     {
@@ -541,7 +543,6 @@ public class PopupMenuTest
      * note dbref GENE3D is matched to link Gene3D, the latter is displayed
      */
     linkMenu = PopupMenu.buildLinkMenu(seq1, noFeatures);
-    assertEquals(linkText, linkMenu.getText());
     linkItems = linkMenu.getMenuComponents();
     assertEquals(3, linkItems.length);
     assertEquals("EMBL-EBI Search", ((JMenuItem) linkItems[0]).getText());
@@ -560,10 +561,31 @@ public class PopupMenuTest
     Preferences.sequenceUrlLinks = factory.createUrlProvider();
 
     linkMenu = PopupMenu.buildLinkMenu(seq1, noFeatures);
-    assertEquals(linkText, linkMenu.getText());
     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" })