#!/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 } function testCommandExecutionTimeIsNotShownIfTimeIsBelowThreshold() { POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world command_execution_time) POWERLEVEL9K_CUSTOM_WORLD='echo world' _P9K_COMMAND_DURATION=2 assertEquals "%K{white} %F{black}world %k%F{white}%f " "$(build_left_prompt)" unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS unset POWERLEVEL9K_CUSTOM_WORLD unset _P9K_COMMAND_DURATION } function testCommandExecutionTimeThresholdCouldBeChanged() { POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(command_execution_time) POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=1 _P9K_COMMAND_DURATION=2.03 assertEquals "%K{red} %F{226%}Dur%f %F{226}2.03 %k%F{red}%f " "$(build_left_prompt)" unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS unset _P9K_COMMAND_DURATION unset POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD } function testCommandExecutionTimeThresholdCouldBeSetToZero() { POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(command_execution_time) POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=0 _P9K_COMMAND_DURATION=0.03 assertEquals "%K{red} %F{226%}Dur%f %F{226}0.03 %k%F{red}%f " "$(build_left_prompt)" unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS unset _P9K_COMMAND_DURATION unset POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD } function testCommandExecutionTimePrecisionCouldBeChanged() { POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(command_execution_time) POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=0 POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=4 _P9K_COMMAND_DURATION=0.0001 assertEquals "%K{red} %F{226%}Dur%f %F{226}0.0001 %k%F{red}%f " "$(build_left_prompt)" unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS unset _P9K_COMMAND_DURATION unset POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION unset POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD } function testCommandExecutionTimePrecisionCouldBeSetToZero() { POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(command_execution_time) POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0 _P9K_COMMAND_DURATION=23.5001 assertEquals "%K{red} %F{226%}Dur%f %F{226}23 %k%F{red}%f " "$(build_left_prompt)" unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS unset _P9K_COMMAND_DURATION unset POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION } function testCommandExecutionTimeIsFormattedHumandReadbleForMinuteLongCommand() { POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(command_execution_time) _P9K_COMMAND_DURATION=180 assertEquals "%K{red} %F{226%}Dur%f %F{226}03:00 %k%F{red}%f " "$(build_left_prompt)" unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS unset _P9K_COMMAND_DURATION } function testCommandExecutionTimeIsFormattedHumandReadbleForHourLongCommand() { POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(command_execution_time) _P9K_COMMAND_DURATION=7200 assertEquals "%K{red} %F{226%}Dur%f %F{226}02:00:00 %k%F{red}%f " "$(build_left_prompt)" unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS unset _P9K_COMMAND_DURATION } source shunit2/source/2.1/src/shunit2