--- /dev/null
+Return-Path: <pieter@praet.org>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+ by olra.theworths.org (Postfix) with ESMTP id B72F3431FB6\r
+ for <notmuch@notmuchmail.org>; Wed, 22 Feb 2012 10:56:50 -0800 (PST)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -0.7\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5\r
+ tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+ by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+ with ESMTP id Rfxo5Va9eIvv for <notmuch@notmuchmail.org>;\r
+ Wed, 22 Feb 2012 10:56:43 -0800 (PST)\r
+Received: from mail-wi0-f181.google.com (mail-wi0-f181.google.com\r
+ [209.85.212.181]) (using TLSv1 with cipher RC4-SHA (128/128 bits))\r
+ (No client certificate requested)\r
+ by olra.theworths.org (Postfix) with ESMTPS id 6B8DA431FAE\r
+ for <notmuch@notmuchmail.org>; Wed, 22 Feb 2012 10:56:43 -0800 (PST)\r
+Received: by mail-wi0-f181.google.com with SMTP id hi8so278196wib.26\r
+ for <notmuch@notmuchmail.org>; Wed, 22 Feb 2012 10:56:43 -0800 (PST)\r
+Received-SPF: pass (google.com: domain of pieter@praet.org designates\r
+ 10.216.131.23 as permitted sender) client-ip=10.216.131.23; \r
+Authentication-Results: mr.google.com;\r
+ spf=pass (google.com: domain of pieter@praet.org\r
+ designates 10.216.131.23 as permitted sender)\r
+ smtp.mail=pieter@praet.org\r
+Received: from mr.google.com ([10.216.131.23])\r
+ by 10.216.131.23 with SMTP id l23mr9740227wei.37.1329937003289\r
+ (num_hops = 1); Wed, 22 Feb 2012 10:56:43 -0800 (PST)\r
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\r
+ d=google.com; s=gamma;\r
+ h=mime-version:from:to:subject:date:message-id:x-mailer:in-reply-to\r
+ :references:x-gm-message-state;\r
+ bh=nyuJ3PKTjHS4QQeEC9Sl2X23ILZAhndliN5bhky3WQk=;\r
+ b=lH1mNReCtiR6HR0P2lY199xjgLvN5YAd2XUjfmUaIKS18Kuy6a/O/kD+FrkCA0C13+\r
+ kIkX1BwohIHbfEpsBAxYMwQncJ1hBZdTxxpg/dc/eF+7nIb5PZirlUMyZC61qMY5rFQf\r
+ alktoPo6gWloCD1B5I+vRXChuAO56JRvTnMAg=\r
+MIME-Version: 1.0\r
+Received: by 10.216.131.23 with SMTP id l23mr8044182wei.37.1329937003123;\r
+ Wed, 22 Feb 2012 10:56:43 -0800 (PST)\r
+Received: from localhost ([109.131.181.26])\r
+ by mx.google.com with ESMTPS id n5sm74947151wiw.7.2012.02.22.10.56.42\r
+ (version=TLSv1/SSLv3 cipher=OTHER);\r
+ Wed, 22 Feb 2012 10:56:42 -0800 (PST)\r
+From: Pieter Praet <pieter@praet.org>\r
+To: Notmuch Mail <notmuch@notmuchmail.org>\r
+Subject: [PATCH v3] test: emacs: new test "notmuch-search: change tags of all\r
+ matching messages"\r
+Date: Wed, 22 Feb 2012 19:54:27 +0100\r
+Message-Id: <1329936867-923-1-git-send-email-pieter@praet.org>\r
+X-Mailer: git-send-email 1.7.8.1\r
+In-Reply-To: <1329683908-5435-5-git-send-email-pieter@praet.org>\r
+References: <1329683908-5435-5-git-send-email-pieter@praet.org>\r
+X-Gm-Message-State:\r
+ ALoCoQkOvS/Tdv+UntzOHTLjOT7IL42tbL47E+MeBwtu2qpeKsXQkEYTcb1yPAfgbQ56jQaAm9bc\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+ <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Wed, 22 Feb 2012 18:56:50 -0000\r
+\r
+`notmuch-search-tag-all' (bound to "*") adds and removes tags\r
+to/from all messages which match the query used to populate the\r
+current search buffer.\r
+---\r
+ test/emacs | 38 ++++++++++++++++++++++++++++++++++++++\r
+ 1 files changed, 38 insertions(+), 0 deletions(-)\r
+\r
+diff --git a/test/emacs b/test/emacs\r
+index b74cfa9..d64dcd0 100755\r
+--- a/test/emacs\r
++++ b/test/emacs\r
+@@ -124,6 +124,44 @@ test_emacs "(notmuch-show \"$os_x_darwin_thread\")\r
+ output=$(notmuch search $os_x_darwin_thread | notmuch_search_sanitize)\r
+ test_expect_equal "$output" "thread:XXX 2009-11-18 [4/4] Jjgod Jiang, Alexander Botero-Lowry; [notmuch] Mac OS X/Darwin compatibility issues (inbox unread)"\r
+ \r
++\r
++test_begin_subtest "notmuch-search: change tags of all matching messages"\r
++old_tag="inbox"\r
++new_tag="xobni"\r
++filter="AND from:cworth"\r
++\r
++# Get initial tag counts and prevent false positives/negatives\r
++old_tag_count_1=$(notmuch count tag:"${old_tag}" "${filter}")\r
++new_tag_count_1=$(notmuch count tag:"${new_tag}" "${filter}")\r
++test "${old_tag_count_1}" = "0" && old_tag_count_1="Need >0 matches!"\r
++test "${new_tag_count_1}" = "0" || new_tag_count_1="Need 0 matches!"\r
++\r
++# Change tags of all matching messages and get tag counts\r
++test_emacs "(notmuch-search \"tag:${old_tag} ${filter}\")\r
++ (notmuch-test-wait)\r
++ (notmuch-search-tag-all \"-${old_tag}\" \"+${new_tag}\")"\r
++old_tag_count_2=$(notmuch count tag:"${old_tag}" "${filter}")\r
++new_tag_count_2=$(notmuch count tag:"${new_tag}" "${filter}")\r
++\r
++# Revert tag changes and get tag counts\r
++test_emacs "(notmuch-search \"tag:${new_tag} ${filter}\")\r
++ (notmuch-test-wait)\r
++ (notmuch-search-tag-all \"+${old_tag}\" \"-${new_tag}\")"\r
++old_tag_count_3=$(notmuch count tag:"${old_tag}" "${filter}")\r
++new_tag_count_3=$(notmuch count tag:"${new_tag}" "${filter}")\r
++\r
++# ... and verify the results\r
++output="\r
++before: old:${old_tag_count_1} new:${new_tag_count_1}\r
++after: old:${old_tag_count_2} new:${new_tag_count_2}\r
++restored: old:${old_tag_count_3} new:${new_tag_count_3}"\r
++expected="\r
++before: old:${old_tag_count_1} new:0\r
++after: old:0 new:${old_tag_count_1}\r
++restored: old:${old_tag_count_1} new:0"\r
++test_expect_equal "$output" "$expected"\r
++\r
++\r
+ test_begin_subtest "Message with .. in Message-Id:"\r
+ add_message [id]=123..456@example '[subject]="Message with .. in Message-Id"'\r
+ test_emacs '(notmuch-search "id:\"123..456@example\"")\r
+-- \r
+1.7.8.1\r
+\r