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

109 строки
3.0 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. rm -rf mwtesttmp
  16. XDG_CONFIG_HOME=mwtesttmp/config \
  17. MAILDIR=mwtesttmp/share/mail \
  18. XDG_CACHE_HOME=mwtesttmp/cache \
  19. source ../bin/mw
  20. export NOTMUCH_CONFIG=mwtesttmp/config/notmuch-config
  21. export mwname="real name"
  22. export mwaddr="full.addr@gmail.com"
  23. export mwlogin="$mwaddr"
  24. export mailboxes="[Gmail]/INBOX"
  25. export mwshare=$PWD/../share
  26. function pass() { return 0; }
  27. export pass
  28. }
  29. teardown()
  30. {
  31. if [ -z "$TEST_FUNCTION" ]
  32. then
  33. rm -rf mwtesttmp
  34. fi
  35. }
  36. #1
  37. @test "check config" {
  38. [ "$mwmbsyncrc" = "mwtesttmp/config/isync/mbsyncrc" ]
  39. [ "$mwmsmtprc" = "mwtesttmp/config/msmtp/config" ]
  40. }
  41. #2
  42. @test "add online" {
  43. mwtype="online" run _mwadd
  44. [ -f mwtesttmp/config/mutt/muttrc ]
  45. [ -f mwtesttmp/config/mutt/accounts/1-$mwaddr.mwonofftype.online.muttrc ]
  46. [ "$(cat mwtesttmp/config/isync/mbsyncrc | sed -ne '/^\s*\w/p')" = "" ]
  47. [ ! "$(cat mwtesttmp/config/msmtp/config | sed -ne '/^account/p')" = "" ]
  48. [ ! -f mwtesttmp/config/notmuch-config ]
  49. }
  50. #3
  51. @test "add offline unsuccessful" {
  52. export mailboxes="[Gmail]/OTHER"
  53. mwtype="offline" run _mwadd
  54. [ -f mwtesttmp/config/mutt/muttrc ]
  55. [ -d mwtesttmp/config/mutt/accounts ]
  56. [ ! -f mwtesttmp/config/mutt/accounts/1-$mwaddr.mwonofftype.offline.muttrc ]
  57. [ "$(cat mwtesttmp/config/isync/mbsyncrc | sed -ne '/^\s*\w/p')" = "" ]
  58. [ "$(cat mwtesttmp/config/msmtp/config | sed -ne '/^account/p')" = "" ]
  59. [ ! -f mwtesttmp/config/notmuch-config ]
  60. }
  61. #4
  62. @test "add offline successfully" {
  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. [ -f mwtesttmp/config/notmuch-config ]
  68. cat mwtesttmp/config/isync/mbsyncrc | sed -ne '/^\s*\w/p'
  69. [ ! "$(cat mwtesttmp/config/isync/mbsyncrc | sed -ne '/^\s*\w/p')" = "" ]
  70. [ ! "$(cat mwtesttmp/config/msmtp/config | sed -ne '/^account/p')" = "" ]
  71. run _mwlist
  72. [ "$(echo $lines | awk '{print $2}')" = "$mwaddr" ]
  73. }
  74. #5
  75. @test "delete account" {
  76. mwtype="online" run _mwadd
  77. mwtype="offline" run _mwadd
  78. mwpick="1" _mwpick delete && _mwdelete
  79. [ ! -f mwtesttmp/config/mutt/accounts/1-$mwaddr.mwonofftype.online.muttrc ]
  80. [ ! "$(cat mwtesttmp/config/isync/mbsyncrc | sed -ne '/^\s*\w/p')" = "" ]
  81. [ ! "$(cat mwtesttmp/config/msmtp/config | sed -ne '/^account/p')" = "" ]
  82. }
  83. #6
  84. @test "cron" {
  85. mwtype="online" run _mwadd
  86. function pgrep() { return 0; }
  87. export pgrep
  88. function crontab() { echo 'none'; }
  89. export crontab
  90. mwcronminutes=99 run _mwcron
  91. chkline="${lines[2]}"
  92. [ "${chkline::14}" = "Cronjob added." ]
  93. function crontab() { echo 'mailsync'; }
  94. export crontab
  95. mwcronremove=y run _mwcron
  96. chkline="${lines[1]}"
  97. [ "${chkline#*turned}" = " off." ]
  98. }