diff --git a/cypress/e2e/albums.cy.js b/cypress/e2e/albums.cy.js
index 53bc32b7b..044776f82 100644
--- a/cypress/e2e/albums.cy.js
+++ b/cypress/e2e/albums.cy.js
@@ -99,4 +99,36 @@ describe('Manage albums', () => {
cy.downloadSelection()
cy.unselectMedia([1, 2])
})
+
+ it('Edit an album\'s name', () => {
+ cy.get('[aria-label="Open actions menu"]').click()
+ cy.contains('Edit album details').click()
+ cy.get('form [name="name"]').clear().type("New name")
+ cy.contains('Save').click()
+
+ cy.reload()
+
+ cy.contains('New name')
+
+ cy.get('[aria-label="Open actions menu"]').click()
+ cy.contains('Edit album details').click()
+ cy.get('form [name="name"]').clear().type("albums_test")
+ cy.contains('Save').click()
+ })
+
+ it('Edit an album\'s location', () => {
+ cy.get('[aria-label="Open actions menu"]').click()
+ cy.contains('Edit album details').click()
+ cy.get('form [name="location"]').clear().type("New location")
+ cy.contains('Save').click()
+
+ cy.reload()
+
+ cy.contains('New location')
+
+ cy.get('[aria-label="Open actions menu"]').click()
+ cy.contains('Edit album details').click()
+ cy.get('form [name="location"]').clear()
+ cy.contains('Save').click()
+ })
})
diff --git a/cypress/e2e/shared_albums.cy.js b/cypress/e2e/shared_albums.cy.js
index 9619cfdfd..283974bad 100644
--- a/cypress/e2e/shared_albums.cy.js
+++ b/cypress/e2e/shared_albums.cy.js
@@ -20,8 +20,10 @@
*
*/
import { randHash } from '../utils'
+
const randUser = randHash()
const randUser2 = randHash()
+const randUser3 = randHash()
const resizeObserverLoopErrRe = /^[^(ResizeObserver loop limit exceeded)]/
Cypress.on('uncaught:exception', (err) => {
@@ -34,112 +36,154 @@ Cypress.on('uncaught:exception', (err) => {
describe('Manage shared albums', () => {
before(() => {
cy.logout()
+
cy.nextcloudCreateUser(randUser, 'password')
cy.nextcloudCreateUser(randUser2, 'password')
-
- cy.login(randUser, 'password')
- cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`)
- cy.createAnAlbumFromAlbums('shared_album_test1')
- cy.addCollaborators([randUser2])
- cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`)
- cy.createAnAlbumFromAlbums('shared_album_test2')
- cy.addCollaborators([randUser2])
- cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`)
- cy.createAnAlbumFromAlbums('shared_album_test3')
- cy.addCollaborators([randUser2])
- cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`)
- cy.createAnAlbumFromAlbums('shared_album_test4')
- cy.addCollaborators([randUser2])
- cy.logout()
+ cy.nextcloudCreateUser(randUser3, 'password')
cy.login(randUser2, 'password')
cy.uploadTestMedia()
- cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/sharedalbums`)
- cy.goToSharedAlbum('shared_album_test2')
- cy.addFilesToAlbumFromAlbum('shared_album_test2', [0, 1, 2])
-
- // wait a bit for things to be settled
- cy.wait(1000)
+ cy.logout()
})
beforeEach(() => {
+ cy.logout()
+ cy.login(randUser2, 'password')
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/sharedalbums`)
})
- it('Add and remove a file to a shared album from a shared album', () => {
- cy.goToSharedAlbum('shared_album_test1')
- cy.get('[data-test="media"]').should('have.length', 0)
- cy.addFilesToAlbumFromAlbum('shared_album_test1', [0])
- cy.get('[data-test="media"]').should('have.length', 1)
- cy.selectMedia([0])
- cy.removeSelectionFromAlbum()
- cy.get('[data-test="media"]').should('have.length', 0)
- })
-
- it('Add and remove multiple files to a shared album from a shared album', () => {
- cy.goToSharedAlbum('shared_album_test1')
- cy.get('[data-test="media"]').should('have.length', 0)
- cy.addFilesToAlbumFromAlbum('shared_album_test1', [1, 2])
- cy.get('[data-test="media"]').should('have.length', 2)
- cy.selectMedia([0, 1])
- cy.removeSelectionFromAlbum()
- cy.get('[data-test="media"]').should('have.length', 0)
- })
-
- it('Download a file from a shared album', () => {
- cy.goToSharedAlbum('shared_album_test2')
- cy.selectMedia([0])
- cy.downloadSelection()
- cy.unselectMedia([0])
- })
-
- it('Download multiple files from a shared album', () => {
- cy.goToSharedAlbum('shared_album_test2')
- cy.selectMedia([1, 2])
- cy.downloadSelection()
- cy.unselectMedia([1, 2])
+ context('Adding and removing files in a shared album', () => {
+ before(() => {
+ cy.logout()
+ cy.login(randUser, 'password')
+ cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`)
+ cy.createAnAlbumFromAlbums('shared_album_test1')
+ cy.addCollaborators([randUser2])
+ cy.logout()
+ })
+
+ it('Add and remove a file to a shared album from a shared album', () => {
+ cy.goToSharedAlbum('shared_album_test1')
+ cy.get('[data-test="media"]').should('have.length', 0)
+ cy.addFilesToAlbumFromAlbum('shared_album_test1', [0])
+ cy.get('[data-test="media"]').should('have.length', 1)
+ cy.selectMedia([0])
+ cy.removeSelectionFromAlbum()
+ cy.get('[data-test="media"]').should('have.length', 0)
+ })
+
+ it('Add and remove multiple files to a shared album from a shared album', () => {
+ cy.goToSharedAlbum('shared_album_test1')
+ cy.get('[data-test="media"]').should('have.length', 0)
+ cy.addFilesToAlbumFromAlbum('shared_album_test1', [1, 2])
+ cy.get('[data-test="media"]').should('have.length', 2)
+ cy.selectMedia([0, 1])
+ cy.removeSelectionFromAlbum()
+ cy.get('[data-test="media"]').should('have.length', 0)
+ })
})
- it('Download all files from a shared album', () => {
- cy.goToSharedAlbum('shared_album_test2')
- cy.downloadAllFiles()
+ context('Download files from a shared album', () => {
+ before(() => {
+ cy.logout()
+ cy.login(randUser, 'password')
+ cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`)
+ cy.createAnAlbumFromAlbums('shared_album_test2')
+ cy.addCollaborators([randUser2])
+ cy.logout()
+
+ cy.login(randUser2, 'password')
+ cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/sharedalbums`)
+ cy.goToSharedAlbum('shared_album_test2')
+ cy.addFilesToAlbumFromAlbum('shared_album_test2', [0, 1, 2])
+ cy.logout()
+ })
+
+ it('Download a file from a shared album', () => {
+ cy.goToSharedAlbum('shared_album_test2')
+ cy.selectMedia([0])
+ cy.downloadSelection()
+ cy.unselectMedia([0])
+ })
+
+ it('Download multiple files from a shared album', () => {
+ cy.goToSharedAlbum('shared_album_test2')
+ cy.selectMedia([1, 2])
+ cy.downloadSelection()
+ cy.unselectMedia([1, 2])
+ })
+
+ it('Download all files from a shared album', () => {
+ cy.goToSharedAlbum('shared_album_test2')
+ cy.downloadAllFiles()
+ })
})
- it('Remove a file from a shared album', () => {
- cy.goToSharedAlbum('shared_album_test2')
- cy.get('[data-test="media"]').should('have.length', 3)
- cy.goToSharedAlbum('shared_album_test2')
- cy.selectMedia([0])
- cy.removeSelectionFromAlbum()
- cy.get('[data-test="media"]').should('have.length', 2)
+ context('Delete a received shared album', () => {
+ before(() => {
+ cy.logout()
+ cy.login(randUser, 'password')
+ cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`)
+ cy.createAnAlbumFromAlbums('shared_album_test3')
+ cy.addCollaborators([randUser2])
+ cy.logout()
+ })
+
+ it('Remove shared album', () => {
+ cy.goToSharedAlbum('shared_album_test3')
+ cy.removeSharedAlbums()
+ })
})
- it('Remove multiple files from a shared album', () => {
- cy.goToSharedAlbum('shared_album_test2')
- cy.get('[data-test="media"]').should('have.length', 2)
- cy.goToSharedAlbum('shared_album_test2')
- cy.selectMedia([0, 1])
- cy.removeSelectionFromAlbum()
- cy.get('[data-test="media"]').should('have.length', 0)
+ context('Remove a collaborator from an album', () => {
+ before(() => {
+ cy.logout()
+ cy.login(randUser, 'password')
+ cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`)
+ cy.createAnAlbumFromAlbums('shared_album_test4')
+ cy.addCollaborators([randUser2])
+ cy.logout()
+ })
+
+ it('Remove collaborator from an album', () => {
+ cy.get('ul.collections__list li').should('have.length', 4)
+
+ cy.logout()
+ cy.login(randUser, 'password')
+ cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos`)
+ cy.goToAlbum('shared_album_test4')
+ cy.removeCollaborators([randUser2])
+ cy.logout()
+
+ cy.login(randUser2, 'password')
+ cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/sharedalbums`)
+
+ cy.get('ul.collections__list li').should('have.length', 3)
+ })
})
- xit('Remove shared album', () => {
- cy.goToSharedAlbum('shared_album_test3')
- cy.removeSharedAlbums()
- })
-
- xit('Remove collaborator from an album', () => {
- cy.get('[data-test="media"]').should('have.length', 4)
-
- cy.logout()
- cy.login(randUser, 'password')
- cy.goToAlbum('shared_album_test4')
- cy.removeCollaborators([randUser2])
- cy.logout()
-
- cy.login(randUser2, 'password')
- cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/sharedalbums`)
-
- cy.get('ul.collections__list li').should('have.length', 3)
+ context('Two shared albums with the same name', () => {
+ before(() => {
+ cy.logout()
+ cy.login(randUser, 'password')
+ cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`)
+ cy.createAnAlbumFromAlbums('shared_album_test5')
+ cy.addCollaborators([randUser2])
+ cy.logout()
+
+ cy.login(randUser3, 'password')
+ cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`)
+ cy.createAnAlbumFromAlbums('shared_album_test5')
+ cy.addCollaborators([randUser2])
+ cy.logout()
+ })
+
+
+ it('It should display two shared albums', () => {
+ cy.get('ul.collections__list li')
+ .contains(`shared_album_test5 (${randUser})`)
+ cy.get('ul.collections__list li')
+ .contains(`shared_album_test5 (${randUser3})`)
+ })
})
})
\ No newline at end of file
diff --git a/cypress/support/commands.js b/cypress/support/commands.js
index d1eed57cc..aa4828f3a 100644
--- a/cypress/support/commands.js
+++ b/cypress/support/commands.js
@@ -232,13 +232,18 @@ Cypress.Commands.add('addCollaborators', collaborators => {
Cypress.Commands.add('removeCollaborators', collaborators => {
cy.get('[aria-label="Manage collaborators for this album"]').click()
collaborators.forEach((collaborator) => {
- cy.get('[aria-label="Search for collaborators"').type(collaborator)
- cy.contains(collaborator).click()
+ cy.get('.manage-collaborators')
+ .within(() => {
+ cy.contains(collaborator)
+ .parentsUntil('ul')
+ .get(`[aria-label="Remove ${collaborator} from the collaborators list"]`)
+ .click()
+ })
})
cy.contains('Save').click()
})
-Cypress.Commands.add('removeSharedAlbums', collaborators => {
+Cypress.Commands.add('removeSharedAlbums', () => {
cy.get('[aria-label="Open actions menu"]').click()
- cy.contains("Remove selection from album").click()
+ cy.contains("Delete album").click()
})
diff --git a/lib/Album/AlbumMapper.php b/lib/Album/AlbumMapper.php
index d3e882046..827b8c802 100644
--- a/lib/Album/AlbumMapper.php
+++ b/lib/Album/AlbumMapper.php
@@ -364,11 +364,11 @@ public function getSharedAlbumsForCollaboratorWithFiles(string $collaboratorId,
if ($row['fileid']) {
$mimeId = $row['mimetype'];
$mimeType = $this->mimeTypeLoader->getMimetypeById($mimeId);
- $filesByAlbum[$albumId][] = new AlbumFile((int)$row['fileid'], $row['file_name'], $mimeType, (int)$row['size'], (int)$row['mtime'], $row['etag'], (int)$row['added'], $row['owner']);
+ $filesByAlbum[$albumId][] = new AlbumFile((int)$row['fileid'], $row['album_name'].' ('.$row['album_user'].')', $mimeType, (int)$row['size'], (int)$row['mtime'], $row['etag'], (int)$row['added'], $row['owner']);
}
if (!isset($albumsById[$albumId])) {
- $albumsById[$albumId] = new AlbumInfo($albumId, $row['album_user'], $row['album_name'], $row['location'], (int)$row['created'], (int)$row['last_added_photo']);
+ $albumsById[$albumId] = new AlbumInfo($albumId, $row['album_user'], $row['album_name'].' ('.$row['album_user'].')', $row['location'], (int)$row['created'], (int)$row['last_added_photo']);
}
}
@@ -419,7 +419,7 @@ public function getAlbumForCollaboratorIdAndFileId(string $collaboratorId, int $
return new AlbumInfo(
(int)$row['album_id'],
$row['user'],
- $row['name'],
+ $row['name'].' ('.$row['user'].')',
$row['location'],
(int)$row['created'],
(int)$row['last_added_photo']
diff --git a/src/components/Albums/CollaboratorsSelectionForm.vue b/src/components/Albums/CollaboratorsSelectionForm.vue
index f1f46734b..9cc02afea 100644
--- a/src/components/Albums/CollaboratorsSelectionForm.vue
+++ b/src/components/Albums/CollaboratorsSelectionForm.vue
@@ -45,7 +45,7 @@