JAL-1793 only decode specific special characters in VCF data
[jalview.git] / test / jalview / io / vcf / VCFLoaderTest.java
index 20cabbd..999fc6c 100644 (file)
@@ -1,6 +1,7 @@
 package jalview.io.vcf;
 
 import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertSame;
 import static org.testng.Assert.assertTrue;
 
 import jalview.bin.Cache;
@@ -504,6 +505,7 @@ public class VCFLoaderTest
     // gene features include Consequence for all transcripts
     Map map = (Map) sf.getValue("CSQ");
     assertEquals(map.size(), 9);
+    assertEquals(map.get("PolyPhen"), "Bad");
 
     sf = geneFeatures.get(1);
     assertEquals(sf.getBegin(), 5);
@@ -513,6 +515,7 @@ public class VCFLoaderTest
     assertEquals(sf.getValue("alleles"), "C,T");
     map = (Map) sf.getValue("CSQ");
     assertEquals(map.size(), 9);
+    assertEquals(map.get("PolyPhen"), "Bad++"); // %3B%3B decoded
 
     sf = geneFeatures.get(2);
     assertEquals(sf.getBegin(), 9);
@@ -731,4 +734,16 @@ public class VCFLoaderTest
     assertEquals(sf.getEnd(), 15);
     assertEquals(sf.getDescription(), "T,C");
   }
+
+  @Test(groups = "Functional")
+  public void testDecodeSpecialCharacters() throws IOException
+  {
+    String encoded = "hello world";
+    String decoded = VCFLoader.decodeSpecialCharacters(encoded);
+    assertSame(encoded, decoded); // no change needed
+
+    encoded = "ab%3Acd%3Bef%3Dgh%25ij%2Ckl%3A";
+    decoded = VCFLoader.decodeSpecialCharacters(encoded);
+    assertEquals(decoded, "ab:cd;ef=gh%ij,kl:");
+  }
 }
\ No newline at end of file