Skip to content

Commit

Permalink
Merge pull request #4510 from nextcloud/fix/direct-editing-save
Browse files Browse the repository at this point in the history
  • Loading branch information
juliusknorr authored Jul 27, 2023
2 parents a235396 + 0447b45 commit 6d2ee51
Show file tree
Hide file tree
Showing 14 changed files with 78 additions and 22 deletions.
62 changes: 59 additions & 3 deletions cypress/e2e/directediting.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,45 +49,101 @@ const createDirectEditingLinkForNewFile = (user, file) => {
}

describe('direct editing', function() {

const visitHooks = {
onBeforeLoad(win) {
win.DirectEditingMobileInterface = {
close() {},
}
},
}
before(function() {
initUserAndFiles(user, 'test.md', 'empty.md', 'empty.txt')
})

it('Open an existing file, edit it', () => {
cy.intercept({ method: 'POST', url: '**/session/close' }).as('closeRequest')
cy.intercept({ method: 'POST', url: '**/session/push' }).as('push')
cy.intercept({ method: 'POST', url: '**/session/sync' }).as('sync')

createDirectEditingLink(user, 'empty.md')
.then((token) => {
cy.logout()
cy.visit(token)
cy.visit(token, visitHooks)
})
cy.getContent().type('# This is a headline')
cy.getContent().type('{enter}')
cy.getContent().type('Some text')
cy.getContent().type('{enter}')
cy.getContent().type('{ctrl+s}')

cy.wait('@push')
cy.wait('@sync')

cy.get('button.icon-close').click()
cy.wait('@closeRequest')
.then(() => {
cy.getFileContent('empty.md').then((content) => {
expect(content).to.equal('# This is a headline\n\nSome text')
})
})
})

it('Create a file, edit it', () => {
cy.intercept({ method: 'POST', url: '**/session/close' }).as('closeRequest')
cy.intercept({ method: 'POST', url: '**/session/push' }).as('push')
cy.intercept({ method: 'POST', url: '**/session/sync' }).as('sync')

createDirectEditingLinkForNewFile(user, 'newfile.md')
.then((token) => {
cy.logout()
cy.visit(token)
cy.visit(token, visitHooks)
})

cy.getContent().type('# This is a headline')
cy.getContent().type('{enter}')
cy.getContent().type('Some text')
cy.getContent().type('{enter}')
cy.getContent().type('{ctrl+s}')

cy.wait('@push')
cy.wait('@sync')

cy.get('button.icon-close').click()
cy.wait('@closeRequest')
.then(() => {
cy.getFileContent('newfile.md').then((content) => {
expect(content).to.equal('# This is a headline\n\nSome text')
})
})
})

it('Open an existing plain text file, edit it', () => {
cy.intercept({ method: 'POST', url: '**/session/close' }).as('closeRequest')
cy.intercept({ method: 'POST', url: '**/session/push' }).as('push')
cy.intercept({ method: 'POST', url: '**/session/sync' }).as('sync')

createDirectEditingLink(user, 'empty.txt')
.then((token) => {
cy.logout()
cy.visit(token)
cy.visit(token, visitHooks)
})

cy.getContent().type('# This is a headline')
cy.getContent().type('{enter}')
cy.getContent().type('Some text')
cy.getContent().type('{enter}')
cy.getContent().type('{ctrl+s}')

cy.wait('@push')
cy.wait('@sync')

cy.get('button.icon-close').click()
cy.wait('@closeRequest')
.then(() => {
cy.getFileContent('empty.txt').then((content) => {
expect(content).to.equal('# This is a headline\nSome text\n')
})
})
})
})
4 changes: 2 additions & 2 deletions js/editor.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/editor.js.map

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions js/text-editors.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/text-editors.js.map

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions js/text-files.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/text-files.js.map

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions js/text-public.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/text-public.js.map

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions js/text-text.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/text-text.js.map

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions js/text-viewer.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/text-viewer.js.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion src/views/DirectEditing.vue
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ export default {
async close() {
this.saving = true
setTimeout(async () => {
await this.$refs.editor.close()
await this.$refs.editor.$destroy()
callMobileMessage('close')
}, 0)
},
Expand Down

0 comments on commit 6d2ee51

Please sign in to comment.