Signed-off-by: skjnldsv <skjnldsv@protonmail.com>pull/53671/head
parent
894f963804
commit
9806a9830c
@ -0,0 +1,83 @@ |
||||
/** |
||||
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors |
||||
* SPDX-License-Identifier: AGPL-3.0-or-later |
||||
*/ |
||||
import type { User } from '@nextcloud/cypress' |
||||
import { createShare } from './FilesSharingUtils.ts' |
||||
import { |
||||
getActionEntryForFile, |
||||
getRowForFile, |
||||
} from '../files/FilesUtils.ts' |
||||
|
||||
describe('files_sharing: Download forbidden', { testIsolation: true }, () => { |
||||
let user: User |
||||
let sharee: User |
||||
|
||||
beforeEach(() => { |
||||
cy.runOccCommand('config:app:set --value yes core shareapi_allow_view_without_download') |
||||
cy.createRandomUser().then(($user) => { |
||||
user = $user |
||||
}) |
||||
cy.createRandomUser().then(($user) => { |
||||
sharee = $user |
||||
}) |
||||
}) |
||||
|
||||
after(() => { |
||||
cy.runOccCommand('config:app:delete core shareapi_allow_view_without_download') |
||||
}) |
||||
|
||||
it('cannot download a folder if disabled', () => { |
||||
// share the folder
|
||||
cy.mkdir(user, '/folder') |
||||
cy.login(user) |
||||
cy.visit('/apps/files') |
||||
createShare('folder', sharee.userId, { read: true, download: false }) |
||||
cy.logout() |
||||
|
||||
// Now for the sharee
|
||||
cy.login(sharee) |
||||
|
||||
// visit shared files view
|
||||
cy.visit('/apps/files') |
||||
// see the shared folder
|
||||
getRowForFile('folder').should('be.visible') |
||||
getActionEntryForFile('folder', 'download').should('not.exist') |
||||
|
||||
// Disable view without download option
|
||||
cy.runOccCommand('config:app:set --value no core shareapi_allow_view_without_download') |
||||
|
||||
// visit shared files view
|
||||
cy.visit('/apps/files') |
||||
// see the shared folder
|
||||
getRowForFile('folder').should('be.visible') |
||||
getActionEntryForFile('folder', 'download').should('not.exist') |
||||
}) |
||||
|
||||
it('cannot download a file if disabled', () => { |
||||
// share the folder
|
||||
cy.uploadContent(user, new Blob([]), 'text/plain', '/file.txt') |
||||
cy.login(user) |
||||
cy.visit('/apps/files') |
||||
createShare('file.txt', sharee.userId, { read: true, download: false }) |
||||
cy.logout() |
||||
|
||||
// Now for the sharee
|
||||
cy.login(sharee) |
||||
|
||||
// visit shared files view
|
||||
cy.visit('/apps/files') |
||||
// see the shared folder
|
||||
getRowForFile('file.txt').should('be.visible') |
||||
getActionEntryForFile('file.txt', 'download').should('not.exist') |
||||
|
||||
// Disable view without download option
|
||||
cy.runOccCommand('config:app:set --value no core shareapi_allow_view_without_download') |
||||
|
||||
// visit shared files view
|
||||
cy.visit('/apps/files') |
||||
// see the shared folder
|
||||
getRowForFile('file.txt').should('be.visible') |
||||
getActionEntryForFile('file.txt', 'download').should('not.exist') |
||||
}) |
||||
}) |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue