Changeset View
Changeset View
Standalone View
Standalone View
cypress/integration/persistent-identifiers.spec.js
Show All 39 Lines | cy.visit(url).window().then(win => { | ||||
relSWHID = swhids.release.swhid; | relSWHID = swhids.release.swhid; | ||||
relSWHIDWithContext = swhids.release.swhid_with_context; | relSWHIDWithContext = swhids.release.swhid_with_context; | ||||
snpSWHID = swhids.snapshot.swhid; | snpSWHID = swhids.snapshot.swhid; | ||||
snpSWHIDWithContext = swhids.snapshot.swhid_with_context; | snpSWHIDWithContext = swhids.snapshot.swhid_with_context; | ||||
testsData = [ | testsData = [ | ||||
{ | { | ||||
'objectType': 'content', | 'objectType': 'content', | ||||
'objectPids': [cntSWHIDWithContext, cntSWHID], | 'objectSWHIDs': [cntSWHIDWithContext, cntSWHID], | ||||
'badgeUrl': this.Urls.swh_badge('content', swhids.content.object_id), | 'badgeUrl': this.Urls.swh_badge('content', swhids.content.object_id), | ||||
'badgePidUrl': this.Urls.swh_badge_pid(cntSWHID), | 'badgeSWHIDUrl': this.Urls.swh_badge_swhid(cntSWHID), | ||||
'browseUrl': this.Urls.browse_swh_id(cntSWHIDWithContext) | 'browseUrl': this.Urls.browse_swhid(cntSWHIDWithContext) | ||||
}, | }, | ||||
{ | { | ||||
'objectType': 'directory', | 'objectType': 'directory', | ||||
'objectPids': [dirSWHIDWithContext, dirSWHID], | 'objectSWHIDs': [dirSWHIDWithContext, dirSWHID], | ||||
'badgeUrl': this.Urls.swh_badge('directory', swhids.directory.object_id), | 'badgeUrl': this.Urls.swh_badge('directory', swhids.directory.object_id), | ||||
'badgePidUrl': this.Urls.swh_badge_pid(dirSWHID), | 'badgeSWHIDUrl': this.Urls.swh_badge_swhid(dirSWHID), | ||||
'browseUrl': this.Urls.browse_swh_id(dirSWHIDWithContext) | 'browseUrl': this.Urls.browse_swhid(dirSWHIDWithContext) | ||||
}, | }, | ||||
{ | { | ||||
'objectType': 'release', | 'objectType': 'release', | ||||
'objectPids': [relSWHIDWithContext, relSWHID], | 'objectSWHIDs': [relSWHIDWithContext, relSWHID], | ||||
'badgeUrl': this.Urls.swh_badge('release', swhids.release.object_id), | 'badgeUrl': this.Urls.swh_badge('release', swhids.release.object_id), | ||||
'badgePidUrl': this.Urls.swh_badge_pid(relSWHID), | 'badgeSWHIDUrl': this.Urls.swh_badge_swhid(relSWHID), | ||||
'browseUrl': this.Urls.browse_swh_id(relSWHIDWithContext) | 'browseUrl': this.Urls.browse_swhid(relSWHIDWithContext) | ||||
}, | }, | ||||
{ | { | ||||
'objectType': 'revision', | 'objectType': 'revision', | ||||
'objectPids': [revSWHIDWithContext, revSWHID], | 'objectSWHIDs': [revSWHIDWithContext, revSWHID], | ||||
'badgeUrl': this.Urls.swh_badge('revision', swhids.revision.object_id), | 'badgeUrl': this.Urls.swh_badge('revision', swhids.revision.object_id), | ||||
'badgePidUrl': this.Urls.swh_badge_pid(revSWHID), | 'badgeSWHIDUrl': this.Urls.swh_badge_swhid(revSWHID), | ||||
'browseUrl': this.Urls.browse_swh_id(revSWHIDWithContext) | 'browseUrl': this.Urls.browse_swhid(revSWHIDWithContext) | ||||
}, | }, | ||||
{ | { | ||||
'objectType': 'snapshot', | 'objectType': 'snapshot', | ||||
'objectPids': [snpSWHIDWithContext, snpSWHID], | 'objectSWHIDs': [snpSWHIDWithContext, snpSWHID], | ||||
'badgeUrl': this.Urls.swh_badge('snapshot', swhids.snapshot.object_id), | 'badgeUrl': this.Urls.swh_badge('snapshot', swhids.snapshot.object_id), | ||||
'badgePidUrl': this.Urls.swh_badge_pid(snpSWHID), | 'badgeSWHIDUrl': this.Urls.swh_badge_swhid(snpSWHID), | ||||
'browseUrl': this.Urls.browse_swh_id(snpSWHIDWithContext) | 'browseUrl': this.Urls.browse_swhid(snpSWHIDWithContext) | ||||
} | } | ||||
]; | ]; | ||||
}); | }); | ||||
}); | }); | ||||
beforeEach(function() { | beforeEach(function() { | ||||
cy.visit(url); | cy.visit(url); | ||||
Show All 17 Lines | describe('Persistent Identifiers Tests', function() { | ||||
}); | }); | ||||
it('should display identifiers with permalinks for browsed objects', function() { | it('should display identifiers with permalinks for browsed objects', function() { | ||||
cy.get('.ui-slideouttab-handle') | cy.get('.ui-slideouttab-handle') | ||||
.click(); | .click(); | ||||
for (let td of testsData) { | for (let td of testsData) { | ||||
cy.get(`a[href="#swh-id-tab-${td.objectType}"]`) | cy.get(`a[href="#swhid-tab-${td.objectType}"]`) | ||||
.click(); | .click(); | ||||
cy.get(`#swh-id-tab-${td.objectType}`) | cy.get(`#swhid-tab-${td.objectType}`) | ||||
.should('be.visible'); | .should('be.visible'); | ||||
cy.get(`#swh-id-tab-${td.objectType} .swh-id`) | cy.get(`#swhid-tab-${td.objectType} .swhid`) | ||||
.contains(td.objectPids[0]) | .contains(td.objectSWHIDs[0]) | ||||
.should('have.attr', 'href', this.Urls.browse_swh_id(td.objectPids[0])); | .should('have.attr', 'href', this.Urls.browse_swhid(td.objectSWHIDs[0])); | ||||
} | } | ||||
}); | }); | ||||
it('should update other object identifiers contextual info when toggling context checkbox', function() { | it('should update other object identifiers contextual info when toggling context checkbox', function() { | ||||
cy.get('.ui-slideouttab-handle') | cy.get('.ui-slideouttab-handle') | ||||
.click(); | .click(); | ||||
for (let td of testsData) { | for (let td of testsData) { | ||||
cy.get(`a[href="#swh-id-tab-${td.objectType}"]`) | cy.get(`a[href="#swhid-tab-${td.objectType}"]`) | ||||
.click(); | .click(); | ||||
cy.get(`#swh-id-tab-${td.objectType} .swh-id`) | cy.get(`#swhid-tab-${td.objectType} .swhid`) | ||||
.contains(td.objectPids[0]) | .contains(td.objectSWHIDs[0]) | ||||
.should('have.attr', 'href', this.Urls.browse_swh_id(td.objectPids[0])); | .should('have.attr', 'href', this.Urls.browse_swhid(td.objectSWHIDs[0])); | ||||
cy.get(`#swh-id-tab-${td.objectType} .swh-id-option`) | cy.get(`#swhid-tab-${td.objectType} .swhid-option`) | ||||
.click(); | .click(); | ||||
cy.get(`#swh-id-tab-${td.objectType} .swh-id`) | cy.get(`#swhid-tab-${td.objectType} .swhid`) | ||||
.contains(td.objectPids[1]) | .contains(td.objectSWHIDs[1]) | ||||
.should('have.attr', 'href', this.Urls.browse_swh_id(td.objectPids[1])); | .should('have.attr', 'href', this.Urls.browse_swhid(td.objectSWHIDs[1])); | ||||
cy.get(`#swh-id-tab-${td.objectType} .swh-id-option`) | cy.get(`#swhid-tab-${td.objectType} .swhid-option`) | ||||
.click(); | .click(); | ||||
cy.get(`#swh-id-tab-${td.objectType} .swh-id`) | cy.get(`#swhid-tab-${td.objectType} .swhid`) | ||||
.contains(td.objectPids[0]) | .contains(td.objectSWHIDs[0]) | ||||
.should('have.attr', 'href', this.Urls.browse_swh_id(td.objectPids[0])); | .should('have.attr', 'href', this.Urls.browse_swhid(td.objectSWHIDs[0])); | ||||
} | } | ||||
}); | }); | ||||
it('should display swh badges in identifiers tab for browsed objects', function() { | it('should display swh badges in identifiers tab for browsed objects', function() { | ||||
cy.get('.ui-slideouttab-handle') | cy.get('.ui-slideouttab-handle') | ||||
.click(); | .click(); | ||||
const originBadgeUrl = this.Urls.swh_badge('origin', origin.url); | const originBadgeUrl = this.Urls.swh_badge('origin', origin.url); | ||||
for (let td of testsData) { | for (let td of testsData) { | ||||
cy.get(`a[href="#swh-id-tab-${td.objectType}"]`) | cy.get(`a[href="#swhid-tab-${td.objectType}"]`) | ||||
.click(); | .click(); | ||||
cy.get(`#swh-id-tab-${td.objectType} .swh-badge-origin`) | cy.get(`#swhid-tab-${td.objectType} .swh-badge-origin`) | ||||
.should('have.attr', 'src', originBadgeUrl); | .should('have.attr', 'src', originBadgeUrl); | ||||
cy.get(`#swh-id-tab-${td.objectType} .swh-badge-${td.objectType}`) | cy.get(`#swhid-tab-${td.objectType} .swh-badge-${td.objectType}`) | ||||
.should('have.attr', 'src', td.badgeUrl); | .should('have.attr', 'src', td.badgeUrl); | ||||
} | } | ||||
}); | }); | ||||
it('should display badge integration info when clicking on it', function() { | it('should display badge integration info when clicking on it', function() { | ||||
cy.get('.ui-slideouttab-handle') | cy.get('.ui-slideouttab-handle') | ||||
.click(); | .click(); | ||||
for (let td of testsData) { | for (let td of testsData) { | ||||
cy.get(`a[href="#swh-id-tab-${td.objectType}"]`) | cy.get(`a[href="#swhid-tab-${td.objectType}"]`) | ||||
.click(); | .click(); | ||||
cy.get(`#swh-id-tab-${td.objectType} .swh-badge-origin`) | cy.get(`#swhid-tab-${td.objectType} .swh-badge-origin`) | ||||
.click() | .click() | ||||
.wait(500); | .wait(500); | ||||
for (let badgeType of ['html', 'md', 'rst']) { | for (let badgeType of ['html', 'md', 'rst']) { | ||||
cy.get(`.modal .swh-badge-${badgeType}`) | cy.get(`.modal .swh-badge-${badgeType}`) | ||||
.contains(`${urlPrefix}${originBrowseUrl}`) | .contains(`${urlPrefix}${originBrowseUrl}`) | ||||
.contains(`${urlPrefix}${originBadgeUrl}`); | .contains(`${urlPrefix}${originBadgeUrl}`); | ||||
} | } | ||||
cy.get('.modal.show .close') | cy.get('.modal.show .close') | ||||
.click() | .click() | ||||
.wait(500); | .wait(500); | ||||
cy.get(`#swh-id-tab-${td.objectType} .swh-badge-${td.objectType}`) | cy.get(`#swhid-tab-${td.objectType} .swh-badge-${td.objectType}`) | ||||
.click() | .click() | ||||
.wait(500); | .wait(500); | ||||
for (let badgeType of ['html', 'md', 'rst']) { | for (let badgeType of ['html', 'md', 'rst']) { | ||||
cy.get(`.modal .swh-badge-${badgeType}`) | cy.get(`.modal .swh-badge-${badgeType}`) | ||||
.contains(`${urlPrefix}${td.browseUrl}`) | .contains(`${urlPrefix}${td.browseUrl}`) | ||||
.contains(`${urlPrefix}${td.badgePidUrl}`); | .contains(`${urlPrefix}${td.badgeSWHIDUrl}`); | ||||
} | } | ||||
cy.get('.modal.show .close') | cy.get('.modal.show .close') | ||||
.click() | .click() | ||||
.wait(500); | .wait(500); | ||||
} | } | ||||
}); | }); | ||||
it('should be possible to retrieve SWHIDs context from JavaScript', function() { | it('should be possible to retrieve SWHIDs context from JavaScript', function() { | ||||
cy.window().then(win => { | cy.window().then(win => { | ||||
const swhIdsContext = win.swh.webapp.getSwhIdsContext(); | const swhIdsContext = win.swh.webapp.getSwhIdsContext(); | ||||
for (let testData of testsData) { | for (let testData of testsData) { | ||||
assert.isTrue(swhIdsContext.hasOwnProperty(testData.objectType)); | assert.isTrue(swhIdsContext.hasOwnProperty(testData.objectType)); | ||||
assert.equal(swhIdsContext[testData.objectType].swhid, | assert.equal(swhIdsContext[testData.objectType].swhid, | ||||
testData.objectPids.slice(-1)[0]); | testData.objectSWHIDs.slice(-1)[0]); | ||||
} | } | ||||
}); | }); | ||||
}); | }); | ||||
}); | }); |