88 Commits

Author SHA1 Message Date
Andrew Ruthven
7c47658bee Make the curl and SQL requests when we see them
This allows us to have more complex test files where an action is taken, then
we test something, then another action is taken, etc.

Changes to test files are required so that URL is defined after all the
required settings are set.

Changes to the result files are either whitespace changes due to above logic
changes, or printing out a SQL Result header before each result. I figured it
was useful.
2024-04-01 22:57:10 +13:00
Andrew Ruthven
b26d48fced Put a trailing newline on error messages 2024-03-30 19:03:39 +13:00
Andrew Ruthven
15e9231ae3 Unescape URLs passed in as external bindings.
Previously PHP was escaping things like ampersands, which then caused
us to have broken URLs.

These aren't displayed anywhere in the UI, so no need to encode them anywhere.

Closes #314.
2024-02-29 00:43:49 +13:00
Andrew Ruthven
e989e1cf97 Fix PROPFIND with Depth 1 if external bind is included
Previously something like this would be logged if debugging is enabled:

davical: LOG: Principal: Query: DBGQ: SELECT * FROM collection WHERE user_no= :user_no
davical: LOG: Principal: Query: DBGQ:  ":user_no" => ""
davical: BUG: :DAViCal Fatal Error: [42883] SQLSTATE[42883]: Undefined function: 7 ERROR:  operator does not exist: integer = boolean\nLINE 1: SELECT * FROM collection WHERE user_no= FALSE\n                                              ^\nHINT:  No operator matches the given name and argument types. You might need to add explicit type casts. at /home/puck/work/Calendar/awl/inc/AwlDatabase.php:94

And this would be returned as a response:

DAViCal Fatal Error

user_no doesn't get set when construction the Collection for the external
bind, so, just handle that instead of sending the empty string to the
database as a user_no.

Modify the tests from ccc7e182ba4cbfba66a4fe96e1c0620e46390b95 to tickle the
bug.

Closes #175.
2024-02-18 01:51:56 +13:00
Andrew Ruthven
a065435a99 Create tests for 'external' calendars 2024-02-18 00:04:29 +13:00
Andrew Ruthven
1ca8284bdc Add ROOM as a principal type
This hopefully resolves #282.
2024-01-21 19:12:42 +13:00
Andrew Ruthven
6ac6b30c7a Additional record to CONFIDENTIAL resources
Update due to 5ab4f4391406bda5a6f1bc7b2288844bb6fefa06
2023-05-02 10:44:52 +00:00
Andrew Ruthven
15d01c8bed Store DTSTART and DTEND from user in shadow columns
We want to store the calculated dtstart and dtend in the database so we can
use SQL to fetch records. However, we also need what the user sent us so we
can allow prop-filters to be used as well.

So we store what the user sends us in dtstart_orig and dtend_orig and only
use for relevant prop-filter reports.
2023-03-12 20:17:43 +01:00
Andrew Ruthven
6819d6d7d1 Add a primary_key to the addressbook_addresses_* tables
This is part of the fix for #276.
2023-02-15 07:42:34 +00:00
Andrew Ruthven
fc09febad2 Update tests now that we don't inherit the DB from previous directory 2022-12-14 09:52:35 +13:00
Andrew Ruthven
692c20eec6 Don't inherit DB from previous test set 2022-12-14 08:53:32 +13:00
Andrew Ruthven
6cf8d5f81d Another attempt to make the results deterministic 2022-07-12 14:27:50 +12:00
Andrew Ruthven
b05a9b2cc0 Final result update?
This time I appear to have locally had the same result as on Gitlab.
I don't like this though, as the order keeps changing.
2022-06-29 00:08:16 +12:00
Andrew Ruthven
26b92a864d Try and be more deterministic. 2022-06-28 23:57:18 +12:00
Andrew Ruthven
d5cb124184 Report about dumping the database 2022-06-28 23:56:57 +12:00
Andrew Ruthven
d90d85d00e Make GET on a collection deterministic.
Turns out it was returning a sorted list based on a generated uuid, which
could be different in different regression environments. When I was
running tests locally I was always using the same initial.dbdump
file. The tests now pass even with a truely fresh regression DB.
2022-06-28 22:47:31 +12:00
Andrew Ruthven
6d61ed9f8d Update test results
This is now the ordering I consistently get, maybe this'll work on gitlab?
2022-06-28 20:28:21 +12:00
Andrew Ruthven
7cebd30eb5 Fix test result 2022-02-18 23:11:50 +13:00
Andrew Ruthven
5f71ccae8b Limit results for get_include_subcollections
Closes #231.
2022-02-18 23:11:50 +13:00
Andrew Ruthven
fbb6b34508 The knock on effects of making a new event for testing... 2021-09-19 02:33:32 +12:00
Florian Schlichting
8239519ca3 Normalize "100 Continue" headers
apache2 in bullseye has stopped sending these for some reason, but we
want to be able to test in both newer and older environments
2021-02-03 00:42:58 +08:00
Florian Schlichting
1301b2c494 Apache 2.4.35 stops sending Content-Type headers for 204 No Content responses
Normalize results so tests work with newer and older versions

This change is similar to e565cc0a5e4af0330fe5a1ab6f2476be7fb10df4 and
following

From the Apache 2.4.35 changelog:

  *) http: Enforce consistently no response body with both 204 and 304
     statuses.  [Yann Ylavic]
2018-12-22 00:12:54 +01:00
Andrew Ruthven
8c01c83e4b Ignore the id in our test comparision
Gitlab CI has a different collection_id for US Holidays than running
the tests locally. We don't actually care about ID for this test,
just the fact that the binding is present is enough for us.
2018-11-30 15:02:53 +13:00
Andrew Ruthven
9d2969982c Exclude the ctags from the test
We don't really care about the ctag in this test, and the ctag
for user1 will change from test run to test run.
2018-11-29 13:24:25 +13:00
Andrew Ruthven
12565cb6bd Make the tests more interesting by using ctag 2018-11-12 20:14:40 +13:00
Andrew Ruthven
deb743fdcf Add tests for: Fix Fatal PHP Error if Depth is more than 1.
I'm not 100% this is working as intended, but it does kind
of make sense.
2018-11-12 20:00:20 +13:00
Andrew Ruthven
a394c73cc4 This looks like an acceptable change 2018-11-12 18:31:28 +13:00
Andrew Ruthven
95ad5ec373 Allow database dumps to be restored in test suite.
Primary fix is the search_path to ensure that the collection table
is in the search path so that the copy into dav_binding (and
possibly others) will work.

I also suppressed the warning about plpgsql.
2018-11-12 18:00:30 +13:00
Florian Schlichting
44ff0b3286 update tests for changed etags, unstable REV/UID or sort order, improved property parsing
Changed line wrapping in awl is one major reason for etag changes.

With this commit, all tests in regression-suite, binding and carddav
pass for me, using the configuration outlined in README.regression_tests
2017-09-21 00:39:30 +02:00
Florian Schlichting
4ef5730bef Restore-Database.result: error setting plpgsql COMMENT and lots more setval in dump 2017-01-01 20:46:36 +01:00
Florian Schlichting
fa2517b983 Update other testsuites for contenttype, PROPPATCH and 204 No Content changes 2017-01-01 20:46:31 +01:00
Andrew McMillan
74e690103b Reorder results 2013-10-15 23:46:25 +13:00
Andrew McMillan
54222e32a5 Improve successful result checking. 2013-10-15 23:46:06 +13:00
Andrew McMillan
0f4cb2a8a8 Result of character escape fixing. 2013-10-15 23:45:19 +13:00
Andrew McMillan
48d22782f7 Correct regression host name. 2013-07-15 13:11:08 +12:00
Andrew McMillan
1f5d8ddcac Updated & new regression tests for various XML processing changes. 2012-05-20 21:50:30 +12:00
Andrew McMillan
6730055288 Further tests for BIND, particular transitive BINDs. 2012-05-14 23:27:04 +12:00
Andrew McMillan
483683d3f6 Result ordering and other trivial regression test changes. 2012-05-14 23:26:12 +12:00
Andrew McMillan
0d2ef3475d Change the collection ids used in regression testing - modified results. 2012-05-05 16:57:05 +12:00
Andrew McMillan
677513b49d Current regression test results. 2012-05-03 19:12:42 +12:00
Andrew McMillan
7c15051f84 Further fixes to WebDAV synchronization.
This should be fully reliable now and also cleans out all sync
changes more than one week old.  update-database is needed to pull
the new function.
2012-04-17 15:44:09 +12:00
Andrew McMillan
8158eaa1ea Changes to the way PROPPATCH returns errors.
This is cleaner and perhaps a little more informative.
2012-04-16 12:57:16 +12:00
Andrew McMillan
beecb1674d Test result changes for previous commit. 2012-04-16 12:56:08 +12:00
Andrew McMillan
739d024305 Further regression test results changes from the caldav-proxy header. 2012-03-22 14:56:02 +13:00
Andrew McMillan
0153070bea Updated test results. 2012-03-12 13:19:41 +13:00
Andrew McMillan
d226395258 Minor updates to tests. 2011-12-14 22:19:16 +13:00
Andrew McMillan
71b90d367a Handle bound resources correctly in sync-collection report. 2011-12-14 22:18:24 +13:00
Andrew McMillan
b4e50d8803 One more sync-action in prior tests. 2011-12-03 14:22:09 +13:00
Andrew McMillan
6483b562ca Now returning a slightly informative error message. 2011-12-03 14:21:34 +13:00
Andrew McMillan
8ba55217df More fixes to CalDAV Scheduling
- Handle REPLY from ATTENDEE accepting/declining meeting.
- Handle processing on ORGANIZER further changing meeting.
2011-10-24 18:38:48 +13:00