test/jdk/tools/jpackage/linux/ShortcutHintTest.java
branchJDK-8200758-branch
changeset 58762 0fe62353385b
parent 58761 88e2753a2334
child 58888 d802578912f3
--- a/test/jdk/tools/jpackage/linux/ShortcutHintTest.java	Wed Oct 23 10:10:34 2019 -0400
+++ b/test/jdk/tools/jpackage/linux/ShortcutHintTest.java	Wed Oct 23 10:37:54 2019 -0400
@@ -21,13 +21,18 @@
  * questions.
  */
 
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
 import java.util.Map;
 import java.nio.file.Path;
+import java.util.List;
+import java.util.stream.Collectors;
 import jdk.jpackage.test.FileAssociations;
 import jdk.jpackage.test.PackageType;
 import jdk.jpackage.test.PackageTest;
 import jdk.jpackage.test.TKit;
 import jdk.jpackage.test.Annotations.Test;
+import jdk.jpackage.test.*;
 
 /**
  * Test --linux-shortcut parameter. Output of the test should be
@@ -139,4 +144,42 @@
                     TKit.TEST_SRC_ROOT.resolve("apps/dukeplug.png").toString()));
         }).run();
     }
+
+    /**
+     * .desktop file from resource dir.
+     */
+    @Test
+    public static void testDesktopFileFromResourceDir() {
+        final String expectedVersionString = "Version=12345678";
+        TKit.withTempDirectory("resources", tempDir -> {
+            createTest().addInitializer(cmd -> {
+                cmd.setFakeRuntime();
+
+                cmd.addArgument("--linux-shortcut");
+                cmd.addArguments("--resource-dir", tempDir);
+
+                // Create custom .desktop file in resource directory
+                TKit.createTextFile(tempDir.resolve(cmd.name() + ".desktop"),
+                        List.of(
+                                "[Desktop Entry]",
+                                "Name=APPLICATION_NAME",
+                                "Exec=APPLICATION_LAUNCHER",
+                                "Terminal=false",
+                                "Type=Application",
+                                "Categories=DEPLOY_BUNDLE_CATEGORY",
+                                expectedVersionString
+                        ));
+            })
+            .addInstallVerifier(cmd -> {
+                Path desktopFile = cmd.appLayout().destktopIntegrationDirectory().resolve(
+                        String.format("%s-%s.desktop",
+                                LinuxHelper.getPackageName(cmd), cmd.name()));
+                TKit.assertFileExists(desktopFile);
+                TKit.assertTextStream(expectedVersionString)
+                        .label(String.format("[%s] file", desktopFile))
+                        .predicate(String::equals)
+                        .apply(Files.readAllLines(desktopFile).stream());
+            }).run();
+        });
+    }
 }