Merge branch 'develop' into bug/JAL-2255_seq-fetcher-broken-on-linux
[jalview.git] / test / jalview / io / JalviewFileViewTest.java
diff --git a/test/jalview/io/JalviewFileViewTest.java b/test/jalview/io/JalviewFileViewTest.java
new file mode 100644 (file)
index 0000000..aa124d9
--- /dev/null
@@ -0,0 +1,107 @@
+package jalview.io;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertNotSame;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertSame;
+
+import java.io.File;
+
+import javax.swing.ImageIcon;
+
+import org.testng.annotations.Test;
+
+public class JalviewFileViewTest
+{
+  @Test(groups = "Functional")
+  public void testGetImageIcon()
+  {
+    JalviewFileView jfv = new JalviewFileView();
+    ImageIcon icon1 = jfv.getImageIcon("/images/file.png");
+    ImageIcon icon2 = jfv.getImageIcon("/images/file.png");
+    ImageIcon icon3 = jfv.getImageIcon("/images/dna.png");
+    ImageIcon icon4 = jfv.getImageIcon("/images/dna.png");
+
+    /*
+     * verify a single image object is served per file path
+     */
+    assertNotNull(icon1);
+    assertSame(icon1, icon2);
+    assertNotNull(icon3);
+    assertSame(icon3, icon4);
+    assertNotSame(icon1, icon3);
+
+    assertNull(jfv.getImageIcon("/images/nosuchfile.png"));
+    assertNull(jfv.getImageIcon("images/file.png"));
+  }
+
+  @Test(groups = "Functional")
+  public void testGetExtension()
+  {
+    assertEquals(JalviewFileView.getExtension(new File("text.txt")), "txt");
+    assertEquals(JalviewFileView.getExtension(new File(
+            "/a/longer/file/path/text.png.TXT")), "txt");
+    assertNull(JalviewFileView.getExtension(new File(
+            "/a/longer/file/path/text.")));
+    assertNull(JalviewFileView.getExtension(new File(
+            "/a/longer/file/path/text")));
+  }
+
+  @Test(groups = "Functional")
+  public void testGetTypeDescription()
+  {
+    JalviewFileView jfw = new JalviewFileView();
+    assertEquals(jfw.getTypeDescription(new File("uniref50.fa")),
+            "Fasta file");
+    assertEquals(jfw.getTypeDescription(new File("uniref50.fasta")),
+            "Fasta file");
+    assertEquals(jfw.getTypeDescription(new File("uniref50.MFA")),
+            "Fasta file");
+    assertEquals(jfw.getTypeDescription(new File("uniref50.fastQ")),
+            "Fasta file");
+    assertEquals(jfw.getTypeDescription(new File("uniref50.pfam")),
+            "PFAM file");
+    assertEquals(jfw.getTypeDescription(new File("uniref50.stk")),
+            "Stockholm file");
+    assertEquals(jfw.getTypeDescription(new File("uniref50.sto")),
+            "Stockholm file");
+    assertEquals(jfw.getTypeDescription(new File("uniref50.pir")),
+            "PIR file");
+    assertEquals(jfw.getTypeDescription(new File("uniref50.blc")),
+            "BLC file");
+    assertEquals(jfw.getTypeDescription(new File("uniref50.amsa")),
+            "AMSA file");
+    assertEquals(jfw.getTypeDescription(new File("uniref50.html")),
+            "HTML file");
+    assertNull(jfw.getTypeDescription(new File("uniref50.htm")));
+    assertEquals(jfw.getTypeDescription(new File("uniref50.xml")),
+            "RNAML file");
+    assertEquals(jfw.getTypeDescription(new File("uniref50.rnaml")),
+            "RNAML file");
+    assertEquals(jfw.getTypeDescription(new File("uniref50.json")),
+            "JSON file");
+    assertEquals(jfw.getTypeDescription(new File("uniref50.pileup")),
+            "PileUp file");
+    assertEquals(jfw.getTypeDescription(new File("uniref50.msf")),
+            "MSF file");
+    assertEquals(jfw.getTypeDescription(new File("uniref50.aln")),
+            "Clustal file");
+    assertEquals(jfw.getTypeDescription(new File("uniref50.phy")),
+            "PHYLIP file");
+    assertEquals(jfw.getTypeDescription(new File("uniref50.gff2")),
+            "GFF or Jalview features file");
+    assertEquals(jfw.getTypeDescription(new File("uniref50.gff3")),
+            "GFF or Jalview features file");
+    assertEquals(jfw.getTypeDescription(new File("uniref50.pdb")),
+            "PDB file");
+    assertEquals(jfw.getTypeDescription(new File("uniref50.ent")),
+            "PDB file");
+    assertEquals(jfw.getTypeDescription(new File("uniref50.cif")),
+            "mmCIF file");
+    assertEquals(jfw.getTypeDescription(new File("uniref50.jvp")),
+            "Jalview file");
+    assertEquals(jfw.getTypeDescription(new File("uniref50.jar")),
+            "Jalview file (old)");
+  }
+}