@Test public void testAnsiAutoEnabledIfNotWindows() { if (!Ansi.isTTY()) { return; } // needs TTY for this test environmentVariables.clear(ANSI_ENVIRONMENT_VARIABLES); System.setProperty("os.name", "MMIX"); assertFalse(Ansi.isWindows()); assertFalse(Ansi.isPseudoTTY()); // TODO Mock this? assertFalse(Ansi.isJansiConsoleInstalled()); assertFalse(Ansi.forceDisabled()); assertFalse(Ansi.forceEnabled()); assertFalse(Ansi.hintDisabled()); assertFalse(Ansi.hintEnabled()); assertTrue("If have TTY, enabled on non-Windows", Ansi.AUTO.enabled()); }
@Test public void testAnsiAutoDisabledIfNoTty() { if (Ansi.isTTY()) { return; } // environmentVariables.clear(ANSI_ENVIRONMENT_VARIABLES); System.setProperty("os.name", "Windows"); assertTrue(Ansi.isWindows()); assertFalse(Ansi.isPseudoTTY()); assertFalse(Ansi.isJansiConsoleInstalled()); assertFalse(Ansi.forceDisabled()); assertFalse(Ansi.forceEnabled()); assertFalse(Ansi.hintDisabled()); assertFalse(Ansi.hintEnabled()); assertFalse("Must have TTY if no JAnsi", Ansi.AUTO.enabled()); }
@Test public void testAnsiAutoHintDisabledOverridesHintEnabled() { environmentVariables.clear(ANSI_ENVIRONMENT_VARIABLES); environmentVariables.set("CLICOLOR", "0"); // hint disabled environmentVariables.set("ANSICON", "1"); // hint enabled System.setProperty("os.name", "Windows"); assertTrue(Ansi.isWindows()); environmentVariables.set("TERM", "xterm"); // fake Cygwin assertTrue(Ansi.isPseudoTTY()); assertFalse(Ansi.isJansiConsoleInstalled()); assertFalse(Ansi.forceDisabled()); assertFalse(Ansi.forceEnabled()); assertTrue(Ansi.hintDisabled()); assertTrue(Ansi.hintEnabled()); assertFalse("Disabled overrides enabled", Ansi.AUTO.enabled()); }
@Test public void testAnsiAutoJansiConsoleInstalledOverridesHintDisabled() { environmentVariables.clear(ANSI_ENVIRONMENT_VARIABLES); environmentVariables.set("CLICOLOR", "0"); // hint disabled System.setProperty("os.name", "Windows"); assertTrue(Ansi.isWindows()); assertFalse(Ansi.isPseudoTTY()); assertFalse(Ansi.forceDisabled()); assertFalse(Ansi.forceEnabled()); assertTrue(Ansi.hintDisabled()); assertFalse(Ansi.hintEnabled()); assertFalse(Ansi.isJansiConsoleInstalled()); AnsiConsole.systemInstall(); try { assertTrue(Ansi.isJansiConsoleInstalled()); assertTrue(Ansi.AUTO.enabled()); } finally { AnsiConsole.systemUninstall(); } }
@Test public void testAnsiHintDisabledTrueIfConEmuANSIisOFF() { environmentVariables.clear(ANSI_ENVIRONMENT_VARIABLES); assertFalse("no env vars set", Ansi.hintDisabled()); environmentVariables.set("ConEmuANSI", ""); assertFalse("Just defining ConEmuANSI is not enough", Ansi.hintDisabled()); environmentVariables.set("ConEmuANSI", "0"); assertFalse("ConEmuANSI=0 is not enough", Ansi.hintDisabled()); environmentVariables.set("ConEmuANSI", "false"); assertFalse("ConEmuANSI=false is not enough", Ansi.hintDisabled()); environmentVariables.set("ConEmuANSI", "off"); assertFalse("ConEmuANSI=off does not disable", Ansi.hintDisabled()); environmentVariables.set("ConEmuANSI", "Off"); assertFalse("ConEmuANSI=Off does not disable", Ansi.hintDisabled()); environmentVariables.set("ConEmuANSI", "OFF"); assertTrue("ConEmuANSI=OFF disables", Ansi.hintDisabled()); }
@Test public void testAnsiAutoHintDisabledOverridesHintEnabled() { environmentVariables.clear(ANSI_ENVIRONMENT_VARIABLES); environmentVariables.set("CLICOLOR", "0"); // hint disabled environmentVariables.set("ANSICON", "1"); // hint enabled System.setProperty("os.name", "Windows"); assertTrue(Ansi.isWindows()); environmentVariables.set("TERM", "xterm"); // fake Cygwin assertTrue(Ansi.isPseudoTTY()); assertFalse(Ansi.isJansiConsoleInstalled()); assertFalse(Ansi.forceDisabled()); assertFalse(Ansi.forceEnabled()); assertTrue(Ansi.hintDisabled()); assertTrue(Ansi.hintEnabled()); assertFalse("Disabled overrides enabled", Ansi.AUTO.enabled()); }
@Test public void testAnsiAutoDisabledIfNoTty() { if (Ansi.isTTY()) { return; } // environmentVariables.clear(ANSI_ENVIRONMENT_VARIABLES); System.setProperty("os.name", "Windows"); assertTrue(Ansi.isWindows()); assertFalse(Ansi.isPseudoTTY()); assertFalse(Ansi.isJansiConsoleInstalled()); assertFalse(Ansi.forceDisabled()); assertFalse(Ansi.forceEnabled()); assertFalse(Ansi.hintDisabled()); assertFalse(Ansi.hintEnabled()); assertFalse("Must have TTY if no JAnsi", Ansi.AUTO.enabled()); }
@Test public void testAnsiAutoEnabledIfNotWindows() { if (!Ansi.isTTY()) { return; } // needs TTY for this test environmentVariables.clear(ANSI_ENVIRONMENT_VARIABLES); System.setProperty("os.name", "MMIX"); assertFalse(Ansi.isWindows()); assertFalse(Ansi.isPseudoTTY()); // TODO Mock this? assertFalse(Ansi.isJansiConsoleInstalled()); assertFalse(Ansi.forceDisabled()); assertFalse(Ansi.forceEnabled()); assertFalse(Ansi.hintDisabled()); assertFalse(Ansi.hintEnabled()); assertTrue("If have TTY, enabled on non-Windows", Ansi.AUTO.enabled()); }
@Test public void testAnsiHintDisabledTrueIfCLICOLORZero() { environmentVariables.clear(ANSI_ENVIRONMENT_VARIABLES); assertFalse("no env vars set", Ansi.hintDisabled()); environmentVariables.set("CLICOLOR", ""); assertFalse("Just defining CLICOLOR is not enough", Ansi.hintDisabled()); environmentVariables.set("CLICOLOR", "1"); assertFalse("CLICOLOR=1 is not enough", Ansi.hintDisabled()); environmentVariables.set("CLICOLOR", "false"); assertFalse("CLICOLOR=false is not enough", Ansi.hintDisabled()); environmentVariables.set("CLICOLOR", "0"); assertTrue("CLICOLOR=0 disables", Ansi.hintDisabled()); }
@Test public void testAnsiAutoForceDisabledOverridesForceEnabled() { environmentVariables.clear(ANSI_ENVIRONMENT_VARIABLES); environmentVariables.set("NO_COLOR", ""); environmentVariables.set("CLICOLOR_FORCE", "1"); assertTrue(Ansi.forceDisabled()); assertTrue(Ansi.forceEnabled()); assertFalse(Ansi.hintDisabled()); assertFalse(Ansi.hintEnabled()); assertFalse("forceDisabled overrides forceEnabled", Ansi.AUTO.enabled()); }
static boolean ansiPossible() { if (forceDisabled()) { return false; } if (forceEnabled()) { return true; } if (isJansiConsoleInstalled()) { return true; } if (hintDisabled()) { return false; } if (!isTTY() && !isPseudoTTY()) { return false; } return hintEnabled() || !isWindows() || isXterm() || hasOsType(); } static boolean isJansiConsoleInstalled() {
@Test public void testAnsiAutoForceDisabledOverridesHintEnabled() { environmentVariables.clear(ANSI_ENVIRONMENT_VARIABLES); environmentVariables.set("NO_COLOR", ""); environmentVariables.set("CLICOLOR", "1"); assertTrue(Ansi.forceDisabled()); assertFalse(Ansi.forceEnabled()); assertFalse(Ansi.hintDisabled()); assertTrue(Ansi.hintEnabled()); assertFalse("forceDisabled overrides hintEnabled", Ansi.AUTO.enabled()); }
@Test public void testAnsiAutoEnabledIfWindowsPseudoTTY() { environmentVariables.clear(ANSI_ENVIRONMENT_VARIABLES); System.setProperty("os.name", "Windows"); assertTrue(Ansi.isWindows()); assertFalse(Ansi.isJansiConsoleInstalled()); assertFalse(Ansi.forceDisabled()); assertFalse(Ansi.forceEnabled()); assertFalse(Ansi.hintDisabled()); assertFalse(Ansi.hintEnabled()); environmentVariables.set("TERM", "xterm"); assertTrue(Ansi.isPseudoTTY()); assertTrue("If have Cygwin pseudo-TTY, enabled on Windows", Ansi.AUTO.enabled()); environmentVariables.clear(ANSI_ENVIRONMENT_VARIABLES); environmentVariables.set("OSTYPE", "Windows"); assertTrue(Ansi.isPseudoTTY()); assertTrue("If have MSYS pseudo-TTY, enabled on Windows", Ansi.AUTO.enabled()); } }
@Test public void testAnsiAutoForcedEnabledOverridesHintDisabled() { environmentVariables.clear(ANSI_ENVIRONMENT_VARIABLES); environmentVariables.set("CLICOLOR", "0"); environmentVariables.set("CLICOLOR_FORCE", "1"); assertFalse(Ansi.forceDisabled()); assertTrue(Ansi.hintDisabled()); assertTrue(Ansi.forceEnabled()); assertFalse(Ansi.hintEnabled()); assertTrue("forceEnabled overrides hintDisabled", Ansi.AUTO.enabled()); environmentVariables.clear(ANSI_ENVIRONMENT_VARIABLES); environmentVariables.set("ConEmuANSI", "OFF"); environmentVariables.set("CLICOLOR_FORCE", "1"); assertFalse(Ansi.forceDisabled()); assertTrue(Ansi.hintDisabled()); assertTrue(Ansi.forceEnabled()); assertFalse(Ansi.hintEnabled()); assertTrue("forceEnabled overrides hintDisabled 2", Ansi.AUTO.enabled()); }
@Test public void testAnsiAutoJansiConsoleInstalledOverridesHintDisabled() { environmentVariables.clear(ANSI_ENVIRONMENT_VARIABLES); environmentVariables.set("CLICOLOR", "0"); // hint disabled System.setProperty("os.name", "Windows"); assertTrue(Ansi.isWindows()); assertFalse(Ansi.isPseudoTTY()); assertFalse(Ansi.forceDisabled()); assertFalse(Ansi.forceEnabled()); assertTrue(Ansi.hintDisabled()); assertFalse(Ansi.hintEnabled()); assertFalse(Ansi.isJansiConsoleInstalled()); AnsiConsole.systemInstall(); try { assertTrue(Ansi.isJansiConsoleInstalled()); assertTrue(Ansi.AUTO.enabled()); } finally { AnsiConsole.systemUninstall(); } }
@Test public void testAnsiHintDisabledTrueIfConEmuANSIisOFF() { environmentVariables.clear(ANSI_ENVIRONMENT_VARIABLES); assertFalse("no env vars set", Ansi.hintDisabled()); environmentVariables.set("ConEmuANSI", ""); assertFalse("Just defining ConEmuANSI is not enough", Ansi.hintDisabled()); environmentVariables.set("ConEmuANSI", "0"); assertFalse("ConEmuANSI=0 is not enough", Ansi.hintDisabled()); environmentVariables.set("ConEmuANSI", "false"); assertFalse("ConEmuANSI=false is not enough", Ansi.hintDisabled()); environmentVariables.set("ConEmuANSI", "off"); assertFalse("ConEmuANSI=off does not disable", Ansi.hintDisabled()); environmentVariables.set("ConEmuANSI", "Off"); assertFalse("ConEmuANSI=Off does not disable", Ansi.hintDisabled()); environmentVariables.set("ConEmuANSI", "OFF"); assertTrue("ConEmuANSI=OFF disables", Ansi.hintDisabled()); }
@Test public void testAnsiHintDisabledTrueIfCLICOLORZero() { environmentVariables.clear(ANSI_ENVIRONMENT_VARIABLES); assertFalse("no env vars set", Ansi.hintDisabled()); environmentVariables.set("CLICOLOR", ""); assertFalse("Just defining CLICOLOR is not enough", Ansi.hintDisabled()); environmentVariables.set("CLICOLOR", "1"); assertFalse("CLICOLOR=1 is not enough", Ansi.hintDisabled()); environmentVariables.set("CLICOLOR", "false"); assertFalse("CLICOLOR=false is not enough", Ansi.hintDisabled()); environmentVariables.set("CLICOLOR", "0"); assertTrue("CLICOLOR=0 disables", Ansi.hintDisabled()); }
static boolean ansiPossible() { if (forceDisabled()) { return false; } if (forceEnabled()) { return true; } if (isJansiConsoleInstalled()) { return true; } if (hintDisabled()) { return false; } if (!isTTY() && !isPseudoTTY()) { return false; } return hintEnabled() || !isWindows() || isXterm() || hasOsType(); } static boolean isJansiConsoleInstalled() {
@Test public void testAnsiAutoForceDisabledOverridesHintEnabled() { environmentVariables.clear(ANSI_ENVIRONMENT_VARIABLES); environmentVariables.set("NO_COLOR", ""); environmentVariables.set("CLICOLOR", "1"); assertTrue(Ansi.forceDisabled()); assertFalse(Ansi.forceEnabled()); assertFalse(Ansi.hintDisabled()); assertTrue(Ansi.hintEnabled()); assertFalse("forceDisabled overrides hintEnabled", Ansi.AUTO.enabled()); }
@Test public void testAnsiAutoForceDisabledOverridesForceEnabled() { environmentVariables.clear(ANSI_ENVIRONMENT_VARIABLES); environmentVariables.set("NO_COLOR", ""); environmentVariables.set("CLICOLOR_FORCE", "1"); assertTrue(Ansi.forceDisabled()); assertTrue(Ansi.forceEnabled()); assertFalse(Ansi.hintDisabled()); assertFalse(Ansi.hintEnabled()); assertFalse("forceDisabled overrides forceEnabled", Ansi.AUTO.enabled()); }