let activeUser;
let adminUser;
let otherUser;
+ let userThree;
const groupName = `Test group (${Math.floor(999999 * Math.random())})`;
before(function() {
otherUser = this.otherUser;
}
);
- });
-
- beforeEach(function() {
- cy.clearCookies();
- cy.clearLocalStorage();
+ cy.getUser('userThree', 'User', 'Three', false, true)
+ .as('userThree').then(function() {
+ userThree = this.userThree;
+ }
+ );
});
it('creates a new group', function() {
// Create new group
cy.get('[data-cy=groups-panel-new-group]').click();
cy.get('[data-cy=form-dialog]')
- .should('contain', 'Create a group')
+ .should('contain', 'New Group')
.within(() => {
cy.get('input[name=name]').type(groupName);
- cy.get('button[type=submit]').click();
+ cy.get('[data-cy=users-field] input').type("three");
});
-
+ cy.get('[role=tooltip]').click();
+ cy.get('[data-cy=form-dialog]').within(() => {
+ cy.get('[data-cy=form-submit-btn]').click();
+ })
+
// Check that the group was created
cy.get('[data-cy=groups-panel-data-explorer]').contains(groupName).click();
- cy.get('[data-cy=group-members-data-explorer]').contains('Active User');
+ cy.get('[data-cy=group-members-data-explorer]').contains(activeUser.user.full_name);
+ cy.get('[data-cy=group-members-data-explorer]').contains(userThree.user.full_name);
});
it('adds users to the group', function() {
// Add other user to the group
cy.get('[data-cy=group-member-add]').click();
- cy.get('[data-cy=form-dialog]')
- .should('contain', 'Add users')
+ cy.get('.sharing-dialog')
+ .should('contain', 'Sharing settings')
.within(() => {
- cy.get('input').type("other");
+ cy.get('[data-cy=invite-people-field] input').type("other");
});
- cy.contains('Other User').click();
- cy.get('[data-cy=form-dialog] button[type=submit]').click();
+ cy.get('[role=tooltip]').click();
+ // Add admin to the group
+ cy.get('.sharing-dialog')
+ .should('contain', 'Sharing settings')
+ .within(() => {
+ cy.get('[data-cy=invite-people-field] input').type("admin");
+ });
+ cy.get('[role=tooltip]').click();
+ cy.get('.sharing-dialog').get('[data-cy=add-invited-people]').click();
+ cy.get('.sharing-dialog').contains('Close').click();
// Check that both users are present with appropriate permissions
cy.get('[data-cy=group-members-data-explorer]')
- .contains('Other User')
+ .contains(otherUser.user.full_name)
.parents('tr')
.within(() => {
cy.contains('Read');
});
cy.get('[data-cy=group-members-data-explorer] tr')
- .contains('Active User')
+ .contains(activeUser.user.full_name)
.parents('tr')
.within(() => {
cy.contains('Manage');
it('changes permission level of a member', function() {
// Test change permission level
cy.get('[data-cy=group-members-data-explorer]')
- .contains('Other User')
+ .contains(otherUser.user.full_name)
.parents('tr')
.within(() => {
cy.contains('Read')
.contains('Write')
.click();
cy.get('[data-cy=group-members-data-explorer]')
- .contains('Other User')
+ .contains(otherUser.user.full_name)
.parents('tr')
.within(() => {
cy.contains('Write');
});
+
+ // Change admin to manage
+ cy.get('[data-cy=group-members-data-explorer]')
+ .contains(adminUser.user.full_name)
+ .parents('tr')
+ .within(() => {
+ cy.contains('Read')
+ .parents('td')
+ .within(() => {
+ cy.get('button').click();
+ });
+ });
+ cy.get('[data-cy=context-menu]')
+ .contains('Manage')
+ .click();
+ cy.get('[data-cy=group-members-data-explorer]')
+ .contains(adminUser.user.full_name)
+ .parents('tr')
+ .within(() => {
+ cy.contains('Manage');
+ });
});
it('can unhide and re-hide users', function() {
// Check that other user is hidden
cy.get('[data-cy=group-details-permissions-tab]').click();
cy.get('[data-cy=group-permissions-data-explorer]')
- .should('not.contain', 'Other User')
+ .should('not.contain', otherUser.user.full_name)
cy.get('[data-cy=group-details-members-tab]').click();
// Test unhide
cy.get('[data-cy=group-members-data-explorer]')
- .contains('Other User')
+ .contains(otherUser.user.full_name)
.parents('tr')
.within(() => {
- cy.get('[data-cy=user-hidden-checkbox]').click();
+ cy.get('[data-cy=user-visible-checkbox]').click();
});
// Check that other user is visible
cy.get('[data-cy=group-details-permissions-tab]').click();
cy.get('[data-cy=group-permissions-data-explorer]')
- .contains('Other User')
+ .contains(otherUser.user.full_name)
.parents('tr')
.within(() => {
cy.contains('Read');
// Test re-hide
cy.get('[data-cy=group-details-members-tab]').click();
cy.get('[data-cy=group-members-data-explorer]')
- .contains('Other User')
+ .contains(otherUser.user.full_name)
.parents('tr')
.within(() => {
- cy.get('[data-cy=user-hidden-checkbox]').click();
+ cy.get('[data-cy=user-visible-checkbox]').click();
});
// Check that other user is hidden
cy.get('[data-cy=group-details-permissions-tab]').click();
cy.get('[data-cy=group-permissions-data-explorer]')
- .should('not.contain', 'Other User')
+ .should('not.contain', otherUser.user.full_name)
});
it('displays resources shared with the group', function() {
// Remove other user
cy.get('[data-cy=group-members-data-explorer]')
- .contains('Other User')
+ .contains(otherUser.user.full_name)
.parents('tr')
.within(() => {
cy.get('[data-cy=resource-delete-button]').click();
});
cy.get('[data-cy=confirmation-dialog-ok-btn]').click();
cy.get('[data-cy=group-members-data-explorer]')
- .should('not.contain', 'Other User');
+ .should('not.contain', otherUser.user.full_name);
+
+ // Remove user three
+ cy.get('[data-cy=group-members-data-explorer]')
+ .contains(userThree.user.full_name)
+ .parents('tr')
+ .within(() => {
+ cy.get('[data-cy=resource-delete-button]').click();
+ });
+ cy.get('[data-cy=confirmation-dialog-ok-btn]').click();
+ cy.get('[data-cy=group-members-data-explorer]')
+ .should('not.contain', userThree.user.full_name);
});
it('renames the group', function() {
+ cy.loginAs(adminUser);
// Navigate to Groups
cy.get('[data-cy=side-panel-tree]').contains('Groups').click();
// Rename the group
cy.get('[data-cy=form-dialog]')
- .should('contain', 'Edit Project')
+ .should('contain', 'Edit Group')
.within(() => {
cy.get('input[name=name]').clear().type(groupName + ' (renamed)');
- cy.get('button[type=submit]').click();
+ cy.get('button').contains('Save').click();
});
// Check that the group was renamed
.should('not.contain', groupName + ' (renamed)');
});
+ it('disables group-related controls for built-in groups', function() {
+ cy.loginAs(adminUser);
+
+ ['All users', 'Anonymous users', 'System group'].forEach((builtInGroup) => {
+ cy.get('[data-cy=side-panel-tree]').contains('Groups').click();
+ cy.get('[data-cy=groups-panel-data-explorer]').contains(builtInGroup).click();
+
+ // Check group member actions
+ cy.get('[data-cy=group-members-data-explorer]')
+ .within(() => {
+ cy.get('[data-cy=group-member-add]').should('not.exist');
+ cy.get('[data-cy=user-visible-checkbox] input').should('be.disabled');
+ cy.get('[data-cy=resource-delete-button]').should('be.disabled');
+ cy.get('[data-cy=edit-permission-button]').should('not.exist');
+ });
+
+ // Check permissions actions
+ cy.get('[data-cy=group-details-permissions-tab]').click();
+ cy.get('[data-cy=group-permissions-data-explorer]').within(() => {
+ cy.get('[data-cy=resource-delete-button]').should('be.disabled');
+ cy.get('[data-cy=edit-permission-button]').should('not.exist');
+ });
+ });
+ });
+
});