})
it('renames a file using valid names', function () {
+ function eachPair(lst, func){
+ for(var i=0; i < lst.length - 1; i++){
+ func(lst[i], lst[i + 1])
+ }
+ }
// Creates the collection using the admin token so we can set up
// a bogus manifest text without block signatures.
cy.createCollection(adminUser.token, {
cy.loginAs(activeUser);
cy.doSearch(`${this.testCollection.uuid}`);
- const nameTransitions = [
- ['bar', '&'],
- ['&', 'foo'],
- ['foo', '&'],
- ['&', 'I ❤️ ⛵️'],
- ['I ❤️ ⛵️', '...']
+ const names = [
+ 'bar', // initial name already set
+ '&',
+ 'foo',
+ '&',
+ 'I ❤️ ⛵️',
+ '...',
+ '#..',
+ 'some name with whitespaces',
+ 'some name with #2',
+ 'is this name legal? I hope it is',
+ 'some_file.pdf#',
+ 'some_file.pdf?',
+ '?some_file.pdf',
+ 'some%file.pdf',
+ 'some%2Ffile.pdf'
];
- nameTransitions.forEach(([from, to]) => {
+ eachPair(names, (from, to) => {
cy.get('[data-cy=collection-files-panel]')
.contains(`${from}`).rightclick();
cy.get('[data-cy=context-menu]')
});
});
- it('should display all filles within the collection even with the # sign within the file name', () => {
- const colName = `Test Collection ${Math.floor(Math.random() * 999999)}`;
-
- cy.createCollection(adminUser.token, {
- name: colName,
- owner_uuid: activeUser.user.uuid,
- preserve_version: true,
- manifest_text: ". 37b51d194a7513e45b56f6524f2d51f2+3 0:3:#foo 0:3:bar\n"
- })
- .as('collection')
- .then((collection) => {
- cy.loginAs(activeUser)
- cy.doSearch(`${collection.uuid}`);
- cy.get('[data-cy=collection-files-panel]').contains('#foo').closest('[data-cy=virtual-file-tree]').find('[type=checkbox]').click();
- cy.get('[data-cy=collection-files-panel-options-btn]').click();
- cy.get('[data-cy=context-menu]').contains('Remove selected').click();
- cy.get('[data-cy=confirmation-dialog-ok-btn]').click();
- cy.get('[data-cy=collection-files-panel]').contains('#foo').should('not.exist');
-
- cy.get('[data-cy=collection-files-panel]').contains('bar').rightclick();
- cy.get('[data-cy=context-menu]').contains('Rename').click();
- cy.get('input[name=path]').type('bar 123 321 bar');
- cy.get('[data-cy=form-submit-btn]').click();
- cy.get('[data-cy=collection-files-panel]').contains('barbar 123 321 bar').should('exist');
- });
- });
-
it('uses the collection version browser to view a previous version', function () {
const colName = `Test Collection ${Math.floor(Math.random() * 999999)}`;