From 6e5a9d12fb56b0091a5005a0c7fd1403c16a5290 Mon Sep 17 00:00:00 2001 From: Kiran Parajuli Date: Fri, 13 Mar 2020 11:59:31 +0545 Subject: [PATCH] Modified then steps and refactors --- .../shareWithGroups.feature | 44 +++------ .../shareWithUsers.feature | 82 ++++++++--------- .../FilesPageElement/expirationDatePicker.js | 34 +++---- .../FilesPageElement/publicLinksDialog.js | 14 +-- .../FilesPageElement/sharingDialog.js | 89 +++++++++++-------- .../stepDefinitions/publicLinkContext.js | 10 ++- .../stepDefinitions/sharingContext.js | 54 ++++++----- 7 files changed, 167 insertions(+), 160 deletions(-) diff --git a/tests/acceptance/features/webUISharingInternalGroups/shareWithGroups.feature b/tests/acceptance/features/webUISharingInternalGroups/shareWithGroups.feature index dc5a8ffe0f4..af534434634 100644 --- a/tests/acceptance/features/webUISharingInternalGroups/shareWithGroups.feature +++ b/tests/acceptance/features/webUISharingInternalGroups/shareWithGroups.feature @@ -367,46 +367,35 @@ Feature: Sharing files and folders with internal groups | share_with | grp1 | | expiration | +7 | - Scenario Outline: default expiration date on group share + Scenario: share a resource with another internal group with default expiration date Given the setting "shareapi_default_expire_date_group_share" of app "core" has been set to "yes" And the setting "shareapi_expire_after_n_days_group_share" of app "core" has been set to "42" And user "user3" has logged in using the webUI When the user shares folder "" with group "grp1" as "Viewer" using the webUI Then user "user3" should have a share with these details: | field | value | - | path | / | + | path | /lorem.txt | | share_type | group | | uid_owner | user3 | | share_with | grp1 | | expiration | +42 | - And user "user1" should have received a share with target "" and expiration date in 42 days - And user "user2" should have received a share with target "" and expiration date in 42 days - Examples: - | shared-resource | target-resource | - | lorem.txt | lorem (2).txt | - | simple-folder | simple-folder (2) | + And user "user1" should have received a share with target "lorem.txt" and expiration date in 42 days + And user "user2" should have received a share with target "lorem.txt" and expiration date in 42 days - Scenario Outline: enforced expiration date on group share + Scenario Outline: share a resource with another internal group with expiration date beyond maximum enforced expiration date Given the setting "shareapi_default_expire_date_group_share" of app "core" has been set to "yes" And the setting "shareapi_enforce_expire_date_group_share" of app "core" has been set to "yes" And the setting "shareapi_expire_after_n_days_group_share" of app "core" has been set to "5" And user "user3" has logged in using the webUI - When the user tries to share file "" with group "grp1" which expires after 6 days using the webUI - Then user "user3" should have a share with these details: - | field | value | - | path | / | - | share_type | group | - | uid_owner | user3 | - | share_with | grp1 | - | expiration | +5 | - And user "user1" should have received a share with target "" and expiration date in 5 days - And user "user2" should have received a share with target "" and expiration date in 5 days + When the user tries to share file "" with group "grp1" which expires in "+6" days using the webUI + Then the expiration date input field of collaborators form should have value with "+5" days on the webUI + And user "user1" should not have created any shares Examples: - | shared-resource | target-resource | - | lorem.txt | lorem (2).txt | - | simple-folder | simple-folder (2) | + | shared-resource | + | lorem.txt | + | simple-folder | - Scenario Outline: user cannot change the expiry date of an existing group share to a date that is past enforced maximum expiration date + Scenario Outline: share a resource with another internal group with expiration date within maximum enforced expiration date Given the setting "shareapi_default_expire_date_group_share" of app "core" has been set to "yes" And the setting "shareapi_enforce_expire_date_group_share" of app "core" has been set to "yes" And the setting "shareapi_expire_after_n_days_group_share" of app "core" has been set to "5" @@ -417,13 +406,8 @@ Feature: Sharing files and folders with internal groups | expireDate | +4 | And user "user3" has logged in using the webUI When the user tries to edit the collaborator expiry date of "grp1" of file "" to "+7" days using the webUI - Then user "user3" should have a share with these details: - | field | value | - | path | / | - | share_type | group | - | uid_owner | user3 | - | share_with | grp1 | - | expiration | +4 | + Then the expiration date input field of collaborators form should have value with "+4" days on the webUI + Then it should not be possible to save the pending share on the webUI And user "user1" should have received a share with target "" and expiration date in 4 days And user "user2" should have received a share with target "" and expiration date in 4 days Examples: diff --git a/tests/acceptance/features/webUISharingInternalUsers/shareWithUsers.feature b/tests/acceptance/features/webUISharingInternalUsers/shareWithUsers.feature index 036f2184cf4..f0f739c816c 100644 --- a/tests/acceptance/features/webUISharingInternalUsers/shareWithUsers.feature +++ b/tests/acceptance/features/webUISharingInternalUsers/shareWithUsers.feature @@ -593,7 +593,7 @@ Feature: Sharing files and folders with internal users Scenario: share a file with another internal user which should expire after 2 days Given user "user1" has logged in using the webUI - When the user shares file "testimage.jpg" with user "User Two" which expires after 2 days using the webUI + When the user shares file "testimage.jpg" with user "User Two" which expires in "+2" days using the webUI Then user "user2" should have received a share with target "testimage (2).jpg" and expiration date in 2 days Scenario: share a file with another internal user with default expiration date @@ -619,63 +619,53 @@ Feature: Sharing files and folders with internal users | share_with | user2 | | expiration | +7 | - Scenario Outline: user cannot set an expiry date that is past enforced maximum expiration date on user share + Scenario: share a resource with another internal user with expiration date within enforced maximum expiration date + user can set an expiry date when creating a share to a date that is before the enforced max expiry date Given the setting "shareapi_default_expire_date_user_share" of app "core" has been set to "yes" And the setting "shareapi_enforce_expire_date_user_share" of app "core" has been set to "yes" And the setting "shareapi_expire_after_n_days_user_share" of app "core" has been set to "5" And user "user1" has logged in using the webUI - When the user tries to share file "" with user "User Two" which expires after 6 days using the webUI + When the user shares file "lorem.txt" with user "User Two" which expires in "+4" days using the webUI Then user "user1" should have a share with these details: - | field | value | - | path | / | - | share_type | user | - | uid_owner | user1 | - | share_with | user2 | - | expiration | +5 | - And user "user2" should have received a share with target "" and expiration date in 5 days - Examples: - | shared-resource | target-resource | - | lorem.txt | lorem (2).txt | - | simple-folder | simple-folder (2) | + | field | value | + | path | /lorem.txt | + | share_type | user | + | uid_owner | user1 | + | share_with | user2 | + | expiration | +4 | - Scenario Outline: user cannot change the expiry date of an existing user share to a date that is past enforced maximum expiration date + Scenario Outline: share a resource with another internal user with expiration date beyond enforced maximum expiration date Given the setting "shareapi_default_expire_date_user_share" of app "core" has been set to "yes" And the setting "shareapi_enforce_expire_date_user_share" of app "core" has been set to "yes" And the setting "shareapi_expire_after_n_days_user_share" of app "core" has been set to "5" - And user "user1" has created a new share with following settings - | path | | - | shareWith | user2 | - | expireDate | +4 | And user "user1" has logged in using the webUI - When the user tries to edit the collaborator expiry date of "User Two" of file "" to "+7" days using the webUI - Then user "user1" should have a share with these details: - | field | value | - | path | / | - | share_type | user | - | uid_owner | user1 | - | share_with | user2 | - | expiration | +4 | + When the user tries to share file "" with user "User Two" which expires in "+6" days using the webUI + Then the expiration date input field of collaborators form should have value with "+5" days on the webUI + And user "user1" should not have created any shares Examples: | shared-resource | | lorem.txt | | simple-folder | - Scenario: user can set an expiry date when creating a share to a date that is before the enforced max expiry date + Scenario Outline: edit a share with another internal user changing expiration date within enforced maximum expiration date Given the setting "shareapi_default_expire_date_user_share" of app "core" has been set to "yes" And the setting "shareapi_enforce_expire_date_user_share" of app "core" has been set to "yes" And the setting "shareapi_expire_after_n_days_user_share" of app "core" has been set to "5" + And user "user1" has created a new share with following settings + | path | | + | shareWith | user2 | + | expireDate | +4 | And user "user1" has logged in using the webUI - When the user shares file "lorem.txt" with user "User Two" which expires after 4 days using the webUI - Then user "user1" should have a share with these details: - | field | value | - | path | /lorem.txt | - | share_type | user | - | uid_owner | user1 | - | share_with | user2 | - | expiration | +4 | + When the user tries to edit the collaborator expiry date of "User Two" of resource "" to "+7" days using the webUI + Then the expiration date input field of collaborators form should have value with "+4" days on the webUI + Then it should not be possible to save the pending share on the webUI + Examples: + | shared-resource | + | lorem.txt | + | simple-folder | @issue-3174 - Scenario Outline: user cannot share to date beyond enforced max expiry date if default expiry date for both user and group is enabled + Scenario Outline: user cannot share with user with expiration date within set enforced maximum date if default expiry date for both user and group is enabled Given user "user3" has been created with default attributes And group "grp1" has been created And user "user2" has been added to group "grp1" @@ -686,14 +676,16 @@ Feature: Sharing files and folders with internal users And the setting "shareapi_expire_after_n_days_user_share" of app "core" has been set to "10" And the setting "shareapi_expire_after_n_days_group_share" of app "core" has been set to "5" And user "user3" has logged in using the webUI - When the user shares file "" with user "User Two" which expires after 6 days using the webUI - Then user "user3" should have a share with these details: - | field | value | - | path | / | - | share_type | user | - | uid_owner | user3 | - | share_with | user2 | - | expiration | +5 | + When the user tries to share file "" with user "User Two" which expires in "+6" days using the webUI + Then the expiration date input field of collaborators form should have value with "+5" days on the webUI +# Then user "user2" should have received a share with target "" and expiration date in 6 days +# And user "user1" should have a share with these details: +# | field | value | +# | path | /lorem.txt | +# | share_type | user | +# | uid_owner | user3 | +# | share_with | user2 | +# | expiration | +6 | Examples: | shared-resource | | lorem.txt | diff --git a/tests/acceptance/pageObjects/FilesPageElement/expirationDatePicker.js b/tests/acceptance/pageObjects/FilesPageElement/expirationDatePicker.js index 2962405564a..31843d9f2c2 100644 --- a/tests/acceptance/pageObjects/FilesPageElement/expirationDatePicker.js +++ b/tests/acceptance/pageObjects/FilesPageElement/expirationDatePicker.js @@ -1,5 +1,4 @@ const util = require('util') -const sharingHelper = require('../../helpers/sharingHelper') module.exports = { commands: { @@ -105,11 +104,8 @@ module.exports = { const monthSelector = this.setExpiryDateMonthSelectorXpath( pastDate.toLocaleString('en-GB', { month: 'long' }) ) - const daySelector = this.setExpiryDateDaySelectorXpath(pastDate.getDay()) + const daySelector = this.setExpiryDateDaySelectorXpath(pastDate.getDate()) await this - .initAjaxCounters() - .waitForElementVisible('@linkExpirationDateField') - .click('@linkExpirationDateField') .waitForElementVisible('@dateTimePopupYear') .waitForAnimationToFinish() .waitForElementEnabled( @@ -150,25 +146,32 @@ module.exports = { * sets expiration date on collaborators/public-link shares * * @param {string} value - provided date in format YYYY-MM-DD, or empty string to unset date - * @returns {Promise} + * @param {string} shareType link|collaborator + * @returns {Promise} returns true if succeeds to set provided expiration date */ - setExpirationDate: async function (value) { + setExpirationDate: async function (value, shareType = 'collaborator') { if (value === '') { return this.click('@publicLinkDeleteExpirationDateButton') } - value = sharingHelper.calculateDate(value) const dateToSet = new Date(Date.parse(value)) + if (shareType === 'collaborator') { + const disabled = await this.isExpiryDateDisabled(dateToSet) + if (disabled) { + console.log('WARNING: Cannot change expiration date to disabled value!') + await this + .waitForElementVisible('@dateTimeCancelButton') + .click('@dateTimeCancelButton') + return false + } + } const year = dateToSet.getFullYear() const month = dateToSet.toLocaleString('en-GB', { month: 'long' }) const day = dateToSet.getDate() await this - .initAjaxCounters() - .waitForElementVisible('@linkExpirationDateField') - .click('@linkExpirationDateField') - return this .setExpiryDateYear(year) .setExpiryDateMonth(month) .setExpiryDateDay(day) + return true } }, elements: { @@ -191,12 +194,13 @@ module.exports = { selector: '//div[@class="vdatetime-popup__actions"]/div[.="Ok"]', locateStrategy: 'xpath' }, + dateTimeCancelButton: { + selector: '//div[@class="vdatetime-popup__actions"]/div[.="Cancel"]', + locateStrategy: 'xpath' + }, dateTimePopupDate: { selector: '.vdatetime-popup__date' }, - linkExpirationDateField: { - selector: '.vdatetime-input' - }, publicLinkDeleteExpirationDateButton: { selector: '#oc-files-file-link-expire-date-delete' } diff --git a/tests/acceptance/pageObjects/FilesPageElement/publicLinksDialog.js b/tests/acceptance/pageObjects/FilesPageElement/publicLinksDialog.js index 4e403122fbd..fab2f3bc2b2 100644 --- a/tests/acceptance/pageObjects/FilesPageElement/publicLinksDialog.js +++ b/tests/acceptance/pageObjects/FilesPageElement/publicLinksDialog.js @@ -1,5 +1,6 @@ const util = require('util') const _ = require('lodash') +const sharingHelper = require('../../helpers/sharingHelper') module.exports = { commands: { @@ -79,12 +80,13 @@ module.exports = { } else if (key === 'password') { return this.setPublicLinkPassword(value) } else if (key === 'expireDate') { + sharingHelper.calculateDate(value) return this.api.page .FilesPageElement - .expirationDatePicker() - .setExpirationDate(value) + .sharingDialog() + .openExpiryDateCalender() + .setExpirationDate(value, 'link') } - return this }, /** * sets up public link share edit form @@ -97,10 +99,10 @@ module.exports = { * @param {string} editData.expireDate - Expire date for a public link share * @returns {exports} */ - editPublicLink: function (linkName, editData) { - this.clickLinkEditBtn(linkName) + editPublicLink: async function (linkName, editData) { + await this.clickLinkEditBtn(linkName) for (const [key, value] of Object.entries(editData)) { - this.setPublicLinkForm(key, value) + await this.setPublicLinkForm(key, value) } return this }, diff --git a/tests/acceptance/pageObjects/FilesPageElement/sharingDialog.js b/tests/acceptance/pageObjects/FilesPageElement/sharingDialog.js index d3ed299fe67..26d5d1b5d2f 100644 --- a/tests/acceptance/pageObjects/FilesPageElement/sharingDialog.js +++ b/tests/acceptance/pageObjects/FilesPageElement/sharingDialog.js @@ -1,6 +1,6 @@ const util = require('util') const _ = require('lodash') -const { COLLABORATOR_PERMISSION_ARRAY } = require('../../helpers/sharingHelper') +const sharingHelper = require('../../helpers/sharingHelper') const { client } = require('nightwatch-api') const collaboratorDialog = client.page.FilesPageElement.SharingDialog.collaboratorsDialog() const SHARE_TYPE_STRING = { @@ -128,27 +128,6 @@ module.exports = { return this }, - /** - * @param {int} days - */ - selectExpirationDaysOnPendingShare: async function (days) { - const currentDate = new Date() - const currentDay = currentDate.getDate() - const currentMonth = currentDate.getMonth() - const expirationDate = new Date(currentDate.setDate(currentDay + days)) - const dateSelector = util.format(this.elements.collaboratorExpirationDateModalDay.selector, expirationDate.getDate()) - - if (expirationDate.getMonth() !== currentMonth) { - await this.click('@collaboratorExpirationDateModalNextMonthButton') - } - - await this.click('@collaboratorExpirationDateInput') - await this.useXpath().click(dateSelector) - await this.click('@collaboratorExpirationDateModalConfirmButton') - await this.useCss() - return this - }, - /** * * @param {string} sharee @@ -156,7 +135,9 @@ module.exports = { * @param {string} role * @param {string} permissions * @param {boolean} remote - * @param {int} days + * @param {string} days + * + * @return void */ shareWithUserOrGroup: async function ( sharee, shareWithGroup = false, role, permissions, remote = false, days @@ -170,7 +151,14 @@ module.exports = { } if (days) { - await this.selectExpirationDaysOnPendingShare(days) + const dateToSet = sharingHelper.calculateDate(days) + const expectToSucceed = await this + .openExpiryDateCalender() + .setExpirationDate(dateToSet) + if (!expectToSucceed) { + console.log('WARNING: Cannot create share with disabled expiration date!') + return + } } return this.confirmShare() @@ -234,10 +222,10 @@ module.exports = { const permissions = {} const panelSelector = this.elements.sharingSidebarRoot.selector let permissionToggle - for (let i = 0; i < COLLABORATOR_PERMISSION_ARRAY.length; i++) { + for (let i = 0; i < sharingHelper.COLLABORATOR_PERMISSION_ARRAY.length; i++) { permissionToggle = panelSelector + util.format( this.elements.permissionCheckbox.selector, - COLLABORATOR_PERMISSION_ARRAY[i] + sharingHelper.COLLABORATOR_PERMISSION_ARRAY[i] ) await this.api.element('xpath', permissionToggle, result => { @@ -245,7 +233,7 @@ module.exports = { return } return this.api.elementIdSelected(result.value.ELEMENT, result => { - permissions[COLLABORATOR_PERMISSION_ARRAY[i]] = result.value + permissions[sharingHelper.COLLABORATOR_PERMISSION_ARRAY[i]] = result.value }) }) } @@ -494,20 +482,46 @@ module.exports = { /** * @param {string} collaborator Name of the collaborator * @param {string} days number of days to be added or subtracted from current date - * @param {boolean} tries + * @param {boolean} expectToSucceed * * @return {Promise<*>} */ - changeCollaboratorExpiryDate: async function (collaborator, days, tries = false) { + changeCollaboratorExpiryDate: async function (collaborator, days) { await collaboratorDialog.clickEditShare(collaborator) - await this.api.page - .FilesPageElement - .expirationDatePicker() - .setExpirationDate(days) - if (!tries) { - this.saveChanges() + const dateToSet = sharingHelper.calculateDate(days) + const expectToSucceed = await this + .openExpiryDateCalender() + .setExpirationDate(dateToSet) + if (!expectToSucceed) { + console.log('WARNING: Cannot create share with disabled expiration date!') + return } - return this + return this.saveChanges() + }, + openExpiryDateCalender: function () { + this + .initAjaxCounters() + .waitForElementVisible('@expirationDateField') + .click('@expirationDateField') + return client.page.FilesPageElement.expirationDatePicker() + }, + getExpirationDateFromInputField: async function () { + let expirationDate + await this + .waitForElementVisible('@expirationDateField') + .getValue('@expirationDateField', (result) => { + expirationDate = result.value + }) + return expirationDate + }, + getDisabledAttributeOfSaveShareButton: async function () { + let disabled + await this + .waitForElementVisible('@saveShareButton') + .getAttribute('@saveShareButton', 'disabled', (result) => { + disabled = result.value + }) + return disabled } }, elements: { @@ -621,6 +635,9 @@ module.exports = { collaboratorsListItemName: { selector: '//span[contains(@class, "files-collaborators-collaborator-name") and text()="%s"]', locateStrategy: 'xpath' + }, + expirationDateField: { + selector: '.vdatetime-input' } } } diff --git a/tests/acceptance/stepDefinitions/publicLinkContext.js b/tests/acceptance/stepDefinitions/publicLinkContext.js index ba88d7aa4cd..235c5cdfad7 100644 --- a/tests/acceptance/stepDefinitions/publicLinkContext.js +++ b/tests/acceptance/stepDefinitions/publicLinkContext.js @@ -128,15 +128,17 @@ When('the user edits the public link named {string} of file/folder/resource {str When('the user tries to edit expiration of the public link named {string} of file {string} to past date {string}', async function (linkName, resource, pastDate) { - await client.page.FilesPageElement + const api = client.page.FilesPageElement + await api .appSideBar() .closeSidebar(100) .openPublicLinkDialog(resource) - await client.page.FilesPageElement.publicLinksDialog().clickLinkEditBtn(linkName) + await api.publicLinksDialog().clickLinkEditBtn(linkName) const value = sharingHelper.calculateDate(pastDate) const dateToSet = new Date(Date.parse(value)) - const isDisabled = await client.page.FilesPageElement - .expirationDatePicker() + const isDisabled = await api + .sharingDialog() + .openExpiryDateCalender() .isExpiryDateDisabled(dateToSet) return assert.ok( isDisabled, diff --git a/tests/acceptance/stepDefinitions/sharingContext.js b/tests/acceptance/stepDefinitions/sharingContext.js index 3f1fc8a0b1e..cb4c3989aa7 100644 --- a/tests/acceptance/stepDefinitions/sharingContext.js +++ b/tests/acceptance/stepDefinitions/sharingContext.js @@ -325,9 +325,10 @@ const assertUsersGroupsWithPatternInAutocompleteListExcluding = async function ( * * @param {string} resource * @param {string} sharee - * @param {int} days + * @param {string} days * @param {boolean} shareWithGroup * @param {boolean} remote + * @param {boolean} expectToSucceed */ const userSharesFileOrFolderWithUserOrGroupWithExpirationDate = async function ({ resource, sharee, days, shareWithGroup = false, remote = false @@ -340,9 +341,7 @@ const userSharesFileOrFolderWithUserOrGroupWithExpirationDate = async function ( .closeSidebar(100) .openSharingDialog(resource) - return api.sharingDialog().shareWithUserOrGroup( - sharee, shareWithGroup, 'Viewer', undefined, remote, days - ) + return api.sharingDialog().shareWithUserOrGroup(sharee, shareWithGroup, 'Viewer', undefined, remote, days) } /** @@ -779,7 +778,7 @@ When( } ) -When('the user edits the collaborator expiry date of {string} of file/folder/resource {string} to {string} days/day using the webUI', +When('the user (tries to )edit/edits the collaborator expiry date of {string} of file/folder/resource {string} to {string} days/day using the webUI', async function (collaborator, resource, days) { const api = client.page.FilesPageElement await api @@ -789,16 +788,6 @@ When('the user edits the collaborator expiry date of {string} of file/folder/res return api.sharingDialog().changeCollaboratorExpiryDate(collaborator, days) }) -When('the user tries to edit the collaborator expiry date of {string} of file/folder/resource {string} to {string} days/day using the webUI', - async function (collaborator, resource, days) { - const api = client.page.FilesPageElement - await api - .appSideBar() - .closeSidebar(100) - .openSharingDialog(resource) - return api.sharingDialog().changeCollaboratorExpiryDate(collaborator, days, true) - }) - Then('user {string} should be listed as {string} in the collaborators list on the webUI', function (user, role) { return assertCollaboratorslistContains('user', user, { role }) }) @@ -1006,20 +995,14 @@ Then('the following resources should have the following collaborators', async fu } }) -When('the user (tries to )share/shares file/folder/resource {string} with user {string} which expires after {int} day/days using the webUI', +When('the user (tries to )share/shares file/folder/resource {string} with user {string} which expires in {string} day/days using the webUI', function (resource, sharee, days) { return userSharesFileOrFolderWithUserOrGroupWithExpirationDate({ resource, sharee, days }) }) -When('the user tries to share file/folder/resource {string} with group {string} which expires after {int} day/days using the webUI', +When('the user (tries to )share/shares file/folder/resource {string} with group {string} which expires in {string} day/days using the webUI', function (resource, sharee, days) { - return userSharesFileOrFolderWithUserOrGroupWithExpirationDate( - { - resource: resource, - sharee: sharee, - days: days, - shareWithGroup: true - }) + return userSharesFileOrFolderWithUserOrGroupWithExpirationDate({ resource, sharee, days, shareWithGroup: true }) }) When('the user shares file/folder/resource {string} with user {string} using the webUI', function (resource, user) { @@ -1033,3 +1016,26 @@ Then('the fields of the {string} collaborator for file/folder/resource {string} Then('user {string} should have received a share with target {string} and expiration date in {int} day/days', function (user, target, days) { return checkReceivedSharesExpirationDate(user, target, days) }) + +Then('the expiration date input field of collaborators form should have value with {string} days on the webUI', + async function (expectedDays) { + let expectedDate = sharingHelper.calculateDate(expectedDays) + expectedDate = new Date((Date.parse(expectedDate))) + const expectedDateString = expectedDate.toLocaleString('en-GB', { month: 'short' }) + ' ' + + (expectedDate.getDate()).toString() + ', ' + expectedDate.getFullYear() + const dateStringFromInputField = await client.page.FilesPageElement + .sharingDialog() + .getExpirationDateFromInputField() + assert.strictEqual( + expectedDateString, + dateStringFromInputField + ) + }) + +Then('it should not be possible to save the pending share on the webUI', async function () { + const state = await client.page.FilesPageElement.sharingDialog().getDisabledAttributeOfSaveShareButton() + assert.strictEqual( + 'true', + state + ) +})