Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

129 строки
3.4 KiB

  1. #!/usr/bin/env bats
  2. # needs:
  3. # bash-bats
  4. #
  5. # run with:
  6. # bats --tap test_mw.bats
  7. run_only_test() {
  8. if [ "$BATS_TEST_NUMBER" -ne "$1" ]; then
  9. skip
  10. fi
  11. }
  12. #these are called for every test
  13. setup()
  14. {
  15. # run_only_test 7
  16. rm -rf mwtesttmp
  17. XDG_CONFIG_HOME=mwtesttmp/config \
  18. MAILDIR=mwtesttmp/share/mail \
  19. XDG_CACHE_HOME=mwtesttmp/cache \
  20. prefix="$PWD" \
  21. source ../bin/mw
  22. export NOTMUCH_CONFIG=mwtesttmp/config/notmuch-config
  23. export mwname="real name"
  24. export mwaddr="full.addr@gmail.com"
  25. export mwlogin="$mwaddr"
  26. export mwmailboxes="[Gmail]/INBOX"
  27. export mwshare=$PWD/../share
  28. function pass() { return 0; }
  29. export pass
  30. function _mwcheckinternet() { return 0; }
  31. export _mwcheckinternet
  32. function pgrep() { return 0; }
  33. export pgrep
  34. function crontab() { echo 'none'; }
  35. export crontab
  36. function _mwsyncandnotify() { echo "$mwaddr"; }
  37. export _mwsyncandnotify
  38. }
  39. teardown()
  40. {
  41. if [ -z "$TEST_FUNCTION" ]
  42. then
  43. rm -rf mwtesttmp
  44. fi
  45. }
  46. #1
  47. @test "check config" {
  48. [ "$mwmbsyncrc" = "mwtesttmp/config/isync/mbsyncrc" ]
  49. [ "$mwmsmtprc" = "mwtesttmp/config/msmtp/config" ]
  50. }
  51. #2
  52. @test "add online" {
  53. mwtype="online" run _mwadd
  54. [ -f mwtesttmp/config/mutt/muttrc ]
  55. [ -f mwtesttmp/config/mutt/accounts/1-$mwaddr.mwonofftype.online.muttrc ]
  56. [ "$(cat mwtesttmp/config/isync/mbsyncrc | sed -ne '/^\s*\w/p')" = "" ]
  57. [ ! "$(cat mwtesttmp/config/msmtp/config | sed -ne '/^account/p')" = "" ]
  58. [ ! -f mwtesttmp/config/notmuch-config ]
  59. }
  60. #3
  61. @test "add offline unsuccessful" {
  62. export mwmailboxes="[Gmail]/OTHER"
  63. mwtype="offline" run _mwadd
  64. [ -f mwtesttmp/config/mutt/muttrc ]
  65. [ -d mwtesttmp/config/mutt/accounts ]
  66. [ ! -f mwtesttmp/config/mutt/accounts/1-$mwaddr.mwonofftype.offline.muttrc ]
  67. [ "$(cat mwtesttmp/config/isync/mbsyncrc | sed -ne '/^\s*\w/p')" = "" ]
  68. [ "$(cat mwtesttmp/config/msmtp/config | sed -ne '/^account/p')" = "" ]
  69. [ ! -f mwtesttmp/config/notmuch-config ]
  70. }
  71. #4
  72. @test "add offline successfully" {
  73. mwtype="offline" run _mwadd
  74. [ -f mwtesttmp/config/mutt/muttrc ]
  75. [ -d mwtesttmp/config/mutt/accounts ]
  76. [ -f mwtesttmp/config/mutt/accounts/1-$mwaddr.mwonofftype.offline.muttrc ]
  77. [ -f mwtesttmp/config/notmuch-config ]
  78. cat mwtesttmp/config/isync/mbsyncrc | sed -ne '/^\s*\w/p'
  79. [ ! "$(cat mwtesttmp/config/isync/mbsyncrc | sed -ne '/^\s*\w/p')" = "" ]
  80. [ ! "$(cat mwtesttmp/config/msmtp/config | sed -ne '/^account/p')" = "" ]
  81. run _mwlist
  82. [ "$(echo $lines | awk '{print $2}')" = "$mwaddr" ]
  83. }
  84. #5
  85. @test "delete account" {
  86. mwtype="online" run _mwadd
  87. mwtype="offline" run _mwadd
  88. pick_delete()
  89. {
  90. _mwpick delete && _mwdelete
  91. }
  92. export pick_delete
  93. mwpick="1" run pick_delete
  94. [ ! -f mwtesttmp/config/mutt/accounts/1-$mwaddr.mwonofftype.online.muttrc ]
  95. [ ! "$(cat mwtesttmp/config/isync/mbsyncrc | sed -ne '/^\s*\w/p')" = "" ]
  96. [ ! "$(cat mwtesttmp/config/msmtp/config | sed -ne '/^account/p')" = "" ]
  97. }
  98. #6
  99. @test "cron" {
  100. mwcronminutes=99 run _mwcron
  101. chkline="${lines[2]}"
  102. [ "${chkline::14}" = "Cronjob added." ]
  103. function crontab() { echo 'mw sync'; }
  104. export crontab
  105. mwcronremove=y run _mwcron
  106. chkline="${lines[1]}"
  107. [ "${chkline#*turned}" = " off." ]
  108. }
  109. #7
  110. @test "sync" {
  111. mwtype="offline" run _mwadd
  112. function pgrep() { [ "$1" = "-u" ] && return 0 || return 1; }
  113. export pgrep
  114. run _mwsync
  115. [ "${lines// /}" = "full.addr@gmail.com" ]
  116. }