mirror of https://github.com/nextcloud/photos
Fix e2e tests
Signed-off-by: Louis Chemineau <louis@chmn.me>
This commit is contained in:
parent
912dc1976e
commit
b93db5fc8e
|
@ -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})`)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
|
@ -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', () => {
|
||||||
|
|
|
@ -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']);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue