aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
Commit message (Collapse)AuthorAge
* test: emacs: new tests "notmuch-show: {, un}collapse all messages in thread"Gravatar Pieter Praet2012-10-20
| | | | | | | | | | | | * test/emacs: - New subtest "notmuch-show: collapse all messages in thread": `notmuch-show-open-or-close-all' with prefix arg ("C-u M-RET") collapses all messages in thread. - New subtest "notmuch-show: uncollapse all messages in thread": `notmuch-show-open-or-close-all' without prefix arg ("M-RET") uncollapses all messages in thread.
* test: emacs: new tests "notmuch-show: {show, hide} message headers"Gravatar Pieter Praet2012-10-20
| | | | | | | | | | | | | | | | | | | * test/emacs: - New subtest "notmuch-show: show message headers": Setting `notmuch-message-headers-visible' to t causes all headers defined in `notmuch-message-headers' to be shown. - New subtest "notmuch-show: hide message headers": Setting `notmuch-message-headers-visible' to nil causes all headers defined in `notmuch-message-headers' to be hidden. ("Subject:" may be an exception; See the use of `headers-start' in `notmuch-show-insert-msg') - New subtest "notmuch-show: hide message headers (w/ notmuch-show-toggle-headers)": Setting `notmuch-message-headers-visible' to t causes all headers defined in `notmuch-message-headers' to be shown, but they can be hidden for the current message by running `notmuch-show-toggle-headers'.
* test: Move tests from emacs to emacs-showGravatar Ethan Glasser-Camp2012-10-18
| | | | | | | | | | | | | | | | | | | | | This requires changing the contents of the crypto tests, as one thread that was marked read by the earlier tests in test/emacs is no longer marked read. This moves tests for: - 09d19ac "test: emacs: toggle eliding of non-matching messages in `notmuch-show'", which should have actually read: "test: emacs: toggle processing of cryptographic MIME parts in `notmuch-show'". See commit 19ec74c5. - 5ea1dbe "test: emacs: toggle eliding of non-matching messages in `notmuch-show'" - 345faab "test: emacs: toggle thread content indentation in `notmuch-show'" Signed-off-by: Ethan Glasser-Camp <ethan@betacantrips.com>
* test: handle filenames that have directories in themGravatar Ethan Glasser-Camp2012-10-18
| | | | | | | | Since $TEST_DIRECTORY is an absolute path, any filenames generated with it will be complete paths. Only use the basename to generate suffixes for filenames. Signed-off-by: Ethan Glasser-Camp <ethan@betacantrips.com>
* test: emacs: toggle thread content indentation in `notmuch-show'Gravatar Pieter Praet2012-10-17
| | | | See commit c205e8ff.
* test: emacs: toggle eliding of non-matching messages in `notmuch-show'Gravatar Pieter Praet2012-10-17
| | | | See commits 44a544ed, 866ce8b1, 668b66ec.
* test: emacs: toggle eliding of non-matching messages in `notmuch-show'Gravatar Pieter Praet2012-10-17
| | | | | | See commits 44a544ed, 866ce8b1, 668b66ec. Signed-off-by: Ethan Glasser-Camp <ethan@betacantrips.com>
* test: Add a test for HTML email with inline imagesGravatar Austin Clements2012-09-30
| | | | | Currently this test passes in Emacs 23 but fails in Emacs 24 (at least on some Linux distributions).
* test: Clear test-output output file before running Emacs testsGravatar Austin Clements2012-09-30
| | | | | | | | | | | | Most Emacs tests end with a call to (test-output), which saves the buffer to a filed called OUTPUT. Previously, if the test code failed with an exception before this call, the test framework would then compare against the OUTPUT file from the last Emacs test, resulting in confusing diffs. This requires one tweak to an emacs test that made two calls to test_emacs and expected an OUTPUT file from the first call. We simply reverse the order of the test_emacs calls.
* test/atomicity: use a more portable 'cp' formGravatar Mike Kelly2012-09-01
| | | | | | | | -a already implies -r/-R, so no need for both. FreeBSD's cp complains: cp: the -R and -r options may not be specified together
* test/basic: use portable args for findGravatar Mike Kelly2012-09-01
| | | | | `-executable` isn't available in FreeBSD's version of find, so use a more portable version, `-perm +111`.
* tests: Test against source man pages.Gravatar Mike Kelly2012-09-01
| | | | | Without this, help-test tests against the installed man pages, rather than the default ones.
* test/smtp-dummy.c: fix compilation on FreeBSDGravatar Mike Kelly2012-09-01
| | | | | Use the more portable netint/in.h, instead of netint/ip.h, to include htons(3), etc.
* test/Makefile.local: Use $(XAPIAN_LDFLAGS) for symbol-testGravatar Mike Kelly2012-09-01
| | | | | | On FreeBSD, and probably anywhere else someone installed xapian to some other prefix, we need to use XAPIAN_LDFLAGS to make the linker can actually find libxapian.
* test: make test_expect_equal_file() arguments flexibleGravatar Dmitry Kurochkin2012-09-01
| | | | | | | | | | | | | | | | | | | | | | | Before the change, test_expect_equal_file() function treated the first argument as "actual output file" and the second argument as "expected output file". When the test fails, the files are copied for later inspection. The first files was copied to "$testname.output" and the second file to "$testname.expected". The argument order for test_expect_equal_file() is often wrong which results in confusing diff output and incorrectly named files. The patch solves the issue by changing test_expect_equal_file() to treat arguments just as two files, without any special properties (like "actual" and "expected"). The file names for copying is now based on the given file name: "$testname.$file1" and "$testname.$file2". E.g. if test_expect_equal_file() is called with "OUTPUT" and "EXPECTED", the copied files can be named "emacs.1.OUTPUT" and "emacs.1.EXPECTED". The down side of this approach is that diff argument order depends on test_expect_equal_file() argument order. So sometimes we get diff from expected to actual results, and sometimes the other way around. But the files are always named correctly.
* test: use (format "%S") to print nil in emacs test.Gravatar David Bremner2012-08-30
| | | | | | | | The behaviour of "emacsclient --eval nil" changed from emacs23 to emacs24, and in emacs24 it prints 'nil' rather than an empty string. (format "%S" foo) produces a sexpr form of foo, and is consistent between the two versions.
* test: canonicalize content-type in "Sending a message via (fake) SMTP"Gravatar David Bremner2012-08-30
| | | | | | | The version of message.el in emacs24 omits the charset=us-ascii, causing the current version of this test to fail. With this patch, we accept either option. According to RFC 2046, they are semantically equivalent.
* test: emacs: run list-processes after accept-process-output in emacs 23.1Gravatar Tomi Ollila2012-08-29
| | | | | | | | | | | | | | When running emacs tests using emacs 23.1.1 the tests block (until timeout) when emacs function (notmuch-test-wait) is called. There is an emacs bug #2930 titled: 23.0.92; `accept-process-output' and `sleep-for' do not run sentinel It seems this is present in emacs 23.1. Calling list-processes after accept-process-output seems work around this problem; in case Emacs version is 23.1 a defadvice is activated to do just that.
* test: emacs: call accept-process-output in notmuch-test-waitGravatar Tomi Ollila2012-08-29
| | | | | | | | notmuch-test-wait called sleep-for in a loop to wait unconditionally 0.1 seconds while waiting for process to exit. accept-process-output returns as soon as there is any data available from process, so using it avoids unnecessary fixed delays. Both of these functions run process sentinels.
* sprinters: bugfix when NULL passed for a string.Gravatar Mark Walters2012-08-12
| | | | | | | | | | | | The string function in a sprinter may be called with a NULL string pointer (eg if a header is absent). This causes a segfault. We fix this by checking for a null pointer in the string functions and update the sprinter documentation. At the moment some output when format=text is done directly rather than via an sprinter: in that case a null pointer is passed to printf or similar and a "(null)" appears in the output. That behaviour is not changed in this patch.
* test: Add test for messages with missing headersGravatar Austin Clements2012-08-12
| | | | | Currently the JSON tests for search and show are broken because notmuch attempts to dereference a NULL pointer.
* notmuch-restore: replace positional argument for input with optionGravatar David Bremner2012-08-06
| | | | | Since notmuch dump doesn't use positional arguments anymore, it seems better to be consistent.
* notmuch-dump: remove deprecated positional argument for output fileGravatar David Bremner2012-08-06
| | | | | | The syntax --output=filename is a smaller change than deleting the output argument completely, and conceivably useful e.g. when running notmuch under a debugger.
* test: Remove unnecessary JSON canonicalizationGravatar Austin Clements2012-08-03
| | | | | | Format canonicalization of JSON output is no longer necessary, so remove it. Value canonicalization (e.g., normalizing thread IDs) is still necessary, so all of the sanitization functions remain.
* test: Uniformly canonicalize actual and expected JSONGravatar Austin Clements2012-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | Previously, we used a variety of ad-hoc canonicalizations for JSON output in the test suite, but were ultimately very sensitive to JSON irrelevancies such as whitespace. This introduces a new test comparison function, test_expect_equal_json, that first pretty-prints *both* the actual and expected JSON and the compares the result. The current implementation of this simply uses Python's json.tool to perform pretty-printing (with a fallback to the identity function if parsing fails). However, since the interface it introduces is semantically high-level, we could swap in other mechanisms in the future, such as another pretty-printer or something that does not re-order object keys (if we decide that we care about that). In general, this patch does not remove the existing ad-hoc canonicalization because it does no harm. We do have to remove the newline-after-comma rule from notmuch_json_show_sanitize and filter_show_json because it results in invalid JSON that cannot be pretty-printed. Most of this patch simply replaces test_expect_equal and test_expect_equal_file with test_expect_equal_json. It changes the expected JSON in a few places where sanitizers had placed newlines after commas inside strings.
* build system: remove directories created by tests in "make clean"Gravatar David Bremner2012-08-02
| | | | | | | | | These extra directories cause problems for building on Debian twice in a row. In order to remove directories, we need to us "rm -rf" instead of "rm -f". So now we should be extra careful what we add to the variable CLEAN.
* test: add tests for the new --body=true|false optionGravatar Mark Walters2012-07-24
|
* Use the structured formatters in notmuch-search.c.Gravatar craven@gmx.net2012-07-24
| | | | | | | | | | This patch switches from the current ad-hoc printer to the structured formatters in sprinter.h, sprinter-text.c and sprinter-json.c. The JSON tests are changed slightly in order to make them PASS for the new structured output formatter. The text tests pass without adaptation.
* emacs: Switch from text to JSON format for search resultsGravatar Austin Clements2012-07-12
| | | | | | | | | | | | | | | | | | | | | | | | | | The JSON format eliminates the complex escaping issues that have plagued the text search format. This uses the incremental JSON parser so that, like the text parser, it can output search results incrementally. This slows down the parser by about ~4X, but puts us in a good position to optimize either by improving the JSON parser (evidence suggests this can reduce the overhead to ~40% over the text format) or by switching to S-expressions (evidence suggests this will more than double performance over the text parser). [1] This also fixes the incremental search parsing test. This has one minor side-effect on search result formatting. Previously, the date field was always padded to a fixed width of 12 characters because of how the text parser's regexp was written. The JSON format doesn't do this. We could pad it out in Emacs before formatting it, but, since all of the other fields are variable width, we instead fix notmuch-search-result-format to take the variable-width field and pad it out. For users who have customized this variable, we'll mention in the NEWS how to fix this slight format change. [1] id:"20110720205007.GB21316@mit.edu"
* test: New test for incremental search output parsingGravatar Austin Clements2012-07-12
| | | | | | | | | This advises the search process filter to make it process one character at a time in order to test the pessimal case for incremental search output parsing. The text parser fails this test because it gets tricked into thinking a parenthetical remark in a subject is the tag list.
* test: add basic show, search --format=text testsGravatar Peter Wang2012-07-09
| | | | | | There didn't seem to be these basic tests for --format=text, as there are for --format=json. These are just the tests from the `json' script, with adjusted expected outputs.
* lib: Treat messages in new/ as maildir messages with no flags setGravatar Austin Clements2012-06-10
| | | | | | | | | | | | Previously, notmuch new only synchronized maildir flags to tags for files with a maildir "info" part. Since messages in new/ don't have an info part, notmuch would ignore them for flag-to-tag synchronization. This patch makes notmuch consider messages in new/ to be legitimate maildir messages that simply have no maildir flags set. The most visible effect of this is that such messages now automatically get the unread tag.
* test: Add broken test for tag synchronization on files delivered to new/Gravatar Austin Clements2012-06-10
| | | | | | | | | | | | | | | | | Currently, notmuch new only synchronizes maildir flags to tags for files that have an "info" part. However, in maildir, new mail doesn't gain the info part until it moves from new/ to cur/. Hence, even though mail in new/ doesn't have an info part, it is still a maildir message and thus has maildir flags (though none of them set). The most visible effect of not synchronizing maildir flags for messages in new/ is that newly delivered messages don't get the unread tag (unless it is assigned by some other mechanism, like new.tags). This patch does *not* modify the test for messages in cur/ that do not have an "info" part. Unlike a message in new/, a message in cur/ without an info part is no longer a maildir message, and thus shouldn't be subject to maildir flag synchronization.
* emacs: only strip "re:" in the beginning of subjectGravatar Jani Nikula2012-06-07
| | | | | Fix notmuch-show-strip-re by matching "re:" only in the beginning of the input string.
* test: add test for emacs notmuch-show-strip-re functionGravatar Jani Nikula2012-06-07
| | | | | | The function is used for stripping "re:" from subjects to generate "bare subjects". Include broken test for having "re:" in the middle of the subject.
* test: remove "Testing" from test description in emacs-hello and emacs-showGravatar Dmitry Kurochkin2012-05-25
| | | | | "Testing" is printed by test/test-lib.sh, so having "Testing" in test description results in duplicate "Testing" in console output.
* test: add tests for notmuch reply From guessingGravatar Jani Nikula2012-05-24
| | | | | | | Add tests for picking up user's From address from fallback headers Envelope-To, X-Original-To, and Delivered-To. Signed-off-by: Jani Nikula <jani@nikula.org>
* new: Centralize file type stat-ing logicGravatar Austin Clements2012-05-24
| | | | | | | | | | This moves our logic to get a file's type into one function. This has several benefits: we can support OSes and file systems that do not provide dirent.d_type or always return DT_UNKNOWN, complex symlink-handling logic has been replaced by a simple stat fall-through in one place, and the error message for un-stat-able file is more accurate (previously, the error always mentioned directories, even though a broken symlink is not a directory).
* test: Test notmuch new with a broken symlinkGravatar Austin Clements2012-05-24
|
* python: Remove find_message_by_filename workaroundGravatar Austin Clements2012-05-23
| | | | | | | | Now that notmuch_database_find_message_by_filename works on read-only databases, remove the workaround that disabled it on read-write databases. This also adds a regression test for find_message_by_filename.
* emacs: fix custom queries section customization widget in notmuch-helloGravatar Dmitry Kurochkin2012-05-06
| | | | | | | The customization widget referred to a non-existing function `notmuch-hello-insert-query-list'. The patch changes it to the correct one - `notmuch-hello-insert-searches'. The relevant test is fixed now.
* test: add Emacs notmuch-hello tests for custom tags and queries section.Gravatar Dmitry Kurochkin2012-05-06
| | | | | | | The tests use default values from customization widgets to make sure that these customization widgets work (at least on basic level). The custom queries section test is currently broken.
* test: Force reply to use html2text for consistencyGravatar Adam Wolfe Gordon2012-05-06
| | | | | | | | The output of the HTML reply test in the emacs suite can vary depending on which HTML renderers are installed on the machine running the tests. The renderer that is always available is emacs's builtin html2text function. In order to get consistency, force the test to use html2text even if other renderers are available.
* emacs: Correctly quote non-text/plain parts in replyGravatar Adam Wolfe Gordon2012-05-06
| | | | | | | | | | Quote non-text parts nicely by displaying them with mm-display-part before calling message-cite-original to quote them. HTML-only emails can now be quoted correctly. We re-use some code from notmuch-show (notmuch-show-mm-display-part-inline), which has been moved to notmuch-lib.el. Mark the test for this feature as not broken.
* test: Replying to an HTML-only message in emacsGravatar Adam Wolfe Gordon2012-05-06
| | | | | | | | With the latest reply infrastructure, we should be able to nicely quote HTML-only emails. But currently emacs quotes the raw HTML instead of parsing it first. This commit adds a test for this case. This test currently marked as broken.
* lib/cli: Make notmuch_database_open return a status codeGravatar Austin Clements2012-05-05
| | | | | | | | | | | | It has been a long-standing issue that notmuch_database_open doesn't return any indication of why it failed. This patch changes its prototype to return a notmuch_status_t and set an out-argument to the database itself, like other functions that return both a status and an object. In the interest of atomicity, this also updates every use in the CLI so that notmuch still compiles. Since this patch does not update the bindings, the Python bindings test fails.
* config: Add 'config list' commandGravatar Peter Wang2012-04-28
| | | | | | | | | | Add a command to list all configuration items with their associated values. One use is as follows: a MUA may prefer to store data in a central notmuch configuration file so that the data is accessible across different machines, e.g. an addressbook. The list command helps to implement features such as tab completion on the keys.
* test: Add broken test for 'config list'Gravatar Peter Wang2012-04-28
| | | | Proposed functionality.
* test: Add tests for 'config' commandGravatar Peter Wang2012-04-28
| | | | Start a new test script.
* emacs: get rid of trailing spaces in notmuch-hello viewGravatar Dmitry Kurochkin2012-04-12
| | | | | | | | | | | This patch removes trailing spaces in notmuch-hello view. A side effect of this change is that tag/query buttons no longer include a space at the end. This means that pressing RET when the point is at the first character after the tag/query button no longer works (note that this is the standard behavior for buttons). We may change this behavior in the future (without adding trailing spaces back) if people would find this change inconvenient.