aboutsummaryrefslogtreecommitdiff
path: root/test/segments/public_ip.spec
diff options
context:
space:
mode:
Diffstat (limited to 'test/segments/public_ip.spec')
-rwxr-xr-xtest/segments/public_ip.spec386
1 files changed, 0 insertions, 386 deletions
diff --git a/test/segments/public_ip.spec b/test/segments/public_ip.spec
deleted file mode 100755
index 19c3adbc..00000000
--- a/test/segments/public_ip.spec
+++ /dev/null
@@ -1,386 +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"
-
- # Test specific
- P9K_HOME=$(pwd)
- FOLDER=/tmp/powerlevel9k-test
- mkdir -p $FOLDER
- mkdir $FOLDER/sbin
- 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 fakeIfconfig() {
- local INTERFACE="${1}"
- [[ -z "${INTERFACE}" ]] && INTERFACE="tun0"
- # Fake ifconfig
- cat > $FOLDER/sbin/ifconfig <<EOF
-#!/usr/bin/env zsh
-
-if [[ "\$*" == "-l" ]]; then
- echo "lo0 gif0 stf0 EHC250 EHC253 tun1 tun0 ${INTERFACE} fw0 en0 en2 en1 p2p0 bridge0 utun0"
- exit 0
-fi
-
-if [[ "\$*" == "${INTERFACE}" ]]; then
- cat <<INNER
-${INTERFACE}: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
- inet 1.2.3.4 txqueuelen 1000 (Ethernet)
- RX packets 0 bytes 0 (0.0 B)
- RX errors 0 dropped 0 overruns 0 frame 0
- TX packets 0 bytes 0 (0.0 B)
- TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- device interrupt 16 memory 0xe8200000-e8220000
-INNER
- exit 0
-fi
-
-if [[ "\$#" == "0" ]]; then
- cat <<INNER
-docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
- inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
- ether 02:42:8f:5c:ed:51 txqueuelen 0 (Ethernet)
- RX packets 0 bytes 0 (0.0 B)
- RX errors 0 dropped 0 overruns 0 frame 0
- TX packets 0 bytes 0 (0.0 B)
- TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
-
-${INTERFACE}: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
- inet 1.2.3.4 txqueuelen 1000 (Ethernet)
- RX packets 0 bytes 0 (0.0 B)
- RX errors 0 dropped 0 overruns 0 frame 0
- TX packets 0 bytes 0 (0.0 B)
- TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- device interrupt 16 memory 0xe8200000-e8220000
-
-lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
- inet 127.0.0.1 netmask 255.0.0.0
- inet6 ::1 prefixlen 128 scopeid 0x10<host>
- loop txqueuelen 1000 (Local Loopback)
- RX packets 5136 bytes 328651 (320.9 KiB)
- RX errors 0 dropped 0 overruns 0 frame 0
- TX packets 5136 bytes 328651 (320.9 KiB)
- TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
-INNER
-fi
-EOF
- chmod +x $FOLDER/sbin/ifconfig
-}
-
-function fakeIp() {
- local INTERFACE1="${1}"
- [[ -z "${INTERFACE1}" ]] && INTERFACE1="tun0"
- local INTERFACE2="${2}"
- [[ -z "${INTERFACE2}" ]] && INTERFACE2="disabled-if2"
- cat > $FOLDER/sbin/ip <<EOF
-#!/usr/bin/env zsh
-
- if [[ "\$*" == 'link ls up' ]]; then
- cat <<INNER
-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: ${INTERFACE1}: <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: ${INTERFACE2}: <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
-INNER
- fi
-
- if [[ "\$*" =~ '-brief.*show' ]]; then
- cat <<INNER
-lo UNKNOWN 127.0.0.1/8
-${INTERFACE1} UP 1.2.3.4/24
-${INTERFACE2} UP 5.4.3.2/16
-docker0 DOWN 172.17.0.1/16
-INNER
- fi
-
- if [[ "\$*" =~ 'show ${INTERFACE1}' ]]; then
- cat <<INNER
-2: ${INTERFACE1}: <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
-INNER
- fi
-
- if [[ "\$*" =~ 'show ${INTERFACE2}' ]]; then
- cat <<INNER
-3: ${INTERFACE2}: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
- inet 1.2.3.4 brd 10.0.2.255 scope global eth0
- valid_lft forever preferred_lft forever
-INNER
- fi
-EOF
-
- chmod +x $FOLDER/sbin/ip
-}
-
-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
-}
-
-function testPublicIpSegmentWithVPNTurnedOnLinux() {
- local OS='linux'
-
- echo "1.2.3.4" > $POWERLEVEL9K_PUBLIC_IP_FILE
- local POWERLEVEL9K_PUBLIC_IP_VPN_INTERFACE="tun1"
-
- # Fake ip command
- fakeIp "tun1"
-
- assertEquals "%K{000} %F{007}(vpn) %F{007}1.2.3.4 " "$(prompt_public_ip left 1 false "$FOLDER")"
-}
-
-function testPublicIpSegmentWithVPNTurnedOnOsx() {
- typeset -F now
- now=$(date +%s)
-
- local OS='OSX'
-
- echo "1.2.3.4" > $POWERLEVEL9K_PUBLIC_IP_FILE
- local POWERLEVEL9K_PUBLIC_IP_VPN_INTERFACE="tun1"
-
- # Fake stat call
- function stat() {
- echo $now
- }
-
- # Fake ifconfig
- fakeIfconfig "tun1"
-
- assertEquals "%K{000} %F{007}(vpn) %F{007}1.2.3.4 " "$(prompt_public_ip left 1 false "$FOLDER")"
-
- unfunction stat
-}
-
-function testPublicIpSegmentWithVPNTurnedOnAndFuzzyMatchingOnOsx() {
- typeset -F now
- now=$(date +%s)
-
- local OS='OSX'
-
- echo "1.2.3.4" > $POWERLEVEL9K_PUBLIC_IP_FILE
- local POWERLEVEL9K_PUBLIC_IP_VPN_INTERFACE="tun"
-
- # Fake stat call
- function stat() {
- echo $now
- }
-
- # Fake ifconfig
- fakeIfconfig "tun3"
-
- assertEquals "%K{000} %F{007}(vpn) %F{007}1.2.3.4 " "$(prompt_public_ip left 1 false "$FOLDER")"
-
- unfunction stat
-}
-
-source shunit2/shunit2 \ No newline at end of file