JAL-1054 JAL-4414 Tests for the HttpUtils redirect wrapper methods. Tests for the...
authorBen Soares <b.soares@dundee.ac.uk>
Tue, 14 May 2024 20:09:38 +0000 (21:09 +0100)
committerBen Soares <b.soares@dundee.ac.uk>
Tue, 14 May 2024 20:09:38 +0000 (21:09 +0100)
test/jalview/io/IdentifyFileTest.java
test/jalview/util/HttpUtilsTest.java

index 6ee3f0e..1d0785e 100644 (file)
@@ -138,4 +138,60 @@ public class IdentifyFileTest
     // non-numeric start column:
     assertFalse(id.looksLikeFeatureData("Helix\tSeq1\t-1\t2456\t.\tss"));
   }
+
+  @Test(groups = "Network", dataProvider = "urlTargetsAndExceptions")
+  public void testExceptions(String url,
+          Class<? extends Exception> expectedExceptionClass,
+          FileFormatI expectedFormat)
+  {
+    Class<? extends Exception> actualExceptionClass = null;
+    FileFormatI actualFormat = null;
+    try
+    {
+      actualFormat = new IdentifyFile().identify(url, DataSourceType.URL);
+    } catch (FileFormatException | FileNotFoundException e)
+    {
+      Assert.assertNull(expectedFormat,
+              "Exception occurred when expecting an identifiable format.");
+      Assert.assertNotNull(expectedExceptionClass,
+              "An unexpected exception occurred: '" + e.getMessage() + "'");
+      Assert.assertEquals(e.getClass(), expectedExceptionClass,
+              "Got the wrong kind of exception.");
+      actualExceptionClass = e.getClass();
+    }
+
+    if (expectedExceptionClass != null)
+    {
+      Assert.assertEquals(actualExceptionClass, expectedExceptionClass,
+              "Expected an exception but got the wrong one.");
+    }
+
+  }
+
+  @DataProvider(name = "urlTargetsAndExceptions")
+  public Object[][] urlTargetsAndExceptions()
+  {
+    /*
+    String targetUrl,
+    String finalUrl,
+    String foundInFirstLine,
+    */
+    return new Object[][] {
+        //
+        /*
+        { "http://jalview.org/examples/uniref50.fa", null,
+            FileFormat.Fasta },
+        { "https://www.jalview.org/examples/NOFILE.fa",
+            FileNotFoundException.class, null },
+        { "https://NOSERVER.jalview.org/", FileNotFoundException.class,
+            null },
+         */
+        { "https://www.jalview.org/schools/Jalview_Schools_Workbook_200.jpg",
+            FileFormatException.class, null },
+        /*
+         */
+        //
+    };
+  }
+
 }
index 34e838a..fbd8149 100644 (file)
@@ -69,9 +69,10 @@ public class HttpUtilsTest
   public Object[][] urlTargetsAndDestinations()
   {
     /*
-    String targetUrl,
-    String finalUrl,
-    String foundInFirstLine,
+    String targetUrl, // the URL you ask for
+    String finalUrl, // the URL you end up at
+    String foundInFirstLine, // some text found in the first line
+    String foundInDocument, // some text found in the document (and won't be in an error page)
     */
     return new Object[][] {
         //
@@ -81,7 +82,7 @@ public class HttpUtilsTest
             "Jalview is a" },
         { "http://www.jalview.org/", "https://www.jalview.org/",
             "<!doctype", "Jalview is a" },
-        { "https://jalview.org/", "https://www.jalview.org/", "<!doctype",
+        { "https://jalview.org", "https://www.jalview.org/", "<!doctype",
             "Jalview is a" },
         /*
          */