From 960c26a2919270f42ccced4c15ff612bdd004e5a Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Tue, 17 Dec 2024 01:00:31 +0400 Subject: [PATCH] tests: fixed and improved downloader tests --- .../java/mage/client/util/DownloaderTest.java | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/Mage.Client/src/test/java/mage/client/util/DownloaderTest.java b/Mage.Client/src/test/java/mage/client/util/DownloaderTest.java index 6898daf1ed5..68034c47597 100644 --- a/Mage.Client/src/test/java/mage/client/util/DownloaderTest.java +++ b/Mage.Client/src/test/java/mage/client/util/DownloaderTest.java @@ -16,20 +16,35 @@ public class DownloaderTest { @Test public void test_DownloadText_ByHttp() { - String s = XmageURLConnection.downloadText("http://google.com"); + String s = XmageURLConnection.downloadText("http://example.com"); Assert.assertTrue("must have text data", s.contains("")); } @Test public void test_DownloadText_ByHttps() { - String s = XmageURLConnection.downloadText("https://google.com"); + String s = XmageURLConnection.downloadText("https://example.com"); Assert.assertTrue("must have text data", s.contains("")); } + @Test + public void test_DownloadText_ByRedirectProtocol() { + // http to https restricted by design, see https://stackoverflow.com/a/1884427/1276632 + // it's not critical for a client (e.g. for images download), so no needs in custom implementation + // like xmage launcher does + String s = XmageURLConnection.downloadText("http://github.com"); + Assert.assertTrue("must have fail on https redirect (301 result)", s.isEmpty()); + } + + @Test + public void test_DownloadText_ByRedirectUri() { + String s = XmageURLConnection.downloadText("https://github.com/magefree/mage/issues/new"); + Assert.assertTrue("must have text data (redirect to login page)", s.contains("Sign in to GitHub")); + } + @Test public void test_DownloadFile_ByHttp() throws IOException { // use any public image here - InputStream stream = XmageURLConnection.downloadBinary("http://www.google.com/tia/tia.png"); + InputStream stream = XmageURLConnection.downloadBinary("http://xmage.today/images/xmage-logo.png"); Assert.assertNotNull(stream); BufferedImage image = ImageIO.read(stream); Assert.assertNotNull(stream); @@ -39,7 +54,7 @@ public class DownloaderTest { @Test public void test_DownloadFile_ByHttps() throws IOException { // use any public image here - InputStream stream = XmageURLConnection.downloadBinary("https://www.google.com/tia/tia.png"); + InputStream stream = XmageURLConnection.downloadBinary("https://xmage.today/images/xmage-logo.png"); Assert.assertNotNull(stream); BufferedImage image = ImageIO.read(stream); Assert.assertNotNull(stream);