Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9314454
persistent-identifiers.spec.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
8 KB
Subscribers
None
persistent-identifiers.spec.js
View Options
/**
* Copyright (C) 2019-2020 The Software Heritage developers
* See the AUTHORS file at the top-level directory of this distribution
* License: GNU Affero General Public License version 3, or any later version
* See top-level LICENSE file for more information
*/
let
origin
,
originBadgeUrl
,
originBrowseUrl
;
let
url
,
urlPrefix
;
let
browsedObjectMetadata
;
let
cntPid
,
cntPidWithOrigin
,
cntPidWithOriginAndLines
;
let
dirPid
,
dirPidWithOrigin
;
let
relPid
,
relPidWithOrigin
;
let
revPid
,
revPidWithOrigin
;
let
snpPid
,
snpPidWithOrigin
;
let
testsData
;
const
firstSelLine
=
6
;
const
lastSelLine
=
12
;
describe
(
'Persistent Identifiers Tests'
,
function
()
{
before
(
function
()
{
origin
=
this
.
origin
[
1
];
url
=
`
${
this
.
Urls
.
browse_origin_content
()
}
?origin_url=
${
origin
.
url
}
&path=
${
origin
.
content
[
0
].
path
}
`
;
url
=
`
${
url
}
&release=
${
origin
.
release
}
#L
${
firstSelLine
}
-L
${
lastSelLine
}
`
;
originBadgeUrl
=
this
.
Urls
.
swh_badge
(
'origin'
,
origin
.
url
);
originBrowseUrl
=
`
${
this
.
Urls
.
browse_origin
()
}
?origin_url=
${
origin
.
url
}
`
;
cy
.
visit
(
url
).
window
().
then
(
win
=>
{
urlPrefix
=
`
${
win
.
location
.
protocol
}
//
${
win
.
location
.
hostname
}
`
;
if
(
win
.
location
.
port
)
{
urlPrefix
+=
`:
${
win
.
location
.
port
}
`
;
}
browsedObjectMetadata
=
win
.
swh
.
webapp
.
getBrowsedSwhObjectMetadata
();
cntPid
=
`swh:1:cnt:
${
browsedObjectMetadata
.
sha1_git
}
`
;
cntPidWithOrigin
=
`
${
cntPid
}
;origin=
${
origin
.
url
}
`
;
cntPidWithOriginAndLines
=
`
${
cntPidWithOrigin
}
;lines=
${
firstSelLine
}
-
${
lastSelLine
}
`
;
dirPid
=
`swh:1:dir:
${
browsedObjectMetadata
.
directory
}
`
;
dirPidWithOrigin
=
`
${
dirPid
}
;origin=
${
origin
.
url
}
`
;
revPid
=
`swh:1:rev:
${
browsedObjectMetadata
.
revision
}
`
;
revPidWithOrigin
=
`
${
revPid
}
;origin=
${
origin
.
url
}
`
;
relPid
=
`swh:1:rel:
${
browsedObjectMetadata
.
release
}
`
;
relPidWithOrigin
=
`
${
relPid
}
;origin=
${
origin
.
url
}
`
;
snpPid
=
`swh:1:snp:
${
browsedObjectMetadata
.
snapshot
}
`
;
snpPidWithOrigin
=
`
${
snpPid
}
;origin=
${
origin
.
url
}
`
;
testsData
=
[
{
'objectType'
:
'content'
,
'objectPids'
:
[
cntPidWithOriginAndLines
,
cntPidWithOrigin
,
cntPid
],
'badgeUrl'
:
this
.
Urls
.
swh_badge
(
'content'
,
browsedObjectMetadata
.
sha1_git
),
'badgePidUrl'
:
this
.
Urls
.
swh_badge_pid
(
cntPidWithOriginAndLines
),
'browseUrl'
:
this
.
Urls
.
browse_swh_id
(
cntPidWithOriginAndLines
)
},
{
'objectType'
:
'directory'
,
'objectPids'
:
[
dirPidWithOrigin
,
dirPid
],
'badgeUrl'
:
this
.
Urls
.
swh_badge
(
'directory'
,
browsedObjectMetadata
.
directory
),
'badgePidUrl'
:
this
.
Urls
.
swh_badge_pid
(
dirPidWithOrigin
),
'browseUrl'
:
this
.
Urls
.
browse_swh_id
(
dirPidWithOrigin
)
},
{
'objectType'
:
'release'
,
'objectPids'
:
[
relPidWithOrigin
,
relPid
],
'badgeUrl'
:
this
.
Urls
.
swh_badge
(
'release'
,
browsedObjectMetadata
.
release
),
'badgePidUrl'
:
this
.
Urls
.
swh_badge_pid
(
relPidWithOrigin
),
'browseUrl'
:
this
.
Urls
.
browse_swh_id
(
relPidWithOrigin
)
},
{
'objectType'
:
'revision'
,
'objectPids'
:
[
revPidWithOrigin
,
revPid
],
'badgeUrl'
:
this
.
Urls
.
swh_badge
(
'revision'
,
browsedObjectMetadata
.
revision
),
'badgePidUrl'
:
this
.
Urls
.
swh_badge_pid
(
revPidWithOrigin
),
'browseUrl'
:
this
.
Urls
.
browse_swh_id
(
revPidWithOrigin
)
},
{
'objectType'
:
'snapshot'
,
'objectPids'
:
[
snpPidWithOrigin
,
snpPid
],
'badgeUrl'
:
this
.
Urls
.
swh_badge
(
'snapshot'
,
browsedObjectMetadata
.
snapshot
),
'badgePidUrl'
:
this
.
Urls
.
swh_badge_pid
(
snpPidWithOrigin
),
'browseUrl'
:
this
.
Urls
.
browse_swh_id
(
snpPidWithOrigin
)
}
];
});
});
beforeEach
(
function
()
{
cy
.
visit
(
url
);
});
it
(
'should open and close identifiers tab when clicking on handle'
,
function
()
{
cy
.
get
(
'#swh-identifiers'
)
.
should
(
'have.class'
,
'ui-slideouttab-ready'
);
cy
.
get
(
'.ui-slideouttab-handle'
)
.
click
();
cy
.
get
(
'#swh-identifiers'
)
.
should
(
'have.class'
,
'ui-slideouttab-open'
);
cy
.
get
(
'.ui-slideouttab-handle'
)
.
click
();
cy
.
get
(
'#swh-identifiers'
)
.
should
(
'not.have.class'
,
'ui-slideouttab-open'
);
});
it
(
'should display identifiers with permalinks for browsed objects'
,
function
()
{
cy
.
get
(
'.ui-slideouttab-handle'
)
.
click
();
for
(
let
td
of
testsData
)
{
cy
.
get
(
`a[href="#swh-id-tab-
${
td
.
objectType
}
"]`
)
.
click
();
cy
.
get
(
`#swh-id-tab-
${
td
.
objectType
}
`
)
.
should
(
'be.visible'
);
cy
.
get
(
`#swh-id-tab-
${
td
.
objectType
}
.swh-id`
)
.
contains
(
td
.
objectPids
[
0
])
.
should
(
'have.attr'
,
'href'
,
this
.
Urls
.
browse_swh_id
(
td
.
objectPids
[
0
]));
}
});
it
(
'should update content identifier metadata when toggling option checkboxes'
,
function
()
{
cy
.
get
(
'.ui-slideouttab-handle'
)
.
click
();
cy
.
get
(
`#swh-id-tab-content .swh-id`
)
.
contains
(
cntPidWithOriginAndLines
)
.
should
(
'have.attr'
,
'href'
,
this
.
Urls
.
browse_swh_id
(
cntPidWithOriginAndLines
));
cy
.
get
(
'#swh-id-tab-content .swh-id-option-lines'
)
.
click
();
cy
.
get
(
`#swh-id-tab-content .swh-id`
)
.
contains
(
cntPidWithOrigin
)
.
should
(
'have.attr'
,
'href'
,
this
.
Urls
.
browse_swh_id
(
cntPidWithOrigin
));
cy
.
get
(
'#swh-id-tab-content .swh-id-option-origin'
)
.
click
();
cy
.
get
(
`#swh-id-tab-content .swh-id`
)
.
contains
(
cntPid
)
.
should
(
'have.attr'
,
'href'
,
this
.
Urls
.
browse_swh_id
(
cntPid
));
cy
.
get
(
'#swh-id-tab-content .swh-id-option-origin'
)
.
click
();
cy
.
get
(
`#swh-id-tab-content .swh-id`
)
.
contains
(
cntPidWithOrigin
)
.
should
(
'have.attr'
,
'href'
,
this
.
Urls
.
browse_swh_id
(
cntPidWithOrigin
));
cy
.
get
(
'#swh-id-tab-content .swh-id-option-lines'
)
.
click
();
cy
.
get
(
`#swh-id-tab-content .swh-id`
)
.
contains
(
cntPidWithOriginAndLines
)
.
should
(
'have.attr'
,
'href'
,
this
.
Urls
.
browse_swh_id
(
cntPidWithOriginAndLines
));
});
it
(
'should update other object identifiers metadata when toggling option checkboxes'
,
function
()
{
cy
.
get
(
'.ui-slideouttab-handle'
)
.
click
();
for
(
let
td
of
testsData
)
{
// already tested
if
(
td
.
objectType
===
'content'
)
continue
;
cy
.
get
(
`a[href="#swh-id-tab-
${
td
.
objectType
}
"]`
)
.
click
();
cy
.
get
(
`#swh-id-tab-
${
td
.
objectType
}
.swh-id`
)
.
contains
(
td
.
objectPids
[
0
])
.
should
(
'have.attr'
,
'href'
,
this
.
Urls
.
browse_swh_id
(
td
.
objectPids
[
0
]));
cy
.
get
(
`#swh-id-tab-
${
td
.
objectType
}
.swh-id-option-origin`
)
.
click
();
cy
.
get
(
`#swh-id-tab-
${
td
.
objectType
}
.swh-id`
)
.
contains
(
td
.
objectPids
[
1
])
.
should
(
'have.attr'
,
'href'
,
this
.
Urls
.
browse_swh_id
(
td
.
objectPids
[
1
]));
cy
.
get
(
`#swh-id-tab-
${
td
.
objectType
}
.swh-id-option-origin`
)
.
click
();
cy
.
get
(
`#swh-id-tab-
${
td
.
objectType
}
.swh-id`
)
.
contains
(
td
.
objectPids
[
0
])
.
should
(
'have.attr'
,
'href'
,
this
.
Urls
.
browse_swh_id
(
td
.
objectPids
[
0
]));
}
});
it
(
'should display swh badges in identifiers tab for browsed objects'
,
function
()
{
cy
.
get
(
'.ui-slideouttab-handle'
)
.
click
();
const
originBadgeUrl
=
this
.
Urls
.
swh_badge
(
'origin'
,
origin
.
url
);
for
(
let
td
of
testsData
)
{
cy
.
get
(
`a[href="#swh-id-tab-
${
td
.
objectType
}
"]`
)
.
click
();
cy
.
get
(
`#swh-id-tab-
${
td
.
objectType
}
.swh-badge-origin`
)
.
should
(
'have.attr'
,
'src'
,
originBadgeUrl
);
cy
.
get
(
`#swh-id-tab-
${
td
.
objectType
}
.swh-badge-
${
td
.
objectType
}
`
)
.
should
(
'have.attr'
,
'src'
,
td
.
badgeUrl
);
}
});
it
(
'should display badge integration info when clicking on it'
,
function
()
{
cy
.
get
(
'.ui-slideouttab-handle'
)
.
click
();
for
(
let
td
of
testsData
)
{
cy
.
get
(
`a[href="#swh-id-tab-
${
td
.
objectType
}
"]`
)
.
click
();
cy
.
get
(
`#swh-id-tab-
${
td
.
objectType
}
.swh-badge-origin`
)
.
click
()
.
wait
(
500
);
for
(
let
badgeType
of
[
'html'
,
'md'
,
'rst'
])
{
cy
.
get
(
`.modal .swh-badge-
${
badgeType
}
`
)
.
contains
(
`
${
urlPrefix
}${
originBrowseUrl
}
`
)
.
contains
(
`
${
urlPrefix
}${
originBadgeUrl
}
`
);
}
cy
.
get
(
'.modal.show .close'
)
.
click
()
.
wait
(
500
);
cy
.
get
(
`#swh-id-tab-
${
td
.
objectType
}
.swh-badge-
${
td
.
objectType
}
`
)
.
click
()
.
wait
(
500
);
for
(
let
badgeType
of
[
'html'
,
'md'
,
'rst'
])
{
cy
.
get
(
`.modal .swh-badge-
${
badgeType
}
`
)
.
contains
(
`
${
urlPrefix
}${
td
.
browseUrl
}
`
)
.
contains
(
`
${
urlPrefix
}${
td
.
badgePidUrl
}
`
);
}
cy
.
get
(
'.modal.show .close'
)
.
click
()
.
wait
(
500
);
}
});
});
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Jul 3, 12:29 PM (2 d, 5 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3294235
Attached To
rDWAPPS Web applications
Event Timeline
Log In to Comment