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

146 строки
4.2 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 2
  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 _mwcheckcert() { return 0; }
  33. export _mwcheckcert
  34. function pgrep() { return 0; }
  35. export pgrep
  36. function crontab() { echo 'none'; }
  37. export crontab
  38. function _mwsyncandnotify() { echo "$mwaddr"; }
  39. export _mwsyncandnotify
  40. }
  41. teardown()
  42. {
  43. if [ -z "$TEST_FUNCTION" ]
  44. then
  45. rm -rf mwtesttmp
  46. fi
  47. }
  48. # 1
  49. @test "check config" {
  50. [ "$mwmbsyncrc" = "mwtesttmp/config/isync/mbsyncrc" ]
  51. [ "$mwmsmtprc" = "mwtesttmp/config/msmtp/config" ]
  52. }
  53. # 2
  54. @test "add online" {
  55. mwtype="online" run _mwadd
  56. [ -f mwtesttmp/config/mutt/muttrc ]
  57. [ -f mwtesttmp/config/mutt/accounts/1-$mwaddr.mwonofftype.online.muttrc ]
  58. [ "$(cat mwtesttmp/config/isync/mbsyncrc | sed -ne '/^\s*\w/p')" = "" ]
  59. [ "$(cat mwtesttmp/config/msmtp/config | sed -ne '/^account/p')" = "" ]
  60. [ ! "$(cat mwtesttmp/config/mutt/accounts/1-$mwaddr.mwonofftype.online.muttrc | sed -ne '/smtp_url/p')" = "" ]
  61. [ ! -f mwtesttmp/config/notmuch-config ]
  62. }
  63. # 3
  64. @test "add offline unsuccessful" {
  65. export mwmailboxes="[Gmail]/OTHER"
  66. mwtype="offline" run _mwadd
  67. [ -f mwtesttmp/config/mutt/muttrc ]
  68. [ -d mwtesttmp/config/mutt/accounts ]
  69. [ ! -f mwtesttmp/config/mutt/accounts/1-$mwaddr.mwonofftype.offline.muttrc ]
  70. [ "$(cat mwtesttmp/config/isync/mbsyncrc | sed -ne '/^\s*\w/p')" = "" ]
  71. [ "$(cat mwtesttmp/config/msmtp/config | sed -ne '/^account/p')" = "" ]
  72. [ ! -f mwtesttmp/config/notmuch-config ]
  73. }
  74. # 4
  75. @test "add offline successfully" {
  76. mwtype="offline" run _mwadd
  77. [ -f mwtesttmp/config/mutt/muttrc ]
  78. [ -d mwtesttmp/config/mutt/accounts ]
  79. [ -f mwtesttmp/config/mutt/accounts/1-$mwaddr.mwonofftype.offline.muttrc ]
  80. [ -f mwtesttmp/config/notmuch-config ]
  81. [ ! "$(cat mwtesttmp/config/isync/mbsyncrc | sed -ne '/^\s*\w/p')" = "" ]
  82. [ ! "$(cat mwtesttmp/config/msmtp/config | sed -ne '/^account/p')" = "" ]
  83. [ "$(cat mwtesttmp/config/mutt/accounts/1-$mwaddr.mwonofftype.online.muttrc | sed -ne '/smtp_url/p')" = "" ]
  84. run _mwlist
  85. [ "$(echo $lines | awk '{print $2}')" = "$mwaddr" ]
  86. }
  87. # 5
  88. @test "delete account" {
  89. mwtype="online" run _mwadd
  90. mwtype="offline" run _mwadd
  91. pick_delete()
  92. {
  93. _mwpick delete && _mwdelete
  94. }
  95. export pick_delete
  96. mwpick="1" run pick_delete
  97. [ ! -f mwtesttmp/config/mutt/accounts/1-$mwaddr.mwonofftype.online.muttrc ]
  98. [ ! "$(cat mwtesttmp/config/isync/mbsyncrc | sed -ne '/^\s*\w/p')" = "" ]
  99. [ ! "$(cat mwtesttmp/config/msmtp/config | sed -ne '/^account/p')" = "" ]
  100. }
  101. # 6
  102. @test "cron" {
  103. mwcronminutes=99 run _mwcron
  104. chkline="${lines[2]}"
  105. [ "${chkline::14}" = "Cronjob added." ]
  106. function crontab() { echo 'mw sync'; }
  107. export crontab
  108. mwcronremove=y run _mwcron
  109. chkline="${lines[1]}"
  110. [ "${chkline#*turned}" = " off." ]
  111. }
  112. # 7
  113. @test "sync" {
  114. mwtype="offline" run _mwadd
  115. function pgrep() { [ "$1" = "-u" ] && return 0 || return 1; }
  116. export pgrep
  117. run _mwsync
  118. [ "${lines// /}" = "full.addr@gmail.com" ]
  119. }
  120. # 8
  121. @test "add pop" {
  122. export mwaddr="full.addr@chello.at"
  123. mwtype="offline" run _mwadd
  124. [ -f mwtesttmp/config/mutt/muttrc ]
  125. [ -d mwtesttmp/config/mutt/accounts ]
  126. [ -f mwtesttmp/config/mutt/accounts/1-$mwaddr.mwonofftype.offline.muttrc ]
  127. [ -f mwtesttmp/config/notmuch-config ]
  128. [ ! "$(cat mwtesttmp/config/msmtp/config | sed -ne '/^account/p')" = "" ]
  129. [ ! "$(cat mwtesttmp/config/getmail/$mwaddr | sed -ne '/^\s*\w/p')" = "" ]
  130. run _mwlist
  131. [ "$(echo $lines | awk '{print $2}')" = "$mwaddr" ]
  132. }