Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[OCM][Test Suite] Add invite link flow tests for oCIS #127

Merged
merged 58 commits into from
Jul 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
c2deba1
add: new certificates fro ocis and ldap
MahdiBaghbani Jul 23, 2024
a9554c1
add: docker pull images for ocis
MahdiBaghbani Jul 23, 2024
f9bb002
add: initial script to boot up ocis
MahdiBaghbani Jul 23, 2024
fdd3738
add: ocis ldap idp config files
MahdiBaghbani Jul 23, 2024
b348631
add: initial ocm provider json for ocis
MahdiBaghbani Jul 23, 2024
b08287c
add: complete ocm providers
MahdiBaghbani Jul 25, 2024
9e7979c
add: enable ocm app in the ui
MahdiBaghbani Jul 25, 2024
c73b1c8
remove: ldap related files
MahdiBaghbani Jul 25, 2024
a6c2252
add: ocis setup with sciencemesh enabled
MahdiBaghbani Jul 25, 2024
3cbba5e
add: ocis login test to ci
MahdiBaghbani Jul 25, 2024
11015ac
fix: file name
MahdiBaghbani Jul 25, 2024
8703003
fix: typo
MahdiBaghbani Jul 25, 2024
c46789b
fix: typo
MahdiBaghbani Jul 25, 2024
f7f0f85
fix: typo (do not code when you are sleepy)
MahdiBaghbani Jul 25, 2024
b77efdb
add: increased timeout for login form
MahdiBaghbani Jul 26, 2024
b3beb3d
modify: increase timeout for url check
MahdiBaghbani Jul 26, 2024
def1809
add: ignore ocis generated files during test
MahdiBaghbani Jul 26, 2024
4d4157a
add: ocis 5 utility functions
MahdiBaghbani Jul 26, 2024
366903d
modify: ocis login function name
MahdiBaghbani Jul 26, 2024
df2bf83
add: initial ocis to ocis invite link test
MahdiBaghbani Jul 26, 2024
10c4d9f
add: complete invite and accept invite flow
MahdiBaghbani Jul 26, 2024
3a2e96d
add: successful ocis to ocis sciencemesh share
MahdiBaghbani Jul 26, 2024
c00073e
style: format reva ocm providers
MahdiBaghbani Jul 26, 2024
0dcc829
add: ocis to ocis sciencemesh share to ci
MahdiBaghbani Jul 26, 2024
ee0b042
modify: trun steps into reusable functions
MahdiBaghbani Jul 27, 2024
63beba3
fix: typo
MahdiBaghbani Jul 27, 2024
ccb6cd6
add: ocis to providers
MahdiBaghbani Jul 27, 2024
c5ee84a
modify: make ocmproviders more flexible
MahdiBaghbani Jul 27, 2024
ff13fb6
fix: typo
MahdiBaghbani Jul 27, 2024
572f8b2
add: configure ocm and dav path manually
MahdiBaghbani Jul 27, 2024
b98498c
refactor: change name from link to token
MahdiBaghbani Jul 27, 2024
1d7578c
add: ocis to owncloud sciencemesh share script
MahdiBaghbani Jul 27, 2024
15b5cc5
add: ocis to oc generated files to ignore
MahdiBaghbani Jul 27, 2024
7151189
add: legacy invite link generator
MahdiBaghbani Jul 27, 2024
58325a7
add: complete ocis to owncloud vypress test
MahdiBaghbani Jul 27, 2024
83080c3
add: enable ocis to owncloud test
MahdiBaghbani Jul 27, 2024
0e9a54c
add: ocis to nextcloud scripts
MahdiBaghbani Jul 27, 2024
9e47a56
fix: typo
MahdiBaghbani Jul 27, 2024
57d0a7a
fix: typo
MahdiBaghbani Jul 27, 2024
597843f
add: ocis to nc generated file to ignore
MahdiBaghbani Jul 27, 2024
1f2f1dd
add: complete ocis to nc cypress test
MahdiBaghbani Jul 27, 2024
bc5cdff
ci: enable ocis to nc share test
MahdiBaghbani Jul 27, 2024
8525d9e
remove: whiteline
MahdiBaghbani Jul 27, 2024
b3439f4
add: oc to ocis share scripts
MahdiBaghbani Jul 27, 2024
b507adf
fix: typo
MahdiBaghbani Jul 27, 2024
4522635
fix: typo
MahdiBaghbani Jul 27, 2024
96aaa75
fix: typo
MahdiBaghbani Jul 27, 2024
eae6e0d
add: oc to ocis generated files to ignore
MahdiBaghbani Jul 27, 2024
5f9238c
add: function to create token
MahdiBaghbani Jul 27, 2024
941dd09
add: oc to ocis share test
MahdiBaghbani Jul 27, 2024
2d5e756
ci: enable oc to ocis share test
MahdiBaghbani Jul 27, 2024
1734c75
add: nc to ocis scripts
MahdiBaghbani Jul 27, 2024
bba4f9b
fix: typo in efss platform version
MahdiBaghbani Jul 28, 2024
c0d469c
add: nc to ocis test generated file to ignore
MahdiBaghbani Jul 28, 2024
b2ec282
add: new functions to verify fed contact and create sicencemesh share
MahdiBaghbani Jul 28, 2024
4131f22
add: nc to ocsi sciencemesh share
MahdiBaghbani Jul 28, 2024
9ccc611
ci: enable nc to ocis scienceemsh share test
MahdiBaghbani Jul 28, 2024
309f057
add: sciencemesh invite link example
MahdiBaghbani Jul 28, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions .github/workflows/ocm-test-suite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ jobs:
platform: owncloud,
version: v10.14.0
},
{
platform: ocis,
version: 5.0.6
},
# TODO: @MahdiBaghbani fix it via naother pr in future. (is it necessary?)
# cypress login is not compatible with previous versions
# {
Expand Down Expand Up @@ -261,7 +265,11 @@ jobs:
{
platform: owncloud,
version: v10.14.0
}
},
{
platform: ocis,
version: 5.0.6
},
]
receiver: [
{
Expand All @@ -271,7 +279,11 @@ jobs:
{
platform: owncloud,
version: v10.14.0
}
},
{
platform: ocis,
version: 5.0.6
},
]

# The OS to run tests on, (I believe for OCM testing OS is really not that important).
Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,8 @@ cypress/ocm-test-suite/invite-link-nc-nc.txt
cypress/ocm-test-suite/invite-link-nc-oc.txt
cypress/ocm-test-suite/invite-link-oc-nc.txt
cypress/ocm-test-suite/invite-link-oc-oc.txt
cypress/ocm-test-suite/invite-link-oc-ocis.txt
cypress/ocm-test-suite/invite-link-nc-ocis.txt
cypress/ocm-test-suite/invite-link-ocis-nc.txt
cypress/ocm-test-suite/invite-link-ocis-oc.txt
cypress/ocm-test-suite/invite-link-ocis-ocis.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import {
createInviteLinkV27,
verifyFederatedContactV27,
createScienceMeshShareAdvancedV27,
renameFileV27
} from '../utils/nextcloud-v27'

import {
openScienceMeshAppV5,
createLegacyInviteLinkV5,
acceptShareV5,
verifyShareV5
} from '../utils/ocis-5'

describe('Invite link federated sharing via ScienceMesh functionality for oCIS', () => {
it('Send invitation from Nextcloud v27 to oCIS v5', () => {

cy.loginOcis('https://ocis1.docker', 'einstein', 'relativity')

openScienceMeshAppV5()

createLegacyInviteLinkV5('nextcloud1.docker', 'ocis1.docker').then(
(result) => {
// save invite link to file.
cy.writeFile('invite-link-nc-ocis.txt', result)
}
)
})

it('Accept invitation from Nextcloud v27 to oCIS v5', () => {

// load invite link from file.
cy.readFile('invite-link-nc-ocis.txt').then((url) => {

// accept invitation from Nextcloud 1.
cy.loginNextcloudCore(url, 'marie', 'radioactivity')

cy.get('input[id="accept-button"]', { timeout: 10000 })
.click()

// validate 'Albert Einstein' is shown as a contact.
verifyFederatedContactV27('nextcloud1.docker', 'Albert Einstein', 'ocis1.docker')
})
})

it('Send ScienceMesh share <file> from Nextcloud v27 to oCIS v5', () => {
// share from Nextcloud 1.
cy.loginNextcloud('https://nextcloud1.docker', 'marie', 'radioactivity')

renameFileV27('welcome.txt', 'invite-link-nc-ocis.txt')
createScienceMeshShareAdvancedV27('nextcloud1.docker', 'Albert Einstein', 'ocis1.docker', 'invite-link-nc-ocis.txt')
})

it('Receive ScienceMesh share <file> from Nextcloud v27 to oCIS v5', () => {
// accept share from oCIS 1.
cy.loginOcis('https://ocis1.docker', 'einstein', 'relativity')

acceptShareV5('invite-link-nc-ocis.txt')

cy.reload(true)

verifyShareV5(
'invite-link-nc-ocis.txt',
'marie',
'Albert Einstein'
)
})
})
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
import {
openFilesAppV5,
openScienceMeshAppV5,
createLegacyInviteLinkV5,
createTextFileV5,
createShareV5,
} from '../utils/ocis-5'

describe('Invite link federated sharing via ScienceMesh functionality for oCIS', () => {
it('Send invitation from oCIS v5 to Nextcloud v27', () => {

cy.loginOcis('https://ocis1.docker', 'einstein', 'relativity')

openScienceMeshAppV5()

createLegacyInviteLinkV5('nextcloud1.docker', 'ocis1.docker').then(
(result) => {
// save invite link to file.
cy.writeFile('invite-link-ocis-nc.txt', result)
}
)
})

it('Accept invitation from oCIS v5 to Nextcloud v27', () => {

// load invite link from file.
cy.readFile('invite-link-ocis-nc.txt').then((url) => {

// accept invitation from Nextcloud 1.
cy.loginNextcloudCore(url, 'marie', 'radioactivity')

cy.get('input[id="accept-button"]', { timeout: 10000 })
.click()

// validate 'Albert Einstein' is shown as a contact.
cy.visit('https://nextcloud1.docker/index.php/apps/sciencemesh/contacts')

cy.get('table[id="contact-table"]')
.find('p[class="displayname"]')
.should("have.text", "Albert Einstein");
})
})

it('Send ScienceMesh share <file> from oCIS v5 to Nextcloud v27', () => {
// share from oCIS 1.
cy.loginOcis('https://ocis1.docker', 'einstein', 'relativity')

createTextFileV5('invite-link-ocis-nc.txt', 'Hello World!')

openFilesAppV5()

createShareV5('invite-link-ocis-nc.txt', 'marie')
})

it('Receive ScienceMesh share <file> from oCIS v5 to Nextcloud v27', () => {
// accept share from Nextcloud 1.
cy.loginNextcloud('https://nextcloud1.docker', 'marie', 'radioactivity')

cy.get('div[class="oc-dialog"]', { timeout: 10000 })
.should('be.visible')
.find('*[class^="oc-dialog-buttonrow"]')
.find('button[class="primary"]')
.click()

cy.get('[data-file="invite-link-ocis-nc.txt"]', { timeout: 10000 }).should('be.visible')
})
})
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
import {
openFilesAppV5,
openScienceMeshAppV5,
createInviteTokenV5,
acceptInviteLinkV5,
verifyFederatedContactV5,
createTextFileV5,
createShareV5,
acceptShareV5,
verifyShareV5
} from '../utils/ocis-5'

describe('Invite link federated sharing via ScienceMesh functionality for oCIS', () => {
it('Send invitation from oCIS v5 to oCIS v5', () => {

cy.loginOcis('https://ocis1.docker', 'einstein', 'relativity')

openScienceMeshAppV5()

createInviteTokenV5().then(
(result) => {
// save invite link to file.
cy.writeFile('invite-link-ocis-ocis.txt', result)
}
)
})

it('Accept invitation from oCIS v5 to oCIS v5', () => {

// load invite token from file.
cy.readFile('invite-link-ocis-ocis.txt').then((token) => {

cy.loginOcis('https://ocis2.docker', 'marie', 'radioactivity')

acceptInviteLinkV5(token)

verifyFederatedContactV5('Albert Einstein', 'ocis1.docker')
})
})

it('Send ScienceMesh share <file> from oCIS v5 to oCIS v5', () => {
// share from oCIS 1.
cy.loginOcis('https://ocis1.docker', 'einstein', 'relativity')

createTextFileV5('invite-link-ocis-ocis.txt', 'Hello World!')

openFilesAppV5()

createShareV5('invite-link-ocis-ocis.txt', 'marie')
})

it('Receive ScienceMesh share <file> from oCIS v5 to oCIS v5', () => {
// accept share from oCIS 2.
cy.loginOcis('https://ocis2.docker', 'marie', 'radioactivity')

acceptShareV5('invite-link-ocis-ocis.txt')

cy.reload(true)

verifyShareV5(
'invite-link-ocis-ocis.txt',
'Albert Einstein',
'Marie Skłodowska Curie'
)
})
})
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import {
openFilesAppV5,
openScienceMeshAppV5,
createLegacyInviteLinkV5,
createTextFileV5,
createShareV5,
} from '../utils/ocis-5'

describe('Invite link federated sharing via ScienceMesh functionality for oCIS', () => {
it('Send invitation from oCIS v5 to ownCloud v10', () => {

cy.loginOcis('https://ocis1.docker', 'einstein', 'relativity')

openScienceMeshAppV5()

createLegacyInviteLinkV5('owncloud1.docker', 'ocis1.docker').then(
(result) => {
// save invite link to file.
cy.writeFile('invite-link-ocis-oc.txt', result)
}
)
})

it('Accept invitation from oCIS v5 to ownCloud v10', () => {

// load invite link from file.
cy.readFile('invite-link-ocis-oc.txt').then((url) => {

// accept invitation from ownCloud 1.
cy.loginOwncloudCore(url, 'marie', 'radioactivity')

cy.get('input[id="accept-button"]', { timeout: 10000 })
.click()

// validate 'Albert Einstein' is shown as a contact.
cy.visit('https://owncloud1.docker/index.php/apps/sciencemesh/contacts')

cy.get('table[id="contact-table"]')
.find('p[class="displayname"]')
.should("have.text", "Albert Einstein");
})
})

it('Send ScienceMesh share <file> from oCIS v5 to ownCloud v10', () => {
// share from oCIS 1.
cy.loginOcis('https://ocis1.docker', 'einstein', 'relativity')

createTextFileV5('invite-link-ocis-oc.txt', 'Hello World!')

openFilesAppV5()

createShareV5('invite-link-ocis-oc.txt', 'marie')
})

it('Receive ScienceMesh share <file> from oCIS v5 to ownCloud v10', () => {
// accept share from ownCloud 1.
cy.loginOwncloud('https://owncloud1.docker', 'marie', 'radioactivity')

cy.get('div[class="oc-dialog"]', { timeout: 10000 })
.should('be.visible')
.find('*[class^="oc-dialog-buttonrow"]')
.find('button[class="primary"]')
.click()

cy.get('[data-file="invite-link-ocis-oc.txt"]', { timeout: 10000 })
.should('be.visible')
})
})
Loading
Loading