Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/text.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Veyssier <eneiluj@posteo.net>2022-03-10 19:11:40 +0300
committerJulien Veyssier <eneiluj@posteo.net>2022-03-10 20:29:57 +0300
commite6574b970a610fe795c677a7484da15c5992fbbf (patch)
tree1b7d9d5641eca0ff4607ea036123a7e78b62d067
parentf4f5e44d7d7ace00296008819c8e3e99bfe83824 (diff)
test attachment dir content after upload, move, copy, deleteenh/more-image-cypress-tests
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
-rw-r--r--cypress/integration/images.spec.js97
-rw-r--r--cypress/support/commands.js18
2 files changed, 112 insertions, 3 deletions
diff --git a/cypress/integration/images.spec.js b/cypress/integration/images.spec.js
index 866274b0b..0ccb464ce 100644
--- a/cypress/integration/images.spec.js
+++ b/cypress/integration/images.spec.js
@@ -24,6 +24,7 @@
import { randHash } from '../utils/'
import 'cypress-file-upload'
const randUser = randHash()
+const attachmentFileNameToId = {}
const ACTION_UPLOAD_LOCAL_FILE = 1
const ACTION_INSERT_FROM_FILES = 2
@@ -61,7 +62,7 @@ const clickOnImageAction = (actionIndex, callback) => {
* @param documentId file ID of the current document
* @param imageName file name to be checked
*/
-const checkImage = (documentId, imageName) => {
+const checkImage = (documentId, imageName, imageId) => {
cy.log('Check the image is visible and well formed')
cy.get('#editor .ProseMirror div.image[data-src="text://image?imageFileName=' + imageName + '"]')
.should('be.visible')
@@ -69,6 +70,8 @@ const checkImage = (documentId, imageName) => {
.should('have.attr', 'src')
.should('contain', 'apps/text/image?documentId=' + documentId)
.should('contain', 'imageFileName=' + imageName)
+ // keep track that we have created this image in the attachment dir
+ attachmentFileNameToId[imageName] = imageId
}
/**
@@ -79,10 +82,11 @@ const checkImage = (documentId, imageName) => {
const waitForRequestAndCheckImage = (requestAlias) => {
cy.wait('@' + requestAlias).then((req) => {
// the name of the created file on NC side is returned in the response
+ const fileId = req.response.body.id
const fileName = req.response.body.name
const documentId = req.response.body.documentId
cy.wait(2000)
- checkImage(documentId, fileName)
+ checkImage(documentId, fileName, fileId)
cy.wait(1000)
cy.screenshot()
})
@@ -103,11 +107,18 @@ describe('Test all image insertion methods', () => {
cy.login(randUser, 'password')
})
- it('See test files in the list', () => {
+ it('See test files in the list and display hidden files', () => {
cy.get('#fileList tr[data-file="test.md"]', { timeout: 10000 })
.should('contain', 'test.md')
cy.get('#fileList tr[data-file="github.png"]', { timeout: 10000 })
.should('contain', 'github.png')
+
+ cy.get('#app-settings-header', { timeout: 10000 })
+ .click()
+ cy.wait(2000)
+ cy.get('#app-settings-content label[for=showhiddenfilesToggle]', { timeout: 10000 })
+ .click()
+ cy.wait(2000)
})
it('Insert an image from files', () => {
@@ -161,6 +172,86 @@ describe('Test all image insertion methods', () => {
})
})
+ it('test if image files are in the attachment folder', () => {
+ // check we stored the image names/ids
+ cy.expect(Object.keys(attachmentFileNameToId)).to.have.lengthOf(3)
+
+ cy.get(`#fileList tr[data-file="test.md"]`)
+ .should('have.attr', 'data-id')
+ .then((documentId) => {
+ cy.openFile('.attachments.' + documentId)
+ cy.wait(1000)
+ cy.screenshot()
+ for (const name in attachmentFileNameToId) {
+ cy.get(`#fileList tr[data-file="${name}"]`)
+ .should('exist')
+ .should('have.attr', 'data-id')
+ .should('eq', String(attachmentFileNameToId[name]))
+ }
+ })
+ })
+
+ it('test if attachment folder is moved with the markdown file', () => {
+ cy.createFolder('subFolder')
+ cy.wait(2000)
+ cy.moveFile('test.md', 'subFolder/test.md')
+ cy.wait(2000)
+ cy.openFile('subFolder')
+ cy.wait(2000)
+
+ cy.get(`#fileList tr[data-file="test.md"]`)
+ .should('exist')
+ .should('have.attr', 'data-id')
+ .then((documentId) => {
+ cy.openFile('.attachments.' + documentId)
+ cy.wait(2000)
+ cy.screenshot()
+ for (const name in attachmentFileNameToId) {
+ cy.get(`#fileList tr[data-file="${name}"]`)
+ .should('exist')
+ .should('have.attr', 'data-id')
+ .should('eq', String(attachmentFileNameToId[name]))
+ }
+ })
+ })
+
+ it('test if attachment folder is copied when copying a markdown file', () => {
+ cy.copyFile('subFolder/test.md', 'testCopied.md')
+ cy.wait(2000)
+ cy.reloadFileList()
+ cy.wait(2000)
+
+ cy.get(`#fileList tr[data-file="testCopied.md"]`)
+ .should('exist')
+ .should('have.attr', 'data-id')
+ .then((documentId) => {
+ cy.openFile('.attachments.' + documentId)
+ cy.wait(2000)
+ cy.screenshot()
+ for (const name in attachmentFileNameToId) {
+ cy.get(`#fileList tr[data-file="${name}"]`)
+ .should('exist')
+ .should('have.attr', 'data-id')
+ // these are new copied attachment files
+ // so they should not have the same IDs than the ones created when uploading the images
+ .should('not.eq', String(attachmentFileNameToId[name]))
+ }
+ })
+ })
+
+ it('test if attachment folder is deleted after having deleted a markdown file', () => {
+ cy.get(`#fileList tr[data-file="testCopied.md"]`)
+ .should('exist')
+ .should('have.attr', 'data-id')
+ .then((documentId) => {
+ cy.deleteFile('testCopied.md')
+ cy.reloadFileList()
+ cy.wait(2000)
+ cy.get(`#fileList tr[data-file=".attachments.${documentId}"]`)
+ .should('not.exist')
+ })
+ })
+
it('Delete the user', () => {
cy.nextcloudDeleteUser(randUser, 'password')
})
diff --git a/cypress/support/commands.js b/cypress/support/commands.js
index b117eef6a..19ab081ba 100644
--- a/cypress/support/commands.js
+++ b/cypress/support/commands.js
@@ -122,6 +122,24 @@ Cypress.Commands.add('createFolder', dirName => {
})
})
+Cypress.Commands.add('moveFile', (path, destinationPath) => {
+ cy.window().then( win => {
+ win.OC.Files.getClient().move(path, destinationPath)
+ })
+})
+
+Cypress.Commands.add('copyFile', (path, destinationPath) => {
+ cy.window().then( win => {
+ win.OC.Files.getClient().copy(path, destinationPath)
+ })
+})
+
+Cypress.Commands.add('reloadFileList', () => {
+ cy.window().then( win => {
+ win.OCA?.Files?.App?.fileList?.reload()
+ })
+})
+
Cypress.Commands.add('openFile', fileName => {
cy.get(`#fileList tr[data-file="${fileName}"] a.name`).click()
cy.wait(250)