JAL-3615 code tidy, improve unit test
authorJim Procter <jprocter@issues.jalview.org>
Fri, 21 Aug 2020 10:37:27 +0000 (11:37 +0100)
committerJim Procter <jprocter@issues.jalview.org>
Fri, 21 Aug 2020 10:37:27 +0000 (11:37 +0100)
src/jalview/io/FileParse.java
test/jalview/io/FileIOTester.java

index d986dc5..2ff0d27 100755 (executable)
@@ -230,19 +230,18 @@ public class FileParse
       return false;
     }
     input.mark(4);
-    byte[] bytes = new byte[2]; // input.readNBytes(2);
+    
+    // get first 2 bytes or return false
+    byte[] bytes = new byte[2];
     int read = input.read(bytes);
     input.reset();
     if (read != bytes.length)
     {
       return false;
     }
-    if (bytes.length == 2)
-    {
-      int header = (bytes[0] & 0xff) | ((bytes[1] << 8) & 0xff00);
-      return (GZIPInputStream.GZIP_MAGIC == header);
-    }
-    return false;
+    
+    int header = (bytes[0] & 0xff) | ((bytes[1] << 8) & 0xff00);
+    return (GZIPInputStream.GZIP_MAGIC == header);
   }
 
   /**
index 04d01b0..e37ae3f 100644 (file)
@@ -24,10 +24,12 @@ import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertTrue;
 
 import java.io.BufferedInputStream;
+import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.StringBufferInputStream;
 
 import org.testng.AssertJUnit;
 import org.testng.annotations.AfterClass;
@@ -147,6 +149,12 @@ public class FileIOTester
      */
     is = new BufferedInputStream(is, 16);
     assertTrue(FileParse.isGzipStream(is));
+    
+    /*
+     * check recognition of non-gzipped input
+     */
+    assertFalse(FileParse.isGzipStream(new BufferedInputStream(
+            new ByteArrayInputStream("NOT A GZIP".getBytes()))));    
   }
 
   @Test(groups = { "Functional" })