Merge branch 'master' into fix-rprompt-icons-cut-off
commit
a98fa7ff54
@ -1,33 +1,77 @@
|
||||
sudo: true
|
||||
dist: trusty
|
||||
language: sh
|
||||
|
||||
os:
|
||||
- linux
|
||||
- osx
|
||||
|
||||
osx_image: xcode9.4
|
||||
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- build-essential
|
||||
- git
|
||||
- mercurial
|
||||
- subversion
|
||||
- jq
|
||||
- node
|
||||
- golang
|
||||
- ruby
|
||||
- python
|
||||
- python-virtualenv
|
||||
|
||||
before_install:
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update ; fi
|
||||
|
||||
env:
|
||||
global:
|
||||
- ZSH_DIST=$HOME/.zshdist
|
||||
matrix:
|
||||
# Use _ZSH_VERSION since if ZSH_VERSION is present, travis cacher thinks it
|
||||
# is running in zsh and tries to use zsh specific functions.
|
||||
- _ZSH_VERSION=5.5.1
|
||||
- _ZSH_VERSION=5.5
|
||||
- _ZSH_VERSION=5.4.2
|
||||
- _ZSH_VERSION=5.4.1
|
||||
- _ZSH_VERSION=5.3.1
|
||||
- _ZSH_VERSION=5.3
|
||||
- _ZSH_VERSION=5.2
|
||||
- _ZSH_VERSION=5.1.1
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- $ZSH_DIST
|
||||
|
||||
before_script:
|
||||
- >
|
||||
setup_zsh() {
|
||||
dest="$ZSH_DIST/$1"
|
||||
if [[ ! -d $dest/bin ]]; then
|
||||
coreutils_mktemp="mktemp"
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
coreutils_mktemp="gmktemp"
|
||||
fi
|
||||
tmp="$(${coreutils_mktemp} --directory --tmpdir="${TMPDIR:/tmp}" zshbuild.XXXXXX)"
|
||||
(
|
||||
cd "$tmp" &&
|
||||
curl -L http://downloads.sourceforge.net/zsh/zsh-${1}.tar.gz | tar zx &&
|
||||
cd zsh-$1 &&
|
||||
./configure --prefix="$dest" &&
|
||||
make &&
|
||||
mkdir -p "$dest" &&
|
||||
make install ||
|
||||
echo "Failed to build zsh-${1}!"
|
||||
)
|
||||
fi
|
||||
export PATH="$dest/bin:$PATH"
|
||||
}
|
||||
- setup_zsh $_ZSH_VERSION
|
||||
# Show the git version being used to test.
|
||||
- "git --version"
|
||||
# Show the mercurial version being used to test.
|
||||
- "hg --version"
|
||||
# Show the zsh version being used to test.
|
||||
- "zsh --version"
|
||||
|
||||
install:
|
||||
- "sudo apt-get update -qq"
|
||||
- "sudo apt-get install -y zsh"
|
||||
- "sudo chsh -s $(which zsh)"
|
||||
- "sudo apt-get install -y git mercurial subversion jq node golang ruby python python-virtualenv"
|
||||
|
||||
script:
|
||||
- test/powerlevel9k.spec
|
||||
- test/functions/utilities.spec
|
||||
- test/functions/colors.spec
|
||||
- test/functions/icons.spec
|
||||
- test/segments/command_execution_time.spec
|
||||
- test/segments/dir.spec
|
||||
- test/segments/rust_version.spec
|
||||
- test/segments/go_version.spec
|
||||
- test/segments/vcs.spec
|
||||
- test/segments/kubecontext.spec
|
||||
- test/segments/laravel_version.spec
|
||||
- test/segments/status.spec
|
||||
- test/suite.spec
|
||||
|
@ -0,0 +1,40 @@
|
||||
FROM debian:stretch
|
||||
|
||||
# We switched here to debian, as there seems no ZSH 5.3 in ubuntu.
|
||||
|
||||
RUN \
|
||||
apt-get update && \
|
||||
echo 'golang-go golang-go/dashboard boolean false' | debconf-set-selections && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
||||
curl \
|
||||
git \
|
||||
zsh=5.3.1-4+b2 \
|
||||
mercurial \
|
||||
subversion \
|
||||
golang \
|
||||
jq \
|
||||
nodejs \
|
||||
ruby \
|
||||
python \
|
||||
python-virtualenv \
|
||||
sudo \
|
||||
locales
|
||||
|
||||
RUN adduser --shell /bin/zsh --gecos 'fred' --disabled-password fred
|
||||
# Locale generation is different in debian. We need to enable en_US
|
||||
# locale and then regenerate locales.
|
||||
RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
|
||||
RUN locale-gen "en_US.UTF-8"
|
||||
|
||||
COPY docker/fred-sudoers /etc/sudoers.d/fred
|
||||
|
||||
USER fred
|
||||
WORKDIR /home/fred
|
||||
ENV LANG=en_US.UTF-8
|
||||
ENV TERM=xterm-256color
|
||||
ENV DEFAULT_USER=fred
|
||||
ENV POWERLEVEL9K_ALWAYS_SHOW_CONTEXT=true
|
||||
|
||||
RUN touch .zshrc
|
||||
|
||||
CMD ["/bin/zsh", "-l"]
|
@ -0,0 +1,35 @@
|
||||
FROM ubuntu:18.04
|
||||
|
||||
RUN \
|
||||
apt-get update && \
|
||||
echo 'golang-go golang-go/dashboard boolean false' | debconf-set-selections && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
||||
curl \
|
||||
git \
|
||||
zsh=5.4.2-3ubuntu3 \
|
||||
mercurial \
|
||||
subversion \
|
||||
golang \
|
||||
jq \
|
||||
nodejs \
|
||||
ruby \
|
||||
python \
|
||||
python-virtualenv \
|
||||
sudo \
|
||||
locales
|
||||
|
||||
RUN adduser --shell /bin/zsh --gecos 'fred' --disabled-password fred
|
||||
RUN locale-gen "en_US.UTF-8"
|
||||
|
||||
COPY docker/fred-sudoers /etc/sudoers.d/fred
|
||||
|
||||
USER fred
|
||||
WORKDIR /home/fred
|
||||
ENV LANG=en_US.UTF-8
|
||||
ENV TERM=xterm-256color
|
||||
ENV DEFAULT_USER=fred
|
||||
ENV POWERLEVEL9K_ALWAYS_SHOW_CONTEXT=true
|
||||
|
||||
RUN touch .zshrc
|
||||
|
||||
CMD ["/bin/zsh", "-l"]
|
@ -0,0 +1,35 @@
|
||||
FROM ubuntu:18.10
|
||||
|
||||
RUN \
|
||||
apt-get update && \
|
||||
echo 'golang-go golang-go/dashboard boolean false' | debconf-set-selections && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
||||
curl \
|
||||
git \
|
||||
zsh=5.5.1-1ubuntu1 \
|
||||
mercurial \
|
||||
subversion \
|
||||
golang \
|
||||
jq \
|
||||
nodejs \
|
||||
ruby \
|
||||
python \
|
||||
python-virtualenv \
|
||||
sudo \
|
||||
locales
|
||||
|
||||
RUN adduser --shell /bin/zsh --gecos 'fred' --disabled-password fred
|
||||
RUN locale-gen "en_US.UTF-8"
|
||||
|
||||
COPY docker/fred-sudoers /etc/sudoers.d/fred
|
||||
|
||||
USER fred
|
||||
WORKDIR /home/fred
|
||||
ENV LANG=en_US.UTF-8
|
||||
ENV TERM=xterm-256color
|
||||
ENV DEFAULT_USER=fred
|
||||
ENV POWERLEVEL9K_ALWAYS_SHOW_CONTEXT=true
|
||||
|
||||
RUN touch .zshrc
|
||||
|
||||
CMD ["/bin/zsh", "-l"]
|
@ -0,0 +1,7 @@
|
||||
ARG base
|
||||
FROM p9k:${base}
|
||||
|
||||
COPY docker/zshing/install.zsh /tmp/
|
||||
RUN zsh /tmp/install.zsh
|
||||
|
||||
COPY ./ p9k/
|
@ -0,0 +1,16 @@
|
||||
#!zsh
|
||||
|
||||
# install zshing https://github.com/zakariaGatter/zshing
|
||||
git clone https://github.com/zakariaGatter/zshing.git ~/.zshing/zshing
|
||||
|
||||
# Link P9K in zshing directory
|
||||
ln -nsf ~/p9k ~/.zshing/powerlevel9k
|
||||
|
||||
{
|
||||
echo
|
||||
echo 'ZSHING_PLUGINS=(
|
||||
"bhilburn/powerlevel9k"
|
||||
)'
|
||||
echo
|
||||
echo "source ~/.zshing/zshing/zshing.zsh"
|
||||
} >> ~/.zshrc
|
@ -1 +1 @@
|
||||
Subproject commit 60dd60bcd1573befe38465010263ab242e55811d
|
||||
Subproject commit 07bb3292048a4982aad7247bdd7890f2bf532ece
|
@ -0,0 +1,62 @@
|
||||
#!/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 testDynamicColoringOfSegmentsWork() {
|
||||
local POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(date)
|
||||
local POWERLEVEL9K_DATE_ICON="date-icon"
|
||||
local POWERLEVEL9K_DATE_BACKGROUND='red'
|
||||
|
||||
assertEquals "%K{001} %F{000}date-icon %f%F{000}%D{%d.%m.%y} %k%F{001}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testDynamicColoringOfVisualIdentifiersWork() {
|
||||
local POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(date)
|
||||
local POWERLEVEL9K_DATE_ICON="date-icon"
|
||||
local POWERLEVEL9K_DATE_VISUAL_IDENTIFIER_COLOR='green'
|
||||
|
||||
assertEquals "%K{007} %F{002}date-icon %f%F{000}%D{%d.%m.%y} %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testColoringOfVisualIdentifiersDoesNotOverwriteColoringOfSegment() {
|
||||
local POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(date)
|
||||
local POWERLEVEL9K_DATE_ICON="date-icon"
|
||||
local POWERLEVEL9K_DATE_VISUAL_IDENTIFIER_COLOR='green'
|
||||
local POWERLEVEL9K_DATE_FOREGROUND='red'
|
||||
local POWERLEVEL9K_DATE_BACKGROUND='yellow'
|
||||
|
||||
assertEquals "%K{003} %F{002}date-icon %f%F{001}%D{%d.%m.%y} %k%F{003}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testColorOverridingOfStatefulSegment() {
|
||||
local POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(host)
|
||||
local POWERLEVEL9K_SSH_ICON="ssh-icon"
|
||||
local POWERLEVEL9K_HOST_REMOTE_BACKGROUND='red'
|
||||
local POWERLEVEL9K_HOST_REMOTE_FOREGROUND='green'
|
||||
# Provoke state
|
||||
local SSH_CLIENT="x"
|
||||
|
||||
assertEquals "%K{001} %F{002}ssh-icon %f%F{002}%m %k%F{001}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testColorOverridingOfCustomSegment() {
|
||||
local POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD='echo world'
|
||||
local POWERLEVEL9K_CUSTOM_WORLD_ICON='CW'
|
||||
local POWERLEVEL9K_CUSTOM_WORLD_VISUAL_IDENTIFIER_COLOR='green'
|
||||
local POWERLEVEL9K_CUSTOM_WORLD_FOREGROUND='red'
|
||||
local POWERLEVEL9K_CUSTOM_WORLD_BACKGROUND='red'
|
||||
|
||||
assertEquals "%K{001} %F{002}CW %f%F{001}world %k%F{001}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,187 @@
|
||||
#!/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 testLeftNormalSegmentsShouldNotBeJoined() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world1 custom_world2 custom_world3 custom_world4_joined custom_world5 custom_world6)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1="echo world1"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD2="echo world2"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD3="echo " # Print nothing to simulate unmet conditions
|
||||
local POWERLEVEL9K_CUSTOM_WORLD4="echo world4"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD5="echo " # Print nothing to simulate unmet conditions
|
||||
local POWERLEVEL9K_CUSTOM_WORLD6="echo world6"
|
||||
|
||||
assertEquals "%K{007} %F{000}world1 %K{007}%F{000} %F{000}world2 %K{007}%F{000} %F{000}world4 %K{007}%F{000} %F{000}world6 %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testLeftJoinedSegments() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world1 custom_world2_joined)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1="echo world1"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD2="echo world2"
|
||||
|
||||
assertEquals "%K{007} %F{000}world1 %K{007}%F{000}%F{000}world2 %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testLeftTransitiveJoinedSegments() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world1 custom_world2_joined custom_world3_joined)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1="echo world1"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD2="echo world2"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD3="echo world3"
|
||||
|
||||
assertEquals "%K{007} %F{000}world1 %K{007}%F{000}%F{000}world2 %K{007}%F{000}%F{000}world3 %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testLeftTransitiveJoiningWithConditionalJoinedSegment() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world1 custom_world2_joined custom_world3_joined custom_world4_joined)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1="echo world1"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD2="echo world2"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD3="echo " # Print nothing to simulate unmet conditions
|
||||
local POWERLEVEL9K_CUSTOM_WORLD4="echo world4"
|
||||
|
||||
assertEquals "%K{007} %F{000}world1 %K{007}%F{000}%F{000}world2 %K{007}%F{000}%F{000}world4 %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testLeftPromotingSegmentWithConditionalPredecessor() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world1 custom_world2 custom_world3_joined)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1="echo world1"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD2="echo " # Print nothing to simulate unmet conditions
|
||||
local POWERLEVEL9K_CUSTOM_WORLD3="echo world3"
|
||||
|
||||
assertEquals "%K{007} %F{000}world1 %K{007}%F{000} %F{000}world3 %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testLeftPromotingSegmentWithJoinedConditionalPredecessor() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world1 custom_world2 custom_world3_joined custom_world4_joined)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1="echo world1"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD2="echo " # Print nothing to simulate unmet conditions
|
||||
local POWERLEVEL9K_CUSTOM_WORLD3="echo " # Print nothing to simulate unmet conditions
|
||||
local POWERLEVEL9K_CUSTOM_WORLD4="echo world4"
|
||||
|
||||
assertEquals "%K{007} %F{000}world1 %K{007}%F{000} %F{000}world4 %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testLeftPromotingSegmentWithDeepJoinedConditionalPredecessor() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world1 custom_world2 custom_world3_joined custom_world4_joined custom_world5_joined custom_world6_joined)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1="echo world1"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD2="echo " # Print nothing to simulate unmet conditions
|
||||
local POWERLEVEL9K_CUSTOM_WORLD3="echo " # Print nothing to simulate unmet conditions
|
||||
local POWERLEVEL9K_CUSTOM_WORLD4="echo world4"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD5="echo " # Print nothing to simulate unmet conditions
|
||||
local POWERLEVEL9K_CUSTOM_WORLD6="echo world6"
|
||||
|
||||
assertEquals "%K{007} %F{000}world1 %K{007}%F{000} %F{000}world4 %K{007}%F{000}%F{000}world6 %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testLeftJoiningBuiltinSegmentWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(php_version php_version_joined)
|
||||
alias php="echo PHP 1.2.3"
|
||||
|
||||
assertEquals "%K{013} %F{255}PHP 1.2.3 %K{013}%F{255}%F{255}PHP 1.2.3 %k%F{013}%f " "$(build_left_prompt)"
|
||||
|
||||
unalias php
|
||||
}
|
||||
|
||||
function testRightNormalSegmentsShouldNotBeJoined() {
|
||||
local -a POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(custom_world1 custom_world2 custom_world3 custom_world4 custom_world5_joined custom_world6)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1="echo world1"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD2="echo world2"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD3="echo " # Print nothing to simulate unmet conditions
|
||||
local POWERLEVEL9K_CUSTOM_WORLD4="echo world4"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD5="echo " # Print nothing to simulate unmet conditions
|
||||
local POWERLEVEL9K_CUSTOM_WORLD6="echo world6"
|
||||
|
||||
assertEquals "%F{007}%f%K{007}%F{000} world1 %f%F{000}%f%K{007}%F{000} world2 %f%F{000}%f%K{007}%F{000} world4 %f%F{000}%f%K{007}%F{000} world6%E" "$(build_right_prompt)"
|
||||
}
|
||||
|
||||
function testRightJoinedSegments() {
|
||||
local -a POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(custom_world1 custom_world2_joined)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1="echo world1"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD2="echo world2"
|
||||
|
||||
assertEquals "%F{007}%f%K{007}%F{000} world1 %f%K{007}%F{000}world2%E" "$(build_right_prompt)"
|
||||
}
|
||||
|
||||
function testRightTransitiveJoinedSegments() {
|
||||
local -a POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(custom_world1 custom_world2_joined custom_world3_joined)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1="echo world1"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD2="echo world2"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD3="echo world3"
|
||||
|
||||
assertEquals "%F{007}%f%K{007}%F{000} world1 %f%K{007}%F{000}world2 %f%K{007}%F{000}world3%E" "$(build_right_prompt)"
|
||||
}
|
||||
|
||||
function testRightTransitiveJoiningWithConditionalJoinedSegment() {
|
||||
local -a POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(custom_world1 custom_world2_joined custom_world3_joined custom_world4_joined)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1="echo world1"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD2="echo world2"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD3="echo " # Print nothing to simulate unmet conditions
|
||||
local POWERLEVEL9K_CUSTOM_WORLD4="echo world4"
|
||||
|
||||
assertEquals "%F{007}%f%K{007}%F{000} world1 %f%K{007}%F{000}world2 %f%K{007}%F{000}world4%E" "$(build_right_prompt)"
|
||||
}
|
||||
|
||||
function testRightPromotingSegmentWithConditionalPredecessor() {
|
||||
local -a POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(custom_world1 custom_world2 custom_world3_joined)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1="echo world1"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD2="echo " # Print nothing to simulate unmet conditions
|
||||
local POWERLEVEL9K_CUSTOM_WORLD3="echo world3"
|
||||
|
||||
assertEquals "%F{007}%f%K{007}%F{000} world1 %f%F{000}%f%K{007}%F{000} world3%E" "$(build_right_prompt)"
|
||||
}
|
||||
|
||||
function testRightPromotingSegmentWithJoinedConditionalPredecessor() {
|
||||
local -a POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(custom_world1 custom_world2 custom_world3_joined custom_world4_joined)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1="echo world1"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD2="echo " # Print nothing to simulate unmet conditions
|
||||
local POWERLEVEL9K_CUSTOM_WORLD3="echo " # Print nothing to simulate unmet conditions
|
||||
local POWERLEVEL9K_CUSTOM_WORLD4="echo world4"
|
||||
|
||||
assertEquals "%F{007}%f%K{007}%F{000} world1 %f%F{000}%f%K{007}%F{000} world4%E" "$(build_right_prompt)"
|
||||
}
|
||||
|
||||
function testRightPromotingSegmentWithDeepJoinedConditionalPredecessor() {
|
||||
local -a POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(custom_world1 custom_world2 custom_world3_joined custom_world4_joined custom_world5_joined custom_world6_joined)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1="echo world1"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD2="echo " # Print nothing to simulate unmet conditions
|
||||
local POWERLEVEL9K_CUSTOM_WORLD3="echo " # Print nothing to simulate unmet conditions
|
||||
local POWERLEVEL9K_CUSTOM_WORLD4="echo world4"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD5="echo " # Print nothing to simulate unmet conditions
|
||||
local POWERLEVEL9K_CUSTOM_WORLD6="echo world6"
|
||||
|
||||
assertEquals "%F{007}%f%K{007}%F{000} world1 %f%F{000}%f%K{007}%F{000} world4 %f%K{007}%F{000}world6%E" "$(build_right_prompt)"
|
||||
}
|
||||
|
||||
function testRightJoiningBuiltinSegmentWorks() {
|
||||
local -a POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(php_version php_version_joined)
|
||||
alias php="echo PHP 1.2.3"
|
||||
|
||||
assertEquals "%F{013}%f%K{013}%F{255} PHP 1.2.3 %f%K{013}%F{255}PHP 1.2.3%E" "$(build_right_prompt)"
|
||||
|
||||
unalias php
|
||||
}
|
||||
source shunit2/shunit2
|
@ -0,0 +1,104 @@
|
||||
#!/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 testSegmentOnRightSide() {
|
||||
# Reset RPROMPT, so a running P9K does not interfere with the test
|
||||
local RPROMPT=
|
||||
local -a POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(custom_world1 custom_world2)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1='echo world1'
|
||||
local POWERLEVEL9K_CUSTOM_WORLD2='echo world2'
|
||||
|
||||
powerlevel9k_prepare_prompts
|
||||
|
||||
local reset_attributes=$'\e[00m'
|
||||
assertEquals "%f%b%k%F{007}%f%K{007}%F{000} world1 %f%F{000}%f%K{007}%F{000} world2%E%{${reset_attributes}%}" "${(e)RPROMPT}"
|
||||
}
|
||||
|
||||
function testDisablingRightPrompt() {
|
||||
# Reset RPROMPT, so a running P9K does not interfere with the test
|
||||
local RPROMPT=
|
||||
local -a POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(custom_world1 custom_world2)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1='echo world1'
|
||||
local POWERLEVEL9K_CUSTOM_WORLD2='echo world2'
|
||||
local POWERLEVEL9K_DISABLE_RPROMPT=true
|
||||
|
||||
powerlevel9k_prepare_prompts
|
||||
|
||||
assertEquals "" "${(e)RPROMPT}"
|
||||
}
|
||||
|
||||
function testLeftMultilinePrompt() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world1)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1='echo world1'
|
||||
local POWERLEVEL9K_PROMPT_ON_NEWLINE=true
|
||||
|
||||
powerlevel9k_prepare_prompts
|
||||
|
||||
local nl=$'\n'
|
||||
assertEquals "╭─%f%b%k%K{007} %F{000}world1 %k%F{007}%f ${nl}╰─ " "${(e)PROMPT}"
|
||||
}
|
||||
|
||||
function testRightPromptOnSameLine() {
|
||||
# Reset RPROMPT, so a running P9K does not interfere with the test
|
||||
local RPROMPT=
|
||||
local -a POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(custom_world1)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1='echo world1'
|
||||
|
||||
local POWERLEVEL9K_PROMPT_ON_NEWLINE=true
|
||||
local POWERLEVEL9K_RPROMPT_ON_NEWLINE=false # We want the RPROMPT on the same line as our left prompt
|
||||
|
||||
# Skip test, as this cannot be tested properly.
|
||||
# The "go one line up" instruction does not get
|
||||
# printed as real characters in RPROMPT.
|
||||
# On command line the assert statement produces
|
||||
# a visually identical output as we expect, but
|
||||
# it fails anyway. :(
|
||||
startSkipping
|
||||
|
||||
powerlevel9k_prepare_prompts
|
||||
assertEquals "%{\e[1A%}%F{007}%f%K{007}%F{000} world1 %f%{\e[1B%}" "${(e)RPROMPT}"
|
||||
}
|
||||
|
||||
function testPrefixingFirstLineOnLeftPrompt() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world1)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1='echo world1'
|
||||
|
||||
local POWERLEVEL9K_PROMPT_ON_NEWLINE=true
|
||||
local POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='XXX'
|
||||
|
||||
powerlevel9k_prepare_prompts
|
||||
|
||||
local nl=$'\n'
|
||||
assertEquals "XXX%f%b%k%K{007} %F{000}world1 %k%F{007}%f ${nl}╰─ " "${(e)PROMPT}"
|
||||
}
|
||||
|
||||
function testPrefixingSecondLineOnLeftPrompt() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world1)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1='echo world1'
|
||||
|
||||
local POWERLEVEL9K_PROMPT_ON_NEWLINE=true
|
||||
local POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX='XXX'
|
||||
|
||||
powerlevel9k_prepare_prompts
|
||||
|
||||
local nl=$'\n'
|
||||
assertEquals "╭─%f%b%k%K{007} %F{000}world1 %k%F{007}%f ${nl}XXX" "${(e)PROMPT}"
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,60 @@
|
||||
#!/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
|
||||
source functions/*
|
||||
}
|
||||
|
||||
function testOverwritingIconsWork() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world1)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1='echo world1'
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1_ICON='icon-here'
|
||||
|
||||
assertEquals "%K{007} %F{000}icon-here %f%F{000}world1 %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testVisualIdentifierAppearsBeforeSegmentContentOnLeftSegments() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world1)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1='echo world1'
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1_ICON='icon-here'
|
||||
|
||||
assertEquals "%K{007} %F{000}icon-here %f%F{000}world1 %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testVisualIdentifierAppearsAfterSegmentContentOnRightSegments() {
|
||||
local -a POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(custom_world1)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1='echo world1'
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1_ICON='icon-here'
|
||||
|
||||
assertEquals "%F{007}%f%K{007}%F{000} world1%F{000} icon-here%f%E" "$(build_right_prompt)"
|
||||
}
|
||||
|
||||
function testVisualIdentifierPrintsNothingIfNotAvailable() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world1)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1='echo world1'
|
||||
|
||||
assertEquals "%K{007} %F{000}world1 %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testVisualIdentifierIsPrintedInNumericalColorCode() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world1)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1='echo world1'
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1_ICON="xxx"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD1_VISUAL_IDENTIFIER_COLOR="purple3"
|
||||
|
||||
assertEquals "%K{007} %F{056}xxx %f%F{000}world1 %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,69 @@
|
||||
#!/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"
|
||||
}
|
||||
|
||||
function testAnacondaSegmentPrintsNothingIfNoAnacondaPathIsSet() {
|
||||
local POWERLEVEL9K_CUSTOM_WORLD='echo world'
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(anaconda custom_world)
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
# Unset anacona variables
|
||||
unset CONDA_ENV_PATH
|
||||
unset CONDA_PREFIX
|
||||
|
||||
assertEquals "%K{007} %F{000}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testAnacondaSegmentWorksIfOnlyAnacondaPathIsSet() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(anaconda)
|
||||
local POWERLEVEL9K_PYTHON_ICON="icon-here"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
CONDA_ENV_PATH=/tmp
|
||||
unset CONDA_PREFIX
|
||||
|
||||
assertEquals "%K{004} %F{000}icon-here %f%F{000}(tmp) %k%F{004}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testAnacondaSegmentWorksIfOnlyAnacondaPrefixIsSet() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(anaconda)
|
||||
local POWERLEVEL9K_PYTHON_ICON="icon-here"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
unset CONDA_ENV_PATH
|
||||
local CONDA_PREFIX="test"
|
||||
|
||||
assertEquals "%K{004} %F{000}icon-here %f%F{000}(test) %k%F{004}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testAnacondaSegmentWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(anaconda)
|
||||
local POWERLEVEL9K_PYTHON_ICON="icon-here"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
local CONDA_ENV_PATH=/tmp
|
||||
local CONDA_PREFIX="test"
|
||||
|
||||
assertEquals "%K{004} %F{000}icon-here %f%F{000}(tmptest) %k%F{004}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,61 @@
|
||||
#!/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"
|
||||
}
|
||||
|
||||
function testAwsEbEnvSegmentPrintsNothingIfNoElasticBeanstalkEnvironmentIsSet() {
|
||||
local POWERLEVEL9K_CUSTOM_WORLD='echo world'
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(aws_eb_env custom_world)
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{007} %F{000}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testAwsEbEnvSegmentWorksIfElasticBeanstalkEnvironmentIsSet() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(aws_eb_env)
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
mkdir -p /tmp/powerlevel9k-test/.elasticbeanstalk
|
||||
echo "test:\n environment: test" > /tmp/powerlevel9k-test/.elasticbeanstalk/config.yml
|
||||
cd /tmp/powerlevel9k-test
|
||||
|
||||
assertEquals "%K{000} %F{002}🌱 %f%F{002}test %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
rm -fr /tmp/powerlevel9k-test
|
||||
cd -
|
||||
}
|
||||
|
||||
function testAwsEbEnvSegmentWorksIfElasticBeanstalkEnvironmentIsSetInParentDirectory() {
|
||||
# Skip test, because currently we cannot detect
|
||||
# if the configuration is in a parent directory
|
||||
startSkipping # Skip test
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(aws_eb_env)
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
mkdir -p /tmp/powerlevel9k-test/.elasticbeanstalk
|
||||
mkdir -p /tmp/powerlevel9k-test/1/12/123/1234/12345
|
||||
echo "test:\n environment: test" > /tmp/powerlevel9k-test/.elasticbeanstalk/config.yml
|
||||
cd /tmp/powerlevel9k-test/1/12/123/1234/12345
|
||||
|
||||
assertEquals "%K{000} %F{002}🌱 %f%F{002}test %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
rm -fr /tmp/powerlevel9k-test
|
||||
cd -
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,78 @@
|
||||
#!/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"
|
||||
}
|
||||
|
||||
function testBackgroundJobsSegmentPrintsNothingWithoutBackgroundJobs() {
|
||||
local POWERLEVEL9K_CUSTOM_WORLD='echo world'
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(background_jobs custom_world)
|
||||
alias jobs="nojobs 2>/dev/null"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{007} %F{000}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
|
||||
unalias jobs
|
||||
}
|
||||
|
||||
function testBackgroundJobsSegmentWorksWithOneBackgroundJob() {
|
||||
unset POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(background_jobs)
|
||||
jobs() {
|
||||
echo '[1] + 30444 suspended nvim xx'
|
||||
}
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{006}⚙%f %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction jobs
|
||||
}
|
||||
|
||||
function testBackgroundJobsSegmentWorksWithMultipleBackgroundJobs() {
|
||||
local POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(background_jobs)
|
||||
jobs() {
|
||||
echo "[1] 31190 suspended nvim xx"
|
||||
echo "[2] - 31194 suspended nvim xx2"
|
||||
echo "[3] + 31206 suspended nvim xx3"
|
||||
}
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{006}⚙%f %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction jobs
|
||||
}
|
||||
|
||||
function testBackgroundJobsSegmentWithVerboseMode() {
|
||||
local POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=true
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(background_jobs)
|
||||
jobs() {
|
||||
echo "[1] 31190 suspended nvim xx"
|
||||
echo "[2] - 31194 suspended nvim xx2"
|
||||
echo "[3] + 31206 suspended nvim xx3"
|
||||
}
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{006}⚙ %f%F{006}3 %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction jobs
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,177 @@
|
||||
#!/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
|
||||
|
||||
P9K_HOME=$(pwd)
|
||||
### Test specific
|
||||
# Create default folder
|
||||
FOLDER=/tmp/powerlevel9k-test
|
||||
mkdir -p "${FOLDER}"
|
||||
cd $FOLDER
|
||||
|
||||
# Prepare folder for pmset (OSX)
|
||||
PMSET_PATH=$FOLDER/usr/bin
|
||||
mkdir -p $PMSET_PATH
|
||||
# Prepare folder for $BATTERY (Linux)
|
||||
BATTERY_PATH=$FOLDER/sys/class/power_supply
|
||||
mkdir -p $BATTERY_PATH
|
||||
mkdir -p $BATTERY_PATH/BAT0
|
||||
mkdir -p $BATTERY_PATH/BAT1
|
||||
}
|
||||
|
||||
function tearDown() {
|
||||
# Go back to powerlevel9k folder
|
||||
cd "${P9K_HOME}"
|
||||
# Remove eventually created test-specific folder
|
||||
rm -fr "${FOLDER}" &>/dev/null
|
||||
# At least remove test folder completely
|
||||
rm -fr /tmp/powerlevel9k-test &>/dev/null
|
||||
unset PMSET_PATH
|
||||
unset BATTERY_PATH
|
||||
unset FOLDER
|
||||
unset P9K_HOME
|
||||
}
|
||||
|
||||
# Mock Battery
|
||||
# For mocking pmset on OSX this function takes one argument (the
|
||||
# content that pmset should echo).
|
||||
# For mocking the battery on Linux this function takes two
|
||||
# arguments: $1 is the capacity; $2 the battery status.
|
||||
function makeBatterySay() {
|
||||
if [[ -z "${FOLDER}" ]]; then
|
||||
echo "Fake root path is not correctly set!"
|
||||
exit 1
|
||||
fi
|
||||
# OSX
|
||||
echo "#!/bin/sh" > $PMSET_PATH/pmset
|
||||
echo "echo \"$1\"" >> $PMSET_PATH/pmset
|
||||
chmod +x $PMSET_PATH/pmset
|
||||
|
||||
# Linux
|
||||
local capacity="$1"
|
||||
echo "$capacity" > $BATTERY_PATH/BAT0/capacity
|
||||
echo "$capacity" > $BATTERY_PATH/BAT1/capacity
|
||||
local battery_status="$2"
|
||||
echo "$battery_status" > $BATTERY_PATH/BAT0/status
|
||||
echo "$battery_status" > $BATTERY_PATH/BAT1/status
|
||||
}
|
||||
|
||||
function testBatterySegmentIfBatteryIsLowWhileDischargingOnOSX() {
|
||||
local OS='OSX' # Fake OSX
|
||||
makeBatterySay "Now drawing from 'Battery Power'
|
||||
-InternalBattery-0 (id=1234567) 4%; discharging; 0:05 remaining present: true"
|
||||
|
||||
assertEquals "%K{000} %F{001}🔋 %f%F{001}4%% (0:05) " "$(prompt_battery left 1 false ${FOLDER})"
|
||||
}
|
||||
|
||||
function testBatterySegmentIfBatteryIsLowWhileChargingOnOSX() {
|
||||
local OS='OSX' # Fake OSX
|
||||
makeBatterySay "Now drawing from 'Battery Power'
|
||||
-InternalBattery-0 (id=1234567) 4%; charging; 0:05 remaining present: true"
|
||||
|
||||
assertEquals "%K{000} %F{003}🔋 %f%F{003}4%% (0:05) " "$(prompt_battery left 1 false ${FOLDER})"
|
||||
}
|
||||
|
||||
function testBatterySegmentIfBatteryIsAlmostFullWhileDischargingOnOSX() {
|
||||
local OS='OSX' # Fake OSX
|
||||
makeBatterySay "Now drawing from 'Battery Power'
|
||||
-InternalBattery-0 (id=1234567) 98%; discharging; 3:57 remaining present: true"
|
||||
|
||||
assertEquals "%K{000} %F{007}🔋 %f%F{007}98%% (3:57) " "$(prompt_battery left 1 false ${FOLDER})"
|
||||
}
|
||||
|
||||
function testBatterySegmentIfBatteryIsAlmostFullWhileChargingOnOSX() {
|
||||
local OS='OSX' # Fake OSX
|
||||
makeBatterySay "Now drawing from 'Battery Power'
|
||||
-InternalBattery-0 (id=1234567) 98%; charging; 3:57 remaining present: true"
|
||||
|
||||
assertEquals "%K{000} %F{003}🔋 %f%F{003}98%% (3:57) " "$(prompt_battery left 1 false ${FOLDER})"
|
||||
}
|
||||
|
||||
function testBatterySegmentIfBatteryIsFullOnOSX() {
|
||||
local OS='OSX' # Fake OSX
|
||||
makeBatterySay "Now drawing from 'AC Power'
|
||||
-InternalBattery-0 (id=1234567) 99%; charged; 0:00 remaining present: true"
|
||||
|
||||
assertEquals "%K{000} %F{002}🔋 %f%F{002}99%% " "$(prompt_battery left 1 false ${FOLDER})"
|
||||
}
|
||||
|
||||
function testBatterySegmentIfBatteryIsCalculatingOnOSX() {
|
||||
local OS='OSX' # Fake OSX
|
||||
makeBatterySay "Now drawing from 'Battery Power'
|
||||
-InternalBattery-0 (id=1234567) 99%; discharging; (no estimate) present: true"
|
||||
|
||||
assertEquals "%K{000} %F{007}🔋 %f%F{007}99%% (...) " "$(prompt_battery left 1 false ${FOLDER})"
|
||||
}
|
||||
|
||||
function testBatterySegmentIfBatteryIsLowWhileDischargingOnLinux() {
|
||||
local OS='Linux' # Fake Linux
|
||||
makeBatterySay "4" "Discharging"
|
||||
|
||||
assertEquals "%K{000} %F{001}🔋 %f%F{001}4%% " "$(prompt_battery left 1 false ${FOLDER})"
|
||||
}
|
||||
|
||||
function testBatterySegmentIfBatteryIsLowWhileChargingOnLinux() {
|
||||
local OS='Linux' # Fake Linux
|
||||
makeBatterySay "4" "Charging"
|
||||
|
||||
assertEquals "%K{000} %F{003}🔋 %f%F{003}4%% " "$(prompt_battery left 1 false ${FOLDER})"
|
||||
}
|
||||
|
||||
function testBatterySegmentIfBatteryIsNormalWhileDischargingOnLinux() {
|
||||
local OS='Linux' # Fake Linux
|
||||
makeBatterySay "10" "Discharging"
|
||||
|
||||
assertEquals "%K{000} %F{007}🔋 %f%F{007}10%% " "$(prompt_battery left 1 false ${FOLDER})"
|
||||
}
|
||||
|
||||
function testBatterySegmentIfBatteryIsNormalWhileChargingOnLinux() {
|
||||
local OS='Linux' # Fake Linux
|
||||
makeBatterySay "10" "Charging"
|
||||
|
||||
assertEquals "%K{000} %F{003}🔋 %f%F{003}10%% " "$(prompt_battery left 1 false ${FOLDER})"
|
||||
}
|
||||
|
||||
function testBatterySegmentIfBatteryIsFullOnLinux() {
|
||||
local OS='Linux' # Fake Linux
|
||||
makeBatterySay "100" "Full"
|
||||
|
||||
assertEquals "%K{000} %F{002}🔋 %f%F{002}100%% " "$(prompt_battery left 1 false ${FOLDER})"
|
||||
}
|
||||
|
||||
function testBatterySegmentIfBatteryIsNormalWithAcpiEnabledOnLinux() {
|
||||
local OS='Linux' # Fake Linux
|
||||
makeBatterySay "50" "Discharging"
|
||||
echo "echo 'Batter 0: Discharging, 50%, 01:38:54 remaining'" > ${FOLDER}/usr/bin/acpi
|
||||
chmod +x ${FOLDER}/usr/bin/acpi
|
||||
# For running on Mac, we need to mock date :(
|
||||
[[ -f /usr/local/bin/gdate ]] && alias date=gdate
|
||||
|
||||
assertEquals "%K{000} %F{007}🔋 %f%F{007}50%% (1:38) " "$(prompt_battery left 1 false ${FOLDER})"
|
||||
|
||||
unalias date &>/dev/null
|
||||
# unaliasing date fails where it was never aliased (e.g. on Linux).
|
||||
# This causes the whole test to fail, because the return code is
|
||||
# non-zero.
|
||||
return 0
|
||||
}
|
||||
|
||||
function testBatterySegmentIfBatteryIsCalculatingWithAcpiEnabledOnLinux() {
|
||||
local OS='Linux' # Fake Linux
|
||||
makeBatterySay "50" "Discharging"
|
||||
# Todo: Include real acpi output!
|
||||
echo "echo 'Batter 0: Discharging, 50%, rate remaining'" > ${FOLDER}/usr/bin/acpi
|
||||
chmod +x ${FOLDER}/usr/bin/acpi
|
||||
|
||||
assertEquals "%K{000} %F{007}🔋 %f%F{007}50%% (...) " "$(prompt_battery left 1 false ${FOLDER})"
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,113 @@
|
||||
#!/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"
|
||||
|
||||
# Test specific settings
|
||||
OLD_DEFAULT_USER=$DEFAULT_USER
|
||||
unset DEFAULT_USER
|
||||
}
|
||||
|
||||
function tearDown() {
|
||||
# Restore old variables
|
||||
[[ -n "$OLD_DEFAULT_USER" ]] && DEFAULT_USER=$OLD_DEFAULT_USER
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
function testContextSegmentDoesNotGetRenderedWithDefaultUser() {
|
||||
local DEFAULT_USER=$(whoami)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD='echo world'
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context custom_world)
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{007} %F{000}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testContextSegmentDoesGetRenderedWhenSshConnectionIsOpen() {
|
||||
function sudo() {
|
||||
return 0
|
||||
}
|
||||
local SSH_CLIENT="putty"
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context)
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{003}%n@%m %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction sudo
|
||||
}
|
||||
|
||||
function testContextSegmentWithForeignUser() {
|
||||
function sudo() {
|
||||
return 0
|
||||
}
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context)
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{003}%n@%m %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction sudo
|
||||
}
|
||||
|
||||
# TODO: How to test root?
|
||||
function testContextSegmentWithRootUser() {
|
||||
startSkipping # Skip test
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context)
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{003}%n@%m %k%F{000}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testOverridingContextTemplate() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context)
|
||||
local POWERLEVEL9K_CONTEXT_TEMPLATE=xx
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{003}xx %k%F{000}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testContextSegmentIsShownIfDefaultUserIsSetWhenForced() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context)
|
||||
local POWERLEVEL9K_ALWAYS_SHOW_CONTEXT=true
|
||||
local DEFAULT_USER=$(whoami)
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{003}%n@%m %k%F{000}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testContextSegmentIsShownIfForced() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context)
|
||||
local POWERLEVEL9K_ALWAYS_SHOW_USER=true
|
||||
local DEFAULT_USER=$(whoami)
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{003}$(whoami) %k%F{000}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,86 @@
|
||||
#!/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"
|
||||
}
|
||||
|
||||
function testCustomDirectOutputSegment() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD="echo world"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{007} %F{000}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testCustomClosureSegment() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world)
|
||||
function p9k_hello_world() {
|
||||
echo "world"
|
||||
}
|
||||
local POWERLEVEL9K_CUSTOM_WORLD='p9k_hello_world'
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{007} %F{000}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testSettingBackgroundForCustomSegment() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD="echo world"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD_BACKGROUND="yellow"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{003} %F{000}world %k%F{003}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testSettingForegroundForCustomSegment() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD="echo world"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD_FOREGROUND="red"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{007} %F{001}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testSettingVisualIdentifierForCustomSegment() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD="echo world"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD_ICON="hw"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{007} %F{000}hw %f%F{000}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testSettingVisualIdentifierForegroundColorForCustomSegment() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD="echo world"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD_ICON="hw"
|
||||
local POWERLEVEL9K_CUSTOM_WORLD_VISUAL_IDENTIFIER_COLOR="red"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{007} %F{001}hw %f%F{000}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,83 @@
|
||||
#!/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 testDetectVirtSegmentPrintsNothingIfSystemdIsNotAvailable() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(detect_virt custom_world)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD='echo world'
|
||||
alias systemd-detect-virt="novirt"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{007} %F{000}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
|
||||
unalias systemd-detect-virt
|
||||
}
|
||||
|
||||
function testDetectVirtSegmentIfSystemdReturnsPlainName() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(detect_virt)
|
||||
alias systemd-detect-virt="echo 'xxx'"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{003}xxx %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
unalias systemd-detect-virt
|
||||
}
|
||||
|
||||
function testDetectVirtSegmentIfRootFsIsOnExpectedInode() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(detect_virt)
|
||||
# Well. This is a weak test, as it fixates the implementation,
|
||||
# but it is necessary, as the implementation relys on the root
|
||||
# directory having the inode number "2"..
|
||||
alias systemd-detect-virt="echo 'none'"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
# The original command in the implementation is "ls -di / | grep -o 2",
|
||||
# which translates to: Show the inode number of "/" and test if it is "2".
|
||||
alias ls="echo '2'"
|
||||
|
||||
assertEquals "%K{000} %F{003}none %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
unalias ls
|
||||
unalias systemd-detect-virt
|
||||
}
|
||||
|
||||
function testDetectVirtSegmentIfRootFsIsNotOnExpectedInode() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(detect_virt)
|
||||
# Well. This is a weak test, as it fixates the implementation,
|
||||
# but it is necessary, as the implementation relys on the root
|
||||
# directory having the inode number "2"..
|
||||
alias systemd-detect-virt="echo 'none'"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
# The original command in the implementation is "ls -di / | grep -o 2",
|
||||
# which translates to: Show the inode number of "/" and test if it is "2".
|
||||
alias ls="echo '3'"
|
||||
|
||||
assertEquals "%K{000} %F{003}chroot %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
unalias ls
|
||||
unalias systemd-detect-virt
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,131 @@
|
||||
#!/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"
|
||||
|
||||
# Test specific
|
||||
P9K_HOME=$(pwd)
|
||||
FOLDER=/tmp/powerlevel9k-test
|
||||
mkdir -p $FOLDER
|
||||
cd $FOLDER
|
||||
}
|
||||
|
||||
function tearDown() {
|
||||
# Go back to powerlevel9k folder
|
||||
cd "${P9K_HOME}"
|
||||
# Remove eventually created test-specific folder
|
||||
rm -fr "${FOLDER}"
|
||||
# At least remove test folder completely
|
||||
rm -fr /tmp/powerlevel9k-test
|
||||
unset FOLDER
|
||||
unset P9K_HOME
|
||||
|
||||
# Remove IP cache file
|
||||
rm -f ${POWERLEVEL9K_PUBLIC_IP_FILE}
|
||||
}
|
||||
|
||||
function testDiskUsageSegmentWhenDiskIsAlmostFull() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(disk_usage)
|
||||
df() {
|
||||
echo "Filesystem 1K-blocks Used Available Use% Mounted on
|
||||
/dev/disk1 487219288 471466944 15496344 97% /"
|
||||
}
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{001} %F{007}hdd %f%F{007}97%% %k%F{001}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction df
|
||||
}
|
||||
|
||||
function testDiskUsageSegmentWhenDiskIsVeryFull() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(disk_usage)
|
||||
df() {
|
||||
echo "Filesystem 1K-blocks Used Available Use% Mounted on
|
||||
/dev/disk1 487219288 471466944 15496344 94% /"
|
||||
}
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{003} %F{000}hdd %f%F{000}94%% %k%F{003}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction df
|
||||
}
|
||||
|
||||
function testDiskUsageSegmentWhenDiskIsQuiteEmpty() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(disk_usage)
|
||||
df() {
|
||||
echo "Filesystem 1K-blocks Used Available Use% Mounted on
|
||||
/dev/disk1 487219288 471466944 15496344 4% /"
|
||||
}
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{003}hdd %f%F{003}4%% %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction df
|
||||
}
|
||||
|
||||
function testDiskUsageSegmentPrintsNothingIfDiskIsQuiteEmptyAndOnlyWarningsShouldBeDisplayed() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(disk_usage custom_world)
|
||||
df() {
|
||||
echo "Filesystem 1K-blocks Used Available Use% Mounted on
|
||||
/dev/disk1 487219288 471466944 15496344 4% /"
|
||||
}
|
||||
|
||||
local POWERLEVEL9K_DISK_USAGE_ONLY_WARNING=true
|
||||
local POWERLEVEL9K_CUSTOM_WORLD='echo world'
|
||||
|
||||
assertEquals "%K{007} %F{000}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction df
|
||||
}
|
||||
|
||||
function testDiskUsageSegmentWarningLevelCouldBeAdjusted() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(disk_usage)
|
||||
local POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL=10
|
||||
df() {
|
||||
echo "Filesystem 1K-blocks Used Available Use% Mounted on
|
||||
/dev/disk1 487219288 471466944 15496344 11% /"
|
||||
}
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{003} %F{000}hdd %f%F{000}11%% %k%F{003}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction df
|
||||
}
|
||||
|
||||
function testDiskUsageSegmentCriticalLevelCouldBeAdjusted() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(disk_usage)
|
||||
local POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL=5
|
||||
local POWERLEVEL9K_DISK_USAGE_CRITICAL_LEVEL=10
|
||||
df() {
|
||||
echo "Filesystem 1K-blocks Used Available Use% Mounted on
|
||||
/dev/disk1 487219288 471466944 15496344 11% /"
|
||||
}
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{001} %F{007}hdd %f%F{007}11%% %k%F{001}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction df
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,231 @@
|
||||
#!/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"
|
||||
}
|
||||
|
||||
function testIpSegmentPrintsNothingOnOsxIfNotConnected() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(ip custom_world)
|
||||
alias networksetup='echo "not connected"'
|
||||
local POWERLEVEL9K_CUSTOM_WORLD='echo world'
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
local OS="OSX" # Fake OSX
|
||||
|
||||
assertEquals "%K{007} %F{000}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
|
||||
unalias networksetup
|
||||
}
|
||||
|
||||
function testIpSegmentPrintsNothingOnLinuxIfNotConnected() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(ip custom_world)
|
||||
alias ip='echo "not connected"'
|
||||
local POWERLEVEL9K_CUSTOM_WORLD='echo world'
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
local OS="Linux" # Fake Linux
|
||||
|
||||
assertEquals "%K{007} %F{000}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
|
||||
unalias ip
|
||||
}
|
||||
|
||||
function testIpSegmentWorksOnOsxWithNoInterfaceSpecified() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(ip)
|
||||
alias networksetup="echo 'An asterisk (*) denotes that a network service is disabled.
|
||||
(1) Ethernet
|
||||
(Hardware Port: Ethernet, Device: en0)
|
||||
|
||||
(2) FireWire
|
||||
(Hardware Port: FireWire, Device: fw0)
|
||||
|
||||
(3) Wi-Fi
|
||||
(Hardware Port: Wi-Fi, Device: en1)
|
||||
|
||||
(4) Bluetooth PAN
|
||||
(Hardware Port: Bluetooth PAN, Device: en3)
|
||||
|
||||
(5) Thunderbolt Bridge
|
||||
(Hardware Port: Thunderbolt Bridge, Device: bridge0)
|
||||
|
||||
(6) Apple USB Ethernet Adapter
|
||||
(Hardware Port: Apple USB Ethernet Adapter, Device: en4)
|
||||
'"
|
||||
|
||||
alias ipconfig="_(){ echo '1.2.3.4'; };_"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
local OS='OSX' # Fake OSX
|
||||
|
||||
assertEquals "%K{006} %F{000}IP %f%F{000}1.2.3.4 %k%F{006}%f " "$(build_left_prompt)"
|
||||
|
||||
unalias ipconfig
|
||||
unalias networksetup
|
||||
}
|
||||
|
||||
# There could be more than one confiured network interfaces.
|
||||
# `networksetup -listnetworkserviceorder` lists the interfaces
|
||||
# in hierarchical order, but from outside this is not obvious
|
||||
# (implementation detail). So we need a test for this case.
|
||||
function testIpSegmentWorksOnOsxWithMultipleInterfacesSpecified() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(ip)
|
||||
alias networksetup="echo 'An asterisk (*) denotes that a network service is disabled.
|
||||
(1) Ethernet
|
||||
(Hardware Port: Ethernet, Device: en0)
|
||||
|
||||
(2) FireWire
|
||||
(Hardware Port: FireWire, Device: fw0)
|
||||
|
||||
(3) Wi-Fi
|
||||
(Hardware Port: Wi-Fi, Device: en1)
|
||||
|
||||
(4) Bluetooth PAN
|
||||
(Hardware Port: Bluetooth PAN, Device: en3)
|
||||
|
||||
(5) Thunderbolt Bridge
|
||||
(Hardware Port: Thunderbolt Bridge, Device: bridge0)
|
||||
|
||||
(6) Apple USB Ethernet Adapter
|
||||
(Hardware Port: Apple USB Ethernet Adapter, Device: en4)
|
||||
'"
|
||||
|
||||
# Return a unique IP address for every interface
|
||||
ipconfig() {
|
||||
case "${2}" {
|
||||
en0)
|
||||
echo 1.2.3.4
|
||||
;;
|
||||
fw0)
|
||||
echo 2.3.4.5
|
||||
;;
|
||||
en1)
|
||||
echo 3.4.5.6
|
||||
;;
|
||||
en3)
|
||||
echo 4.5.6.7
|
||||
;;
|
||||
}
|
||||
}
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
local OS='OSX' # Fake OSX
|
||||
|
||||
assertEquals "%K{006} %F{000}IP %f%F{000}1.2.3.4 %k%F{006}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction ipconfig
|
||||
unalias networksetup
|
||||
}
|
||||
|
||||
function testIpSegmentWorksOnOsxWithInterfaceSpecified() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(ip)
|
||||
local POWERLEVEL9K_IP_INTERFACE='xxx'
|
||||
alias ipconfig="_(){ echo '1.2.3.4'; };_"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
local OS='OSX' # Fake OSX
|
||||
|
||||
assertEquals "%K{006} %F{000}IP %f%F{000}1.2.3.4 %k%F{006}%f " "$(build_left_prompt)"
|
||||
|
||||
unalias ipconfig
|
||||
}
|
||||
|
||||
function testIpSegmentWorksOnLinuxWithNoInterfaceSpecified() {
|
||||
setopt aliases
|
||||
local POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(ip)
|
||||
# That command is harder to test, as it is used at first
|
||||
# to get all relevant network interfaces and then for
|
||||
# getting the configuration of that segment..
|
||||
ip(){
|
||||
if [[ "$*" == 'link ls up' ]]; then
|
||||
echo "1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
|
||||
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
|
||||
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
|
||||
link/ether 08:00:27:7e:84:45 brd ff:ff:ff:ff:ff:ff";
|
||||
fi
|
||||
|
||||
if [[ "$*" == '-4 a show eth0' ]]; then
|
||||
echo '2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
|
||||
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
|
||||
valid_lft forever preferred_lft forever';
|
||||
fi
|
||||
}
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
local OS='Linux' # Fake Linux
|
||||
|
||||
assertEquals "%K{006} %F{000}IP %f%F{000}10.0.2.15 %k%F{006}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction ip
|
||||
}
|
||||
|
||||
function testIpSegmentWorksOnLinuxWithMultipleInterfacesSpecified() {
|
||||
setopt aliases
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(ip)
|
||||
# That command is harder to test, as it is used at first
|
||||
# to get all relevant network interfaces and then for
|
||||
# getting the configuration of that segment..
|
||||
ip(){
|
||||
if [[ "$*" == 'link ls up' ]]; then
|
||||
echo "1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
|
||||
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
|
||||
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
|
||||
link/ether 08:00:27:7e:84:45 brd ff:ff:ff:ff:ff:ff
|
||||
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
|
||||
link/ether 08:00:27:7e:84:45 brd ff:ff:ff:ff:ff:ff
|
||||
4: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
|
||||
link/ether 08:00:27:7e:84:45 brd ff:ff:ff:ff:ff:ff";
|
||||
fi
|
||||
|
||||
if [[ "$*" == '-4 a show eth1' ]]; then
|
||||
echo '3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
|
||||
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
|
||||
valid_lft forever preferred_lft forever';
|
||||
fi
|
||||
}
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
local OS='Linux' # Fake Linux
|
||||
|
||||
assertEquals "%K{006} %F{000}IP %f%F{000}10.0.2.15 %k%F{006}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction ip
|
||||
}
|
||||
|
||||
function testIpSegmentWorksOnLinuxWithInterfaceSpecified() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(ip)
|
||||
local POWERLEVEL9K_IP_INTERFACE='xxx'
|
||||
ip(){
|
||||
echo '2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
|
||||
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
|
||||
valid_lft forever preferred_lft forever';
|
||||
}
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
local OS='Linux' # Fake Linux
|
||||
|
||||
assertEquals "%K{006} %F{000}IP %f%F{000}10.0.2.15 %k%F{006}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction ip
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,149 @@
|
||||
#!/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"
|
||||
|
||||
P9K_HOME=$(pwd)
|
||||
### Test specific
|
||||
# Create default folder and git init it.
|
||||
FOLDER=/tmp/powerlevel9k-test/load-test
|
||||
mkdir -p "${FOLDER}"
|
||||
cd $FOLDER
|
||||
}
|
||||
|
||||
function tearDown() {
|
||||
# Go back to powerlevel9k folder
|
||||
cd "${P9K_HOME}"
|
||||
# Remove eventually created test-specific folder
|
||||
rm -fr "${FOLDER}"
|
||||
# At least remove test folder completely
|
||||
rm -fr /tmp/powerlevel9k-test
|
||||
}
|
||||
|
||||
function testLoadSegmentWorksOnOsx() {
|
||||
sysctl() {
|
||||
if [[ "$*" == 'vm.loadavg' ]]; then
|
||||
echo "vm.loadavg: { 1,38 1,45 2,16 }";
|
||||
fi
|
||||
|
||||
if [[ "$*" == '-n hw.logicalcpu' ]]; then
|
||||
echo "4";
|
||||
fi
|
||||
}
|
||||
|
||||
local POWERLEVEL9K_LOAD_WHICH=1
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
local OS="OSX" # Fake OSX
|
||||
|
||||
assertEquals "%K{002} %F{000}L %f%F{000}1.38 " "$(prompt_load left 1 false ${FOLDER})"
|
||||
|
||||
unfunction sysctl
|
||||
}
|
||||
|
||||
function testLoadSegmentWorksOnBsd() {
|
||||
sysctl() {
|
||||
if [[ "$*" == 'vm.loadavg' ]]; then
|
||||
echo "vm.loadavg: { 1,38 1,45 2,16 }";
|
||||
fi
|
||||
|
||||
if [[ "$*" == '-n hw.ncpu' ]]; then
|
||||
echo "4";
|
||||
fi
|
||||
}
|
||||
|
||||
local POWERLEVEL9K_LOAD_WHICH=1
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
local OS="BSD" # Fake BSD
|
||||
|
||||
assertEquals "%K{002} %F{000}L %f%F{000}1.38 " "$(prompt_load left 1 false ${FOLDER})"
|
||||
|
||||
unfunction sysctl
|
||||
}
|
||||
|
||||
function testLoadSegmentWorksOnLinux() {
|
||||
# Prepare loadavg
|
||||
mkdir proc
|
||||
echo "1.38 0.01 0.05 1/87 8641" > proc/loadavg
|
||||
|
||||
alias nproc="echo 4"
|
||||
local POWERLEVEL9K_LOAD_WHICH=1
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
local OS="Linux" # Fake Linux
|
||||
|
||||
assertEquals "%K{002} %F{000}L %f%F{000}1.38 " "$(prompt_load left 1 false ${FOLDER})"
|
||||
|
||||
unalias nproc
|
||||
}
|
||||
|
||||
# Test normal state. This test is not OS specific.
|
||||
# We test it as the Linux version, but that
|
||||
# does not matter here.
|
||||
function testLoadSegmentNormalState() {
|
||||
# Prepare loadavg
|
||||
mkdir proc
|
||||
echo "1.00 0.01 0.05 1/87 8641" > proc/loadavg
|
||||
|
||||
alias nproc="echo 4"
|
||||
local POWERLEVEL9K_LOAD_WHICH=1
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
local OS="Linux" # Fake Linux
|
||||
|
||||
assertEquals "%K{002} %F{000}L %f%F{000}1.00 " "$(prompt_load left 1 false ${FOLDER})"
|
||||
|
||||
unalias nproc
|
||||
}
|
||||
|
||||
# Test warning state. This test is not OS specific.
|
||||
# We test it as the Linux version, but that
|
||||
# does not matter here.
|
||||
function testLoadSegmentWarningState() {
|
||||
# Prepare loadavg
|
||||
mkdir proc
|
||||
echo "2.01 0.01 0.05 1/87 8641" > proc/loadavg
|
||||
|
||||
alias nproc="echo 4"
|
||||
local POWERLEVEL9K_LOAD_WHICH=1
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
local OS="Linux" # Fake Linux
|
||||
|
||||
assertEquals "%K{003} %F{000}L %f%F{000}2.01 " "$(prompt_load left 1 false ${FOLDER})"
|
||||
|
||||
unalias nproc
|
||||
}
|
||||
|
||||
# Test critical state. This test is not OS specific.
|
||||
# We test it as the Linux version, but that
|
||||
# does not matter here.
|
||||
function testLoadSegmentCriticalState() {
|
||||
# Prepare loadavg
|
||||
mkdir proc
|
||||
echo "2.81 0.01 0.05 1/87 8641" > proc/loadavg
|
||||
|
||||
alias nproc="echo 4"
|
||||
local POWERLEVEL9K_LOAD_WHICH=1
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
local OS="Linux" # Fake Linux
|
||||
|
||||
assertEquals "%K{001} %F{000}L %f%F{000}2.81 " "$(prompt_load left 1 false ${FOLDER})"
|
||||
|
||||
unalias nproc
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,41 @@
|
||||
#!/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"
|
||||
}
|
||||
|
||||
function testNodeVersionSegmentPrintsNothingWithoutNode() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(node_version custom_world)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD='echo world'
|
||||
alias node="nonode 2>/dev/null"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{007} %F{000}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
|
||||
unalias node
|
||||
}
|
||||
|
||||
function testNodeVersionSegmentWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(node_version)
|
||||
node() {
|
||||
echo "v1.2.3"
|
||||
}
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{002} %F{007}⬢ %f%F{007}1.2.3 %k%F{002}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction node
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,99 @@
|
||||
#!/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"
|
||||
|
||||
# Test specfic
|
||||
# unset all possible user specified variables
|
||||
unset NODE_VIRTUAL_ENV_DISABLE_PROMPT
|
||||
unset NODE_VIRTUAL_ENV
|
||||
}
|
||||
|
||||
function testNodeenvSegmentPrintsNothingWithoutNode() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(nodeenv custom_world)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD='echo world'
|
||||
alias node="nonode 2>/dev/null"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{007} %F{000}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
|
||||
unalias node
|
||||
}
|
||||
|
||||
function testNodeenvSegmentPrintsNothingIfNodeVirtualEnvIsNotSet() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(nodeenv custom_world)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD='echo world'
|
||||
node() {
|
||||
echo "v1.2.3"
|
||||
}
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{007} %F{000}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction node
|
||||
}
|
||||
|
||||
function testNodeenvSegmentPrintsNothingIfNodeVirtualEnvDisablePromptIsSet() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(nodeenv custom_world)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD='echo world'
|
||||
node() {
|
||||
echo "v1.2.3"
|
||||
}
|
||||
NODE_VIRTUAL_ENV="node-env"
|
||||
NODE_VIRTUAL_ENV_DISABLE_PROMPT=true
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{007} %F{000}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
|
||||
unset NODE_VIRTUAL_ENV_DISABLE_PROMPT
|
||||
unset NODE_VIRTUAL_ENV
|
||||
unfunction node
|
||||
}
|
||||
|
||||
function testNodeenvSegmentPrintsAtLeastNodeEnvWithoutNode() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(nodeenv)
|
||||
alias node="nonode 2>/dev/null"
|
||||
NODE_VIRTUAL_ENV="node-env"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{002}⬢ %f%F{002}[node-env] %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
unset NODE_VIRTUAL_ENV
|
||||
unalias node
|
||||
}
|
||||
|
||||
function testNodeenvSegmentWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(nodeenv)
|
||||
node() {
|
||||
echo "v1.2.3"
|
||||
}
|
||||
NODE_VIRTUAL_ENV="node-env"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{002}⬢ %f%F{002}v1.2.3[node-env] %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction node
|
||||
unset NODE_VIRTUAL_ENV
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,72 @@
|
||||
#!/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"
|
||||
|
||||
P9K_HOME=$(pwd)
|
||||
### Test specific
|
||||
# Create default folder and git init it.
|
||||
FOLDER=/tmp/powerlevel9k-test/nvm-test
|
||||
mkdir -p "${FOLDER}/bin"
|
||||
OLD_PATH=$PATH
|
||||
PATH=${FOLDER}/bin:$PATH
|
||||
cd $FOLDER
|
||||
}
|
||||
|
||||
function tearDown() {
|
||||
# Restore old path
|
||||
PATH="${OLD_PATH}"
|
||||
# Go back to powerlevel9k folder
|
||||
cd "${P9K_HOME}"
|
||||
# Remove eventually created test-specific folder
|
||||
rm -fr "${FOLDER}"
|
||||
# At least remove test folder completely
|
||||
rm -fr /tmp/powerlevel9k-test
|
||||
}
|
||||
|
||||
function testNvmSegmentPrintsNothingIfNvmIsNotAvailable() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(nvm custom_world)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD='echo world'
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{007} %F{000}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testNvmSegmentWorksWithoutHavingADefaultAlias() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(nvm)
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
function nvm_version() {
|
||||
[[ ${1} == 'current' ]] && echo 'v4.6.0' || echo 'v1.4.0'
|
||||
}
|
||||
|
||||
assertEquals "%K{005} %F{000}⬢ %f%F{000}4.6.0 %k%F{005}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testNvmSegmentPrintsNothingWhenOnDefaultVersion() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(nvm custom_world)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD='echo world'
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
function nvm_version() {
|
||||
[[ ${1} == 'current' ]] && echo 'v4.6.0' || echo 'v4.6.0'
|
||||
}
|
||||
|
||||
assertEquals "%K{007} %F{000}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,42 @@
|
||||
#!/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"
|
||||
}
|
||||
|
||||
function testPhpVersionSegmentPrintsNothingIfPhpIsNotAvailable() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(php_version custom_world)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD='echo world'
|
||||
alias php="nophp"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{007} %F{000}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
|
||||
unalias php
|
||||
}
|
||||
|
||||
function testPhpVersionSegmentWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(php_version)
|
||||
alias php="echo 'PHP 5.6.27 (cli) (built: Oct 23 2016 11:47:58)
|
||||
Copyright (c) 1997-2016 The PHP Group
|
||||
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
|
||||
'"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{013} %F{255}PHP 5.6.27 %k%F{013}%f " "$(build_left_prompt)"
|
||||
|
||||
unalias php
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,222 @@
|
||||
#!/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"
|
||||
|
||||
# Test specific
|
||||
P9K_HOME=$(pwd)
|
||||
FOLDER=/tmp/powerlevel9k-test
|
||||
mkdir -p $FOLDER
|
||||
cd $FOLDER
|
||||
|
||||
# Change cache file, so that the users environment don't
|
||||
# interfere with the tests.
|
||||
POWERLEVEL9K_PUBLIC_IP_FILE=$FOLDER/public_ip_file
|
||||
}
|
||||
|
||||
function tearDown() {
|
||||
# Go back to powerlevel9k folder
|
||||
cd "${P9K_HOME}"
|
||||
# Remove eventually created test-specific folder
|
||||
rm -fr "${FOLDER}"
|
||||
# At least remove test folder completely
|
||||
rm -fr /tmp/powerlevel9k-test
|
||||
unset FOLDER
|
||||
unset P9K_HOME
|
||||
|
||||
# Unset cache file
|
||||
unset POWERLEVEL9K_PUBLIC_IP_FILE
|
||||
}
|
||||
|
||||
function testPublicIpSegmentPrintsNothingByDefaultIfHostIsNotAvailable() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(public_ip custom_world)
|
||||
local POWERLEVEL9K_PUBLIC_IP_HOST='http://unknown.xyz'
|
||||
local POWERLEVEL9K_CUSTOM_WORLD='echo world'
|
||||
# We need to overwrite dig, as this is a fallback method that
|
||||
# uses an alternative host.
|
||||
alias dig='nodig'
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{007} %F{000}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
|
||||
unalias dig
|
||||
}
|
||||
|
||||
function testPublicIpSegmentPrintsNoticeIfNotConnected() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(public_ip)
|
||||
local POWERLEVEL9K_PUBLIC_IP_HOST='http://unknown.xyz'
|
||||
local POWERLEVEL9K_PUBLIC_IP_NONE="disconnected"
|
||||
# We need to overwrite dig, as this is a fallback method that
|
||||
# uses an alternative host.
|
||||
alias dig='nodig'
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{007}disconnected %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
unalias dig
|
||||
}
|
||||
|
||||
function testPublicIpSegmentWorksWithWget() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(public_ip)
|
||||
alias dig='nodig'
|
||||
alias curl='nocurl'
|
||||
wget() {
|
||||
echo "wget 1.2.3.4"
|
||||
}
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{007}wget 1.2.3.4 %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction wget
|
||||
unalias dig
|
||||
unalias curl
|
||||
}
|
||||
|
||||
function testPublicIpSegmentUsesCurlAsFallbackMethodIfWgetIsNotAvailable() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(public_ip)
|
||||
alias dig='nodig'
|
||||
alias wget='nowget'
|
||||
curl() {
|
||||
echo "curl 1.2.3.4"
|
||||
}
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{007}curl 1.2.3.4 %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction curl
|
||||
unalias dig
|
||||
unalias wget
|
||||
}
|
||||
|
||||
function testPublicIpSegmentUsesDigAsFallbackMethodIfWgetAndCurlAreNotAvailable() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(public_ip)
|
||||
alias curl='nocurl'
|
||||
alias wget='nowget'
|
||||
dig() {
|
||||
echo "dig 1.2.3.4"
|
||||
}
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{007}dig 1.2.3.4 %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction dig
|
||||
unalias curl
|
||||
unalias wget
|
||||
}
|
||||
|
||||
function testPublicIpSegmentCachesFile() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(public_ip)
|
||||
dig() {
|
||||
echo "first"
|
||||
}
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{007}first %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
dig() {
|
||||
echo "second"
|
||||
}
|
||||
|
||||
# Segment should not have changed!
|
||||
assertEquals "%K{000} %F{007}first %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction dig
|
||||
}
|
||||
|
||||
function testPublicIpSegmentRefreshesCachesFileAfterTimeout() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(public_ip)
|
||||
local POWERLEVEL9K_PUBLIC_IP_TIMEOUT=2
|
||||
dig() {
|
||||
echo "first"
|
||||
}
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{007}first %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
sleep 3
|
||||
dig() {
|
||||
echo "second"
|
||||
}
|
||||
|
||||
# Segment should not have changed!
|
||||
assertEquals "%K{000} %F{007}second %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction dig
|
||||
}
|
||||
|
||||
function testPublicIpSegmentRefreshesCachesFileIfEmpty() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(public_ip)
|
||||
dig() {
|
||||
echo "first"
|
||||
}
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{007}first %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
# Truncate cache file
|
||||
echo "" >! $POWERLEVEL9K_PUBLIC_IP_FILE
|
||||
|
||||
dig() {
|
||||
echo "second"
|
||||
}
|
||||
|
||||
# Segment should not have changed!
|
||||
assertEquals "%K{000} %F{007}second %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction dig
|
||||
}
|
||||
|
||||
function testPublicIpSegmentWhenGoingOnline() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(public_ip)
|
||||
local POWERLEVEL9K_PUBLIC_IP_METHODS="dig"
|
||||
local POWERLEVEL9K_PUBLIC_IP_NONE="disconnected"
|
||||
alias dig="nodig"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{007}disconnected %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
unalias dig
|
||||
|
||||
dig() {
|
||||
echo "second"
|
||||
}
|
||||
|
||||
# Segment should not have changed!
|
||||
assertEquals "%K{000} %F{007}second %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction dig
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,66 @@
|
||||
#!/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"
|
||||
|
||||
P9K_HOME=$(pwd)
|
||||
### Test specific
|
||||
# Create default folder and git init it.
|
||||
FOLDER=/tmp/powerlevel9k-test/ram-test
|
||||
mkdir -p "${FOLDER}"
|
||||
cd $FOLDER
|
||||
}
|
||||
|
||||
function tearDown() {
|
||||
# Go back to powerlevel9k folder
|
||||
cd "${P9K_HOME}"
|
||||
# Remove eventually created test-specific folder
|
||||
rm -fr "${FOLDER}"
|
||||
# At least remove test folder completely
|
||||
rm -fr /tmp/powerlevel9k-test
|
||||
}
|
||||
|
||||
function testRamSegmentWorksOnOsx() {
|
||||
alias vm_stat="echo 'Mach Virtual Memory Statistics: (page size of 4096 bytes)
|
||||
Pages free: 299687.
|
||||
Pages active: 1623792.
|
||||
Pages inactive: 1313411.
|
||||
'"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
local OS="OSX" # Fake OSX
|
||||
|
||||
assertEquals "%K{003} %F{000}RAM %f%F{000}6.15G " "$(prompt_ram left 1 false ${FOLDER})"
|
||||
|
||||
unalias vm_stat
|
||||
}
|
||||
|
||||
function testRamSegmentWorksOnBsd() {
|
||||
mkdir -p var/run
|
||||
echo "avail memory 5678B 299687 4444G 299" > var/run/dmesg.boot
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
local OS="BSD" # Fake BSD
|
||||
|
||||
assertEquals "%K{003} %F{000}RAM %f%F{000}0.29M " "$(prompt_ram left 1 false ${FOLDER})"
|
||||
}
|
||||
|
||||
function testRamSegmentWorksOnLinux() {
|
||||
mkdir proc
|
||||
echo "MemAvailable: 299687" > proc/meminfo
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
local OS="Linux" # Fake Linux
|
||||
|
||||
assertEquals "%K{003} %F{000}RAM %f%F{000}0.29G " "$(prompt_ram left 1 false ${FOLDER})"
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,80 @@
|
||||
#!/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"
|
||||
}
|
||||
|
||||
function testSshSegmentPrintsNothingIfNoSshConnection() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(ssh custom_world)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD='echo "world"'
|
||||
local POWERLEVEL9K_SSH_ICON="ssh-icon"
|
||||
# Weak test: Emulate No SSH connection by unsetting
|
||||
# $SSH_CLIENT and $SSH_TTY
|
||||
unset SSH_CLIENT
|
||||
unset SSH_TTY
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{007} %F{000}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testSshSegmentWorksIfOnlySshClientIsSet() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(ssh)
|
||||
local POWERLEVEL9K_SSH_ICON="ssh-icon"
|
||||
# Weak test: Emulate No SSH connection by unsetting
|
||||
# $SSH_CLIENT and $SSH_TTY
|
||||
SSH_CLIENT='ssh-client'
|
||||
unset SSH_TTY
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{003}ssh-icon%f %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
unset SSH_CLIENT
|
||||
}
|
||||
|
||||
function testSshSegmentWorksIfOnlySshTtyIsSet() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(ssh)
|
||||
local POWERLEVEL9K_SSH_ICON="ssh-icon"
|
||||
# Weak test: Emulate No SSH connection by unsetting
|
||||
# $SSH_CLIENT and $SSH_TTY
|
||||
SSH_TTY='ssh-tty'
|
||||
unset SSH_CLIENT
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{003}ssh-icon%f %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
unset SSH_TTY
|
||||
}
|
||||
|
||||
function testSshSegmentWorksIfAllNecessaryVariablesAreSet() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(ssh)
|
||||
local POWERLEVEL9K_SSH_ICON="ssh-icon"
|
||||
# Weak test: Emulate No SSH connection by unsetting
|
||||
# $SSH_CLIENT and $SSH_TTY
|
||||
SSH_CLIENT='ssh-client'
|
||||
SSH_TTY='ssh-tty'
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{003}ssh-icon%f %k%F{000}%f " "$(build_left_prompt)"
|
||||
|
||||
unset SSH_TTY
|
||||
unset SSH_CLIENT
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,58 @@
|
||||
#!/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"
|
||||
|
||||
P9K_HOME=$(pwd)
|
||||
### Test specific
|
||||
# Create default folder and git init it.
|
||||
FOLDER=/tmp/powerlevel9k-test/swap-test
|
||||
mkdir -p "${FOLDER}"
|
||||
cd $FOLDER
|
||||
}
|
||||
|
||||
function tearDown() {
|
||||
# Go back to powerlevel9k folder
|
||||
cd "${P9K_HOME}"
|
||||
# Remove eventually created test-specific folder
|
||||
rm -fr "${FOLDER}"
|
||||
# At least remove test folder completely
|
||||
rm -fr /tmp/powerlevel9k-test
|
||||
}
|
||||
|
||||
function testSwapSegmentWorksOnOsx() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(swap)
|
||||
sysctl() {
|
||||
echo "vm.swapusage: total = 3072,00M used = 1620,50M free = 1451,50M (encrypted)"
|
||||
}
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
local OS="OSX" # Fake OSX
|
||||
|
||||
assertEquals "%K{003} %F{000}SWP %f%F{000}1.58G " "$(prompt_swap left 1 false ${FOLDER})"
|
||||
|
||||
unfunction sysctl
|
||||
}
|
||||
|
||||
function testSwapSegmentWorksOnLinux() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(swap)
|
||||
mkdir proc
|
||||
echo "SwapTotal: 1000000" > proc/meminfo
|
||||
echo "SwapFree: 1000" >> proc/meminfo
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
local OS="Linux" # Fake Linux
|
||||
|
||||
assertEquals "%K{003} %F{000}SWP %f%F{000}0.95G " "$(prompt_swap left 1 false ${FOLDER})"
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,57 @@
|
||||
#!/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"
|
||||
|
||||
P9K_HOME=$(pwd)
|
||||
### Test specific
|
||||
# Create default folder and git init it.
|
||||
FOLDER=/tmp/powerlevel9k-test
|
||||
mkdir -p "${FOLDER}"
|
||||
cd $FOLDER
|
||||
}
|
||||
|
||||
function tearDown() {
|
||||
# Go back to powerlevel9k folder
|
||||
cd "${P9K_HOME}"
|
||||
# Remove eventually created test-specific folder
|
||||
rm -fr "${FOLDER}"
|
||||
# At least remove test folder completely
|
||||
rm -fr /tmp/powerlevel9k-test
|
||||
}
|
||||
|
||||
function testSwiftSegmentPrintsNothingIfSwiftIsNotAvailable() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(swift_version custom_world)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD='echo world'
|
||||
alias swift="noswift"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{007} %F{000}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
|
||||
unalias swift
|
||||
}
|
||||
|
||||
function testSwiftSegmentWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(swift_version)
|
||||
function swift() {
|
||||
echo "Apple Swift version 3.0.1 (swiftlang-800.0.58.6 clang-800.0.42.1)\nTarget: x86_64-apple-macosx10.9"
|
||||
}
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{005} %F{007}Swift %f%F{007}3.0.1 %k%F{005}%f " "$(build_left_prompt)"
|
||||
|
||||
unfunction swift
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,58 @@
|
||||
#!/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"
|
||||
|
||||
P9K_HOME=$(pwd)
|
||||
### Test specific
|
||||
# Create default folder and git init it.
|
||||
FOLDER=/tmp/powerlevel9k-test
|
||||
mkdir -p "${FOLDER}"
|
||||
mkdir ${FOLDER}/bin
|
||||
OLD_PATH=$PATH
|
||||
PATH=${FOLDER}/bin:$PATH
|
||||
cd $FOLDER
|
||||
}
|
||||
|
||||
function tearDown() {
|
||||
# Reset PATH
|
||||
PATH=$OLD_PATH
|
||||
# Go back to powerlevel9k folder
|
||||
cd "${P9K_HOME}"
|
||||
# Remove eventually created test-specific folder
|
||||
rm -fr "${FOLDER}"
|
||||
# At least remove test folder completely
|
||||
rm -fr /tmp/powerlevel9k-test
|
||||
}
|
||||
|
||||
function testTodoSegmentPrintsNothingIfTodoShIsNotInstalled() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(todo custom_world)
|
||||
local POWERLEVEL9K_CUSTOM_WORLD='echo world'
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{007} %F{000}world %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testTodoSegmentWorksAsExpected() {
|
||||
# TODO: Skript in den PATH legen!
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(todo)
|
||||
echo '#!/bin/sh' > ${FOLDER}/bin/todo.sh
|
||||
echo 'echo "TODO: 34 of 100 tasks shown";' >> ${FOLDER}/bin/todo.sh
|
||||
chmod +x ${FOLDER}/bin/todo.sh
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{244} %F{000}☑ %f%F{000}100 %k%F{244}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,378 @@
|
||||
#!/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"
|
||||
|
||||
P9K_HOME=$(pwd)
|
||||
### Test specific
|
||||
# Create default folder and git init it.
|
||||
FOLDER=/tmp/powerlevel9k-test/vcs-test
|
||||
mkdir -p "${FOLDER}"
|
||||
cd $FOLDER
|
||||
|
||||
# Set username and email
|
||||
OLD_GIT_AUTHOR_NAME=$GIT_AUTHOR_NAME
|
||||
GIT_AUTHOR_NAME="Testing Tester"
|
||||
OLD_GIT_AUTHOR_EMAIL=$GIT_AUTHOR_EMAIL
|
||||
GIT_AUTHOR_EMAIL="test@powerlevel9k.theme"
|
||||
|
||||
# Set default username if not already set!
|
||||
if [[ -z $(git config user.name) ]]; then
|
||||
GIT_AUTHOR_NAME_SET_BY_TEST=true
|
||||
git config --global user.name "${GIT_AUTHOR_NAME}"
|
||||
fi
|
||||
# Set default email if not already set!
|
||||
if [[ -z $(git config user.email) ]]; then
|
||||
GIT_AUTHOR_EMAIL_SET_BY_TEST=true
|
||||
git config --global user.email "${GIT_AUTHOR_EMAIL}"
|
||||
fi
|
||||
|
||||
# Initialize FOLDER as git repository
|
||||
git init 1>/dev/null
|
||||
}
|
||||
|
||||
function tearDown() {
|
||||
if [[ -n "${OLD_GIT_AUTHOR_NAME}" ]]; then
|
||||
GIT_AUTHOR_NAME=$OLD_GIT_AUTHOR
|
||||
unset OLD_GIT_AUTHOR_NAME
|
||||
else
|
||||
unset GIT_AUTHOR_NAME
|
||||
fi
|
||||
|
||||
if [[ -n "${OLD_GIT_AUTHOR_EMAIL}" ]]; then
|
||||
GIT_AUTHOR_EMAIL=$OLD_GIT_AUTHOR_EMAIL
|
||||
unset OLD_GIT_AUTHOR_EMAIL
|
||||
else
|
||||
unset GIT_AUTHOR_EMAIL
|
||||
fi
|
||||
|
||||
if [[ "${GIT_AUTHOR_NAME_SET_BY_TEST}" == "true" ]]; then
|
||||
git config --global --unset user.name
|
||||
fi
|
||||
if [[ "${GIT_AUTHOR_EMAIL_SET_BY_TEST}" == "true" ]]; then
|
||||
git config --global --unset user.email
|
||||
fi
|
||||
|
||||
# Go back to powerlevel9k folder
|
||||
cd "${P9K_HOME}"
|
||||
# Remove eventually created test-specific folder
|
||||
rm -fr "${FOLDER}"
|
||||
# At least remove test folder completely
|
||||
rm -fr /tmp/powerlevel9k-test
|
||||
unset FOLDER
|
||||
}
|
||||
|
||||
function testColorOverridingForCleanStateWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_VCS_CLEAN_FOREGROUND='cyan'
|
||||
local POWERLEVEL9K_VCS_CLEAN_BACKGROUND='white'
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{007} %F{006} master %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testColorOverridingForModifiedStateWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_VCS_MODIFIED_FOREGROUND='red'
|
||||
local POWERLEVEL9K_VCS_MODIFIED_BACKGROUND='yellow'
|
||||
|
||||
touch testfile
|
||||
git add testfile
|
||||
git commit -m "test" 1>/dev/null
|
||||
echo "test" > testfile
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{003} %F{001} master ● %k%F{003}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testColorOverridingForUntrackedStateWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND='cyan'
|
||||
local POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND='yellow'
|
||||
|
||||
touch testfile
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{003} %F{006} master ? %k%F{003}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testGitIconWorks() {
|
||||
local POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_VCS_GIT_ICON='Git-Icon'
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{002} %F{000}Git-Icon %f%F{000} master %k%F{002}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testGitlabIconWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_VCS_GIT_GITLAB_ICON='GL-Icon'
|
||||
|
||||
# Add a GitLab project as remote origin. This is
|
||||
# sufficient to show the GitLab-specific icon.
|
||||
git remote add origin https://gitlab.com/dritter/gitlab-test-project.git
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{002} %F{000}GL-Icon %f%F{000} master %k%F{002}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testBitbucketIconWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_VCS_GIT_BITBUCKET_ICON='BB-Icon'
|
||||
|
||||
# Add a BitBucket project as remote origin. This is
|
||||
# sufficient to show the BitBucket-specific icon.
|
||||
git remote add origin https://dritter@bitbucket.org/dritter/dr-test.git
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{002} %F{000}BB-Icon %f%F{000} master %k%F{002}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testGitHubIconWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_VCS_GIT_GITHUB_ICON='GH-Icon'
|
||||
|
||||
# Add a GitHub project as remote origin. This is
|
||||
# sufficient to show the GitHub-specific icon.
|
||||
git remote add origin https://github.com/dritter/test.git
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{002} %F{000}GH-Icon %f%F{000} master %k%F{002}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testUntrackedFilesIconWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_VCS_UNTRACKED_ICON='?'
|
||||
|
||||
# Create untracked file
|
||||
touch "i-am-untracked.txt"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{002} %F{000} master ? %k%F{002}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testStagedFilesIconWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_VCS_STAGED_ICON='+'
|
||||
|
||||
# Create staged file
|
||||
touch "i-am-added.txt"
|
||||
git add i-am-added.txt &>/dev/null
|
||||
git commit -m "initial commit" &>/dev/null
|
||||
echo "xx" >> i-am-added.txt
|
||||
git add i-am-added.txt &>/dev/null
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{003} %F{000} master + %k%F{003}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testUnstagedFilesIconWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_VCS_UNSTAGED_ICON='M'
|
||||
|
||||
# Create unstaged (modified, but not added to index) file
|
||||
touch "i-am-modified.txt"
|
||||
git add i-am-modified.txt
|
||||
git commit -m "Add File" 1>/dev/null
|
||||
echo "xx" > i-am-modified.txt
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{003} %F{000} master M %k%F{003}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testStashIconWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_VCS_STASH_ICON='S'
|
||||
|
||||
# Create modified file
|
||||
touch "i-am-modified.txt"
|
||||
git add i-am-modified.txt
|
||||
git commit -m "Add File" 1>/dev/null
|
||||
echo "xx" > i-am-modified.txt
|
||||
git stash 1>/dev/null
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{002} %F{000} master S1 %k%F{002}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testTagIconWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_VCS_TAG_ICON='T'
|
||||
|
||||
touch "file.txt"
|
||||
git add file.txt
|
||||
git commit -m "Add File" 1>/dev/null
|
||||
git tag "v0.0.1"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{002} %F{000} master Tv0.0.1 %k%F{002}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testTagIconInDetachedHeadState() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_VCS_TAG_ICON='T'
|
||||
|
||||
touch "file.txt"
|
||||
git add file.txt
|
||||
git commit -m "Add File" &>/dev/null
|
||||
git tag "v0.0.1"
|
||||
touch "file2.txt"
|
||||
git add file2.txt
|
||||
git commit -m "Add File2" &>/dev/null
|
||||
git checkout v0.0.1 &>/dev/null
|
||||
local hash=$(git rev-list -n 1 --abbrev-commit --abbrev=8 HEAD)
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{002} %F{000} ${hash} Tv0.0.1 %k%F{002}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testActionHintWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
|
||||
touch "i-am-modified.txt"
|
||||
git add i-am-modified.txt
|
||||
git commit -m "Add File" &>/dev/null
|
||||
|
||||
git clone . ../vcs-test2 &>/dev/null
|
||||
echo "xx" >> i-am-modified.txt
|
||||
git commit -a -m "Modified file" &>/dev/null
|
||||
|
||||
cd ../vcs-test2
|
||||
echo "yy" >> i-am-modified.txt
|
||||
git commit -a -m "Provoke conflict" &>/dev/null
|
||||
git pull &>/dev/null
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{003} %F{000} master %F{red}| merge%f %k%F{003}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testIncomingHintWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_VCS_INCOMING_CHANGES_ICON='I'
|
||||
|
||||
touch "i-am-modified.txt"
|
||||
git add i-am-modified.txt
|
||||
git commit -m "Add File" &>/dev/null
|
||||
|
||||
git clone . ../vcs-test2 &>/dev/null
|
||||
echo "xx" >> i-am-modified.txt
|
||||
git commit -a -m "Modified file" &>/dev/null
|
||||
|
||||
cd ../vcs-test2
|
||||
git fetch &>/dev/null
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{002} %F{000} master I1 %k%F{002}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testOutgoingHintWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_VCS_OUTGOING_CHANGES_ICON='o'
|
||||
|
||||
touch "i-am-modified.txt"
|
||||
git add i-am-modified.txt
|
||||
git commit -m "Add File" &>/dev/null
|
||||
|
||||
git clone . ../vcs-test2 &>/dev/null
|
||||
|
||||
cd ../vcs-test2
|
||||
|
||||
echo "xx" >> i-am-modified.txt
|
||||
git commit -a -m "Modified file" &>/dev/null
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{002} %F{000} master o1 %k%F{002}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testShorteningCommitHashWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_SHOW_CHANGESET=true
|
||||
local POWERLEVEL9K_CHANGESET_HASH_LENGTH='4'
|
||||
|
||||
touch "file.txt"
|
||||
git add file.txt
|
||||
git commit -m "Add File" 1>/dev/null
|
||||
local hash=$(git rev-list -n 1 --abbrev-commit --abbrev=3 HEAD)
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
# This test needs to call powerlevel9k_vcs_init, where
|
||||
# the changeset is truncated.
|
||||
powerlevel9k_vcs_init
|
||||
assertEquals "%K{002} %F{000}${hash} master %k%F{002}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testShorteningCommitHashIsNotShownIfShowChangesetIsFalse() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_SHOW_CHANGESET=false
|
||||
local POWERLEVEL9K_CHANGESET_HASH_LENGTH='4'
|
||||
|
||||
touch "file.txt"
|
||||
git add file.txt
|
||||
git commit -m "Add File" 1>/dev/null
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
# This test needs to call powerlevel9k_vcs_init, where
|
||||
# the changeset is truncated.
|
||||
powerlevel9k_vcs_init
|
||||
assertEquals "%K{002} %F{000} master %k%F{002}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,207 @@
|
||||
#!/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"
|
||||
|
||||
P9K_HOME=$(pwd)
|
||||
### Test specific
|
||||
# Create default folder and hg init it.
|
||||
FOLDER=/tmp/powerlevel9k-test/vcs-test
|
||||
mkdir -p "${FOLDER}"
|
||||
cd $FOLDER
|
||||
|
||||
export HGUSER="Test bot <bot@example.com>"
|
||||
|
||||
hg init 1>/dev/null
|
||||
}
|
||||
|
||||
function tearDown() {
|
||||
# Go back to powerlevel9k folder
|
||||
cd "${P9K_HOME}"
|
||||
# Remove eventually created test-specific folder
|
||||
rm -fr "${FOLDER}" &>/dev/null
|
||||
# At least remove test folder completely
|
||||
rm -fr /tmp/powerlevel9k-test &>/dev/null
|
||||
unset FOLDER
|
||||
unset HGUSER
|
||||
}
|
||||
|
||||
function testColorOverridingForCleanStateWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_VCS_CLEAN_FOREGROUND='cyan'
|
||||
local POWERLEVEL9K_VCS_CLEAN_BACKGROUND='white'
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{007} %F{006} default %k%F{007}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testColorOverridingForModifiedStateWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_VCS_MODIFIED_FOREGROUND='red'
|
||||
local POWERLEVEL9K_VCS_MODIFIED_BACKGROUND='yellow'
|
||||
|
||||
touch testfile
|
||||
hg add testfile
|
||||
hg commit -m "test" 1>/dev/null
|
||||
echo "test" > testfile
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{003} %F{001} default ● %k%F{003}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
# There is no staging area in mercurial, therefore there are no "untracked"
|
||||
# files.. In case there are added files, we show the VCS segment with a
|
||||
# yellow background.
|
||||
# This may be improved in future versions, to be a bit more consistent with
|
||||
# the git part.
|
||||
function testAddedFilesIconWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
touch "myfile.txt"
|
||||
hg add myfile.txt
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{003} %F{000} default ● %k%F{003}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
# We don't support tagging in mercurial right now..
|
||||
function testTagIconWorks() {
|
||||
startSkipping # Skip test
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_VCS_TAG_ICON='T'
|
||||
|
||||
touch "file.txt"
|
||||
hg add file.txt
|
||||
hg commit -m "Add File" 1>/dev/null
|
||||
hg tag "v0.0.1"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{002} %F{000} default Tv0.0.1 %k%F{002}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testTagIconInDetachedHeadState() {
|
||||
startSkipping # Skip test
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_VCS_TAG_ICON='T'
|
||||
|
||||
touch "file.txt"
|
||||
hg add file.txt
|
||||
hg commit -m "Add File" &>/dev/null
|
||||
hg tag "v0.0.1"
|
||||
touch "file2.txt"
|
||||
hg add file2.txt
|
||||
hg commit -m "Add File2" &>/dev/null
|
||||
hg checkout v0.0.1 &>/dev/null
|
||||
local hash=$(hg id)
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{002} %F{000} ${hash} Tv0.0.1 %k%F{002}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testActionHintWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
touch "i-am-modified.txt"
|
||||
hg add i-am-modified.txt
|
||||
hg commit -m "Add File" &>/dev/null
|
||||
|
||||
hg clone . ../vcs-test2 &>/dev/null
|
||||
echo "xx" >> i-am-modified.txt
|
||||
hg commit -m "Modified file" &>/dev/null
|
||||
|
||||
cd ../vcs-test2
|
||||
echo "yy" >> i-am-modified.txt
|
||||
hg commit -m "Provoke conflict" 2>/dev/null
|
||||
hg pull 1>/dev/null
|
||||
hg merge --tool internal:merge >/dev/null 2>&1
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{003} %F{000} default %F{red}| merging%f %k%F{003}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testShorteningCommitHashWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_SHOW_CHANGESET=true
|
||||
local POWERLEVEL9K_CHANGESET_HASH_LENGTH='4'
|
||||
|
||||
touch "file.txt"
|
||||
hg add file.txt
|
||||
hg commit -m "Add File" 1>/dev/null
|
||||
local hash=$(hg id | head -c ${POWERLEVEL9K_CHANGESET_HASH_LENGTH})
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
# This test needs to call powerlevel9k_vcs_init, where
|
||||
# the changeset is truncated.
|
||||
powerlevel9k_vcs_init
|
||||
|
||||
assertEquals "%K{002} %F{000}${hash} default %k%F{002}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testShorteningCommitHashIsNotShownIfShowChangesetIsFalse() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_SHOW_CHANGESET=false
|
||||
local POWERLEVEL9K_CHANGESET_HASH_LENGTH='4'
|
||||
|
||||
touch "file.txt"
|
||||
hg add file.txt
|
||||
hg commit -m "Add File" 1>/dev/null
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
# This test needs to call powerlevel9k_vcs_init, where
|
||||
# the changeset is truncated.
|
||||
powerlevel9k_vcs_init
|
||||
|
||||
assertEquals "%K{002} %F{000} default %k%F{002}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testMercurialIconWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_VCS_HG_ICON='HG-Icon'
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{002} %F{000}HG-Icon %f%F{000} default %k%F{002}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
function testBookmarkIconWorks() {
|
||||
local -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
local POWERLEVEL9K_VCS_BOOKMARK_ICON='B'
|
||||
hg bookmark "initial"
|
||||
|
||||
# Load Powerlevel9k
|
||||
source ${P9K_HOME}/powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{002} %F{000} default Binitial %k%F{002}%f " "$(build_left_prompt)"
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -1,161 +0,0 @@
|
||||
#!/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 testColorOverridingForCleanStateWorks() {
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
POWERLEVEL9K_VCS_CLEAN_FOREGROUND='cyan'
|
||||
POWERLEVEL9K_VCS_CLEAN_BACKGROUND='white'
|
||||
|
||||
FOLDER=/tmp/powerlevel9k-test/vcs-test
|
||||
mkdir -p $FOLDER
|
||||
cd $FOLDER
|
||||
git init 1>/dev/null
|
||||
|
||||
assertEquals "%K{white} %F{cyan} master %k%F{white}%f " "$(build_left_prompt)"
|
||||
|
||||
cd -
|
||||
rm -fr /tmp/powerlevel9k-test
|
||||
|
||||
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
unset POWERLEVEL9K_VCS_CLEAN_FOREGROUND
|
||||
unset POWERLEVEL9K_VCS_CLEAN_BACKGROUND
|
||||
}
|
||||
|
||||
function testColorOverridingForModifiedStateWorks() {
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
POWERLEVEL9K_VCS_MODIFIED_FOREGROUND='red'
|
||||
POWERLEVEL9K_VCS_MODIFIED_BACKGROUND='yellow'
|
||||
|
||||
FOLDER=/tmp/powerlevel9k-test/vcs-test
|
||||
mkdir -p $FOLDER
|
||||
cd $FOLDER
|
||||
git init 1>/dev/null
|
||||
git config user.email "test@powerlevel9k.theme"
|
||||
git config user.name "Testing Tester"
|
||||
touch testfile
|
||||
git add testfile
|
||||
git commit -m "test" 1>/dev/null
|
||||
echo "test" > testfile
|
||||
|
||||
assertEquals "%K{yellow} %F{red} master ● %k%F{yellow}%f " "$(build_left_prompt)"
|
||||
|
||||
cd -
|
||||
rm -fr /tmp/powerlevel9k-test
|
||||
|
||||
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
unset POWERLEVEL9K_VCS_MODIFIED_FOREGROUND
|
||||
unset POWERLEVEL9K_VCS_MODIFIED_BACKGROUND
|
||||
}
|
||||
|
||||
function testColorOverridingForUntrackedStateWorks() {
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND='cyan'
|
||||
POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND='yellow'
|
||||
|
||||
FOLDER=/tmp/powerlevel9k-test/vcs-test
|
||||
mkdir -p $FOLDER
|
||||
cd $FOLDER
|
||||
git init 1>/dev/null
|
||||
touch testfile
|
||||
|
||||
assertEquals "%K{yellow} %F{cyan} master ? %k%F{yellow}%f " "$(build_left_prompt)"
|
||||
|
||||
cd -
|
||||
rm -fr /tmp/powerlevel9k-test
|
||||
|
||||
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
unset POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND
|
||||
unset POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND
|
||||
}
|
||||
|
||||
function testBranchNameTruncatingShortenLength() {
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
POWERLEVEL9K_VCS_SHORTEN_LENGTH=6
|
||||
POWERLEVEL9K_VCS_SHORTEN_MIN_LENGTH=3
|
||||
POWERLEVEL9K_VCS_SHORTEN_STRATEGY="truncate_from_right"
|
||||
|
||||
FOLDER=/tmp/powerlevel9k-test/vcs-test
|
||||
mkdir -p $FOLDER
|
||||
cd $FOLDER
|
||||
git init 1>/dev/null
|
||||
touch testfile
|
||||
|
||||
assertEquals "%K{green} %F{black} master ? %k%F{green}%f " "$(build_left_prompt)"
|
||||
|
||||
POWERLEVEL9K_VCS_SHORTEN_LENGTH=3
|
||||
assertEquals "%K{green} %F{black} mas… ? %k%F{green}%f " "$(build_left_prompt)"
|
||||
|
||||
cd -
|
||||
rm -fr /tmp/powerlevel9k-test
|
||||
|
||||
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
unset POWERLEVEL9K_VCS_SHORTEN_LENGTH
|
||||
unset POWERLEVEL9K_VCS_SHORTEN_MIN_LENGTH
|
||||
unset POWERLEVEL9K_VCS_SHORTEN_STRATEGY
|
||||
}
|
||||
|
||||
function testBranchNameTruncatingMinLength() {
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
POWERLEVEL9K_VCS_SHORTEN_LENGTH=3
|
||||
POWERLEVEL9K_VCS_SHORTEN_MIN_LENGTH=6
|
||||
POWERLEVEL9K_VCS_SHORTEN_STRATEGY="truncate_from_right"
|
||||
|
||||
FOLDER=/tmp/powerlevel9k-test/vcs-test
|
||||
mkdir -p $FOLDER
|
||||
cd $FOLDER
|
||||
git init 1>/dev/null
|
||||
touch testfile
|
||||
|
||||
assertEquals "%K{green} %F{black} master ? %k%F{green}%f " "$(build_left_prompt)"
|
||||
|
||||
POWERLEVEL9K_VCS_SHORTEN_MIN_LENGTH=7
|
||||
|
||||
assertEquals "%K{green} %F{black} master ? %k%F{green}%f " "$(build_left_prompt)"
|
||||
|
||||
cd -
|
||||
rm -fr /tmp/powerlevel9k-test
|
||||
|
||||
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
unset POWERLEVEL9K_VCS_SHORTEN_LENGTH
|
||||
unset POWERLEVEL9K_VCS_SHORTEN_MIN_LENGTH
|
||||
unset POWERLEVEL9K_VCS_SHORTEN_STRATEGY
|
||||
}
|
||||
|
||||
function testBranchNameTruncatingShortenStrategy() {
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(vcs)
|
||||
POWERLEVEL9K_VCS_SHORTEN_LENGTH=3
|
||||
POWERLEVEL9K_VCS_SHORTEN_MIN_LENGTH=3
|
||||
POWERLEVEL9K_VCS_SHORTEN_STRATEGY="truncate_from_right"
|
||||
|
||||
FOLDER=/tmp/powerlevel9k-test/vcs-test
|
||||
mkdir -p $FOLDER
|
||||
cd $FOLDER
|
||||
git init 1>/dev/null
|
||||
touch testfile
|
||||
|
||||
assertEquals "%K{green} %F{black} mas… ? %k%F{green}%f " "$(build_left_prompt)"
|
||||
|
||||
POWERLEVEL9K_VCS_SHORTEN_STRATEGY="truncate_middle"
|
||||
|
||||
assertEquals "%K{green} %F{black} mas…ter ? %k%F{green}%f " "$(build_left_prompt)"
|
||||
|
||||
cd -
|
||||
rm -fr /tmp/powerlevel9k-test
|
||||
|
||||
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||
unset POWERLEVEL9K_VCS_SHORTEN_LENGTH
|
||||
unset POWERLEVEL9K_VCS_SHORTEN_MIN_LENGTH
|
||||
unset POWERLEVEL9K_VCS_SHORTEN_STRATEGY
|
||||
}
|
||||
|
||||
source shunit2/source/2.1/src/shunit2
|
@ -0,0 +1,48 @@
|
||||
#!/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"
|
||||
}
|
||||
|
||||
function testViInsertModeWorks() {
|
||||
local KEYMAP='viins'
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{004}INSERT " "$(prompt_vi_mode left 1 false)"
|
||||
}
|
||||
|
||||
function testViInsertModeWorksWhenLabeledAsMain() {
|
||||
local KEYMAP='main'
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{004}INSERT " "$(prompt_vi_mode left 1 false)"
|
||||
}
|
||||
|
||||
function testViCommandModeWorks() {
|
||||
local KEYMAP='vicmd'
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{007}NORMAL " "$(prompt_vi_mode left 1 false)"
|
||||
}
|
||||
|
||||
function testViInsertModeStringIsCustomizable() {
|
||||
local KEYMAP='viins'
|
||||
|
||||
# Load Powerlevel9k
|
||||
source powerlevel9k.zsh-theme
|
||||
|
||||
assertEquals "%K{000} %F{004}INSERT " "$(prompt_vi_mode left 1 false)"
|
||||
}
|
||||
|
||||
source shunit2/shunit2
|
@ -0,0 +1,17 @@
|
||||
#!/usr/bin/env zsh
|
||||
#vim:ft=zsh ts=2 sw=2 sts=2 et fenc=utf-8
|
||||
|
||||
local failed=false
|
||||
|
||||
for test in **/*.spec; do
|
||||
echo
|
||||
echo "Now executing ${test}"
|
||||
if [[ "${test}" == "test/suite.spec" ]]; then
|
||||
continue;
|
||||
fi
|
||||
./${test} || failed=true
|
||||
done
|
||||
|
||||
if [[ "${failed}" == "true" ]]; then
|
||||
exit 1
|
||||
fi
|
Loading…
Reference in New Issue