You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
362 lines
13 KiB
362 lines
13 KiB
#!/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 |