Cloud personnel
Find a file
Daniel Calviño Sánchez 065ab6bfff Solve acceptance test failure due to clicks on covered elements
Firefox and Chrome drivers for Selenium refuse to click on an element if
the point to be clicked is covered by a different element, throwing an
UnknownError exception with message "Element is not clickable at point
({x}, {y}). Other element would receive the click: {element}". Although
in general that would be a legit error (as the user would not be able to
click on the element) due to a bad layout, sometimes this can be just a
temporal issue caused by an animation, in which case there would be no
problem once the animation finished and the elements are all in their
final location.

Unfortunately, automatically handling those situations in which the
problem is caused by an animation by just retrying a few times if the
element to be clicked is covered before giving up would probably cause
confusion instead of easing test writing.

The reason is that if the center of the element is covered by another
one the Firefox driver for Selenium tries to click on the corners of the
element instead. The problem is that the coordinates used for the click
are integer values, but Firefox has sub-pixel accuracy, so sometimes
(depending on which corner is not covered and whether the left, top,
width or height properties of the element to be clicked have a decimal
component or not) the clicks silently land on a different HTML element
(and that is with squared borders; with round borders they always land
on a different HTML element. That was partially addressed for Selenium
3.0 by clicking first on the edges, but it would still fail if the
middle point of the edges is covered but not the corners).

It is not possible to fix or even detect all that from the tests (except
maybe with some extreme hacks involving accessing private PHP members
from Mink and bypassing or replacing the standard JavaScript executed by
the Firefox driver with a custom implementation...), so it is not
possible to ensure that clicks during an animation will land on the
right element (in fact it is not possible even on static elements,
although except when the layout is wrong there should be no problem);
sometimes retrying a click when the element is covered would solve the
problem, sometimes it would cause a different element to be clicked (and
sometimes there would be even no retry, as the first click would have
silently landed on a different element than the expected one).

Therefore, a different approach must be used. Instead of trying to
automatically handle clicks during animations the tests must be written
being aware of the problem and thus waiting somehow for the animations
that can cause a problem to end before performing the clicks.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-10-19 01:46:13 +02:00
.github Move mention-bot notifications to code owners 2017-07-07 08:44:01 +02:00
.idea Add newline that was removed by 15be763d46 2014-12-10 09:38:32 +01:00
3rdparty@ec71700daf Bump third-party ref 2017-09-20 09:29:32 +02:00
apps Extend the clickable area of the file name to include the thumbnail 2017-10-19 01:46:13 +02:00
build Phan is moved to a new repo 2017-10-16 16:23:55 +02:00
config Add side effect note 2017-08-30 21:16:27 +02:00
contribute Add Developer Certificate of Origin (DCO) 2016-09-22 09:08:21 +02:00
core Move checkboxes to their own column 2017-10-19 01:46:13 +02:00
l10n Add oauth2 to transifex 2017-05-18 19:10:55 -05:00
lib Fix autoloading 2017-10-18 15:12:16 +02:00
ocs OC_OCS_Response is deprecated 2017-09-21 17:56:00 +02:00
ocs-provider Allow to call the files even when you are in another instance atm 2016-10-06 12:15:13 +02:00
resources Add mimetype support for .URL (Windows) and .webloc (macOS) files. Update places/link svg. Add filetype/link icon. Add repair step for mime types. 2017-08-31 16:53:07 +02:00
settings Set the data from the template 2017-10-18 15:12:03 +02:00
tests Solve acceptance test failure due to clicks on covered elements 2017-10-19 01:46:13 +02:00
themes Logo claim is not used anymore 2017-08-02 23:08:45 +02:00
.bowerrc ability to add bower resources 2014-11-03 20:54:40 +01:00
.codecov.yml Remove sunburst 2016-11-02 15:33:22 +01:00
.drone.yml Phan is moved to a new repo 2017-10-16 16:23:55 +02:00
.gitignore Add Visual Studio Code to .gitignore 2017-08-24 14:26:44 +02:00
.gitmodules targets 3rdparty submodule from Nc instead of oC 2016-06-28 18:39:51 +02:00
.htaccess Move X-Frame-Options into PHP 2017-03-26 17:26:11 +02:00
.jshintrc enable laxbreak option in jshintrc to comply with our coding guide lines 2014-11-04 12:51:54 +01:00
.lgtm Get rid of LGTM self approvals 2016-06-27 23:18:01 +02:00
.mailmap Fix more mailmap entries 2016-07-21 17:32:03 +02:00
.scrutinizer.yml Exclude phan from scrutinizer 2017-07-19 10:28:11 +02:00
.tag Add .tag file to make tar balls tracable 2014-06-14 17:40:32 +02:00
.user.ini Make sure memory limit is > post size and upload filesize 2016-09-13 16:50:36 +02:00
AUTHORS Update with robin 2016-07-21 18:13:58 +02:00
autotest-checkers.sh Add test to check if new files are added to the root of the repository 2017-07-12 11:52:42 +02:00
autotest-external.sh Set exit code to 1 if integration test is failing 2016-12-20 23:40:49 +01:00
autotest-hhvm.sh Combine autotest-hhvm.sh with autotest.sh 2015-05-04 16:37:23 +02:00
autotest-js.sh Fix sass compile tests 2017-03-20 14:12:45 +01:00
autotest.sh Fix drone 2017-07-14 15:04:18 +02:00
bower.json vendor: Update davclient.js to 0.1.2 2017-09-15 16:32:15 +02:00
buildjsdocs.sh Added OC.Files.Client Webdav-based files client 2015-11-22 16:05:49 +01:00
CHANGELOG.md Add link to real changelog 2017-07-19 10:39:55 +02:00
composer.json Install phan manually 2017-07-19 10:28:12 +02:00
console.php Brand it 🙈 2017-08-11 15:47:24 +02:00
CONTRIBUTING.md fix dev manual link 2017-01-10 11:02:05 +01:00
COPYING Rename COPYING-AGPL to COPYING 2016-09-13 22:51:02 +02:00
COPYING-README Rename COPYING-AGPL to COPYING 2016-09-13 22:51:02 +02:00
cron.php Always log cron execution 2017-08-17 09:45:11 +02:00
index.html Try to prefer index.php over index.html in the same directory 2013-04-24 15:11:53 +02:00
index.php Improve exception handling 2017-09-26 13:54:51 +02:00
issue_template.md Rename config section 2017-04-05 11:00:33 +02:00
occ Use a more universal shebang 2014-11-19 17:34:03 +01:00
public.php Add proper PHPDoc 2017-08-01 08:20:15 +02:00
README.md Add link to mastodon in readme 2017-07-21 08:58:51 +02:00
remote.php Suppress deprecated function in \OCP\JSON 2017-08-01 08:20:15 +02:00
robots.txt Add robot.txt 2013-01-28 16:39:53 -06:00
status.php Stricter phan config fixes 2017-08-01 08:20:13 +02:00
version.php Migrate all core id columns to bigint 2017-09-29 11:10:56 +02:00

Nextcloud Server

Scrutinizer Code Quality codecov CII Best Practices irc irc

A safe home for all your data.

Why is this so awesome?

  • 📁 Access your Data You can store your files, contacts, calendars and more on a server of your choosing.
  • 📦 Sync your Data You keep your files, contacts, calendars and more synchronized amongst your devices.
  • 🔄 Share your Data …by giving others access to the stuff you want them to see or to collaborate with.
  • 🚀 Expandable with dozens of Apps ...like Calendar, Contacts, Mail and all those you can discover in our App Store
  • 🔒 Security with our encryption mechanisms, HackerOne bounty program and two-factor authentification.

You want to learn more about how you can use Nextcloud to access, share and protect your files, calendars, contacts, communication & more at home and at your Enterprise? Learn about all our Features.

Get your Nextcloud

Enterprise? Public Sector or Education user? You may want to have a look into the Enterprise Support Subscription provided by the Nextcloud GmbH

Get in touch

…learn more about how to get support for Nextcloud here!

Contribution Guidelines

All contributions to this repository from June, 16 2016 on are considered to be licensed under the AGPLv3 or any later version.

Nextcloud doesn't require a CLA (Contributor License Agreement). The copyright belongs to all the individual contributors. Therefore we recommend that every contributor adds following line to the header of a file, if they changed it substantially:

@copyright Copyright (c) <year>, <your name> (<your email address>)

Please read the Code of Conduct. This document offers some guidance to ensure Nextcloud participants can cooperate effectively in a positive and inspiring atmosphere, and to explain how together we can strengthen and support each other.

Please review the guidelines for contributing to this repository.

More information how to contribute: https://nextcloud.com/contribute/

Running master checkouts

Third-party components are handled as git submodules which have to be initialized first. So aside from the regular git checkout invoking git submodule update --init or a similar command is needed, for details see Git documentation.

Several apps by default included in regular releases like firstrunwizard or gallery are missing in master and have to be installed manually as required.

That aside Git checkouts can be handled the same as release archives.

Note they should never be used on production systems.