diff options
author | Dominik Ritter <dritter03@googlemail.com> | 2018-07-19 08:44:16 +0300 |
---|---|---|
committer | Dominik Ritter <dritter03@googlemail.com> | 2018-07-19 08:44:16 +0300 |
commit | 7a7b4ee13aa69bcc2006cd9b13b67732d05c48be (patch) | |
tree | 269ab95a3887052ffa5102f9739f95f4d0ece0ed /test | |
parent | a5d9227fcb9110bc50d28f6e70bc67c918991f0d (diff) | |
parent | 22a761208d24027a26daa947a7b4034365fefc16 (diff) |
Merge remote-tracking branch 'ben/master' into add_tests
Diffstat (limited to 'test')
-rwxr-xr-x | test/segments/status.spec | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/test/segments/status.spec b/test/segments/status.spec new file mode 100755 index 00000000..21bd65bb --- /dev/null +++ b/test/segments/status.spec @@ -0,0 +1,85 @@ +#!/usr/bin/env zsh +#vim:ft=zsh ts=2 sw=2 sts=2 et fenc=utf-8 + +# Required for shunit2 to run correctly +setopt shwordsplit +SHUNIT_PARENT=$0 + +function setUp() { + export TERM="xterm-256color" + # Load Powerlevel9k + source powerlevel9k.zsh-theme + + ### Test specific + # Resets if someone has set these in his/hers env + unset POWERLEVEL9K_STATUS_VERBOSE + unset POWERLEVEL9K_STATUS_OK_IN_NON_VERBOSE +} + +function testStatusPrintsNothingIfReturnCodeIsZeroAndVerboseIsUnset() { + local POWERLEVEL9K_CUSTOM_WORLD='echo world' + local POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(status custom_world) + local POWERLEVEL9K_STATUS_VERBOSE=false + local POWERLEVEL9K_STATUS_SHOW_PIPESTATUS=false + + assertEquals "%K{white} %F{black}world %k%F{white}%f " "$(build_left_prompt)" +} + +function testStatusWorksAsExpectedIfReturnCodeIsZeroAndVerboseIsSet() { + local POWERLEVEL9K_STATUS_VERBOSE=true + local POWERLEVEL9K_STATUS_SHOW_PIPESTATUS=false + local POWERLEVEL9K_STATUS_HIDE_SIGNAME=true + local POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(status) + + assertEquals "%K{black} %F{green%}✔%f %k%F{black}%f " "$(build_left_prompt)" +} + +function testStatusInGeneralErrorCase() { + local RETVAL=1 + local POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(status) + local POWERLEVEL9K_STATUS_VERBOSE=true + local POWERLEVEL9K_STATUS_SHOW_PIPESTATUS=false + + assertEquals "%K{red} %F{yellow1%}↵ %f%F{yellow1}1 %k%F{red}%f " "$(build_left_prompt)" +} + +function testPipestatusInErrorCase() { + local -a RETVALS + RETVALS=(0 0 1 0) + local POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(status) + local POWERLEVEL9K_STATUS_VERBOSE=true + local POWERLEVEL9K_STATUS_SHOW_PIPESTATUS=true + + assertEquals "%K{red} %F{yellow1%}↵ %f%F{yellow1}0|0|1|0 %k%F{red}%f " "$(build_left_prompt)" +} + +function testStatusCrossWinsOverVerbose() { + local RETVAL=1 + local POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(status) + local POWERLEVEL9K_STATUS_SHOW_PIPESTATUS=false + local POWERLEVEL9K_STATUS_VERBOSE=true + local POWERLEVEL9K_STATUS_CROSS=true + + assertEquals "%K{black} %F{red%}✘%f %k%F{black}%f " "$(build_left_prompt)" +} + +function testStatusShowsSignalNameInErrorCase() { + local RETVAL=132 + local POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(status) + local POWERLEVEL9K_STATUS_SHOW_PIPESTATUS=false + local POWERLEVEL9K_STATUS_VERBOSE=true + local POWERLEVEL9K_STATUS_HIDE_SIGNAME=false + + assertEquals "%K{red} %F{yellow1%}↵ %f%F{yellow1}SIGILL(4) %k%F{red}%f " "$(build_left_prompt)" +} + +function testStatusSegmentIntegrated() { + local POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(status) + local POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=() + + false; powerlevel9k_prepare_prompts + + assertEquals "%f%b%k%K{black} %F{red%}✘%f %k%F{black}%f " "${(e)PROMPT}" +} + +source shunit2/source/2.1/src/shunit2
\ No newline at end of file |