diff options
| author | David Bremner <david@tethera.net> | 2016-06-12 22:05:50 -0300 |
|---|---|---|
| committer | David Bremner <david@tethera.net> | 2016-09-21 18:14:24 -0300 |
| commit | b8bb6d796458732622f80464dd808b3e02f57d9d (patch) | |
| tree | b9c301e7aeb3ddb4e9b773eaedc9ea24ee302611 /test | |
| parent | 8b03ee1d5a310f82718281362d105ff09e30148f (diff) | |
lib: basic message-property API
Initially, support get, set and removal of single key/value pair, as
well as removing all properties.
Diffstat (limited to 'test')
| -rwxr-xr-x | test/T610-message-property.sh | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/test/T610-message-property.sh b/test/T610-message-property.sh new file mode 100755 index 00000000..0217950f --- /dev/null +++ b/test/T610-message-property.sh @@ -0,0 +1,84 @@ +#!/usr/bin/env bash +test_description="message property API" + +. ./test-lib.sh || exit 1 + +add_email_corpus + +cat <<EOF > c_head +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#include <notmuch-test.h> + +int main (int argc, char** argv) +{ + notmuch_database_t *db; + notmuch_message_t *message = NULL; + const char *val; + notmuch_status_t stat; + + EXPECT0(notmuch_database_open (argv[1], NOTMUCH_DATABASE_MODE_READ_WRITE, &db)); + EXPECT0(notmuch_database_find_message(db, "4EFC743A.3060609@april.org", &message)); + if (message == NULL) { + fprintf (stderr, "unable to find message"); + exit (1); + } +EOF + +cat <<EOF > c_tail + EXPECT0(notmuch_database_destroy(db)); +} +EOF + +test_begin_subtest "notmuch_message_{add,get,remove}_property" +cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} +{ + EXPECT0(notmuch_message_add_property (message, "testkey1", "testvalue1")); + EXPECT0(notmuch_message_get_property (message, "testkey1", &val)); + printf("testkey1[1] = %s\n", val); + EXPECT0(notmuch_message_add_property (message, "testkey2", "this value has spaces and = sign")); + EXPECT0(notmuch_message_get_property (message, "testkey1", &val)); + printf("testkey1[2] = %s\n", val); + EXPECT0(notmuch_message_get_property (message, "testkey1", &val)); + + EXPECT0(notmuch_message_get_property (message, "testkey2", &val)); + printf("testkey2 = %s\n", val); + + /* Add second value for key */ + EXPECT0(notmuch_message_add_property (message, "testkey2", "zztestvalue3")); + EXPECT0(notmuch_message_get_property (message, "testkey2", &val)); + printf("testkey2 = %s\n", val); + + /* remove first value for key */ + EXPECT0(notmuch_message_remove_property (message, "testkey2", "this value has spaces and = sign")); + EXPECT0(notmuch_message_get_property (message, "testkey2", &val)); + printf("testkey2 = %s\n", val); + + /* remove non-existant value for key */ + EXPECT0(notmuch_message_remove_property (message, "testkey2", "this value has spaces and = sign")); + EXPECT0(notmuch_message_get_property (message, "testkey2", &val)); + printf("testkey2 = %s\n", val); + + /* remove only value for key */ + EXPECT0(notmuch_message_remove_property (message, "testkey2", "zztestvalue3")); + EXPECT0(notmuch_message_get_property (message, "testkey2", &val)); + printf("testkey2 = %s\n", val == NULL ? "NULL" : val); +} +EOF +cat <<'EOF' >EXPECTED +== stdout == +testkey1[1] = testvalue1 +testkey1[2] = testvalue1 +testkey2 = this value has spaces and = sign +testkey2 = this value has spaces and = sign +testkey2 = zztestvalue3 +testkey2 = zztestvalue3 +testkey2 = NULL +== stderr == +EOF +test_expect_equal_file EXPECTED OUTPUT + + + +test_done |
