X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=test%2FT095-address.sh;h=817be5380a45d9a98a7a6bbd2031269575dd13ba;hp=0d47c0d970a9713f28f1d3b55fe1c5ca9aa7b8e4;hb=1c390652455356c9acfea0eb982c688e2f09e47a;hpb=4176e527fceb2c1f7a0b263fd8baac88be6fab4c diff --git a/test/T095-address.sh b/test/T095-address.sh index 0d47c0d9..817be538 100755 --- a/test/T095-address.sh +++ b/test/T095-address.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash test_description='"notmuch address" in several variants' -. ./test-lib.sh +. $(dirname "$0")/test-lib.sh || exit 1 add_email_corpus @@ -25,7 +25,12 @@ Adrian Perez de Castro Israel Herraiz Mikhail Gusarov EOF -test_expect_equal_file OUTPUT EXPECTED +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "without --output" +notmuch address '*' >OUTPUT +# Use EXPECTED from previous subtest +test_expect_equal_file EXPECTED OUTPUT test_begin_subtest "--output=sender --format=json" notmuch address --output=sender --format=json '*' >OUTPUT @@ -48,7 +53,7 @@ cat <EXPECTED {"name": "Israel Herraiz", "address": "isra@herraiz.org", "name-addr": "Israel Herraiz "}, {"name": "Mikhail Gusarov", "address": "dottedmag@dottedmag.net", "name-addr": "Mikhail Gusarov "}] EOF -test_expect_equal_file OUTPUT EXPECTED +test_expect_equal_file EXPECTED OUTPUT test_begin_subtest "--output=recipients" notmuch address --output=recipients '*' >OUTPUT @@ -61,7 +66,7 @@ notmuch Keith Packard Mikhail Gusarov EOF -test_expect_equal_file OUTPUT EXPECTED +test_expect_equal_file EXPECTED OUTPUT test_begin_subtest "--output=sender --output=recipients" notmuch address --output=sender --output=recipients '*' >OUTPUT @@ -89,11 +94,235 @@ Adrian Perez de Castro Israel Herraiz Mikhail Gusarov EOF -test_expect_equal_file OUTPUT EXPECTED +test_expect_equal_file EXPECTED OUTPUT -test_begin_subtest "without --output" -notmuch address '*' >OUTPUT -# Use EXPECTED from previous subtest -test_expect_equal_file OUTPUT EXPECTED +test_begin_subtest "--output=sender --output=count" +notmuch address --output=sender --output=count '*' | sort -n >OUTPUT +cat <EXPECTED +1 Adrian Perez de Castro +1 Aron Griffis +1 Chris Wilson +1 François Boulogne +1 Ingmar Vanhassel +1 Israel Herraiz +1 Olivier Berger +1 Rolland Santimano +2 Alex Botero-Lowry +2 Jjgod Jiang +3 Stewart Smith +4 Alexander Botero-Lowry +4 Jan Janak +5 Lars Kellogg-Stedman +5 Mikhail Gusarov +7 Keith Packard +12 Carl Worth +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "--output=recipients --output=address" +notmuch address --output=recipients --output=address '*' >OUTPUT +cat <EXPECTED +allan@archlinux.org +aur-general@archlinux.org +olivier.berger@it-sudparis.eu +notmuch@notmuchmail.org +notmuch@notmuchmail.org +keithp@keithp.com +dottedmag@dottedmag.net +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "--output=sender --output=address --output=count" +notmuch address --output=sender --output=address --output=count '*' | sort -n >OUTPUT +cat <EXPECTED +1 agriffis@n01se.net +1 aperez@igalia.com +1 boulogne.f@gmail.com +1 chris@chris-wilson.co.uk +1 ingmar@exherbo.org +1 isra@herraiz.org +1 olivier.berger@it-sudparis.eu +1 rollandsantimano@yahoo.com +2 alex.boterolowry@gmail.com +2 gzjjgod@gmail.com +3 stewart@flamingspork.com +4 alex.boterolowry@gmail.com +4 jan@ryngle.com +5 dottedmag@dottedmag.net +5 lars@seas.harvard.edu +7 keithp@keithp.com +12 cworth@cworth.org +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "--output=count --format=json" +# Since the iteration order of GHashTable is not specified, we +# preprocess and sort the results to keep the order stable here. +notmuch address --output=count --format=json '*' | \ + sed -e 's/^\[//' -e 's/]$//' -e 's/,$//' | sort >OUTPUT +cat <EXPECTED +{"name": "Adrian Perez de Castro", "address": "aperez@igalia.com", "name-addr": "Adrian Perez de Castro ", "count": 1} +{"name": "Alex Botero-Lowry", "address": "alex.boterolowry@gmail.com", "name-addr": "Alex Botero-Lowry ", "count": 2} +{"name": "Alexander Botero-Lowry", "address": "alex.boterolowry@gmail.com", "name-addr": "Alexander Botero-Lowry ", "count": 4} +{"name": "Aron Griffis", "address": "agriffis@n01se.net", "name-addr": "Aron Griffis ", "count": 1} +{"name": "Carl Worth", "address": "cworth@cworth.org", "name-addr": "Carl Worth ", "count": 12} +{"name": "Chris Wilson", "address": "chris@chris-wilson.co.uk", "name-addr": "Chris Wilson ", "count": 1} +{"name": "François Boulogne", "address": "boulogne.f@gmail.com", "name-addr": "François Boulogne ", "count": 1} +{"name": "Ingmar Vanhassel", "address": "ingmar@exherbo.org", "name-addr": "Ingmar Vanhassel ", "count": 1} +{"name": "Israel Herraiz", "address": "isra@herraiz.org", "name-addr": "Israel Herraiz ", "count": 1} +{"name": "Jan Janak", "address": "jan@ryngle.com", "name-addr": "Jan Janak ", "count": 4} +{"name": "Jjgod Jiang", "address": "gzjjgod@gmail.com", "name-addr": "Jjgod Jiang ", "count": 2} +{"name": "Keith Packard", "address": "keithp@keithp.com", "name-addr": "Keith Packard ", "count": 7} +{"name": "Lars Kellogg-Stedman", "address": "lars@seas.harvard.edu", "name-addr": "Lars Kellogg-Stedman ", "count": 5} +{"name": "Mikhail Gusarov", "address": "dottedmag@dottedmag.net", "name-addr": "Mikhail Gusarov ", "count": 5} +{"name": "Olivier Berger", "address": "olivier.berger@it-sudparis.eu", "name-addr": "Olivier Berger ", "count": 1} +{"name": "Rolland Santimano", "address": "rollandsantimano@yahoo.com", "name-addr": "Rolland Santimano ", "count": 1} +{"name": "Stewart Smith", "address": "stewart@flamingspork.com", "name-addr": "Stewart Smith ", "count": 3} +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "--deduplicate=no --sort=oldest-first --output=sender" +notmuch address --deduplicate=no --sort=oldest-first --output=sender '*' >OUTPUT +cat <EXPECTED +Mikhail Gusarov +Mikhail Gusarov +Carl Worth +Lars Kellogg-Stedman +Mikhail Gusarov +Alex Botero-Lowry +Carl Worth +Lars Kellogg-Stedman +Mikhail Gusarov +Mikhail Gusarov +Keith Packard +Keith Packard +Keith Packard +Jan Janak +Jan Janak +Jan Janak +Israel Herraiz +Adrian Perez de Castro +Aron Griffis +Ingmar Vanhassel +Alex Botero-Lowry +Lars Kellogg-Stedman +Lars Kellogg-Stedman +Lars Kellogg-Stedman +Stewart Smith +Stewart Smith +Keith Packard +Keith Packard +Keith Packard +Stewart Smith +Jjgod Jiang +Jan Janak +Rolland Santimano +Alexander Botero-Lowry +Jjgod Jiang +Alexander Botero-Lowry +Alexander Botero-Lowry +Keith Packard +Alexander Botero-Lowry +Carl Worth +Carl Worth +Carl Worth +Carl Worth +Carl Worth +Carl Worth +Carl Worth +Carl Worth +Carl Worth +Carl Worth +Chris Wilson +Olivier Berger +François Boulogne +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "--deduplicate=no --sort=newest-first --output=sender --output=recipients" +notmuch address --deduplicate=no --sort=newest-first --output=sender --output=recipients path:foo/new >OUTPUT +cat <EXPECTED +Mikhail Gusarov +notmuch@notmuchmail.org +Mikhail Gusarov +notmuch@notmuchmail.org +Lars Kellogg-Stedman +notmuch@notmuchmail.org +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "--deduplicate=address --output=sender --output=recipients" +notmuch address --deduplicate=address --output=sender --output=recipients '*' | sort >OUTPUT +cat <EXPECTED +"Discussion about the Arch User Repository (AUR)" +Adrian Perez de Castro +Alexander Botero-Lowry +Allan McRae +Aron Griffis +Carl Worth +Chris Wilson +François Boulogne +Ingmar Vanhassel +Israel Herraiz +Jan Janak +Jjgod Jiang +Keith Packard +Lars Kellogg-Stedman +Mikhail Gusarov +Olivier Berger +Rolland Santimano +Stewart Smith +notmuch@notmuchmail.org +EOF +test_expect_equal_file EXPECTED OUTPUT + +generate_message '[from]="Foo Bar "' +generate_message '[from]="Foo Bar "' +generate_message '[from]="Foo Bar "' +generate_message '[from]="Bar "' +generate_message '[from]="Foo "' +generate_message '[from]=""' +generate_message '[from]="foo.bar@example.com"' +generate_message '[from]="Baz "' +generate_message '[from]="Foo Bar "' +generate_message '[from]="Baz "' +notmuch new > /dev/null + +test_begin_subtest "--deduplicate=no --output=sender" +notmuch address --deduplicate=no --output=sender from:example.com | sort >OUTPUT +cat <EXPECTED +Bar +Baz +Baz +Foo +Foo Bar +Foo Bar +Foo Bar +Foo Bar +foo.bar@example.com +foo.bar@example.com +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "--deduplicate=mailbox --output=sender --output=count" +notmuch address --deduplicate=mailbox --output=sender --output=count from:example.com | sort -n >OUTPUT +cat <EXPECTED +1 Bar +1 Foo +1 Foo Bar +1 Foo Bar +2 Baz +2 Foo Bar +2 foo.bar@example.com +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "--deduplicate=address --output=sender --output=count" +notmuch address --deduplicate=address --output=sender --output=count from:example.com | sort -n >OUTPUT +cat <EXPECTED +3 Baz +7 Foo Bar +EOF +test_expect_equal_file EXPECTED OUTPUT test_done