mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-22 17:34:54 +01:00
test: emacs: test notmuch-wash-subject-to-* functions
Signed-off-by: Jani Nikula <jani@nikula.org>
This commit is contained in:
parent
f893d31762
commit
02052781a9
2 changed files with 139 additions and 0 deletions
138
test/emacs-subject-to-filename
Executable file
138
test/emacs-subject-to-filename
Executable file
|
@ -0,0 +1,138 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
test_description="emacs: mail subject to filename"
|
||||
. test-lib.sh
|
||||
|
||||
# emacs server can't be started in a child process with $(test_emacs ...)
|
||||
test_emacs '(ignore)'
|
||||
|
||||
# test notmuch-wash-subject-to-patch-sequence-number (subject)
|
||||
test_begin_subtest "no patch sequence number"
|
||||
output=$(test_emacs '(notmuch-wash-subject-to-patch-sequence-number
|
||||
"[PATCH] A normal patch subject without numbers")'
|
||||
)
|
||||
test_expect_equal "$output" ""
|
||||
|
||||
test_begin_subtest "patch sequence number #1"
|
||||
output=$(test_emacs '(notmuch-wash-subject-to-patch-sequence-number
|
||||
"[PATCH 2/3] A most regular patch subject")'
|
||||
)
|
||||
test_expect_equal "$output" 2
|
||||
|
||||
test_begin_subtest "patch sequence number #2"
|
||||
output=$(test_emacs '(notmuch-wash-subject-to-patch-sequence-number
|
||||
" [dummy list prefix] [RFC PATCH v2 13/42] Special prefixes")'
|
||||
)
|
||||
test_expect_equal "$output" 13
|
||||
|
||||
test_begin_subtest "patch sequence number #3"
|
||||
output=$(test_emacs '(notmuch-wash-subject-to-patch-sequence-number
|
||||
"[PATCH 2/3] [PATCH 032/037] use the last prefix")'
|
||||
)
|
||||
test_expect_equal "$output" 32
|
||||
|
||||
test_begin_subtest "patch sequence number #4"
|
||||
output=$(test_emacs '(notmuch-wash-subject-to-patch-sequence-number
|
||||
"[dummy list prefix] [PATCH 2/3] PATCH 3/3] do not use a broken prefix")'
|
||||
)
|
||||
test_expect_equal "$output" 2
|
||||
|
||||
test_begin_subtest "patch sequence number #5"
|
||||
output=$(test_emacs '(notmuch-wash-subject-to-patch-sequence-number
|
||||
"[RFC][PATCH 3/5][PATCH 4/5][PATCH 5/5] A made up test")'
|
||||
)
|
||||
test_expect_equal "$output" 5
|
||||
|
||||
test_begin_subtest "patch sequence number #6"
|
||||
output=$(test_emacs '(notmuch-wash-subject-to-patch-sequence-number
|
||||
"[PATCH 2/3] this -> [PATCH 3/3] is not a prefix anymore [nor this 4/4]")'
|
||||
)
|
||||
test_expect_equal "$output" 2
|
||||
|
||||
test_begin_subtest "patch sequence number #7"
|
||||
output=$(test_emacs '(notmuch-wash-subject-to-patch-sequence-number
|
||||
"[liberally accept crapola right before123/456and after] the numbers")'
|
||||
)
|
||||
test_expect_equal "$output" 123
|
||||
|
||||
# test notmuch-wash-subject-to-filename (subject &optional maxlen)
|
||||
test_begin_subtest "filename #1"
|
||||
output=$(test_emacs '(notmuch-wash-subject-to-filename
|
||||
"just a subject line")'
|
||||
)
|
||||
test_expect_equal $output '"just-a-subject-line"'
|
||||
|
||||
test_begin_subtest "filename #2"
|
||||
output=$(test_emacs '(notmuch-wash-subject-to-filename
|
||||
" [any] [prefixes are ] [removed!] from the subject")'
|
||||
)
|
||||
test_expect_equal $output '"from-the-subject"'
|
||||
|
||||
test_begin_subtest "filename #3"
|
||||
output=$(test_emacs '(notmuch-wash-subject-to-filename
|
||||
" leading and trailing space ")'
|
||||
)
|
||||
test_expect_equal $output '"leading-and-trailing-space"'
|
||||
|
||||
test_begin_subtest "filename #4"
|
||||
output=$(test_emacs '(notmuch-wash-subject-to-filename
|
||||
"!# leading ()// &%, and in between_and_trailing garbage ()(&%%")'
|
||||
)
|
||||
test_expect_equal $output '"-leading-and-in-between_and_trailing-garbage"'
|
||||
|
||||
test_begin_subtest "filename #5"
|
||||
output=$(test_emacs '(notmuch-wash-subject-to-filename
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.-_01234567890")'
|
||||
)
|
||||
test_expect_equal $output '"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.-_01234567890"'
|
||||
|
||||
test_begin_subtest "filename #6"
|
||||
output=$(test_emacs '(notmuch-wash-subject-to-filename
|
||||
"sequences of ... are squashed and trailing are removed ...")'
|
||||
)
|
||||
test_expect_equal $output '"sequences-of-.-are-squashed-and-trailing-are-removed"'
|
||||
|
||||
test_begin_subtest "filename #7"
|
||||
output=$(test_emacs '(notmuch-wash-subject-to-filename
|
||||
"max length test" 1)'
|
||||
)
|
||||
test_expect_equal $output '"m"'
|
||||
|
||||
test_begin_subtest "filename #8"
|
||||
output=$(test_emacs '(notmuch-wash-subject-to-filename
|
||||
"max length test /&(/%&/%%&¤%¤" 20)'
|
||||
)
|
||||
test_expect_equal $output '"max-length-test"'
|
||||
|
||||
test_begin_subtest "filename #9"
|
||||
output=$(test_emacs '(notmuch-wash-subject-to-filename
|
||||
"[a prefix] [is only separated] by [spaces], so \"by\" is not okay!")'
|
||||
)
|
||||
test_expect_equal $output '"by-spaces-so-by-is-not-okay"'
|
||||
|
||||
# test notmuch-wash-subject-to-patch-filename (subject)
|
||||
test_begin_subtest "patch filename #1"
|
||||
output=$(test_emacs '(notmuch-wash-subject-to-patch-filename
|
||||
"[RFC][PATCH 099/100] rewrite notmuch")'
|
||||
)
|
||||
test_expect_equal "$output" '"0099-rewrite-notmuch.patch"'
|
||||
|
||||
test_begin_subtest "patch filename #2"
|
||||
output=$(test_emacs '(notmuch-wash-subject-to-patch-filename
|
||||
"[RFC PATCH v1] has no patch number, default to 1")'
|
||||
)
|
||||
test_expect_equal "$output" '"0001-has-no-patch-number-default-to-1.patch"'
|
||||
|
||||
test_begin_subtest "patch filename #3"
|
||||
output=$(test_emacs '(notmuch-wash-subject-to-patch-filename
|
||||
"[PATCH 4/5] the maximum length of a patch filename is 52 + patch sequence number + .patch extension")'
|
||||
)
|
||||
test_expect_equal "$output" '"0004-the-maximum-length-of-a-patch-filename-is-52-patch-s.patch"'
|
||||
|
||||
test_begin_subtest "patch filename #4"
|
||||
output=$(test_emacs '(notmuch-wash-subject-to-patch-filename
|
||||
"[PATCH 4/5] the maximum length of a patch filename is 52 + patchh ! sequence number + .patch extension, *before* trimming trailing - and .")'
|
||||
)
|
||||
test_expect_equal "$output" '"0004-the-maximum-length-of-a-patch-filename-is-52-patchh.patch"'
|
||||
|
||||
test_done
|
|
@ -42,6 +42,7 @@ TESTS="
|
|||
encoding
|
||||
emacs
|
||||
emacs-large-search-buffer
|
||||
emacs-subject-to-filename
|
||||
maildir-sync
|
||||
crypto
|
||||
symbol-hiding
|
||||
|
|
Loading…
Reference in a new issue