17337: Adds a new file name case: names with '%2F' don't get listed.
[arvados-workbench2.git] / cypress / integration / collection.spec.js
index dfc1c466b9bd41371bc52f05d2c5229f83d9b458..8c002362f2d7b20726ac9c006415e330b8890f3d 100644 (file)
@@ -171,6 +171,11 @@ describe('Collection panel tests', function () {
     })
 
     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, {
@@ -182,14 +187,24 @@ describe('Collection panel tests', function () {
                 cy.loginAs(activeUser);
                 cy.doSearch(`${this.testCollection.uuid}`);
 
-                const nameTransitions = [
-                    ['bar', '&'],
-                    ['&', 'foo'],
-                    ['foo', '&amp;'],
-                    ['&amp;', 'I ❤️ ⛵️'],
-                    ['I ❤️ ⛵️', '...']
+                const names = [
+                    'bar', // initial name already set
+                    '&',
+                    'foo',
+                    '&amp;',
+                    '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]')
@@ -352,33 +367,6 @@ describe('Collection panel tests', function () {
             });
     });
 
-    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)}`;