Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id CF11A40D145 for ; Wed, 13 Oct 2010 05:14:40 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: -1.9 X-Spam-Level: X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id M52nZbZCb4xG for ; Wed, 13 Oct 2010 05:14:25 -0700 (PDT) Received: from max.feld.cvut.cz (max.feld.cvut.cz [147.32.192.36]) by olra.theworths.org (Postfix) with ESMTP id 4B57640D146 for ; Wed, 13 Oct 2010 05:14:13 -0700 (PDT) Received: from localhost (unknown [192.168.200.4]) by max.feld.cvut.cz (Postfix) with ESMTP id 2199E19F33E5; Wed, 13 Oct 2010 14:14:12 +0200 (CEST) X-Virus-Scanned: IMAP AMAVIS Received: from max.feld.cvut.cz ([192.168.200.1]) by localhost (styx.feld.cvut.cz [192.168.200.4]) (amavisd-new, port 10044) with ESMTP id nktoBPHYVgZj; Wed, 13 Oct 2010 14:14:10 +0200 (CEST) Received: from imap.feld.cvut.cz (imap.feld.cvut.cz [147.32.192.34]) by max.feld.cvut.cz (Postfix) with ESMTP id 0E8CA19F33E0; Wed, 13 Oct 2010 14:14:10 +0200 (CEST) Received: from steelpick.2x.cz (note-sojka.felk.cvut.cz [147.32.86.30]) (Authenticated sender: sojkam1) by imap.feld.cvut.cz (Postfix) with ESMTPSA id 08CA115C082; Wed, 13 Oct 2010 14:14:10 +0200 (CEST) Received: from wsh by steelpick.2x.cz with local (Exim 4.72) (envelope-from ) id 1P60Dh-0005VS-N9; Wed, 13 Oct 2010 14:14:09 +0200 From: Michal Sojka To: notmuch@notmuchmail.org Subject: [PATCH 4/4] Tests for maildir synchronization Date: Wed, 13 Oct 2010 14:13:58 +0200 Message-Id: <1286972038-21064-5-git-send-email-sojkam1@fel.cvut.cz> X-Mailer: git-send-email 1.7.1.3.g75e44 In-Reply-To: <1286972038-21064-1-git-send-email-sojkam1@fel.cvut.cz> References: <1286972038-21064-1-git-send-email-sojkam1@fel.cvut.cz> X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Oct 2010 12:14:41 -0000 Signed-off-by: Michal Sojka --- test/maildir-sync | 216 +++++++++++++++++++++++++++++++++++++++++++++++++++++ test/notmuch-test | 2 +- test/test-lib.sh | 14 +++- 3 files changed, 229 insertions(+), 3 deletions(-) create mode 100755 test/maildir-sync diff --git a/test/maildir-sync b/test/maildir-sync new file mode 100755 index 0000000..a5f8c36 --- /dev/null +++ b/test/maildir-sync @@ -0,0 +1,216 @@ +#!/bin/bash + +test_description="Test maildir synchronization" + +. ./test-lib.sh + +filter_show() { + sed -e 's/, /,\n/g'|sed -e "s|${MAIL_DIR}/||" -e '/^"tags"/d' + echo +} + +cat >> "$NOTMUCH_CONFIG" < expected < actual && +test_cmp expected actual +#emacs --eval "(gdb \"gdb --annotate=3 --args $(which notmuch) new\")" +' +cat > expected < actual && +test_cmp expected actual +' +cat > expected < actual && +test_cmp expected actual +' +cat > expected < actual && +test_cmp expected actual +' +cat > expected < actual && +test_cmp expected actual +' +cat > expected < actual && +test_cmp expected actual +' +test_expect_success 'Tag the seen messages as replied' ' +notmuch tag +replied -inbox tag:inbox and not tag:unread +' + +cat > expected < actual && +test_cmp expected actual +' +cat < show-expected +[[[{"id": "msg-001@notmuch-test-suite", +"match": true, +"filename": "msg-001:2,RS", +"timestamp": 946728000, +"date_relative": "2000-01-01", +"headers": {"Subject": "test message", +"From": "Notmuch Test Suite ", +"To": "Notmuch Test Suite ", +"Cc": "", +"Bcc": "", +"Date": "Sat, +01 Jan 2000 12:00:00 -0000"}, +"body": [{"id": 1, +"content-type": "text/plain", +"content": "This is just a test message (#1)\n"}]}, +[]]]] +EOF + +test_expect_success 'Renamed message can be shown without running notmuch new' ' +notmuch show --format=json id:msg-001@notmuch-test-suite | filter_show > show-actual && +test_cmp show-expected show-actual +' + +test_expect_success 'Test that we can reply to the renamed message' ' +notmuch reply id:msg-001@notmuch-test-suite +' + +echo "No new mail." > expected +test_expect_success 'No rename should be detected by notmuch new' ' +increment_mtime "$(dirname "${gen_msg_filename}")" && +notmuch new > actual && +test_cmp expected actual +' +test_expect_success "Add a message to new/ without info" ' +generate_message [subject]="\"test message 3\"" [date]="\"Sat, 01 Jan 2000 12:00:00 -0000\"" [dir]=new && +NOTMUCH_NEW > actual && +test_cmp - actual < actual && +test_cmp - actual < expected && +notmuch show id:$gen_msg_id|grep -o "filename:.*$" > actual && +test_cmp expected actual && +test -f "$gen_msg_filename" +' +test_expect_success "Check that the message was not renamed" ' +ls "${MAIL_DIR}/new" > actual && +test_cmp - actual < actual && +test_cmp - actual < actual && +test_cmp - actual < actual && +test_cmp - actual < actual +test_cmp - actual < actual && +test_cmp - actual < actual && +test_cmp - actual < actual && +test_cmp - actual < actual && +test_cmp - actual </dev/null 2>/dev/null diff --git a/test/test-lib.sh b/test/test-lib.sh index 5f7fa14..2036669 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -237,6 +237,12 @@ increment_mtime () # Generate the message in directory 'directory/of/choice' within # the mail store. The directory will be created if necessary. # +# [filename]=name +# +# Store the message in file 'name'. The default is to store it +# in 'msg-', where is three-digit number of the +# message. +# # [body]=text # # Text to use as the body of the email message @@ -273,10 +279,14 @@ generate_message () local additional_headers gen_msg_cnt=$((gen_msg_cnt + 1)) - gen_msg_name=msg-$(printf "%03d" $gen_msg_cnt) + if [ -z "${template[filename]}" ]; then + gen_msg_name="msg-$(printf "%03d" $gen_msg_cnt)" + else + gen_msg_name=${template[filename]} + fi if [ -z "${template[id]}" ]; then - gen_msg_id="${gen_msg_name}@notmuch-test-suite" + gen_msg_id="${gen_msg_name%:2,*}@notmuch-test-suite" else gen_msg_id="${template[id]}" fi -- 1.7.1.3.g75e44