Commit Graph

445 Commits

Author SHA1 Message Date
blizzz 8bc381f104
Merge pull request #20037 from nextcloud/fix/19127/deprecated-ldap_control_paged_result_1
do not use deprecated API for LDAP paged results
2020-04-15 15:02:51 +02:00
Joas Schilling 4e846dda4d
Allow local remotes in integration tests
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-04-15 08:24:18 +02:00
Arthur Schiwon 84619a5b9c
use serverControls directly with LDAP calls, fixes 19127
- adapters for PHP API version to Support PHP < 7.3
- switch to pass only one base per search
- cookie logic is moved from Access to API adapters

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2020-04-14 12:58:28 +02:00
Daniel Calviño Sánchez 7440868acd Fix app not listed in provisioning integration test
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-04-13 15:07:59 +02:00
Christoph Wurst caff1023ea
Format control structures, classes, methods and function
To continue this formatting madness, here's a tiny patch that adds
unified formatting for control structures like if and loops as well as
classes, their methods and anonymous functions. This basically forces
the constructs to start on the same line. This is not exactly what PSR2
wants, but I think we can have a few exceptions with "our" style. The
starting of braces on the same line is pracrically standard for our
code.

This also removes and empty lines from method/function bodies at the
beginning and end.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 14:19:56 +02:00
Christoph Wurst 14c996d982
Use elseif instead of else if
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 10:35:09 +02:00
Christoph Wurst bcd13296de
Make sure every file ends with an empty newline
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-09 16:11:50 +02:00
Christoph Wurst 44577e4345
Remove trailing and in between spaces
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-09 16:07:47 +02:00
Christoph Wurst afbd9c4e6e
Unify function spacing to PSR2 recommendation
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-09 13:54:22 +02:00
Christoph Wurst 1a9330cd69
Update the license headers for Nextcloud 19
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-03-31 14:52:54 +02:00
Christoph Wurst 463b388589
Merge pull request #20170 from nextcloud/techdebt/remove-unused-imports
Remove unused imports
2020-03-27 17:14:08 +01:00
Christoph Wurst b80ebc9674
Use the short array syntax, everywhere
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-03-26 16:34:56 +01:00
Christoph Wurst 74936c49ea
Remove unused imports
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-03-25 22:08:08 +01:00
Christoph Wurst 23eb0462e5
Use lowercase true, false and null constants
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-03-25 21:53:04 +01:00
Daniel Calviño Sánchez ec63327472 Force compatible EventDispatcher version in integration tests
Nextcloud requires EventDispatcher from Symfony 4.4. Behat required
Symfony 4.x until Behat 3.5, but since Behat 3.6 it supports Symfony 5.x
too. However, as the EventDispatcher version was not restricted in the
"composer.json" file Composer installed the latest compatible version
with all the dependencies, which happened to be Symfony 5.x. To prevent
that now the EventDispatcher is explicitly limited to Symfony 4.4 only.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-03-12 10:45:23 +01:00
dependabot-preview[bot] cb2877abd3
Update behat/behat requirement in /build/integration
Updates the requirements on [behat/behat](https://github.com/Behat/Behat) to permit the latest version.
- [Release notes](https://github.com/Behat/Behat/releases)
- [Changelog](https://github.com/Behat/Behat/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Behat/Behat/compare/v3.5.0...v3.6.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-12 19:28:54 +00:00
dependabot-preview[bot] 1829ee816d
Update guzzlehttp/guzzle requirement in /build/integration
Updates the requirements on [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) to permit the latest version.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/master/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/6.3.3...6.5.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-09 02:14:17 +00:00
Roeland Jago Douma fc77f530d7
Don't show link shares hash in inherited share list
This adds no value at all. Just showing the text "(Shared link)" now.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-01-15 09:21:53 +01:00
John Molakvoæ (skjnldsv) edf8893479
Fix tests
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2019-12-10 23:44:17 +01:00
Christoph Wurst 5bf3d1bb38
Update license headers
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2019-12-05 15:38:45 +01:00
Maxence Lange ccf7d87c11
integration tests
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
add tests on non-owner pov

Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
duplicate

Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
small fixes

Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
removed tags

Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2019-12-03 08:10:27 +01:00
Roeland Jago Douma 407c2c13ab
Merge pull request #18159 from nextcloud/tests/comments-integration
Do not call count on null
2019-12-02 08:53:02 +01:00
Julius Härtl 330cb7047e
Do not call count on null
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-11-29 09:59:35 +01:00
Roeland Jago Douma 3cda67c8b1
Fix integration
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2019-11-28 10:22:05 +01:00
Daniel Calviño Sánchez 54f8f75f6f Accept incoming shares in integration tests
Now all incoming shares need to be explicitly accepted before being able
to use the shared file or get information about a reshare (although
getting the information of the incoming share is possible before
accepting it).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2019-11-20 15:47:11 +01:00
Daniel Calviño Sánchez 9004e90f5d Replace direct calls to share API with specific share steps
This makes possible to use steps that reference the last share, which
will be needed to accept pending shares.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2019-11-20 13:11:49 +01:00
Daniel Calviño Sánchez 847bd0f05b Remove extra spaces at the end of lines
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2019-11-20 13:10:35 +01:00
John Molakvoæ (skjnldsv) ea6f423e2c Extend data returned when searching remote shares
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2019-10-29 12:55:59 +01:00
Daniel Calviño Sánchez d0b205d0dd
Add more integration tests for getting shares
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2019-10-26 14:22:17 +02:00
Daniel Calviño Sánchez eaa98ed343 Add integration tests for getting shares including subfiles
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2019-10-25 18:37:36 +02:00
Daniel Calviño Sánchez bb9814d052 Replace fully qualified name with alias
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2019-10-25 10:48:38 +02:00
John Molakvoæ (skjnldsv) ff895abac0
Fix shares read permissions
A user with reshare permissions on a file is now able to get any share
of that file (just like the owner).

Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2019-10-04 21:40:30 +02:00
Daniel Calviño Sánchez 6d4f4c1c70
Add assorted integration tests for shares
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2019-10-04 19:25:11 +02:00
Daniel Calviño Sánchez a7526d74ae
Do not expect a 200 HTTP status code when updating a share
This will be needed to test scenarios in which updating a share return a
different HTTP status code, like 401.

The assertion for the 200 HTTP status code was added in those scenarios
that tested updating a share (that is, those that were also checking the
OCS status code), but not in those in which updating a share was just a
preparatory step for the actual test (in the same way that the HTTP
status code is not checked in those tests when creating a share).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2019-10-04 19:25:10 +02:00
John Molakvoæ (skjnldsv) 99404bdfb3
Move sharing integration tests to their own directory
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2019-10-04 19:25:10 +02:00
John Molakvoæ (skjnldsv) ba1ba1a55e
Add helper script to run integration tests on a Docker container
Copied and adjusted from "tests/integration/run-docker.sh" in Talk; see
its commit history for further reference.

Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2019-10-04 19:25:10 +02:00
Christoph Wurst de6940352a Move settings to an app
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Signed-off-by: npmbuildbot[bot] <npmbuildbot[bot]@users.noreply.github.com>
2019-09-28 09:39:28 +00:00
Joas Schilling e4addbae3e
Better check reshare permissions when creating a share
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-07-03 14:00:13 +02:00
Daniel Calviño Sánchez f01a772a1a
Add integration test for increasing sub reshare permissions
The tests check an user share and a link share; there is a slight
difference in style between them as each one is based on the test above
it, which tests increasing reshare permissions.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2019-06-27 15:27:30 +02:00
Daniel Calviño Sánchez 3802174f06
Do not create folders with admin user
The admin user is not deleted after each integration test is run, so
folders created by the admin user in one test are still there when the
next tests run; tests should be independent one from each other, so a
regular user that is created and deleted for each test should be used
instead.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2019-06-27 15:27:30 +02:00
Arthur Schiwon 437b33ff63
add LDAP integr. test for receiving share candidates with group limitation
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2019-06-14 06:23:58 +02:00
Arthur Schiwon 54299f4e66
set the ldapGroupMemberAssocAttr for group tests
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2019-05-22 12:48:12 +02:00
Julius Härtl 771ad85f85
Add integration tests for updating folder shares
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-04-16 15:03:52 +02:00
Arthur Schiwon a692f28320
add an integration test that ensures deletion of LDAP users
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2019-03-14 15:21:52 +01:00
Morris Jobke f6a12864a5
Disable failing federated sharing tests
Fails with:

 * build/integration/federation_features/federated.feature:183
 * build/integration/federation_features/federated.feature:232
 * build/integration/federation_features/federated.feature:247
 * build/integration/federation_features/federated.feature:263
<details><summary>Show full log</summary>

```
  Scenario: Reshare a federated shared file                                                             # /drone/src/github.com/nextcloud/server/build/integration/federation_features/federated.feature:183
    Given Using server "REMOTE"                                                                         # FederationContext::usingServer()
    And user "user1" exists                                                                             # FederationContext::assureUserExists()
    And user "user2" exists                                                                             # FederationContext::assureUserExists()
    And Using server "LOCAL"                                                                            # FederationContext::usingServer()
    And user "user0" exists                                                                             # FederationContext::assureUserExists()
    And User "user0" from server "LOCAL" shares "/textfile0.txt" with user "user1" from server "REMOTE" # FederationContext::federateSharing()
    And User "user1" from server "REMOTE" accepts last pending share                                    # FederationContext::acceptLastPendingShare()
    And Using server "REMOTE"                                                                           # FederationContext::usingServer()
    And As an "user1"                                                                                   # FederationContext::asAn()
    When creating a share with                                                                          # FederationContext::creatingShare()
      | path        | /textfile0 (2).txt |
      | shareType   | 0                  |
      | shareWith   | user2              |
      | permissions | 19                 |
    Then the OCS status code should be "100"                                                            # FederationContext::theOCSStatusCodeShouldBe()
      Failed asserting that SimpleXMLElement Object &000000007d8e0d3c00000000403fd08a (
          0 => '404'
      ) matches expected '100'.
    ...
{"message":"Can not find share with ID: 8"}

  Scenario: Overwrite a federated shared folder as recipient                                             # /drone/src/github.com/nextcloud/server/build/integration/federation_features/federated.feature:232
    Given Using server "REMOTE"                                                                          # FederationContext::usingServer()
    And user "user1" exists                                                                              # FederationContext::assureUserExists()
    And user "user2" exists                                                                              # FederationContext::assureUserExists()
    And Using server "LOCAL"                                                                             # FederationContext::usingServer()
    And user "user0" exists                                                                              # FederationContext::assureUserExists()
    And User "user0" from server "LOCAL" shares "/PARENT" with user "user1" from server "REMOTE"         # FederationContext::federateSharing()
    And User "user1" from server "REMOTE" accepts last pending share                                     # FederationContext::acceptLastPendingShare()
    And Using server "REMOTE"                                                                            # FederationContext::usingServer()
    And As an "user1"                                                                                    # FederationContext::asAn()
    And User "user1" modifies text of "/textfile0.txt" with text "BLABLABLA"                             # FederationContext::modifyTextOfFile()
    When User "user1" uploads file "../../data/user1/files/textfile0.txt" to "/PARENT (2)/textfile0.txt" # FederationContext::userUploadsAFileTo()
      Client error: `PUT http://localhost:8180/remote.php/webdav/PARENT%20(2)/textfile0.txt` resulted in a `404 Not Found` response:
      <?xml version="1.0" encoding="utf-8"?>
      <d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
        <s:exception>Sabre\DA (truncated...)
       (GuzzleHttp\Exception\ClientException)
    ...
{"message":"Can not find share with ID: 10"}

  Scenario: Overwrite a federated shared file as recipient using old chunking                           # /drone/src/github.com/nextcloud/server/build/integration/federation_features/federated.feature:247
    Given Using server "REMOTE"                                                                         # FederationContext::usingServer()
    And user "user1" exists                                                                             # FederationContext::assureUserExists()
    And user "user2" exists                                                                             # FederationContext::assureUserExists()
    And Using server "LOCAL"                                                                            # FederationContext::usingServer()
    And user "user0" exists                                                                             # FederationContext::assureUserExists()
    And User "user0" from server "LOCAL" shares "/textfile0.txt" with user "user1" from server "REMOTE" # FederationContext::federateSharing()
    And User "user1" from server "REMOTE" accepts last pending share                                    # FederationContext::acceptLastPendingShare()
    And Using server "REMOTE"                                                                           # FederationContext::usingServer()
    And As an "user1"                                                                                   # FederationContext::asAn()
    And user "user1" uploads chunk file "1" of "3" with "AAAAA" to "/textfile0 (2).txt"                 # FederationContext::userUploadsChunkFileOfWithToWithChecksum()
      Client error: `PUT http://localhost:8180/remote.php/webdav/textfile0%20(2).txt-chunking-42-3-0` resulted in a `404 Not Found` response:
      <?xml version="1.0" encoding="utf-8"?>
      <d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
        <s:exception>Sabre\DA (truncated...)
       (GuzzleHttp\Exception\ClientException)
    ...
{"message":"Can not find share with ID: 11"}

  Scenario: Overwrite a federated shared folder as recipient using old chunking                  # /drone/src/github.com/nextcloud/server/build/integration/federation_features/federated.feature:263
    Given Using server "REMOTE"                                                                  # FederationContext::usingServer()
    And user "user1" exists                                                                      # FederationContext::assureUserExists()
    And user "user2" exists                                                                      # FederationContext::assureUserExists()
    And Using server "LOCAL"                                                                     # FederationContext::usingServer()
    And user "user0" exists                                                                      # FederationContext::assureUserExists()
    And User "user0" from server "LOCAL" shares "/PARENT" with user "user1" from server "REMOTE" # FederationContext::federateSharing()
    And User "user1" from server "REMOTE" accepts last pending share                             # FederationContext::acceptLastPendingShare()
    And Using server "REMOTE"                                                                    # FederationContext::usingServer()
    And As an "user1"                                                                            # FederationContext::asAn()
    And user "user1" uploads chunk file "1" of "3" with "AAAAA" to "/PARENT (2)/textfile0.txt"   # FederationContext::userUploadsChunkFileOfWithToWithChecksum()
      Client error: `PUT http://localhost:8180/remote.php/webdav/PARENT%20(2)/textfile0.txt-chunking-42-3-0` resulted in a `404 Not Found` response:
      <?xml version="1.0" encoding="utf-8"?>
      <d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
        <s:exception>Sabre\DA (truncated...)
       (GuzzleHttp\Exception\ClientException)
    ...
{"message":"Can not find share with ID: 12"}

```
</details>

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-13 18:01:24 +01:00
Arthur Schiwon 987db8e6c5
add missing config bits to integration tests
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2019-03-06 00:09:23 +01:00
Arthur Schiwon dfc7007242
with LDAP server set offline, config cannot be controlled via ocs anymore
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2019-03-05 23:13:49 +01:00
Arthur Schiwon 5dd2207c95
fix nested group retrieval also for 2 other cases
and also consolidate logic in one method

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2019-03-05 11:07:40 +01:00
Daniel Kesselberg 75b7d6ae4e
Add install logic for enable command
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2019-02-19 21:03:06 +01:00
Daniel Kesselberg 76b5f44f05
Strict Types, Return Types
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2019-02-19 21:03:06 +01:00