nextcloud-desktop/csync
Jocelyn Turcotte b7ff4a76e8 Add TestSyncEngine and TestSyncFileStatusTracker auto tests
To be able to test the SyncEngine efficiently, a set of server
mocking classes have been implemented on top of QNetworkAccessManager.

The local disk side hasn't been mocked since this would require adding
a large abstraction layer in csync. The SyncEngine is instead pointed
to a different temporary dir in each test and we test by interacting
with files in this directory instead.

The FakeFolder object wraps the SyncEngine with those abstractions
and allow controlling the local files, and the fake remote state
through the FileModifier interface, using a FileInfo tree structure
for the remote-side implementation as well as feeding and comparing
the states on both side in tests.

Tests run fast and require no setup to be run, but each server feature
that we want to test on the client side needs to be implemented in
this fake objects library. For example, the OC-FileId header isn't
set as of this commit, and we can't test the file move logic properly
without implementing it first.

The TestSyncFileStatusTracker tests already contain a few QEXPECT_FAIL
for what I esteem being issues that need to be fixed in order to catch
up on our test coverage without making this patch too huge.
2016-08-17 15:39:30 +02:00
..
src Add TestSyncEngine and TestSyncFileStatusTracker auto tests 2016-08-17 15:39:30 +02:00
tests tx.pl: Fix each put_to_dir taking 10 seconds 2016-08-15 15:35:53 +02:00
AUTHORS Move csync in order to merge it with mirall 2014-01-13 14:39:50 +01:00
ChangeLog Minor build etc typos 2015-09-10 13:20:11 +05:45
CMakeLists.txt Add TestSyncEngine and TestSyncFileStatusTracker auto tests 2016-08-17 15:39:30 +02:00
config_csync.h.cmake csync: remove PLUGIN install patch from cmake files 2015-12-02 13:13:41 +01:00
config_test.h.cmake fix csync BINARYDIR and SOURCEDIR 2014-01-20 16:16:29 +01:00
ConfigureChecks.cmake Add TestSyncEngine and TestSyncFileStatusTracker auto tests 2016-08-17 15:39:30 +02:00
COPYING Move csync in order to merge it with mirall 2014-01-13 14:39:50 +01:00
CTestConfig.cmake Move csync in order to merge it with mirall 2014-01-13 14:39:50 +01:00
CTestCustom.cmake Move csync in order to merge it with mirall 2014-01-13 14:39:50 +01:00
DefineOptions.cmake Move csync in order to merge it with mirall 2014-01-13 14:39:50 +01:00
INSTALL Minor build etc typos 2015-09-10 13:20:11 +05:45
README Minor build etc typos 2015-09-10 13:20:11 +05:45

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

WHAT IS CSYNC?
==============

csync is a lightweight utility to synchronize files between two directories on
a system or between multiple systems.

It synchronizes bidirectionally and allows the user to keep two copies of files
and directories in sync. csync uses widely adopted protocols, such as smb or
sftp, so that there is no need for a server component. It is a user-level
program which means you dont need to be a superuser or administrator.

CONTRIBUTIONS
=============

If you want to contribute to the development of the software then please join
the mailing list. Patches are accepted preferably created with git and we are
always glad to receive feedback or suggestions to the address
csync-devel@csync.org.
More information on the various mailing lists can be found at
http://www.csync.org/communication/.

You can also get the sourcecode straight from the git repository - see
http://git.csync.org/

DOCUMENTATION
=============

As a user you can find a userguide which is shipped with this package or is
available at the website. For developers there is doxygen documentation and
comments in the source code itself. See

http://www.csync.org/userguide/
and
http://www.csync.org/api/