Merge branch 'next' into execution_time
This commit is contained in:
commit
875dec5dae
6 changed files with 319 additions and 66 deletions
|
@ -10,86 +10,108 @@ function setUp() {
|
|||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
source functions/*
|
||||
|
||||
# Unset mode, so that user settings
|
||||
# do not interfere with tests
|
||||
unset POWERLEVEL9K_MODE
|
||||
}
|
||||
|
||||
function testJoinedSegments() {
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir dir_joined)
|
||||
cd /tmp
|
||||
|
||||
assertEquals "%K{blue} %F{black}%~ %K{blue}%F{black}%F{black}%~ %k%F{blue}%f " "$(build_left_prompt)"
|
||||
assertEquals "%K{blue} %F{black}/tmp %K{blue}%F{black}%F{black}/tmp %k%F{blue}%f " "$(build_left_prompt)"
|
||||
|
||||
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
cd -
|
||||
}
|
||||
|
||||
function testTransitiveJoinedSegments() {
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir root_indicator_joined dir_joined)
|
||||
cd /tmp
|
||||
|
||||
assertEquals "%K{blue} %F{black}%~ %K{blue}%F{black}%F{black}%~ %k%F{blue}%f " "$(build_left_prompt)"
|
||||
assertEquals "%K{blue} %F{black}/tmp %K{blue}%F{black}%F{black}/tmp %k%F{blue}%f " "$(build_left_prompt)"
|
||||
|
||||
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
cd -
|
||||
}
|
||||
|
||||
function testJoiningWithConditionalSegment() {
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir background_jobs dir_joined)
|
||||
cd /tmp
|
||||
|
||||
assertEquals "%K{blue} %F{black}%~ %K{blue}%F{black} %F{black}%~ %k%F{blue}%f " "$(build_left_prompt)"
|
||||
assertEquals "%K{blue} %F{black}/tmp %K{blue}%F{black} %F{black}/tmp %k%F{blue}%f " "$(build_left_prompt)"
|
||||
|
||||
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
cd -
|
||||
}
|
||||
|
||||
function testDynamicColoringOfSegmentsWork() {
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir)
|
||||
POWERLEVEL9K_DIR_HOME_SUBFOLDER_BACKGROUND='red'
|
||||
POWERLEVEL9K_DIR_DEFAULT_BACKGROUND='red'
|
||||
cd /tmp
|
||||
|
||||
assertEquals "%K{red} %F{black}%~ %k%F{red}%f " "$(build_left_prompt)"
|
||||
assertEquals "%K{red} %F{black}/tmp %k%F{red}%f " "$(build_left_prompt)"
|
||||
|
||||
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
unset POWERLEVEL9K_DIR_HOME_SUBFOLDER_BACKGROUND
|
||||
unset POWERLEVEL9K_DIR_DEFAULT_BACKGROUND
|
||||
cd -
|
||||
}
|
||||
|
||||
function testDynamicColoringOfVisualIdentifiersWork() {
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir)
|
||||
POWERLEVEL9K_MODE='awesome-patched'
|
||||
POWERLEVEL9K_DIR_HOME_SUBFOLDER_VISUAL_IDENTIFIER_COLOR='green'
|
||||
POWERLEVEL9K_DIR_DEFAULT_VISUAL_IDENTIFIER_COLOR='green'
|
||||
POWERLEVEL9K_FOLDER_ICON="icon-here"
|
||||
|
||||
# Re-Source the icons, as the POWERLEVEL9K_MODE is directly
|
||||
# evaluated there.
|
||||
source functions/icons.zsh
|
||||
cd /tmp
|
||||
|
||||
assertEquals "%K{blue} %F{green%}%f %F{black}%~ %k%F{blue}%f " "$(build_left_prompt)"
|
||||
assertEquals "%K{blue} %F{green%}icon-here%f %F{black}/tmp %k%F{blue}%f " "$(build_left_prompt)"
|
||||
|
||||
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
unset POWERLEVEL9K_MODE
|
||||
unset POWERLEVEL9K_DIR_HOME_SUBFOLDER_VISUAL_IDENTIFIER_COLOR
|
||||
unset POWERLEVEL9K_DIR_DEFAULT_VISUAL_IDENTIFIER_COLOR
|
||||
unset POWERLEVEL9K_FOLDER_ICON
|
||||
cd -
|
||||
}
|
||||
|
||||
function testColoringOfVisualIdentifiersDoesNotOverwriteColoringOfSegment() {
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir)
|
||||
POWERLEVEL9K_MODE='awesome-patched'
|
||||
POWERLEVEL9K_DIR_HOME_SUBFOLDER_VISUAL_IDENTIFIER_COLOR='green'
|
||||
POWERLEVEL9K_DIR_HOME_SUBFOLDER_FOREGROUND='red'
|
||||
POWERLEVEL9K_DIR_HOME_SUBFOLDER_BACKGROUND='yellow'
|
||||
POWERLEVEL9K_DIR_DEFAULT_VISUAL_IDENTIFIER_COLOR='green'
|
||||
POWERLEVEL9K_DIR_DEFAULT_FOREGROUND='red'
|
||||
POWERLEVEL9K_DIR_DEFAULT_BACKGROUND='yellow'
|
||||
POWERLEVEL9K_FOLDER_ICON="icon-here"
|
||||
|
||||
# Re-Source the icons, as the POWERLEVEL9K_MODE is directly
|
||||
# evaluated there.
|
||||
source functions/icons.zsh
|
||||
|
||||
assertEquals "%K{yellow} %F{green%}%f %F{red}%~ %k%F{yellow}%f " "$(build_left_prompt)"
|
||||
cd /tmp
|
||||
|
||||
assertEquals "%K{yellow} %F{green%}icon-here%f %F{red}/tmp %k%F{yellow}%f " "$(build_left_prompt)"
|
||||
|
||||
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
unset POWERLEVEL9K_MODE
|
||||
unset POWERLEVEL9K_DIR_HOME_SUBFOLDER_VISUAL_IDENTIFIER_COLOR
|
||||
unset POWERLEVEL9K_DIR_HOME_SUBFOLDER_FOREGROUND
|
||||
unset POWERLEVEL9K_DIR_HOME_SUBFOLDER_BACKGROUND
|
||||
unset POWERLEVEL9K_DIR_DEFAULT_VISUAL_IDENTIFIER_COLOR
|
||||
unset POWERLEVEL9K_DIR_DEFAULT_FOREGROUND
|
||||
unset POWERLEVEL9K_DIR_DEFAULT_BACKGROUND
|
||||
unset POWERLEVEL9K_FOLDER_ICON
|
||||
cd -
|
||||
}
|
||||
|
||||
function testOverwritingIconsWork() {
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir)
|
||||
POWERLEVEL9K_HOME_SUB_ICON='icon-here'
|
||||
POWERLEVEL9K_FOLDER_ICON='icon-here'
|
||||
#local testFolder=$(mktemp -d -p p9k)
|
||||
# Move testFolder under home folder
|
||||
#mv testFolder ~
|
||||
# Go into testFolder
|
||||
#cd ~/$testFolder
|
||||
|
||||
assertEquals "%K{blue} %F{black%}icon-here%f %F{black}%~ %k%F{blue}%f " "$(build_left_prompt)"
|
||||
cd /tmp
|
||||
assertEquals "%K{blue} %F{black%}icon-here%f %F{black}/tmp %k%F{blue}%f " "$(build_left_prompt)"
|
||||
|
||||
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
unset POWERLEVEL9K_DIR_HOME_SUB_ICON
|
||||
unset POWERLEVEL9K_DIR_FOLDER_ICON
|
||||
cd -
|
||||
# rm -fr ~/$testFolder
|
||||
}
|
||||
|
||||
source shunit2/source/2.1/src/shunit2
|
||||
|
|
|
@ -9,10 +9,16 @@ function setUp() {
|
|||
export TERM="xterm-256color"
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
# Every test should at least use the dir segment
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir)
|
||||
}
|
||||
|
||||
function tearDown() {
|
||||
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
}
|
||||
|
||||
function testTruncateFoldersWorks() {
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir)
|
||||
POWERLEVEL9K_SHORTEN_DIR_LENGTH=2
|
||||
POWERLEVEL9K_SHORTEN_STRATEGY='truncate_folders'
|
||||
|
||||
|
@ -20,19 +26,17 @@ function testTruncateFoldersWorks() {
|
|||
mkdir -p $FOLDER
|
||||
cd $FOLDER
|
||||
|
||||
assertEquals "%K{blue} %F{black}%3(c:…/:)%2c %k%F{blue}%f " "$(build_left_prompt)"
|
||||
assertEquals "%K{blue} %F{black}…/12345678/123456789 %k%F{blue}%f " "$(build_left_prompt)"
|
||||
|
||||
cd -
|
||||
rm -fr /tmp/powerlevel9k-test
|
||||
|
||||
unset FOLDER
|
||||
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
unset POWERLEVEL9K_SHORTEN_DIR_LENGTH
|
||||
unset POWERLEVEL9K_SHORTEN_STRATEGY
|
||||
}
|
||||
|
||||
function testTruncateMiddleWorks() {
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir)
|
||||
POWERLEVEL9K_SHORTEN_DIR_LENGTH=2
|
||||
POWERLEVEL9K_SHORTEN_STRATEGY='truncate_middle'
|
||||
|
||||
|
@ -47,12 +51,10 @@ function testTruncateMiddleWorks() {
|
|||
|
||||
unset FOLDER
|
||||
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
unset POWERLEVEL9K_SHORTEN_DIR_LENGTH
|
||||
unset POWERLEVEL9K_SHORTEN_STRATEGY
|
||||
}
|
||||
|
||||
function testTruncationFromRightWorks() {
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir)
|
||||
POWERLEVEL9K_SHORTEN_DIR_LENGTH=2
|
||||
POWERLEVEL9K_SHORTEN_STRATEGY='truncate_from_right'
|
||||
|
||||
|
@ -66,53 +68,191 @@ function testTruncationFromRightWorks() {
|
|||
rm -fr /tmp/powerlevel9k-test
|
||||
|
||||
unset FOLDER
|
||||
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
unset POWERLEVEL9K_SHORTEN_DIR_LENGTH
|
||||
unset POWERLEVEL9K_SHORTEN_STRATEGY
|
||||
}
|
||||
|
||||
function testHomeFolderDetectionWorks() {
|
||||
function testTruncateWithFolderMarkerWorks() {
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir)
|
||||
POWERLEVEL9K_SHORTEN_STRATEGY="truncate_with_folder_marker"
|
||||
|
||||
local BASEFOLDER=/tmp/powerlevel9k-test
|
||||
local FOLDER=$BASEFOLDER/1/12/123/1234/12345/123456/1234567
|
||||
mkdir -p $FOLDER
|
||||
# Setup folder marker
|
||||
touch $BASEFOLDER/1/12/.shorten_folder_marker
|
||||
cd $FOLDER
|
||||
assertEquals "%K{blue} %F{black}/…/12/123/1234/12345/123456/1234567 %k%F{blue}%f " "$(build_left_prompt)"
|
||||
|
||||
cd -
|
||||
rm -fr $BASEFOLDER
|
||||
unset BASEFOLDER
|
||||
unset FOLDER
|
||||
unset POWERLEVEL9K_SHORTEN_STRATEGY
|
||||
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
}
|
||||
|
||||
function testTruncateWithFolderMarkerWithChangedFolderMarker() {
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir)
|
||||
POWERLEVEL9K_SHORTEN_STRATEGY="truncate_with_folder_marker"
|
||||
POWERLEVEL9K_SHORTEN_FOLDER_MARKER='.xxx'
|
||||
|
||||
local BASEFOLDER=/tmp/powerlevel9k-test
|
||||
local FOLDER=$BASEFOLDER/1/12/123/1234/12345/123456/1234567
|
||||
mkdir -p $FOLDER
|
||||
# Setup folder marker
|
||||
touch $BASEFOLDER/1/12/.xxx
|
||||
cd $FOLDER
|
||||
assertEquals "%K{blue} %F{black}/…/12/123/1234/12345/123456/1234567 %k%F{blue}%f " "$(build_left_prompt)"
|
||||
|
||||
cd -
|
||||
rm -fr $BASEFOLDER
|
||||
unset BASEFOLDER
|
||||
unset FOLDER
|
||||
unset POWERLEVEL9K_SHORTEN_FOLDER_MARKER
|
||||
unset POWERLEVEL9K_SHORTEN_STRATEGY
|
||||
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
}
|
||||
|
||||
function testHomeFolderDetectionWorks() {
|
||||
POWERLEVEL9K_HOME_ICON='home-icon'
|
||||
|
||||
cd ~
|
||||
assertEquals "%K{blue} %F{black%}home-icon%f %F{black}%~ %k%F{blue}%f " "$(build_left_prompt)"
|
||||
assertEquals "%K{blue} %F{black%}home-icon%f %F{black}~ %k%F{blue}%f " "$(build_left_prompt)"
|
||||
|
||||
cd -
|
||||
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
unset POWERLEVEL9K_HOME_ICON
|
||||
}
|
||||
|
||||
function testHomeSubfolderDetectionWorks() {
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir)
|
||||
POWERLEVEL9K_HOME_SUB_ICON='sub-icon'
|
||||
|
||||
FOLDER=~/powerlevel9k-test
|
||||
mkdir $FOLDER
|
||||
cd $FOLDER
|
||||
assertEquals "%K{blue} %F{black%}sub-icon%f %F{black}%~ %k%F{blue}%f " "$(build_left_prompt)"
|
||||
assertEquals "%K{blue} %F{black%}sub-icon%f %F{black}~/powerlevel9k-test %k%F{blue}%f " "$(build_left_prompt)"
|
||||
|
||||
cd -
|
||||
rm -fr $FOLDER
|
||||
unset FOLDER
|
||||
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
unset POWERLEVEL9K_HOME_SUB_ICON
|
||||
}
|
||||
|
||||
function testOtherFolderDetectionWorks() {
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir)
|
||||
POWERLEVEL9K_FOLDER_ICON='folder-icon'
|
||||
|
||||
FOLDER=/tmp/powerlevel9k-test
|
||||
mkdir $FOLDER
|
||||
cd $FOLDER
|
||||
assertEquals "%K{blue} %F{black%}folder-icon%f %F{black}%~ %k%F{blue}%f " "$(build_left_prompt)"
|
||||
assertEquals "%K{blue} %F{black%}folder-icon%f %F{black}/tmp/powerlevel9k-test %k%F{blue}%f " "$(build_left_prompt)"
|
||||
|
||||
cd -
|
||||
rm -fr $FOLDER
|
||||
unset FOLDER
|
||||
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
unset POWERLEVEL9K_FOLDER_ICON
|
||||
}
|
||||
|
||||
function testChangingDirPathSeparator() {
|
||||
POWERLEVEL9K_DIR_PATH_SEPARATOR='xXx'
|
||||
local FOLDER="/tmp/powerlevel9k-test/1/2"
|
||||
mkdir -p $FOLDER
|
||||
cd $FOLDER
|
||||
|
||||
assertEquals "%K{blue} %F{black}xXxtmpxXxpowerlevel9k-testxXx1xXx2 %k%F{blue}%f " "$(build_left_prompt)"
|
||||
|
||||
cd -
|
||||
unset FOLDER
|
||||
rm -fr /tmp/powerlevel9k-test
|
||||
unset POWERLEVEL9K_DIR_PATH_SEPARATOR
|
||||
}
|
||||
|
||||
function testOmittingFirstCharacterWorks() {
|
||||
POWERLEVEL9K_DIR_OMIT_FIRST_CHARACTER=true
|
||||
POWERLEVEL9K_FOLDER_ICON='folder-icon'
|
||||
cd /tmp
|
||||
|
||||
assertEquals "%K{blue} %F{black%}folder-icon%f %F{black}tmp %k%F{blue}%f " "$(build_left_prompt)"
|
||||
|
||||
cd -
|
||||
unset POWERLEVEL9K_FOLDER_ICON
|
||||
unset POWERLEVEL9K_DIR_OMIT_FIRST_CHARACTER
|
||||
}
|
||||
|
||||
function testOmittingFirstCharacterWorksWithChangingPathSeparator() {
|
||||
POWERLEVEL9K_DIR_OMIT_FIRST_CHARACTER=true
|
||||
POWERLEVEL9K_DIR_PATH_SEPARATOR='xXx'
|
||||
POWERLEVEL9K_FOLDER_ICON='folder-icon'
|
||||
mkdir -p /tmp/powerlevel9k-test/1/2
|
||||
cd /tmp/powerlevel9k-test/1/2
|
||||
|
||||
assertEquals "%K{blue} %F{black%}folder-icon%f %F{black}tmpxXxpowerlevel9k-testxXx1xXx2 %k%F{blue}%f " "$(build_left_prompt)"
|
||||
|
||||
cd -
|
||||
rm -fr /tmp/powerlevel9k-test
|
||||
unset POWERLEVEL9K_FOLDER_ICON
|
||||
unset POWERLEVEL9K_DIR_PATH_SEPARATOR
|
||||
unset POWERLEVEL9K_DIR_OMIT_FIRST_CHARACTER
|
||||
}
|
||||
|
||||
# This test makes it obvious that combining a truncation strategy
|
||||
# that cuts off folders from the left and omitting the the first
|
||||
# character does not make much sense. The truncation strategy
|
||||
# comes first, prints an ellipsis and that gets then cut off by
|
||||
# POWERLEVEL9K_DIR_OMIT_FIRST_CHARACTER..
|
||||
# But it does more sense in combination with other truncation
|
||||
# strategies.
|
||||
function testOmittingFirstCharacterWorksWithChangingPathSeparatorAndDefaultTruncation() {
|
||||
POWERLEVEL9K_DIR_OMIT_FIRST_CHARACTER=true
|
||||
POWERLEVEL9K_DIR_PATH_SEPARATOR='xXx'
|
||||
POWERLEVEL9K_SHORTEN_DIR_LENGTH=2
|
||||
POWERLEVEL9K_SHORTEN_STRATEGY='truncate_folders'
|
||||
mkdir -p /tmp/powerlevel9k-test/1/2
|
||||
cd /tmp/powerlevel9k-test/1/2
|
||||
|
||||
assertEquals "%K{blue} %F{black}xXx1xXx2 %k%F{blue}%f " "$(build_left_prompt)"
|
||||
|
||||
cd -
|
||||
rm -fr /tmp/powerlevel9k-test
|
||||
unset POWERLEVEL9K_DIR_PATH_SEPARATOR
|
||||
unset POWERLEVEL9K_DIR_OMIT_FIRST_CHARACTER
|
||||
unset POWERLEVEL9K_SHORTEN_DIR_LENGTH
|
||||
unset POWERLEVEL9K_SHORTEN_STRATEGY
|
||||
}
|
||||
|
||||
function testOmittingFirstCharacterWorksWithChangingPathSeparatorAndMiddleTruncation() {
|
||||
POWERLEVEL9K_DIR_OMIT_FIRST_CHARACTER=true
|
||||
POWERLEVEL9K_DIR_PATH_SEPARATOR='xXx'
|
||||
POWERLEVEL9K_SHORTEN_DIR_LENGTH=2
|
||||
POWERLEVEL9K_SHORTEN_STRATEGY='truncate_middle'
|
||||
mkdir -p /tmp/powerlevel9k-test/1/2
|
||||
cd /tmp/powerlevel9k-test/1/2
|
||||
|
||||
assertEquals "%K{blue} %F{black}tmpxXxpo…stxXx1xXx2 %k%F{blue}%f " "$(build_left_prompt)"
|
||||
|
||||
cd -
|
||||
rm -fr /tmp/powerlevel9k-test
|
||||
unset POWERLEVEL9K_DIR_PATH_SEPARATOR
|
||||
unset POWERLEVEL9K_DIR_OMIT_FIRST_CHARACTER
|
||||
unset POWERLEVEL9K_SHORTEN_DIR_LENGTH
|
||||
unset POWERLEVEL9K_SHORTEN_STRATEGY
|
||||
}
|
||||
|
||||
function testOmittingFirstCharacterWorksWithChangingPathSeparatorAndRightTruncation() {
|
||||
POWERLEVEL9K_DIR_OMIT_FIRST_CHARACTER=true
|
||||
POWERLEVEL9K_DIR_PATH_SEPARATOR='xXx'
|
||||
POWERLEVEL9K_SHORTEN_DIR_LENGTH=2
|
||||
POWERLEVEL9K_SHORTEN_STRATEGY='truncate_from_right'
|
||||
mkdir -p /tmp/powerlevel9k-test/1/2
|
||||
cd /tmp/powerlevel9k-test/1/2
|
||||
|
||||
assertEquals "%K{blue} %F{black}tmpxXxpo…xXx1xXx2 %k%F{blue}%f " "$(build_left_prompt)"
|
||||
|
||||
cd -
|
||||
rm -fr /tmp/powerlevel9k-test
|
||||
unset POWERLEVEL9K_DIR_PATH_SEPARATOR
|
||||
unset POWERLEVEL9K_DIR_OMIT_FIRST_CHARACTER
|
||||
unset POWERLEVEL9K_SHORTEN_DIR_LENGTH
|
||||
unset POWERLEVEL9K_SHORTEN_STRATEGY
|
||||
}
|
||||
|
||||
source shunit2/source/2.1/src/shunit2
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue