Instead of sending the summary, only the empty description was sent.
Now the summary is sent. This has the effect that on a full round-trip,
the summary gets duplicated as part of the description. synccompare
was adapted to not complain about this for the newly added testcase
for this: the script also duplicates the summary.
This cannot be avoided because notes are exchanged as plain text
which cannot distinguish between summary and description.
During a refresh-from-client sync, the server has to delete all items
that it currently has before adding those sent by the client. This
new test covers that. It complements the testRefreshSemantic test,
which did that for the other direction and thus was renamed to
testRefreshFromClientSemantic.
The server also needs to tell other clients to delete the items
that were deleted this way during a refresh-from-client. This is
not currently tested.
As with the previous change from AGPLv3 to LGPL v2.1, this is covered
by copyright ownership and/or the Funambol contributor agreement.
The motivation for adding v3 is greater flexibility regarding
reusing the code in other places and relicensing it.
Comparison was missing altogether. Items were not imported as text/calendar
because the type wasn't set. Creating new items didn't work because <<REVISION>>
was in the wrong place: it needs to be in the DESCRIPTION, so that SUMMARY and first
line of DESCRIPTION remain identical (expected by some peers and our own sync source).
Evolution 2.24.5 adds this. It can be ignored because we are not
sending it out like that (Synthesis engine matches it against the
imported libical time zones, which don't have this suffix), thus
our peers won't have a problem with it.
The Synthesis engine transforms COUNT into UNTIL clauses. This
is semantically not quite the same, but for viewing the events the result is
identical (verified in Evolution).
Instead of passing an invalid reply into the Synthesis engine where
it triggers an obscure (WB)XML parser error in the SyncML Toolkit,
check the content type and dump a non-(WB)XML reply into our own log,
then abort with a "transport failed" error.
libsoup already aborted because of the non-200 server status. Now it
also dumps the message in that case.
The Synthesis time zone handling has some issues with this. The 2006
rule set is detected, but then replaced by the different 2007 rule
set.
Reported to Synthesis, removing the test case in the meantime.
This reverts commit dd22cd12d4.
The original test cases can be restored because libsynthesis now
knows about libical time zone definitions and preserves then.
Some of the other Evolution specific tests are not supported yet;
those will be simplified separately.
update-copyright.sh can be used to add copyright remarks for the current
year. It finds the authors who made a change in each file and adds/updates
their copyright remark. Intel employees are grouped under "Intel Corporation".
This is permitted by the Funambol contributor agreement (copy
is in doc/Sync4jContribution.pdf). It reduces the license mix
and allows distributing synccompare without special precautions.
The previous approach did not sort values. It was inefficient (multiple s// passes).
With multiple EXDATE properties it is also easier to find added/removed ones.
Bugzilla 1334 and 1336 trigger item rewriting which is okay, but
shows up in the automated testing as failure:
- different time zone definitions
- RRULE UNTIL->COUNT
That's okay, but to avoid the automated test failure I replaced
the test cases with the output of testConversion. Revert this
when the issues above are solved in a better way!
Evolution vcard21 source defines testcases/vcard30.vcf as its native
test case file. For vcard21::testConversion we must use vcard21.vcf instead
because that is the format used for encoding the items.
Note that the test doesn't pass because synccompare does not support
old-style vcard and vcalendar encoding: line breaks aren't handled
correctly etc.
Removed the "encoding" source option. It was of dubious usefulness
with Funambol and has meaning with Synthesis at all.
Removed dead code in EvolutionSyncConfig.
Added "enableWBXML" sync option. WBXML is used by default, but for
debugging disabling it might be useful: dumping WBXML doesn't seem
to work reliably.
Most Client::Sync tests use the default encoding, usually WBXML unless
changed via CLIENT_TEST_XML=1. Client::Sync::*::testItemsXML always
uses XML and Client::Sync::*::testItems always WBXML.
Use the ClientTest::compare() helper function and change it so that
it invokes "synccompare", as needed when using it in SyncEvolution.
Improved it so that it prints the synccompare command after a failure
and adds a line break before it.
The conversion test checks whether information is lost and/or modified
when converting the test items into the field list defined in the Synthesis
XML config. For that it converts into the field list and back, then compares
against the original test item file with synccompare.
Because a valid Synthesis session is necessary, this test hooks into
running a sync session via a callback that is triggered by the first
Synthesis progress event. It then aborts the session without contacting
the server.
boost::bind() with a reference should have worked (?), but didn't:
the bound function did not update the variable it was bound to.
Using a pointer worked.
When --with-synthesis-src is used, then the Synthesis source code is compiled
automatically and included in a .tar.gz.
Added some missing EXTRA_DIST files.
The logdir is now overridden so that all files (client.log, message
dumps, Synthesis logs) are written in a subdirectory names after
the current test. A <test>.log file captures all output written
outside of the sync itself.
The file is named after the current test, with : replaced by underscores.
This gets all log message outside of sync sessions. Those are still written into
separate files whose name needs to be adapted.