Skip to content

Commit f0c4742

Browse files
committed
build: move webjar test to his own class
1 parent 74d8c8e commit f0c4742

2 files changed

Lines changed: 76 additions & 35 deletions

File tree

tests/src/test/java/io/jooby/test/FeaturedTest.java

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
import java.io.ByteArrayInputStream;
2121
import java.io.IOException;
22-
import java.io.InputStream;
2322
import java.io.Reader;
2423
import java.io.StringReader;
2524
import java.io.Writer;
@@ -42,7 +41,6 @@
4241
import java.util.Locale;
4342
import java.util.Map;
4443
import java.util.Optional;
45-
import java.util.Properties;
4644
import java.util.Scanner;
4745
import java.util.Set;
4846
import java.util.UUID;
@@ -75,7 +73,6 @@
7573
import io.jooby.ServerOptions;
7674
import io.jooby.ServiceKey;
7775
import io.jooby.ServiceRegistry;
78-
import io.jooby.SneakyThrows;
7976
import io.jooby.StatusCode;
8077
import io.jooby.handlebars.HandlebarsModule;
8178
import io.jooby.handler.AccessLogHandler;
@@ -2848,21 +2845,6 @@ public void staticSiteFromFsUsingPathPrefix(ServerTestRunner runner) {
28482845
});
28492846
}
28502847

2851-
private static final String VUE = vueVersion();
2852-
2853-
private static String vueVersion() {
2854-
try (InputStream vueprops =
2855-
FeaturedTest.class
2856-
.getClassLoader()
2857-
.getResourceAsStream("META-INF/maven/org.webjars.npm/vue/pom.properties")) {
2858-
Properties properties = new Properties();
2859-
properties.load(vueprops);
2860-
return properties.getProperty("version");
2861-
} catch (IOException x) {
2862-
throw SneakyThrows.propagate(x);
2863-
}
2864-
}
2865-
28662848
@ServerTest
28672849
public void assets(ServerTestRunner runner) throws IOException {
28682850

@@ -2872,20 +2854,12 @@ public void assets(ServerTestRunner runner) throws IOException {
28722854
String cl4 =
28732855
String.valueOf(userdir("src", "test", "www", "css", "styles.css").toFile().length());
28742856
String cl5 = String.valueOf(userdir("src", "test", "www", "index.html").toFile().length());
2875-
String vueSize =
2876-
String.valueOf(
2877-
getClass()
2878-
.getResource("/META-INF/resources/webjars/vue/" + VUE + "/dist/vue.cjs.js")
2879-
.openConnection()
2880-
.getContentLength());
28812857
runner
28822858
.define(
28832859
app -> {
28842860
app.assets("/static/?*", userdir("src", "test", "www"));
28852861
app.assets("/*", userdir("src", "test", "www"));
28862862
app.assets("/cp/*", "/www");
2887-
app.assets("/jar/*", "/META-INF/resources/webjars/vue/" + VUE);
2888-
app.assets("/jar2/*", "/META-INF/resources/webjars/vue/" + VUE + "/dist");
28892863

28902864
app.assets(
28912865
"/m/*",
@@ -3045,15 +3019,6 @@ public void assets(ServerTestRunner runner) throws IOException {
30453019
assertEquals(cl4, rsp.header("Content-Length").toLowerCase());
30463020
});
30473021

3048-
// Inside jar
3049-
client.get(
3050-
"/jar/dist/vue.cjs.js",
3051-
rsp -> {
3052-
assertEquals(
3053-
"application/javascript;charset=utf-8",
3054-
rsp.header("Content-Type").toLowerCase());
3055-
assertEquals(vueSize, rsp.header("Content-Length").toLowerCase());
3056-
});
30573022
client.get(
30583023
"/jar2/dist/../package.json",
30593024
rsp -> {
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
/*
2+
* Jooby https://jooby.io
3+
* Apache License Version 2.0 https://jooby.io/LICENSE.txt
4+
* Copyright 2014 Edgar Espina
5+
*/
6+
package io.jooby.test;
7+
8+
import static org.junit.jupiter.api.Assertions.assertEquals;
9+
10+
import java.io.IOException;
11+
import java.io.InputStream;
12+
import java.util.Properties;
13+
14+
import io.jooby.SneakyThrows;
15+
import io.jooby.junit.ServerTest;
16+
import io.jooby.junit.ServerTestRunner;
17+
18+
public class WebjarTest {
19+
private static final String VUE = vueVersion();
20+
21+
private static String vueVersion() {
22+
try (InputStream vueprops =
23+
FeaturedTest.class
24+
.getClassLoader()
25+
.getResourceAsStream("META-INF/maven/org.webjars.npm/vue/pom.properties")) {
26+
Properties properties = new Properties();
27+
properties.load(vueprops);
28+
return properties.getProperty("version");
29+
} catch (IOException x) {
30+
throw SneakyThrows.propagate(x);
31+
}
32+
}
33+
34+
@ServerTest
35+
public void webjar(ServerTestRunner runner) throws IOException {
36+
String vueSize =
37+
String.valueOf(
38+
getClass()
39+
.getResource("/META-INF/resources/webjars/vue/" + VUE + "/dist/vue.cjs.js")
40+
.openConnection()
41+
.getContentLength());
42+
runner
43+
.define(
44+
app -> {
45+
app.assets("/jar/*", "/META-INF/resources/webjars/vue/" + VUE);
46+
app.assets("/jar2/*", "/META-INF/resources/webjars/vue/" + VUE + "/dist");
47+
})
48+
.ready(
49+
client -> {
50+
// Inside jar
51+
client.get(
52+
"/jar/dist/vue.cjs.js",
53+
rsp -> {
54+
assertEquals(
55+
"application/javascript;charset=utf-8",
56+
rsp.header("Content-Type").toLowerCase());
57+
assertEquals(vueSize, rsp.header("Content-Length").toLowerCase());
58+
});
59+
client.get(
60+
"/jar2/dist/../package.json",
61+
rsp -> {
62+
assertEquals(404, rsp.code());
63+
});
64+
client.get(
65+
"/jar/dist/nope.js",
66+
rsp -> {
67+
assertEquals(404, rsp.code());
68+
});
69+
client.get(
70+
"/jar/dist",
71+
rsp -> {
72+
assertEquals(404, rsp.code());
73+
});
74+
});
75+
}
76+
}

0 commit comments

Comments
 (0)