mirror of
https://github.com/mjl-/mox.git
synced 2024-12-26 08:23:48 +03:00
36 lines
1.1 KiB
Go
36 lines
1.1 KiB
Go
|
package message
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestThreadSubject(t *testing.T) {
|
||
|
check := func(s, expBase string, expResp bool) {
|
||
|
t.Helper()
|
||
|
|
||
|
base, isResp := ThreadSubject(s, false)
|
||
|
if base != expBase || isResp != expResp {
|
||
|
t.Fatalf("got base %q, resp %v, expected %q %v for subject %q", base, isResp, expBase, expResp, s)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
check("test", "test", false)
|
||
|
check(" a b\tc\r\n d\t", "a b c d", false)
|
||
|
check("test (fwd) (fwd) ", "test", true)
|
||
|
check("re: test", "test", true)
|
||
|
check("fw: test", "test", true)
|
||
|
check("fwd: test", "test", true)
|
||
|
check("fwd [tag] Test", "fwd [tag] test", false)
|
||
|
check("[list] re: a b c\t", "a b c", true)
|
||
|
check("[list] fw: a b c", "a b c", true)
|
||
|
check("[tag1][tag2] [tag3]\t re: a b c", "a b c", true)
|
||
|
check("[tag1][tag2] [tag3]\t re: a \u0000b c", "", true)
|
||
|
check("[list] fw:[tag] a b c", "a b c", true)
|
||
|
check("[list] re: [list] fwd: a b c\t", "a b c", true)
|
||
|
check("[fwd: a b c]", "a b c", true)
|
||
|
check("[fwd: [fwd: a b c]]", "a b c", true)
|
||
|
check("[fwd: [list] re: a b c]", "a b c", true)
|
||
|
check("[nonlist]", "[nonlist]", false)
|
||
|
check("fwd [list]:", "", true)
|
||
|
}
|