Merge pull request #446 from dritter/fix_442
Protect special characters in various modespull/22/head
commit
0132c5dc35
@ -0,0 +1,362 @@
|
||||
#!/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() {
|
||||
# Store old value for LC_CTYPE
|
||||
_OLD_LC_CTYPE="${LC_CTYPE}"
|
||||
# Reset actual LC_CTYPE
|
||||
unset LC_CTYPE
|
||||
|
||||
# Store old P9K mode
|
||||
_OLD_P9K_MODE="${POWERLEVEL9K_MODE}"
|
||||
}
|
||||
|
||||
function tearDown() {
|
||||
# Restore LC_CTYPE
|
||||
LC_CTYPE="${_OLD_LC_CTYPE}"
|
||||
|
||||
# Restore old P9K mode
|
||||
POWERLEVEL9K_MODE="${_OLD_P9K_MODE}"
|
||||
}
|
||||
|
||||
function testLcCtypeIsSetCorrectlyInDefaultMode() {
|
||||
POWERLEVEL9K_MODE="default"
|
||||
# Load Powerlevel9k
|
||||
source functions/icons.zsh
|
||||
|
||||
assertEquals 'en_US.UTF-8' "${LC_CTYPE}"
|
||||
}
|
||||
|
||||
function testLcCtypeIsSetCorrectlyInAwesomePatchedMode() {
|
||||
POWERLEVEL9K_MODE="awesome-patched"
|
||||
# Load Powerlevel9k
|
||||
source functions/icons.zsh
|
||||
|
||||
assertEquals 'en_US.UTF-8' "${LC_CTYPE}"
|
||||
}
|
||||
|
||||
function testLcCtypeIsSetCorrectlyInAwesomeFontconfigMode() {
|
||||
POWERLEVEL9K_MODE="awesome-fontconfig"
|
||||
# Load Powerlevel9k
|
||||
source functions/icons.zsh
|
||||
|
||||
assertEquals 'en_US.UTF-8' "${LC_CTYPE}"
|
||||
}
|
||||
|
||||
function testLcCtypeIsSetCorrectlyInNerdfontFontconfigMode() {
|
||||
POWERLEVEL9K_MODE="nerdfont-fontconfig"
|
||||
# Load Powerlevel9k
|
||||
source functions/icons.zsh
|
||||
|
||||
assertEquals 'en_US.UTF-8' "${LC_CTYPE}"
|
||||
}
|
||||
|
||||
function testLcCtypeIsSetCorrectlyInFlatMode() {
|
||||
POWERLEVEL9K_MODE="flat"
|
||||
# Load Powerlevel9k
|
||||
source functions/icons.zsh
|
||||
|
||||
assertEquals 'en_US.UTF-8' "${LC_CTYPE}"
|
||||
}
|
||||
|
||||
function testLcCtypeIsSetCorrectlyInCompatibleMode() {
|
||||
POWERLEVEL9K_MODE="compatible"
|
||||
# Load Powerlevel9k
|
||||
source functions/icons.zsh
|
||||
|
||||
assertEquals 'en_US.UTF-8' "${LC_CTYPE}"
|
||||
}
|
||||
|
||||
# Go through all icons defined in default mode, and
|
||||
# check if all of them are defined in the other modes.
|
||||
function testAllIconsAreDefinedLikeInDefaultMode() {
|
||||
# Always compare against this mode
|
||||
local _P9K_TEST_MODE="default"
|
||||
POWERLEVEL9K_MODE="${_P9K_TEST_MODE}"
|
||||
source functions/icons.zsh
|
||||
# _ICONS_UNDER_TEST is an array of just the keys of $icons.
|
||||
# We later check via (r) "subscript" flag that our key
|
||||
# is in the values of our flat array.
|
||||
typeset -ah _ICONS_UNDER_TEST
|
||||
_ICONS_UNDER_TEST=(${(k)icons[@]})
|
||||
|
||||
# Switch to "awesome-patched" mode
|
||||
POWERLEVEL9K_MODE="awesome-patched"
|
||||
source functions/icons.zsh
|
||||
typeset -ah current_icons
|
||||
current_icons=(${(k)icons[@]})
|
||||
for key in ${_ICONS_UNDER_TEST}; do
|
||||
# Iterate over all keys found in the _ICONS_UNDER_TEST
|
||||
# array and compare it with the icons array of the
|
||||
# current POWERLEVEL9K_MODE.
|
||||
# Use parameter expansion, to directly check if the
|
||||
# key exists in the flat current array of keys. That
|
||||
# is quite complicated, but there seems no easy way
|
||||
# to check the mere existance of a key in an array.
|
||||
# The usual way would always return the value, so that
|
||||
# would do the wrong thing as we have some (on purpose)
|
||||
# empty values.
|
||||
assertTrue "The key ${key} does exist in ${_P9K_TEST_MODE} mode, but not in ${POWERLEVEL9K_MODE}!" "(( ${+current_icons[(r)$key]} ))"
|
||||
done
|
||||
|
||||
# Switch to "awesome-fontconfig" mode
|
||||
POWERLEVEL9K_MODE="awesome-fontconfig"
|
||||
source functions/icons.zsh
|
||||
typeset -ah current_icons
|
||||
current_icons=(${(k)icons[@]})
|
||||
for key in ${_ICONS_UNDER_TEST}; do
|
||||
assertTrue "The key ${key} does exist in ${_P9K_TEST_MODE} mode, but not in ${POWERLEVEL9K_MODE}!" "(( ${+current_icons[(r)$key]} ))"
|
||||
done
|
||||
|
||||
# Switch to "nerdfont-fontconfig" mode
|
||||
POWERLEVEL9K_MODE="nerdfont-fontconfig"
|
||||
source functions/icons.zsh
|
||||
typeset -ah current_icons
|
||||
current_icons=(${(k)icons[@]})
|
||||
for key in ${_ICONS_UNDER_TEST}; do
|
||||
assertTrue "The key ${key} does exist in ${_P9K_TEST_MODE} mode, but not in ${POWERLEVEL9K_MODE}!" "(( ${+current_icons[(r)$key]} ))"
|
||||
done
|
||||
|
||||
# Switch to "flat" mode
|
||||
POWERLEVEL9K_MODE="flat"
|
||||
source functions/icons.zsh
|
||||
typeset -ah current_icons
|
||||
current_icons=(${(k)icons[@]})
|
||||
for key in ${_ICONS_UNDER_TEST}; do
|
||||
assertTrue "The key ${key} does exist in ${_P9K_TEST_MODE} mode, but not in ${POWERLEVEL9K_MODE}!" "(( ${+current_icons[(r)$key]} ))"
|
||||
done
|
||||
|
||||
# Switch to "compatible" mode
|
||||
POWERLEVEL9K_MODE="compatible"
|
||||
source functions/icons.zsh
|
||||
typeset -ah current_icons
|
||||
current_icons=(${(k)icons[@]})
|
||||
for key in ${_ICONS_UNDER_TEST}; do
|
||||
assertTrue "The key ${key} does exist in ${_P9K_TEST_MODE} mode, but not in ${POWERLEVEL9K_MODE}!" "(( ${+current_icons[(r)$key]} ))"
|
||||
done
|
||||
|
||||
unset current_icons
|
||||
unset _ICONS_UNDER_TEST
|
||||
}
|
||||
|
||||
# Go through all icons defined in awesome-patched mode, and
|
||||
# check if all of them are defined in the other modes.
|
||||
function testAllIconsAreDefinedLikeInAwesomePatchedMode() {
|
||||
# Always compare against this mode
|
||||
local _P9K_TEST_MODE="awesome-patched"
|
||||
POWERLEVEL9K_MODE="$_P9K_TEST_MODE"
|
||||
source functions/icons.zsh
|
||||
# _ICONS_UNDER_TEST is an array of just the keys of $icons.
|
||||
# We later check via (r) "subscript" flag that our key
|
||||
# is in the values of our flat array.
|
||||
typeset -ah _ICONS_UNDER_TEST
|
||||
_ICONS_UNDER_TEST=(${(k)icons[@]})
|
||||
|
||||
# Switch to "default" mode
|
||||
POWERLEVEL9K_MODE="default"
|
||||
source functions/icons.zsh
|
||||
typeset -ah current_icons
|
||||
current_icons=(${(k)icons[@]})
|
||||
for key in ${_ICONS_UNDER_TEST}; do
|
||||
# Iterate over all keys found in the _ICONS_UNDER_TEST
|
||||
# array and compare it with the icons array of the
|
||||
# current POWERLEVEL9K_MODE.
|
||||
# Use parameter expansion, to directly check if the
|
||||
# key exists in the flat current array of keys. That
|
||||
# is quite complicated, but there seems no easy way
|
||||
# to check the mere existance of a key in an array.
|
||||
# The usual way would always return the value, so that
|
||||
# would do the wrong thing as we have some (on purpose)
|
||||
# empty values.
|
||||
assertTrue "The key ${key} does exist in ${_P9K_TEST_MODE} mode, but not in ${POWERLEVEL9K_MODE}!" "(( ${+current_icons[(r)$key]} ))"
|
||||
done
|
||||
|
||||
# Switch to "awesome-fontconfig" mode
|
||||
POWERLEVEL9K_MODE="awesome-fontconfig"
|
||||
source functions/icons.zsh
|
||||
typeset -ah current_icons
|
||||
current_icons=(${(k)icons[@]})
|
||||
for key in ${_ICONS_UNDER_TEST}; do
|
||||
assertTrue "The key ${key} does exist in ${_P9K_TEST_MODE} mode, but not in ${POWERLEVEL9K_MODE}!" "(( ${+current_icons[(r)$key]} ))"
|
||||
done
|
||||
|
||||
# Switch to "nerdfont-fontconfig" mode
|
||||
POWERLEVEL9K_MODE="nerdfont-fontconfig"
|
||||
source functions/icons.zsh
|
||||
typeset -ah current_icons
|
||||
current_icons=(${(k)icons[@]})
|
||||
for key in ${_ICONS_UNDER_TEST}; do
|
||||
assertTrue "The key ${key} does exist in ${_P9K_TEST_MODE} mode, but not in ${POWERLEVEL9K_MODE}!" "(( ${+current_icons[(r)$key]} ))"
|
||||
done
|
||||
|
||||
# Switch to "flat" mode
|
||||
POWERLEVEL9K_MODE="flat"
|
||||
source functions/icons.zsh
|
||||
typeset -ah current_icons
|
||||
current_icons=(${(k)icons[@]})
|
||||
for key in ${_ICONS_UNDER_TEST}; do
|
||||
assertTrue "The key ${key} does exist in ${_P9K_TEST_MODE} mode, but not in ${POWERLEVEL9K_MODE}!" "(( ${+current_icons[(r)$key]} ))"
|
||||
done
|
||||
|
||||
# Switch to "compatible" mode
|
||||
POWERLEVEL9K_MODE="compatible"
|
||||
source functions/icons.zsh
|
||||
typeset -ah current_icons
|
||||
current_icons=(${(k)icons[@]})
|
||||
for key in ${_ICONS_UNDER_TEST}; do
|
||||
assertTrue "The key ${key} does exist in ${_P9K_TEST_MODE} mode, but not in ${POWERLEVEL9K_MODE}!" "(( ${+current_icons[(r)$key]} ))"
|
||||
done
|
||||
|
||||
unset current_icons
|
||||
unset _ICONS_UNDER_TEST
|
||||
}
|
||||
|
||||
# Go through all icons defined in awesome-fontconfig mode, and
|
||||
# check if all of them are defined in the other modes.
|
||||
function testAllIconsAreDefinedLikeInAwesomeFontconfigMode() {
|
||||
# Always compare against this mode
|
||||
local _P9K_TEST_MODE="awesome-fontconfig"
|
||||
POWERLEVEL9K_MODE="$_P9K_TEST_MODE"
|
||||
source functions/icons.zsh
|
||||
# _ICONS_UNDER_TEST is an array of just the keys of $icons.
|
||||
# We later check via (r) "subscript" flag that our key
|
||||
# is in the values of our flat array.
|
||||
typeset -ah _ICONS_UNDER_TEST
|
||||
_ICONS_UNDER_TEST=(${(k)icons[@]})
|
||||
|
||||
# Switch to "default" mode
|
||||
POWERLEVEL9K_MODE="default"
|
||||
source functions/icons.zsh
|
||||
typeset -ah current_icons
|
||||
current_icons=(${(k)icons[@]})
|
||||
for key in ${_ICONS_UNDER_TEST}; do
|
||||
# Iterate over all keys found in the _ICONS_UNDER_TEST
|
||||
# array and compare it with the icons array of the
|
||||
# current POWERLEVEL9K_MODE.
|
||||
# Use parameter expansion, to directly check if the
|
||||
# key exists in the flat current array of keys. That
|
||||
# is quite complicated, but there seems no easy way
|
||||
# to check the mere existance of a key in an array.
|
||||
# The usual way would always return the value, so that
|
||||
# would do the wrong thing as we have some (on purpose)
|
||||
# empty values.
|
||||
assertTrue "The key ${key} does exist in ${_P9K_TEST_MODE} mode, but not in ${POWERLEVEL9K_MODE}!" "(( ${+current_icons[(r)$key]} ))"
|
||||
done
|
||||
|
||||
# Switch to "awesome-patched" mode
|
||||
POWERLEVEL9K_MODE="awesome-patched"
|
||||
source functions/icons.zsh
|
||||
typeset -ah current_icons
|
||||
current_icons=(${(k)icons[@]})
|
||||
for key in ${_ICONS_UNDER_TEST}; do
|
||||
assertTrue "The key ${key} does exist in ${_P9K_TEST_MODE} mode, but not in ${POWERLEVEL9K_MODE}!" "(( ${+current_icons[(r)$key]} ))"
|
||||
done
|
||||
|
||||
# Switch to "nerdfont-fontconfig" mode
|
||||
POWERLEVEL9K_MODE="nerdfont-fontconfig"
|
||||
source functions/icons.zsh
|
||||
typeset -ah current_icons
|
||||
current_icons=(${(k)icons[@]})
|
||||
for key in ${_ICONS_UNDER_TEST}; do
|
||||
assertTrue "The key ${key} does exist in ${_P9K_TEST_MODE} mode, but not in ${POWERLEVEL9K_MODE}!" "(( ${+current_icons[(r)$key]} ))"
|
||||
done
|
||||
|
||||
# Switch to "flat" mode
|
||||
POWERLEVEL9K_MODE="flat"
|
||||
source functions/icons.zsh
|
||||
typeset -ah current_icons
|
||||
current_icons=(${(k)icons[@]})
|
||||
for key in ${_ICONS_UNDER_TEST}; do
|
||||
assertTrue "The key ${key} does exist in ${_P9K_TEST_MODE} mode, but not in ${POWERLEVEL9K_MODE}!" "(( ${+current_icons[(r)$key]} ))"
|
||||
done
|
||||
|
||||
# Switch to "compatible" mode
|
||||
POWERLEVEL9K_MODE="compatible"
|
||||
source functions/icons.zsh
|
||||
typeset -ah current_icons
|
||||
current_icons=(${(k)icons[@]})
|
||||
for key in ${_ICONS_UNDER_TEST}; do
|
||||
assertTrue "The key ${key} does exist in ${_P9K_TEST_MODE} mode, but not in ${POWERLEVEL9K_MODE}!" "(( ${+current_icons[(r)$key]} ))"
|
||||
done
|
||||
|
||||
unset current_icons
|
||||
unset _ICONS_UNDER_TEST
|
||||
}
|
||||
|
||||
# Go through all icons defined in nerdfont-fontconfig mode, and
|
||||
# check if all of them are defined in the other modes.
|
||||
function testAllIconsAreDefinedLikeInNerdfontFontconfigMode() {
|
||||
# Always compare against this mode
|
||||
local _P9K_TEST_MODE="nerdfont-fontconfig"
|
||||
POWERLEVEL9K_MODE="$_P9K_TEST_MODE"
|
||||
source functions/icons.zsh
|
||||
# _ICONS_UNDER_TEST is an array of just the keys of $icons.
|
||||
# We later check via (r) "subscript" flag that our key
|
||||
# is in the values of our flat array.
|
||||
typeset -ah _ICONS_UNDER_TEST
|
||||
_ICONS_UNDER_TEST=(${(k)icons[@]})
|
||||
|
||||
# Switch to "default" mode
|
||||
POWERLEVEL9K_MODE="default"
|
||||
source functions/icons.zsh
|
||||
typeset -ah current_icons
|
||||
current_icons=(${(k)icons[@]})
|
||||
for key in ${_ICONS_UNDER_TEST}; do
|
||||
# Iterate over all keys found in the _ICONS_UNDER_TEST
|
||||
# array and compare it with the icons array of the
|
||||
# current POWERLEVEL9K_MODE.
|
||||
# Use parameter expansion, to directly check if the
|
||||
# key exists in the flat current array of keys. That
|
||||
# is quite complicated, but there seems no easy way
|
||||
# to check the mere existance of a key in an array.
|
||||
# The usual way would always return the value, so that
|
||||
# would do the wrong thing as we have some (on purpose)
|
||||
# empty values.
|
||||
assertTrue "The key ${key} does exist in ${_P9K_TEST_MODE} mode, but not in ${POWERLEVEL9K_MODE}!" "(( ${+current_icons[(r)$key]} ))"
|
||||
done
|
||||
|
||||
# Switch to "awesome-patched" mode
|
||||
POWERLEVEL9K_MODE="awesome-patched"
|
||||
source functions/icons.zsh
|
||||
typeset -ah current_icons
|
||||
current_icons=(${(k)icons[@]})
|
||||
for key in ${_ICONS_UNDER_TEST}; do
|
||||
assertTrue "The key ${key} does exist in ${_P9K_TEST_MODE} mode, but not in ${POWERLEVEL9K_MODE}!" "(( ${+current_icons[(r)$key]} ))"
|
||||
done
|
||||
|
||||
# Switch to "awesome-fontconfig" mode
|
||||
POWERLEVEL9K_MODE="awesome-fontconfig"
|
||||
source functions/icons.zsh
|
||||
typeset -ah current_icons
|
||||
current_icons=(${(k)icons[@]})
|
||||
for key in ${_ICONS_UNDER_TEST}; do
|
||||
assertTrue "The key ${key} does exist in ${_P9K_TEST_MODE} mode, but not in ${POWERLEVEL9K_MODE}!" "(( ${+current_icons[(r)$key]} ))"
|
||||
done
|
||||
|
||||
# Switch to "flat" mode
|
||||
POWERLEVEL9K_MODE="flat"
|
||||
source functions/icons.zsh
|
||||
typeset -ah current_icons
|
||||
current_icons=(${(k)icons[@]})
|
||||
for key in ${_ICONS_UNDER_TEST}; do
|
||||
assertTrue "The key ${key} does exist in ${_P9K_TEST_MODE} mode, but not in ${POWERLEVEL9K_MODE}!" "(( ${+current_icons[(r)$key]} ))"
|
||||
done
|
||||
|
||||
# Switch to "compatible" mode
|
||||
POWERLEVEL9K_MODE="compatible"
|
||||
source functions/icons.zsh
|
||||
typeset -ah current_icons
|
||||
current_icons=(${(k)icons[@]})
|
||||
for key in ${_ICONS_UNDER_TEST}; do
|
||||
assertTrue "The key ${key} does exist in ${_P9K_TEST_MODE} mode, but not in ${POWERLEVEL9K_MODE}!" "(( ${+current_icons[(r)$key]} ))"
|
||||
done
|
||||
|
||||
unset current_icons
|
||||
unset _ICONS_UNDER_TEST
|
||||
}
|
||||
|
||||
source shunit2/source/2.1/src/shunit2
|
Loading…
Reference in New Issue