diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f391c20..c637fd7 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -69,7 +69,7 @@ jobs: run: sleep 5s - name: Run tests against "mvn jetty:run" server - run: mvn --batch-mode test -DskipTests=false -DargLine="-Dsystem.test.server=http://localhost:8080/plantuml" + run: mvn --batch-mode test -DskipTests=false -Dgroups=\!graphviz-test -DargLine="-Dsystem.test.server=http://localhost:8080/plantuml" test-mvn-livecycle: runs-on: ubuntu-latest @@ -131,7 +131,7 @@ jobs: cache: "maven" - name: Run tests against jetty embedded server - run: mvn --batch-mode clean test -DskipTests=false + run: mvn --batch-mode clean test -DskipTests=false -Dgroups=\!graphviz-test test-mvn-jetty-run: runs-on: ubuntu-latest @@ -161,7 +161,7 @@ jobs: run: sleep 20s - name: Run tests against "mvn jetty:run" server - run: mvn --batch-mode test -DskipTests=false -DargLine="-Dsystem.test.server=http://localhost:8080/plantuml" + run: mvn --batch-mode test -DskipTests=false -Dgroups=\!graphviz-test -DargLine="-Dsystem.test.server=http://localhost:8080/plantuml" test-jetty-runner: runs-on: ubuntu-latest @@ -191,7 +191,7 @@ jobs: run: sleep 5s - name: Run tests against "mvn jetty:run" server - run: mvn --batch-mode test -DskipTests=false -DargLine="-Dsystem.test.server=http://localhost:8080/plantuml" + run: mvn --batch-mode test -DskipTests=false -Dgroups=\!graphviz-test -DargLine="-Dsystem.test.server=http://localhost:8080/plantuml" test-jetty: runs-on: ubuntu-latest diff --git a/pom.xml b/pom.xml index e205580..fd42d71 100644 --- a/pom.xml +++ b/pom.xml @@ -62,6 +62,13 @@ 1.2023.7 11.0.15 + 0.36.1 diff --git a/src/test/java/net/sourceforge/plantuml/servlet/TestDependencies.java b/src/test/java/net/sourceforge/plantuml/servlet/TestDependencies.java new file mode 100644 index 0000000..c61d4cd --- /dev/null +++ b/src/test/java/net/sourceforge/plantuml/servlet/TestDependencies.java @@ -0,0 +1,53 @@ +package net.sourceforge.plantuml.servlet; + +import java.io.IOException; +import java.net.HttpURLConnection; +import java.net.URL; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; + +import net.sourceforge.plantuml.servlet.utils.TestUtils; +import net.sourceforge.plantuml.servlet.utils.WebappTestCase; + + +public class TestDependencies extends WebappTestCase { + + /** + * Verifies that Graphviz is installed and can be found + */ + @Test + @Tag("graphviz-test") + public void testGraphviz() throws IOException { + final URL url = new URL(getServerUrl() + "/txt/" + TestUtils.VERSION); + final HttpURLConnection conn = (HttpURLConnection)url.openConnection(); + // Analyze response + // Verifies HTTP status code and the Content-Type + Assertions.assertEquals(200, conn.getResponseCode(), "Bad HTTP status received"); + Assertions.assertEquals( + "text/plain;charset=utf-8", + conn.getContentType().toLowerCase(), + "Response content type is not TEXT PLAIN or UTF-8" + ); + // Get the content and check installation status + String diagram = getContentText(conn); + Assertions.assertTrue( + diagram.contains("Installation seems OK. File generation OK"), + "Version diagram was:\n" + diagram + ); + } + + /** + * Verifies that the Monaco Editor webjar can be loaded + */ + @Test + public void testMonacoEditorWebJar() throws IOException { + final URL url = new URL(getServerUrl() + "/webjars/monaco-editor/0.36.1/min/vs/loader.js"); + final HttpURLConnection conn = (HttpURLConnection)url.openConnection(); + // Analyze response + // Verifies HTTP status code and the Content-Type + Assertions.assertEquals(200, conn.getResponseCode(), "Bad HTTP status received"); + } + +}