Skip to content

Commit

Permalink
Add location grouping views
Browse files Browse the repository at this point in the history
Signed-off-by: Louis Chemineau <louis@chmn.me>
  • Loading branch information
artonge authored and skjnldsv committed Feb 24, 2023
1 parent 680bbff commit 0234a47
Show file tree
Hide file tree
Showing 76 changed files with 18,436 additions and 17 deletions.
13 changes: 12 additions & 1 deletion .github/workflows/cypress.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,20 @@ jobs:
uses: actions/upload-artifact@v3
if: always()
with:
name: snapshots
name: snapshots_${{ matrix.containers }}
path: cypress/snapshots

- name: Extract NC logs
if: always()
run: docker-compose --project-directory cypress logs > nextcloud.log

- name: Upload NC logs
uses: actions/upload-artifact@v3
if: always()
with:
name: nc_logs_${{ matrix.containers }}
path: nextcloud.log

summary:
runs-on: ubuntu-latest
needs: [init, cypress]
Expand Down
8 changes: 8 additions & 0 deletions appinfo/routes.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,14 @@
'path' => '',
]
],
['name' => 'page#index', 'url' => '/locations/{path}', 'verb' => 'GET', 'postfix' => 'locations',
'requirements' => [
'path' => '.*',
],
'defaults' => [
'path' => '',
]
],
[ 'name' => 'publicAlbum#get', 'url' => '/public/{token}', 'verb' => 'GET',
'requirements' => [
'token' => '.*',
Expand Down
56 changes: 56 additions & 0 deletions cypress/e2e/locations.cy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
/**
* @copyright Copyright (c) 2022 Louis Chmn <louis@chmn.me>
*
* @author Louis Chmn <louis@chmn.me>
*
* @license AGPL-3.0-or-later
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
import { uploadTestMedia } from './photosUtils'
import { navigateToLocation, runOccCommand } from './locationsUtils'

const resizeObserverLoopErrRe = /^[^(ResizeObserver loop limit exceeded)]/
Cypress.on('uncaught:exception', (err) => {
/* returning false here prevents Cypress from failing the test */
if (resizeObserverLoopErrRe.test(err.message)) {
return false
}
})

describe('Manage locations', () => {
before(function() {
cy.createRandomUser()
.then((user) => {
uploadTestMedia(user)
runOccCommand(`photos:map-media-to-location --user ${user.userId}`)
cy.login(user)
cy.visit('/apps/photos')
})
})

beforeEach(() => {
cy.visit('apps/photos/locations')
})

it('Check that we detect some locations out of the existing files', () => {
cy.get('ul.collections__list li').should('have.length', 4)
})

it('Navigate to location and check that it contains some files', () => {
navigateToLocation('Lauris')
cy.get('[data-test="media"]').should('have.length', 1)
})
})
34 changes: 34 additions & 0 deletions cypress/e2e/locationsUtils.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/**
* @copyright Copyright (c) 2023 Louis Chmn <louis@chmn.me>
*
* @author Louis Chmn <louis@chmn.me>
*
* @license AGPL-3.0-or-later
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/

export function navigateToCollection(collectionType: string, collectionName: string) {
cy.get('.app-navigation__list').contains(collectionType).click()
cy.get('ul.collections__list').contains(collectionName).click()
}

export function navigateToLocation(locationName: string) {
navigateToCollection('Places', locationName)
}

export function runOccCommand(command: string) {
cy.exec(`docker exec --user www-data nextcloud-cypress-tests-photos php ./occ ${command}`)
}
4 changes: 0 additions & 4 deletions cypress/support/commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,3 @@ Cypress.Commands.add('uploadContent', (user, blob, mimeType, target) => {
}
})
})

Cypress.Commands.add('runOccCommand', (command: string) => {
cy.exec(`docker exec --user www-data nextcloud-cypress-tests-server php ./occ ${command}`)
})

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Loading

0 comments on commit 0234a47

Please sign in to comment.