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.
ownCloud Desktop Client
| Job | State |
|---|---|
| client-build-matrix | |
| client-test-matrix-linux-no-build | |
| coverity_scan |
Introduction
The ownCloud Desktop Client is a tool to synchronize files from ownCloud Server with your computer.
Download
Binary packages
- Refer to the download page https://owncloud.org/install/#install-clients
Source code
The ownCloud Desktop Client is developed in Git. Since Git makes it easy to fork and improve the source code and to adapt it to your need, many copies can be found on the Internet, in particular on GitHub. However, the authoritative repository maintained by the developers is located at https://github.com/owncloud/client.
Building the source code
Building the Client in the ownCloud Desktop Client manual.
Maintainers and Contributors
The maintainers of this repository are:
- Klaas Freitag freitag@owncloud.com
- Daniel Molkentin danimo@owncloud.com
- Markus Goetz guruz@owncloud.com
- Olivier Goffart ogoffart@owncloud.com
ownCloud Desktop Client is developed by the ownCloud community and receives patches from a variety of authors.
Reporting issues and contributing
If you find any bugs or have any suggestion for improvement, please file an issue at https://github.com/owncloud/client/issues. Do not contact the authors directly by mail, as this increases the chance of your report being lost.
If you created a patch, please submit a Pull Request. For non-trivial patches, we need you to sign the Contributor Agreement before we can accept your patch.
If you want to contact us, e.g. before starting a more complex feature, you can join us at #owncloud-client-dev.
License
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.