+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
+ 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
+ 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
+ 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)");
+ }
+}