#!/usr/bin/env bash # # Copyright (c) 2005 Junio C Hamano # test_description='basic mbox support' . ./test-lib.sh mkdir -p $MAIL_DIR/some-mboxes/subdir $MAIL_DIR/database $MAIL_DIR/corpus # The Content-Length headers here include the final newline (added later). generate_message '[body]="Mbox message 1."' '[header]="Content-Length: 16"' "[dir]=corpus" generate_message '[body]="Mbox message 2. Longer."' '[header]="Content-Length: 24"' "[dir]=corpus" generate_message '[body]="Mbox message 3."' "[dir]=corpus" generate_message '[body]="Mbox message 4."' "[dir]=corpus" generate_message '[body]="Mbox message 5. Last message."' '[header]="Content-Length: 30"' "[dir]=corpus" MBOX1=$MAIL_DIR/some-mboxes/first.mbox declare -a starts lengths for x in $MAIL_DIR/corpus/*; do echo "From MAILER-DAEMON Sat Jan 3 01:05:34 1996" >> $MBOX1 starts+=(`wc -c $MBOX1 | cut -f 1 -d ' '`) cat $x >> $MBOX1 lengths+=(`wc -c $x | cut -f 1 -d ' '`) # Final newline echo >> $MBOX1 done notmuch config set database.path $MAIL_DIR/database notmuch config set new.scan mbox://$MAIL_DIR/some-mboxes test_begin_subtest "read a small mbox (5 messages)" output=$(NOTMUCH_NEW) test_expect_equal "$output" "Added 5 new messages to the database." test_begin_subtest "search" output=$(notmuch search '*' | notmuch_search_sanitize) test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Test message #1 (inbox unread) thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Test message #2 (inbox unread) thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Test message #3 (inbox unread) thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Test message #4 (inbox unread) thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Test message #5 (inbox unread)" test_begin_subtest "show (mboxcl)" output=$(notmuch show "Test message #1" | grep -o "filename:[^ ]*") test_expect_equal "$output" "filename:mbox://$MAIL_DIR/some-mboxes/first.mbox#${starts[0]}+${lengths[0]}" test_begin_subtest "show doesn't append an extra space at the end (mboxcl)" output=$(notmuch show --format=raw "Test message #1" ) original=$(cat $MAIL_DIR/corpus/msg-001) test_expect_equal "$output" "$original" test_begin_subtest "show (non-cl)" output=$(notmuch show "Test message #3" | grep -o "filename:[^ ]*") test_expect_equal "$output" "filename:mbox://$MAIL_DIR/some-mboxes/first.mbox#${starts[2]}+${lengths[2]}" test_begin_subtest "show doesn't append an extra space at the end (non-cl)" output=$(notmuch show --format=raw "Test message #3" ) original=$(cat $MAIL_DIR/corpus/msg-003) test_expect_equal "$output" "$original" test_done