From 5471650010b58d323c67760e43728b543c75142a Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Mon, 28 Jan 2019 16:43:22 +0000
Subject: java-common: update to 3.1

---
 abs/extra/java-common/PKGBUILD            |  24 +--
 abs/extra/java-common/bin_archlinux-java  |  20 +-
 abs/extra/java-common/test_archlinux-java | 299 ++++++++++++++++++++++++------
 3 files changed, 265 insertions(+), 78 deletions(-)

diff --git a/abs/extra/java-common/PKGBUILD b/abs/extra/java-common/PKGBUILD
index 502622e..97f7585 100644
--- a/abs/extra/java-common/PKGBUILD
+++ b/abs/extra/java-common/PKGBUILD
@@ -1,26 +1,28 @@
 # Maintainer: Guillaume ALAUX <guillaume@archlinux.org>
 pkgname=('java-runtime-common' 'java-environment-common')
 pkgbase=java-common
-pkgver=2
-pkgrel=2
+pkgver=3
+pkgrel=1
 arch=('any')
-url='www.archlinux.org'
+url='https://www.archlinux.org/packages/extra/any/java-common/'
 license=('GPL')
 checkdepends=('wget')
+_shunitver=2.1.6
 source=(profile_jre.csh
         profile_jre.sh
         bin_archlinux-java
         test_archlinux-java
-        https://shunit2.googlecode.com/files/shunit2-2.1.6.tgz)
+        shunit2-${_shunitver}.tar.gz::https://github.com/kward/shunit2/archive/source.tar.gz)
 
 sha256sums=('9d25638cafc2fabd1ba6f2f26aa01233eccf3d31db003d956b571f0ab655dd23'
             '519e9881a2a9f4fc3d581ea0ef0da594eedbfdfcf734f9fdc0bb595e8ac77e4c'
-            '272296ec7ca673b4f9f59fb70565328b6daef682c29cd964c988c018090c3fc2'
-            'c2c413a6b2f8b88ed170a5b19f7cb620518e09686f0d286b4b27d30f571e5050'
-            '65a313a76fd5cc1c58c9e19fbc80fc0e418a4cbfbd46d54b35ed5b6e0025d4ee')
+            '5101f9d3d42cd545843a537826451c1b2e0bf2b16aba4e36ac797d9ace16dc63'
+            '721b225f6eb420f7b173ba2db8c65688f50ffd5dad0960ecce4cfefdb57b26a2'
+            '6beca93d20b72b46083c8271c4cf1da21b45f250a92b401c2565c65e1d75138f')
 
 check() {
   cd "${srcdir}"
+  ln -s shunit2-source/${_shunitver} shunit2
   ./test_archlinux-java
 }
 
@@ -46,7 +48,7 @@ package_java-runtime-common() {
   # Official list of binaries that Java headless runtime packages MUST provide
   # This list is based on Arch Linux' default Java implementation: "OpenJDK 7 Icedtea"
   for b in \
-    java keytool orbd pack200 policytool rmid rmiregistry servertool tnameserv unpack200;
+    java keytool orbd pack200 rmid rmiregistry servertool tnameserv unpack200;
   do
     ln -s /usr/lib/jvm/default-runtime/bin/${b} "${pkgdir}/usr/bin/${b}"
   done
@@ -61,9 +63,9 @@ package_java-environment-common() {
   # Official list of supplementary binaries that Java environment packages MUST provide
   # This list is based on Arch Linux' default Java implementation: "OpenJDK 7 Icedtea"
   for b in \
-    appletviewer extcheck idlj jar jarsigner javac javadoc javah javap jcmd \
-    jconsole jdb jhat jinfo jmap jps jrunscript jsadebugd jstack jstat \
-    jstatd native2ascii rmic schemagen serialver wsgen wsimport xjc;
+    jar jarsigner javac javadoc javah javap jcmd \
+    jconsole jdb jinfo jmap jps jstack jstat \
+    jstatd rmic schemagen serialver wsgen wsimport xjc;
   do
     ln -s /usr/lib/jvm/default/bin/${b} "${pkgdir}/usr/bin/${b}"
   done
diff --git a/abs/extra/java-common/bin_archlinux-java b/abs/extra/java-common/bin_archlinux-java
index 453b0a4..5c5937b 100755
--- a/abs/extra/java-common/bin_archlinux-java
+++ b/abs/extra/java-common/bin_archlinux-java
@@ -44,7 +44,7 @@ get_default_java() {
 get_installed_javas() {
   if [ -d ${JVM_DIR} ]; then
     for dir in $(find ${JVM_DIR} -mindepth 1 -maxdepth 1 -type d | sort); do
-      if [ -x ${dir}/bin/javac ]; then
+      if [ -x ${dir}/bin/java ]; then
         javas+=(${dir/${JVM_DIR}\/})
       else
         if [ -x ${dir}/jre/bin/java ]; then
@@ -68,10 +68,10 @@ set_default_link_to() {
   ln -sf ${new_default} ${DEFAULT_PATH}
 
   unlink ${DEFAULT_PATH_JRE} 2>/dev/null
-  if [[ ${new_default} == */jre ]]; then
-    ln -sf ${new_default} ${DEFAULT_PATH_JRE}
-  else
+  if [[ -d ${new_default}/jre ]]; then
     ln -sf ${new_default}/jre ${DEFAULT_PATH_JRE}
+  else
+    ln -sf ${new_default} ${DEFAULT_PATH_JRE}
   fi
 }
 
@@ -90,6 +90,7 @@ do_status() {
     default_java=$(get_default_java)
     echo 'Available Java environments:'
     for java in ${installed_java[@]}; do
+      # We discoverd this Java env but its JRE is actually set as default
       if [ "${java}/jre" = "${default_java}" ]; then
         echo -e "  ${java} (${java}/jre default)"
       elif [ ${java} = "${default_java}" ]; then
@@ -135,6 +136,7 @@ do_unset() {
 do_fix() {
   default=$(get_default_java)
   if is_java_valid ${default}; then
+    # If its parent is also a valid Java environment
     if is_java_valid $(dirname ${default}); then
       unset_default_link
       set_default_link_to $(dirname ${default})
@@ -142,9 +144,13 @@ do_fix() {
   else
     prev=$(readlink ${DEFAULT_PATH})
     unset_default_link
-    prev_fix=("${prev/\/jre}" "${prev}/jre")
-    openjdk7=('java-7-openjdk' 'java-7-openjdk/jre')
-    to_check=(${prev_fix[@]} ${openjdk7[@]} $(get_installed_javas))
+    potential_fixes=("${prev/\/jre}" "${prev}/jre")
+    openjdk8=('java-8-openjdk' 'java-8-openjdk/jre')
+    # List of environments to check by order of preference:
+    # - first potential fixes of user choices,
+    # - then OpenJDK8 as it is considered a default in Arch Linux
+    # - finally, any installed environment
+    to_check=(${potential_fixes[@]} ${openjdk8[@]} $(get_installed_javas))
     for java in ${to_check[@]}; do
       if ! is_java_valid $(get_default_java) && is_java_valid ${java}; then
         set_default_link_to ${java}
diff --git a/abs/extra/java-common/test_archlinux-java b/abs/extra/java-common/test_archlinux-java
index 867745d..d6c4bce 100755
--- a/abs/extra/java-common/test_archlinux-java
+++ b/abs/extra/java-common/test_archlinux-java
@@ -1,6 +1,6 @@
 #! /bin/sh
 #
-# To run this script, ensure shunit2 (https://code.google.com/p/shunit2/)
+# To run this script, ensure shunit2 (https://github.com/kward/shunit2)
 # is available on the local directory, then just run sh bin_archlinux-java_tests
 #
 # inotifywait -r -m -e MODIFY . | while read l; do sh bin_archlinux-java_tests; done
@@ -37,22 +37,32 @@ tearDown() {
 }
 
 # $1: path of Java environment to create
-create_valid_jre_env() {
-  mkdir -p ${JVM_DIR}/$1/bin
-  for binary in java keytool orbd; do
-    touch    ${JVM_DIR}/$1/bin/${binary}
-    chmod +x ${JVM_DIR}/$1/bin/${binary}
-  done
+create_raw_java_env() {
+  java_env_name=$1
+  bin_name=$2
+  mkdir -p ${JVM_DIR}/${java_env_name}/bin
+  touch    ${JVM_DIR}/${java_env_name}/bin/$bin_name
+  chmod +x ${JVM_DIR}/${java_env_name}/bin/$bin_name
+}
+
+create_valid_jre8_env() {
+  create_raw_java_env "$1/jre" "java"
 }
 
 # $1: path of Java environment to create
-create_valid_jdk_env() {
-  create_valid_jre_env "$1"
-  for binary in javac javah jhat; do
-    touch    ${JVM_DIR}/$1/bin/${binary}
-    chmod +x ${JVM_DIR}/$1/bin/${binary}
-  done
-  create_valid_jre_env "$1/jre"
+create_valid_jre8_jdk8_env() {
+  create_raw_java_env "$1" "java"
+  create_raw_java_env "$1" "javac"
+  create_valid_jre8_env "$1"
+}
+
+create_valid_jre9_env() {
+  create_raw_java_env "$1" "java"
+}
+
+create_valid_jre9_jdk9_env() {
+  create_raw_java_env "$1" "java"
+  create_raw_java_env "$1" "javac"
 }
 
 set_default_for_test() {
@@ -79,24 +89,78 @@ assertDefaultSetTo() {
 
 # do_status
 
-test_do_status() {
+test_do_status_with_jre8_default() {
   JAVA_NAME_1="a$(get_rand_str)"
   JAVA_NAME_2="b$(get_rand_str)"
-  create_valid_jre_env "${JAVA_NAME_1}/jre"
+  JAVA_NAME_3="c$(get_rand_str)"
+  create_valid_jre8_env "${JAVA_NAME_1}"
   set_default_for_test "${JAVA_NAME_1}/jre"
-  create_valid_jdk_env "${JAVA_NAME_2}"
-  expected=$(echo -e "Available Java environments:\n  ${JAVA_NAME_1}/jre (default)\n  ${JAVA_NAME_2}")
+  create_valid_jre8_jdk8_env "${JAVA_NAME_2}"
+  create_valid_jre9_env "${JAVA_NAME_3}"
+  mess="Available Java environments:"
+  mess+="\n  ${JAVA_NAME_1}/jre (default)"
+  mess+="\n  ${JAVA_NAME_2}"
+  mess+="\n  ${JAVA_NAME_3}"
+  expected=$(echo -e "${mess}")
+  assertEquals 'Wrong status output' "${expected}" "$(do_status)"
+}
+
+test_do_status_with_jre9_default() {
+  JAVA_NAME_1="a$(get_rand_str)"
+  JAVA_NAME_2="b$(get_rand_str)"
+  JAVA_NAME_3="c$(get_rand_str)"
+  create_valid_jre8_env "${JAVA_NAME_1}"
+  create_valid_jre8_jdk8_env "${JAVA_NAME_2}"
+  create_valid_jre9_env "${JAVA_NAME_3}"
+  set_default_for_test "${JAVA_NAME_3}"
+  mess="Available Java environments:"
+  mess+="\n  ${JAVA_NAME_1}/jre"
+  mess+="\n  ${JAVA_NAME_2}"
+  mess+="\n  ${JAVA_NAME_3} (default)"
+  expected=$(echo -e "${mess}")
+  assertEquals 'Wrong status output' "${expected}" "$(do_status)"
+}
+
+test_do_status_with_jdk9_default() {
+  JAVA_NAME_1="a$(get_rand_str)"
+  JAVA_NAME_2="b$(get_rand_str)"
+  JAVA_NAME_3="c$(get_rand_str)"
+  create_valid_jre8_env "${JAVA_NAME_1}"
+  create_valid_jre8_jdk8_env "${JAVA_NAME_2}"
+  create_valid_jre9_jdk9_env "${JAVA_NAME_3}"
+  set_default_for_test "${JAVA_NAME_3}"
+  mess="Available Java environments:"
+  mess+="\n  ${JAVA_NAME_1}/jre"
+  mess+="\n  ${JAVA_NAME_2}"
+  mess+="\n  ${JAVA_NAME_3} (default)"
+  expected=$(echo -e "${mess}")
   assertEquals 'Wrong status output' "${expected}" "$(do_status)"
 }
 
 test_do_status_no_default() {
   JAVA_NAME_1="a$(get_rand_str)"
   JAVA_NAME_2="b$(get_rand_str)"
-  create_valid_jre_env "${JAVA_NAME_1}/jre"
-  create_valid_jdk_env "${JAVA_NAME_2}"
+  JAVA_NAME_3="c$(get_rand_str)"
+  JAVA_NAME_4="d$(get_rand_str)"
+  create_valid_jre8_env "${JAVA_NAME_1}"
+  create_valid_jre8_jdk8_env "${JAVA_NAME_2}"
+  create_valid_jre9_env "${JAVA_NAME_3}"
+  create_valid_jre9_jdk9_env "${JAVA_NAME_4}"
   mess="Available Java environments:"
   mess+="\n  ${JAVA_NAME_1}/jre"
   mess+="\n  ${JAVA_NAME_2}"
+  mess+="\n  ${JAVA_NAME_3}"
+  mess+="\n  ${JAVA_NAME_4}"
+  mess+="\nNo Java environment set as default"
+  expected=$(echo -e "${mess}")
+  assertEquals 'Wrong status output' "${expected}" "$(do_status)"
+}
+
+test_do_status_no_duplicate_entry_jre9_jdk9() {
+  JAVA_NAME_1="a$(get_rand_str)"
+  create_valid_jre9_jdk9_env "${JAVA_NAME_1}"
+  mess="Available Java environments:"
+  mess+="\n  ${JAVA_NAME_1}"
   mess+="\nNo Java environment set as default"
   expected=$(echo -e "${mess}")
   assertEquals 'Wrong status output' "${expected}" "$(do_status)"
@@ -107,7 +171,7 @@ test_do_status_no_javas() {
 }
 
 test_do_status_jre_but_jdk_exists() {
-  create_valid_jdk_env "${JAVA_NAME}"
+  create_valid_jre8_jdk8_env "${JAVA_NAME}"
   set_default_for_test "${JAVA_NAME}/jre"
   mess="Available Java environments:"
   mess+="\n  ${JAVA_NAME} (${JAVA_NAME}/jre default)"
@@ -117,27 +181,35 @@ test_do_status_jre_but_jdk_exists() {
 
 # do_get
 
-test_do_get_with_default() {
-  create_valid_jdk_env "${JAVA_NAME}"
+test_do_get_with_jdk8_default() {
+  create_valid_jre8_jdk8_env "${JAVA_NAME}"
   set_default_for_test "${JAVA_NAME}"
   assertEquals 'Wrong result' "${JAVA_NAME}" "$(do_get)"
   assertDefaultSetTo "${JAVA_NAME}"
 }
 
 test_do_get_without_default() {
-  create_valid_jdk_env "${JAVA_NAME}"
+  create_valid_jre8_jdk8_env "$(get_rand_str)"
+  create_valid_jre9_jdk9_env "$(get_rand_str)"
   assertNull 'Wrong result' "$(do_get)"
 }
 
-test_do_get_without_default() {
+test_do_get_with_initial_null() {
   set_default_for_test "/dev/null"
   assertNull 'Wrong result' "$(do_get)"
 }
 
+test_do_get_with_jdk9_default() {
+  create_valid_jre9_jdk9_env "${JAVA_NAME}"
+  set_default_for_test "${JAVA_NAME}"
+  assertEquals 'Wrong result' "${JAVA_NAME}" "$(do_get)"
+  assertDefaultSetTo "${JAVA_NAME}"
+}
+
 # do_set
 
 test_do_set_new_invalid() {
-  create_valid_jdk_env "${JAVA_NAME}"
+  create_valid_jre8_jdk8_env "${JAVA_NAME}"
   set_default_for_test "${JAVA_NAME}"
   output=$(do_set "INVALID")
   assertEquals 'Wrong status returned' 1 $?
@@ -146,32 +218,66 @@ test_do_set_new_invalid() {
 }
 
 test_do_set_current_invalid() {
-  create_valid_jdk_env "${JAVA_NAME}"
+  create_valid_jre8_jdk8_env "${JAVA_NAME}"
   set_default_for_test "INVALID"
   $(do_set "${JAVA_NAME}")
   assertEquals 'Wrong status returned' 0 $?
   assertDefaultSetTo "${JAVA_NAME}"
 }
 
-test_do_set_with_default_already_set() {
-  create_valid_jre_env "${JAVA_NAME}/jre"
+test_do_set_jre8_with_default_already_set_to_jre8() {
+  create_valid_jre8_env "${JAVA_NAME}"
   set_default_for_test "${JAVA_NAME}/jre"
   JAVA_NAME_2="$(get_rand_str)"
-  create_valid_jre_env "${JAVA_NAME_2}/jre"
+  create_valid_jre8_env "${JAVA_NAME_2}"
   $(do_set "${JAVA_NAME_2}/jre")
   assertEquals 'Wrong status returned' 0 $?
   assertDefaultSetTo "${JAVA_NAME_2}/jre"
 }
 
-test_do_set_no_default() {
-  create_valid_jre_env "${JAVA_NAME}/jre"
+test_do_set_jre9_with_default_already_set_to_jre8() {
+  create_valid_jre8_env "${JAVA_NAME}"
+  set_default_for_test "${JAVA_NAME}/jre"
+  JAVA_NAME_2="$(get_rand_str)"
+  create_valid_jre9_env "${JAVA_NAME_2}"
+  $(do_set "${JAVA_NAME_2}")
+  assertEquals 'Wrong status returned' 0 $?
+  assertDefaultSetTo "${JAVA_NAME_2}"
+}
+
+test_do_set_jdk9_with_default_already_set_to_jdk8() {
+  create_valid_jre8_jdk8_env "${JAVA_NAME}"
+  set_default_for_test "${JAVA_NAME}"
+  JAVA_NAME_2="$(get_rand_str)"
+  create_valid_jre9_jdk9_env "${JAVA_NAME_2}"
+  $(do_set "${JAVA_NAME_2}")
+  assertEquals 'Wrong status returned' 0 $?
+  assertDefaultSetTo "${JAVA_NAME_2}"
+}
+
+test_do_set_jre8_no_previous_default() {
+  create_valid_jre8_env "${JAVA_NAME}"
   $(do_set "${JAVA_NAME}/jre")
   assertEquals 'Wrong status returned' 0 $?
   assertDefaultSetTo "${JAVA_NAME}/jre"
 }
 
-test_do_set_exists_jdk() {
-  create_valid_jdk_env "${JAVA_NAME}"
+test_do_set_jre9_no_previous_default() {
+  create_valid_jre9_env "${JAVA_NAME}"
+  $(do_set "${JAVA_NAME}")
+  assertEquals 'Wrong status returned' 0 $?
+  assertDefaultSetTo "${JAVA_NAME}"
+}
+
+test_do_set_jdk9_no_previous_default() {
+  create_valid_jre9_jdk9_env "${JAVA_NAME}"
+  $(do_set "${JAVA_NAME}")
+  assertEquals 'Wrong status returned' 0 $?
+  assertDefaultSetTo "${JAVA_NAME}"
+}
+
+test_do_set_jre8_while_jdk8_also_exists() {
+  create_valid_jre8_jdk8_env "${JAVA_NAME}"
   output=$(do_set "${JAVA_NAME}/jre")
   assertEquals 'Wrong status returned' 0 $?
   assertDefaultSetTo "${JAVA_NAME}/jre"
@@ -181,33 +287,52 @@ test_do_set_exists_jdk() {
   #assertEquals 'Wrong message' "${expected}" "${output}"
 }
 
-test_do_set_cleanup_old_java_default() {
-  create_valid_jdk_env "${JAVA_NAME}"
+test_do_set_jdk8_cleanup_old_jre8_default() {
+  create_valid_jre8_jdk8_env "${JAVA_NAME}"
   set_default_for_test "${JAVA_NAME}"
   output=$(do_set "${JAVA_NAME}/jre")
   assertEquals 'Wrong status returned' 0 $?
   assertDefaultSetTo "${JAVA_NAME}/jre"
 }
 
-test_do_set_devnull() {
-  create_valid_jdk_env "${JAVA_NAME}"
+test_do_set_jdk9_cleanup_old_jdk8_default() {
+  JAVA8_NAME=$(get_rand_str)
+  create_valid_jre8_jdk8_env "${JAVA8_NAME}"
+  set_default_for_test "${JAVA8_NAME}"
+  JAVA9_NAME=$(get_rand_str)
+  create_valid_jre9_jdk9_env "${JAVA9_NAME}"
+  output=$(do_set "${JAVA9_NAME}")
+  assertEquals 'Wrong status returned' 0 $?
+  assertDefaultSetTo "${JAVA9_NAME}"
+}
+
+test_do_set_jdk8_devnull() {
+  create_valid_jre8_jdk8_env "${JAVA_NAME}"
   set_default_for_test "/dev/null"
   output=$(do_set "${JAVA_NAME}/jre")
   assertEquals 'Wrong status returned' 0 $?
   assertDefaultSetTo "${JAVA_NAME}/jre"
 }
 
+test_do_set_jdk9_devnull() {
+  create_valid_jre9_jdk9_env "${JAVA_NAME}"
+  set_default_for_test "/dev/null"
+  output=$(do_set "${JAVA_NAME}")
+  assertEquals 'Wrong status returned' 0 $?
+  assertDefaultSetTo "${JAVA_NAME}"
+}
+
 # do_unset
 
-test_do_unset_default_not_target() {
-  create_valid_jre_env "${JAVA_NAME}/jre"
+test_do_unset_jre8() {
+  create_valid_jre8_env "${JAVA_NAME}"
   set_default_for_test "${JAVA_NAME}/jre"
   do_unset
   assertDefaultNotSet
 }
 
 test_do_unset_no_default_link() {
-  create_valid_jdk_env "${JAVA_NAME}"
+  create_valid_jre8_jdk8_env "${JAVA_NAME}"
   set_default_for_test "${JAVA_NAME}"
   unlink ${DEFAULT_PATH}
   do_unset
@@ -220,37 +345,90 @@ test_do_unset_devnull() {
   assertDefaultNotSet
 }
 
+test_do_unset_jre9() {
+  create_valid_jre9_env "${JAVA_NAME}"
+  set_default_for_test "${JAVA_NAME}"
+  do_unset
+  assertDefaultNotSet
+}
+
+test_do_unset_jdk9() {
+  create_valid_jre9_jdk9_env "${JAVA_NAME}"
+  set_default_for_test "${JAVA_NAME}"
+  do_unset
+  assertDefaultNotSet
+}
+
 # do_fix
 
-test_do_fix_default_valid() {
-  create_valid_jre_env "${JAVA_NAME}/jre"
+test_do_fix_default_valid_jre8() {
+  create_valid_jre8_env "${JAVA_NAME}"
   set_default_for_test "${JAVA_NAME}/jre"
   do_fix
   assertDefaultSetTo "${JAVA_NAME}/jre"
 }
 
-test_do_fix_no_default() {
-  create_valid_jre_env "${JAVA_NAME}/jre"
+test_do_fix_default_valid_jre9() {
+  create_valid_jre9_env "${JAVA_NAME}"
+  set_default_for_test "${JAVA_NAME}"
+  do_fix
+  assertDefaultSetTo "${JAVA_NAME}"
+}
+
+test_do_fix_default_valid_jdk9() {
+  create_valid_jre9_jdk9_env "${JAVA_NAME}"
+  set_default_for_test "${JAVA_NAME}"
+  do_fix
+  assertDefaultSetTo "${JAVA_NAME}"
+}
+
+test_do_fix_no_default_jre8() {
+  create_valid_jre8_env "${JAVA_NAME}"
   do_fix
   assertDefaultSetTo "${JAVA_NAME}/jre"
 }
 
+test_do_fix_no_default_jre9() {
+  create_valid_jre9_env "${JAVA_NAME}"
+  do_fix
+  assertDefaultSetTo "${JAVA_NAME}"
+}
+
+test_do_fix_no_default_jdk9() {
+  create_valid_jre9_jdk9_env "${JAVA_NAME}"
+  do_fix
+  assertDefaultSetTo "${JAVA_NAME}"
+}
+
 test_do_fix_default_invalid_openjdk7_jdk_installed() {
-  create_valid_jdk_env "java-7-openjdk"
-  create_valid_jdk_env "${JAVA_NAME}"
+  create_valid_jre8_jdk8_env "java-8-openjdk"
+  create_valid_jre8_jdk8_env "${JAVA_NAME}"
+  do_fix
+  assertDefaultSetTo "java-8-openjdk"
+}
+
+test_do_fix_jdk8_not_default_but_openjdk7_jre_installed() {
+  create_valid_jre8_jdk8_env "${JAVA_NAME}"
+  create_valid_jre8_env "java-8-openjdk"
+  do_fix
+  assertDefaultSetTo "java-8-openjdk/jre"
+}
+
+test_do_fix_jdk9_not_default_but_openjdk7_jre_installed() {
+  create_valid_jre9_jdk9_env "${JAVA_NAME}"
+  create_valid_jre8_env "java-8-openjdk"
   do_fix
-  assertDefaultSetTo "java-7-openjdk"
+  assertDefaultSetTo "java-8-openjdk/jre"
 }
 
-test_do_fix_default_invalid_openjdk7_jre_installed() {
-  create_valid_jdk_env "${JAVA_NAME}"
-  create_valid_jre_env "java-7-openjdk/jre"
+test_do_fix_default_invalid_random_java8_installed() {
+  create_valid_jre8_jdk8_env "${JAVA_NAME}"
   do_fix
-  assertDefaultSetTo "java-7-openjdk/jre"
+  assertDefaultSetTo "${JAVA_NAME}"
 }
 
-test_do_fix_default_invalid_random_java_installed() {
-  create_valid_jdk_env "${JAVA_NAME}"
+test_do_fix_default_invalid_random_java9_installed() {
+  create_valid_jre9_jdk9_env "${JAVA_NAME}"
   do_fix
   assertDefaultSetTo "${JAVA_NAME}"
 }
@@ -260,27 +438,28 @@ test_do_fix_default_invalid_no_java_installed() {
   assertDefaultNotSet
 }
 
-test_do_fix_jre_but_jdk_exists() {
-  create_valid_jdk_env "${JAVA_NAME}"
+test_do_fix_jre8_but_jdk8_exists() {
+  create_valid_jre8_jdk8_env "${JAVA_NAME}"
   set_default_for_test "${JAVA_NAME}/jre"
   do_fix
   assertDefaultSetTo "${JAVA_NAME}"
 }
 
 test_do_fix_jdk_but_jre_exists() {
-  create_valid_jdk_env "java-7-openjdk"
-  create_valid_jre_env "${JAVA_NAME}/jre"
+  create_valid_jre8_jdk8_env "java-7-openjdk"
+  create_valid_jre8_env "${JAVA_NAME}"
+  # Only JRE is installed but setting JDK as default
   set_default_for_test "${JAVA_NAME}"
   do_fix
   assertDefaultSetTo "${JAVA_NAME}/jre"
 }
 
 test_do_fix_devnull() {
-  create_valid_jdk_env "${JAVA_NAME}"
+  create_valid_jre8_jdk8_env "${JAVA_NAME}"
   set_default_for_test "/dev/null"
   do_fix
   assertDefaultSetTo "${JAVA_NAME}"
 }
 
 # load shunit2
-. shunit2-2.1.6/src/shunit2
+. shunit2/src/shunit2
-- 
cgit v0.12

