Fix e2e tests

Signed-off-by: Louis Chemineau <louis@chmn.me>
This commit is contained in:
Louis Chemineau 2022-10-10 20:08:24 +02:00
parent 912dc1976e
commit b93db5fc8e
3 changed files with 40 additions and 44 deletions

View File

@ -21,9 +21,9 @@
*/ */
import { randHash } from '../utils' import { randHash } from '../utils'
const randUser = randHash() const alice = `alice_${randHash()}`
const randUser2 = randHash() const bob = `bob_${randHash()}`
const randUser3 = randHash() const charlie = `charlie_${randHash()}`
const resizeObserverLoopErrRe = /^[^(ResizeObserver loop limit exceeded)]/ const resizeObserverLoopErrRe = /^[^(ResizeObserver loop limit exceeded)]/
Cypress.on('uncaught:exception', (err) => { Cypress.on('uncaught:exception', (err) => {
@ -35,30 +35,30 @@ Cypress.on('uncaught:exception', (err) => {
describe('Manage shared albums', () => { describe('Manage shared albums', () => {
before(() => { before(() => {
cy.visit('')
cy.logout() cy.logout()
cy.nextcloudCreateUser(randUser, 'password') cy.nextcloudCreateUser(alice, 'password')
cy.nextcloudCreateUser(randUser2, 'password') cy.nextcloudCreateUser(bob, 'password')
cy.nextcloudCreateUser(randUser3, 'password') cy.nextcloudCreateUser(charlie, 'password')
cy.login(randUser2, 'password') cy.login(bob, 'password')
cy.uploadTestMedia() cy.uploadTestMedia()
cy.logout() cy.logout()
}) })
beforeEach(() => { beforeEach(() => {
cy.logout() cy.logout()
cy.login(randUser2, 'password') cy.login(bob, 'password', '/apps/photos/sharedalbums')
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/sharedalbums`)
}) })
context('Adding and removing files in a shared album', () => { context('Adding and removing files in a shared album', () => {
before(() => { before(() => {
cy.logout() cy.logout()
cy.login(randUser, 'password') cy.login(alice, 'password')
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`) cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`)
cy.createAnAlbumFromAlbums('shared_album_test1') cy.createAnAlbumFromAlbums('shared_album_test1')
cy.addCollaborators([randUser2]) cy.addCollaborators([bob])
cy.logout() cy.logout()
}) })
@ -86,13 +86,13 @@ describe('Manage shared albums', () => {
context('Download files from a shared album', () => { context('Download files from a shared album', () => {
before(() => { before(() => {
cy.logout() cy.logout()
cy.login(randUser, 'password') cy.login(alice, 'password')
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`) cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`)
cy.createAnAlbumFromAlbums('shared_album_test2') cy.createAnAlbumFromAlbums('shared_album_test2')
cy.addCollaborators([randUser2]) cy.addCollaborators([bob])
cy.logout() cy.logout()
cy.login(randUser2, 'password') cy.login(bob, 'password')
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/sharedalbums`) cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/sharedalbums`)
cy.goToSharedAlbum('shared_album_test2') cy.goToSharedAlbum('shared_album_test2')
cy.addFilesToAlbumFromAlbum('shared_album_test2', [0, 1, 2]) cy.addFilesToAlbumFromAlbum('shared_album_test2', [0, 1, 2])
@ -122,10 +122,10 @@ describe('Manage shared albums', () => {
context('Delete a received shared album', () => { context('Delete a received shared album', () => {
before(() => { before(() => {
cy.logout() cy.logout()
cy.login(randUser, 'password') cy.login(alice, 'password')
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`) cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`)
cy.createAnAlbumFromAlbums('shared_album_test3') cy.createAnAlbumFromAlbums('shared_album_test3')
cy.addCollaborators([randUser2]) cy.addCollaborators([bob])
cy.logout() cy.logout()
}) })
@ -138,52 +138,50 @@ describe('Manage shared albums', () => {
context('Remove a collaborator from an album', () => { context('Remove a collaborator from an album', () => {
before(() => { before(() => {
cy.logout() cy.logout()
cy.login(randUser, 'password') cy.login(alice, 'password', '/apps/photos/albums')
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`)
cy.createAnAlbumFromAlbums('shared_album_test4') cy.createAnAlbumFromAlbums('shared_album_test4')
cy.addCollaborators([randUser2]) cy.addCollaborators([bob])
cy.logout() cy.logout()
}) })
it('Remove collaborator from an album', () => { it('Remove collaborator from an album', () => {
cy.get('ul.collections__list li').should('have.length', 4) cy.get('ul.collections__list li')
.should('contain', `shared_album_test4 (${alice})`)
cy.logout() cy.logout()
cy.login(randUser, 'password') cy.login(alice, 'password', '/apps/photos')
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos`)
cy.goToAlbum('shared_album_test4') cy.goToAlbum('shared_album_test4')
cy.removeCollaborators([randUser2]) cy.removeCollaborators([bob])
cy.logout() cy.logout()
cy.login(randUser2, 'password') cy.login(bob, 'password', '/apps/photos/sharedalbums')
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/sharedalbums`) cy.get('body')
.should('not.contain', `shared_album_test4 (${alice})`)
cy.get('ul.collections__list li').should('have.length', 3)
}) })
}) })
context('Two shared albums with the same name', () => { context('Two shared albums with the same name', () => {
before(() => { before(() => {
cy.logout() cy.logout()
cy.login(randUser, 'password') cy.login(alice, 'password')
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`) cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`)
cy.createAnAlbumFromAlbums('shared_album_test5') cy.createAnAlbumFromAlbums('shared_album_test5')
cy.addCollaborators([randUser2]) cy.addCollaborators([bob])
cy.logout() cy.logout()
cy.login(randUser3, 'password') cy.login(charlie, 'password')
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`) cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`)
cy.createAnAlbumFromAlbums('shared_album_test5') cy.createAnAlbumFromAlbums('shared_album_test5')
cy.addCollaborators([randUser2]) cy.addCollaborators([bob])
cy.logout() cy.logout()
}) })
it('It should display two shared albums', () => { it('It should display two shared albums', () => {
cy.get('ul.collections__list li') cy.get('ul.collections__list li')
.contains(`shared_album_test5 (${randUser})`) .contains(`shared_album_test5 (${alice})`)
cy.get('ul.collections__list li') cy.get('ul.collections__list li')
.contains(`shared_album_test5 (${randUser3})`) .contains(`shared_album_test5 (${charlie})`)
}) })
}) })
}) })

View File

@ -27,7 +27,6 @@ const url = Cypress.config('baseUrl').replace(/\/index.php\/?$/g, '')
Cypress.env('baseUrl', url) Cypress.env('baseUrl', url)
Cypress.Commands.add('login', (user, password, route = '/apps/files') => { Cypress.Commands.add('login', (user, password, route = '/apps/files') => {
cy.clearCookies()
Cypress.Cookies.defaults({ Cypress.Cookies.defaults({
preserve: /^(oc|nc)/, preserve: /^(oc|nc)/,
}) })
@ -39,7 +38,6 @@ Cypress.Commands.add('login', (user, password, route = '/apps/files') => {
}) })
Cypress.Commands.add('logout', () => { Cypress.Commands.add('logout', () => {
cy.visit('')
cy.getCookies() cy.getCookies()
.then(cookies => { .then(cookies => {
if (cookies.length === 0) { if (cookies.length === 0) {
@ -49,20 +47,19 @@ Cypress.Commands.add('logout', () => {
return cy.get("body") return cy.get("body")
.then($body => { .then($body => {
const logout = $body.find('#expanddiv li[data-id="logout"] a') const $settingsButton = $body.find('#settings #expand')
if (logout.length > 0) { if ($settingsButton.length === 0) {
cy.log('Loging out...') cy.log("Not logged in.")
cy.visit(logout[0].href) return
} else {
cy.log('Nothing')
} }
$settingsButton.click()
cy.contains('Log out').click()
}) })
}) })
}) })
Cypress.Commands.add('nextcloudCreateUser', (user, password) => { Cypress.Commands.add('nextcloudCreateUser', (user, password) => {
cy.clearCookies()
cy.visit('/')
cy.request({ cy.request({
method: 'POST', method: 'POST',
url: `${Cypress.env('baseUrl')}/ocs/v1.php/cloud/users?format=json`, url: `${Cypress.env('baseUrl')}/ocs/v1.php/cloud/users?format=json`,
@ -78,6 +75,7 @@ Cypress.Commands.add('nextcloudCreateUser', (user, password) => {
Authorization: `Basic ${Buffer.from('admin:admin').toString('base64')}`, Authorization: `Basic ${Buffer.from('admin:admin').toString('base64')}`,
}, },
}) })
cy.clearCookies()
}) })
Cypress.Commands.add('uploadTestMedia', () => { Cypress.Commands.add('uploadTestMedia', () => {

View File

@ -424,7 +424,7 @@ class AlbumMapper {
// Suffix album name with the album owner to prevent duplicates. // Suffix album name with the album owner to prevent duplicates.
// Not done for public link as it would like owner's uid. // Not done for public link as it would like owner's uid.
if ($collaboratorType !== self::TYPE_LINK) { if ($collaboratorType !== self::TYPE_LINK) {
$row['album_name'].' ('.$row['album_user'].')'; $albumName = $row['album_name'].' ('.$row['album_user'].')';
} }
$albumsById[$albumId] = new AlbumInfo($albumId, $row['album_user'], $albumName, $row['location'], (int)$row['created'], (int)$row['last_added_photo']); $albumsById[$albumId] = new AlbumInfo($albumId, $row['album_user'], $albumName, $row['location'], (int)$row['created'], (int)$row['last_added_photo']);
} }