[bitnami/owncloud] Review Cypress and Goss tests for Owncloud charts (#12700)

* [bitnami/owncloud] Review Cypress and Goss tests for Owncloud charts

Signed-off-by: Michiel <michield@vmware.com>
This commit is contained in:
Michiel
2022-10-13 11:27:16 +02:00
committed by GitHub
parent c8925d6f09
commit 404ae2bd74
12 changed files with 80 additions and 113 deletions

View File

@@ -4,11 +4,8 @@
"viewportWidth": 1200,
"viewportHeight": 860,
"env": {
"username": "user",
"password": "ComplicatedPassword123!4",
"smtpHost": "smtptesthost",
"smtpUser": "smtpUser",
"owncloudEmail": "test@example.com"
"username": "test_user",
"password": "ComplicatedPassword123!4"
},
"hosts": {
"vmware-owncloud.my": "{{ TARGET_IP }}"

View File

@@ -1,5 +0,0 @@
{
"newDomain": {
"domain": "http://vmware.com"
}
}

View File

@@ -1 +1,3 @@
{}
{
"testJson": "test"
}

View File

@@ -1,5 +0,0 @@
{
"newGroup": {
"name": "test-group"
}
}

View File

@@ -1,5 +0,0 @@
{
"newLink": {
"name": "very-cool-link"
}
}

View File

@@ -1,6 +0,0 @@
{
"newUser": {
"name": "pug",
"email": "pugsemail@email.com"
}
}

View File

@@ -1,80 +1,41 @@
/// <reference types="cypress" />
import { random } from '../support/utils';
it('allows creating a folder and uploading a file ', () => {
it('allows creating a folder, uploading a file to it, and downloading said file ', () => {
cy.login();
cy.get('.new').click();
cy.get('[data-action="folder"]').click();
cy.contains('Folder').click();
cy.fixture('folders').then((folder) => {
cy.get('[value="New folder"]').type(`${folder.newFolder.name}.${random}`);
cy.contains('Create').click();
cy.contains('.innernametext', `${folder.newFolder.name}.${random}`).click();
});
cy.get('.new').click();
cy.get('[data-action="upload"]').click();
cy.get('input[type="file"]').selectFile(
'cypress/fixtures/file_to_upload.json',
{ force: true }
);
cy.contains('No files in here').should('not.be.visible');
});
it('allows adding a group and a user', () => {
cy.login();
cy.visit('/index.php/settings/users');
cy.contains('Add Group').click();
cy.fixture('groups').then((group) => {
cy.get('#newgroupname').type(`${group.newGroup.name}.${random}`);
cy.get('#newgroup-form').within(() => {
cy.get('[type="submit"]').click();
cy.get('span').contains(`${folder.newFolder.name}.${random}`).click();
cy.get('.new').click();
cy.get('[data-action="upload"]').click();
const fileToUpload = 'file_to_upload.json';
cy.get('[type="file"]').selectFile(
`cypress/fixtures/${fileToUpload}`, { force: true }
);
cy.contains(fileToUpload).should('be.visible');
cy.get(`[href*="${fileToUpload}"]`).within(() => {
cy.get('[data-action="Share"]').click();
});
cy.contains('.groupname', `${group.newGroup.name}.${random}`);
});
cy.fixture('users').then((user) => {
cy.get('#newusername').type(`${user.newUser.name}.${random}`);
cy.get('#newemail').type(`${user.newUser.email}.${random}`);
cy.contains('Create').click();
cy.contains('.name', `${user.newUser.name}.${random}`);
});
});
it('checks the SMTP configuration', () => {
cy.login();
cy.visit('/index.php/settings/admin?sectionid=general');
cy.get('#mail_smtphost').should('have.value', Cypress.env('smtpHost'));
cy.get('#mail_smtpname').should('have.value', Cypress.env('smtpUser'));
cy.get('#mail_to_address').should('have.value', Cypress.env('owncloudEmail'));
});
it('allows sharing a file by link', () => {
cy.login();
cy.get('[data-file="ownCloud Manual.pdf"]').within(() => {
cy.get('[data-action="Share"]').click();
});
cy.get('[class="permalink"]').click();
cy.get('.detailFileInfoContainer').within(() => {
cy.get('input')
// Create a public link and try to download the file
cy.contains('Public Links').click();
cy.contains('Create public link').click();
cy.get('button').contains('Share').click();
cy.get('.linkText')
.invoke('val')
.should('contain', 'vmware')
.then((link) => {
cy.request({
method: 'GET',
url: link,
form: true,
url: `${link}/download`,
json: true,
}).then((response) => {
expect(response.status).to.eq(200);
});
const downloadedFile = response.body
cy.fixture(fileToUpload).then((uploadedFile) => {
expect(uploadedFile).to.contain(downloadedFile);
});
})
});
});
});
it('allows whitelisting a domain', () => {
cy.login();
cy.visit('/index.php/settings/personal');
cy.contains('Security').click();
cy.fixture('domains').then((domain) => {
cy.get('#domain').type(`${domain.newDomain.domain}`);
cy.get('#corsAddNewDomain').click();
cy.contains('.grid', `${domain.newDomain.domain}`);
});
});

View File

@@ -26,7 +26,7 @@ Cypress.Commands.add(
cy.get('#password').type(password);
cy.get('#submit').click();
cy.get('body').then(($body) => {
if ($body.text().includes('A safe home')) {
if ($body.find('#closeWizard').length) {
cy.get('#closeWizard').click();
}
});

View File

@@ -1,20 +1,19 @@
http:
https://owncloud:{{ .Vars.service.ports.https }}:
## A http 400 status code is expected here because HTTPS can only be accessed
## using the domain name.
status: 400
allow-insecure: true
command:
user-id-test:
exec: if [ "$(id -u)" -eq 0 ]; then exit 1; fi
check-user-info:
exec: id
exit-status: 0
stdout: []
stderr: []
stdout:
- uid={{ .Vars.containerSecurityContext.runAsUser }}
- /groups=.*{{ .Vars.podSecurityContext.fsGroup }}/
file:
/opt/bitnami/apache/conf/extra/httpd-manual.conf:
mode: "0664"
filetype: file
exists: true
/opt/bitnami/mysql:
mode: "0755"
filetype: directory
exists: true
/bitnami/owncloud/data:
mode: "0770"
/bitnami/owncloud/:
mode: "2775"
filetype: directory
exists: true
/opt/bitnami/owncloud/config/config.php:
@@ -22,5 +21,16 @@ file:
filetype: symlink
exists: true
contains:
- {{ printf "/dbuser.*%s/" .Env.OWNCLOUD_DATABASE_USER }}
- {{ printf "/dbpassword.*%s/" .Env.OWNCLOUD_DATABASE_PASSWORD }}
- /dbname.*{{ .Vars.mariadb.auth.database }}/
- /dbuser.*{{ .Vars.mariadb.auth.username }}/
- /dbpassword.*{{ .Vars.mariadb.auth.password }}/
/etc/hosts:
exists: true
filetype: file
contains:
{{ range .Vars.hostAliases }}
{{ $ip := .ip }}
{{ range $host := .hostnames }}
- /{{ $ip }}.*{{ $host }}/
{{ end }}
{{ end }}

View File

@@ -0,0 +1,16 @@
mariadb:
auth:
database: test_db_name
username: test_db_user
password: test_db_password
podSecurityContext:
fsGroup: 1002
containerSecurityContext:
runAsUser: 1002
service:
ports:
https: 8444
hostAliases:
- ip: 127.0.0.1
hostnames:
- status.testhost

View File

@@ -22,7 +22,7 @@
"url": "{SHA_ARCHIVE}",
"path": "/bitnami/owncloud"
},
"runtime_parameters": "b3duY2xvdWRIb3N0OiB2bXdhcmUtb3duY2xvdWQubXkKb3duY2xvdWRVc2VybmFtZTogdXNlcgpvd25jbG91ZFBhc3N3b3JkOiBDb21wbGljYXRlZFBhc3N3b3JkMTIzITQKb3duY2xvdWRFbWFpbDogdGVzdEBleGFtcGxlLmNvbQpzZXJ2aWNlOgogIHR5cGU6IExvYWRCYWxhbmNlcgogIHBvcnRzOgogICAgaHR0cDogODAKc210cEhvc3Q6IHNtdHB0ZXN0aG9zdApzbXRwUG9ydDogOTgyMQpzbXRwVXNlcjogc210cFVzZXIKc210cFBhc3N3b3JkOiBzbXRwQ29tcGxpY2F0ZWRQYXNzd29yZDEyMyE0",
"runtime_parameters": "b3duY2xvdWRIb3N0OiB2bXdhcmUtb3duY2xvdWQubXkKb3duY2xvdWRVc2VybmFtZTogdGVzdF91c2VyCm93bmNsb3VkUGFzc3dvcmQ6IENvbXBsaWNhdGVkUGFzc3dvcmQxMjMhNApzZXJ2aWNlOgogIHR5cGU6IExvYWRCYWxhbmNlcgogIHBvcnRzOgogICAgaHR0cDogODAKICAgIGh0dHBzOiA4NDQ0Cm1hcmlhZGI6CiAgZW5hYmxlZDogdHJ1ZQogIGF1dGg6CiAgICBkYXRhYmFzZTogdGVzdF9kYl9uYW1lCiAgICB1c2VybmFtZTogdGVzdF9kYl91c2VyCiAgICBwYXNzd29yZDogdGVzdF9kYl9wYXNzd29yZApwb2RTZWN1cml0eUNvbnRleHQ6CiAgZW5hYmxlZDogdHJ1ZQogIGZzR3JvdXA6IDEwMDIKY29udGFpbmVyU2VjdXJpdHlDb250ZXh0OgogIGVuYWJsZWQ6IHRydWUKICBydW5Bc1VzZXI6IDEwMDIKY29udGFpbmVyUG9ydHM6CiAgaHR0cDogODA4MQogIGh0dHBzOiA4NDQ0Cmhvc3RBbGlhc2VzOgogIC0gaXA6IDEyNy4wLjAuMQogICAgaG9zdG5hbWVzOgogICAgICAtIHN0YXR1cy50ZXN0aG9zdA==",
"target_platform": {
"target_platform_id": "{VIB_ENV_TARGET_PLATFORM}",
"size": {
@@ -46,7 +46,8 @@
},
"remote": {
"workload": "deploy-owncloud"
}
},
"vars_file": "vars.yaml"
}
},
{
@@ -58,7 +59,7 @@
"endpoint": "lb-owncloud-http",
"app_protocol": "HTTP",
"env": {
"username": "user",
"username": "test_user",
"password": "ComplicatedPassword123!4"
}
}

View File

@@ -22,7 +22,7 @@
"url": "{SHA_ARCHIVE}",
"path": "/bitnami/owncloud"
},
"runtime_parameters": "b3duY2xvdWRIb3N0OiB2bXdhcmUtb3duY2xvdWQubXkKb3duY2xvdWRVc2VybmFtZTogdXNlcgpvd25jbG91ZFBhc3N3b3JkOiBDb21wbGljYXRlZFBhc3N3b3JkMTIzITQKb3duY2xvdWRFbWFpbDogdGVzdEBleGFtcGxlLmNvbQpzZXJ2aWNlOgogIHR5cGU6IExvYWRCYWxhbmNlcgogIHBvcnRzOgogICAgaHR0cDogODAKc210cEhvc3Q6IHNtdHB0ZXN0aG9zdApzbXRwUG9ydDogOTgyMQpzbXRwVXNlcjogc210cFVzZXIKc210cFBhc3N3b3JkOiBzbXRwQ29tcGxpY2F0ZWRQYXNzd29yZDEyMyE0",
"runtime_parameters": "b3duY2xvdWRIb3N0OiB2bXdhcmUtb3duY2xvdWQubXkKb3duY2xvdWRVc2VybmFtZTogdGVzdF91c2VyCm93bmNsb3VkUGFzc3dvcmQ6IENvbXBsaWNhdGVkUGFzc3dvcmQxMjMhNApzZXJ2aWNlOgogIHR5cGU6IExvYWRCYWxhbmNlcgogIHBvcnRzOgogICAgaHR0cDogODAKICAgIGh0dHBzOiA4NDQ0Cm1hcmlhZGI6CiAgZW5hYmxlZDogdHJ1ZQogIGF1dGg6CiAgICBkYXRhYmFzZTogdGVzdF9kYl9uYW1lCiAgICB1c2VybmFtZTogdGVzdF9kYl91c2VyCiAgICBwYXNzd29yZDogdGVzdF9kYl9wYXNzd29yZApwb2RTZWN1cml0eUNvbnRleHQ6CiAgZW5hYmxlZDogdHJ1ZQogIGZzR3JvdXA6IDEwMDIKY29udGFpbmVyU2VjdXJpdHlDb250ZXh0OgogIGVuYWJsZWQ6IHRydWUKICBydW5Bc1VzZXI6IDEwMDIKY29udGFpbmVyUG9ydHM6CiAgaHR0cDogODA4MQogIGh0dHBzOiA4NDQ0Cmhvc3RBbGlhc2VzOgogIC0gaXA6IDEyNy4wLjAuMQogICAgaG9zdG5hbWVzOgogICAgICAtIHN0YXR1cy50ZXN0aG9zdA==",
"target_platform": {
"target_platform_id": "{VIB_ENV_TARGET_PLATFORM}",
"size": {
@@ -46,7 +46,8 @@
},
"remote": {
"workload": "deploy-owncloud"
}
},
"vars_file": "vars.yaml"
}
},
{
@@ -58,7 +59,7 @@
"endpoint": "lb-owncloud-http",
"app_protocol": "HTTP",
"env": {
"username": "user",
"username": "test_user",
"password": "ComplicatedPassword123!4"
}
}