Skip to content

Commit 1810019

Browse files
committed
Make tests work on all operating systems
1 parent 60fc1ec commit 1810019

File tree

3 files changed

+32
-21
lines changed

3 files changed

+32
-21
lines changed

src/test/java/org/gradlex/javamodule/packaging/test/JavaModulePackagingOptionsTest.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ void can_configure_java_options() {
9696

9797
build.build(":app:jpackage");
9898

99-
assertThat(build.file("app/build/packages/macos/app.app/Contents/app/app.cfg").getAsPath()).hasContent("""
99+
assertThat(build.appContentsFolder().file("app.cfg").getAsPath()).hasContent("""
100100
[Application]
101101
app.mainmodule=org.example.app/org.example.app.Main
102102
@@ -133,7 +133,7 @@ void can_set_verbose_option() {
133133

134134
var result = build.build(":app:jpackage");
135135

136-
assertThat(result.getOutput()).contains("Creating app package: app.app in");
136+
assertThat(result.getOutput()).contains("Creating app package: ");
137137
}
138138

139139
@Test
@@ -199,9 +199,8 @@ void can_build_package_in_one_step() {
199199

200200
build.build(":app:jpackage");
201201

202-
assertThat(build.file("app/build/packages/macos/app-1.0.dmg").getAsPath()).exists();
203-
assertThat(build.file("app/build/packages/macos/app-1.0.dmg.sha256").getAsPath()).exists();
204-
assertThat(build.projectDir.dir("app/build/packages/macos").getAsPath()).isDirectoryNotContaining(
205-
f -> f.toFile().isDirectory());
202+
assertThat(build.appImageFolder().file("app-1.0.dmg").getAsPath()).exists();
203+
assertThat(build.appImageFolder().file("app-1.0.dmg.sha256").getAsPath()).exists();
204+
assertThat(build.appImageFolder().getAsPath()).isDirectoryNotContaining(f -> f.toFile().isDirectory());
206205
}
207206
}

src/test/java/org/gradlex/javamodule/packaging/test/JavaModulePackagingResourcesTest.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.junit.jupiter.api.Test;
2222

2323
import static org.assertj.core.api.Assertions.assertThat;
24+
import static org.gradlex.javamodule.packaging.test.fixture.GradleBuild.currentTarget;
2425

2526
/**
2627
* Tests for adding custom resources to the image/package.
@@ -109,11 +110,13 @@ void can_add_resources_for_jpackage() {
109110
build.build(":app:jpackage");
110111

111112
// Intermediate location to collect files
112-
assertThat(build.file("app/build/tmp/jpackage/macos/jpackage-resources/dummy.txt").getAsPath()).exists();
113-
assertThat(build.file("app/build/tmp/jpackage/macos/jpackage-resources/app.icns").getAsPath()).exists();
113+
assertThat(build.file("app/build/tmp/jpackage/%s/jpackage-resources/dummy.txt".formatted(currentTarget()))
114+
.getAsPath()).exists();
115+
assertThat(build.file("app/build/tmp/jpackage/%s/jpackage-resources/app.icns".formatted(currentTarget()))
116+
.getAsPath()).exists();
114117

115118
// Icons end up in Resources
116-
assertThat(build.file("app/build/packages/macos/app.app/Contents/Resources/app.icns").getAsPath()).hasSize(0);
119+
assertThat(build.appContentsFolder().file("Resources/app.icns").getAsPath()).hasSize(0);
117120
}
118121

119122
@Test
@@ -130,8 +133,7 @@ void can_add_resources_for_app_folder() {
130133

131134
build.build(":app:jpackage");
132135

133-
// Icons end up in Resources
134-
assertThat(build.file("app/build/packages/macos/app.app/Contents/app/dummy.txt").getAsPath()).exists();
136+
assertThat(build.appContentsFolder().file("app/dummy.txt").getAsPath()).exists();
135137
}
136138

137139
@Test
@@ -153,6 +155,6 @@ void can_add_resources_to_image_root() {
153155
build.build(":app:jpackage");
154156

155157
// Icons end up in Resources
156-
assertThat(build.file("app/build/packages/macos/app.app/Contents/customFolder/dummy.txt").getAsPath()).exists();
158+
assertThat(build.appContentsFolder().file("customFolder/dummy.txt").getAsPath()).exists();
157159
}
158160
}

src/test/java/org/gradlex/javamodule/packaging/test/fixture/GradleBuild.java

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -108,19 +108,22 @@ public WritableFile file(String path) {
108108
return new WritableFile(projectDir, path);
109109
}
110110

111-
public BuildResult build(String task) {
112-
return runner(task).build();
111+
public Directory appImageFolder() {
112+
if (runsOnMacos()) return projectDir.dir("app/build/packages/macos");
113+
if (runsOnLinux()) return projectDir.dir("app/build/packages/linux");
114+
if (runsOnWindows()) return projectDir.dir("app/build/packages/windows");
115+
throw new IllegalStateException("unknown os");
113116
}
114117

115-
public BuildResult run() {
116-
return runner("run").build();
118+
public Directory appContentsFolder() {
119+
if (runsOnMacos()) return projectDir.dir("app/build/packages/macos/app.app/Contents");
120+
if (runsOnLinux()) return projectDir.dir("app/build/packages/linux/app/lib");
121+
if (runsOnWindows()) return projectDir.dir("app/build/packages/windows/app");
122+
throw new IllegalStateException("unknown os");
117123
}
118124

119-
public BuildResult printRuntimeJars() {
120-
return runner(":app:printRuntimeJars", "-q").build();
121-
}
122-
public BuildResult printCompileJars() {
123-
return runner(":app:printCompileJars", "-q").build();
125+
public BuildResult build(String task) {
126+
return runner(task).build();
124127
}
125128

126129
public BuildResult fail(String task) {
@@ -162,6 +165,13 @@ private static Path createBuildTmpDir() {
162165
}
163166
}
164167

168+
public static String currentTarget() {
169+
if (runsOnMacos()) return "macos";
170+
if (runsOnLinux()) return "linux";
171+
if (runsOnWindows()) return "windows";
172+
throw new IllegalStateException("unknown os");
173+
}
174+
165175
public static boolean runsOnWindows() {
166176
return hostOs().contains("win");
167177
}

0 commit comments

Comments
 (0)