From e815b132657c6dddfb5d1997cce4aa8002ab1829 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Calvi=C3=B1o=20S=C3=A1nchez?= Date: Thu, 11 Jun 2020 23:12:20 +0200 Subject: [PATCH] Generalize functions to get locators for share permission checkboxes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Daniel Calviño Sánchez --- .../bootstrap/FilesAppSharingContext.php | 32 +++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/tests/acceptance/features/bootstrap/FilesAppSharingContext.php b/tests/acceptance/features/bootstrap/FilesAppSharingContext.php index 6b30d49d71..8cbe64a333 100644 --- a/tests/acceptance/features/bootstrap/FilesAppSharingContext.php +++ b/tests/acceptance/features/bootstrap/FilesAppSharingContext.php @@ -103,22 +103,36 @@ class FilesAppSharingContext implements Context, ActorAwareInterface { /** * @return Locator */ - public static function canReshareCheckbox($sharedWithName) { - // forThe()->checkbox("Can reshare") can not be used here; that would - // return the checkbox itself, but the element that the user interacts - // with is the label. - return Locator::forThe()->xpath("//label[normalize-space() = 'Allow resharing']")-> + public static function permissionCheckboxFor($sharedWithName, $itemText) { + // forThe()->checkbox($itemText) can not be used here; that would return + // the checkbox itself, but the element that the user interacts with is + // the label. + return Locator::forThe()->xpath("//label[normalize-space() = '$itemText']")-> descendantOf(self::shareWithMenu($sharedWithName))-> - describedAs("Allow resharing checkbox in the share with $sharedWithName menu in the details view in Files app"); + describedAs("$itemText checkbox in the share with $sharedWithName menu in the details view in Files app"); + } + + /** + * @return Locator + */ + public static function permissionCheckboxInputFor($sharedWithName, $itemText) { + return Locator::forThe()->checkbox($itemText)-> + descendantOf(self::shareWithMenu($sharedWithName))-> + describedAs("$itemText checkbox input in the share with $sharedWithName menu in the details view in Files app"); + } + + /** + * @return Locator + */ + public static function canReshareCheckbox($sharedWithName) { + return self::permissionCheckboxFor($sharedWithName, 'Allow resharing'); } /** * @return Locator */ public static function canReshareCheckboxInput($sharedWithName) { - return Locator::forThe()->checkbox("Allow resharing")-> - descendantOf(self::shareWithMenu($sharedWithName))-> - describedAs("Allow resharing checkbox input in the share with $sharedWithName menu in the details view in Files app"); + return self::permissionCheckboxInputFor($sharedWithName, 'Allow resharing'); } /**