Revision history for JMAP-Tester 0.109 2025-12-17 09:59:32+11:00 Australia/Melbourne - fix a compilation error in the HTTP Logger 0.108 2025-12-16 09:18:30+11:00 Australia/Melbourne - improve test coverage - replace short-lived UA::Test with LWP and LWP::Protocol::PSGI - correct a few places where confess or abort should've been the other one - removed ->simple_auth, which has long been entirely obsolete 0.107 2025-12-11 13:26:56+11:00 Australia/Melbourne - add a means to test the Tester, then do so - add a means to supply hand-crafted JSON to $tester->request - switch from JSON to JSON::XS 0.106 2025-12-11 09:17:48+11:00 Australia/Melbourne - add an "ident" property to the Tester, which will show up in logging 0.105 2025-12-09 11:44:18+11:00 Australia/Melbourne - add a (temporary!) second arg to ->download to allow setting the Accept header - convert the LWP-based UA to use keepalive - add get_client_session to get the session without reconfiguring 0.104 2025-06-11 13:28:56-04:00 America/New_York - add a TO_JSON method to the Sentence class - include ->sentences, not ->items in default diagnostics (which allows smarter diagnostic dumpers to filter based on the class) 0.103 2023-01-11 21:24:00-05:00 America/New_York - update distribution metadata - bump required Perl to v5.14.0 0.102 2022-07-25 10:45:39-04:00 America/New_York - allow subclasses to change how JWT-authenticated links work (you probably don't need this!) - Stop acting like JMAP sessions contain an authenticationUri, because they don't! This means: don't change the $tester->authentication_uri to be whatever you find in the client session. You'll never find a defined value, which means you'll clobber the correctly-set value from initialization. 0.101 2021-08-13 11:02:38-04:00 America/New_York - work around bugs in older Role::Tiny; this is what you want if you saw: Can't use string ("-1") as a symbol ref 0.100 2021-08-10 12:11:55-04:00 America/New_York - [ THIS UPDATE MIGHT BREAK YOUR CODE ] - The $jtester->ua object is now a "UA" object, not just an LWP::UserAgent. This allows the use of other user agents. More importantly, the tester can be configured to return Futures instead of immediate responses, which means it can be operated in non-blocking mode. If you have been interacting with the result of ->ua directly, you should read the details of its new interface in JMAP::Tester::Role::UA and then update your code. 0.026 2019-03-08 15:48:29-05:00 America/New_York - fix reference type of accounts collection (thanks, WOLFSAGE) 0.025 2019-03-06 09:16:33-05:00 America/New_York - allow for template variables in upload URI also 0.024 2019-03-04 16:03:30-05:00 America/New_York - add account and primary account accounting 0.023 2019-03-04 14:51:46-05:00 America/New_York - add default_using attribute, because using is what we're all using now 0.022 2018-12-06 06:24:38+11:00 Australia/Melbourne - bytes_ref now returns a *reference* to a byte string - allow created_creation_ids to work even if created is empty - response_payload method, a generic way to get at a Result's response 0.021 2018-08-27 15:16:43-04:00 America/New_York - autoflush output handle used for logging 0.020 2018-07-24 15:23:33-04:00 America/New_York - add "type" to download_uri_for arguments 0.019 2018-07-15 20:57:09-04:00 America/Toronto - allow "-X" with a numeric "X" as the output filename for Logger to output to the numeric file descriptor - fix insane non-cleanup of loggers; sorry about that - make simple_auth and download actually, like, work 0.018 2018-03-10 18:08:29-05:00 America/New_York - no longer use allow_blessed on the JSON codec 0.017 2018-01-16 10:54:11-05:00 America/New_York - updated for JMAP wrapper Objects, will make new-style Object requests unless instructed otherwise 0.016 2018-01-11 13:52:14-05:00 America/New_York - SentenceCollection introduced to allow other implementations of Response-like objects 0.015 2017-10-20 15:05:13-04:00 America/New_York - avoid a memory cycle in the logging code - URI escape filename in download link generation 0.014 2017-04-18 10:22:11-04:00 America/New_York - add update_client_session and configure_from_client_session; These methods should make it easier to bootstrap your tester from a running server. 0.013 2017-03-31 18:25:11-05:00 America/Chicago - assert_successful_set and assert_single_successful_set - $set_sentence->assert_no_errors now returns $set_sentence on okay 0.012 2017-03-24 19:12:50-04:00 America/New_York - JWT access tokens for authenticated GET now supported - logout should be more reliable - renamed auth_struct to client_session 0.011 2017-02-23 11:34:22-08:00 America/Los_Angeles - add ->sentence_named to Response and Paragraph - add ->sentences and ->paragraphs to Response - add ->assert_named to Sentence - add ->assert_n_sentences to Response and Paragraph - Sentence::Set is now a subclass of Sentence 0.010 2017-02-15 08:00:29-05:00 America/New_York - methods like "paragraph" and "sentence" now issue aborts when the index is out of range - Results now have ->assert_successful, which returns the Result or aborts - There's now a ->logout method on tester that attempts to log out - the Authorization header is now set only on specific requests, not on every request made by the tester's user agent - simple authentication has been fixed; it was totally broken in the last release 0.009 2017-01-28 13:54:00-05:00 America/New_York - an abort is now issued on bogus paragraphs and non-contiguous use of a client id; we can roll this back in the future if someone has a need… but why would you? - Set sentences now have an assert_no_errors method that throws a error-dumping abort if any part of the setFoos method did not succeed - paragraphs now have a client_id method - $set->VERB_errors now always returns an empty hashref if there are errors, even if the server returned nothing or null 0.008 2017-01-01 12:00:12-05:00 America/New_York - update minimum required JSON::Typist 0.007 2016-12-28 12:21:52-05:00 America/New_York - there's a logging system, which will be documented when more done - improved support for ->download - simple_auth should now, uh, work - some internal exceptions now throw JMAP::Tester::Abort errors, for use with Test::Abortable - "Set" sentences now understand new-style Object values for "updated" and provide transparent access to both new- and old-style updated 0.006 2016-12-01 10:49:03+11:00 Australia/Melbourne - support for upload and download - jmap_uri is now api_uri - logging in via simple auth now uploads uris when possible 0.005 2016-10-27 19:12:19-04:00 America/New_York - default_arguments have been added so you don't need to remember to put an accountId in every single method call 0.004 2016-09-26 14:05:14-04:00 America/New_York - include http_response on all request results 0.003 2016-09-02 11:09:48-04:00 America/New_York - fix a decoding bug for non-ASCII in successful JMAP response handling - http_response is now available on successful responses 0.002 2016-08-22 10:51:35-04:00 America/New_York - $paragraph->sentence($n) added - $res->single_sentence($name) added - response, paragraph, and sentence get ->as_stripped_X methods 0.001 2016-05-31 11:24:33-04:00 America/New_York - first release to CPAN, at Alfie's urging