Skip to content

Commit

Permalink
Merge branch 'develop' into feature/settings
Browse files Browse the repository at this point in the history
  • Loading branch information
herflis authored Mar 9, 2021
2 parents 2f063ea + 6e4f278 commit af101a7
Show file tree
Hide file tree
Showing 9 changed files with 252 additions and 17 deletions.
61 changes: 61 additions & 0 deletions apps/sensenet/cypress/integration/content-crud/link-list.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
import { PATHS, resolvePathParams } from '../../../src/application-paths'
import { pathWithQueryParams } from '../../../src/services/query-string-builder'

describe('Link list', () => {
beforeEach(() => {
cy.login()
cy.visit(
pathWithQueryParams({
path: resolvePathParams({ path: PATHS.content.appPath, params: { browseType: 'explorer' } }),
newParams: { repoUrl: Cypress.env('repoUrl'), path: '/IT' },
}),
)
})

it('should create a content with the link list type', () => {
cy.get('[data-test="add-button"]').should('not.be.disabled').click()
cy.get('[data-test="listitem-link-list"]')
.click()
.then(() => {
cy.get('#DisplayName').type('Test Link List')
cy.contains('Submit').click()

cy.get(`[data-test="table-cell-test-link-list"]`).should('exist')
})
cy.get('[data-test="menu-item-test-link-list"]').click({ force: true })
cy.get('[data-test="add-button"]')
.click()
.then(() => {
const expetcedMenuItems = ['Link']
cy.get('[data-test="list-items"]')
.children()
.should('have.length', expetcedMenuItems.length)
.each(($span) => {
const text = $span.text()
if (text) {
expect(expetcedMenuItems).to.include(text)
}
})
})
})

it('should edit the link list', () => {
cy.get('[data-test="table-cell-test-link-list"]').rightclick({ force: true })
cy.get('[data-test="content-context-menu-edit"]').click()
cy.get('#DisplayName').clear().type('Changed Test Link List')
cy.contains('Submit').click()

cy.get('[data-test="table-cell-changed-test-link-list').should('exist')
cy.get('[data-test="table-cell-test-link-list"]').should('not.exist')
})

it('should delete the link', () => {
cy.get('[data-test="table-cell-changed-test-link-list').rightclick({ force: true })
cy.get('[data-test="content-context-menu-delete"]').click()
cy.get('[data-test="delete-permanently"] input[type="checkbox"]').check()

cy.get('[data-test="button-delete-confirm"]').click()

cy.get('[data-test="table-cell-changed-test-link-list').should('not.exist')
})
})
63 changes: 63 additions & 0 deletions apps/sensenet/cypress/integration/content-crud/memo-list.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import { PATHS, resolvePathParams } from '../../../src/application-paths'
import { pathWithQueryParams } from '../../../src/services/query-string-builder'

describe('Memo list', () => {
beforeEach(() => {
cy.login()
cy.visit(
pathWithQueryParams({
path: resolvePathParams({ path: PATHS.content.appPath, params: { browseType: 'explorer' } }),
newParams: { repoUrl: Cypress.env('repoUrl'), path: '/IT' },
}),
)
})

it('should create a content with the memo list type', () => {
cy.get('[data-test="add-button"]').should('not.be.disabled').click()
cy.get('[data-test="listitem-memo-list"]')
.click()
.then(() => {
cy.get('#Name').type('Test Memo List')
cy.get('#DisplayName').type('Test Memo List')
cy.contains('Submit').click()

cy.get(`[data-test="table-cell-test-memo-list"]`).should('exist')
})
cy.get('[data-test="menu-item-test-memo-list"]').click({ force: true })
cy.get('[data-test="add-button"]')
.click()
.then(() => {
const expetcedMenuItems = ['Memo']
cy.get('[data-test="list-items"]')
.children()
.should('have.length', expetcedMenuItems.length)
.each(($span) => {
const text = $span.text()
if (text) {
expect(expetcedMenuItems).to.include(text)
}
})
})
})

it('should edit the memo list', () => {
cy.get('[data-test="table-cell-test-memo-list"]').rightclick({ force: true })
cy.get('[data-test="content-context-menu-edit"]').click()
cy.get('#Name').clear().type('Changed Test Memo List')
cy.get('#DisplayName').clear().type('Changed Test Memo List')
cy.contains('Submit').click()

cy.get('[data-test="table-cell-changed-test-memo-list').should('exist')
cy.get('[data-test="table-cell-test-memo-list"]').should('not.exist')
})

it('should delete the memo', () => {
cy.get('[data-test="table-cell-changed-test-memo-list').rightclick({ force: true })
cy.get('[data-test="content-context-menu-delete"]').click()
cy.get('[data-test="delete-permanently"] input[type="checkbox"]').check()

cy.get('[data-test="button-delete-confirm"]').click()

cy.get('[data-test="table-cell-changed-test-memo-list').should('not.exist')
})
})
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { pathWithQueryParams } from '../../../src/services/query-string-builder'

describe('Permission editor dialog buttons', () => {
before(() => {
cy.login()
cy.visit(pathWithQueryParams({ path: '/', newParams: { repoUrl: Cypress.env('repoUrl') } }))
})

it('opens the permission editor dialog and clicking on Submit closes it', () => {
cy.get('[data-test="drawer-menu-item-content"]').click()
cy.get('[data-test="menu-item-it-workspace"]').rightclick()
cy.get('[data-test="content-context-menu-setpermissions"]').click()
cy.get('[data-test="set-on-this-visitors"]').click()

cy.get('[data-test="permission-dialog-title"]').should('have.text', 'Visitors')
cy.get('[data-test="permission-editor-submit"]').click()
cy.get('[data-test="permission-dialog-title"]').should('not.exist')
})

it('opens the permission editor dialog and clicking on Cancel closes it', () => {
cy.get('[data-test="permission-inherited-list"]').click()
cy.get('[data-test="inherited-editors"]').click()
cy.get('[data-test="permission-dialog-title"]').should('have.text', 'Editors')
cy.get('[data-test="permission-editor-cancel"]').click()
cy.get('[data-test="permission-dialog-title"]').should('not.exist')
})
})
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import { pathWithQueryParams } from '../../../src/services/query-string-builder'

const inheritedItems = ['Administrators', 'Developers', 'Editors']
const setOnThisItems = ['Members', 'Owners', 'Visitors']
describe('Permission editor main page lists', () => {
before(() => {
cy.login()
cy.visit(pathWithQueryParams({ path: '/', newParams: { repoUrl: Cypress.env('repoUrl') } }))
cy.viewport(1340, 890)
})

it('appears from the context-menu', () => {
cy.get('[data-test="drawer-menu-item-content"]').click()
cy.get('[data-test="menu-item-it-workspace"]').rightclick()
cy.get('[data-test="content-context-menu-setpermissions"]').click()
cy.get('[data-test="permission-view-title-first"]').should('have.text', 'Set permissions for ')
cy.get('[data-test="permission-view-title-second"]').should('have.text', 'IT Workspace')
})

it('Inherited from ancestor list has the expected child items', () => {
inheritedItems.forEach((item) =>
cy.get(`[data-test="inherited-${item.replace(/\s+/g, '-').toLowerCase()}"]`).should('not.exist'),
)
cy.get('[data-test="permission-inherited-list"]').should('be.visible').click()

inheritedItems.forEach((item) =>
cy.get(`[data-test="inherited-${item.replace(/\s+/g, '-').toLowerCase()}"]`).should('exist'),
)
})

it('Set on this content list has the expected child items', () => {
setOnThisItems.forEach((item) =>
cy.get(`[data-test="set-on-this-${item.replace(/\s+/g, '-').toLowerCase()}"]`).should('exist'),
)

cy.get('[data-test="permission-set-on-this-list"]').should('be.visible').click()

inheritedItems.forEach((item) =>
cy.get(`[data-test="set-on-this-${item.replace(/\s+/g, '-').toLowerCase()}"]`).should('not.exist'),
)
})
})
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { pathWithQueryParams } from '../../../src/services/query-string-builder'

describe('Permission editor - public/private content', () => {
before(() => {
cy.login()
cy.visit(pathWithQueryParams({ path: '/', newParams: { repoUrl: Cypress.env('repoUrl') } }))
})

it('Make content public should work properly', () => {
cy.get('[data-test="drawer-menu-item-content"]').click()
cy.get('[data-test="menu-item-it-workspace"]').rightclick()
cy.get('[data-test="content-context-menu-setpermissions"]').click()

cy.get('[data-test="make-content-public-or-private"]').click()
cy.get('[data-test="set-on-this-visitor"]').should('be.visible')
})

it('Make content private should work properly', () => {
cy.get('[data-test="make-content-public-or-private"]').click()
cy.get('[data-test="set-on-this-visitor"]').should('not.exist')
})
})
Original file line number Diff line number Diff line change
@@ -1,37 +1,44 @@
import { pathWithQueryParams } from '../../../src/services/query-string-builder'

const expedtedSearchItems = ['Sample workspace', 'Sample link', 'Sample memo', 'Sample task', 'Sample event']

describe('Saved queries', () => {
before(() => {
cy.login()
cy.visit(pathWithQueryParams({ path: '/', newParams: { repoUrl: Cypress.env('repoUrl') } }))
cy.viewport(1000, 800)
})
it('saving a query should work properly.', () => {
const inputText = "+InFolder:'/Root/Content/IT/Document_Library'"
const inputText = 'Sample'
cy.get('[data-test="drawer-menu-item-search"]').click()
cy.get('a[title="New search"]').click()
cy.get('[data-test="input-search"]').type(inputText)
cy.get('[data-test="table-cell-chicago"]').should('be.visible')
cy.get('[data-test="table-cell-munich"]').should('be.visible')

expedtedSearchItems.forEach((item) => {
cy.get(`[data-test="table-cell-${item?.replace(/\s+/g, '-').toLowerCase()}"]`).should('be.visible')
})

cy.get('button[aria-label="Save Query"]')
.click()
.then(() => {
cy.get('div[role="dialog"]').find('input[type="text"]').clear().type('test query for IT Doclib')
cy.get('div[role="dialog"]').find('input[type="text"]').clear().type('test search for a keyword')
cy.get('div[role="dialog"]').find('button[aria-label="Save"]').click()
cy.get('[data-test="drawer-menu-item-search"]')
.click()
.then(() => {
cy.get('[data-test="table-cell-test-query-for-it-doclib"]').should('be.visible')
cy.get('[data-test="table-cell-test-search-for-a-keyword"]').should('be.visible')
})
cy.get('[data-test="table-cell-test-query-for-it-doclib"]').dblclick()
cy.get('[data-test="table-cell-test-search-for-a-keyword"]').dblclick()
cy.get('[data-test="input-search"]').find('input[type="text"]').should('have.value', inputText)

cy.get('[data-test="table-cell-chicago"]').should('be.visible')
cy.get('[data-test="table-cell-munich"]').should('be.visible')
expedtedSearchItems.forEach((item) => {
cy.get(`[data-test="table-cell-${item?.replace(/\s+/g, '-').toLowerCase()}"]`).should('be.visible')
})
})
})
it('delete of a saved query should work properly.', () => {
cy.get('[data-test="drawer-menu-item-search"]').click()
cy.get('[data-test="table-cell-test-query-for-it-doclib"]')
cy.get('[data-test="table-cell-test-search-for-a-keyword"]')
.rightclick()
.then(() => {
cy.get('[data-test="content-context-menu-delete"]')
Expand All @@ -40,7 +47,7 @@ describe('Saved queries', () => {
cy.get('[data-test="delete-permanently"]').click()
cy.get('button[aria-label="Delete"]').click()
cy.get('h6').should('have.text', 'There is no query saved yet.')
cy.get('[data-test="table-cell-test-query-for-it-doclib"]').should('not.exist')
cy.get('[data-test="table-cell-test-search-for-a-keyword"]').should('not.exist')
})
})
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,7 @@ export function PermissionEditorDialog(props: PermissionEditorDialogProps) {

return (
<>
<DialogTitle>{props.entry.identity.displayName}</DialogTitle>
<DialogTitle data-test={'permission-dialog-title'}>{props.entry.identity.displayName}</DialogTitle>
<DialogContent className={classes.contentWrapper}>
<List
className={clsx(classes.column, classes.leftColumn)}
Expand Down Expand Up @@ -452,6 +452,7 @@ export function PermissionEditorDialog(props: PermissionEditorDialogProps) {
)}
<DialogActions className={classes.dialogActions}>
<Button
data-test="permission-editor-cancel"
aria-label={localization.forms.cancel}
className={globalClasses.cancelButton}
onClick={() => {
Expand Down
22 changes: 17 additions & 5 deletions apps/sensenet/src/components/view-controls/permission-view.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -172,8 +172,10 @@ export const PermissionView: React.FC<PermissionViewProps> = (props) => {
<div className={classes.titleContainer}>
<Tooltip title={localization.permissionEditor.setPermissons + currentContent?.DisplayName} placement="top">
<div className={classes.title}>
<span>{localization.permissionEditor.setPermissons} </span>
<span className={classes.contentName}>{currentContent?.DisplayName}</span>
<span data-test={'permission-view-title-first'}>{localization.permissionEditor.setPermissons} </span>
<span data-test={'permission-view-title-second'} className={classes.contentName}>
{currentContent?.DisplayName}
</span>
</div>
</Tooltip>
<div className={classes.buttonWrapper}>
Expand All @@ -185,6 +187,7 @@ export const PermissionView: React.FC<PermissionViewProps> = (props) => {
}
placement="right">
<Button
data-test={'make-content-public-or-private'}
aria-label={
isPrivate ? localization.permissionEditor.makePublic : localization.permissionEditor.makePrivate
}
Expand Down Expand Up @@ -241,7 +244,10 @@ export const PermissionView: React.FC<PermissionViewProps> = (props) => {
</div>
</div>
<List component="nav">
<ListItem button onClick={() => setOpenInheritedList(!openInheritedList)}>
<ListItem
data-test={'permission-inherited-list'}
button
onClick={() => setOpenInheritedList(!openInheritedList)}>
{openInheritedList ? <ExpandLess /> : <ExpandMore />}
<ListItemText primary={localization.permissionEditor.inherited} className={classes.listTitle} />
</ListItem>
Expand All @@ -267,7 +273,10 @@ export const PermissionView: React.FC<PermissionViewProps> = (props) => {
dialogProps: { maxWidth: 'sm', classes: { container: globalClasses.centeredRight } },
})
}}>
<ListItemIcon>
<ListItemIcon
data-test={`inherited-${inheritedEntry.identity.displayName
?.replace(/\s+/g, '-')
.toLowerCase()}`}>
{inheritedEntry.identity.kind === 'group' ? (
<div className={clsx(classes.iconWrapper, globalClasses.centered)}>
<GroupOutlined />
Expand Down Expand Up @@ -310,7 +319,10 @@ export const PermissionView: React.FC<PermissionViewProps> = (props) => {
})}
</List>
</Collapse>
<ListItem button onClick={() => setOpenSetOnThisList(!openSetOnThisList)}>
<ListItem
data-test={'permission-set-on-this-list'}
button
onClick={() => setOpenSetOnThisList(!openSetOnThisList)}>
{openSetOnThisList ? <ExpandLess /> : <ExpandMore />}
<ListItemText primary={localization.permissionEditor.setOnThis} className={classes.listTitle} />
</ListItem>
Expand Down
2 changes: 1 addition & 1 deletion apps/sensenet/src/localization/default.ts
Original file line number Diff line number Diff line change
Expand Up @@ -481,7 +481,7 @@ const values = {
},
permissionEditor: {
assign: 'Assing new permisson',
setPermissons: 'Set permissions for ',
setPermissons: 'Set permissions for',
errorGetAcl: 'Something went wrong during getting permissions',
noContent: 'There is no direct permission setting on this content',
inherited: 'Inherited from ancestor',
Expand Down

0 comments on commit af101a7

Please sign in to comment.