From 28f2d0ec7a51fdeab1d7294346ad8c3bc92cb6c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Calvi=C3=B1o=20S=C3=A1nchez?= <danxuliu@gmail.com> Date: Tue, 29 Dec 2020 19:48:38 +0100 Subject: [PATCH] Make integration tests work with both PHP 7.3 and 7.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The "Trashbin" and "WebDav" traits were using each other in a circular dependency ("WebDav" -> "Sharing" -> "Provisioning" -> "BasicStructure" -> "Trashbin" -> "WebDav"). In PHP 7.3 this worked fine, but in PHP 7.4 the fatal error "Trait 'WebDav' not found in .../Trashbin.php" was thrown. To solve this now the "TrashBin" trait no longer explicitly uses "WebDav". However, due to this change, the class using "TrashBin" is now expected to also use "WebDav". As the "Trashbin" trait was not needed by most contexts using the "BasicStructure" trait "Trashbin" was removed from it and added only to those contexts that actually need it. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com> --- build/integration/features/bootstrap/BasicStructure.php | 1 - build/integration/features/bootstrap/FeatureContext.php | 1 + build/integration/features/bootstrap/SharingContext.php | 3 ++- build/integration/features/bootstrap/Trashbin.php | 3 ++- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/build/integration/features/bootstrap/BasicStructure.php b/build/integration/features/bootstrap/BasicStructure.php index c8c40d2a98b..fcccddc318f 100644 --- a/build/integration/features/bootstrap/BasicStructure.php +++ b/build/integration/features/bootstrap/BasicStructure.php @@ -47,7 +47,6 @@ trait BasicStructure { use Avatar; use Download; use Mail; - use Trashbin; /** @var string */ private $currentUser = ''; diff --git a/build/integration/features/bootstrap/FeatureContext.php b/build/integration/features/bootstrap/FeatureContext.php index 66e2282608e..e9c486daa4d 100644 --- a/build/integration/features/bootstrap/FeatureContext.php +++ b/build/integration/features/bootstrap/FeatureContext.php @@ -35,4 +35,5 @@ require __DIR__ . '/../../vendor/autoload.php'; class FeatureContext implements Context, SnippetAcceptingContext { use Search; use WebDav; + use Trashbin; } diff --git a/build/integration/features/bootstrap/SharingContext.php b/build/integration/features/bootstrap/SharingContext.php index b1a4c1aa48b..be719cbf379 100644 --- a/build/integration/features/bootstrap/SharingContext.php +++ b/build/integration/features/bootstrap/SharingContext.php @@ -32,7 +32,8 @@ require __DIR__ . '/../../vendor/autoload.php'; * Features context. */ class SharingContext implements Context, SnippetAcceptingContext { - use Sharing; + use WebDav; + use Trashbin; use AppConfiguration; use CommandLine; diff --git a/build/integration/features/bootstrap/Trashbin.php b/build/integration/features/bootstrap/Trashbin.php index 3eb6ce812ec..536ed6a9015 100644 --- a/build/integration/features/bootstrap/Trashbin.php +++ b/build/integration/features/bootstrap/Trashbin.php @@ -30,7 +30,8 @@ require __DIR__ . '/../../vendor/autoload.php'; * Trashbin functions */ trait Trashbin { - use WebDav; + + // WebDav trait is expected to be used in the class that uses this trait. /** * @When User :user empties trashbin -- GitLab