diff --git a/.gitignore b/.gitignore index f75d64309..0848cc3ed 100644 --- a/.gitignore +++ b/.gitignore @@ -408,3 +408,7 @@ beacon/spring/out *.project *bin /a.json +/testbed/authentication/.idea/workspace.xml + +# macOS jenv +.java-version diff --git a/backend/build.gradle b/backend/build.gradle index f20edf7d7..c719c2af9 100644 --- a/backend/build.gradle +++ b/backend/build.gradle @@ -233,6 +233,7 @@ task integrationTest(type: Test) { classpath = sourceSets.integrationTest.runtimeClasspath systemProperties = System.properties systemProperties['user.dir'] = workingDir + systemProperties['spring.profiles.include'] = 'very-dangerous' } task enversTest(type: Test) { diff --git a/backend/src/enversTest/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorControllerVersionEndpointsIntegrationTests.groovy b/backend/src/enversTest/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorControllerVersionEndpointsIntegrationTests.groovy index a8d5a68ab..eeee3fe5c 100644 --- a/backend/src/enversTest/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorControllerVersionEndpointsIntegrationTests.groovy +++ b/backend/src/enversTest/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorControllerVersionEndpointsIntegrationTests.groovy @@ -1,22 +1,11 @@ package edu.internet2.tier.shibboleth.admin.ui.controller import edu.internet2.tier.shibboleth.admin.ui.domain.EntityDescriptor -import edu.internet2.tier.shibboleth.admin.ui.domain.Organization -import edu.internet2.tier.shibboleth.admin.ui.domain.OrganizationDisplayName -import edu.internet2.tier.shibboleth.admin.ui.domain.OrganizationName -import edu.internet2.tier.shibboleth.admin.ui.domain.OrganizationURL import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.EntityDescriptorRepresentation import edu.internet2.tier.shibboleth.admin.ui.repository.EntityDescriptorRepository -import groovy.json.JsonOutput -import groovy.json.JsonSlurper import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.context.SpringBootTest import org.springframework.boot.test.web.client.TestRestTemplate -import org.springframework.http.HttpEntity -import org.springframework.http.HttpHeaders -import org.springframework.http.HttpMethod -import org.springframework.http.MediaType -import org.springframework.test.annotation.DirtiesContext import org.springframework.test.context.ActiveProfiles import spock.lang.Specification @@ -111,44 +100,9 @@ class EntityDescriptorControllerVersionEndpointsIntegrationTests extends Specifi edv2.body.serviceProviderName == 'SP2' } - @DirtiesContext(methodMode = DirtiesContext.MethodMode.AFTER_METHOD) - def 'SHIBUI-1414'() { - given: - def ed = new EntityDescriptor(entityID: 'testme', serviceProviderName: 'testme').with { - entityDescriptorRepository.save(it) - }.with { - it.setOrganization(new Organization().with { - it.organizationNames = [new OrganizationName(value: 'testme', XMLLang: 'en')] - it.organizationDisplayNames = [new OrganizationDisplayName(value: 'testme', XMLLang: 'en')] - it.organizationURLs = [new OrganizationURL(value: 'http://testme.org', XMLLang: 'en')] - it - }) - entityDescriptorRepository.save(it) - } - when: - def headers = new HttpHeaders().with { - it.set(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) - it - } - - def allVersions = getAllEntityDescriptorVersions(ed.resourceId, List) - String edv1 = getEntityDescriptorForVersion(ed.resourceId, allVersions.body[0].id, String).body - def tedv2 = getEntityDescriptorForVersion(ed.resourceId, allVersions.body[1].id, EntityDescriptorRepresentation).body - - def aedv1 = new JsonSlurper().parseText(edv1).with { - it.put('version', tedv2.version) - it - }.with { - JsonOutput.toJson(it) - } - - def request = new HttpEntity(aedv1, headers) - def response = this.restTemplate.exchange("/api/EntityDescriptor/${ed.resourceId}", HttpMethod.PUT, request, String) - - then: - response.statusCodeValue != 400 - noExceptionThrown() - } +// Moved to its own test in the main testing package +// def 'SHIBUI-1414'() { +// } private getAllEntityDescriptorVersions(String resourceId, responseType) { this.restTemplate.getForEntity(resourceUriFor(ALL_VERSIONS_URI, resourceId), responseType) @@ -165,4 +119,4 @@ class EntityDescriptorControllerVersionEndpointsIntegrationTests extends Specifi private static resourceUriFor(String uriTemplate, String resourceId) { String.format(uriTemplate, resourceId) } -} +} \ No newline at end of file diff --git a/backend/src/integration/groovy/edu/internet2/tier/shibboleth/admin/ui/SeleniumSIDETest.groovy b/backend/src/integration/groovy/edu/internet2/tier/shibboleth/admin/ui/SeleniumSIDETest.groovy index 72034fe44..e52aedcca 100644 --- a/backend/src/integration/groovy/edu/internet2/tier/shibboleth/admin/ui/SeleniumSIDETest.groovy +++ b/backend/src/integration/groovy/edu/internet2/tier/shibboleth/admin/ui/SeleniumSIDETest.groovy @@ -98,10 +98,9 @@ class SeleniumSIDETest extends Specification { cleanup: runner.getWrappedDriver().quit() - // TODO: Uncomment the below commented tests once they've been updated to use the new configuration screen where: name | file -/* 'SHIBUI-1364: Compare FBHTTPMP with filters' | '/SHIBUI-1364-1.side' + 'SHIBUI-1364: Compare FBHTTPMP with filters' | '/SHIBUI-1364-1.side' 'SHIBUI-1364: Compare FSMP with filters' | '/SHIBUI-1364-2.side' 'SHIBUI-1364: Compare LDMP with filters' | '/SHIBUI-1364-3.side' 'SHIBUI-1364: Compare DHTTPMP with filters' | '/SHIBUI-1364-4.side' @@ -114,11 +113,10 @@ class SeleniumSIDETest extends Specification { 'SHIBUI-1334: Verify metadata source versioning' | '/SHIBUI-1334-1.side' 'SHIBUI-1334: Verify metadata provider versioning' | '/SHIBUI-1334-2.side' 'SHIBUI-1335: Verify File Backed HTTP Metadata Provider Filters' | '/SHIBUI-1335-1.side' - 'SHIBUI-1335: Verify Filesystem Metadata Provider Filters' | '/SHIBUI-1335-2.side' - 'SHIBUI-1335: Verify Local Dynamic Metadata Provider Filters' | '/SHIBUI-1335-3.side' + 'SHIBUI-1335: Verify Filesystem Metadata Provider Filters' | '/SHIBUI-1335-2.side' // adding filters to this resolver type was removed in the react update + 'SHIBUI-1335: Verify Local Dynamic Metadata Provider Filters' | '/SHIBUI-1335-3.side' // adding filters to this resolver type was removed in the react update 'SHIBUI-1335: Verify Dynamic HTTP Metadata Provider Filters' | '/SHIBUI-1335-4.side' - 'SHIBUI-1392: Verify provider with script filter is persistable' | '/SHIBUI-1392.side' - 'SHIBUI-1361: Verify dates display in proper format' | '/SHIBUI-1361.side' + 'SHIBUI-1361: Verify dates display in proper format' | '/SHIBUI-1361.side' // Note that this script WILL NOT PASS in the Selenium IDE. There is a bug in the IDE where it thinks there is a missing ')'. 'SHIBUI-1385: Restore a metadata source version' | '/SHIBUI-1385-1.side' 'SHIBUI-1385: Restore a metadata provider version' | '/SHIBUI-1385-2.side' 'SHIBUI-1391: Regex Validation' | '/SHIBUI-1391.side' @@ -127,15 +125,18 @@ class SeleniumSIDETest extends Specification { 'SHIBUI-1503: Non-admin can create metadata source' | '/SHIBUI-1503-1.side' 'SHIBUI-1503: User can be deleted' | '/SHIBUI-1503-2.side' 'SHIBUI-1503: User can be enabled' | '/SHIBUI-1503-3.side' + 'SHIBUI-2052: Logged in user & role appear on dashboard' | '/SHIBUI-2052.side' 'SHIBUI-1740: Group can be created, edited, deleted' | '/SHIBUI-1740-1.side' 'SHIBUI-1740: Verify dev profile group membership' | '/SHIBUI-1740-2.side' 'SHIBUI-1740: Verify admin-owned resource not visible to nonadmins' | '/SHIBUI-1740-3.side' 'SHIBUI-1740: Verify nonadmin-owned resource visibility' | '/SHIBUI-1740-4.side' 'SHIBUI-1742: Verify enabler role allows enabling' | '/SHIBUI-1742-1.side' - 'SHIBUI-1742: Verify role CRUD operations' | '/SHIBUI-1742-2.side'*/ + 'SHIBUI-1742: Verify role CRUD operations' | '/SHIBUI-1742-2.side' + 'SHIBUI-1743: Verify group regex CRUD operations' | '/SHIBUI-1743-1.side' + 'SHIBUI-1743: Verify nonadmin group regex validation' | '/SHIBUI-1743-2.side' 'SHIBUI-1744: Verify attribute bundle CRUD operations' | '/SHIBUI-1744-1.side' 'SHIBUI-1744: Verify attribute bundles in metadata sources' | '/SHIBUI-1744-2.side' 'SHIBUI-1744: Verify attribute bundles in entity attribute filters' | '/SHIBUI-1744-3.side' + 'SHIBUI-1392: Verify provider with script filter is persistable' | '/SHIBUI-1392.side' // Something about this test breaks all the other ones after it } } - diff --git a/backend/src/integration/resources/SHIBUI-1281.side b/backend/src/integration/resources/SHIBUI-1281.side index 7b66e3fd1..b15ab88fd 100644 --- a/backend/src/integration/resources/SHIBUI-1281.side +++ b/backend/src/integration/resources/SHIBUI-1281.side @@ -49,41 +49,75 @@ ["xpath=//tr[2]/td[2]/input", "xpath:position"] ], "value": "${KEY_ENTER}" + }, { + "id": "4059cae7-b9f9-49d0-a213-343bcaba66d1", + "comment": "", + "command": "waitForElementVisible", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "f03af8d5-5875-4a2c-b93a-c3ddcbd4b16a", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "081f495b-4d84-4758-824c-1e85b6311e7f", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "9e912dd5-6ace-45be-bafd-2d1655906575", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "ad3811ad-f95b-4cca-a5d9-63a10063a652", "comment": "", "command": "click", - "target": "css=#addNewDropdown > translate-i18n", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=#addNewDropdown > translate-i18n", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/translate-i18n", "xpath:idRelative"], - ["xpath=//translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Add New')]", "xpath:innerText"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "1caf8be6-a4d9-4b3b-ace1-0f76d3600d62", "comment": "", "command": "click", - "target": "linkText=Metadata Source", + "target": "id=metadata-nav-dropdown-source", "targets": [ - ["linkText=Metadata Source", "linkText"], - ["css=.dropdown-menu > .nav-link:nth-child(1)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[2]", "xpath:href"], - ["xpath=//div/a", "xpath:position"] + ["id=metadata-nav-dropdown-source", "id"], + ["linkText=Add a new metadata source", "linkText"], + ["css=#metadata-nav-dropdown-source", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata source')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-source']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/source/new')]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata source')]", "xpath:innerText"] ], "value": "" }, { "id": "218e51fd-49e6-400b-9d7f-61bcd8e0c074", "comment": "", "command": "click", - "target": "id=/serviceProviderName", + "target": "id=root_serviceProviderName", "targets": [ - ["id=/serviceProviderName", "id"], - ["name=field1", "name"], - ["css=#\\/serviceProviderName", "css:finder"], - ["xpath=//input[@id='/serviceProviderName']", "xpath:attributes"], + ["id=root_serviceProviderName", "id"], + ["css=#root_serviceProviderName", "css:finder"], + ["xpath=//input[@id='root_serviceProviderName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -91,7 +125,7 @@ "id": "9ee43e46-ab9e-46b1-8eb2-9718fb98bda2", "comment": "", "command": "type", - "target": "id=/serviceProviderName", + "target": "id=root_serviceProviderName", "targets": [ ["id=field1", "id"], ["name=field1", "name"], @@ -104,13 +138,13 @@ "id": "7fe7298b-275c-4797-8d1b-f4547b63eb02", "comment": "", "command": "type", - "target": "id=/entityId", + "target": "id=root_entityId", "targets": [ - ["id=/entityId", "id"], - ["name=field2", "name"], - ["css=#\\/entityId", "css:finder"], - ["xpath=//input[@id='/entityId']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_entityId", "id"], + ["css=#root_entityId", "css:finder"], + ["xpath=//input[@id='root_entityId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/div/form/div/div/div/div/div/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "test-1234" }, { @@ -127,12 +161,12 @@ "id": "4d88e469-df2f-40ee-a557-b5eafbc24ef3", "comment": "", "command": "click", - "target": "id=/organization/name", + "target": "id=root_organization_name", "targets": [ - ["id=/organization/name", "id"], - ["name=field5", "name"], - ["css=#\\/organization\\/name", "css:finder"], - ["xpath=//input[@id='/organization/name']", "xpath:attributes"], + ["id=root_organization_name", "id"], + ["css=#root_organization_name", "css:finder"], + ["xpath=//input[@id='root_organization_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -140,7 +174,7 @@ "id": "e0168286-af90-4c0a-a0ba-0dd97d64849b", "comment": "", "command": "type", - "target": "id=/organization/name", + "target": "id=root_organization_name", "targets": [ ["id=field5", "id"], ["name=field5", "name"], @@ -153,57 +187,59 @@ "id": "8f6dcf95-41e4-446a-a7fb-a064d928e1bc", "comment": "", "command": "type", - "target": "id=/organization/displayName", + "target": "id=root_organization_displayName", "targets": [ - ["id=/organization/displayName", "id"], - ["name=field6", "name"], - ["css=#\\/organization\\/displayName", "css:finder"], - ["xpath=//input[@id='/organization/displayName']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_organization_displayName", "id"], + ["css=#root_organization_displayName", "css:finder"], + ["xpath=//input[@id='root_organization_displayName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/input", "xpath:position"] ], "value": "Test Org Name" }, { "id": "7cc2068e-3fa3-4f1c-ac97-c63e78911b9e", "comment": "", "command": "type", - "target": "id=/organization/url", + "target": "id=root_organization_url", "targets": [ - ["id=/organization/url", "id"], - ["name=field7", "name"], - ["css=#\\/organization\\/url", "css:finder"], - ["xpath=//input[@id='/organization/url']", "xpath:attributes"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_organization_url", "id"], + ["css=#root_organization_url", "css:finder"], + ["xpath=//input[@id='root_organization_url']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "http://test.org" }, { "id": "1da05567-4f8d-4fd8-957a-bfddb2380bfb", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "5379b245-cd77-43c1-b424-3b6595c74174", "comment": "", "command": "click", - "target": "id=/contacts/0/name", + "target": "id=root_contacts_0_name", "targets": [ - ["id=/contacts/0/name", "id"], - ["name=field10", "name"], - ["css=#\\/contacts\\/0\\/name", "css:finder"], - ["xpath=//input[@id='/contacts/0/name']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_0_name", "id"], + ["css=#root_contacts_0_name", "css:finder"], + ["xpath=//input[@id='root_contacts_0_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "b658cae2-ba5a-406b-a48c-87d110ff4ed0", "comment": "", "command": "type", - "target": "id=/contacts/0/name", + "target": "id=root_contacts_0_name", "targets": [ ["id=field10", "id"], ["name=field10", "name"], @@ -216,12 +252,12 @@ "id": "3a2de62d-c1c1-43a7-a484-8a0d23bf301e", "comment": "", "command": "click", - "target": "id=/contacts/0/type", + "target": "id=root_contacts_0_type", "targets": [ - ["id=/contacts/0/type", "id"], - ["name=field11", "name"], - ["css=#\\/contacts\\/0\\/type", "css:finder"], - ["xpath=//select[@id='/contacts/0/type']", "xpath:attributes"], + ["id=root_contacts_0_type", "id"], + ["css=#root_contacts_0_type", "css:finder"], + ["xpath=//select[@id='root_contacts_0_type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], ["xpath=//select", "xpath:position"] ], "value": "" @@ -229,27 +265,27 @@ "id": "86e4e429-2a72-496a-add8-df2fc079d157", "comment": "", "command": "select", - "target": "id=/contacts/0/type", + "target": "id=root_contacts_0_type", "targets": [], - "value": "label=Technical" + "value": "label=technical" }, { "id": "95531b0b-c084-422d-bac9-60ee7e7a9f16", "comment": "", "command": "click", - "target": "id=/contacts/0/emailAddress", + "target": "id=root_contacts_0_emailAddress", "targets": [ - ["id=/contacts/0/emailAddress", "id"], - ["name=field12", "name"], - ["css=#\\/contacts\\/0\\/emailAddress", "css:finder"], - ["xpath=//input[@id='/contacts/0/emailAddress']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[3]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_0_emailAddress", "id"], + ["css=#root_contacts_0_emailAddress", "css:finder"], + ["xpath=//input[@id='root_contacts_0_emailAddress']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "e5d6662e-38d4-479f-b76b-c0c05fcabe15", "comment": "", "command": "type", - "target": "id=/contacts/0/emailAddress", + "target": "id=root_contacts_0_emailAddress", "targets": [ ["id=field12", "id"], ["name=field12", "name"], @@ -262,18 +298,20 @@ "id": "b4e3ea55-b4c0-4585-99fe-ac1534efadd8", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "234de758-df6d-47d7-af74-83aee3fa1e72", "comment": "", "command": "click", - "target": "id=/contacts/1/name", + "target": "id=root_contacts_1_name", "targets": [ ["id=/contacts/1/name", "id"], ["name=field14", "name"], @@ -286,7 +324,7 @@ "id": "02819e27-7aed-4a1a-867f-f8131c3897d8", "comment": "", "command": "type", - "target": "id=/contacts/1/name", + "target": "id=root_contacts_1_name", "targets": [ ["id=field14", "id"], ["name=field14", "name"], @@ -299,7 +337,7 @@ "id": "1d478856-8742-4627-acbe-daed2bb83abe", "comment": "", "command": "click", - "target": "id=/contacts/1/type", + "target": "id=root_contacts_1_type", "targets": [ ["css=#field15 > option:nth-child(2)", "css:finder"], ["xpath=(//option[@value='1: support'])[2]", "xpath:attributes"], @@ -311,7 +349,7 @@ "id": "9b4c76b4-3851-4aac-a9f5-67e20c36f174", "comment": "", "command": "select", - "target": "id=/contacts/1/type", + "target": "id=root_contacts_1_type", "targets": [ ["id=/contacts/1/type", "id"], ["name=field15", "name"], @@ -319,12 +357,12 @@ ["xpath=//select[@id='/contacts/1/type']", "xpath:attributes"], ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/select-component/div/select", "xpath:position"] ], - "value": "label=Support" + "value": "label=support" }, { "id": "5e3fddc1-786d-4040-8351-2f553e3c8811", "comment": "", "command": "click", - "target": "id=/contacts/1/emailAddress", + "target": "id=root_contacts_1_emailAddress", "targets": [ ["id=/contacts/1/emailAddress", "id"], ["name=field16", "name"], @@ -337,7 +375,7 @@ "id": "700d8907-6a65-43d5-aebf-60a392379534", "comment": "", "command": "type", - "target": "id=/contacts/1/emailAddress", + "target": "id=root_contacts_1_emailAddress", "targets": [ ["id=field16", "id"], ["name=field16", "name"], @@ -360,12 +398,12 @@ "id": "f38b7fca-0c0c-4658-9df6-10a26881c6a5", "comment": "", "command": "click", - "target": "id=/mdui/displayName", + "target": "id=root_mdui_displayName", "targets": [ - ["id=/mdui/displayName", "id"], - ["name=field19", "name"], - ["css=#\\/mdui\\/displayName", "css:finder"], - ["xpath=//input[@id='/mdui/displayName']", "xpath:attributes"], + ["id=root_mdui_displayName", "id"], + ["css=#root_mdui_displayName", "css:finder"], + ["xpath=//input[@id='root_mdui_displayName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -373,7 +411,7 @@ "id": "c03c4582-e1f1-449f-9a79-300d48ad69d8", "comment": "", "command": "type", - "target": "id=/mdui/displayName", + "target": "id=root_mdui_displayName", "targets": [ ["id=field19", "id"], ["name=field19", "name"], @@ -386,25 +424,25 @@ "id": "5098507c-fa51-4c13-b9a3-381034e0fa52", "comment": "", "command": "type", - "target": "id=/mdui/informationUrl", + "target": "id=root_mdui_informationUrl", "targets": [ - ["id=/mdui/informationUrl", "id"], - ["name=field20", "name"], - ["css=#\\/mdui\\/informationUrl", "css:finder"], - ["xpath=//input[@id='/mdui/informationUrl']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_mdui_informationUrl", "id"], + ["css=#root_mdui_informationUrl", "css:finder"], + ["xpath=//input[@id='root_mdui_informationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "http://test.org/info" }, { "id": "d5de3699-5a18-4abe-a2ea-0a2b7565c525", "comment": "", "command": "type", - "target": "id=/mdui/description", + "target": "id=root_mdui_description", "targets": [ - ["id=/mdui/description", "id"], - ["name=field21", "name"], - ["css=#\\/mdui\\/description", "css:finder"], - ["xpath=//textarea[@id='/mdui/description']", "xpath:attributes"], + ["id=root_mdui_description", "id"], + ["css=#root_mdui_description", "css:finder"], + ["xpath=//textarea[@id='root_mdui_description']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div[3]/div/div/textarea", "xpath:idRelative"], ["xpath=//textarea", "xpath:position"] ], "value": "This is a description." @@ -412,20 +450,20 @@ "id": "115bb9a9-e991-4cf0-8bcb-363d9dc3c269", "comment": "", "command": "click", - "target": "id=/mdui/privacyStatementUrl", + "target": "id=root_mdui_privacyStatementUrl", "targets": [ - ["id=/mdui/privacyStatementUrl", "id"], - ["name=field22", "name"], - ["css=#\\/mdui\\/privacyStatementUrl", "css:finder"], - ["xpath=//input[@id='/mdui/privacyStatementUrl']", "xpath:attributes"], - ["xpath=//fieldset[2]/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_mdui_privacyStatementUrl", "id"], + ["css=#root_mdui_privacyStatementUrl", "css:finder"], + ["xpath=//input[@id='root_mdui_privacyStatementUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "df623bef-a1fc-48ff-aa93-05e0da85ef51", "comment": "", "command": "type", - "target": "id=/mdui/privacyStatementUrl", + "target": "id=root_mdui_privacyStatementUrl", "targets": [ ["id=field22", "id"], ["name=field22", "name"], @@ -438,39 +476,39 @@ "id": "ed17408b-a763-4e5d-86cd-efe575df8d08", "comment": "", "command": "type", - "target": "id=/mdui/logoUrl", + "target": "id=root_mdui_logoUrl", "targets": [ - ["id=/mdui/logoUrl", "id"], - ["name=field23", "name"], - ["css=#\\/mdui\\/logoUrl", "css:finder"], - ["xpath=//input[@id='/mdui/logoUrl']", "xpath:attributes"], - ["xpath=//fieldset[2]/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_mdui_logoUrl", "id"], + ["css=#root_mdui_logoUrl", "css:finder"], + ["xpath=//input[@id='root_mdui_logoUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div[2]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div/input", "xpath:position"] ], "value": "http://test.org/logo" }, { "id": "2946a968-7289-43e5-820d-b1aee442ce96", "comment": "", "command": "type", - "target": "id=/mdui/logoWidth", + "target": "id=root_mdui_logoWidth", "targets": [ - ["id=/mdui/logoWidth", "id"], - ["name=field24", "name"], - ["css=#\\/mdui\\/logoWidth", "css:finder"], - ["xpath=//input[@id='/mdui/logoWidth']", "xpath:attributes"], - ["xpath=//integer-component/div/input", "xpath:position"] + ["id=root_mdui_logoWidth", "id"], + ["css=#root_mdui_logoWidth", "css:finder"], + ["xpath=//input[@id='root_mdui_logoWidth']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div[2]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] ], "value": "200" }, { "id": "ceec5477-13d4-4ab4-944e-a2a34a9b4510", "comment": "", "command": "type", - "target": "id=/mdui/logoHeight", + "target": "id=root_mdui_logoHeight", "targets": [ - ["id=/mdui/logoHeight", "id"], - ["name=field25", "name"], - ["css=#\\/mdui\\/logoHeight", "css:finder"], - ["xpath=//input[@id='/mdui/logoHeight']", "xpath:attributes"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/integer-component/div/input", "xpath:position"] + ["id=root_mdui_logoHeight", "id"], + ["css=#root_mdui_logoHeight", "css:finder"], + ["xpath=//input[@id='root_mdui_logoHeight']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div[2]/div[3]/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/input", "xpath:position"] ], "value": "300" }, { @@ -487,20 +525,20 @@ "id": "88054c63-d468-4340-b4d3-c69fb6ed6f96", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/protocolSupportEnum", + "target": "id=root_serviceProviderSsoDescriptor_protocolSupportEnum", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: SAML 2']", "xpath:attributes"], - ["xpath=//select[@id='field28']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'SAML 2')]", "xpath:innerText"] + ["id=root_serviceProviderSsoDescriptor_protocolSupportEnum", "id"], + ["css=#root_serviceProviderSsoDescriptor_protocolSupportEnum", "css:finder"], + ["xpath=//select[@id='root_serviceProviderSsoDescriptor_protocolSupportEnum']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], "value": "" }, { "id": "c77b3648-fce1-46f9-aec9-ca88c90d4c92", "comment": "", "command": "select", - "target": "id=/serviceProviderSsoDescriptor/protocolSupportEnum", + "target": "id=root_serviceProviderSsoDescriptor_protocolSupportEnum", "targets": [ ["id=/serviceProviderSsoDescriptor/protocolSupportEnum", "id"], ["name=field28", "name"], @@ -513,11 +551,13 @@ "id": "aec93dce-3142-4df3-b09d-735c70d1197b", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -531,13 +571,12 @@ "id": "a0102f51-f1d8-4c38-9170-482022ea7397", "comment": "", "command": "click", - "target": "css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/0-container .btn", + "target": "css=.toggle-button", "targets": [ - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/0-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/serviceProviderSsoDescriptor/nameIdFormats/0-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -551,23 +590,29 @@ "id": "9033e5ad-4255-4aa7-a878-c7beab69ee8e", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/0__option--0", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0-item-0", "targets": [ - ["id=/serviceProviderSsoDescriptor/nameIdFormats/0__option--0", "id"], - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/0__option--0", "css:finder"], - ["xpath=//li[@id='/serviceProviderSsoDescriptor/nameIdFormats/0__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/serviceProviderSsoDescriptor/nameIdFormats/0__listbox']/li", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li", "xpath:position"] + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0-item-0", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified')]", "xpath:innerText"] ], "value": "" }, { "id": "c21b1d7a-9325-4d70-887d-387c7a042c08", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -581,12 +626,9 @@ "id": "c1534880-c4e5-4fbd-b200-c28f9f556ab9", "comment": "", "command": "click", - "target": "css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/1-container .btn", + "target": "css=div.p-0.m-0.container-fluid > div:nth-child(2) > div > div.mr-2.flex-grow-1.undefined > div > div:nth-child(1) > div > div > button", "targets": [ - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/1-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/serviceProviderSsoDescriptor/nameIdFormats/1-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.is-invalid .svg-inline--fa", "css:finder"] ], "value": "" }, { @@ -600,24 +642,29 @@ "id": "d07b2d83-3699-4f48-90e8-6fc883d3a02a", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/1__option--1", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1-item-1", "targets": [ - ["id=/serviceProviderSsoDescriptor/nameIdFormats/1__option--1", "id"], - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/1__option--1", "css:finder"], - ["xpath=//li[@id='/serviceProviderSsoDescriptor/nameIdFormats/1__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/serviceProviderSsoDescriptor/nameIdFormats/1__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[2]", "xpath:position"] + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1-item-1", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress')]", "xpath:innerText"] ], "value": "" }, { "id": "2c77ecbc-45cc-471c-9e39-f87ec06a9385", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -631,7 +678,7 @@ "id": "97a98737-862d-4567-8b20-c5c991444ed0", "comment": "", "command": "click", - "target": "css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/2-container .btn", + "target": "css=div.p-0.m-0.container-fluid > div:nth-child(3) > div > div.mr-2.flex-grow-1.undefined > div > div:nth-child(1) > div > div > button", "targets": [ ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/2-container .btn", "css:finder"], ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], @@ -650,20 +697,23 @@ "id": "686e004c-2b0f-4308-8622-b04bc05a50a9", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/2__option--2", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2-item-2", "targets": [ - ["id=/serviceProviderSsoDescriptor/nameIdFormats/2__option--2", "id"], - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/2__option--2", "css:finder"], - ["xpath=//li[@id='/serviceProviderSsoDescriptor/nameIdFormats/2__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/serviceProviderSsoDescriptor/nameIdFormats/2__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2-item-2", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent')]", "xpath:innerText"] ], "value": "" }, { "id": "104367d3-f250-4439-8721-32dcf9f25e0c", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ ["css=.btn-success", "css:finder"], ["xpath=//div/button", "xpath:position"], @@ -681,7 +731,7 @@ "id": "e2e8d5d4-8b6a-42d5-9fe7-abb8a84216e3", "comment": "", "command": "click", - "target": "css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/3-container .btn", + "target": "css=div.p-0.m-0.container-fluid > div:nth-child(4) > div > div.mr-2.flex-grow-1.undefined > div > div:nth-child(1) > div > div > button", "targets": [ ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/3-container .btn", "css:finder"], ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], @@ -700,38 +750,58 @@ "id": "b6ac5230-772b-44bc-b9d1-6ae8a58e0368", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/3__option--3", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3-item-3", "targets": [ - ["id=/serviceProviderSsoDescriptor/nameIdFormats/3__option--3", "id"], - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/3__option--3", "css:finder"], - ["xpath=//li[@id='/serviceProviderSsoDescriptor/nameIdFormats/3__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/serviceProviderSsoDescriptor/nameIdFormats/3__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3-item-3", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:transient", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:transient')]", "xpath:innerText"] ], "value": "" }, { "id": "d135ef80-69d8-4cd1-b581-5e1973342082", "comment": "", "command": "click", - "target": "css=.btn-success > translate-i18n", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button", "xpath:idRelative"], + ["xpath=//li[3]/button", "xpath:position"] ], "value": "" }, { "id": "23fd8856-32df-48ed-a198-a74e8ca71b10", "comment": "", "command": "type", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/4", + "target": "css=div.p-0.m-0.container-fluid > div:nth-child(5) > div > div.mr-2.flex-grow-1.undefined > div > div:nth-child(1) > div > div > div:nth-child(1) > input.rbt-input-main.form-control.rbt-input", "targets": [ - ["id=field34", "id"], - ["css=#field34", "css:finder"], - ["xpath=//input[@id='field34']", "xpath:attributes"], - ["xpath=//div[@id='field34-container']/div/input", "xpath:idRelative"], - ["xpath=//li[5]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] + ["css=.focus", "css:finder"], + ["xpath=(//input[@value=''])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div[2]/div[5]/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "somethingElse" + }, { + "id": "3cfbc4e0-f120-43ca-8a59-8727f91b5a1c", + "comment": "", + "command": "click", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4-item-4", + "targets": [ + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4-item-4", "id"], + ["linkText=somethingElse", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4-item-4", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4-item-4']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4']/a[5]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[5]", "xpath:href"], + ["xpath=//a[5]", "xpath:position"], + ["xpath=//a[contains(.,'somethingElse')]", "xpath:innerText"] + ], + "value": "" }, { "id": "4f61120b-7c6b-4f8e-8543-898298451a56", "comment": "", @@ -742,27 +812,36 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" + }, { + "id": "ae5043da-4b98-4f02-a801-207a331fa9b3", + "comment": "", + "command": "pause", + "target": "500", + "targets": [], + "value": "" }, { "id": "0de0345e-c9d2-4904-b797-a36965c5d82c", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "62ade28b-19d4-4c54-b179-0d36312c578f", "comment": "", "command": "click", - "target": "id=/logoutEndpoints/0/url", + "target": "id=root_logoutEndpoints_0_url", "targets": [ - ["id=/logoutEndpoints/0/url", "id"], - ["name=field38", "name"], - ["css=#\\/logoutEndpoints\\/0\\/url", "css:finder"], - ["xpath=//input[@id='/logoutEndpoints/0/url']", "xpath:attributes"], + ["id=root_logoutEndpoints_0_url", "id"], + ["css=#root_logoutEndpoints_0_url", "css:finder"], + ["xpath=//input[@id='root_logoutEndpoints_0_url']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -770,7 +849,7 @@ "id": "517e5991-197d-42fd-86ff-4da5fd04949b", "comment": "", "command": "type", - "target": "id=/logoutEndpoints/0/url", + "target": "id=root_logoutEndpoints_0_url", "targets": [ ["id=field38", "id"], ["name=field38", "name"], @@ -783,20 +862,20 @@ "id": "034f6a60-6b2d-42f1-adb4-515c8a750953", "comment": "", "command": "click", - "target": "id=/logoutEndpoints/0/bindingType", + "target": "id=root_logoutEndpoints_0_bindingType", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST']", "xpath:attributes"], - ["xpath=//select[@id='field39']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST')]", "xpath:innerText"] + ["id=root_logoutEndpoints_0_bindingType", "id"], + ["css=#root_logoutEndpoints_0_bindingType", "css:finder"], + ["xpath=//select[@id='root_logoutEndpoints_0_bindingType']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], "value": "" }, { "id": "6967d0bb-dbf7-4f57-9e55-6de71abd69c1", "comment": "", "command": "select", - "target": "id=/logoutEndpoints/0/bindingType", + "target": "id=root_logoutEndpoints_0_bindingType", "targets": [ ["id=/logoutEndpoints/0/bindingType", "id"], ["name=field39", "name"], @@ -809,7 +888,7 @@ "id": "542f9b37-a63d-4acb-ba3e-2ac3706b6667", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ ["css=.btn-success > translate-i18n", "css:finder"], ["xpath=//div/button/translate-i18n", "xpath:position"] @@ -819,20 +898,20 @@ "id": "39dedb16-bcd2-496a-af85-7d20a129593b", "comment": "", "command": "click", - "target": "id=/logoutEndpoints/1/url", + "target": "id=root_logoutEndpoints_1_url", "targets": [ - ["id=/logoutEndpoints/1/url", "id"], - ["name=field41", "name"], - ["css=#\\/logoutEndpoints\\/1\\/url", "css:finder"], - ["xpath=//input[@id='/logoutEndpoints/1/url']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_logoutEndpoints_1_url", "id"], + ["css=#root_logoutEndpoints_1_url", "css:finder"], + ["xpath=//input[@id='root_logoutEndpoints_1_url']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "d25f708c-f72a-4fb7-88c1-a25a61d9f72a", "comment": "", "command": "type", - "target": "id=/logoutEndpoints/1/url", + "target": "id=root_logoutEndpoints_1_url", "targets": [ ["id=field41", "id"], ["name=field41", "name"], @@ -845,19 +924,20 @@ "id": "bee9600e-b6db-484a-9b87-d7c657911108", "comment": "", "command": "click", - "target": "id=/logoutEndpoints/1/bindingType", + "target": "id=root_logoutEndpoints_1_bindingType", "targets": [ - ["css=#field42 > option:nth-child(3)", "css:finder"], - ["xpath=(//option[@value='2: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redir'])[2]", "xpath:attributes"], - ["xpath=//select[@id='field42']/option[3]", "xpath:idRelative"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/select-component/div/select/option[3]", "xpath:position"] + ["id=root_logoutEndpoints_1_bindingType", "id"], + ["css=#root_logoutEndpoints_1_bindingType", "css:finder"], + ["xpath=//select[@id='root_logoutEndpoints_1_bindingType']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:position"] ], "value": "" }, { "id": "e0e7ef9b-4ed1-4df2-b501-9cbb855baa7f", "comment": "", "command": "select", - "target": "id=/logoutEndpoints/1/bindingType", + "target": "id=root_logoutEndpoints_1_bindingType", "targets": [ ["id=/logoutEndpoints/1/bindingType", "id"], ["name=field42", "name"], @@ -876,60 +956,52 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "6c794e94-9c64-4683-816a-380432f2ed79", - "comment": "", - "command": "click", - "target": "id=/securityInfo/x509CertificateAvailable.true", - "targets": [ - ["id=/securityInfo/x509CertificateAvailable.true", "id"], - ["css=#\\/securityInfo\\/x509CertificateAvailable\\.true", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509CertificateAvailable.true']", "xpath:attributes"], - ["xpath=//input", "xpath:position"] - ], - "value": "" }, { "id": "f0ade90e-2c31-4a77-b936-3b2a00388477", "comment": "", "command": "click", - "target": "id=/securityInfo/authenticationRequestsSigned.true", + "target": "id=root_securityInfo_authenticationRequestsSigned-value.true", "targets": [ - ["id=/securityInfo/authenticationRequestsSigned.true", "id"], - ["css=#\\/securityInfo\\/authenticationRequestsSigned\\.true", "css:finder"], - ["xpath=//input[@id='/securityInfo/authenticationRequestsSigned.true']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div/label/input", "xpath:position"] + ["id=root_securityInfo_authenticationRequestsSigned-value.true", "id"], + ["name=root_securityInfo_authenticationRequestsSigned", "name"], + ["css=#root_securityInfo_authenticationRequestsSigned-value\\.true", "css:finder"], + ["xpath=//input[@id='root_securityInfo_authenticationRequestsSigned-value.true']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { "id": "e26eda6f-1897-42e2-9ea9-671b1ff88874", "comment": "", "command": "click", - "target": "id=/securityInfo/wantAssertionsSigned.true", + "target": "id=root_securityInfo_wantAssertionsSigned-value.true", "targets": [ - ["id=/securityInfo/wantAssertionsSigned.true", "id"], - ["css=#\\/securityInfo\\/wantAssertionsSigned\\.true", "css:finder"], - ["xpath=//input[@id='/securityInfo/wantAssertionsSigned.true']", "xpath:attributes"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div/label/input", "xpath:position"] + ["id=root_securityInfo_wantAssertionsSigned-value.true", "id"], + ["name=root_securityInfo_wantAssertionsSigned", "name"], + ["css=#root_securityInfo_wantAssertionsSigned-value\\.true", "css:finder"], + ["xpath=//input[@id='root_securityInfo_wantAssertionsSigned-value.true']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "3e11e54a-1b36-43ed-a8e5-d91f1fbed991", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/0/name", + "target": "id=root_securityInfo_x509Certificates_0_name", "targets": [ - ["id=/securityInfo/x509Certificates/0/name", "id"], - ["name=field50", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/0\\/name", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509Certificates/0/name']", "xpath:attributes"], - ["xpath=//div/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_0_name", "id"], + ["css=#root_securityInfo_x509Certificates_0_name", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_0_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "5acb8e19-16a3-4139-a961-1b58c11c4681", "comment": "", "command": "type", - "target": "id=/securityInfo/x509Certificates/0/name", + "target": "id=root_securityInfo_x509Certificates_0_name", "targets": [ ["id=field50", "id"], ["name=field50", "name"], @@ -942,25 +1014,26 @@ "id": "23ff8b87-ac6c-4f82-a779-aa91be11f49c", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/0/type.0", + "target": "id=root_securityInfo_x509Certificates_0_type-signing", "targets": [ - ["id=/securityInfo/x509Certificates/0/type.0", "id"], - ["name=field55", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/0\\/type\\.0", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509Certificates/0/type.0']", "xpath:attributes"], - ["xpath=//div/div/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_0_type-signing", "id"], + ["name=root_securityInfo_x509Certificates_0_type", "name"], + ["css=#root_securityInfo_x509Certificates_0_type-signing", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_0_type-signing']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "dd15088c-ddc9-42fd-8f8d-f73338be71b6", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/0/value", + "target": "id=root_securityInfo_x509Certificates_0_value", "targets": [ - ["id=/securityInfo/x509Certificates/0/value", "id"], - ["name=field52", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/0\\/value", "css:finder"], - ["xpath=//textarea[@id='/securityInfo/x509Certificates/0/value']", "xpath:attributes"], + ["id=root_securityInfo_x509Certificates_0_value", "id"], + ["css=#root_securityInfo_x509Certificates_0_value", "css:finder"], + ["xpath=//textarea[@id='root_securityInfo_x509Certificates_0_value']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/textarea", "xpath:idRelative"], ["xpath=//textarea", "xpath:position"] ], "value": "" @@ -968,7 +1041,7 @@ "id": "813bf709-6c73-41ac-837a-5be076fa43c7", "comment": "", "command": "type", - "target": "id=/securityInfo/x509Certificates/0/value", + "target": "id=root_securityInfo_x509Certificates_0_value", "targets": [ ["name=field52", "name"], ["css=.text-widget", "css:finder"], @@ -980,30 +1053,33 @@ "id": "fcf4cc15-54f4-4add-a093-e7ba5f2dc556", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[8]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "cbe577f6-3d18-49d9-95ab-2e597e5308a6", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/1/name", + "target": "id=root_securityInfo_x509Certificates_1_name", "targets": [ - ["id=/securityInfo/x509Certificates/1/name", "id"], - ["name=field54", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/1\\/name", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509Certificates/1/name']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_1_name", "id"], + ["css=#root_securityInfo_x509Certificates_1_name", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_1_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "ae98e813-77f4-424e-9141-d48e6127d9b6", "comment": "", "command": "type", - "target": "id=/securityInfo/x509Certificates/1/name", + "target": "id=root_securityInfo_x509Certificates_1_name", "targets": [ ["id=field54", "id"], ["name=field54", "name"], @@ -1016,32 +1092,33 @@ "id": "835ad053-0a10-4606-a148-c7ba36be316f", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/1/type.1", + "target": "id=root_securityInfo_x509Certificates_1_type-encryption", "targets": [ - ["id=/securityInfo/x509Certificates/1/type.1", "id"], - ["css=#\\/securityInfo\\/x509Certificates\\/1\\/type\\.1", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509Certificates/1/type.1']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-radio-widget/div/div[2]/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_1_type-encryption", "id"], + ["css=#root_securityInfo_x509Certificates_1_type-encryption", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_1_type-encryption']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "e272cafa-3aba-4aff-972e-b1d45e627b88", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/1/value", + "target": "id=root_securityInfo_x509Certificates_1_value", "targets": [ - ["id=/securityInfo/x509Certificates/1/value", "id"], - ["name=field56", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/1\\/value", "css:finder"], - ["xpath=//textarea[@id='/securityInfo/x509Certificates/1/value']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[3]/sf-form-element/div/sf-widget-chooser/textarea-component/div/textarea", "xpath:position"] + ["id=root_securityInfo_x509Certificates_1_value", "id"], + ["css=#root_securityInfo_x509Certificates_1_value", "css:finder"], + ["xpath=//textarea[@id='root_securityInfo_x509Certificates_1_value']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/textarea", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/textarea", "xpath:position"] ], "value": "" }, { "id": "ae42d668-92ba-4cb8-9daf-a2a64ac18404", "comment": "", "command": "type", - "target": "id=/securityInfo/x509Certificates/1/value", + "target": "id=root_securityInfo_x509Certificates_1_value", "targets": [ ["name=field56", "name"], ["css=.ng-untouched:nth-child(3)", "css:finder"], @@ -1063,23 +1140,25 @@ "id": "573c9f4c-c677-4175-96c5-3aaaf86e5ac1", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "50c1a3a1-b51c-41f9-81ff-d3d2894861ad", "comment": "", "command": "click", - "target": "id=/assertionConsumerServices/0/locationUrl", + "target": "id=root_assertionConsumerServices_0_locationUrl", "targets": [ - ["id=/assertionConsumerServices/0/locationUrl", "id"], - ["name=field60", "name"], - ["css=#\\/assertionConsumerServices\\/0\\/locationUrl", "css:finder"], - ["xpath=//input[@id='/assertionConsumerServices/0/locationUrl']", "xpath:attributes"], + ["id=root_assertionConsumerServices_0_locationUrl", "id"], + ["css=#root_assertionConsumerServices_0_locationUrl", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_0_locationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -1087,12 +1166,12 @@ "id": "6ff4002a-1c57-4778-b402-f917efaa5194", "comment": "", "command": "type", - "target": "id=/assertionConsumerServices/0/locationUrl", + "target": "id=root_assertionConsumerServices_0_locationUrl", "targets": [ - ["id=field60", "id"], - ["name=field60", "name"], - ["css=#field60", "css:finder"], - ["xpath=//input[@id='field60']", "xpath:attributes"], + ["id=root_assertionConsumerServices_0_locationUrl", "id"], + ["css=#root_assertionConsumerServices_0_locationUrl", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_0_locationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "http://test.org/assert" @@ -1100,20 +1179,20 @@ "id": "e81c5045-98c3-499c-bff5-2645efa4c55d", "comment": "", "command": "click", - "target": "id=/assertionConsumerServices/0/binding", + "target": "id=root_assertionConsumerServices_0_binding", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST']", "xpath:attributes"], - ["xpath=//select[@id='field61']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST')]", "xpath:innerText"] + ["id=root_assertionConsumerServices_0_binding", "id"], + ["css=#root_assertionConsumerServices_0_binding", "css:finder"], + ["xpath=//select[@id='root_assertionConsumerServices_0_binding']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], "value": "" }, { "id": "24c810c8-747a-4ae2-91e5-16685d589f21", "comment": "", "command": "select", - "target": "id=/assertionConsumerServices/0/binding", + "target": "id=root_assertionConsumerServices_0_binding", "targets": [ ["id=/assertionConsumerServices/0/binding", "id"], ["name=field61", "name"], @@ -1126,41 +1205,46 @@ "id": "c221b1f5-2961-4cbd-a545-1e34a09b8153", "comment": "", "command": "click", - "target": "css=.custom-control-label", + "target": "id=root_assertionConsumerServices_0_makeDefault", "targets": [ - ["css=.custom-control-label", "css:finder"], - ["xpath=//div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Mark as Default')]", "xpath:innerText"] + ["id=root_assertionConsumerServices_0_makeDefault", "id"], + ["css=#root_assertionConsumerServices_0_makeDefault", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_0_makeDefault']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "cb058717-f20f-4a54-81e5-9a7dcf66ec0e", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "f9998203-830b-44d3-8392-45b737544177", "comment": "", "command": "click", - "target": "id=/assertionConsumerServices/1/locationUrl", + "target": "id=root_assertionConsumerServices_1_locationUrl", "targets": [ - ["id=/assertionConsumerServices/1/locationUrl", "id"], - ["name=field64", "name"], - ["css=#\\/assertionConsumerServices\\/1\\/locationUrl", "css:finder"], - ["xpath=//input[@id='/assertionConsumerServices/1/locationUrl']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_assertionConsumerServices_1_locationUrl", "id"], + ["css=#root_assertionConsumerServices_1_locationUrl", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_1_locationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "d5cbf5e8-7c5b-45f7-8645-dd9f9d39922e", "comment": "", "command": "type", - "target": "id=/assertionConsumerServices/1/locationUrl", + "target": "id=root_assertionConsumerServices_1_locationUrl", "targets": [ ["id=field64", "id"], ["name=field64", "name"], @@ -1173,19 +1257,20 @@ "id": "74de4187-3d1e-4a4d-af8e-966f00649ab8", "comment": "", "command": "click", - "target": "id=/assertionConsumerServices/1/binding", + "target": "id=root_assertionConsumerServices_1_binding", "targets": [ - ["css=#field65 > option:nth-child(3)", "css:finder"], - ["xpath=(//option[@value='2: urn:oasis:names:tc:SAML:1.0:profiles:browser-po'])[2]", "xpath:attributes"], - ["xpath=//select[@id='field65']/option[3]", "xpath:idRelative"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/select-component/div/select/option[3]", "xpath:position"] + ["id=root_assertionConsumerServices_1_binding", "id"], + ["css=#root_assertionConsumerServices_1_binding", "css:finder"], + ["xpath=//select[@id='root_assertionConsumerServices_1_binding']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:position"] ], "value": "" }, { "id": "929c1047-f455-418b-b23e-a383d681f028", "comment": "", "command": "select", - "target": "id=/assertionConsumerServices/1/binding", + "target": "id=root_assertionConsumerServices_1_binding", "targets": [ ["id=/assertionConsumerServices/1/binding", "id"], ["name=field65", "name"], @@ -1205,104 +1290,131 @@ ], "value": "" }, { - "id": "134bf1f3-1e86-49e7-91de-185e513b02be", + "id": "5cd1ae5f-678a-4be8-a03f-b290006e52fe", "comment": "", "command": "click", - "target": "css=div:nth-child(1) > sf-form-element > .has-success .custom-control-label", + "target": "id=root_relyingPartyOverrides_dontSignResponse", "targets": [ - ["css=div:nth-child(1) > sf-form-element > .has-success .custom-control-label", "css:finder"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Sign the Assertion?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_dontSignResponse", "id"], + ["css=#root_relyingPartyOverrides_dontSignResponse", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_dontSignResponse']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { - "id": "5cd1ae5f-678a-4be8-a03f-b290006e52fe", + "id": "bd73bc0a-0122-48fc-886e-491017fda682", + "comment": "", + "command": "assertText", + "target": "css=div.section-body.p-4.border.border-top-0.border-info > div:nth-child(3) > div > div > p", + "targets": [ + ["css=.fade > .m-0", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/p", "xpath:idRelative"], + ["xpath=//p", "xpath:position"] + ], + "value": "Unless the response or the assertions are signed, SAML security is compromised and the service should reject the SAML response. (If it doesn't, investigate, as that is serious unless the HTTP-Artifact binding is in use.)" + }, { + "id": "134bf1f3-1e86-49e7-91de-185e513b02be", "comment": "", "command": "click", - "target": "css=div:nth-child(2) > sf-form-element .custom-control-label", + "target": "id=root_relyingPartyOverrides_signAssertion", "targets": [ - ["css=div:nth-child(2) > sf-form-element .custom-control-label", "css:finder"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"] + ["id=root_relyingPartyOverrides_signAssertion", "id"], + ["css=#root_relyingPartyOverrides_signAssertion", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_signAssertion']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { "id": "5895d555-6ef5-4344-b177-00e905f9007c", "comment": "", "command": "click", - "target": "css=div:nth-child(3) > sf-form-element .custom-control-label", + "target": "id=root_relyingPartyOverrides_turnOffEncryption", "targets": [ - ["css=div:nth-child(3) > sf-form-element .custom-control-label", "css:finder"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Turn off Encryption of Response?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_turnOffEncryption", "id"], + ["css=#root_relyingPartyOverrides_turnOffEncryption", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_turnOffEncryption']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[3]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "8d834380-e312-494d-9b4b-c5b798cc9b15", "comment": "", "command": "click", - "target": "css=div:nth-child(4) .custom-control-label", + "target": "id=root_relyingPartyOverrides_useSha", "targets": [ - ["css=div:nth-child(4) .custom-control-label", "css:finder"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Use SHA1 Signing Algorithm?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_useSha", "id"], + ["css=#root_relyingPartyOverrides_useSha", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_useSha']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[4]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "bcf532a9-ba5a-4ca1-a342-dde53bc4a592", "comment": "", "command": "click", - "target": "css=div:nth-child(5) .custom-control-label", + "target": "id=root_relyingPartyOverrides_ignoreAuthenticationMethod", "targets": [ - ["css=div:nth-child(5) .custom-control-label", "css:finder"], - ["xpath=//div[5]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Ignore any SP-Requested Authentication Method?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_ignoreAuthenticationMethod", "id"], + ["css=#root_relyingPartyOverrides_ignoreAuthenticationMethod", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_ignoreAuthenticationMethod']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[5]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "45f3df44-1c34-4649-aedb-14207e9ce999", "comment": "", "command": "click", - "target": "css=div:nth-child(6) .custom-control-label", + "target": "id=root_relyingPartyOverrides_omitNotBefore", "targets": [ - ["css=div:nth-child(6) .custom-control-label", "css:finder"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Omit Not Before Condition?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_omitNotBefore", "id"], + ["css=#root_relyingPartyOverrides_omitNotBefore", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_omitNotBefore']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[6]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "7ccb7d88-b113-4ee9-8582-b3d781fa8846", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/responderId", + "target": "id=root_relyingPartyOverrides_responderId", "targets": [ - ["id=/relyingPartyOverrides/responderId", "id"], - ["name=field121", "name"], - ["css=#\\/relyingPartyOverrides\\/responderId", "css:finder"], - ["xpath=//input[@id='/relyingPartyOverrides/responderId']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_relyingPartyOverrides_responderId", "id"], + ["css=#root_relyingPartyOverrides_responderId", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_responderId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[7]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "afe1b839-3421-4816-bf69-c804add681ba", "comment": "", "command": "type", - "target": "id=/relyingPartyOverrides/responderId", + "target": "id=root_relyingPartyOverrides_responderId", "targets": [ - ["id=field75", "id"], - ["name=field75", "name"], - ["css=#field75", "css:finder"], - ["xpath=//input[@id='field75']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_relyingPartyOverrides_responderId", "id"], + ["css=#root_relyingPartyOverrides_responderId", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_responderId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[7]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div/div/input", "xpath:position"] ], "value": "responder-id-123" }, { "id": "ba74d18d-0996-485f-8a9f-01a39428eb0c", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ - ["css=div:nth-child(8) .btn > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.row:nth-child(8) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -1316,13 +1428,12 @@ "id": "2a91666b-5453-4064-8923-c3384835b6fd", "comment": "", "command": "click", - "target": "css=.btn-outline-secondary", + "target": "css=.toggle-button", "targets": [ - ["css=.btn-outline-secondary", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/0-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[15]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div[2]/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1336,20 +1447,23 @@ "id": "6e8718ef-e053-48d8-91e5-f5128e371f56", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/0__option--0", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/0__option--0", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/0__option--0", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/0__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/0__listbox']/li", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_0']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified')]", "xpath:innerText"] ], "value": "" }, { "id": "ec3afb37-30b4-4d07-93a6-dcf022605532", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], ["xpath=//div/button", "xpath:position"], @@ -1367,12 +1481,12 @@ "id": "fd33610c-dbca-410d-b2a4-117a1b2b6a79", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/nameIdFormats\\/1-container .btn", + "target": "css=.mt-2:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/1-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/1-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[17]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1386,20 +1500,23 @@ "id": "3cd47415-5e57-4148-a40b-9571e6791f3f", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/1__option--1", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/1__option--1", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/1__option--1", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/1__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/1__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[2]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_1']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress')]", "xpath:innerText"] ], "value": "" }, { "id": "8b340d1f-4944-4d10-a4cd-5e79be6804ef", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], ["xpath=//div/button", "xpath:position"], @@ -1417,12 +1534,12 @@ "id": "208b33cf-f983-4a82-9b1b-19cdf2a937fc", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/nameIdFormats\\/2-container .btn", + "target": "css=.mt-2:nth-child(3) .toggle-button", "targets": [ - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/2-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/2-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.is-invalid > .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[19]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1436,20 +1553,23 @@ "id": "b4beb2b3-8481-4431-9299-a39a4107f17f", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/2__option--2", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/2__option--2", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/2__option--2", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/2__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/2__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_2']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent')]", "xpath:innerText"] ], "value": "" }, { "id": "d6e7a640-a578-415b-9c1b-b2313b62ad46", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], ["xpath=//div/button", "xpath:position"], @@ -1467,7 +1587,7 @@ "id": "788a5b63-a75f-4aeb-9a5d-17c41e8f718e", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/nameIdFormats\\/3-container .btn", + "target": "css=.mt-2:nth-child(4) .toggle-button", "targets": [ ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/3-container .btn", "css:finder"], ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], @@ -1486,20 +1606,23 @@ "id": "c82d6951-13e2-4d32-9e19-eac52bfdc188", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/3__option--3", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/3__option--3", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/3__option--3", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/3__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/3__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:transient", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_3']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:transient')]", "xpath:innerText"] ], "value": "" }, { "id": "4c15be93-75be-4673-b703-07a705300d0f", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ ["css=div:nth-child(8) .btn > translate-i18n", "css:finder"], ["xpath=//div/button/translate-i18n", "xpath:position"] @@ -1509,20 +1632,19 @@ "id": "1a1b509e-1768-4291-820d-26f4b73a9d71", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/4", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[2]/div/div/div[1]/div/div/div[2]/div[5]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/4", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/4", "css:finder"], - ["xpath=//input[@id='/relyingPartyOverrides/nameIdFormats/4']", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/4-container']/div/input", "xpath:idRelative"], - ["xpath=//li[5]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] + ["css=.focus", "css:finder"], + ["xpath=(//input[@value=''])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[2]/div/div/div/div/div/div[2]/div[5]/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "433d6e9d-9d03-4042-9ee0-6284570f8a3c", "comment": "", "command": "type", - "target": "id=/relyingPartyOverrides/nameIdFormats/4", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[2]/div/div/div[1]/div/div/div[2]/div[5]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ ["id=field83", "id"], ["css=#field83", "css:finder"], @@ -1532,12 +1654,24 @@ ], "value": "somethingElse" }, { - "id": "c8bb3bee-3d61-4324-a3aa-38b78232b969", + "id": "b505f2f8-396a-47b3-adb9-c3edb083cafb", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .btn", + "target": "css=body", "targets": [], "value": "" + }, { + "id": "c8bb3bee-3d61-4324-a3aa-38b78232b969", + "comment": "", + "command": "click", + "target": "css=.row:nth-child(4) .array-add-button", + "targets": [ + ["css=.row:nth-child(9) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[25]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[9]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div/button", "xpath:position"] + ], + "value": "" }, { "id": "a264ad94-60d9-4634-b341-49016d821a8c", "comment": "", @@ -1549,12 +1683,12 @@ "id": "cbf15c4c-35d9-4f80-ba3d-bfe960048cd1", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/authenticationMethods\\/0-container .btn", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div/div/div[1]/div/div[1]/div/div/button", "targets": [ - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/0-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/authenticationMethods/0-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.is-invalid > .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[22]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[4]/div/div/div/div/div/div[2]/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/div[2]/div/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1568,20 +1702,23 @@ "id": "6c62d514-0143-49d9-97b3-6b7cb443df9d", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/0__option--0", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/0__option--0", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/0__option--0", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/authenticationMethods/0__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/authenticationMethods/0__listbox']/li", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0", "id"], + ["linkText=https://refeds.org/profile/mfa", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_0']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'https://refeds.org/profile/mfa')]", "xpath:innerText"] ], "value": "" }, { "id": "ed769470-9c3f-4c23-bbed-85513dcea800", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .btn", + "target": "css=.row:nth-child(4) .array-add-button", "targets": [ ["css=div:nth-child(9) .d-flex > .btn", "css:finder"], ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button", "xpath:position"] @@ -1598,12 +1735,12 @@ "id": "2b063eb8-f2d6-4a59-85bb-b04c467d9874", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/authenticationMethods\\/1-container .btn", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[2]/div/div[1]/div/div[1]/div/div/button", "targets": [ - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/1-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[8]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/authenticationMethods/1-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.is-invalid > .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[29]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[9]/div/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1617,20 +1754,23 @@ "id": "5a32d59b-1ac3-4cd0-a2d8-0e934f8182fd", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/1__option--1", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/1__option--1", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/1__option--1", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/authenticationMethods/1__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/authenticationMethods/1__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[2]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_1']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken')]", "xpath:innerText"] ], "value": "" }, { "id": "892ddc96-970b-4dde-9189-0dc9ed197dab", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .btn", + "target": "css=.row:nth-child(4) .array-add-button", "targets": [ ["css=div:nth-child(9) .d-flex > .btn", "css:finder"], ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button", "xpath:position"] @@ -1647,7 +1787,7 @@ "id": "64e215d9-6e46-422f-882c-13b6fb102622", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/authenticationMethods\\/2-container .btn", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[3]/div/div[1]/div/div[1]/div/div/button", "targets": [ ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/2-container .btn", "css:finder"], ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], @@ -1666,20 +1806,23 @@ "id": "6a7bce1a-34be-4d4c-b732-d2f198e8b8a1", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/2__option--2", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/2__option--2", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/2__option--2", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/authenticationMethods/2__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/authenticationMethods/2__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_2']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport')]", "xpath:innerText"] ], "value": "" }, { "id": "f0dd4b79-eab5-4d4b-af2e-07ca661f8288", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .btn", + "target": "css=.row:nth-child(4) .array-add-button", "targets": [ ["css=div:nth-child(9) .btn > translate-i18n", "css:finder"], ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button/translate-i18n", "xpath:position"] @@ -1689,20 +1832,19 @@ "id": "dacd34b0-9e48-4838-b137-bf22dd027ed0", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/3", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[4]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/3", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/3", "css:finder"], - ["xpath=//input[@id='/relyingPartyOverrides/authenticationMethods/3']", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/authenticationMethods/3-container']/div/input", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] + ["css=.focus", "css:finder"], + ["xpath=(//input[@value=''])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[9]/div/div/div/div/div/div[2]/div[4]/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div[2]/div[4]/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "cc9dd18b-ee87-4aa7-91f2-59f02834759b", "comment": "", "command": "type", - "target": "id=/relyingPartyOverrides/authenticationMethods/3", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[4]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ ["id=field87", "id"], ["css=#field87", "css:finder"], @@ -1711,15 +1853,24 @@ ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] ], "value": "otherThings" + }, { + "id": "5b836abc-eb72-417f-acdc-8b3ec267cd96", + "comment": "", + "command": "click", + "target": "css=body", + "targets": [], + "value": "" }, { "id": "7c85fe59-dc95-4328-a010-33d1a06a5ce5", "comment": "", "command": "click", - "target": "css=div:nth-child(10) .custom-control-label", + "target": "id=root_relyingPartyOverrides_forceAuthn", "targets": [ - ["css=div:nth-child(10) .custom-control-label", "css:finder"], - ["xpath=//div[10]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Force AuthN')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_forceAuthn", "id"], + ["css=#root_relyingPartyOverrides_forceAuthn", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_forceAuthn']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[10]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[10]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { @@ -1733,14 +1884,17 @@ ], "value": "" }, { - "id": "553dd570-b1bb-43bb-a469-63ee08a09794", + "id": "12485e9f-5ab1-4c9c-a948-d6d13386b97f", "comment": "", "command": "click", - "target": "css=.fa-check", + "target": "id=attributeRelease.checkAll", "targets": [ - ["css=.fa-check", "css:finder"], - ["xpath=//button[@id='/attributeRelease.checkall']/i", "xpath:idRelative"], - ["xpath=//td[2]/button/i", "xpath:position"] + ["id=attributeRelease.checkAll", "id"], + ["css=#attributeRelease\\.checkAll", "css:finder"], + ["xpath=//button[@id='attributeRelease.checkAll']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[10]/div/div/fieldset/table/tbody/tr[13]/td[2]/button", "xpath:idRelative"], + ["xpath=//td[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Check All Attributes')]", "xpath:innerText"] ], "value": "" }, { @@ -1753,26 +1907,15 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "14ca713a-313d-4cda-82ca-a0b814ce81dc", - "comment": "", - "command": "click", - "target": "css=.custom-control-label", - "targets": [ - ["css=.custom-control-label", "css:finder"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Enable this service?')]", "xpath:innerText"] - ], - "value": "" }, { "id": "3baa7bd3-55c0-4d10-8aa3-c0daa63ec4d4", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(1) .text-truncate", + "target": "css=div:nth-child(2) > div:nth-child(2) > .border-bottom > .text-truncate", "targets": [ - ["css=.d-block > primitive-property:nth-child(1) .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], - ["xpath=//div/span[2]", "xpath:position"], + ["css=div:nth-child(2) > div:nth-child(2) > .border-bottom > .text-truncate", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section/div/div[2]/div[2]/div[2]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'test-1234')]", "xpath:innerText"] ], "value": "test-1234" @@ -1780,22 +1923,23 @@ "id": "0d355ff0-0449-49a7-ae75-14d7c405b97c", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(7) .py-2:nth-child(3) > .d-flex:nth-child(1) > .text-truncate", + "target": "css=.mb-4:nth-child(7) .py-2:nth-child(3) > .d-flex:nth-child(1) > .d-block", "targets": [ - ["css=.mb-4:nth-child(7) .py-2:nth-child(3) > .d-flex:nth-child(1) > .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[7]/div/div[2]/object-property/array-property/div/div[3]/div/div[2]", "xpath:idRelative"], - ["xpath=//section[7]/div/div[2]/object-property/array-property/div/div[3]/div/div[2]", "xpath:position"] + ["css=.mb-4:nth-child(7) .py-2:nth-child(3) > .d-flex:nth-child(1) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[7]/div/div[2]/div[2]/div/div[3]/div/span", "xpath:idRelative"], + ["xpath=//section[7]/div/div[2]/div[2]/div/div[3]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'http://test.org/assert2')]", "xpath:innerText"] ], "value": "http://test.org/assert2" }, { "id": "e53030b6-f344-4361-981d-b8303a721c5d", "comment": "", "command": "assertText", - "target": "css=array-property:nth-child(8) .border-0", + "target": "css=.mb-4:nth-child(8) .d-flex:nth-child(5) > .d-block", "targets": [ - ["css=array-property:nth-child(8) .border-0", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[8]/div/div[2]/object-property/object-property/array-property/div/ul/li[5]", "xpath:idRelative"], - ["xpath=//section[8]/div/div[2]/object-property/object-property/array-property/div/ul/li[5]", "xpath:position"] + ["css=.mb-4:nth-child(8) .d-flex:nth-child(5) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[8]/div/div[2]/div[2]/div/div[2]/ul/li[5]/span", "xpath:idRelative"], + ["xpath=//section[8]/div/div[2]/div[2]/div/div[2]/ul/li[5]/span", "xpath:position"] ], "value": "somethingElse" }, { @@ -1944,13 +2088,6 @@ "target": "css=td:nth-child(2)", "targets": [], "value": "" - }, { - "id": "3e7de570-9ff8-4dfe-9eaa-3417f3172d49", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1311.side b/backend/src/integration/resources/SHIBUI-1311.side index f02c49782..a63c3af30 100644 --- a/backend/src/integration/resources/SHIBUI-1311.side +++ b/backend/src/integration/resources/SHIBUI-1311.side @@ -49,42 +49,83 @@ ["xpath=//tr[2]/td[2]/input", "xpath:position"] ], "value": "${KEY_ENTER}" + }, { + "id": "b44b94d5-0659-4682-94ac-19bccf497f79", + "comment": "", + "command": "waitForElementVisible", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "8034dcdc-3fa2-4144-b707-c470db8c7c38", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "279adf06-6a84-4970-8a76-c0f24176ad71", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "d47c270c-256a-45d1-9ca9-926d4f57643d", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "e7a98419-36c7-4b0f-a99d-087144f6a417", "comment": "", "command": "click", - "target": "css=.fa-plus-circle", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=.fa-plus-circle", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/i", "xpath:idRelative"], - ["xpath=//i", "xpath:position"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "74fef022-3979-4bed-9226-b25114514976", "comment": "", "command": "click", - "target": "linkText=Metadata Provider", + "target": "id=metadata-nav-dropdown-provider", "targets": [ - ["linkText=Metadata Provider", "linkText"], - ["css=.nav-link:nth-child(2)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a[2]", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[3]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"] + ["id=metadata-nav-dropdown-provider", "id"], + ["linkText=Add a new metadata provider", "linkText"], + ["css=#metadata-nav-dropdown-provider", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata provider')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-provider']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/new')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata provider')]", "xpath:innerText"] ], "value": "" }, { "id": "69432299-f150-4bea-9e07-7ef222d7c71f", "comment": "", "command": "waitForElementVisible", - "target": "id=/name", - "targets": [], + "target": "name=name", + "targets": [ + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "b49d6ed7-75ea-4be8-9a79-c7fd83287aa0", "comment": "", "command": "click", - "target": "id=/name", + "target": "name=name", "targets": [ ["id=/name", "id"], ["name=field1", "name"], @@ -97,7 +138,7 @@ "id": "54dc29f7-bbe0-4c2b-a76e-e67a61f57a96", "comment": "", "command": "type", - "target": "id=/name", + "target": "name=name", "targets": [ ["id=/name", "id"], ["name=field1", "name"], @@ -106,16 +147,26 @@ ["xpath=//input", "xpath:position"] ], "value": "Test Metadata Provider" + }, { + "id": "e907f2a4-db3f-42da-af79-1ccaf6032b9c", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" }, { "id": "add874d5-e3b2-4412-8039-2b9d2619ed19", "comment": "", "command": "select", - "target": "id=/type", + "target": "name=type", "targets": [ - ["css=select-component > .widget", "css:finder"], - ["xpath=//select-component/div", "xpath:position"] + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div[2]/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], - "value": "label=FileBackedHttpMetadataProvider" + "value": "label=FileBackedHttpMetadataResolver" }, { "id": "1cc352f4-0d71-4a3e-9399-1d9932816efc", "comment": "", @@ -130,14 +181,20 @@ "id": "a237669b-daf4-42f6-bc7f-dc4cb5548f56", "comment": "", "command": "waitForElementVisible", - "target": "id=/xmlId", - "targets": [], + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "86262eda-4a44-41b0-b7aa-fa46406e2601", "comment": "", "command": "type", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ ["id=field7", "id"], ["name=field7", "name"], @@ -150,38 +207,39 @@ "id": "26cc765d-98c1-414c-97d8-4c7e5c6ab7e2", "comment": "", "command": "type", - "target": "id=/metadataURL", + "target": "id=root_metadataURL", "targets": [ - ["id=field8", "id"], - ["name=field8", "name"], - ["css=#field8", "css:finder"], - ["xpath=//input[@id='field8']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_metadataURL", "id"], + ["css=#root_metadataURL", "css:finder"], + ["xpath=//input[@id='root_metadataURL']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "https://idp.unicon.net/idp/shibboleth" }, { "id": "f0459917-b2a1-4e3c-8800-25273965129f", "comment": "", "command": "click", - "target": "id=/initializeFromBackupFile.false", + "target": "id=root_initializeFromBackupFile-No", "targets": [ - ["id=/initializeFromBackupFile.false", "id"], - ["css=#\\/initializeFromBackupFile\\.false", "css:finder"], - ["xpath=//input[@id='/initializeFromBackupFile.false']", "xpath:attributes"], - ["xpath=//div[2]/label/input", "xpath:position"] + ["id=root_initializeFromBackupFile-No", "id"], + ["css=#root_initializeFromBackupFile-No", "css:finder"], + ["xpath=//input[@id='root_initializeFromBackupFile-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[3]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] ], "value": "" }, { "id": "5b37cf08-77b9-4091-94f9-c0d539c9010d", "comment": "", "command": "type", - "target": "id=/backingFile", + "target": "id=root_backingFile", "targets": [ - ["id=/backingFile", "id"], - ["name=field10", "name"], - ["css=#\\/backingFile", "css:finder"], - ["xpath=//input[@id='/backingFile']", "xpath:attributes"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_backingFile", "id"], + ["css=#root_backingFile", "css:finder"], + ["xpath=//input[@id='root_backingFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] ], "value": "%{idp.home}/foo.txt" }, { @@ -195,11 +253,12 @@ "id": "203d0d3c-d866-422a-8b48-b50181db00e9", "comment": "", "command": "click", - "target": "css=.fa-caret-down", + "target": "css=.toggle-button", "targets": [ - ["css=.fa-caret-down", "css:finder"], - ["xpath=//div[@id='/backupFileInitNextRefreshDelay-container']/div/div/button/i", "xpath:idRelative"], - ["xpath=//div/button/i", "xpath:position"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[5]/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -213,62 +272,69 @@ "id": "5fc6a348-0533-4d94-bb76-ebb891a0db8f", "comment": "", "command": "click", - "target": "id=/backupFileInitNextRefreshDelay__option--1", + "target": "id=option-selector-root_backupFileInitNextRefreshDelay-item-1", "targets": [ - ["id=/backupFileInitNextRefreshDelay__option--1", "id"], - ["css=#\\/backupFileInitNextRefreshDelay__option--1", "css:finder"], - ["xpath=//li[@id='/backupFileInitNextRefreshDelay__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/backupFileInitNextRefreshDelay__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'PT30S')]", "xpath:innerText"] + ["id=option-selector-root_backupFileInitNextRefreshDelay-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_backupFileInitNextRefreshDelay-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_backupFileInitNextRefreshDelay-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_backupFileInitNextRefreshDelay']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { "id": "bf041d41-5d58-4f69-8fcc-49ec79e5547d", "comment": "", "command": "click", - "target": "id=/requireValidMetadata.false", + "target": "id=root_requireValidMetadata-No", "targets": [ - ["id=/requireValidMetadata.false", "id"], - ["css=#\\/requireValidMetadata\\.false", "css:finder"], - ["xpath=//input[@id='/requireValidMetadata.false']", "xpath:attributes"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_requireValidMetadata-No", "id"], + ["css=#root_requireValidMetadata-No", "css:finder"], + ["xpath=//input[@id='root_requireValidMetadata-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[6]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "fba85c75-e218-4deb-b5e1-888ff75b6a4e", "comment": "", "command": "click", - "target": "id=/failFastInitialization.false", + "target": "id=root_failFastInitialization-No", "targets": [ - ["id=/failFastInitialization.false", "id"], - ["css=#\\/failFastInitialization\\.false", "css:finder"], - ["xpath=//input[@id='/failFastInitialization.false']", "xpath:attributes"], - ["xpath=//div[7]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_failFastInitialization-No", "id"], + ["css=#root_failFastInitialization-No", "css:finder"], + ["xpath=//input[@id='root_failFastInitialization-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[7]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "375b8d6e-179b-4f14-8f00-d8a8cad29d7e", "comment": "", "command": "click", - "target": "id=/useDefaultPredicateRegistry.false", + "target": "id=root_useDefaultPredicateRegistry-No", "targets": [ - ["id=/useDefaultPredicateRegistry.false", "id"], - ["css=#\\/useDefaultPredicateRegistry\\.false", "css:finder"], - ["xpath=//input[@id='/useDefaultPredicateRegistry.false']", "xpath:attributes"], - ["xpath=//div[8]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_useDefaultPredicateRegistry-No", "id"], + ["css=#root_useDefaultPredicateRegistry-No", "css:finder"], + ["xpath=//input[@id='root_useDefaultPredicateRegistry-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[8]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[8]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "8b4bf341-62c0-491f-b775-d2faf55477bc", "comment": "", "command": "click", - "target": "id=/satisfyAnyPredicates.true", + "target": "id=root_satisfyAnyPredicates-Yes", "targets": [ - ["id=/satisfyAnyPredicates.true", "id"], - ["css=#\\/satisfyAnyPredicates\\.true", "css:finder"], - ["xpath=//input[@id='/satisfyAnyPredicates.true']", "xpath:attributes"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div/label/input", "xpath:position"] + ["id=root_satisfyAnyPredicates-Yes", "id"], + ["name=root_satisfyAnyPredicates", "name"], + ["css=#root_satisfyAnyPredicates-Yes", "css:finder"], + ["xpath=//input[@id='root_satisfyAnyPredicates-Yes']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[9]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/input", "xpath:position"] ], "value": "" }, { @@ -292,13 +358,12 @@ "id": "a188bc3e-fd98-4d49-ae35-a0b78a17607c", "comment": "", "command": "click", - "target": "css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", + "target": "css=.row:nth-child(1) > .col-12 .toggle-button", "targets": [ - ["css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/reloadableMetadataResolverAttributes/minRefreshDelay-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.row:nth-child(1) > .col-12 .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -312,14 +377,16 @@ "id": "a159e056-c870-4e02-a7e9-4b3a60d83718", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/minRefreshDelay__option--1", + "target": "id=option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "targets": [ - ["id=/reloadableMetadataResolverAttributes/minRefreshDelay__option--1", "id"], - ["css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay__option--1", "css:finder"], - ["xpath=//li[@id='/reloadableMetadataResolverAttributes/minRefreshDelay__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/reloadableMetadataResolverAttributes/minRefreshDelay__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'PT30S')]", "xpath:innerText"] + ["id=option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { @@ -333,11 +400,12 @@ "id": "7a72cf6a-c97a-49f6-83d0-cbe42f0fdb7d", "comment": "", "command": "click", - "target": "css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay-container .btn", + "target": "css=.row:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay-container .fa", "css:finder"], - ["xpath=//div[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay-container']/div/div/button/i", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button/i", "xpath:position"] + ["css=.row:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -351,26 +419,29 @@ "id": "820397f5-aabb-46f5-a65a-56747ce29091", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/maxRefreshDelay__option--3", + "target": "id=option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3", "targets": [ - ["id=/reloadableMetadataResolverAttributes/maxRefreshDelay__option--3", "id"], - ["css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay__option--3", "css:finder"], - ["xpath=//li[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3", "id"], + ["linkText=PT10M", "linkText"], + ["css=#option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'PT10M')]", "xpath:innerText"] ], "value": "" }, { "id": "b036a851-4ac9-43cb-8686-8e78ed940d72", "comment": "", "command": "type", - "target": "id=/reloadableMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "targets": [ - ["id=/reloadableMetadataResolverAttributes/refreshDelayFactor", "id"], - ["name=field20", "name"], - ["css=#\\/reloadableMetadataResolverAttributes\\/refreshDelayFactor", "css:finder"], - ["xpath=//input[@id='/reloadableMetadataResolverAttributes/refreshDelayFactor']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "id"], + ["css=#root_reloadableMetadataResolverAttributes_refreshDelayFactor", "css:finder"], + ["xpath=//input[@id='root_reloadableMetadataResolverAttributes_refreshDelayFactor']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "0.5" }, { @@ -414,115 +485,117 @@ "id": "b8d999f1-0c59-4a9a-9991-91d222f52b8e", "comment": "", "command": "click", - "target": "id=/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1", + "target": "id=option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "targets": [ - ["id=/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1", "id"], - ["css=#\\/metadataFilters\\/RequiredValidUntil\\/maxValidityInterval__option--1", "css:finder"], - ["xpath=//li[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'P14D')]", "xpath:innerText"] + ["id=option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_metadataFilters_0_maxValidityInterval-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_metadataFilters_0_maxValidityInterval']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { "id": "8af1abb5-2c7a-4a4c-a8f7-0eb287100dde", "comment": "", "command": "click", - "target": "id=/metadataFilters/SignatureValidation/requireSignedRoot", + "target": "id=root_metadataFilters_1_requireSignedRoot", "targets": [ - ["css=#\\/metadataFilters\\/SignatureValidation\\/requireSignedRoot\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/metadataFilters/SignatureValidation/requireSignedRoot.parent']/label", "xpath:idRelative"], - ["xpath=//div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Require Signed Root')]", "xpath:innerText"] + ["id=root_metadataFilters_1_requireSignedRoot", "id"], + ["css=#root_metadataFilters_1_requireSignedRoot", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_1_requireSignedRoot']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "323a2a02-9111-4064-8bb0-a3da34330e54", "comment": "", "command": "type", - "target": "id=/metadataFilters/SignatureValidation/certificateFile", - "targets": [], + "target": "id=root_metadataFilters_1_certificateFile", + "targets": [ + ["id=root_metadataFilters_1_certificateFile", "id"], + ["css=#root_metadataFilters_1_certificateFile", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_1_certificateFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] + ], "value": "%{idp.home}/foo.txt" }, { "id": "a125e601-f306-441d-9c8c-e97b95817b46", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//array-component/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "74d696db-3f3b-4ff3-a180-34baceb469a2", "comment": "", "command": "select", - "target": "id=/metadataFilters/EntityRoleWhiteList/retainedRoles/0", - "targets": [], - "value": "label=SPSSODescriptor" - }, { - "id": "532bf2e5-13fc-48d7-b01b-ff16207a554d", - "comment": "", - "command": "click", - "target": "css=option:nth-child(2)", + "target": "id=root_metadataFilters_2_retainedRoles_0", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: md:SPSSODescriptor']", "xpath:attributes"], - ["xpath=//select[@id='/metadataFilters/EntityRoleWhiteList/retainedRoles/0']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'SPSSODescriptor')]", "xpath:innerText"] + ["id=root_metadataFilters_2_retainedRoles_0", "id"], + ["css=#root_metadataFilters_2_retainedRoles_0", "css:finder"], + ["xpath=//select[@id='root_metadataFilters_2_retainedRoles_0']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], - "value": "" + "value": "label=SPSSODescriptor" }, { "id": "12cf80c9-594c-4c4d-bf26-aa36ba636220", "comment": "", "command": "click", - "target": "css=.fa-plus", + "target": "css=.array-add-button", "targets": [ ["css=.fa-plus", "css:finder"], ["xpath=//array-component/div/div/button/i", "xpath:position"] ], "value": "" - }, { - "id": "6cb9854b-293b-482d-8c07-4b7c638d79cb", - "comment": "", - "command": "click", - "target": "css=#\\/metadataFilters\\/EntityRoleWhiteList\\/retainedRoles\\/1 > option:nth-child(1)", - "targets": [ - ["css=#\\/metadataFilters\\/EntityRoleWhiteList\\/retainedRoles\\/1 > option:nth-child(1)", "css:finder"], - ["xpath=(//option[@value=''])[2]", "xpath:attributes"], - ["xpath=//select[@id='/metadataFilters/EntityRoleWhiteList/retainedRoles/1']/option", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/select-component/div/select/option", "xpath:position"] - ], - "value": "" }, { "id": "f366c86c-1420-4fb7-86c2-82c49d81208d", "comment": "", "command": "select", - "target": "id=/metadataFilters/EntityRoleWhiteList/retainedRoles/1", - "targets": [], + "target": "id=root_metadataFilters_2_retainedRoles_1", + "targets": [ + ["id=root_metadataFilters_2_retainedRoles_1", "id"], + ["css=#root_metadataFilters_2_retainedRoles_1", "css:finder"], + ["xpath=//select[@id='root_metadataFilters_2_retainedRoles_1']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div[2]/div[2]/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/select", "xpath:position"] + ], "value": "label=AttributeAuthorityDescriptor" }, { "id": "5dfac033-ecfd-42e8-aa6f-931d5acd4d89", "comment": "", "command": "click", - "target": "css=div:nth-child(2) > sf-form-element > .has-success > sf-widget-chooser > checkbox-component .custom-control-label", + "target": "id=root_metadataFilters_2_removeRolelessEntityDescriptors", "targets": [ - ["css=div:nth-child(2) > sf-form-element > .has-success > sf-widget-chooser > checkbox-component .custom-control-label", "css:finder"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Remove Roleless Entity Descriptors?')]", "xpath:innerText"] + ["id=root_metadataFilters_2_removeRolelessEntityDescriptors", "id"], + ["css=#root_metadataFilters_2_removeRolelessEntityDescriptors", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_2_removeRolelessEntityDescriptors']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[3]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "9d5934f0-fe10-4539-9d71-80b454fc8612", "comment": "", "command": "click", - "target": "css=div:nth-child(3) > sf-form-element > .has-success > sf-widget-chooser > checkbox-component .custom-control-label", + "target": "id=root_metadataFilters_2_removeEmptyEntitiesDescriptors", "targets": [ - ["css=div:nth-child(3) > sf-form-element > .has-success > sf-widget-chooser > checkbox-component .custom-control-label", "css:finder"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Remove Empty Entities Descriptors?')]", "xpath:innerText"] + ["id=root_metadataFilters_2_removeEmptyEntitiesDescriptors", "id"], + ["css=#root_metadataFilters_2_removeEmptyEntitiesDescriptors", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_2_removeEmptyEntitiesDescriptors']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[4]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { @@ -535,21 +608,14 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "79b96f40-2677-438a-9564-62df0ea2c116", - "comment": "", - "command": "click", - "target": "css=.custom-control-label", - "targets": [], - "value": "" }, { "id": "52f5680c-c63d-411e-8332-52901f12ea3b", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(1) primitive-property:nth-child(1) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(1) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(1) primitive-property:nth-child(1) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], + ["css=.mb-4:nth-child(1) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], ["xpath=//div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'Test Metadata Provider')]", "xpath:innerText"] ], @@ -558,11 +624,11 @@ "id": "67ff44aa-1efd-4b13-a0e9-3648a09911dd", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(2) primitive-property:nth-child(1) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(2) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(2) primitive-property:nth-child(1) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[2]/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], - ["xpath=//section[2]/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:position"], + ["css=.mb-4:nth-child(2) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[2]/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], + ["xpath=//section[2]/div/div[2]/div[2]/div/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'123')]", "xpath:innerText"] ], "value": "123" @@ -576,41 +642,6 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "563d35c7-65c9-4d10-9e0f-87d8fa31a036", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "8ae5598c-a4b0-4816-859a-d30f38029f65", - "comment": "", - "command": "click", - "target": "linkText=Dashboard", - "targets": [ - ["linkText=Dashboard", "linkText"], - ["css=.nav-item > .nav-link", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li[2]/a", "xpath:idRelative"], - ["xpath=//a[contains(@href, '/dashboard')]", "xpath:href"], - ["xpath=//li[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Dashboard')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "dcc49d9d-c0c6-41e0-9683-8e5d6271b3e9", - "comment": "", - "command": "click", - "target": "linkText=Metadata Providers", - "targets": [ - ["linkText=Metadata Providers", "linkText"], - ["css=.nav > .nav-item:nth-child(2) > .nav-link", "css:finder"], - ["xpath=//a[contains(text(),'Metadata Providers')]", "xpath:link"], - ["xpath=//a[contains(@href, '/dashboard/metadata/manager/providers')]", "xpath:href"], - ["xpath=//dashboard-page/div/ul/li[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Metadata Providers')]", "xpath:innerText"] - ], - "value": "" }, { "id": "c0acbec5-58ad-43de-837c-c40c2769fdd6", "comment": "", @@ -655,13 +686,13 @@ "id": "211711a2-0af5-4f5e-a427-812c2de0264d", "comment": "", "command": "click", - "target": "id=addNewDropdown", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["id=addNewDropdown", "id"], - ["css=#addNewDropdown", "css:finder"], - ["xpath=//button[@id='addNewDropdown']", "xpath:attributes"], - ["xpath=//div[@id='navbar']/ul/li/button", "xpath:idRelative"], - ["xpath=//li/button", "xpath:position"], + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" @@ -669,34 +700,37 @@ "id": "ed69adec-1265-4796-96a9-06ed5930d952", "comment": "", "command": "click", - "target": "linkText=Metadata Provider", + "target": "id=metadata-nav-dropdown-provider", "targets": [ - ["linkText=Metadata Provider", "linkText"], - ["css=.nav-link:nth-child(2)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a[2]", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[3]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"] + ["id=metadata-nav-dropdown-provider", "id"], + ["linkText=Add a new metadata provider", "linkText"], + ["css=#metadata-nav-dropdown-provider", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata provider')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-provider']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/new')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata provider')]", "xpath:innerText"] ], "value": "" - }, { - "id": "6b776e7b-87ec-4a61-bb51-face4b5b8c97", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" }, { "id": "664722f5-86a5-49a8-b60e-fac67544fbea", "comment": "", "command": "waitForElementEditable", - "target": "id=/name", - "targets": [], + "target": "name=name", + "targets": [ + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "79471f9f-e04f-4d98-8e78-f8f554d36821", "comment": "", "command": "type", - "target": "id=/name", + "target": "name=name", "targets": [ ["id=field39", "id"], ["name=field39", "name"], @@ -709,15 +743,15 @@ "id": "90dffd02-8971-4bf5-bc57-33194fdb27a2", "comment": "", "command": "select", - "target": "id=/type", + "target": "name=type", "targets": [ - ["id=/@type", "id"], - ["name=field38", "name"], - ["css=#\\/\\@type", "css:finder"], - ["xpath=//select[@id='/@type']", "xpath:attributes"], + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div[2]/select", "xpath:idRelative"], ["xpath=//select", "xpath:position"] ], - "value": "label=FileBackedHttpMetadataProvider" + "value": "label=FileBackedHttpMetadataResolver" }, { "id": "48061ec7-f134-4cf4-aba6-4f62708a779a", "comment": "", @@ -732,14 +766,20 @@ "id": "a8d021db-c36c-4cf7-9211-17751cf0624a", "comment": "", "command": "waitForElementVisible", - "target": "id=/xmlId", - "targets": [], + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "88a910a8-1e02-400a-9875-c76d0095aa57", "comment": "", "command": "type", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ ["id=field45", "id"], ["name=field45", "name"], @@ -752,20 +792,20 @@ "id": "9dbebf86-2c5a-4c88-9fa8-437d4bea96e6", "comment": "", "command": "click", - "target": "id=/metadataURL", + "target": "id=root_metadataURL", "targets": [ - ["id=/metadataURL", "id"], - ["name=field44", "name"], - ["css=#\\/metadataURL", "css:finder"], - ["xpath=//input[@id='/metadataURL']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_metadataURL", "id"], + ["css=#root_metadataURL", "css:finder"], + ["xpath=//input[@id='root_metadataURL']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "" }, { "id": "b7e620be-7672-4d3a-8da7-e2b278747f44", "comment": "", "command": "type", - "target": "id=/metadataURL", + "target": "id=root_metadataURL", "targets": [ ["id=field46", "id"], ["name=field46", "name"], @@ -778,32 +818,33 @@ "id": "d389f80c-4923-40ad-bdb6-f1142cb95a5e", "comment": "", "command": "click", - "target": "id=/initializeFromBackupFile.false", + "target": "id=root_initializeFromBackupFile-No", "targets": [ - ["id=/initializeFromBackupFile.false", "id"], - ["css=#\\/initializeFromBackupFile\\.false", "css:finder"], - ["xpath=//input[@id='/initializeFromBackupFile.false']", "xpath:attributes"], - ["xpath=//div[2]/label/input", "xpath:position"] + ["id=root_initializeFromBackupFile-No", "id"], + ["css=#root_initializeFromBackupFile-No", "css:finder"], + ["xpath=//input[@id='root_initializeFromBackupFile-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[3]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] ], "value": "" }, { "id": "4ce6d583-aadc-44b4-a694-92ca75a07e31", "comment": "", "command": "click", - "target": "id=/backingFile", + "target": "id=root_backingFile", "targets": [ - ["id=/backingFile", "id"], - ["name=field46", "name"], - ["css=#\\/backingFile", "css:finder"], - ["xpath=//input[@id='/backingFile']", "xpath:attributes"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_backingFile", "id"], + ["css=#root_backingFile", "css:finder"], + ["xpath=//input[@id='root_backingFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] ], "value": "" }, { "id": "206dd1e2-1c91-4c92-a99d-b938560d726c", "comment": "", "command": "type", - "target": "id=/backingFile", + "target": "id=root_backingFile", "targets": [ ["id=field48", "id"], ["name=field48", "name"], @@ -823,11 +864,12 @@ "id": "43dcf85f-0606-4177-aced-a1817aa2bd05", "comment": "", "command": "click", - "target": "css=.fa-caret-down", + "target": "css=.toggle-button", "targets": [ - ["css=.fa-caret-down", "css:finder"], - ["xpath=//div[@id='field49-container']/div/div/button/i", "xpath:idRelative"], - ["xpath=//div/button/i", "xpath:position"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[5]/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -841,14 +883,16 @@ "id": "38816b0f-9f4d-46d2-b900-937503ef93a0", "comment": "", "command": "click", - "target": "id=/backupFileInitNextRefreshDelay__option--2", + "target": "id=option-selector-root_backupFileInitNextRefreshDelay-item-2", "targets": [ - ["id=/backupFileInitNextRefreshDelay__option--2", "id"], - ["css=#\\/backupFileInitNextRefreshDelay__option--2", "css:finder"], - ["xpath=//li[@id='/backupFileInitNextRefreshDelay__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/backupFileInitNextRefreshDelay__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[3]", "xpath:position"], - ["xpath=//li[contains(.,'PT1M')]", "xpath:innerText"] + ["id=option-selector-root_backupFileInitNextRefreshDelay-item-2", "id"], + ["linkText=PT1M", "linkText"], + ["css=#option-selector-root_backupFileInitNextRefreshDelay-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_backupFileInitNextRefreshDelay-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_backupFileInitNextRefreshDelay']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'PT1M')]", "xpath:innerText"] ], "value": "" }, { @@ -892,18 +936,6 @@ "target": "1000", "targets": [], "value": "" - }, { - "id": "a97290c3-88ce-41d7-9619-f111ecbeb778", - "comment": "", - "command": "click", - "target": "id=/metadataFilters/SignatureValidation/requireSignedRoot", - "targets": [ - ["id=/metadataFilters/SignatureValidation/requireSignedRoot.parent", "id"], - ["css=#\\/metadataFilters\\/SignatureValidation\\/requireSignedRoot\\.parent", "css:finder"], - ["xpath=//div[@id='/metadataFilters/SignatureValidation/requireSignedRoot.parent']", "xpath:attributes"], - ["xpath=//checkbox-component/div/div/div", "xpath:position"] - ], - "value": "" }, { "id": "fdec5198-73f6-43d1-a16a-55686cb68efa", "comment": "", @@ -938,47 +970,17 @@ "target": "2000", "targets": [], "value": "" - }, { - "id": "c8b7c426-9afc-4fb0-8c09-211ae9ba0a62", - "comment": "", - "command": "click", - "target": "linkText=Dashboard", - "targets": [ - ["linkText=Dashboard", "linkText"], - ["css=.nav-item > .nav-link", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li[2]/a", "xpath:idRelative"], - ["xpath=//a[contains(@href, '/dashboard')]", "xpath:href"], - ["xpath=//li[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Dashboard')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "0ddad000-2e43-46f6-9558-6cb001a465dc", - "comment": "", - "command": "click", - "target": "linkText=Metadata Providers", - "targets": [ - ["linkText=Metadata Providers", "linkText"], - ["css=.nav > .nav-item:nth-child(2) > .nav-link", "css:finder"], - ["xpath=//a[contains(text(),'Metadata Providers')]", "xpath:link"], - ["xpath=//a[contains(@href, '/dashboard/metadata/manager/providers')]", "xpath:href"], - ["xpath=//dashboard-page/div/ul/li[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Metadata Providers')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "25583134-24c4-4fab-9a11-7e4cf0c05f1a", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" }, { "id": "1675c12e-8951-4d07-87b1-15e280699d66", "comment": "", "command": "waitForElementVisible", - "target": "css=tr:nth-child(2) .badge", - "targets": [], + "target": "css=tr:nth-child(2) > .align-middle:nth-child(2)", + "targets": [ + ["css=tr:nth-child(2) > .align-middle:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr[2]/td[2]", "xpath:idRelative"], + ["xpath=//tr[2]/td[2]", "xpath:position"], + ["xpath=//td[contains(.,'Test Provider 2')]", "xpath:innerText"] + ], "value": "10000" }, { "id": "b437068f-d3ed-43b5-9975-fb54decaf7ab", @@ -1008,6 +1010,24 @@ ["xpath=//a[contains(.,'Test Provider 2')]", "xpath:innerText"] ], "value": "Test Provider 2" + }, { + "id": "06dce737-90a1-4c29-ba5e-16dc9ce2b161", + "comment": "", + "command": "click", + "target": "xpath=//table/tbody/tr[2]/td[6]/span/div/input", + "targets": [ + ["css=tr:nth-child(1) .custom-control", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[6]/span/div", "xpath:idRelative"], + ["xpath=//span/div", "xpath:position"] + ], + "value": "" + }, { + "id": "56ddb945-e04d-4bf8-84d3-5157e96853f3", + "comment": "", + "command": "waitForElementVisible", + "target": "xpath=//li[contains(.,'Metadata provider has been enabled.')]", + "targets": [], + "value": "30000" }, { "id": "b799fede-c85b-4bd3-8e03-347f8a7d188a", "comment": "", @@ -1018,16 +1038,25 @@ ["xpath=//tr[2]/td/div/button[2]/i", "xpath:position"] ], "value": "" + }, { + "id": "dc866249-3245-4baa-af0e-55af28d270cf", + "comment": "", + "command": "pause", + "target": "5000", + "targets": [], + "value": "" }, { "id": "72123a28-c3be-478c-8f30-555e346837e2", "comment": "", - "command": "assertText", - "target": "css=.badge-success > span", + "command": "assertChecked", + "target": "xpath=//table/tbody/tr[1]/td[6]/span/div/input", "targets": [ - ["css=.badge-success > span", "css:finder"], - ["xpath=//tr[2]/td[6]/span/span", "xpath:position"] + ["css=tr:nth-child(2) > .text-right", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr[2]/td[6]", "xpath:idRelative"], + ["xpath=//tr[2]/td[6]", "xpath:position"], + ["xpath=//td[contains(.,'Enabled')]", "xpath:innerText"] ], - "value": "Enabled" + "value": "" }, { "id": "664aafa3-9f6f-4eab-9eb6-a4d1a8344c5c", "comment": "", @@ -1041,19 +1070,14 @@ }, { "id": "ad8842de-2a4c-42a4-b919-dd7524a679c6", "comment": "", - "command": "assertText", - "target": "css=.badge-danger > span", + "command": "assertNotChecked", + "target": "xpath=//table/tbody/tr[1]/td[6]/span/div/input", "targets": [ - ["css=.badge-danger > span", "css:finder"], - ["xpath=//tr[2]/td[6]/span/span", "xpath:position"] + ["css=tr:nth-child(2) > .text-right", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr[2]/td[6]", "xpath:idRelative"], + ["xpath=//tr[2]/td[6]", "xpath:position"], + ["xpath=//td[contains(.,'Disabled')]", "xpath:innerText"] ], - "value": "Disabled" - }, { - "id": "57d0e204-6c28-4be5-9888-28f8d7738508", - "comment": "", - "command": "close", - "target": "", - "targets": [], "value": "" }] }], diff --git a/backend/src/integration/resources/SHIBUI-1333.side b/backend/src/integration/resources/SHIBUI-1333.side index 2b2cde739..fc3873982 100644 --- a/backend/src/integration/resources/SHIBUI-1333.side +++ b/backend/src/integration/resources/SHIBUI-1333.side @@ -49,36 +49,83 @@ ["xpath=//tr[2]/td[2]/input", "xpath:position"] ], "value": "${KEY_ENTER}" + }, { + "id": "551d63f4-0f46-4064-ba4a-176ae576f62f", + "comment": "", + "command": "waitForElementVisible", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "1462b26b-ff44-43bb-a3c1-48758d90c91c", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "e1705d99-40fc-465d-b2d5-fecdf4a22b68", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "f4edebbc-bcae-4aee-b211-7bf1c02cad37", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "ad3811ad-f95b-4cca-a5d9-63a10063a652", "comment": "", "command": "click", - "target": "css=#addNewDropdown > translate-i18n", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=#addNewDropdown > translate-i18n", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/translate-i18n", "xpath:idRelative"], - ["xpath=//translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Add New')]", "xpath:innerText"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "1caf8be6-a4d9-4b3b-ace1-0f76d3600d62", "comment": "", "command": "click", - "target": "linkText=Metadata Source", + "target": "id=metadata-nav-dropdown-source", "targets": [ - ["linkText=Metadata Source", "linkText"], - ["css=.dropdown-menu > .nav-link:nth-child(1)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[2]", "xpath:href"], - ["xpath=//div/a", "xpath:position"] + ["id=metadata-nav-dropdown-source", "id"], + ["linkText=Add a new metadata source", "linkText"], + ["css=#metadata-nav-dropdown-source", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata source')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-source']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/source/new')]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata source')]", "xpath:innerText"] ], "value": "" + }, { + "id": "3aaf7544-cbc3-4048-ab8a-699463d698ac", + "comment": "", + "command": "waitForElementVisible", + "target": "id=root_serviceProviderName", + "targets": [ + ["id=root_serviceProviderName", "id"], + ["css=#root_serviceProviderName", "css:finder"], + ["xpath=//input[@id='root_serviceProviderName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "30000" }, { "id": "218e51fd-49e6-400b-9d7f-61bcd8e0c074", "comment": "", "command": "click", - "target": "id=/serviceProviderName", + "target": "id=root_serviceProviderName", "targets": [ ["id=/serviceProviderName", "id"], ["name=field1", "name"], @@ -91,7 +138,7 @@ "id": "9ee43e46-ab9e-46b1-8eb2-9718fb98bda2", "comment": "", "command": "type", - "target": "id=/serviceProviderName", + "target": "id=root_serviceProviderName", "targets": [ ["id=field1", "id"], ["name=field1", "name"], @@ -104,13 +151,13 @@ "id": "7fe7298b-275c-4797-8d1b-f4547b63eb02", "comment": "", "command": "type", - "target": "id=/entityId", + "target": "id=root_entityId", "targets": [ - ["id=/entityId", "id"], - ["name=field2", "name"], - ["css=#\\/entityId", "css:finder"], - ["xpath=//input[@id='/entityId']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_entityId", "id"], + ["css=#root_entityId", "css:finder"], + ["xpath=//input[@id='root_entityId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/div/form/div/div/div/div/div/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "test-1234" }, { @@ -127,12 +174,12 @@ "id": "4d88e469-df2f-40ee-a557-b5eafbc24ef3", "comment": "", "command": "click", - "target": "id=/organization/name", + "target": "id=root_organization_name", "targets": [ - ["id=/organization/name", "id"], - ["name=field5", "name"], - ["css=#\\/organization\\/name", "css:finder"], - ["xpath=//input[@id='/organization/name']", "xpath:attributes"], + ["id=root_organization_name", "id"], + ["css=#root_organization_name", "css:finder"], + ["xpath=//input[@id='root_organization_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -140,7 +187,7 @@ "id": "e0168286-af90-4c0a-a0ba-0dd97d64849b", "comment": "", "command": "type", - "target": "id=/organization/name", + "target": "id=root_organization_name", "targets": [ ["id=field5", "id"], ["name=field5", "name"], @@ -153,57 +200,59 @@ "id": "8f6dcf95-41e4-446a-a7fb-a064d928e1bc", "comment": "", "command": "type", - "target": "id=/organization/displayName", + "target": "id=root_organization_displayName", "targets": [ - ["id=/organization/displayName", "id"], - ["name=field6", "name"], - ["css=#\\/organization\\/displayName", "css:finder"], - ["xpath=//input[@id='/organization/displayName']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_organization_displayName", "id"], + ["css=#root_organization_displayName", "css:finder"], + ["xpath=//input[@id='root_organization_displayName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/input", "xpath:position"] ], "value": "Test Org Name" }, { "id": "7cc2068e-3fa3-4f1c-ac97-c63e78911b9e", "comment": "", "command": "type", - "target": "id=/organization/url", + "target": "id=root_organization_url", "targets": [ - ["id=/organization/url", "id"], - ["name=field7", "name"], - ["css=#\\/organization\\/url", "css:finder"], - ["xpath=//input[@id='/organization/url']", "xpath:attributes"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_organization_url", "id"], + ["css=#root_organization_url", "css:finder"], + ["xpath=//input[@id='root_organization_url']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "http://test.org" }, { "id": "1da05567-4f8d-4fd8-957a-bfddb2380bfb", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "5379b245-cd77-43c1-b424-3b6595c74174", "comment": "", "command": "click", - "target": "id=/contacts/0/name", + "target": "id=root_contacts_0_name", "targets": [ - ["id=/contacts/0/name", "id"], - ["name=field10", "name"], - ["css=#\\/contacts\\/0\\/name", "css:finder"], - ["xpath=//input[@id='/contacts/0/name']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_0_name", "id"], + ["css=#root_contacts_0_name", "css:finder"], + ["xpath=//input[@id='root_contacts_0_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "b658cae2-ba5a-406b-a48c-87d110ff4ed0", "comment": "", "command": "type", - "target": "id=/contacts/0/name", + "target": "id=root_contacts_0_name", "targets": [ ["id=field10", "id"], ["name=field10", "name"], @@ -216,12 +265,12 @@ "id": "3a2de62d-c1c1-43a7-a484-8a0d23bf301e", "comment": "", "command": "click", - "target": "id=/contacts/0/type", + "target": "id=root_contacts_0_type", "targets": [ - ["id=/contacts/0/type", "id"], - ["name=field11", "name"], - ["css=#\\/contacts\\/0\\/type", "css:finder"], - ["xpath=//select[@id='/contacts/0/type']", "xpath:attributes"], + ["id=root_contacts_0_type", "id"], + ["css=#root_contacts_0_type", "css:finder"], + ["xpath=//select[@id='root_contacts_0_type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], ["xpath=//select", "xpath:position"] ], "value": "" @@ -229,27 +278,27 @@ "id": "86e4e429-2a72-496a-add8-df2fc079d157", "comment": "", "command": "select", - "target": "id=/contacts/0/type", + "target": "id=root_contacts_0_type", "targets": [], - "value": "label=Technical" + "value": "label=technical" }, { "id": "95531b0b-c084-422d-bac9-60ee7e7a9f16", "comment": "", "command": "click", - "target": "id=/contacts/0/emailAddress", + "target": "id=root_contacts_0_emailAddress", "targets": [ - ["id=/contacts/0/emailAddress", "id"], - ["name=field12", "name"], - ["css=#\\/contacts\\/0\\/emailAddress", "css:finder"], - ["xpath=//input[@id='/contacts/0/emailAddress']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[3]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_0_emailAddress", "id"], + ["css=#root_contacts_0_emailAddress", "css:finder"], + ["xpath=//input[@id='root_contacts_0_emailAddress']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "e5d6662e-38d4-479f-b76b-c0c05fcabe15", "comment": "", "command": "type", - "target": "id=/contacts/0/emailAddress", + "target": "id=root_contacts_0_emailAddress", "targets": [ ["id=field12", "id"], ["name=field12", "name"], @@ -262,31 +311,33 @@ "id": "b4e3ea55-b4c0-4585-99fe-ac1534efadd8", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "234de758-df6d-47d7-af74-83aee3fa1e72", "comment": "", "command": "click", - "target": "id=/contacts/1/name", + "target": "id=root_contacts_1_name", "targets": [ - ["id=/contacts/1/name", "id"], - ["name=field14", "name"], - ["css=#\\/contacts\\/1\\/name", "css:finder"], - ["xpath=//input[@id='/contacts/1/name']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_1_name", "id"], + ["css=#root_contacts_1_name", "css:finder"], + ["xpath=//input[@id='root_contacts_1_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "02819e27-7aed-4a1a-867f-f8131c3897d8", "comment": "", "command": "type", - "target": "id=/contacts/1/name", + "target": "id=root_contacts_1_name", "targets": [ ["id=field14", "id"], ["name=field14", "name"], @@ -299,19 +350,20 @@ "id": "1d478856-8742-4627-acbe-daed2bb83abe", "comment": "", "command": "click", - "target": "id=/contacts/1/type", + "target": "id=root_contacts_1_type", "targets": [ - ["css=#field15 > option:nth-child(2)", "css:finder"], - ["xpath=(//option[@value='1: support'])[2]", "xpath:attributes"], - ["xpath=//select[@id='field15']/option[2]", "xpath:idRelative"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/select-component/div/select/option[2]", "xpath:position"] + ["id=root_contacts_1_type", "id"], + ["css=#root_contacts_1_type", "css:finder"], + ["xpath=//select[@id='root_contacts_1_type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:position"] ], "value": "" }, { "id": "9b4c76b4-3851-4aac-a9f5-67e20c36f174", "comment": "", "command": "select", - "target": "id=/contacts/1/type", + "target": "id=root_contacts_1_type", "targets": [ ["id=/contacts/1/type", "id"], ["name=field15", "name"], @@ -319,31 +371,31 @@ ["xpath=//select[@id='/contacts/1/type']", "xpath:attributes"], ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/select-component/div/select", "xpath:position"] ], - "value": "label=Support" + "value": "label=support" }, { "id": "5e3fddc1-786d-4040-8351-2f553e3c8811", "comment": "", "command": "click", - "target": "id=/contacts/1/emailAddress", + "target": "id=root_contacts_1_emailAddress", "targets": [ - ["id=/contacts/1/emailAddress", "id"], - ["name=field16", "name"], - ["css=#\\/contacts\\/1\\/emailAddress", "css:finder"], - ["xpath=//input[@id='/contacts/1/emailAddress']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[3]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_1_emailAddress", "id"], + ["css=#root_contacts_1_emailAddress", "css:finder"], + ["xpath=//input[@id='root_contacts_1_emailAddress']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "700d8907-6a65-43d5-aebf-60a392379534", "comment": "", "command": "type", - "target": "id=/contacts/1/emailAddress", + "target": "id=root_contacts_1_emailAddress", "targets": [ - ["id=field16", "id"], - ["name=field16", "name"], - ["css=#field16", "css:finder"], - ["xpath=//input[@id='field16']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[3]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_1_emailAddress", "id"], + ["css=#root_contacts_1_emailAddress", "css:finder"], + ["xpath=//input[@id='root_contacts_1_emailAddress']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:position"] ], "value": "user2@test.org" }, { @@ -360,12 +412,12 @@ "id": "f38b7fca-0c0c-4658-9df6-10a26881c6a5", "comment": "", "command": "click", - "target": "id=/mdui/displayName", + "target": "id=root_mdui_displayName", "targets": [ - ["id=/mdui/displayName", "id"], - ["name=field19", "name"], - ["css=#\\/mdui\\/displayName", "css:finder"], - ["xpath=//input[@id='/mdui/displayName']", "xpath:attributes"], + ["id=root_mdui_displayName", "id"], + ["css=#root_mdui_displayName", "css:finder"], + ["xpath=//input[@id='root_mdui_displayName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -373,7 +425,7 @@ "id": "c03c4582-e1f1-449f-9a79-300d48ad69d8", "comment": "", "command": "type", - "target": "id=/mdui/displayName", + "target": "id=root_mdui_displayName", "targets": [ ["id=field19", "id"], ["name=field19", "name"], @@ -386,25 +438,25 @@ "id": "5098507c-fa51-4c13-b9a3-381034e0fa52", "comment": "", "command": "type", - "target": "id=/mdui/informationUrl", + "target": "id=root_mdui_informationUrl", "targets": [ - ["id=/mdui/informationUrl", "id"], - ["name=field20", "name"], - ["css=#\\/mdui\\/informationUrl", "css:finder"], - ["xpath=//input[@id='/mdui/informationUrl']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_mdui_informationUrl", "id"], + ["css=#root_mdui_informationUrl", "css:finder"], + ["xpath=//input[@id='root_mdui_informationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "http://test.org/info" }, { "id": "d5de3699-5a18-4abe-a2ea-0a2b7565c525", "comment": "", "command": "type", - "target": "id=/mdui/description", + "target": "id=root_mdui_description", "targets": [ - ["id=/mdui/description", "id"], - ["name=field21", "name"], - ["css=#\\/mdui\\/description", "css:finder"], - ["xpath=//textarea[@id='/mdui/description']", "xpath:attributes"], + ["id=root_mdui_description", "id"], + ["css=#root_mdui_description", "css:finder"], + ["xpath=//textarea[@id='root_mdui_description']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div[3]/div/div/textarea", "xpath:idRelative"], ["xpath=//textarea", "xpath:position"] ], "value": "This is a description." @@ -412,20 +464,20 @@ "id": "115bb9a9-e991-4cf0-8bcb-363d9dc3c269", "comment": "", "command": "click", - "target": "id=/mdui/privacyStatementUrl", + "target": "id=root_mdui_privacyStatementUrl", "targets": [ - ["id=/mdui/privacyStatementUrl", "id"], - ["name=field22", "name"], - ["css=#\\/mdui\\/privacyStatementUrl", "css:finder"], - ["xpath=//input[@id='/mdui/privacyStatementUrl']", "xpath:attributes"], - ["xpath=//fieldset[2]/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_mdui_privacyStatementUrl", "id"], + ["css=#root_mdui_privacyStatementUrl", "css:finder"], + ["xpath=//input[@id='root_mdui_privacyStatementUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "df623bef-a1fc-48ff-aa93-05e0da85ef51", "comment": "", "command": "type", - "target": "id=/mdui/privacyStatementUrl", + "target": "id=root_mdui_privacyStatementUrl", "targets": [ ["id=field22", "id"], ["name=field22", "name"], @@ -438,39 +490,39 @@ "id": "ed17408b-a763-4e5d-86cd-efe575df8d08", "comment": "", "command": "type", - "target": "id=/mdui/logoUrl", + "target": "id=root_mdui_logoUrl", "targets": [ - ["id=/mdui/logoUrl", "id"], - ["name=field23", "name"], - ["css=#\\/mdui\\/logoUrl", "css:finder"], - ["xpath=//input[@id='/mdui/logoUrl']", "xpath:attributes"], - ["xpath=//fieldset[2]/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_mdui_logoUrl", "id"], + ["css=#root_mdui_logoUrl", "css:finder"], + ["xpath=//input[@id='root_mdui_logoUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div[2]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div/input", "xpath:position"] ], "value": "http://test.org/logo" }, { "id": "2946a968-7289-43e5-820d-b1aee442ce96", "comment": "", "command": "type", - "target": "id=/mdui/logoWidth", + "target": "id=root_mdui_logoWidth", "targets": [ - ["id=/mdui/logoWidth", "id"], - ["name=field24", "name"], - ["css=#\\/mdui\\/logoWidth", "css:finder"], - ["xpath=//input[@id='/mdui/logoWidth']", "xpath:attributes"], - ["xpath=//integer-component/div/input", "xpath:position"] + ["id=root_mdui_logoWidth", "id"], + ["css=#root_mdui_logoWidth", "css:finder"], + ["xpath=//input[@id='root_mdui_logoWidth']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div[2]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] ], "value": "200" }, { "id": "ceec5477-13d4-4ab4-944e-a2a34a9b4510", "comment": "", "command": "type", - "target": "id=/mdui/logoHeight", + "target": "id=root_mdui_logoHeight", "targets": [ - ["id=/mdui/logoHeight", "id"], - ["name=field25", "name"], - ["css=#\\/mdui\\/logoHeight", "css:finder"], - ["xpath=//input[@id='/mdui/logoHeight']", "xpath:attributes"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/integer-component/div/input", "xpath:position"] + ["id=root_mdui_logoHeight", "id"], + ["css=#root_mdui_logoHeight", "css:finder"], + ["xpath=//input[@id='root_mdui_logoHeight']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div[2]/div[3]/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/input", "xpath:position"] ], "value": "300" }, { @@ -487,20 +539,20 @@ "id": "88054c63-d468-4340-b4d3-c69fb6ed6f96", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/protocolSupportEnum", + "target": "id=root_serviceProviderSsoDescriptor_protocolSupportEnum", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: SAML 2']", "xpath:attributes"], - ["xpath=//select[@id='field28']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'SAML 2')]", "xpath:innerText"] + ["id=root_serviceProviderSsoDescriptor_protocolSupportEnum", "id"], + ["css=#root_serviceProviderSsoDescriptor_protocolSupportEnum", "css:finder"], + ["xpath=//select[@id='root_serviceProviderSsoDescriptor_protocolSupportEnum']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], "value": "" }, { "id": "c77b3648-fce1-46f9-aec9-ca88c90d4c92", "comment": "", "command": "select", - "target": "id=/serviceProviderSsoDescriptor/protocolSupportEnum", + "target": "id=root_serviceProviderSsoDescriptor_protocolSupportEnum", "targets": [ ["id=/serviceProviderSsoDescriptor/protocolSupportEnum", "id"], ["name=field28", "name"], @@ -513,11 +565,13 @@ "id": "aec93dce-3142-4df3-b09d-735c70d1197b", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -531,13 +585,12 @@ "id": "a0102f51-f1d8-4c38-9170-482022ea7397", "comment": "", "command": "click", - "target": "css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/0-container .btn", + "target": "css=.toggle-button", "targets": [ - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/0-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/serviceProviderSsoDescriptor/nameIdFormats/0-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -551,20 +604,23 @@ "id": "9033e5ad-4255-4aa7-a878-c7beab69ee8e", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/0__option--0", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0-item-0", "targets": [ - ["id=/serviceProviderSsoDescriptor/nameIdFormats/0__option--0", "id"], - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/0__option--0", "css:finder"], - ["xpath=//li[@id='/serviceProviderSsoDescriptor/nameIdFormats/0__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/serviceProviderSsoDescriptor/nameIdFormats/0__listbox']/li", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li", "xpath:position"] + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0-item-0", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified')]", "xpath:innerText"] ], "value": "" }, { "id": "c21b1d7a-9325-4d70-887d-387c7a042c08", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ ["css=.btn-success > translate-i18n", "css:finder"], ["xpath=//div/button/translate-i18n", "xpath:position"] @@ -581,12 +637,12 @@ "id": "c1534880-c4e5-4fbd-b200-c28f9f556ab9", "comment": "", "command": "click", - "target": "css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/1-container .btn", + "target": "css=.mt-2:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/1-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/serviceProviderSsoDescriptor/nameIdFormats/1-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -600,20 +656,23 @@ "id": "d07b2d83-3699-4f48-90e8-6fc883d3a02a", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/1__option--1", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1-item-1", "targets": [ - ["id=/serviceProviderSsoDescriptor/nameIdFormats/1__option--1", "id"], - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/1__option--1", "css:finder"], - ["xpath=//li[@id='/serviceProviderSsoDescriptor/nameIdFormats/1__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/serviceProviderSsoDescriptor/nameIdFormats/1__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[2]", "xpath:position"] + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1-item-1", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress')]", "xpath:innerText"] ], "value": "" }, { "id": "2c77ecbc-45cc-471c-9e39-f87ec06a9385", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ ["css=.btn-success", "css:finder"], ["xpath=//div/button", "xpath:position"], @@ -631,12 +690,12 @@ "id": "97a98737-862d-4567-8b20-c5c991444ed0", "comment": "", "command": "click", - "target": "css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/2-container .btn", + "target": "css=.mt-2:nth-child(3) .toggle-button", "targets": [ - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/2-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], - ["xpath=//div[@id='/serviceProviderSsoDescriptor/nameIdFormats/2-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(3) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -650,20 +709,23 @@ "id": "686e004c-2b0f-4308-8622-b04bc05a50a9", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/2__option--2", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2-item-2", "targets": [ - ["id=/serviceProviderSsoDescriptor/nameIdFormats/2__option--2", "id"], - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/2__option--2", "css:finder"], - ["xpath=//li[@id='/serviceProviderSsoDescriptor/nameIdFormats/2__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/serviceProviderSsoDescriptor/nameIdFormats/2__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2-item-2", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent')]", "xpath:innerText"] ], "value": "" }, { - "id": "104367d3-f250-4439-8721-32dcf9f25e0c", + "id": "46495c5c-43ff-438a-814e-dbfc0b8da51e", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ ["css=.btn-success", "css:finder"], ["xpath=//div/button", "xpath:position"], @@ -681,12 +743,12 @@ "id": "e2e8d5d4-8b6a-42d5-9fe7-abb8a84216e3", "comment": "", "command": "click", - "target": "css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/3-container .btn", + "target": "css=.mt-2:nth-child(4) .toggle-button", "targets": [ - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/3-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], - ["xpath=//div[@id='/serviceProviderSsoDescriptor/nameIdFormats/3-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(4) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[15]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div[2]/div[4]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -700,38 +762,57 @@ "id": "b6ac5230-772b-44bc-b9d1-6ae8a58e0368", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/3__option--3", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3-item-3", "targets": [ - ["id=/serviceProviderSsoDescriptor/nameIdFormats/3__option--3", "id"], - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/3__option--3", "css:finder"], - ["xpath=//li[@id='/serviceProviderSsoDescriptor/nameIdFormats/3__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/serviceProviderSsoDescriptor/nameIdFormats/3__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3-item-3", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:transient", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:transient')]", "xpath:innerText"] ], "value": "" }, { "id": "d135ef80-69d8-4cd1-b581-5e1973342082", "comment": "", "command": "click", - "target": "css=.btn-success > translate-i18n", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.rjsf > .form-group > div > .p-0 > .row", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div", "xpath:idRelative"], + ["xpath=//form/div/div/div/div", "xpath:position"] ], "value": "" }, { "id": "23fd8856-32df-48ed-a198-a74e8ca71b10", "comment": "", "command": "type", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/4", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[5]/div/div[1]/div/div[2]/div/div/div[1]/div/div/div[2]/div[5]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ - ["id=field34", "id"], - ["css=#field34", "css:finder"], - ["xpath=//input[@id='field34']", "xpath:attributes"], - ["xpath=//div[@id='field34-container']/div/input", "xpath:idRelative"], - ["xpath=//li[5]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] + ["css=.focus", "css:finder"], + ["xpath=(//input[@value=''])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div[2]/div[5]/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "somethingElse" + }, { + "id": "6f0363e3-cd0b-45cc-8210-7cad7c29997e", + "comment": "", + "command": "click", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4-item-4", + "targets": [ + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4-item-4", "id"], + ["linkText=somethingElse", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4-item-4", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4-item-4']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4']/a[5]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[5]", "xpath:href"], + ["xpath=//a[5]", "xpath:position"], + ["xpath=//a[contains(.,'somethingElse')]", "xpath:innerText"] + ], + "value": "" }, { "id": "4f61120b-7c6b-4f8e-8543-898298451a56", "comment": "", @@ -746,23 +827,25 @@ "id": "0de0345e-c9d2-4904-b797-a36965c5d82c", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "62ade28b-19d4-4c54-b179-0d36312c578f", "comment": "", "command": "click", - "target": "id=/logoutEndpoints/0/url", + "target": "id=root_logoutEndpoints_0_url", "targets": [ - ["id=/logoutEndpoints/0/url", "id"], - ["name=field38", "name"], - ["css=#\\/logoutEndpoints\\/0\\/url", "css:finder"], - ["xpath=//input[@id='/logoutEndpoints/0/url']", "xpath:attributes"], + ["id=root_logoutEndpoints_0_url", "id"], + ["css=#root_logoutEndpoints_0_url", "css:finder"], + ["xpath=//input[@id='root_logoutEndpoints_0_url']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -770,7 +853,7 @@ "id": "517e5991-197d-42fd-86ff-4da5fd04949b", "comment": "", "command": "type", - "target": "id=/logoutEndpoints/0/url", + "target": "id=root_logoutEndpoints_0_url", "targets": [ ["id=field38", "id"], ["name=field38", "name"], @@ -783,20 +866,20 @@ "id": "034f6a60-6b2d-42f1-adb4-515c8a750953", "comment": "", "command": "click", - "target": "id=/logoutEndpoints/0/bindingType", + "target": "id=root_logoutEndpoints_0_bindingType", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST']", "xpath:attributes"], - ["xpath=//select[@id='field39']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST')]", "xpath:innerText"] + ["id=root_logoutEndpoints_0_bindingType", "id"], + ["css=#root_logoutEndpoints_0_bindingType", "css:finder"], + ["xpath=//select[@id='root_logoutEndpoints_0_bindingType']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], "value": "" }, { "id": "6967d0bb-dbf7-4f57-9e55-6de71abd69c1", "comment": "", "command": "select", - "target": "id=/logoutEndpoints/0/bindingType", + "target": "id=root_logoutEndpoints_0_bindingType", "targets": [ ["id=/logoutEndpoints/0/bindingType", "id"], ["name=field39", "name"], @@ -809,7 +892,7 @@ "id": "542f9b37-a63d-4acb-ba3e-2ac3706b6667", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ ["css=.btn-success > translate-i18n", "css:finder"], ["xpath=//div/button/translate-i18n", "xpath:position"] @@ -819,20 +902,20 @@ "id": "39dedb16-bcd2-496a-af85-7d20a129593b", "comment": "", "command": "click", - "target": "id=/logoutEndpoints/1/url", + "target": "id=root_logoutEndpoints_1_url", "targets": [ - ["id=/logoutEndpoints/1/url", "id"], - ["name=field41", "name"], - ["css=#\\/logoutEndpoints\\/1\\/url", "css:finder"], - ["xpath=//input[@id='/logoutEndpoints/1/url']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_logoutEndpoints_1_url", "id"], + ["css=#root_logoutEndpoints_1_url", "css:finder"], + ["xpath=//input[@id='root_logoutEndpoints_1_url']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "d25f708c-f72a-4fb7-88c1-a25a61d9f72a", "comment": "", "command": "type", - "target": "id=/logoutEndpoints/1/url", + "target": "id=root_logoutEndpoints_1_url", "targets": [ ["id=field41", "id"], ["name=field41", "name"], @@ -845,19 +928,20 @@ "id": "bee9600e-b6db-484a-9b87-d7c657911108", "comment": "", "command": "click", - "target": "id=/logoutEndpoints/1/bindingType", + "target": "id=root_logoutEndpoints_1_bindingType", "targets": [ - ["css=#field42 > option:nth-child(3)", "css:finder"], - ["xpath=(//option[@value='2: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redir'])[2]", "xpath:attributes"], - ["xpath=//select[@id='field42']/option[3]", "xpath:idRelative"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/select-component/div/select/option[3]", "xpath:position"] + ["id=root_logoutEndpoints_1_bindingType", "id"], + ["css=#root_logoutEndpoints_1_bindingType", "css:finder"], + ["xpath=//select[@id='root_logoutEndpoints_1_bindingType']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:position"] ], "value": "" }, { "id": "e0e7ef9b-4ed1-4df2-b501-9cbb855baa7f", "comment": "", "command": "select", - "target": "id=/logoutEndpoints/1/bindingType", + "target": "id=root_logoutEndpoints_1_bindingType", "targets": [ ["id=/logoutEndpoints/1/bindingType", "id"], ["name=field42", "name"], @@ -876,60 +960,52 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "6c794e94-9c64-4683-816a-380432f2ed79", - "comment": "", - "command": "click", - "target": "id=/securityInfo/x509CertificateAvailable.true", - "targets": [ - ["id=/securityInfo/x509CertificateAvailable.true", "id"], - ["css=#\\/securityInfo\\/x509CertificateAvailable\\.true", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509CertificateAvailable.true']", "xpath:attributes"], - ["xpath=//input", "xpath:position"] - ], - "value": "" }, { "id": "f0ade90e-2c31-4a77-b936-3b2a00388477", "comment": "", "command": "click", - "target": "id=/securityInfo/authenticationRequestsSigned.true", + "target": "id=root_securityInfo_authenticationRequestsSigned-value.true", "targets": [ - ["id=/securityInfo/authenticationRequestsSigned.true", "id"], - ["css=#\\/securityInfo\\/authenticationRequestsSigned\\.true", "css:finder"], - ["xpath=//input[@id='/securityInfo/authenticationRequestsSigned.true']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div/label/input", "xpath:position"] + ["id=root_securityInfo_authenticationRequestsSigned-value.true", "id"], + ["name=root_securityInfo_authenticationRequestsSigned", "name"], + ["css=#root_securityInfo_authenticationRequestsSigned-value\\.true", "css:finder"], + ["xpath=//input[@id='root_securityInfo_authenticationRequestsSigned-value.true']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { "id": "e26eda6f-1897-42e2-9ea9-671b1ff88874", "comment": "", "command": "click", - "target": "id=/securityInfo/wantAssertionsSigned.true", + "target": "id=root_securityInfo_wantAssertionsSigned-value.true", "targets": [ - ["id=/securityInfo/wantAssertionsSigned.true", "id"], - ["css=#\\/securityInfo\\/wantAssertionsSigned\\.true", "css:finder"], - ["xpath=//input[@id='/securityInfo/wantAssertionsSigned.true']", "xpath:attributes"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div/label/input", "xpath:position"] + ["id=root_securityInfo_wantAssertionsSigned-value.true", "id"], + ["name=root_securityInfo_wantAssertionsSigned", "name"], + ["css=#root_securityInfo_wantAssertionsSigned-value\\.true", "css:finder"], + ["xpath=//input[@id='root_securityInfo_wantAssertionsSigned-value.true']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "3e11e54a-1b36-43ed-a8e5-d91f1fbed991", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/0/name", + "target": "id=root_securityInfo_x509Certificates_0_name", "targets": [ - ["id=/securityInfo/x509Certificates/0/name", "id"], - ["name=field50", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/0\\/name", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509Certificates/0/name']", "xpath:attributes"], - ["xpath=//div/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_0_name", "id"], + ["css=#root_securityInfo_x509Certificates_0_name", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_0_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "5acb8e19-16a3-4139-a961-1b58c11c4681", "comment": "", "command": "type", - "target": "id=/securityInfo/x509Certificates/0/name", + "target": "id=root_securityInfo_x509Certificates_0_name", "targets": [ ["id=field50", "id"], ["name=field50", "name"], @@ -942,25 +1018,26 @@ "id": "23ff8b87-ac6c-4f82-a779-aa91be11f49c", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/0/type.0", + "target": "id=root_securityInfo_x509Certificates_0_type-signing", "targets": [ - ["id=/securityInfo/x509Certificates/0/type.0", "id"], - ["name=field55", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/0\\/type\\.0", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509Certificates/0/type.0']", "xpath:attributes"], - ["xpath=//div/div/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_0_type-signing", "id"], + ["name=root_securityInfo_x509Certificates_0_type", "name"], + ["css=#root_securityInfo_x509Certificates_0_type-signing", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_0_type-signing']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "dd15088c-ddc9-42fd-8f8d-f73338be71b6", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/0/value", + "target": "id=root_securityInfo_x509Certificates_0_value", "targets": [ - ["id=/securityInfo/x509Certificates/0/value", "id"], - ["name=field52", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/0\\/value", "css:finder"], - ["xpath=//textarea[@id='/securityInfo/x509Certificates/0/value']", "xpath:attributes"], + ["id=root_securityInfo_x509Certificates_0_value", "id"], + ["css=#root_securityInfo_x509Certificates_0_value", "css:finder"], + ["xpath=//textarea[@id='root_securityInfo_x509Certificates_0_value']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/textarea", "xpath:idRelative"], ["xpath=//textarea", "xpath:position"] ], "value": "" @@ -968,7 +1045,7 @@ "id": "813bf709-6c73-41ac-837a-5be076fa43c7", "comment": "", "command": "type", - "target": "id=/securityInfo/x509Certificates/0/value", + "target": "id=root_securityInfo_x509Certificates_0_value", "targets": [ ["name=field52", "name"], ["css=.text-widget", "css:finder"], @@ -980,30 +1057,33 @@ "id": "fcf4cc15-54f4-4add-a093-e7ba5f2dc556", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[8]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "cbe577f6-3d18-49d9-95ab-2e597e5308a6", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/1/name", + "target": "id=root_securityInfo_x509Certificates_1_name", "targets": [ - ["id=/securityInfo/x509Certificates/1/name", "id"], - ["name=field54", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/1\\/name", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509Certificates/1/name']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_1_name", "id"], + ["css=#root_securityInfo_x509Certificates_1_name", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_1_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "ae98e813-77f4-424e-9141-d48e6127d9b6", "comment": "", "command": "type", - "target": "id=/securityInfo/x509Certificates/1/name", + "target": "id=root_securityInfo_x509Certificates_1_name", "targets": [ ["id=field54", "id"], ["name=field54", "name"], @@ -1016,32 +1096,33 @@ "id": "835ad053-0a10-4606-a148-c7ba36be316f", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/1/type.1", + "target": "id=root_securityInfo_x509Certificates_1_type-encryption", "targets": [ - ["id=/securityInfo/x509Certificates/1/type.1", "id"], - ["css=#\\/securityInfo\\/x509Certificates\\/1\\/type\\.1", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509Certificates/1/type.1']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-radio-widget/div/div[2]/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_1_type-encryption", "id"], + ["css=#root_securityInfo_x509Certificates_1_type-encryption", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_1_type-encryption']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "e272cafa-3aba-4aff-972e-b1d45e627b88", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/1/value", + "target": "id=root_securityInfo_x509Certificates_1_value", "targets": [ - ["id=/securityInfo/x509Certificates/1/value", "id"], - ["name=field56", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/1\\/value", "css:finder"], - ["xpath=//textarea[@id='/securityInfo/x509Certificates/1/value']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[3]/sf-form-element/div/sf-widget-chooser/textarea-component/div/textarea", "xpath:position"] + ["id=root_securityInfo_x509Certificates_1_value", "id"], + ["css=#root_securityInfo_x509Certificates_1_value", "css:finder"], + ["xpath=//textarea[@id='root_securityInfo_x509Certificates_1_value']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/textarea", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/textarea", "xpath:position"] ], "value": "" }, { "id": "ae42d668-92ba-4cb8-9daf-a2a64ac18404", "comment": "", "command": "type", - "target": "id=/securityInfo/x509Certificates/1/value", + "target": "id=root_securityInfo_x509Certificates_1_value", "targets": [ ["name=field56", "name"], ["css=.ng-untouched:nth-child(3)", "css:finder"], @@ -1063,23 +1144,25 @@ "id": "573c9f4c-c677-4175-96c5-3aaaf86e5ac1", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "50c1a3a1-b51c-41f9-81ff-d3d2894861ad", "comment": "", "command": "click", - "target": "id=/assertionConsumerServices/0/locationUrl", + "target": "id=root_assertionConsumerServices_0_locationUrl", "targets": [ - ["id=/assertionConsumerServices/0/locationUrl", "id"], - ["name=field60", "name"], - ["css=#\\/assertionConsumerServices\\/0\\/locationUrl", "css:finder"], - ["xpath=//input[@id='/assertionConsumerServices/0/locationUrl']", "xpath:attributes"], + ["id=root_assertionConsumerServices_0_locationUrl", "id"], + ["css=#root_assertionConsumerServices_0_locationUrl", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_0_locationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -1087,7 +1170,7 @@ "id": "6ff4002a-1c57-4778-b402-f917efaa5194", "comment": "", "command": "type", - "target": "id=/assertionConsumerServices/0/locationUrl", + "target": "id=root_assertionConsumerServices_0_locationUrl", "targets": [ ["id=field60", "id"], ["name=field60", "name"], @@ -1100,20 +1183,20 @@ "id": "e81c5045-98c3-499c-bff5-2645efa4c55d", "comment": "", "command": "click", - "target": "id=/assertionConsumerServices/0/binding", + "target": "id=root_assertionConsumerServices_0_binding", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST']", "xpath:attributes"], - ["xpath=//select[@id='field61']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST')]", "xpath:innerText"] + ["id=root_assertionConsumerServices_0_binding", "id"], + ["css=#root_assertionConsumerServices_0_binding", "css:finder"], + ["xpath=//select[@id='root_assertionConsumerServices_0_binding']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], "value": "" }, { "id": "24c810c8-747a-4ae2-91e5-16685d589f21", "comment": "", "command": "select", - "target": "id=/assertionConsumerServices/0/binding", + "target": "id=root_assertionConsumerServices_0_binding", "targets": [ ["id=/assertionConsumerServices/0/binding", "id"], ["name=field61", "name"], @@ -1126,18 +1209,20 @@ "id": "c221b1f5-2961-4cbd-a545-1e34a09b8153", "comment": "", "command": "click", - "target": "css=.custom-control-label", + "target": "id=root_assertionConsumerServices_0_makeDefault", "targets": [ - ["css=.custom-control-label", "css:finder"], - ["xpath=//div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Mark as Default')]", "xpath:innerText"] + ["id=root_assertionConsumerServices_0_makeDefault", "id"], + ["css=#root_assertionConsumerServices_0_makeDefault", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_0_makeDefault']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "cb058717-f20f-4a54-81e5-9a7dcf66ec0e", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ ["css=.btn-success > translate-i18n", "css:finder"], ["xpath=//div/button/translate-i18n", "xpath:position"] @@ -1147,20 +1232,20 @@ "id": "f9998203-830b-44d3-8392-45b737544177", "comment": "", "command": "click", - "target": "id=/assertionConsumerServices/1/locationUrl", + "target": "id=root_assertionConsumerServices_1_locationUrl", "targets": [ - ["id=/assertionConsumerServices/1/locationUrl", "id"], - ["name=field64", "name"], - ["css=#\\/assertionConsumerServices\\/1\\/locationUrl", "css:finder"], - ["xpath=//input[@id='/assertionConsumerServices/1/locationUrl']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_assertionConsumerServices_1_locationUrl", "id"], + ["css=#root_assertionConsumerServices_1_locationUrl", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_1_locationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "d5cbf5e8-7c5b-45f7-8645-dd9f9d39922e", "comment": "", "command": "type", - "target": "id=/assertionConsumerServices/1/locationUrl", + "target": "id=root_assertionConsumerServices_1_locationUrl", "targets": [ ["id=field64", "id"], ["name=field64", "name"], @@ -1173,19 +1258,20 @@ "id": "74de4187-3d1e-4a4d-af8e-966f00649ab8", "comment": "", "command": "click", - "target": "id=/assertionConsumerServices/1/binding", + "target": "id=root_assertionConsumerServices_1_binding", "targets": [ - ["css=#field65 > option:nth-child(3)", "css:finder"], - ["xpath=(//option[@value='2: urn:oasis:names:tc:SAML:1.0:profiles:browser-po'])[2]", "xpath:attributes"], - ["xpath=//select[@id='field65']/option[3]", "xpath:idRelative"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/select-component/div/select/option[3]", "xpath:position"] + ["id=root_assertionConsumerServices_1_binding", "id"], + ["css=#root_assertionConsumerServices_1_binding", "css:finder"], + ["xpath=//select[@id='root_assertionConsumerServices_1_binding']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:position"] ], "value": "" }, { "id": "929c1047-f455-418b-b23e-a383d681f028", "comment": "", "command": "select", - "target": "id=/assertionConsumerServices/1/binding", + "target": "id=root_assertionConsumerServices_1_binding", "targets": [ ["id=/assertionConsumerServices/1/binding", "id"], ["name=field65", "name"], @@ -1208,85 +1294,98 @@ "id": "134bf1f3-1e86-49e7-91de-185e513b02be", "comment": "", "command": "click", - "target": "css=div:nth-child(1) > sf-form-element > .has-success .custom-control-label", + "target": "id=root_relyingPartyOverrides_signAssertion", "targets": [ - ["css=div:nth-child(1) > sf-form-element > .has-success .custom-control-label", "css:finder"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Sign the Assertion?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_signAssertion", "id"], + ["css=#root_relyingPartyOverrides_signAssertion", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_signAssertion']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { "id": "5cd1ae5f-678a-4be8-a03f-b290006e52fe", "comment": "", "command": "click", - "target": "css=div:nth-child(2) > sf-form-element .custom-control-label", + "target": "id=root_relyingPartyOverrides_dontSignResponse", "targets": [ - ["css=div:nth-child(2) > sf-form-element .custom-control-label", "css:finder"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"] + ["id=root_relyingPartyOverrides_dontSignResponse", "id"], + ["css=#root_relyingPartyOverrides_dontSignResponse", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_dontSignResponse']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "5895d555-6ef5-4344-b177-00e905f9007c", "comment": "", "command": "click", - "target": "css=div:nth-child(3) > sf-form-element .custom-control-label", + "target": "id=root_relyingPartyOverrides_turnOffEncryption", "targets": [ - ["css=div:nth-child(3) > sf-form-element .custom-control-label", "css:finder"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Turn off Encryption of Response?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_turnOffEncryption", "id"], + ["css=#root_relyingPartyOverrides_turnOffEncryption", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_turnOffEncryption']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[3]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "8d834380-e312-494d-9b4b-c5b798cc9b15", "comment": "", "command": "click", - "target": "css=div:nth-child(4) .custom-control-label", + "target": "id=root_relyingPartyOverrides_useSha", "targets": [ - ["css=div:nth-child(4) .custom-control-label", "css:finder"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Use SHA1 Signing Algorithm?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_useSha", "id"], + ["css=#root_relyingPartyOverrides_useSha", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_useSha']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[4]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "bcf532a9-ba5a-4ca1-a342-dde53bc4a592", "comment": "", "command": "click", - "target": "css=div:nth-child(5) .custom-control-label", + "target": "id=root_relyingPartyOverrides_ignoreAuthenticationMethod", "targets": [ - ["css=div:nth-child(5) .custom-control-label", "css:finder"], - ["xpath=//div[5]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Ignore any SP-Requested Authentication Method?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_ignoreAuthenticationMethod", "id"], + ["css=#root_relyingPartyOverrides_ignoreAuthenticationMethod", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_ignoreAuthenticationMethod']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[5]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "45f3df44-1c34-4649-aedb-14207e9ce999", "comment": "", "command": "click", - "target": "css=div:nth-child(6) .custom-control-label", + "target": "id=root_relyingPartyOverrides_omitNotBefore", "targets": [ - ["css=div:nth-child(6) .custom-control-label", "css:finder"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Omit Not Before Condition?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_omitNotBefore", "id"], + ["css=#root_relyingPartyOverrides_omitNotBefore", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_omitNotBefore']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[6]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "7ccb7d88-b113-4ee9-8582-b3d781fa8846", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/responderId", + "target": "id=root_relyingPartyOverrides_responderId", "targets": [ - ["id=/relyingPartyOverrides/responderId", "id"], - ["name=field121", "name"], - ["css=#\\/relyingPartyOverrides\\/responderId", "css:finder"], - ["xpath=//input[@id='/relyingPartyOverrides/responderId']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_relyingPartyOverrides_responderId", "id"], + ["css=#root_relyingPartyOverrides_responderId", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_responderId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[7]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "afe1b839-3421-4816-bf69-c804add681ba", "comment": "", "command": "type", - "target": "id=/relyingPartyOverrides/responderId", + "target": "id=root_relyingPartyOverrides_responderId", "targets": [ ["id=field75", "id"], ["name=field75", "name"], @@ -1299,10 +1398,13 @@ "id": "ba74d18d-0996-485f-8a9f-01a39428eb0c", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ - ["css=div:nth-child(8) .btn > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.row:nth-child(8) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -1316,13 +1418,12 @@ "id": "2a91666b-5453-4064-8923-c3384835b6fd", "comment": "", "command": "click", - "target": "css=.btn-outline-secondary", + "target": "css=.toggle-button", "targets": [ - ["css=.btn-outline-secondary", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/0-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[15]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div[2]/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1336,20 +1437,23 @@ "id": "6e8718ef-e053-48d8-91e5-f5128e371f56", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/0__option--0", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/0__option--0", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/0__option--0", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/0__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/0__listbox']/li", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_0']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified')]", "xpath:innerText"] ], "value": "" }, { "id": "ec3afb37-30b4-4d07-93a6-dcf022605532", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], ["xpath=//div/button", "xpath:position"], @@ -1367,12 +1471,12 @@ "id": "fd33610c-dbca-410d-b2a4-117a1b2b6a79", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/nameIdFormats\\/1-container .btn", + "target": "css=.mt-2:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/1-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/1-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[17]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1386,20 +1490,23 @@ "id": "3cd47415-5e57-4148-a40b-9571e6791f3f", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/1__option--1", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/1__option--1", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/1__option--1", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/1__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/1__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[2]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_1']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress')]", "xpath:innerText"] ], "value": "" }, { "id": "8b340d1f-4944-4d10-a4cd-5e79be6804ef", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], ["xpath=//div/button", "xpath:position"], @@ -1417,12 +1524,12 @@ "id": "208b33cf-f983-4a82-9b1b-19cdf2a937fc", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/nameIdFormats\\/2-container .btn", + "target": "css=.mt-2:nth-child(3) .toggle-button", "targets": [ - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/2-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/2-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(3) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[19]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1436,20 +1543,23 @@ "id": "b4beb2b3-8481-4431-9299-a39a4107f17f", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/2__option--2", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/2__option--2", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/2__option--2", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/2__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/2__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_2']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent')]", "xpath:innerText"] ], "value": "" }, { "id": "d6e7a640-a578-415b-9c1b-b2313b62ad46", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], ["xpath=//div/button", "xpath:position"], @@ -1467,12 +1577,12 @@ "id": "788a5b63-a75f-4aeb-9a5d-17c41e8f718e", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/nameIdFormats\\/3-container .btn", + "target": "css=.mt-2:nth-child(4) .toggle-button", "targets": [ - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/3-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/3-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(4) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[21]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div[2]/div[4]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1486,20 +1596,23 @@ "id": "c82d6951-13e2-4d32-9e19-eac52bfdc188", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/3__option--3", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/3__option--3", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/3__option--3", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/3__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/3__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:transient", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_3']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:transient')]", "xpath:innerText"] ], "value": "" }, { "id": "4c15be93-75be-4673-b703-07a705300d0f", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ ["css=div:nth-child(8) .btn > translate-i18n", "css:finder"], ["xpath=//div/button/translate-i18n", "xpath:position"] @@ -1509,20 +1622,19 @@ "id": "1a1b509e-1768-4291-820d-26f4b73a9d71", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/4", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[2]/div/div/div[1]/div/div/div[2]/div[5]/div/div[1]/div/div[1]/div/div/div/input[1]", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/4", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/4", "css:finder"], - ["xpath=//input[@id='/relyingPartyOverrides/nameIdFormats/4']", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/4-container']/div/input", "xpath:idRelative"], - ["xpath=//li[5]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] + ["css=.focus", "css:finder"], + ["xpath=(//input[@value=''])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div[2]/div[5]/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "433d6e9d-9d03-4042-9ee0-6284570f8a3c", "comment": "", "command": "type", - "target": "id=/relyingPartyOverrides/nameIdFormats/4", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[2]/div/div/div[1]/div/div/div[2]/div[5]/div/div[1]/div/div[1]/div/div/div/input[1]", "targets": [ ["id=field83", "id"], ["css=#field83", "css:finder"], @@ -1531,12 +1643,33 @@ ["xpath=//li[5]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] ], "value": "somethingElse" + }, { + "id": "3a2e2040-7443-4e3a-99b1-363f87580cba", + "comment": "", + "command": "click", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_4-item-4", + "targets": [ + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_4-item-4", "id"], + ["linkText=somethingElse", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_4-item-4", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_4-item-4']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_4']/a[5]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[5]", "xpath:href"], + ["xpath=//a[5]", "xpath:position"], + ["xpath=//a[contains(.,'somethingElse')]", "xpath:innerText"] + ], + "value": "" }, { "id": "c8bb3bee-3d61-4324-a3aa-38b78232b969", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .btn", - "targets": [], + "target": "css=.row:nth-child(4) .array-add-button", + "targets": [ + ["css=.row:nth-child(9) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[25]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[9]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div/button", "xpath:position"] + ], "value": "" }, { "id": "667d1702-7451-4200-ae40-3024717c4506", @@ -1549,7 +1682,7 @@ "id": "cbf15c4c-35d9-4f80-ba3d-bfe960048cd1", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/authenticationMethods\\/0-container .btn", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div/div/div[1]/div/div[1]/div/div/button", "targets": [ ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/0-container .btn", "css:finder"], ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], @@ -1568,20 +1701,23 @@ "id": "6c62d514-0143-49d9-97b3-6b7cb443df9d", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/0__option--0", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/0__option--0", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/0__option--0", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/authenticationMethods/0__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/authenticationMethods/0__listbox']/li", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0", "id"], + ["linkText=https://refeds.org/profile/mfa", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_0']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'https://refeds.org/profile/mfa')]", "xpath:innerText"] ], "value": "" }, { "id": "ed769470-9c3f-4c23-bbed-85513dcea800", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .btn", + "target": "css=.row:nth-child(4) .array-add-button", "targets": [ ["css=div:nth-child(9) .d-flex > .btn", "css:finder"], ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button", "xpath:position"] @@ -1598,7 +1734,7 @@ "id": "2b063eb8-f2d6-4a59-85bb-b04c467d9874", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/authenticationMethods\\/1-container .btn", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[2]/div/div[1]/div/div[1]/div/div/button", "targets": [ ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/1-container .btn", "css:finder"], ["xpath=(//button[@type='button'])[8]", "xpath:attributes"], @@ -1617,20 +1753,23 @@ "id": "5a32d59b-1ac3-4cd0-a2d8-0e934f8182fd", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/1__option--1", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/1__option--1", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/1__option--1", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/authenticationMethods/1__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/authenticationMethods/1__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[2]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_1']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken')]", "xpath:innerText"] ], "value": "" }, { "id": "892ddc96-970b-4dde-9189-0dc9ed197dab", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .btn", + "target": "css=.row:nth-child(4) .array-add-button", "targets": [ ["css=div:nth-child(9) .d-flex > .btn", "css:finder"], ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button", "xpath:position"] @@ -1647,7 +1786,7 @@ "id": "64e215d9-6e46-422f-882c-13b6fb102622", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/authenticationMethods\\/2-container .btn", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[3]/div/div[1]/div/div[1]/div/div/button", "targets": [ ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/2-container .btn", "css:finder"], ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], @@ -1666,20 +1805,23 @@ "id": "6a7bce1a-34be-4d4c-b732-d2f198e8b8a1", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/2__option--2", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/2__option--2", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/2__option--2", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/authenticationMethods/2__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/authenticationMethods/2__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_2']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport')]", "xpath:innerText"] ], "value": "" }, { "id": "f0dd4b79-eab5-4d4b-af2e-07ca661f8288", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .btn", + "target": "css=.row:nth-child(4) .array-add-button", "targets": [ ["css=div:nth-child(9) .btn > translate-i18n", "css:finder"], ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button/translate-i18n", "xpath:position"] @@ -1689,20 +1831,19 @@ "id": "dacd34b0-9e48-4838-b137-bf22dd027ed0", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/3", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[4]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/3", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/3", "css:finder"], - ["xpath=//input[@id='/relyingPartyOverrides/authenticationMethods/3']", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/authenticationMethods/3-container']/div/input", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] + ["css=.focus", "css:finder"], + ["xpath=(//input[@value=''])[12]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[9]/div/div/div/div/div/div[2]/div[4]/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div[2]/div[4]/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "cc9dd18b-ee87-4aa7-91f2-59f02834759b", "comment": "", "command": "type", - "target": "id=/relyingPartyOverrides/authenticationMethods/3", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[4]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ ["id=field87", "id"], ["css=#field87", "css:finder"], @@ -1711,15 +1852,33 @@ ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] ], "value": "otherThings" + }, { + "id": "1f62c43d-e605-4d62-9ce4-51f950788ac4", + "comment": "", + "command": "click", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_3-item-3", + "targets": [ + ["id=option-selector-root_relyingPartyOverrides_authenticationMethods_3-item-3", "id"], + ["linkText=otherThings", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_3-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_3-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_3']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'otherThings')]", "xpath:innerText"] + ], + "value": "" }, { "id": "7c85fe59-dc95-4328-a010-33d1a06a5ce5", "comment": "", "command": "click", - "target": "css=div:nth-child(10) .custom-control-label", + "target": "id=root_relyingPartyOverrides_forceAuthn", "targets": [ - ["css=div:nth-child(10) .custom-control-label", "css:finder"], - ["xpath=//div[10]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Force AuthN')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_forceAuthn", "id"], + ["css=#root_relyingPartyOverrides_forceAuthn", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_forceAuthn']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[10]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[10]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { @@ -1738,9 +1897,7 @@ "command": "click", "target": "css=.fa-check", "targets": [ - ["css=.fa-check", "css:finder"], - ["xpath=//button[@id='/attributeRelease.checkall']/i", "xpath:idRelative"], - ["xpath=//td[2]/button/i", "xpath:position"] + ["css=.fa-check", "css:finder"] ], "value": "" }, { @@ -1753,26 +1910,15 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "14ca713a-313d-4cda-82ca-a0b814ce81dc", - "comment": "", - "command": "click", - "target": "css=.custom-control-label", - "targets": [ - ["css=.custom-control-label", "css:finder"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Enable this service?')]", "xpath:innerText"] - ], - "value": "" }, { "id": "3baa7bd3-55c0-4d10-8aa3-c0daa63ec4d4", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(1) .text-truncate", + "target": "css=div:nth-child(2) > div:nth-child(2) > .border-bottom > .text-truncate", "targets": [ - ["css=.d-block > primitive-property:nth-child(1) .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], - ["xpath=//div/span[2]", "xpath:position"], + ["css=div:nth-child(2) > div:nth-child(2) > .border-bottom > .text-truncate", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section/div/div[2]/div[2]/div[2]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'test-1234')]", "xpath:innerText"] ], "value": "test-1234" @@ -1780,22 +1926,24 @@ "id": "0d355ff0-0449-49a7-ae75-14d7c405b97c", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(7) .py-2:nth-child(3) > .d-flex:nth-child(1) > .text-truncate", + "target": "css=.mb-4:nth-child(7) .py-2:nth-child(3) > .d-flex:nth-child(1) > .d-block", "targets": [ - ["css=.mb-4:nth-child(7) .py-2:nth-child(3) > .d-flex:nth-child(1) > .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[7]/div/div[2]/object-property/array-property/div/div[3]/div/div[2]", "xpath:idRelative"], - ["xpath=//section[7]/div/div[2]/object-property/array-property/div/div[3]/div/div[2]", "xpath:position"] + ["css=.mb-4:nth-child(7) .py-2:nth-child(3) > .d-flex:nth-child(1) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[7]/div/div[2]/div[2]/div/div[3]/div/span", "xpath:idRelative"], + ["xpath=//section[7]/div/div[2]/div[2]/div/div[3]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'http://test.org/assert2')]", "xpath:innerText"] ], "value": "http://test.org/assert2" }, { "id": "e53030b6-f344-4361-981d-b8303a721c5d", "comment": "", "command": "assertText", - "target": "css=array-property:nth-child(8) .border-0", + "target": "css=.mb-4:nth-child(4) .d-flex:nth-child(5) > .d-block", "targets": [ - ["css=array-property:nth-child(8) .border-0", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[8]/div/div[2]/object-property/object-property/array-property/div/ul/li[5]", "xpath:idRelative"], - ["xpath=//section[8]/div/div[2]/object-property/object-property/array-property/div/ul/li[5]", "xpath:position"] + ["css=.mb-4:nth-child(4) .d-flex:nth-child(5) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[4]/div/div[2]/div[2]/div/div[2]/ul/li[5]/span", "xpath:idRelative"], + ["xpath=//li[5]/span", "xpath:position"], + ["xpath=//span[contains(.,'somethingElse')]", "xpath:innerText"] ], "value": "somethingElse" }, { @@ -1823,18 +1971,22 @@ "id": "4e0fa4f5-817f-41fb-9885-60f37b699436", "comment": "", "command": "waitForElementVisible", - "target": "css=tr > .text-right", + "target": "linkText=Test Provider", "targets": [ - ["css=tr > .text-right", "css:finder"], - ["xpath=//td[5]", "xpath:position"], - ["xpath=//td[contains(.,'Enabled')]", "xpath:innerText"] + ["linkText=Test Provider", "linkText"], + ["css=td > a", "css:finder"], + ["xpath=//a[contains(text(),'Test Provider')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/source/f42856cd-f07a-4910-bf6b-cdafb9913ded/configuration/options')]", "xpath:href"], + ["xpath=//td/a", "xpath:position"], + ["xpath=//a[contains(.,'Test Provider')]", "xpath:innerText"] ], "value": "10000" }, { "id": "ba9fb8e8-d332-45bd-accd-703284744136", "comment": "", "command": "assertText", - "target": "css=td:nth-child(1)", + "target": "linkText=Test Provider", "targets": [ ["linkText=Test Provider", "linkText"], ["css=td > a", "css:finder"], @@ -1851,6 +2003,7 @@ "target": "css=td:nth-child(2)", "targets": [ ["css=td:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]", "xpath:idRelative"], ["xpath=//td[2]", "xpath:position"], ["xpath=//td[contains(.,'test-1234')]", "xpath:innerText"] ], @@ -1948,11 +2101,12 @@ "id": "01da89d4-e043-4f99-9d98-dcb42b9b4777", "comment": "", "command": "click", - "target": "css=.btn-link", + "target": "css=.px-3", "targets": [ - ["css=.btn-link", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div/button", "xpath:position"], + ["css=.px-3", "css:finder"], + ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/form/div/div/div/button", "xpath:idRelative"], + ["xpath=//form/div/div/div/button", "xpath:position"], ["xpath=//button[contains(.,'Clear')]", "xpath:innerText"] ], "value": "" @@ -1975,7 +2129,12 @@ "comment": "", "command": "waitForElementPresent", "target": "css=.author", - "targets": [], + "targets": [ + ["css=.author", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/div/div/div/h5/span[2]", "xpath:idRelative"], + ["xpath=//span[2]", "xpath:position"], + ["xpath=//span[contains(.,'admin')]", "xpath:innerText"] + ], "value": "10000" }, { "id": "c9ea2708-7c12-43ce-b827-f0f34d2f2831", @@ -1993,11 +2152,11 @@ "id": "16271513-203c-4528-870f-dcf73f4d81cb", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(1) .d-block:nth-child(2)", + "target": "css=div:nth-child(2) > div:nth-child(2) > .d-flex > .text-truncate", "targets": [ - ["css=.d-block > primitive-property:nth-child(1) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/span[2]", "xpath:idRelative"], - ["xpath=//div/span[2]", "xpath:position"], + ["css=div:nth-child(2) > div:nth-child(2) > .d-flex > .text-truncate", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[2]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'test-1234')]", "xpath:innerText"] ], "value": "test-1234" @@ -2005,22 +2164,23 @@ "id": "3f2c3eab-ecbf-45f3-bcdc-a5cad766b27c", "comment": "", "command": "assertText", - "target": "css=array-property:nth-child(5) .py-2:nth-child(2) > .d-flex:nth-child(3) > .text-truncate", + "target": "css=div:nth-child(2) > div:nth-child(4) > .py-2:nth-child(2) > .d-flex:nth-child(3) > .d-block", "targets": [ - ["css=array-property:nth-child(5) .py-2:nth-child(2) > .d-flex:nth-child(3) > .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/array-property/div/div[2]/div[3]/div[2]", "xpath:idRelative"], - ["xpath=//div[3]/div[2]", "xpath:position"] + ["css=div:nth-child(2) > div:nth-child(4) > .py-2:nth-child(2) > .d-flex:nth-child(3) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[4]/div[2]/div[3]/span", "xpath:idRelative"], + ["xpath=//div[3]/span", "xpath:position"], + ["xpath=//span[contains(.,'user@test.org')]", "xpath:innerText"] ], "value": "user@test.org" }, { "id": "467409c7-1007-4c45-80d2-0b4eea5199a0", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(2) primitive-property:nth-child(2) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(4) div:nth-child(2) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(2) primitive-property:nth-child(2) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[2]/div/div[2]/object-property/object-property/primitive-property[2]/div/span[2]", "xpath:idRelative"], - ["xpath=//section[2]/div/div[2]/object-property/object-property/primitive-property[2]/div/span[2]", "xpath:position"], + ["css=.mb-4:nth-child(4) div:nth-child(2) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[2]/div/div[2]/div[2]/div/div[2]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[2]/div/div[2]/div[2]/div/div[2]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'http://test.org/info')]", "xpath:innerText"] ], "value": "http://test.org/info" @@ -2028,11 +2188,11 @@ "id": "eaaf9d59-1466-4736-924c-56c9b3f7522f", "comment": "", "command": "assertText", - "target": "css=array-property:nth-child(2) .text-truncate:nth-child(2)", + "target": "css=.d-flex:nth-child(2) .d-flex:nth-child(2)", "targets": [ - ["css=array-property:nth-child(2) .text-truncate:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[3]/div/div[2]/object-property/object-property/array-property/div/div/ul/li[2]", "xpath:idRelative"], - ["xpath=//div/div/ul/li[2]", "xpath:position"], + ["css=.d-flex:nth-child(2) .d-flex:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[3]/div/div[2]/div[2]/div/div[2]/ul/li[2]", "xpath:idRelative"], + ["xpath=//ul/li[2]", "xpath:position"], ["xpath=//li[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress')]", "xpath:innerText"] ], "value": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" @@ -2040,44 +2200,46 @@ "id": "2a23096f-d5cd-4727-af1b-130388117aa0", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(4) .py-2:nth-child(3) > .d-flex:nth-child(1) > .text-truncate", + "target": "css=.mb-4:nth-child(6) .py-2:nth-child(3) > .d-flex:nth-child(1) > .d-block", "targets": [ - ["css=.mb-4:nth-child(4) .py-2:nth-child(3) > .d-flex:nth-child(1) > .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[4]/div/div[2]/object-property/array-property/div/div[3]/div/div[2]", "xpath:idRelative"], - ["xpath=//section[4]/div/div[2]/object-property/array-property/div/div[3]/div/div[2]", "xpath:position"] + ["css=.mb-4:nth-child(6) .py-2:nth-child(3) > .d-flex:nth-child(1) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[4]/div/div[2]/div[2]/div/div[3]/div/span", "xpath:idRelative"], + ["xpath=//section[4]/div/div[2]/div[2]/div/div[3]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'http://test.org/logout2')]", "xpath:innerText"] ], "value": "http://test.org/logout2" }, { "id": "fe47ffd2-d2a0-4264-90fe-31b998f81ac2", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(5) primitive-property:nth-child(3) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(7) .p-2 > div > div > div:nth-child(3) .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(5) primitive-property:nth-child(3) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[5]/div/div[2]/object-property/object-property/primitive-property[3]/div/span[2]", "xpath:idRelative"], - ["xpath=//section[5]/div/div[2]/object-property/object-property/primitive-property[3]/div/span[2]", "xpath:position"] + ["css=.mb-4:nth-child(7) .p-2 > div > div > div:nth-child(3) .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[5]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[5]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:position"] ], "value": "true" }, { "id": "7300785c-b83e-49b8-97a6-d66516f6c133", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(6) .py-2:nth-child(2) > .d-flex:nth-child(1) > .text-truncate", + "target": "css=.mb-4:nth-child(8) .py-2:nth-child(2) > .d-flex:nth-child(1) > .d-block", "targets": [ - ["css=.mb-4:nth-child(6) .py-2:nth-child(2) > .d-flex:nth-child(1) > .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[6]/div/div[2]/object-property/array-property/div/div[2]/div/div[2]", "xpath:idRelative"], - ["xpath=//section[6]/div/div[2]/object-property/array-property/div/div[2]/div/div[2]", "xpath:position"] + ["css=.mb-4:nth-child(8) .py-2:nth-child(2) > .d-flex:nth-child(1) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[6]/div/div[2]/div[2]/div/div[2]/div/span", "xpath:idRelative"], + ["xpath=//section[6]/div/div[2]/div[2]/div/div[2]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'http://test.org/assert')]", "xpath:innerText"] ], "value": "http://test.org/assert" }, { "id": "951a21c9-4cd3-4989-8dc0-77760ca0dc95", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(7) primitive-property:nth-child(7) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(9) div:nth-child(3) .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(7) primitive-property:nth-child(7) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[7]/div/div[2]/object-property/object-property/primitive-property[7]/div/span[2]", "xpath:idRelative"], - ["xpath=//section[7]/div/div[2]/object-property/object-property/primitive-property[7]/div/span[2]", "xpath:position"], + ["css=.mb-4:nth-child(9) div:nth-child(3) .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[7]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[7]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'responder-id-123')]", "xpath:innerText"] ], "value": "responder-id-123" @@ -2092,13 +2254,6 @@ ["xpath=//section[8]/div/div[2]/object-property/array-property/div/div/div[3]/div/span", "xpath:position"] ], "value": "True" - }, { - "id": "8872eadd-b15a-48d3-8334-a54a3fa14e6d", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1334-1.side b/backend/src/integration/resources/SHIBUI-1334-1.side index 80869679b..df38cb942 100644 --- a/backend/src/integration/resources/SHIBUI-1334-1.side +++ b/backend/src/integration/resources/SHIBUI-1334-1.side @@ -49,36 +49,83 @@ ["xpath=//tr[2]/td[2]/input", "xpath:position"] ], "value": "${KEY_ENTER}" + }, { + "id": "483585b7-c553-4ddb-bfd8-024bd81aecc3", + "comment": "", + "command": "waitForElementVisible", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "c4f3b8ff-5c73-4975-8a76-08c3a5d9ec4c", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "eb9f9e61-26d0-45fb-8aae-c5e205db4407", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "240e95a4-893e-4dab-901e-dc2960a2126a", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "ad3811ad-f95b-4cca-a5d9-63a10063a652", "comment": "", "command": "click", - "target": "css=#addNewDropdown > translate-i18n", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=#addNewDropdown > translate-i18n", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/translate-i18n", "xpath:idRelative"], - ["xpath=//translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Add New')]", "xpath:innerText"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "1caf8be6-a4d9-4b3b-ace1-0f76d3600d62", "comment": "", "command": "click", - "target": "linkText=Metadata Source", + "target": "id=metadata-nav-dropdown-source", "targets": [ - ["linkText=Metadata Source", "linkText"], - ["css=.dropdown-menu > .nav-link:nth-child(1)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[2]", "xpath:href"], - ["xpath=//div/a", "xpath:position"] + ["id=metadata-nav-dropdown-source", "id"], + ["linkText=Add a new metadata source", "linkText"], + ["css=#metadata-nav-dropdown-source", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata source')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-source']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/source/new')]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata source')]", "xpath:innerText"] ], "value": "" + }, { + "id": "41c59f00-a206-4628-af94-c493996cb0a5", + "comment": "", + "command": "waitForElementVisible", + "target": "id=root_serviceProviderName", + "targets": [ + ["id=root_serviceProviderName", "id"], + ["css=#root_serviceProviderName", "css:finder"], + ["xpath=//input[@id='root_serviceProviderName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "30000" }, { "id": "218e51fd-49e6-400b-9d7f-61bcd8e0c074", "comment": "", "command": "click", - "target": "id=/serviceProviderName", + "target": "id=root_serviceProviderName", "targets": [ ["id=/serviceProviderName", "id"], ["name=field1", "name"], @@ -91,7 +138,7 @@ "id": "9ee43e46-ab9e-46b1-8eb2-9718fb98bda2", "comment": "", "command": "type", - "target": "id=/serviceProviderName", + "target": "id=root_serviceProviderName", "targets": [ ["id=field1", "id"], ["name=field1", "name"], @@ -104,13 +151,13 @@ "id": "7fe7298b-275c-4797-8d1b-f4547b63eb02", "comment": "", "command": "type", - "target": "id=/entityId", + "target": "id=root_entityId", "targets": [ - ["id=/entityId", "id"], - ["name=field2", "name"], - ["css=#\\/entityId", "css:finder"], - ["xpath=//input[@id='/entityId']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_entityId", "id"], + ["css=#root_entityId", "css:finder"], + ["xpath=//input[@id='root_entityId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/div/form/div/div/div/div/div/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "test-1234" }, { @@ -127,12 +174,12 @@ "id": "4d88e469-df2f-40ee-a557-b5eafbc24ef3", "comment": "", "command": "click", - "target": "id=/organization/name", + "target": "id=root_organization_name", "targets": [ - ["id=/organization/name", "id"], - ["name=field5", "name"], - ["css=#\\/organization\\/name", "css:finder"], - ["xpath=//input[@id='/organization/name']", "xpath:attributes"], + ["id=root_organization_name", "id"], + ["css=#root_organization_name", "css:finder"], + ["xpath=//input[@id='root_organization_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -140,7 +187,7 @@ "id": "e0168286-af90-4c0a-a0ba-0dd97d64849b", "comment": "", "command": "type", - "target": "id=/organization/name", + "target": "id=root_organization_name", "targets": [ ["id=field5", "id"], ["name=field5", "name"], @@ -153,57 +200,59 @@ "id": "8f6dcf95-41e4-446a-a7fb-a064d928e1bc", "comment": "", "command": "type", - "target": "id=/organization/displayName", + "target": "id=root_organization_displayName", "targets": [ - ["id=/organization/displayName", "id"], - ["name=field6", "name"], - ["css=#\\/organization\\/displayName", "css:finder"], - ["xpath=//input[@id='/organization/displayName']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_organization_displayName", "id"], + ["css=#root_organization_displayName", "css:finder"], + ["xpath=//input[@id='root_organization_displayName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/input", "xpath:position"] ], "value": "Test Org Name" }, { "id": "7cc2068e-3fa3-4f1c-ac97-c63e78911b9e", "comment": "", "command": "type", - "target": "id=/organization/url", + "target": "id=root_organization_url", "targets": [ - ["id=/organization/url", "id"], - ["name=field7", "name"], - ["css=#\\/organization\\/url", "css:finder"], - ["xpath=//input[@id='/organization/url']", "xpath:attributes"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_organization_url", "id"], + ["css=#root_organization_url", "css:finder"], + ["xpath=//input[@id='root_organization_url']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "http://test.org" }, { "id": "1da05567-4f8d-4fd8-957a-bfddb2380bfb", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "5379b245-cd77-43c1-b424-3b6595c74174", "comment": "", "command": "click", - "target": "id=/contacts/0/name", + "target": "id=root_contacts_0_name", "targets": [ - ["id=/contacts/0/name", "id"], - ["name=field10", "name"], - ["css=#\\/contacts\\/0\\/name", "css:finder"], - ["xpath=//input[@id='/contacts/0/name']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_0_name", "id"], + ["css=#root_contacts_0_name", "css:finder"], + ["xpath=//input[@id='root_contacts_0_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "b658cae2-ba5a-406b-a48c-87d110ff4ed0", "comment": "", "command": "type", - "target": "id=/contacts/0/name", + "target": "id=root_contacts_0_name", "targets": [ ["id=field10", "id"], ["name=field10", "name"], @@ -216,12 +265,12 @@ "id": "3a2de62d-c1c1-43a7-a484-8a0d23bf301e", "comment": "", "command": "click", - "target": "id=/contacts/0/type", + "target": "id=root_contacts_0_type", "targets": [ - ["id=/contacts/0/type", "id"], - ["name=field11", "name"], - ["css=#\\/contacts\\/0\\/type", "css:finder"], - ["xpath=//select[@id='/contacts/0/type']", "xpath:attributes"], + ["id=root_contacts_0_type", "id"], + ["css=#root_contacts_0_type", "css:finder"], + ["xpath=//select[@id='root_contacts_0_type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], ["xpath=//select", "xpath:position"] ], "value": "" @@ -229,27 +278,27 @@ "id": "86e4e429-2a72-496a-add8-df2fc079d157", "comment": "", "command": "select", - "target": "id=/contacts/0/type", + "target": "id=root_contacts_0_type", "targets": [], - "value": "label=Technical" + "value": "label=technical" }, { "id": "95531b0b-c084-422d-bac9-60ee7e7a9f16", "comment": "", "command": "click", - "target": "id=/contacts/0/emailAddress", + "target": "id=root_contacts_0_emailAddress", "targets": [ - ["id=/contacts/0/emailAddress", "id"], - ["name=field12", "name"], - ["css=#\\/contacts\\/0\\/emailAddress", "css:finder"], - ["xpath=//input[@id='/contacts/0/emailAddress']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[3]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_0_emailAddress", "id"], + ["css=#root_contacts_0_emailAddress", "css:finder"], + ["xpath=//input[@id='root_contacts_0_emailAddress']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "e5d6662e-38d4-479f-b76b-c0c05fcabe15", "comment": "", "command": "type", - "target": "id=/contacts/0/emailAddress", + "target": "id=root_contacts_0_emailAddress", "targets": [ ["id=field12", "id"], ["name=field12", "name"], @@ -262,31 +311,33 @@ "id": "b4e3ea55-b4c0-4585-99fe-ac1534efadd8", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "234de758-df6d-47d7-af74-83aee3fa1e72", "comment": "", "command": "click", - "target": "id=/contacts/1/name", + "target": "id=root_contacts_1_name", "targets": [ - ["id=/contacts/1/name", "id"], - ["name=field14", "name"], - ["css=#\\/contacts\\/1\\/name", "css:finder"], - ["xpath=//input[@id='/contacts/1/name']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_1_name", "id"], + ["css=#root_contacts_1_name", "css:finder"], + ["xpath=//input[@id='root_contacts_1_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "02819e27-7aed-4a1a-867f-f8131c3897d8", "comment": "", "command": "type", - "target": "id=/contacts/1/name", + "target": "id=root_contacts_1_name", "targets": [ ["id=field14", "id"], ["name=field14", "name"], @@ -299,19 +350,20 @@ "id": "1d478856-8742-4627-acbe-daed2bb83abe", "comment": "", "command": "click", - "target": "id=/contacts/1/type", + "target": "id=root_contacts_1_type", "targets": [ - ["css=#field15 > option:nth-child(2)", "css:finder"], - ["xpath=(//option[@value='1: support'])[2]", "xpath:attributes"], - ["xpath=//select[@id='field15']/option[2]", "xpath:idRelative"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/select-component/div/select/option[2]", "xpath:position"] + ["id=root_contacts_1_type", "id"], + ["css=#root_contacts_1_type", "css:finder"], + ["xpath=//select[@id='root_contacts_1_type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:position"] ], "value": "" }, { "id": "9b4c76b4-3851-4aac-a9f5-67e20c36f174", "comment": "", "command": "select", - "target": "id=/contacts/1/type", + "target": "id=root_contacts_1_type", "targets": [ ["id=/contacts/1/type", "id"], ["name=field15", "name"], @@ -319,31 +371,31 @@ ["xpath=//select[@id='/contacts/1/type']", "xpath:attributes"], ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/select-component/div/select", "xpath:position"] ], - "value": "label=Support" + "value": "label=support" }, { "id": "5e3fddc1-786d-4040-8351-2f553e3c8811", "comment": "", "command": "click", - "target": "id=/contacts/1/emailAddress", + "target": "id=root_contacts_1_emailAddress", "targets": [ - ["id=/contacts/1/emailAddress", "id"], - ["name=field16", "name"], - ["css=#\\/contacts\\/1\\/emailAddress", "css:finder"], - ["xpath=//input[@id='/contacts/1/emailAddress']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[3]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_1_emailAddress", "id"], + ["css=#root_contacts_1_emailAddress", "css:finder"], + ["xpath=//input[@id='root_contacts_1_emailAddress']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "700d8907-6a65-43d5-aebf-60a392379534", "comment": "", "command": "type", - "target": "id=/contacts/1/emailAddress", + "target": "id=root_contacts_1_emailAddress", "targets": [ - ["id=field16", "id"], - ["name=field16", "name"], - ["css=#field16", "css:finder"], - ["xpath=//input[@id='field16']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[3]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_1_emailAddress", "id"], + ["css=#root_contacts_1_emailAddress", "css:finder"], + ["xpath=//input[@id='root_contacts_1_emailAddress']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:position"] ], "value": "user2@test.org" }, { @@ -360,12 +412,12 @@ "id": "f38b7fca-0c0c-4658-9df6-10a26881c6a5", "comment": "", "command": "click", - "target": "id=/mdui/displayName", + "target": "id=root_mdui_displayName", "targets": [ - ["id=/mdui/displayName", "id"], - ["name=field19", "name"], - ["css=#\\/mdui\\/displayName", "css:finder"], - ["xpath=//input[@id='/mdui/displayName']", "xpath:attributes"], + ["id=root_mdui_displayName", "id"], + ["css=#root_mdui_displayName", "css:finder"], + ["xpath=//input[@id='root_mdui_displayName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -373,7 +425,7 @@ "id": "c03c4582-e1f1-449f-9a79-300d48ad69d8", "comment": "", "command": "type", - "target": "id=/mdui/displayName", + "target": "id=root_mdui_displayName", "targets": [ ["id=field19", "id"], ["name=field19", "name"], @@ -386,25 +438,25 @@ "id": "5098507c-fa51-4c13-b9a3-381034e0fa52", "comment": "", "command": "type", - "target": "id=/mdui/informationUrl", + "target": "id=root_mdui_informationUrl", "targets": [ - ["id=/mdui/informationUrl", "id"], - ["name=field20", "name"], - ["css=#\\/mdui\\/informationUrl", "css:finder"], - ["xpath=//input[@id='/mdui/informationUrl']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_mdui_informationUrl", "id"], + ["css=#root_mdui_informationUrl", "css:finder"], + ["xpath=//input[@id='root_mdui_informationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "http://test.org/info" }, { "id": "d5de3699-5a18-4abe-a2ea-0a2b7565c525", "comment": "", "command": "type", - "target": "id=/mdui/description", + "target": "id=root_mdui_description", "targets": [ - ["id=/mdui/description", "id"], - ["name=field21", "name"], - ["css=#\\/mdui\\/description", "css:finder"], - ["xpath=//textarea[@id='/mdui/description']", "xpath:attributes"], + ["id=root_mdui_description", "id"], + ["css=#root_mdui_description", "css:finder"], + ["xpath=//textarea[@id='root_mdui_description']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div[3]/div/div/textarea", "xpath:idRelative"], ["xpath=//textarea", "xpath:position"] ], "value": "This is a description." @@ -412,20 +464,20 @@ "id": "115bb9a9-e991-4cf0-8bcb-363d9dc3c269", "comment": "", "command": "click", - "target": "id=/mdui/privacyStatementUrl", + "target": "id=root_mdui_privacyStatementUrl", "targets": [ - ["id=/mdui/privacyStatementUrl", "id"], - ["name=field22", "name"], - ["css=#\\/mdui\\/privacyStatementUrl", "css:finder"], - ["xpath=//input[@id='/mdui/privacyStatementUrl']", "xpath:attributes"], - ["xpath=//fieldset[2]/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_mdui_privacyStatementUrl", "id"], + ["css=#root_mdui_privacyStatementUrl", "css:finder"], + ["xpath=//input[@id='root_mdui_privacyStatementUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "df623bef-a1fc-48ff-aa93-05e0da85ef51", "comment": "", "command": "type", - "target": "id=/mdui/privacyStatementUrl", + "target": "id=root_mdui_privacyStatementUrl", "targets": [ ["id=field22", "id"], ["name=field22", "name"], @@ -438,39 +490,39 @@ "id": "ed17408b-a763-4e5d-86cd-efe575df8d08", "comment": "", "command": "type", - "target": "id=/mdui/logoUrl", + "target": "id=root_mdui_logoUrl", "targets": [ - ["id=/mdui/logoUrl", "id"], - ["name=field23", "name"], - ["css=#\\/mdui\\/logoUrl", "css:finder"], - ["xpath=//input[@id='/mdui/logoUrl']", "xpath:attributes"], - ["xpath=//fieldset[2]/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_mdui_logoUrl", "id"], + ["css=#root_mdui_logoUrl", "css:finder"], + ["xpath=//input[@id='root_mdui_logoUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div[2]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div/input", "xpath:position"] ], "value": "http://test.org/logo" }, { "id": "2946a968-7289-43e5-820d-b1aee442ce96", "comment": "", "command": "type", - "target": "id=/mdui/logoWidth", + "target": "id=root_mdui_logoWidth", "targets": [ - ["id=/mdui/logoWidth", "id"], - ["name=field24", "name"], - ["css=#\\/mdui\\/logoWidth", "css:finder"], - ["xpath=//input[@id='/mdui/logoWidth']", "xpath:attributes"], - ["xpath=//integer-component/div/input", "xpath:position"] + ["id=root_mdui_logoWidth", "id"], + ["css=#root_mdui_logoWidth", "css:finder"], + ["xpath=//input[@id='root_mdui_logoWidth']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div[2]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] ], "value": "200" }, { "id": "ceec5477-13d4-4ab4-944e-a2a34a9b4510", "comment": "", "command": "type", - "target": "id=/mdui/logoHeight", + "target": "id=root_mdui_logoHeight", "targets": [ - ["id=/mdui/logoHeight", "id"], - ["name=field25", "name"], - ["css=#\\/mdui\\/logoHeight", "css:finder"], - ["xpath=//input[@id='/mdui/logoHeight']", "xpath:attributes"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/integer-component/div/input", "xpath:position"] + ["id=root_mdui_logoHeight", "id"], + ["css=#root_mdui_logoHeight", "css:finder"], + ["xpath=//input[@id='root_mdui_logoHeight']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div[2]/div[3]/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/input", "xpath:position"] ], "value": "300" }, { @@ -487,20 +539,20 @@ "id": "88054c63-d468-4340-b4d3-c69fb6ed6f96", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/protocolSupportEnum", + "target": "id=root_serviceProviderSsoDescriptor_protocolSupportEnum", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: SAML 2']", "xpath:attributes"], - ["xpath=//select[@id='field28']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'SAML 2')]", "xpath:innerText"] + ["id=root_serviceProviderSsoDescriptor_protocolSupportEnum", "id"], + ["css=#root_serviceProviderSsoDescriptor_protocolSupportEnum", "css:finder"], + ["xpath=//select[@id='root_serviceProviderSsoDescriptor_protocolSupportEnum']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], "value": "" }, { "id": "c77b3648-fce1-46f9-aec9-ca88c90d4c92", "comment": "", "command": "select", - "target": "id=/serviceProviderSsoDescriptor/protocolSupportEnum", + "target": "id=root_serviceProviderSsoDescriptor_protocolSupportEnum", "targets": [ ["id=/serviceProviderSsoDescriptor/protocolSupportEnum", "id"], ["name=field28", "name"], @@ -513,11 +565,13 @@ "id": "aec93dce-3142-4df3-b09d-735c70d1197b", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -531,13 +585,12 @@ "id": "a0102f51-f1d8-4c38-9170-482022ea7397", "comment": "", "command": "click", - "target": "css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/0-container .btn", + "target": "css=.toggle-button", "targets": [ - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/0-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/serviceProviderSsoDescriptor/nameIdFormats/0-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -551,20 +604,23 @@ "id": "9033e5ad-4255-4aa7-a878-c7beab69ee8e", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/0__option--0", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0-item-0", "targets": [ - ["id=/serviceProviderSsoDescriptor/nameIdFormats/0__option--0", "id"], - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/0__option--0", "css:finder"], - ["xpath=//li[@id='/serviceProviderSsoDescriptor/nameIdFormats/0__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/serviceProviderSsoDescriptor/nameIdFormats/0__listbox']/li", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li", "xpath:position"] + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0-item-0", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified')]", "xpath:innerText"] ], "value": "" }, { "id": "c21b1d7a-9325-4d70-887d-387c7a042c08", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ ["css=.btn-success > translate-i18n", "css:finder"], ["xpath=//div/button/translate-i18n", "xpath:position"] @@ -581,12 +637,12 @@ "id": "c1534880-c4e5-4fbd-b200-c28f9f556ab9", "comment": "", "command": "click", - "target": "css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/1-container .btn", + "target": "css=.mt-2:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/1-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/serviceProviderSsoDescriptor/nameIdFormats/1-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -600,20 +656,23 @@ "id": "d07b2d83-3699-4f48-90e8-6fc883d3a02a", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/1__option--1", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1-item-1", "targets": [ - ["id=/serviceProviderSsoDescriptor/nameIdFormats/1__option--1", "id"], - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/1__option--1", "css:finder"], - ["xpath=//li[@id='/serviceProviderSsoDescriptor/nameIdFormats/1__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/serviceProviderSsoDescriptor/nameIdFormats/1__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[2]", "xpath:position"] + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1-item-1", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress')]", "xpath:innerText"] ], "value": "" }, { "id": "2c77ecbc-45cc-471c-9e39-f87ec06a9385", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ ["css=.btn-success", "css:finder"], ["xpath=//div/button", "xpath:position"], @@ -631,12 +690,12 @@ "id": "97a98737-862d-4567-8b20-c5c991444ed0", "comment": "", "command": "click", - "target": "css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/2-container .btn", + "target": "css=.is-invalid > .toggle-button", "targets": [ - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/2-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], - ["xpath=//div[@id='/serviceProviderSsoDescriptor/nameIdFormats/2-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.is-invalid > .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -650,20 +709,23 @@ "id": "686e004c-2b0f-4308-8622-b04bc05a50a9", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/2__option--2", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2-item-2", "targets": [ - ["id=/serviceProviderSsoDescriptor/nameIdFormats/2__option--2", "id"], - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/2__option--2", "css:finder"], - ["xpath=//li[@id='/serviceProviderSsoDescriptor/nameIdFormats/2__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/serviceProviderSsoDescriptor/nameIdFormats/2__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2-item-2", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent')]", "xpath:innerText"] ], "value": "" }, { "id": "104367d3-f250-4439-8721-32dcf9f25e0c", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ ["css=.btn-success", "css:finder"], ["xpath=//div/button", "xpath:position"], @@ -681,12 +743,12 @@ "id": "e2e8d5d4-8b6a-42d5-9fe7-abb8a84216e3", "comment": "", "command": "click", - "target": "css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/3-container .btn", + "target": "css=.mt-2:nth-child(4) .toggle-button", "targets": [ - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/3-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], - ["xpath=//div[@id='/serviceProviderSsoDescriptor/nameIdFormats/3-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(4) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[15]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div[2]/div[4]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -700,38 +762,58 @@ "id": "b6ac5230-772b-44bc-b9d1-6ae8a58e0368", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/3__option--3", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3-item-3", "targets": [ - ["id=/serviceProviderSsoDescriptor/nameIdFormats/3__option--3", "id"], - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/3__option--3", "css:finder"], - ["xpath=//li[@id='/serviceProviderSsoDescriptor/nameIdFormats/3__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/serviceProviderSsoDescriptor/nameIdFormats/3__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3-item-3", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:transient", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:transient')]", "xpath:innerText"] ], "value": "" }, { "id": "d135ef80-69d8-4cd1-b581-5e1973342082", "comment": "", "command": "click", - "target": "css=.btn-success > translate-i18n", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button", "xpath:idRelative"], + ["xpath=//li[3]/button", "xpath:position"] ], "value": "" }, { "id": "23fd8856-32df-48ed-a198-a74e8ca71b10", "comment": "", "command": "type", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/4", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[5]/div/div[1]/div/div[2]/div/div/div[1]/div/div/div[2]/div[5]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ - ["id=field34", "id"], - ["css=#field34", "css:finder"], - ["xpath=//input[@id='field34']", "xpath:attributes"], - ["xpath=//div[@id='field34-container']/div/input", "xpath:idRelative"], - ["xpath=//li[5]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] + ["css=.focus", "css:finder"], + ["xpath=(//input[@value=''])[3]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "somethingElse" + }, { + "id": "c11bf56d-4516-4397-9a19-e07cc12eda2a", + "comment": "", + "command": "click", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4-item-4", + "targets": [ + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4-item-4", "id"], + ["linkText=somethingElse", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4-item-4", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4-item-4']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4']/a[5]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[5]", "xpath:href"], + ["xpath=//a[5]", "xpath:position"], + ["xpath=//a[contains(.,'somethingElse')]", "xpath:innerText"] + ], + "value": "" }, { "id": "4f61120b-7c6b-4f8e-8543-898298451a56", "comment": "", @@ -739,6 +821,8 @@ "target": "css=.next", "targets": [ ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button", "xpath:idRelative"], ["xpath=//li[3]/button", "xpath:position"] ], "value": "" @@ -746,23 +830,25 @@ "id": "0de0345e-c9d2-4904-b797-a36965c5d82c", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "62ade28b-19d4-4c54-b179-0d36312c578f", "comment": "", "command": "click", - "target": "id=/logoutEndpoints/0/url", + "target": "id=root_logoutEndpoints_0_url", "targets": [ - ["id=/logoutEndpoints/0/url", "id"], - ["name=field38", "name"], - ["css=#\\/logoutEndpoints\\/0\\/url", "css:finder"], - ["xpath=//input[@id='/logoutEndpoints/0/url']", "xpath:attributes"], + ["id=root_logoutEndpoints_0_url", "id"], + ["css=#root_logoutEndpoints_0_url", "css:finder"], + ["xpath=//input[@id='root_logoutEndpoints_0_url']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -770,7 +856,7 @@ "id": "517e5991-197d-42fd-86ff-4da5fd04949b", "comment": "", "command": "type", - "target": "id=/logoutEndpoints/0/url", + "target": "id=root_logoutEndpoints_0_url", "targets": [ ["id=field38", "id"], ["name=field38", "name"], @@ -783,20 +869,20 @@ "id": "034f6a60-6b2d-42f1-adb4-515c8a750953", "comment": "", "command": "click", - "target": "id=/logoutEndpoints/0/bindingType", + "target": "id=root_logoutEndpoints_0_bindingType", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST']", "xpath:attributes"], - ["xpath=//select[@id='field39']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST')]", "xpath:innerText"] + ["id=root_logoutEndpoints_0_bindingType", "id"], + ["css=#root_logoutEndpoints_0_bindingType", "css:finder"], + ["xpath=//select[@id='root_logoutEndpoints_0_bindingType']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], "value": "" }, { "id": "6967d0bb-dbf7-4f57-9e55-6de71abd69c1", "comment": "", "command": "select", - "target": "id=/logoutEndpoints/0/bindingType", + "target": "id=root_logoutEndpoints_0_bindingType", "targets": [ ["id=/logoutEndpoints/0/bindingType", "id"], ["name=field39", "name"], @@ -809,7 +895,7 @@ "id": "542f9b37-a63d-4acb-ba3e-2ac3706b6667", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ ["css=.btn-success > translate-i18n", "css:finder"], ["xpath=//div/button/translate-i18n", "xpath:position"] @@ -819,20 +905,20 @@ "id": "39dedb16-bcd2-496a-af85-7d20a129593b", "comment": "", "command": "click", - "target": "id=/logoutEndpoints/1/url", + "target": "id=root_logoutEndpoints_1_url", "targets": [ - ["id=/logoutEndpoints/1/url", "id"], - ["name=field41", "name"], - ["css=#\\/logoutEndpoints\\/1\\/url", "css:finder"], - ["xpath=//input[@id='/logoutEndpoints/1/url']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_logoutEndpoints_1_url", "id"], + ["css=#root_logoutEndpoints_1_url", "css:finder"], + ["xpath=//input[@id='root_logoutEndpoints_1_url']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "d25f708c-f72a-4fb7-88c1-a25a61d9f72a", "comment": "", "command": "type", - "target": "id=/logoutEndpoints/1/url", + "target": "id=root_logoutEndpoints_1_url", "targets": [ ["id=field41", "id"], ["name=field41", "name"], @@ -845,19 +931,20 @@ "id": "bee9600e-b6db-484a-9b87-d7c657911108", "comment": "", "command": "click", - "target": "id=/logoutEndpoints/1/bindingType", + "target": "id=root_logoutEndpoints_1_bindingType", "targets": [ - ["css=#field42 > option:nth-child(3)", "css:finder"], - ["xpath=(//option[@value='2: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redir'])[2]", "xpath:attributes"], - ["xpath=//select[@id='field42']/option[3]", "xpath:idRelative"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/select-component/div/select/option[3]", "xpath:position"] + ["id=root_logoutEndpoints_1_bindingType", "id"], + ["css=#root_logoutEndpoints_1_bindingType", "css:finder"], + ["xpath=//select[@id='root_logoutEndpoints_1_bindingType']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:position"] ], "value": "" }, { "id": "e0e7ef9b-4ed1-4df2-b501-9cbb855baa7f", "comment": "", "command": "select", - "target": "id=/logoutEndpoints/1/bindingType", + "target": "id=root_logoutEndpoints_1_bindingType", "targets": [ ["id=/logoutEndpoints/1/bindingType", "id"], ["name=field42", "name"], @@ -876,60 +963,52 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "6c794e94-9c64-4683-816a-380432f2ed79", - "comment": "", - "command": "click", - "target": "id=/securityInfo/x509CertificateAvailable.true", - "targets": [ - ["id=/securityInfo/x509CertificateAvailable.true", "id"], - ["css=#\\/securityInfo\\/x509CertificateAvailable\\.true", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509CertificateAvailable.true']", "xpath:attributes"], - ["xpath=//input", "xpath:position"] - ], - "value": "" }, { "id": "f0ade90e-2c31-4a77-b936-3b2a00388477", "comment": "", "command": "click", - "target": "id=/securityInfo/authenticationRequestsSigned.true", + "target": "id=root_securityInfo_authenticationRequestsSigned-value.true", "targets": [ - ["id=/securityInfo/authenticationRequestsSigned.true", "id"], - ["css=#\\/securityInfo\\/authenticationRequestsSigned\\.true", "css:finder"], - ["xpath=//input[@id='/securityInfo/authenticationRequestsSigned.true']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div/label/input", "xpath:position"] + ["id=root_securityInfo_authenticationRequestsSigned-value.true", "id"], + ["name=root_securityInfo_authenticationRequestsSigned", "name"], + ["css=#root_securityInfo_authenticationRequestsSigned-value\\.true", "css:finder"], + ["xpath=//input[@id='root_securityInfo_authenticationRequestsSigned-value.true']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { "id": "e26eda6f-1897-42e2-9ea9-671b1ff88874", "comment": "", "command": "click", - "target": "id=/securityInfo/wantAssertionsSigned.true", + "target": "id=root_securityInfo_wantAssertionsSigned-value.true", "targets": [ - ["id=/securityInfo/wantAssertionsSigned.true", "id"], - ["css=#\\/securityInfo\\/wantAssertionsSigned\\.true", "css:finder"], - ["xpath=//input[@id='/securityInfo/wantAssertionsSigned.true']", "xpath:attributes"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div/label/input", "xpath:position"] + ["id=root_securityInfo_wantAssertionsSigned-value.true", "id"], + ["name=root_securityInfo_wantAssertionsSigned", "name"], + ["css=#root_securityInfo_wantAssertionsSigned-value\\.true", "css:finder"], + ["xpath=//input[@id='root_securityInfo_wantAssertionsSigned-value.true']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "3e11e54a-1b36-43ed-a8e5-d91f1fbed991", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/0/name", + "target": "id=root_securityInfo_x509Certificates_0_name", "targets": [ - ["id=/securityInfo/x509Certificates/0/name", "id"], - ["name=field50", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/0\\/name", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509Certificates/0/name']", "xpath:attributes"], - ["xpath=//div/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_0_name", "id"], + ["css=#root_securityInfo_x509Certificates_0_name", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_0_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "5acb8e19-16a3-4139-a961-1b58c11c4681", "comment": "", "command": "type", - "target": "id=/securityInfo/x509Certificates/0/name", + "target": "id=root_securityInfo_x509Certificates_0_name", "targets": [ ["id=field50", "id"], ["name=field50", "name"], @@ -942,25 +1021,26 @@ "id": "23ff8b87-ac6c-4f82-a779-aa91be11f49c", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/0/type.0", + "target": "id=root_securityInfo_x509Certificates_0_type-signing", "targets": [ - ["id=/securityInfo/x509Certificates/0/type.0", "id"], - ["name=field55", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/0\\/type\\.0", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509Certificates/0/type.0']", "xpath:attributes"], - ["xpath=//div/div/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_0_type-signing", "id"], + ["name=root_securityInfo_x509Certificates_0_type", "name"], + ["css=#root_securityInfo_x509Certificates_0_type-signing", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_0_type-signing']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "dd15088c-ddc9-42fd-8f8d-f73338be71b6", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/0/value", + "target": "id=root_securityInfo_x509Certificates_0_value", "targets": [ - ["id=/securityInfo/x509Certificates/0/value", "id"], - ["name=field52", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/0\\/value", "css:finder"], - ["xpath=//textarea[@id='/securityInfo/x509Certificates/0/value']", "xpath:attributes"], + ["id=root_securityInfo_x509Certificates_0_value", "id"], + ["css=#root_securityInfo_x509Certificates_0_value", "css:finder"], + ["xpath=//textarea[@id='root_securityInfo_x509Certificates_0_value']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/textarea", "xpath:idRelative"], ["xpath=//textarea", "xpath:position"] ], "value": "" @@ -968,7 +1048,7 @@ "id": "813bf709-6c73-41ac-837a-5be076fa43c7", "comment": "", "command": "type", - "target": "id=/securityInfo/x509Certificates/0/value", + "target": "id=root_securityInfo_x509Certificates_0_value", "targets": [ ["name=field52", "name"], ["css=.text-widget", "css:finder"], @@ -980,30 +1060,33 @@ "id": "fcf4cc15-54f4-4add-a093-e7ba5f2dc556", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[8]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "cbe577f6-3d18-49d9-95ab-2e597e5308a6", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/1/name", + "target": "id=root_securityInfo_x509Certificates_1_name", "targets": [ - ["id=/securityInfo/x509Certificates/1/name", "id"], - ["name=field54", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/1\\/name", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509Certificates/1/name']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_1_name", "id"], + ["css=#root_securityInfo_x509Certificates_1_name", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_1_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "ae98e813-77f4-424e-9141-d48e6127d9b6", "comment": "", "command": "type", - "target": "id=/securityInfo/x509Certificates/1/name", + "target": "id=root_securityInfo_x509Certificates_1_name", "targets": [ ["id=field54", "id"], ["name=field54", "name"], @@ -1016,32 +1099,33 @@ "id": "835ad053-0a10-4606-a148-c7ba36be316f", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/1/type.1", + "target": "id=root_securityInfo_x509Certificates_1_type-encryption", "targets": [ - ["id=/securityInfo/x509Certificates/1/type.1", "id"], - ["css=#\\/securityInfo\\/x509Certificates\\/1\\/type\\.1", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509Certificates/1/type.1']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-radio-widget/div/div[2]/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_1_type-encryption", "id"], + ["css=#root_securityInfo_x509Certificates_1_type-encryption", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_1_type-encryption']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "e272cafa-3aba-4aff-972e-b1d45e627b88", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/1/value", + "target": "id=root_securityInfo_x509Certificates_1_value", "targets": [ - ["id=/securityInfo/x509Certificates/1/value", "id"], - ["name=field56", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/1\\/value", "css:finder"], - ["xpath=//textarea[@id='/securityInfo/x509Certificates/1/value']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[3]/sf-form-element/div/sf-widget-chooser/textarea-component/div/textarea", "xpath:position"] + ["id=root_securityInfo_x509Certificates_1_value", "id"], + ["css=#root_securityInfo_x509Certificates_1_value", "css:finder"], + ["xpath=//textarea[@id='root_securityInfo_x509Certificates_1_value']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/textarea", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/textarea", "xpath:position"] ], "value": "" }, { "id": "ae42d668-92ba-4cb8-9daf-a2a64ac18404", "comment": "", "command": "type", - "target": "id=/securityInfo/x509Certificates/1/value", + "target": "id=root_securityInfo_x509Certificates_1_value", "targets": [ ["name=field56", "name"], ["css=.ng-untouched:nth-child(3)", "css:finder"], @@ -1063,23 +1147,25 @@ "id": "573c9f4c-c677-4175-96c5-3aaaf86e5ac1", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "50c1a3a1-b51c-41f9-81ff-d3d2894861ad", "comment": "", "command": "click", - "target": "id=/assertionConsumerServices/0/locationUrl", + "target": "id=root_assertionConsumerServices_0_locationUrl", "targets": [ - ["id=/assertionConsumerServices/0/locationUrl", "id"], - ["name=field60", "name"], - ["css=#\\/assertionConsumerServices\\/0\\/locationUrl", "css:finder"], - ["xpath=//input[@id='/assertionConsumerServices/0/locationUrl']", "xpath:attributes"], + ["id=root_assertionConsumerServices_0_locationUrl", "id"], + ["css=#root_assertionConsumerServices_0_locationUrl", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_0_locationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -1087,7 +1173,7 @@ "id": "6ff4002a-1c57-4778-b402-f917efaa5194", "comment": "", "command": "type", - "target": "id=/assertionConsumerServices/0/locationUrl", + "target": "id=root_assertionConsumerServices_0_locationUrl", "targets": [ ["id=field60", "id"], ["name=field60", "name"], @@ -1100,20 +1186,20 @@ "id": "e81c5045-98c3-499c-bff5-2645efa4c55d", "comment": "", "command": "click", - "target": "id=/assertionConsumerServices/0/binding", + "target": "id=root_assertionConsumerServices_0_binding", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST']", "xpath:attributes"], - ["xpath=//select[@id='field61']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST')]", "xpath:innerText"] + ["id=root_assertionConsumerServices_0_binding", "id"], + ["css=#root_assertionConsumerServices_0_binding", "css:finder"], + ["xpath=//select[@id='root_assertionConsumerServices_0_binding']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], "value": "" }, { "id": "24c810c8-747a-4ae2-91e5-16685d589f21", "comment": "", "command": "select", - "target": "id=/assertionConsumerServices/0/binding", + "target": "id=root_assertionConsumerServices_0_binding", "targets": [ ["id=/assertionConsumerServices/0/binding", "id"], ["name=field61", "name"], @@ -1126,41 +1212,46 @@ "id": "c221b1f5-2961-4cbd-a545-1e34a09b8153", "comment": "", "command": "click", - "target": "css=.custom-control-label", + "target": "id=root_assertionConsumerServices_0_makeDefault", "targets": [ - ["css=.custom-control-label", "css:finder"], - ["xpath=//div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Mark as Default')]", "xpath:innerText"] + ["id=root_assertionConsumerServices_0_makeDefault", "id"], + ["css=#root_assertionConsumerServices_0_makeDefault", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_0_makeDefault']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "cb058717-f20f-4a54-81e5-9a7dcf66ec0e", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "f9998203-830b-44d3-8392-45b737544177", "comment": "", "command": "click", - "target": "id=/assertionConsumerServices/1/locationUrl", + "target": "id=root_assertionConsumerServices_1_locationUrl", "targets": [ - ["id=/assertionConsumerServices/1/locationUrl", "id"], - ["name=field64", "name"], - ["css=#\\/assertionConsumerServices\\/1\\/locationUrl", "css:finder"], - ["xpath=//input[@id='/assertionConsumerServices/1/locationUrl']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_assertionConsumerServices_1_locationUrl", "id"], + ["css=#root_assertionConsumerServices_1_locationUrl", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_1_locationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "d5cbf5e8-7c5b-45f7-8645-dd9f9d39922e", "comment": "", "command": "type", - "target": "id=/assertionConsumerServices/1/locationUrl", + "target": "id=root_assertionConsumerServices_1_locationUrl", "targets": [ ["id=field64", "id"], ["name=field64", "name"], @@ -1173,19 +1264,20 @@ "id": "74de4187-3d1e-4a4d-af8e-966f00649ab8", "comment": "", "command": "click", - "target": "id=/assertionConsumerServices/1/binding", + "target": "id=root_assertionConsumerServices_1_binding", "targets": [ - ["css=#field65 > option:nth-child(3)", "css:finder"], - ["xpath=(//option[@value='2: urn:oasis:names:tc:SAML:1.0:profiles:browser-po'])[2]", "xpath:attributes"], - ["xpath=//select[@id='field65']/option[3]", "xpath:idRelative"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/select-component/div/select/option[3]", "xpath:position"] + ["id=root_assertionConsumerServices_1_binding", "id"], + ["css=#root_assertionConsumerServices_1_binding", "css:finder"], + ["xpath=//select[@id='root_assertionConsumerServices_1_binding']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:position"] ], "value": "" }, { "id": "929c1047-f455-418b-b23e-a383d681f028", "comment": "", "command": "select", - "target": "id=/assertionConsumerServices/1/binding", + "target": "id=root_assertionConsumerServices_1_binding", "targets": [ ["id=/assertionConsumerServices/1/binding", "id"], ["name=field65", "name"], @@ -1208,85 +1300,98 @@ "id": "134bf1f3-1e86-49e7-91de-185e513b02be", "comment": "", "command": "click", - "target": "css=div:nth-child(1) > sf-form-element > .has-success .custom-control-label", + "target": "id=root_relyingPartyOverrides_signAssertion", "targets": [ - ["css=div:nth-child(1) > sf-form-element > .has-success .custom-control-label", "css:finder"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Sign the Assertion?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_signAssertion", "id"], + ["css=#root_relyingPartyOverrides_signAssertion", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_signAssertion']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { "id": "5cd1ae5f-678a-4be8-a03f-b290006e52fe", "comment": "", "command": "click", - "target": "css=div:nth-child(2) > sf-form-element .custom-control-label", + "target": "id=root_relyingPartyOverrides_dontSignResponse", "targets": [ - ["css=div:nth-child(2) > sf-form-element .custom-control-label", "css:finder"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"] + ["id=root_relyingPartyOverrides_dontSignResponse", "id"], + ["css=#root_relyingPartyOverrides_dontSignResponse", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_dontSignResponse']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "5895d555-6ef5-4344-b177-00e905f9007c", "comment": "", "command": "click", - "target": "css=div:nth-child(3) > sf-form-element .custom-control-label", + "target": "id=root_relyingPartyOverrides_turnOffEncryption", "targets": [ - ["css=div:nth-child(3) > sf-form-element .custom-control-label", "css:finder"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Turn off Encryption of Response?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_turnOffEncryption", "id"], + ["css=#root_relyingPartyOverrides_turnOffEncryption", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_turnOffEncryption']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[3]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "8d834380-e312-494d-9b4b-c5b798cc9b15", "comment": "", "command": "click", - "target": "css=div:nth-child(4) .custom-control-label", + "target": "id=root_relyingPartyOverrides_useSha", "targets": [ - ["css=div:nth-child(4) .custom-control-label", "css:finder"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Use SHA1 Signing Algorithm?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_useSha", "id"], + ["css=#root_relyingPartyOverrides_useSha", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_useSha']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[4]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "bcf532a9-ba5a-4ca1-a342-dde53bc4a592", "comment": "", "command": "click", - "target": "css=div:nth-child(5) .custom-control-label", + "target": "id=root_relyingPartyOverrides_ignoreAuthenticationMethod", "targets": [ - ["css=div:nth-child(5) .custom-control-label", "css:finder"], - ["xpath=//div[5]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Ignore any SP-Requested Authentication Method?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_ignoreAuthenticationMethod", "id"], + ["css=#root_relyingPartyOverrides_ignoreAuthenticationMethod", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_ignoreAuthenticationMethod']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[5]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "45f3df44-1c34-4649-aedb-14207e9ce999", "comment": "", "command": "click", - "target": "css=div:nth-child(6) .custom-control-label", + "target": "id=root_relyingPartyOverrides_omitNotBefore", "targets": [ - ["css=div:nth-child(6) .custom-control-label", "css:finder"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Omit Not Before Condition?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_omitNotBefore", "id"], + ["css=#root_relyingPartyOverrides_omitNotBefore", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_omitNotBefore']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[6]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "7ccb7d88-b113-4ee9-8582-b3d781fa8846", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/responderId", + "target": "id=root_relyingPartyOverrides_responderId", "targets": [ - ["id=/relyingPartyOverrides/responderId", "id"], - ["name=field121", "name"], - ["css=#\\/relyingPartyOverrides\\/responderId", "css:finder"], - ["xpath=//input[@id='/relyingPartyOverrides/responderId']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_relyingPartyOverrides_responderId", "id"], + ["css=#root_relyingPartyOverrides_responderId", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_responderId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[7]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "afe1b839-3421-4816-bf69-c804add681ba", "comment": "", "command": "type", - "target": "id=/relyingPartyOverrides/responderId", + "target": "id=root_relyingPartyOverrides_responderId", "targets": [ ["id=field75", "id"], ["name=field75", "name"], @@ -1299,10 +1404,13 @@ "id": "ba74d18d-0996-485f-8a9f-01a39428eb0c", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ - ["css=div:nth-child(8) .btn > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.row:nth-child(8) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -1316,13 +1424,12 @@ "id": "2a91666b-5453-4064-8923-c3384835b6fd", "comment": "", "command": "click", - "target": "css=.btn-outline-secondary", + "target": "css=.toggle-button", "targets": [ - ["css=.btn-outline-secondary", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/0-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[15]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div[2]/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1336,20 +1443,23 @@ "id": "6e8718ef-e053-48d8-91e5-f5128e371f56", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/0__option--0", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/0__option--0", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/0__option--0", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/0__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/0__listbox']/li", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_0']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified')]", "xpath:innerText"] ], "value": "" }, { "id": "ec3afb37-30b4-4d07-93a6-dcf022605532", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], ["xpath=//div/button", "xpath:position"], @@ -1367,12 +1477,12 @@ "id": "fd33610c-dbca-410d-b2a4-117a1b2b6a79", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/nameIdFormats\\/1-container .btn", + "target": "css=.mt-2:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/1-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/1-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[17]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1386,20 +1496,23 @@ "id": "3cd47415-5e57-4148-a40b-9571e6791f3f", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/1__option--1", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/1__option--1", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/1__option--1", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/1__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/1__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[2]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_1']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress')]", "xpath:innerText"] ], "value": "" }, { "id": "8b340d1f-4944-4d10-a4cd-5e79be6804ef", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], ["xpath=//div/button", "xpath:position"], @@ -1417,12 +1530,12 @@ "id": "208b33cf-f983-4a82-9b1b-19cdf2a937fc", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/nameIdFormats\\/2-container .btn", + "target": "css=.mt-2:nth-child(3) .toggle-button", "targets": [ - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/2-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/2-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(3) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[19]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1436,20 +1549,23 @@ "id": "b4beb2b3-8481-4431-9299-a39a4107f17f", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/2__option--2", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/2__option--2", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/2__option--2", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/2__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/2__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_2']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent')]", "xpath:innerText"] ], "value": "" }, { "id": "d6e7a640-a578-415b-9c1b-b2313b62ad46", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], ["xpath=//div/button", "xpath:position"], @@ -1467,12 +1583,12 @@ "id": "788a5b63-a75f-4aeb-9a5d-17c41e8f718e", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/nameIdFormats\\/3-container .btn", + "target": "css=.mt-2:nth-child(4) .toggle-button", "targets": [ - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/3-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/3-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(4) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[21]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div[2]/div[4]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1486,20 +1602,23 @@ "id": "c82d6951-13e2-4d32-9e19-eac52bfdc188", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/3__option--3", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/3__option--3", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/3__option--3", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/3__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/3__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:transient", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_3']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:transient')]", "xpath:innerText"] ], "value": "" }, { "id": "4c15be93-75be-4673-b703-07a705300d0f", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ ["css=div:nth-child(8) .btn > translate-i18n", "css:finder"], ["xpath=//div/button/translate-i18n", "xpath:position"] @@ -1509,7 +1628,7 @@ "id": "1a1b509e-1768-4291-820d-26f4b73a9d71", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/4", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[2]/div/div/div[1]/div/div/div[2]/div[5]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ ["id=/relyingPartyOverrides/nameIdFormats/4", "id"], ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/4", "css:finder"], @@ -1522,7 +1641,7 @@ "id": "433d6e9d-9d03-4042-9ee0-6284570f8a3c", "comment": "", "command": "type", - "target": "id=/relyingPartyOverrides/nameIdFormats/4", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[2]/div/div/div[1]/div/div/div[2]/div[5]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ ["id=field83", "id"], ["css=#field83", "css:finder"], @@ -1531,12 +1650,33 @@ ["xpath=//li[5]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] ], "value": "somethingElse" + }, { + "id": "26146f5e-533f-42c6-b1e6-e107a471ba8f", + "comment": "", + "command": "click", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_4-item-4", + "targets": [ + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_4-item-4", "id"], + ["linkText=somethingElse", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_4-item-4", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_4-item-4']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_4']/a[5]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[5]", "xpath:href"], + ["xpath=//a[5]", "xpath:position"], + ["xpath=//a[contains(.,'somethingElse')]", "xpath:innerText"] + ], + "value": "" }, { "id": "c8bb3bee-3d61-4324-a3aa-38b78232b969", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .btn", - "targets": [], + "target": "css=.row:nth-child(4) .array-add-button", + "targets": [ + ["css=.row:nth-child(9) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[25]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[9]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div/button", "xpath:position"] + ], "value": "" }, { "id": "be2aeaca-cf62-4ea9-9ee4-c97e8ae13c6e", @@ -1549,7 +1689,7 @@ "id": "cbf15c4c-35d9-4f80-ba3d-bfe960048cd1", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/authenticationMethods\\/0-container .btn", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div/div/div[1]/div/div[1]/div/div/button", "targets": [ ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/0-container .btn", "css:finder"], ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], @@ -1568,20 +1708,23 @@ "id": "6c62d514-0143-49d9-97b3-6b7cb443df9d", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/0__option--0", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/0__option--0", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/0__option--0", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/authenticationMethods/0__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/authenticationMethods/0__listbox']/li", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0", "id"], + ["linkText=https://refeds.org/profile/mfa", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_0']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'https://refeds.org/profile/mfa')]", "xpath:innerText"] ], "value": "" }, { "id": "ed769470-9c3f-4c23-bbed-85513dcea800", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .btn", + "target": "css=.row:nth-child(4) .array-add-button", "targets": [ ["css=div:nth-child(9) .d-flex > .btn", "css:finder"], ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button", "xpath:position"] @@ -1598,7 +1741,7 @@ "id": "2b063eb8-f2d6-4a59-85bb-b04c467d9874", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/authenticationMethods\\/1-container .btn", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[2]/div/div[1]/div/div[1]/div/div/button", "targets": [ ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/1-container .btn", "css:finder"], ["xpath=(//button[@type='button'])[8]", "xpath:attributes"], @@ -1617,20 +1760,23 @@ "id": "5a32d59b-1ac3-4cd0-a2d8-0e934f8182fd", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/1__option--1", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/1__option--1", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/1__option--1", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/authenticationMethods/1__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/authenticationMethods/1__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[2]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_1']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken')]", "xpath:innerText"] ], "value": "" }, { "id": "892ddc96-970b-4dde-9189-0dc9ed197dab", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .btn", + "target": "css=.row:nth-child(4) .array-add-button", "targets": [ ["css=div:nth-child(9) .d-flex > .btn", "css:finder"], ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button", "xpath:position"] @@ -1647,7 +1793,7 @@ "id": "64e215d9-6e46-422f-882c-13b6fb102622", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/authenticationMethods\\/2-container .btn", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[3]/div/div[1]/div/div[1]/div/div/button", "targets": [ ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/2-container .btn", "css:finder"], ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], @@ -1666,20 +1812,23 @@ "id": "6a7bce1a-34be-4d4c-b732-d2f198e8b8a1", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/2__option--2", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/2__option--2", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/2__option--2", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/authenticationMethods/2__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/authenticationMethods/2__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_2']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport')]", "xpath:innerText"] ], "value": "" }, { "id": "f0dd4b79-eab5-4d4b-af2e-07ca661f8288", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .btn", + "target": "css=.row:nth-child(4) .array-add-button", "targets": [ ["css=div:nth-child(9) .btn > translate-i18n", "css:finder"], ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button/translate-i18n", "xpath:position"] @@ -1689,7 +1838,7 @@ "id": "dacd34b0-9e48-4838-b137-bf22dd027ed0", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/3", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[4]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ ["id=/relyingPartyOverrides/authenticationMethods/3", "id"], ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/3", "css:finder"], @@ -1702,7 +1851,7 @@ "id": "cc9dd18b-ee87-4aa7-91f2-59f02834759b", "comment": "", "command": "type", - "target": "id=/relyingPartyOverrides/authenticationMethods/3", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[4]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ ["id=field87", "id"], ["css=#field87", "css:finder"], @@ -1711,15 +1860,33 @@ ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] ], "value": "otherThings" + }, { + "id": "7e80934c-c706-42e3-84c2-012dfcfb88a3", + "comment": "", + "command": "click", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_3-item-3", + "targets": [ + ["id=option-selector-root_relyingPartyOverrides_authenticationMethods_3-item-3", "id"], + ["linkText=otherThings", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_3-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_3-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_3']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'otherThings')]", "xpath:innerText"] + ], + "value": "" }, { "id": "7c85fe59-dc95-4328-a010-33d1a06a5ce5", "comment": "", "command": "click", - "target": "css=div:nth-child(10) .custom-control-label", + "target": "id=root_relyingPartyOverrides_forceAuthn", "targets": [ - ["css=div:nth-child(10) .custom-control-label", "css:finder"], - ["xpath=//div[10]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Force AuthN')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_forceAuthn", "id"], + ["css=#root_relyingPartyOverrides_forceAuthn", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_forceAuthn']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[10]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[10]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { @@ -1753,26 +1920,15 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "14ca713a-313d-4cda-82ca-a0b814ce81dc", - "comment": "", - "command": "click", - "target": "css=.custom-control-label", - "targets": [ - ["css=.custom-control-label", "css:finder"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Enable this service?')]", "xpath:innerText"] - ], - "value": "" }, { "id": "3baa7bd3-55c0-4d10-8aa3-c0daa63ec4d4", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(1) .text-truncate", + "target": "css=div:nth-child(2) > div:nth-child(2) > .border-bottom > .text-truncate", "targets": [ - ["css=.d-block > primitive-property:nth-child(1) .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], - ["xpath=//div/span[2]", "xpath:position"], + ["css=div:nth-child(2) > div:nth-child(2) > .border-bottom > .text-truncate", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section/div/div[2]/div[2]/div[2]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'test-1234')]", "xpath:innerText"] ], "value": "test-1234" @@ -1780,22 +1936,24 @@ "id": "0d355ff0-0449-49a7-ae75-14d7c405b97c", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(7) .py-2:nth-child(3) > .d-flex:nth-child(1) > .text-truncate", + "target": "css=.mb-4:nth-child(7) .py-2:nth-child(3) > .d-flex:nth-child(1) > .d-block", "targets": [ - ["css=.mb-4:nth-child(7) .py-2:nth-child(3) > .d-flex:nth-child(1) > .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[7]/div/div[2]/object-property/array-property/div/div[3]/div/div[2]", "xpath:idRelative"], - ["xpath=//section[7]/div/div[2]/object-property/array-property/div/div[3]/div/div[2]", "xpath:position"] + ["css=.mb-4:nth-child(7) .py-2:nth-child(3) > .d-flex:nth-child(1) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[7]/div/div[2]/div[2]/div/div[3]/div/span", "xpath:idRelative"], + ["xpath=//section[7]/div/div[2]/div[2]/div/div[3]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'http://test.org/assert2')]", "xpath:innerText"] ], "value": "http://test.org/assert2" }, { "id": "e53030b6-f344-4361-981d-b8303a721c5d", "comment": "", "command": "assertText", - "target": "css=array-property:nth-child(8) .border-0", + "target": "css=.mb-4:nth-child(4) .d-flex:nth-child(5) > .d-block", "targets": [ - ["css=array-property:nth-child(8) .border-0", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[8]/div/div[2]/object-property/object-property/array-property/div/ul/li[5]", "xpath:idRelative"], - ["xpath=//section[8]/div/div[2]/object-property/object-property/array-property/div/ul/li[5]", "xpath:position"] + ["css=.mb-4:nth-child(4) .d-flex:nth-child(5) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[4]/div/div[2]/div[2]/div/div[2]/ul/li[5]/span", "xpath:idRelative"], + ["xpath=//li[5]/span", "xpath:position"], + ["xpath=//span[contains(.,'somethingElse')]", "xpath:innerText"] ], "value": "somethingElse" }, { @@ -1948,11 +2106,12 @@ "id": "01da89d4-e043-4f99-9d98-dcb42b9b4777", "comment": "", "command": "click", - "target": "css=.btn-link", + "target": "css=.px-3", "targets": [ - ["css=.btn-link", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div/button", "xpath:position"], + ["css=.px-3", "css:finder"], + ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/form/div/div/div/button", "xpath:idRelative"], + ["xpath=//form/div/div/div/button", "xpath:position"], ["xpath=//button[contains(.,'Clear')]", "xpath:innerText"] ], "value": "" @@ -1993,11 +2152,11 @@ "id": "16271513-203c-4528-870f-dcf73f4d81cb", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(1) .d-block:nth-child(2)", + "target": "css=div:nth-child(2) > div:nth-child(2) > .d-flex > .text-truncate", "targets": [ - ["css=.d-block > primitive-property:nth-child(1) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/span[2]", "xpath:idRelative"], - ["xpath=//div/span[2]", "xpath:position"], + ["css=div:nth-child(2) > div:nth-child(2) > .d-flex > .text-truncate", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[2]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'test-1234')]", "xpath:innerText"] ], "value": "test-1234" @@ -2005,22 +2164,23 @@ "id": "3f2c3eab-ecbf-45f3-bcdc-a5cad766b27c", "comment": "", "command": "assertText", - "target": "css=array-property:nth-child(5) .py-2:nth-child(2) > .d-flex:nth-child(3) > .text-truncate", + "target": "css=div:nth-child(2) > div:nth-child(4) > .py-2:nth-child(2) > .d-flex:nth-child(3) > .d-block", "targets": [ - ["css=array-property:nth-child(5) .py-2:nth-child(2) > .d-flex:nth-child(3) > .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/array-property/div/div[2]/div[3]/div[2]", "xpath:idRelative"], - ["xpath=//div[3]/div[2]", "xpath:position"] + ["css=div:nth-child(2) > div:nth-child(4) > .py-2:nth-child(2) > .d-flex:nth-child(3) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[4]/div[2]/div[3]/span", "xpath:idRelative"], + ["xpath=//div[3]/span", "xpath:position"], + ["xpath=//span[contains(.,'user@test.org')]", "xpath:innerText"] ], "value": "user@test.org" }, { "id": "467409c7-1007-4c45-80d2-0b4eea5199a0", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(2) primitive-property:nth-child(2) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(4) div:nth-child(2) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(2) primitive-property:nth-child(2) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[2]/div/div[2]/object-property/object-property/primitive-property[2]/div/span[2]", "xpath:idRelative"], - ["xpath=//section[2]/div/div[2]/object-property/object-property/primitive-property[2]/div/span[2]", "xpath:position"], + ["css=.mb-4:nth-child(4) div:nth-child(2) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[2]/div/div[2]/div[2]/div/div[2]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[2]/div/div[2]/div[2]/div/div[2]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'http://test.org/info')]", "xpath:innerText"] ], "value": "http://test.org/info" @@ -2028,11 +2188,11 @@ "id": "eaaf9d59-1466-4736-924c-56c9b3f7522f", "comment": "", "command": "assertText", - "target": "css=array-property:nth-child(2) .text-truncate:nth-child(2)", + "target": "css=.d-flex:nth-child(2) .d-flex:nth-child(2)", "targets": [ - ["css=array-property:nth-child(2) .text-truncate:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[3]/div/div[2]/object-property/object-property/array-property/div/div/ul/li[2]", "xpath:idRelative"], - ["xpath=//div/div/ul/li[2]", "xpath:position"], + ["css=.d-flex:nth-child(2) .d-flex:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[3]/div/div[2]/div[2]/div/div[2]/ul/li[2]", "xpath:idRelative"], + ["xpath=//ul/li[2]", "xpath:position"], ["xpath=//li[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress')]", "xpath:innerText"] ], "value": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" @@ -2040,44 +2200,46 @@ "id": "2a23096f-d5cd-4727-af1b-130388117aa0", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(4) .py-2:nth-child(3) > .d-flex:nth-child(1) > .text-truncate", + "target": "css=.mb-4:nth-child(6) .py-2:nth-child(3) > .d-flex:nth-child(1) > .d-block", "targets": [ - ["css=.mb-4:nth-child(4) .py-2:nth-child(3) > .d-flex:nth-child(1) > .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[4]/div/div[2]/object-property/array-property/div/div[3]/div/div[2]", "xpath:idRelative"], - ["xpath=//section[4]/div/div[2]/object-property/array-property/div/div[3]/div/div[2]", "xpath:position"] + ["css=.mb-4:nth-child(6) .py-2:nth-child(3) > .d-flex:nth-child(1) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[4]/div/div[2]/div[2]/div/div[3]/div/span", "xpath:idRelative"], + ["xpath=//section[4]/div/div[2]/div[2]/div/div[3]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'http://test.org/logout2')]", "xpath:innerText"] ], "value": "http://test.org/logout2" }, { "id": "fe47ffd2-d2a0-4264-90fe-31b998f81ac2", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(5) primitive-property:nth-child(3) .d-block:nth-child(2)", + "target": "css=div:nth-child(1) > .py-2:nth-child(2) > .d-flex:nth-child(3) > .d-block", "targets": [ - ["css=.mb-4:nth-child(5) primitive-property:nth-child(3) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[5]/div/div[2]/object-property/object-property/primitive-property[3]/div/span[2]", "xpath:idRelative"], - ["xpath=//section[5]/div/div[2]/object-property/object-property/primitive-property[3]/div/span[2]", "xpath:position"] + ["css=div:nth-child(1) > .py-2:nth-child(2) > .d-flex:nth-child(3) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[6]/div/div[2]/div[2]/div/div[2]/div[3]/span", "xpath:idRelative"], + ["xpath=//section[6]/div/div[2]/div[2]/div/div[2]/div[3]/span", "xpath:position"] ], "value": "true" }, { "id": "7300785c-b83e-49b8-97a6-d66516f6c133", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(6) .py-2:nth-child(2) > .d-flex:nth-child(1) > .text-truncate", + "target": "css=.mb-4:nth-child(8) .py-2:nth-child(2) > .d-flex:nth-child(1) > .d-block", "targets": [ - ["css=.mb-4:nth-child(6) .py-2:nth-child(2) > .d-flex:nth-child(1) > .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[6]/div/div[2]/object-property/array-property/div/div[2]/div/div[2]", "xpath:idRelative"], - ["xpath=//section[6]/div/div[2]/object-property/array-property/div/div[2]/div/div[2]", "xpath:position"] + ["css=.mb-4:nth-child(8) .py-2:nth-child(2) > .d-flex:nth-child(1) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[6]/div/div[2]/div[2]/div/div[2]/div/span", "xpath:idRelative"], + ["xpath=//section[6]/div/div[2]/div[2]/div/div[2]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'http://test.org/assert')]", "xpath:innerText"] ], "value": "http://test.org/assert" }, { "id": "951a21c9-4cd3-4989-8dc0-77760ca0dc95", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(7) primitive-property:nth-child(7) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(9) div:nth-child(3) .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(7) primitive-property:nth-child(7) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[7]/div/div[2]/object-property/object-property/primitive-property[7]/div/span[2]", "xpath:idRelative"], - ["xpath=//section[7]/div/div[2]/object-property/object-property/primitive-property[7]/div/span[2]", "xpath:position"], + ["css=.mb-4:nth-child(9) div:nth-child(3) .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[7]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[7]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'responder-id-123')]", "xpath:innerText"] ], "value": "responder-id-123" @@ -2096,12 +2258,13 @@ "id": "2c46cdcd-d5a5-47fe-aa7b-0120fd2fcfc9", "comment": "", "command": "click", - "target": "css=.mb-4:nth-child(1) .actions span", + "target": "css=.mb-4:nth-child(3) .edit-link", "targets": [ - ["css=.mb-4:nth-child(1) .actions span", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div/div/button/span", "xpath:idRelative"], - ["xpath=//div/button/span", "xpath:position"], - ["xpath=//span[contains(.,'Edit')]", "xpath:innerText"] + ["css=.mb-4:nth-child(3) .edit-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div/div/button", "xpath:idRelative"], + ["xpath=//section/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Edit')]", "xpath:innerText"] ], "value": "" }, { @@ -2111,30 +2274,44 @@ "target": "5000", "targets": [], "value": "" + }, { + "id": "c43c090c-c782-4705-b7d6-02f162761a45", + "comment": "", + "command": "type", + "target": "id=root_serviceProviderName", + "targets": [], + "value": "" }, { "id": "99731068-2016-4a7f-8a38-febfb711d027", "comment": "", "command": "type", - "target": "id=/serviceProviderName", + "target": "id=root_serviceProviderName", "targets": [ - ["id=/serviceProviderName", "id"], - ["name=field93", "name"], - ["css=#\\/serviceProviderName", "css:finder"], - ["xpath=//input[@id='/serviceProviderName']", "xpath:attributes"], + ["id=root_serviceProviderName", "id"], + ["css=#root_serviceProviderName", "css:finder"], + ["xpath=//input[@id='root_serviceProviderName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "Service Provider v2" + }, { + "id": "ede9104f-71dd-40a9-9292-526dcf5691ba", + "comment": "", + "command": "type", + "target": "id=root_contacts_0_name", + "targets": [], + "value": "" }, { "id": "c6484ff1-8bf2-4442-8f73-13c7af38634a", "comment": "", "command": "type", - "target": "id=/contacts/0/name", + "target": "id=root_contacts_0_name", "targets": [ - ["id=/contacts/0/name", "id"], - ["name=field102", "name"], - ["css=#\\/contacts\\/0\\/name", "css:finder"], - ["xpath=//input[@id='/contacts/0/name']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_0_name", "id"], + ["css=#root_contacts_0_name", "css:finder"], + ["xpath=//input[@id='root_contacts_0_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "Test User v2" }, { @@ -2144,20 +2321,24 @@ "target": "css=.btn-info", "targets": [ ["css=.btn-info", "css:finder"], - ["xpath=//div[2]/button", "xpath:position"], - ["xpath=//button[contains(.,'Save')]", "xpath:innerText"] + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,' Save')]", "xpath:innerText"] ], "value": "" }, { "id": "c5985278-503e-4258-bba9-de7d2f157db0", "comment": "", "command": "click", - "target": "css=.btn-link:nth-child(1)", + "target": "linkText=Version History", "targets": [ - ["css=.btn-link:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/a/translate-i18n", "xpath:idRelative"], - ["xpath=//div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Version History')]", "xpath:innerText"] + ["linkText=Version History", "linkText"], + ["css=div:nth-child(1) > .btn-link", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/source/5353123e-dd8a-400c-a2b3-42868e49461e/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] ], "value": "" }, { @@ -2188,7 +2369,9 @@ "target": "css=.btn-primary", "targets": [ ["css=.btn-primary", "css:finder"], - ["xpath=//history-list/button", "xpath:position"], + ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/button", "xpath:idRelative"], + ["xpath=//section/div/div/button", "xpath:position"], ["xpath=//button[contains(.,'Compare Selected(2)')]", "xpath:innerText"] ], "value": "" @@ -2196,52 +2379,63 @@ "id": "90cb59ce-695b-49d0-983b-01e445f3a384", "comment": "", "command": "waitForElementVisible", - "target": "css=.d-block > primitive-property:nth-child(1) .d-block:nth-child(2)", + "target": "css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=.d-block > primitive-property:nth-child(1) .d-block:nth-child(2)", "css:finder"], - ["xpath=//div/span[2]", "xpath:position"], - ["xpath=//span[contains(.,'test-1234')]", "xpath:innerText"] + ["css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], + ["xpath=//div/span[2]", "xpath:position"] ], "value": "10000" }, { "id": "1c0b7514-92b7-4e07-b462-467113f4a8cd", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(2) .d-block:nth-child(2)", + "target": "css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=.d-block > primitive-property:nth-child(2) .d-block:nth-child(2)", "css:finder"], - ["xpath=//primitive-property[2]/div/span[2]", "xpath:position"] + ["css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], + ["xpath=//div/span[2]", "xpath:position"] ], "value": "Service Provider v2" + }, { + "id": "853b7142-e733-4f2a-b7e0-8303f582740f", + "comment": "", + "command": "waitForElementVisible", + "target": "css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(3)", + "targets": [], + "value": "10000" }, { "id": "fc7c4e1e-03c7-4108-9a8d-f469e7679ae4", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(2) .d-block:nth-child(3)", + "target": "css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(3)", "targets": [ - ["css=.d-block > primitive-property:nth-child(2) .d-block:nth-child(3)", "css:finder"], - ["xpath=//primitive-property[2]/div/span[3]", "xpath:position"], - ["xpath=//span[contains(.,'Test Provider')]", "xpath:innerText"] + ["css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[3]", "xpath:idRelative"], + ["xpath=//span[3]", "xpath:position"] ], "value": "Test Provider" }, { "id": "138ad58b-f0a2-436b-a8b0-43484f4180e6", "comment": "", "command": "assertText", - "target": "css=.bg-diff > .py-2:nth-child(2) > .d-flex:nth-child(1) > .text-truncate:nth-child(3)", + "target": "css=.bg-diff:nth-child(2) > .d-flex:nth-child(1) > .d-block:nth-child(3)", "targets": [ - ["css=.bg-diff > .py-2:nth-child(2) > .d-flex:nth-child(1) > .text-truncate:nth-child(3)", "css:finder"], - ["xpath=//div[2]/div/div[2]", "xpath:position"] + ["css=.bg-diff:nth-child(2) > .d-flex:nth-child(1) > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[5]/div[2]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[5]/div[2]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'Test User v2')]", "xpath:innerText"] ], "value": "Test User v2" }, { "id": "17049c95-4724-4521-ac47-6b64bde822aa", "comment": "", "command": "assertText", - "target": "css=.py-2:nth-child(2) > .d-flex:nth-child(1) > .text-truncate:nth-child(4)", + "target": "css=.py-2:nth-child(2) > .d-flex:nth-child(1) > .d-block:nth-child(4)", "targets": [ - ["css=.py-2:nth-child(2) > .d-flex:nth-child(1) > .text-truncate:nth-child(4)", "css:finder"], - ["xpath=//div/div[3]", "xpath:position"] + ["css=.py-2:nth-child(2) > .d-flex:nth-child(1) > .d-block:nth-child(4)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[5]/div[2]/div/span[3]", "xpath:idRelative"], + ["xpath=//div[5]/div[2]/div/span[3]", "xpath:position"] ], "value": "Test User" }, { @@ -2274,11 +2468,12 @@ "id": "8ff1a53e-948a-4732-8414-2f371e410c7d", "comment": "", "command": "click", - "target": "css=.mb-4:nth-child(2) .actions span", + "target": "css=.mb-4:nth-child(4) .edit-link", "targets": [ - ["css=.mb-4:nth-child(2) .actions span", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[2]/div/div/div/button/span", "xpath:idRelative"], - ["xpath=//section[2]/div/div/div/button/span", "xpath:position"] + ["css=.mb-4:nth-child(4) .edit-link", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[2]/div/div/div/button", "xpath:idRelative"], + ["xpath=//section[2]/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -2288,16 +2483,23 @@ "target": "5000", "targets": [], "value": "" + }, { + "id": "a701c68a-f605-428a-80b0-aba22a74d7ee", + "comment": "", + "command": "type", + "target": "id=root_mdui_displayName", + "targets": [], + "value": "" }, { "id": "6f422a9d-6c2f-4200-bdd3-411ed44773a3", "comment": "", "command": "type", - "target": "id=/mdui/displayName", + "target": "id=root_mdui_displayName", "targets": [ - ["id=/mdui/displayName", "id"], - ["name=field111", "name"], - ["css=#\\/mdui\\/displayName", "css:finder"], - ["xpath=//input[@id='/mdui/displayName']", "xpath:attributes"], + ["id=root_mdui_displayName", "id"], + ["css=#root_mdui_displayName", "css:finder"], + ["xpath=//input[@id='root_mdui_displayName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div[3]/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "Display Name v3" @@ -2319,6 +2521,13 @@ ["xpath=//translate-i18n[contains(.,'Save')]", "xpath:innerText"] ], "value": "" + }, { + "id": "7cb06481-49e0-41a5-b45c-e75c15fda227", + "comment": "", + "command": "pause", + "target": "5000", + "targets": [], + "value": "" }, { "id": "f2e3d420-5cf5-4165-94da-41688839cf82", "comment": "", @@ -2335,20 +2544,51 @@ "id": "d1389dc8-86b0-44df-a39e-0037bc695403", "comment": "", "command": "click", + "target": "linkText=Service Provider v2", + "targets": [ + ["linkText=Service Provider v2", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'Service Provider v2')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/source/7060569d-8281-4418-ad56-900b8b608ece/configuration/options')]", "xpath:href"], + ["xpath=//td/a", "xpath:position"], + ["xpath=//a[contains(.,'Service Provider v2')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "68972f7d-8268-4701-865c-585a39987208", + "comment": "", + "command": "click", + "target": "linkText=Version History", + "targets": [ + ["linkText=Version History", "linkText"], + ["css=#navigation .btn-link", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/source/7060569d-8281-4418-ad56-900b8b608ece/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "481d1b54-95d4-4e82-8bd3-eb236a68a624", + "comment": "", + "command": "click", "target": "css=tr:nth-child(1) .custom-control-label", "targets": [ ["css=tr:nth-child(1) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/table/tbody/tr/td/div/label", "xpath:idRelative"], ["xpath=//label", "xpath:position"], ["xpath=//label[contains(.,'Check to select')]", "xpath:innerText"] ], "value": "" }, { - "id": "68972f7d-8268-4701-865c-585a39987208", + "id": "3ee7f2c3-8b40-48c5-a7b0-a1ea1ec36159", "comment": "", "command": "click", - "target": "css=tr:nth-child(3) .custom-control-label", + "target": "css=tr:nth-child(2) .custom-control-label", "targets": [ ["css=tr:nth-child(2) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/table/tbody/tr[2]/td/div/label", "xpath:idRelative"], ["xpath=//tr[2]/td/div/label", "xpath:position"] ], "value": "" @@ -2367,14 +2607,19 @@ "id": "98aafaee-a430-4a2d-9aa5-b4c9ce0c4908", "comment": "", "command": "waitForElementVisible", - "target": "css=.mb-4:nth-child(2) primitive-property:nth-child(1) .d-block:nth-child(2)", - "targets": [], - "value": "10000" + "target": "css=div:nth-child(1) > div > .bg-diff > .d-block:nth-child(2)", + "targets": [ + ["css=div:nth-child(1) > div > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[2]/div/div[2]/div[2]/div/div/div/span[2]", "xpath:idRelative"], + ["xpath=//section[2]/div/div[2]/div[2]/div/div/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'Display Name v3')]", "xpath:innerText"] + ], + "value": "30000" }, { "id": "5a976e2c-dc5f-4021-9cc6-3cad12e771ea", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(2) primitive-property:nth-child(1) .d-block:nth-child(2)", + "target": "css=div:nth-child(1) > div > .bg-diff > .d-block:nth-child(2)", "targets": [ ["css=.mb-4:nth-child(2) primitive-property:nth-child(1) .d-block:nth-child(2)", "css:finder"], ["xpath=//section[2]/div/div[2]/object-property/object-property/primitive-property/div/span[2]", "xpath:position"], @@ -2385,19 +2630,13 @@ "id": "72328587-fe8d-4dc8-bc3d-a163f91a1ad6", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(2) primitive-property:nth-child(1) .d-block:nth-child(3)", + "target": "css=div:nth-child(1) > div > .bg-diff > .d-block:nth-child(3)", "targets": [ - ["css=.mb-4:nth-child(2) primitive-property:nth-child(1) .d-block:nth-child(3)", "css:finder"], - ["xpath=//section[2]/div/div[2]/object-property/object-property/primitive-property/div/span[3]", "xpath:position"] + ["css=div:nth-child(1) > div > .bg-diff > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[2]/div/div[2]/div[2]/div/div/div/span[3]", "xpath:idRelative"], + ["xpath=//section[2]/div/div[2]/div[2]/div/div/div/span[3]", "xpath:position"] ], "value": "Display Name" - }, { - "id": "c88d3154-c810-47cd-b8d8-48e705bad0f4", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1334-2.side b/backend/src/integration/resources/SHIBUI-1334-2.side index b9d3d60fb..84d2fa73a 100644 --- a/backend/src/integration/resources/SHIBUI-1334-2.side +++ b/backend/src/integration/resources/SHIBUI-1334-2.side @@ -49,40 +49,75 @@ ["xpath=//tr[2]/td[2]/input", "xpath:position"] ], "value": "${KEY_ENTER}" + }, { + "id": "7ddaa6d6-98ac-49d2-bd83-e657077a60ef", + "comment": "", + "command": "waitForElementVisible", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "692ca72a-41c0-4ef7-8ed2-a9d4bde7e05c", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "16716835-2520-4a71-947e-4171d5f232ee", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "23c9cd5a-970b-4974-9f48-98886710c35b", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "e7a98419-36c7-4b0f-a99d-087144f6a417", "comment": "", "command": "click", - "target": "css=.fa-plus-circle", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=.fa-plus-circle", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/i", "xpath:idRelative"], - ["xpath=//i", "xpath:position"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "74fef022-3979-4bed-9226-b25114514976", "comment": "", "command": "click", - "target": "linkText=Metadata Provider", + "target": "id=metadata-nav-dropdown-provider", "targets": [ - ["linkText=Metadata Provider", "linkText"], - ["css=.nav-link:nth-child(2)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a[2]", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[3]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"] + ["id=metadata-nav-dropdown-provider", "id"], + ["linkText=Add a new metadata provider", "linkText"], + ["css=#metadata-nav-dropdown-provider", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata provider')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-provider']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/new')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata provider')]", "xpath:innerText"] ], "value": "" }, { "id": "b49d6ed7-75ea-4be8-9a79-c7fd83287aa0", "comment": "", "command": "click", - "target": "id=/name", + "target": "name=name", "targets": [ - ["id=/name", "id"], - ["name=field1", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -90,7 +125,7 @@ "id": "54dc29f7-bbe0-4c2b-a76e-e67a61f57a96", "comment": "", "command": "type", - "target": "id=/name", + "target": "name=name", "targets": [ ["id=/name", "id"], ["name=field1", "name"], @@ -99,16 +134,26 @@ ["xpath=//input", "xpath:position"] ], "value": "Test Metadata Provider" + }, { + "id": "fe45d26e-5005-4218-b4e8-10776a2384e9", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" }, { "id": "add874d5-e3b2-4412-8039-2b9d2619ed19", "comment": "", "command": "select", - "target": "id=/type", + "target": "name=type", "targets": [ - ["css=select-component > .widget", "css:finder"], - ["xpath=//select-component/div", "xpath:position"] + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div[2]/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], - "value": "label=FileBackedHttpMetadataProvider" + "value": "label=FileBackedHttpMetadataResolver" }, { "id": "1cc352f4-0d71-4a3e-9399-1d9932816efc", "comment": "", @@ -123,14 +168,20 @@ "id": "d072327c-78b4-4bdb-8020-b825cd26592d", "comment": "", "command": "waitForElementVisible", - "target": "id=/xmlId", - "targets": [], + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "86262eda-4a44-41b0-b7aa-fa46406e2601", "comment": "", "command": "type", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ ["id=field7", "id"], ["name=field7", "name"], @@ -143,38 +194,39 @@ "id": "26cc765d-98c1-414c-97d8-4c7e5c6ab7e2", "comment": "", "command": "type", - "target": "id=/metadataURL", + "target": "id=root_metadataURL", "targets": [ - ["id=field8", "id"], - ["name=field8", "name"], - ["css=#field8", "css:finder"], - ["xpath=//input[@id='field8']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_metadataURL", "id"], + ["css=#root_metadataURL", "css:finder"], + ["xpath=//input[@id='root_metadataURL']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "https://idp.unicon.net/idp/shibboleth" }, { "id": "f0459917-b2a1-4e3c-8800-25273965129f", "comment": "", "command": "click", - "target": "id=/initializeFromBackupFile.false", + "target": "id=root_initializeFromBackupFile-No", "targets": [ - ["id=/initializeFromBackupFile.false", "id"], - ["css=#\\/initializeFromBackupFile\\.false", "css:finder"], - ["xpath=//input[@id='/initializeFromBackupFile.false']", "xpath:attributes"], - ["xpath=//div[2]/label/input", "xpath:position"] + ["id=root_initializeFromBackupFile-No", "id"], + ["css=#root_initializeFromBackupFile-No", "css:finder"], + ["xpath=//input[@id='root_initializeFromBackupFile-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[3]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] ], "value": "" }, { "id": "5b37cf08-77b9-4091-94f9-c0d539c9010d", "comment": "", "command": "type", - "target": "id=/backingFile", + "target": "id=root_backingFile", "targets": [ - ["id=/backingFile", "id"], - ["name=field10", "name"], - ["css=#\\/backingFile", "css:finder"], - ["xpath=//input[@id='/backingFile']", "xpath:attributes"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_backingFile", "id"], + ["css=#root_backingFile", "css:finder"], + ["xpath=//input[@id='root_backingFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] ], "value": "%{idp.home}/foo.txt" }, { @@ -188,11 +240,12 @@ "id": "203d0d3c-d866-422a-8b48-b50181db00e9", "comment": "", "command": "click", - "target": "css=.fa-caret-down", + "target": "css=.toggle-button", "targets": [ - ["css=.fa-caret-down", "css:finder"], - ["xpath=//div[@id='/backupFileInitNextRefreshDelay-container']/div/div/button/i", "xpath:idRelative"], - ["xpath=//div/button/i", "xpath:position"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[5]/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -206,62 +259,69 @@ "id": "5fc6a348-0533-4d94-bb76-ebb891a0db8f", "comment": "", "command": "click", - "target": "id=/backupFileInitNextRefreshDelay__option--1", + "target": "id=option-selector-root_backupFileInitNextRefreshDelay-item-1", "targets": [ - ["id=/backupFileInitNextRefreshDelay__option--1", "id"], - ["css=#\\/backupFileInitNextRefreshDelay__option--1", "css:finder"], - ["xpath=//li[@id='/backupFileInitNextRefreshDelay__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/backupFileInitNextRefreshDelay__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'PT30S')]", "xpath:innerText"] + ["id=option-selector-root_backupFileInitNextRefreshDelay-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_backupFileInitNextRefreshDelay-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_backupFileInitNextRefreshDelay-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_backupFileInitNextRefreshDelay']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { "id": "bf041d41-5d58-4f69-8fcc-49ec79e5547d", "comment": "", "command": "click", - "target": "id=/requireValidMetadata.false", + "target": "id=root_requireValidMetadata-No", "targets": [ - ["id=/requireValidMetadata.false", "id"], - ["css=#\\/requireValidMetadata\\.false", "css:finder"], - ["xpath=//input[@id='/requireValidMetadata.false']", "xpath:attributes"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_requireValidMetadata-No", "id"], + ["css=#root_requireValidMetadata-No", "css:finder"], + ["xpath=//input[@id='root_requireValidMetadata-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[6]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "fba85c75-e218-4deb-b5e1-888ff75b6a4e", "comment": "", "command": "click", - "target": "id=/failFastInitialization.false", + "target": "id=root_failFastInitialization-No", "targets": [ - ["id=/failFastInitialization.false", "id"], - ["css=#\\/failFastInitialization\\.false", "css:finder"], - ["xpath=//input[@id='/failFastInitialization.false']", "xpath:attributes"], - ["xpath=//div[7]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_failFastInitialization-No", "id"], + ["css=#root_failFastInitialization-No", "css:finder"], + ["xpath=//input[@id='root_failFastInitialization-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[7]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "375b8d6e-179b-4f14-8f00-d8a8cad29d7e", "comment": "", "command": "click", - "target": "id=/useDefaultPredicateRegistry.false", + "target": "id=root_useDefaultPredicateRegistry-No", "targets": [ - ["id=/useDefaultPredicateRegistry.false", "id"], - ["css=#\\/useDefaultPredicateRegistry\\.false", "css:finder"], - ["xpath=//input[@id='/useDefaultPredicateRegistry.false']", "xpath:attributes"], - ["xpath=//div[8]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_useDefaultPredicateRegistry-No", "id"], + ["css=#root_useDefaultPredicateRegistry-No", "css:finder"], + ["xpath=//input[@id='root_useDefaultPredicateRegistry-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[8]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[8]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "8b4bf341-62c0-491f-b775-d2faf55477bc", "comment": "", "command": "click", - "target": "id=/satisfyAnyPredicates.true", + "target": "id=root_satisfyAnyPredicates-Yes", "targets": [ - ["id=/satisfyAnyPredicates.true", "id"], - ["css=#\\/satisfyAnyPredicates\\.true", "css:finder"], - ["xpath=//input[@id='/satisfyAnyPredicates.true']", "xpath:attributes"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div/label/input", "xpath:position"] + ["id=root_satisfyAnyPredicates-Yes", "id"], + ["name=root_satisfyAnyPredicates", "name"], + ["css=#root_satisfyAnyPredicates-Yes", "css:finder"], + ["xpath=//input[@id='root_satisfyAnyPredicates-Yes']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[9]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/input", "xpath:position"] ], "value": "" }, { @@ -285,13 +345,12 @@ "id": "a188bc3e-fd98-4d49-ae35-a0b78a17607c", "comment": "", "command": "click", - "target": "css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", + "target": "css=.row:nth-child(1) > .col-12 .toggle-button", "targets": [ - ["css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/reloadableMetadataResolverAttributes/minRefreshDelay-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.row:nth-child(1) > .col-12 .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -305,14 +364,16 @@ "id": "a159e056-c870-4e02-a7e9-4b3a60d83718", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/minRefreshDelay__option--1", + "target": "id=option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "targets": [ - ["id=/reloadableMetadataResolverAttributes/minRefreshDelay__option--1", "id"], - ["css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay__option--1", "css:finder"], - ["xpath=//li[@id='/reloadableMetadataResolverAttributes/minRefreshDelay__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/reloadableMetadataResolverAttributes/minRefreshDelay__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'PT30S')]", "xpath:innerText"] + ["id=option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { @@ -326,12 +387,12 @@ "id": "7a72cf6a-c97a-49f6-83d0-cbe42f0fdb7d", "comment": "", "command": "click", - "target": "css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay-container .btn", + "target": "css=.row:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -345,26 +406,29 @@ "id": "820397f5-aabb-46f5-a65a-56747ce29091", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/maxRefreshDelay__option--3", + "target": "id=option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3", "targets": [ - ["id=/reloadableMetadataResolverAttributes/maxRefreshDelay__option--3", "id"], - ["css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay__option--3", "css:finder"], - ["xpath=//li[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3", "id"], + ["linkText=PT10M", "linkText"], + ["css=#option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'PT10M')]", "xpath:innerText"] ], "value": "" }, { "id": "b036a851-4ac9-43cb-8686-8e78ed940d72", "comment": "", "command": "type", - "target": "id=/reloadableMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "targets": [ - ["id=/reloadableMetadataResolverAttributes/refreshDelayFactor", "id"], - ["name=field20", "name"], - ["css=#\\/reloadableMetadataResolverAttributes\\/refreshDelayFactor", "css:finder"], - ["xpath=//input[@id='/reloadableMetadataResolverAttributes/refreshDelayFactor']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "id"], + ["css=#root_reloadableMetadataResolverAttributes_refreshDelayFactor", "css:finder"], + ["xpath=//input[@id='root_reloadableMetadataResolverAttributes_refreshDelayFactor']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "0.5" }, { @@ -388,13 +452,12 @@ "id": "232da257-962f-4a4b-8213-038ef90c96c3", "comment": "", "command": "click", - "target": "css=.btn-outline-secondary", + "target": "css=.toggle-button", "targets": [ - ["css=.btn-outline-secondary", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div/div/div/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -408,114 +471,114 @@ "id": "b8d999f1-0c59-4a9a-9991-91d222f52b8e", "comment": "", "command": "click", - "target": "id=/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1", + "target": "id=option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "targets": [ - ["id=/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1", "id"], - ["css=#\\/metadataFilters\\/RequiredValidUntil\\/maxValidityInterval__option--1", "css:finder"], - ["xpath=//li[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'P14D')]", "xpath:innerText"] + ["id=option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_metadataFilters_0_maxValidityInterval-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_metadataFilters_0_maxValidityInterval']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { "id": "8af1abb5-2c7a-4a4c-a8f7-0eb287100dde", "comment": "", "command": "click", - "target": "id=/metadataFilters/SignatureValidation/requireSignedRoot", + "target": "id=root_metadataFilters_1_requireSignedRoot", "targets": [ - ["css=div:nth-child(1) > sf-form-element > .has-success .custom-control-label", "css:finder"], - ["xpath=//div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Require Signed Root')]", "xpath:innerText"] + ["id=root_metadataFilters_1_requireSignedRoot", "id"], + ["css=#root_metadataFilters_1_requireSignedRoot", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_1_requireSignedRoot']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "323a2a02-9111-4064-8bb0-a3da34330e54", "comment": "", "command": "type", - "target": "id=/metadataFilters/SignatureValidation/certificateFile", - "targets": [], + "target": "id=root_metadataFilters_1_certificateFile", + "targets": [ + ["id=root_metadataFilters_1_certificateFile", "id"], + ["css=#root_metadataFilters_1_certificateFile", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_1_certificateFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] + ], "value": "%{idp.home}/foo.txt" }, { "id": "a125e601-f306-441d-9c8c-e97b95817b46", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//array-component/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "74d696db-3f3b-4ff3-a180-34baceb469a2", "comment": "", "command": "select", - "target": "id=/metadataFilters/EntityRoleWhiteList/retainedRoles/0", - "targets": [], - "value": "label=SPSSODescriptor" - }, { - "id": "532bf2e5-13fc-48d7-b01b-ff16207a554d", - "comment": "", - "command": "click", - "target": "css=option:nth-child(2)", + "target": "id=root_metadataFilters_2_retainedRoles_0", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: md:SPSSODescriptor']", "xpath:attributes"], - ["xpath=//select[@id='/metadataFilters/EntityRoleWhiteList/retainedRoles/0']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'SPSSODescriptor')]", "xpath:innerText"] + ["id=root_metadataFilters_2_retainedRoles_0", "id"], + ["css=#root_metadataFilters_2_retainedRoles_0", "css:finder"], + ["xpath=//select[@id='root_metadataFilters_2_retainedRoles_0']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], - "value": "" - }, { - "id": "12cf80c9-594c-4c4d-bf26-aa36ba636220", - "comment": "", - "command": "click", - "target": "css=.fa-plus", - "targets": [ - ["css=.fa-plus", "css:finder"], - ["xpath=//array-component/div/div/button/i", "xpath:position"] - ], - "value": "" + "value": "label=SPSSODescriptor" }, { - "id": "6cb9854b-293b-482d-8c07-4b7c638d79cb", + "id": "532bf2e5-13fc-48d7-b01b-ff16207a554d", "comment": "", "command": "click", - "target": "css=#\\/metadataFilters\\/EntityRoleWhiteList\\/retainedRoles\\/1 > option:nth-child(1)", + "target": "css=.array-add-button", "targets": [ - ["css=#\\/metadataFilters\\/EntityRoleWhiteList\\/retainedRoles\\/1 > option:nth-child(1)", "css:finder"], - ["xpath=(//option[@value=''])[2]", "xpath:attributes"], - ["xpath=//select[@id='/metadataFilters/EntityRoleWhiteList/retainedRoles/1']/option", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/select-component/div/select/option", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "f366c86c-1420-4fb7-86c2-82c49d81208d", "comment": "", "command": "select", - "target": "id=/metadataFilters/EntityRoleWhiteList/retainedRoles/1", + "target": "id=root_metadataFilters_2_retainedRoles_1", "targets": [], "value": "label=AttributeAuthorityDescriptor" }, { "id": "5dfac033-ecfd-42e8-aa6f-931d5acd4d89", "comment": "", "command": "click", - "target": "css=div:nth-child(2) > sf-form-element > .has-success > sf-widget-chooser > checkbox-component .custom-control-label", + "target": "id=root_metadataFilters_2_removeRolelessEntityDescriptors", "targets": [ - ["css=div:nth-child(2) > sf-form-element > .has-success > sf-widget-chooser > checkbox-component .custom-control-label", "css:finder"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Remove Roleless Entity Descriptors?')]", "xpath:innerText"] + ["id=root_metadataFilters_2_removeRolelessEntityDescriptors", "id"], + ["css=#root_metadataFilters_2_removeRolelessEntityDescriptors", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_2_removeRolelessEntityDescriptors']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[3]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "9d5934f0-fe10-4539-9d71-80b454fc8612", "comment": "", "command": "click", - "target": "css=div:nth-child(3) > sf-form-element > .has-success > sf-widget-chooser > checkbox-component .custom-control-label", + "target": "id=root_metadataFilters_2_removeEmptyEntitiesDescriptors", "targets": [ - ["css=div:nth-child(3) > sf-form-element > .has-success > sf-widget-chooser > checkbox-component .custom-control-label", "css:finder"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Remove Empty Entities Descriptors?')]", "xpath:innerText"] + ["id=root_metadataFilters_2_removeEmptyEntitiesDescriptors", "id"], + ["css=#root_metadataFilters_2_removeEmptyEntitiesDescriptors", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_2_removeEmptyEntitiesDescriptors']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[4]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { @@ -528,21 +591,14 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "79b96f40-2677-438a-9564-62df0ea2c116", - "comment": "", - "command": "click", - "target": "css=.custom-control-label", - "targets": [], - "value": "" }, { "id": "52f5680c-c63d-411e-8332-52901f12ea3b", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(1) primitive-property:nth-child(1) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(1) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(1) primitive-property:nth-child(1) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], + ["css=.mb-4:nth-child(1) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], ["xpath=//div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'Test Metadata Provider')]", "xpath:innerText"] ], @@ -551,11 +607,11 @@ "id": "67ff44aa-1efd-4b13-a0e9-3648a09911dd", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(2) primitive-property:nth-child(1) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(2) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(2) primitive-property:nth-child(1) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[2]/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], - ["xpath=//section[2]/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:position"], + ["css=.mb-4:nth-child(2) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[2]/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], + ["xpath=//section[2]/div/div[2]/div[2]/div/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'123')]", "xpath:innerText"] ], "value": "123" @@ -569,56 +625,19 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "f72d07d6-e123-4698-a303-62a522ca45a1", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "debd4893-7551-4a7b-9e49-15aa89bf487f", - "comment": "", - "command": "click", - "target": "linkText=Dashboard", - "targets": [ - ["linkText=Dashboard", "linkText"], - ["css=.nav-item > .nav-link", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li[2]/a", "xpath:idRelative"], - ["xpath=//a[contains(@href, '/dashboard')]", "xpath:href"], - ["xpath=//li[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Dashboard')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "650390b8-3dac-46fe-b4f3-fbe3784afac9", - "comment": "", - "command": "click", - "target": "linkText=Metadata Providers", - "targets": [ - ["linkText=Metadata Providers", "linkText"], - ["css=.nav > .nav-item:nth-child(2) > .nav-link", "css:finder"], - ["xpath=//a[contains(text(),'Metadata Providers')]", "xpath:link"], - ["xpath=//a[contains(@href, '/dashboard/metadata/manager/providers')]", "xpath:href"], - ["xpath=//dashboard-page/div/ul/li[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Metadata Providers')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "5886b5f7-440e-4430-910c-9e1c4e4a353f", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" }, { "id": "1067b0b4-8aff-4972-b6f5-e4479eca9150", "comment": "", "command": "waitForElementPresent", "target": "linkText=Test Metadata Provider", "targets": [ - ["css=.badge > span", "css:finder"], - ["xpath=//span/span", "xpath:position"] + ["linkText=Test Metadata Provider", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'Test Metadata Provider')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/a684d39c-2add-4dad-82cf-dc06a144c623/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Test Metadata Provider')]", "xpath:innerText"] ], "value": "10000" }, { @@ -675,12 +694,13 @@ "id": "67578648-0800-4716-8c0c-27741770249a", "comment": "", "command": "click", - "target": "css=.mb-4:nth-child(1) .actions span", + "target": "css=.mb-4:nth-child(3) .edit-link", "targets": [ - ["css=.mb-4:nth-child(1) .actions span", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div/div/button/span", "xpath:idRelative"], - ["xpath=//div/button/span", "xpath:position"], - ["xpath=//span[contains(.,'Edit')]", "xpath:innerText"] + ["css=.mb-4:nth-child(3) .edit-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div/div/button", "xpath:idRelative"], + ["xpath=//section/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Edit')]", "xpath:innerText"] ], "value": "" }, { @@ -690,11 +710,24 @@ "target": "5000", "targets": [], "value": "" + }, { + "id": "dd3be528-b9da-45c4-bbc9-334ff7c05e57", + "comment": "", + "command": "type", + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/input", "xpath:position"] + ], + "value": "" }, { "id": "7d641e58-47ce-4d20-908c-e0002ff73cfa", "comment": "", "command": "type", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ ["id=/xmlId", "id"], ["name=field38", "name"], @@ -714,12 +747,13 @@ "id": "247b04c1-e690-42bc-ae15-dfbedb44d2e9", "comment": "", "command": "click", - "target": "id=/satisfyAnyPredicates.false", + "target": "id=root_satisfyAnyPredicates-No", "targets": [ - ["id=/satisfyAnyPredicates.false", "id"], - ["css=#\\/satisfyAnyPredicates\\.false", "css:finder"], - ["xpath=//input[@id='/satisfyAnyPredicates.false']", "xpath:attributes"], - ["xpath=//div[10]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_satisfyAnyPredicates-No", "id"], + ["css=#root_satisfyAnyPredicates-No", "css:finder"], + ["xpath=//input[@id='root_satisfyAnyPredicates-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div[3]/div[9]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { @@ -729,8 +763,10 @@ "target": "css=.btn-info", "targets": [ ["css=.btn-info", "css:finder"], - ["xpath=//div[2]/button", "xpath:position"], - ["xpath=//button[contains(.,'Save')]", "xpath:innerText"] + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,' Save')]", "xpath:innerText"] ], "value": "" }, { @@ -797,17 +833,23 @@ "id": "ce328b6a-f6ee-45e9-975c-5a5608f373dc", "comment": "", "command": "waitForElementVisible", - "target": "css=.d-block > primitive-property:nth-child(2) .d-block:nth-child(2)", - "targets": [], + "target": "css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", + "targets": [ + ["css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[3]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'123 version 2')]", "xpath:innerText"] + ], "value": "10000" }, { "id": "68103f0e-e3f1-419b-903d-5d8c30bc6700", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(4) .d-block:nth-child(2)", + "target": "css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", "targets": [ - ["css=.d-block > primitive-property:nth-child(4) .d-block:nth-child(2)", "css:finder"], - ["xpath=//primitive-property[4]/div/span[2]", "xpath:position"], + ["css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[3]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'123 version 2')]", "xpath:innerText"] ], "value": "123 version 2" @@ -815,30 +857,34 @@ "id": "a13198b9-7827-47e2-ade3-143b981d34ee", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(4) .d-block:nth-child(3)", + "target": "css=div:nth-child(3) > .bg-diff > .d-block:nth-child(3)", "targets": [ - ["css=.d-block > primitive-property:nth-child(4) .d-block:nth-child(3)", "css:finder"], - ["xpath=//primitive-property[4]/div/span[3]", "xpath:position"] + ["css=div:nth-child(3) > .bg-diff > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[3]/div/span[3]", "xpath:idRelative"], + ["xpath=//div[3]/div/span[3]", "xpath:position"] ], "value": "123" }, { "id": "3d83741c-299e-4fcb-9ce6-4b7291c423a4", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(12) .d-block:nth-child(2)", + "target": "css=div:nth-child(11) > .bg-diff > .d-block:nth-child(2)", "targets": [ - ["css=.d-block > primitive-property:nth-child(12) .d-block:nth-child(2)", "css:finder"], - ["xpath=//primitive-property[12]/div/span[2]", "xpath:position"] + ["css=div:nth-child(11) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[11]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[11]/div/span[2]", "xpath:position"] ], "value": "false" }, { "id": "190cc157-d427-4046-aff2-180392395ad3", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(12) .d-block:nth-child(3)", + "target": "css=div:nth-child(11) > .bg-diff > .d-block:nth-child(3)", "targets": [ - ["css=.d-block > primitive-property:nth-child(12) .d-block:nth-child(3)", "css:finder"], - ["xpath=//primitive-property[12]/div/span[3]", "xpath:position"] + ["css=div:nth-child(11) > .bg-diff > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[11]/div/span[3]", "xpath:idRelative"], + ["xpath=//div[11]/div/span[3]", "xpath:position"], + ["xpath=//span[contains(.,'true')]", "xpath:innerText"] ], "value": "true" }, { @@ -885,11 +931,12 @@ "id": "c9341f6f-4d13-4378-bb5c-0079e7535008", "comment": "", "command": "click", - "target": "css=.mb-4:nth-child(4) .actions span", + "target": "css=.mb-4:nth-child(6) .edit-link", "targets": [ - ["css=.mb-4:nth-child(4) .actions span", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[4]/div/div/div/button/span", "xpath:idRelative"], - ["xpath=//section[4]/div/div/div/button/span", "xpath:position"] + ["css=.mb-4:nth-child(6) .edit-link", "css:finder"], + ["xpath=(//button[@type='button'])[8]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[4]/div/div/div/button", "xpath:idRelative"], + ["xpath=//section[4]/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -903,11 +950,13 @@ "id": "1cde012c-d521-4fd5-a7d5-7a680bba0e7b", "comment": "", "command": "click", - "target": "css=.slider", + "target": "id=custom-switch", "targets": [ - ["css=.slider", "css:finder"], - ["xpath=//toggle-switch[@id='toggle']/label/span", "xpath:idRelative"], - ["xpath=//label/span", "xpath:position"] + ["id=custom-switch", "id"], + ["css=#custom-switch", "css:finder"], + ["xpath=//input[@id='custom-switch']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { @@ -921,13 +970,12 @@ "id": "78967fb5-8f61-46ce-9c14-9b6ceb12b03a", "comment": "", "command": "click", - "target": "css=#\\/httpMetadataResolverAttributes\\/connectionRequestTimeout-container .btn", + "target": "css=.form-group:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/httpMetadataResolverAttributes\\/connectionRequestTimeout-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/httpMetadataResolverAttributes/connectionRequestTimeout-container']/div/div/button", "xpath:idRelative"], - ["xpath=//auto-complete/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.form-group:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div[2]/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -941,14 +989,16 @@ "id": "8ba62572-354d-47f4-bb72-f9309c1cb201", "comment": "", "command": "click", - "target": "id=/httpMetadataResolverAttributes/connectionRequestTimeout__option--1", + "target": "id=option-selector-root_httpMetadataResolverAttributes_connectionRequestTimeout-item-1", "targets": [ - ["id=/httpMetadataResolverAttributes/connectionRequestTimeout__option--1", "id"], - ["css=#\\/httpMetadataResolverAttributes\\/connectionRequestTimeout__option--1", "css:finder"], - ["xpath=//li[@id='/httpMetadataResolverAttributes/connectionRequestTimeout__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/httpMetadataResolverAttributes/connectionRequestTimeout__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'PT30S')]", "xpath:innerText"] + ["id=option-selector-root_httpMetadataResolverAttributes_connectionRequestTimeout-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_httpMetadataResolverAttributes_connectionRequestTimeout-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_httpMetadataResolverAttributes_connectionRequestTimeout-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_httpMetadataResolverAttributes_connectionRequestTimeout']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { @@ -962,12 +1012,12 @@ "id": "d7406190-0bb0-4df8-9c0b-7e393952b6a2", "comment": "", "command": "click", - "target": "css=#\\/httpMetadataResolverAttributes\\/connectionTimeout-container .btn", + "target": "css=.form-group:nth-child(3) .toggle-button", "targets": [ - ["css=#\\/httpMetadataResolverAttributes\\/connectionTimeout-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/httpMetadataResolverAttributes/connectionTimeout-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.form-group:nth-child(3) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[15]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div[2]/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div[2]/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -981,13 +1031,16 @@ "id": "337ac160-7990-425f-83da-2788d8a0985e", "comment": "", "command": "click", - "target": "id=/httpMetadataResolverAttributes/connectionTimeout__option--2", + "target": "id=option-selector-root_httpMetadataResolverAttributes_connectionTimeout-item-2", "targets": [ - ["id=/httpMetadataResolverAttributes/connectionTimeout__option--2", "id"], - ["css=#\\/httpMetadataResolverAttributes\\/connectionTimeout__option--2", "css:finder"], - ["xpath=//li[@id='/httpMetadataResolverAttributes/connectionTimeout__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/httpMetadataResolverAttributes/connectionTimeout__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_httpMetadataResolverAttributes_connectionTimeout-item-2", "id"], + ["linkText=PT1M", "linkText"], + ["css=#option-selector-root_httpMetadataResolverAttributes_connectionTimeout-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_httpMetadataResolverAttributes_connectionTimeout-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_httpMetadataResolverAttributes_connectionTimeout']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'PT1M')]", "xpath:innerText"] ], "value": "" }, { @@ -1001,12 +1054,12 @@ "id": "19182110-0f86-4601-ae12-0b90967ef68a", "comment": "", "command": "click", - "target": "css=#\\/httpMetadataResolverAttributes\\/socketTimeout-container .btn", + "target": "css=.form-group:nth-child(4) .toggle-button", "targets": [ - ["css=#\\/httpMetadataResolverAttributes\\/socketTimeout-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], - ["xpath=//div[@id='/httpMetadataResolverAttributes/socketTimeout-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.form-group:nth-child(4) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[17]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div[2]/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div[3]/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1020,13 +1073,16 @@ "id": "34693225-4754-4b27-92ee-3e37304a8cd7", "comment": "", "command": "click", - "target": "id=/httpMetadataResolverAttributes/socketTimeout__option--3", + "target": "id=option-selector-root_httpMetadataResolverAttributes_socketTimeout-item-3", "targets": [ - ["id=/httpMetadataResolverAttributes/socketTimeout__option--3", "id"], - ["css=#\\/httpMetadataResolverAttributes\\/socketTimeout__option--3", "css:finder"], - ["xpath=//li[@id='/httpMetadataResolverAttributes/socketTimeout__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/httpMetadataResolverAttributes/socketTimeout__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_httpMetadataResolverAttributes_socketTimeout-item-3", "id"], + ["linkText=PT10M", "linkText"], + ["css=#option-selector-root_httpMetadataResolverAttributes_socketTimeout-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_httpMetadataResolverAttributes_socketTimeout-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_httpMetadataResolverAttributes_socketTimeout']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'PT10M')]", "xpath:innerText"] ], "value": "" }, { @@ -1036,8 +1092,10 @@ "target": "css=.btn-info", "targets": [ ["css=.btn-info", "css:finder"], - ["xpath=//div[2]/button", "xpath:position"], - ["xpath=//button[contains(.,'Save')]", "xpath:innerText"] + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,' Save')]", "xpath:innerText"] ], "value": "" }, { @@ -1111,57 +1169,46 @@ "id": "9f1380c3-2b99-4b7d-90b7-f20d4fe431d3", "comment": "", "command": "waitForElementVisible", - "target": "css=.mb-4:nth-child(4) primitive-property:nth-child(2) .d-block:nth-child(2)", - "targets": [], + "target": "css=.mb-4:nth-child(5) div:nth-child(3) .d-block:nth-child(2)", + "targets": [ + ["css=.mb-4:nth-child(5) div:nth-child(3) .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[4]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[4]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:position"] + ], "value": "10000" }, { "id": "8a2c6435-d77b-4c87-8e0e-e1ae6d4629b9", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(4) primitive-property:nth-child(2) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(5) div:nth-child(3) .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(4) primitive-property:nth-child(2) .d-block:nth-child(2)", "css:finder"], - ["xpath=//section[4]/div/div[2]/object-property/object-property/primitive-property[2]/div/span[2]", "xpath:position"] + ["css=.mb-4:nth-child(5) div:nth-child(3) .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[4]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[4]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:position"] ], "value": "PT30S" }, { "id": "0687fe3f-c1af-4a5a-9708-09b7b92734bc", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(4) primitive-property:nth-child(3) .d-block:nth-child(2)", + "target": "css=div:nth-child(1) > div:nth-child(4) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(4) primitive-property:nth-child(3) .d-block:nth-child(2)", "css:finder"], - ["xpath=//section[4]/div/div[2]/object-property/object-property/primitive-property[3]/div/span[2]", "xpath:position"], - ["xpath=//span[contains(.,'PT1M')]", "xpath:innerText"] + ["css=div:nth-child(1) > div:nth-child(4) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[4]/div/div[2]/div[2]/div/div[4]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[4]/div/span[2]", "xpath:position"] ], "value": "PT1M" }, { "id": "a007794f-ab91-47b8-b470-e4294e47a2a7", "comment": "", "command": "assertText", - "target": "css=object-property:nth-child(1) > primitive-property:nth-child(4) .d-block:nth-child(2)", + "target": "css=div:nth-child(1) > div:nth-child(5) .d-block:nth-child(2)", "targets": [ - ["css=object-property:nth-child(1) > primitive-property:nth-child(4) .d-block:nth-child(2)", "css:finder"], - ["xpath=//object-property/object-property/primitive-property[4]/div/span[2]", "xpath:position"] + ["css=div:nth-child(1) > div:nth-child(5) .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[4]/div/div[2]/div[2]/div/div[5]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[5]/div/span[2]", "xpath:position"] ], "value": "PT10M" - }, { - "id": "5279bf64-46c1-4376-a527-e19e217b42fa", - "comment": "", - "command": "assertText", - "target": "css=object-property:nth-child(1) > primitive-property:nth-child(5) .d-block:nth-child(2)", - "targets": [ - ["css=object-property:nth-child(1) > primitive-property:nth-child(5) .d-block:nth-child(2)", "css:finder"], - ["xpath=//object-property/object-property/primitive-property[5]/div/span[2]", "xpath:position"] - ], - "value": "false" - }, { - "id": "a77b2cf6-c88d-458b-9421-2745634180a7", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1335-1.side b/backend/src/integration/resources/SHIBUI-1335-1.side index db15623ec..844323040 100644 --- a/backend/src/integration/resources/SHIBUI-1335-1.side +++ b/backend/src/integration/resources/SHIBUI-1335-1.side @@ -41,51 +41,91 @@ "id": "358c31ea-fab8-4709-9b25-d9e5e82e123c", "comment": "", "command": "click", - "target": "name=submit", + "target": "css=.btn", "targets": [ - ["name=submit", "name"], - ["css=td:nth-child(1) > input", "css:finder"], - ["xpath=//input[@name='submit']", "xpath:attributes"], - ["xpath=//tr[3]/td/input", "xpath:position"] + ["css=.btn", "css:finder"], + ["xpath=//button[@type='submit']", "xpath:attributes"], + ["xpath=//button", "xpath:position"], + ["xpath=//button[contains(.,'Sign in')]", "xpath:innerText"] ], "value": "" + }, { + "id": "4d8cf40e-3ac8-4a58-8f9a-ae65778f68f0", + "comment": "", + "command": "waitForElementVisible", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "8ce1cc76-3392-4b5f-8a9f-658f08f19ed1", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "8903ea38-1f44-49a0-be4c-45afa76aea79", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "4e7e2172-a234-414a-90e0-befd3ad65246", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "fdea3214-f0e0-4f13-9d5d-e07ef92d71f1", "comment": "", "command": "click", - "target": "css=#addNewDropdown", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=#addNewDropdown > translate-i18n", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/translate-i18n", "xpath:idRelative"], - ["xpath=//translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Add New')]", "xpath:innerText"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "2c40ac99-5e92-4c1c-923a-5a6100cadf43", "comment": "", "command": "click", - "target": "linkText=Metadata Provider", + "target": "id=metadata-nav-dropdown-provider", "targets": [ - ["linkText=Metadata Provider", "linkText"], - ["css=.nav-link:nth-child(2)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a[2]", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[3]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"] + ["id=metadata-nav-dropdown-provider", "id"], + ["linkText=Add a new metadata provider", "linkText"], + ["css=#metadata-nav-dropdown-provider", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata provider')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-provider']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/new')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata provider')]", "xpath:innerText"] ], "value": "" }, { "id": "7a42de04-995f-45aa-ba3f-095900a564ec", "comment": "", "command": "waitForElementVisible", - "target": "id=/name", - "targets": [], + "target": "name=name", + "targets": [ + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "b2725ef6-b394-4f87-a2a5-031be085cedb", "comment": "", "command": "type", - "target": "id=/name", + "target": "name=name", "targets": [ ["id=/name", "id"], ["name=field4", "name"], @@ -94,19 +134,26 @@ ["xpath=//input", "xpath:position"] ], "value": "File Backed HTTP Metadata Provider" + }, { + "id": "24f3e12d-2fe4-4be9-88d2-34a164d5e832", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" }, { "id": "ca36b018-a4df-43d1-9fbd-973d6653d3e0", "comment": "", "command": "select", - "target": "id=/type", + "target": "name=type", "targets": [ - ["id=/type", "id"], - ["name=field2", "name"], - ["css=#\\/type", "css:finder"], - ["xpath=//select[@id='/type']", "xpath:attributes"], + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div[2]/select", "xpath:idRelative"], ["xpath=//select", "xpath:position"] ], - "value": "label=FileBackedHttpMetadataProvider" + "value": "label=FileBackedHttpMetadataResolver" }, { "id": "e5d1d696-3029-4f9d-ad53-2e60b4789935", "comment": "", @@ -121,14 +168,20 @@ "id": "352f066f-c2af-4735-81b1-5440ba7a3432", "comment": "", "command": "waitForElementVisible", - "target": "id=/xmlId", - "targets": [], + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "e7462621-f4e4-4512-b200-20afa5685fc6", "comment": "", "command": "type", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ ["id=/xmlId", "id"], ["name=field7", "name"], @@ -141,38 +194,39 @@ "id": "7bfaa2a7-c66d-4e36-b1f4-1de30b02ebd0", "comment": "", "command": "type", - "target": "id=/metadataURL", + "target": "id=root_metadataURL", "targets": [ - ["id=/metadataURL", "id"], - ["name=field8", "name"], - ["css=#\\/metadataURL", "css:finder"], - ["xpath=//input[@id='/metadataURL']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_metadataURL", "id"], + ["css=#root_metadataURL", "css:finder"], + ["xpath=//input[@id='root_metadataURL']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "https://idp.unicon.net/idp/shibboleth" }, { "id": "047e1ea4-e28c-4b1b-86fc-ff19a3c0efcc", "comment": "", "command": "click", - "target": "id=/initializeFromBackupFile.false", + "target": "id=root_initializeFromBackupFile-No", "targets": [ - ["id=/initializeFromBackupFile.false", "id"], - ["css=#\\/initializeFromBackupFile\\.false", "css:finder"], - ["xpath=//input[@id='/initializeFromBackupFile.false']", "xpath:attributes"], - ["xpath=//div[2]/label/input", "xpath:position"] + ["id=root_initializeFromBackupFile-No", "id"], + ["css=#root_initializeFromBackupFile-No", "css:finder"], + ["xpath=//input[@id='root_initializeFromBackupFile-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[3]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] ], "value": "" }, { "id": "34124b74-7b90-424a-9219-1f0bfbf06b70", "comment": "", "command": "type", - "target": "id=/backingFile", + "target": "id=root_backingFile", "targets": [ - ["id=/backingFile", "id"], - ["name=field10", "name"], - ["css=#\\/backingFile", "css:finder"], - ["xpath=//input[@id='/backingFile']", "xpath:attributes"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_backingFile", "id"], + ["css=#root_backingFile", "css:finder"], + ["xpath=//input[@id='root_backingFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] ], "value": "%{idp.home}/foo.txt" }, { @@ -186,13 +240,12 @@ "id": "0668032d-608b-4a01-9ac8-e4e2ac058294", "comment": "", "command": "click", - "target": "css=.btn-outline-secondary", + "target": "css=.toggle-button", "targets": [ - ["css=.btn-outline-secondary", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/backupFileInitNextRefreshDelay-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[5]/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -206,38 +259,43 @@ "id": "35dfa0f8-c0f2-4356-a6b0-18b5dc35337b", "comment": "", "command": "click", - "target": "id=/backupFileInitNextRefreshDelay__option--1", + "target": "id=option-selector-root_backupFileInitNextRefreshDelay-item-1", "targets": [ - ["id=/backupFileInitNextRefreshDelay__option--1", "id"], - ["css=#\\/backupFileInitNextRefreshDelay__option--1", "css:finder"], - ["xpath=//li[@id='/backupFileInitNextRefreshDelay__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/backupFileInitNextRefreshDelay__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'PT30S')]", "xpath:innerText"] + ["id=option-selector-root_backupFileInitNextRefreshDelay-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_backupFileInitNextRefreshDelay-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_backupFileInitNextRefreshDelay-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_backupFileInitNextRefreshDelay']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { "id": "b4d0a551-3bc1-466f-b204-ec7164af44ec", "comment": "", "command": "click", - "target": "id=/failFastInitialization.false", + "target": "id=root_failFastInitialization-No", "targets": [ - ["id=/failFastInitialization.false", "id"], - ["css=#\\/failFastInitialization\\.false", "css:finder"], - ["xpath=//input[@id='/failFastInitialization.false']", "xpath:attributes"], - ["xpath=//div[7]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_failFastInitialization-No", "id"], + ["css=#root_failFastInitialization-No", "css:finder"], + ["xpath=//input[@id='root_failFastInitialization-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[7]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "bef80dbb-25a6-4381-8b0e-331faaeb4392", "comment": "", "command": "click", - "target": "id=/satisfyAnyPredicates.true", + "target": "id=root_satisfyAnyPredicates-Yes", "targets": [ - ["id=/satisfyAnyPredicates.true", "id"], - ["css=#\\/satisfyAnyPredicates\\.true", "css:finder"], - ["xpath=//input[@id='/satisfyAnyPredicates.true']", "xpath:attributes"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div/label/input", "xpath:position"] + ["id=root_satisfyAnyPredicates-Yes", "id"], + ["name=root_satisfyAnyPredicates", "name"], + ["css=#root_satisfyAnyPredicates-Yes", "css:finder"], + ["xpath=//input[@id='root_satisfyAnyPredicates-Yes']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[9]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/input", "xpath:position"] ], "value": "" }, { @@ -264,24 +322,16 @@ "target": "1000", "targets": [], "value": "" - }, { - "id": "91c42709-f202-48eb-bd7f-389ec454b86b", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" }, { "id": "824b4515-ae14-436e-a56f-d631ea9e1edc", "comment": "", "command": "click", - "target": "css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", + "target": "css=.row:nth-child(1) > .col-12 .toggle-button", "targets": [ - ["css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/reloadableMetadataResolverAttributes/minRefreshDelay-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.row:nth-child(1) > .col-12 .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -295,14 +345,16 @@ "id": "9ee7065a-823e-4b4a-b212-0582eeaf7a00", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/minRefreshDelay__option--0", + "target": "id=option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-0", "targets": [ - ["id=/reloadableMetadataResolverAttributes/minRefreshDelay__option--0", "id"], - ["css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay__option--0", "css:finder"], - ["xpath=//li[@id='/reloadableMetadataResolverAttributes/minRefreshDelay__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/reloadableMetadataResolverAttributes/minRefreshDelay__listbox']/li", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li", "xpath:position"], - ["xpath=//li[contains(.,'PT0S')]", "xpath:innerText"] + ["id=option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-0", "id"], + ["linkText=PT0S", "linkText"], + ["css=#option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'PT0S')]", "xpath:innerText"] ], "value": "" }, { @@ -316,12 +368,12 @@ "id": "618cc5f1-417b-4bc6-9388-3238f2304904", "comment": "", "command": "click", - "target": "css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay-container .btn", + "target": "css=.row:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -335,33 +387,36 @@ "id": "a89f1b4d-10bd-48f7-9b97-865710cfe01f", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/maxRefreshDelay__option--2", + "target": "id=option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-2", "targets": [ - ["id=/reloadableMetadataResolverAttributes/maxRefreshDelay__option--2", "id"], - ["css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay__option--2", "css:finder"], - ["xpath=//li[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-2", "id"], + ["linkText=PT1M", "linkText"], + ["css=#option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'PT1M')]", "xpath:innerText"] ], "value": "" }, { "id": "143b781c-56ae-48c6-a7f5-8c93953f6095", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "targets": [ - ["id=/reloadableMetadataResolverAttributes/refreshDelayFactor", "id"], - ["name=field20", "name"], - ["css=#\\/reloadableMetadataResolverAttributes\\/refreshDelayFactor", "css:finder"], - ["xpath=//input[@id='/reloadableMetadataResolverAttributes/refreshDelayFactor']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "id"], + ["css=#root_reloadableMetadataResolverAttributes_refreshDelayFactor", "css:finder"], + ["xpath=//input[@id='root_reloadableMetadataResolverAttributes_refreshDelayFactor']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "dcd01c7a-f733-4977-9cc2-e9084903e079", "comment": "", "command": "type", - "target": "id=/reloadableMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "targets": [ ["id=/reloadableMetadataResolverAttributes/refreshDelayFactor", "id"], ["name=field20", "name"], @@ -391,13 +446,12 @@ "id": "363af92e-0327-47b9-918c-1560adab40cc", "comment": "", "command": "click", - "target": "css=.btn-outline-secondary", + "target": "css=.toggle-button", "targets": [ - ["css=.btn-outline-secondary", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div/div/div/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -411,86 +465,75 @@ "id": "a4470d6f-04a7-4c4b-8c1e-70cff2f35e8a", "comment": "", "command": "click", - "target": "id=/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1", + "target": "id=option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "targets": [ - ["id=/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1", "id"], - ["css=#\\/metadataFilters\\/RequiredValidUntil\\/maxValidityInterval__option--1", "css:finder"], - ["xpath=//li[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'P14D')]", "xpath:innerText"] + ["id=option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_metadataFilters_0_maxValidityInterval-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_metadataFilters_0_maxValidityInterval']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { "id": "4530c1b4-8f27-4272-9633-c792a3a54f90", "comment": "", "command": "click", - "target": "id=/metadataFilters/SignatureValidation/requireSignedRoot", + "target": "id=root_metadataFilters_1_requireSignedRoot", "targets": [ - ["css=#\\/metadataFilters\\/SignatureValidation\\/requireSignedRoot\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/metadataFilters/SignatureValidation/requireSignedRoot.parent']/label", "xpath:idRelative"], - ["xpath=//div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Require Signed Root')]", "xpath:innerText"] + ["id=root_metadataFilters_1_requireSignedRoot", "id"], + ["css=#root_metadataFilters_1_requireSignedRoot", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_1_requireSignedRoot']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "10cd8cee-fc6a-4e5b-a11b-a7b0a9338f5d", "comment": "", "command": "type", - "target": "id=/metadataFilters/SignatureValidation/certificateFile", + "target": "id=root_metadataFilters_1_certificateFile", "targets": [ - ["id=/metadataFilters/SignatureValidation/certificateFile", "id"], - ["name=field27", "name"], - ["css=#\\/metadataFilters\\/SignatureValidation\\/certificateFile", "css:finder"], - ["xpath=//input[@id='/metadataFilters/SignatureValidation/certificateFile']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_metadataFilters_1_certificateFile", "id"], + ["css=#root_metadataFilters_1_certificateFile", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_1_certificateFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "%{idp.home}/foo2.txt" - }, { - "id": "a3ce889f-0607-4071-bd39-25b169c30114", - "comment": "", - "command": "click", - "target": "css=div:nth-child(3) > sf-form-element .bg-light", - "targets": [ - ["css=div:nth-child(3) > sf-form-element .bg-light", "css:finder"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/fieldset-object/div/div/fieldset/div", "xpath:position"] - ], - "value": "" }, { "id": "f205ec23-b433-44bb-af80-e72330b4c7a3", "comment": "", "command": "click", - "target": "css=.fa-plus", + "target": "css=.array-add-button", "targets": [ - ["css=.fa-plus", "css:finder"], - ["xpath=//array-component/div/div/button/i", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "4dae6914-ae68-45e2-b332-cc4c1ac71e43", "comment": "", "command": "select", - "target": "id=/metadataFilters/EntityRoleWhiteList/retainedRoles/0", - "targets": [], - "value": "label=SPSSODescriptor" - }, { - "id": "4b257d69-1948-4c5f-a88d-b1bfa8f2ba72", - "comment": "", - "command": "click", - "target": "css=option:nth-child(2)", + "target": "id=root_metadataFilters_2_retainedRoles_0", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: md:SPSSODescriptor']", "xpath:attributes"], - ["xpath=//select[@id='/metadataFilters/EntityRoleWhiteList/retainedRoles/0']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'SPSSODescriptor')]", "xpath:innerText"] + ["id=root_metadataFilters_2_retainedRoles_0", "id"], + ["css=#root_metadataFilters_2_retainedRoles_0", "css:finder"], + ["xpath=//select[@id='root_metadataFilters_2_retainedRoles_0']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], - "value": "" + "value": "label=SPSSODescriptor" }, { "id": "d47fc8b5-4062-4813-90a8-cdc91b777f1d", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ ["css=.btn-success > translate-i18n", "css:finder"], ["xpath=//div/button/translate-i18n", "xpath:position"] @@ -500,43 +543,39 @@ "id": "442c5b8d-f108-488e-8779-06171f5081f6", "comment": "", "command": "select", - "target": "id=/metadataFilters/EntityRoleWhiteList/retainedRoles/1", - "targets": [], - "value": "label=AttributeAuthorityDescriptor" - }, { - "id": "42eddc22-9eed-41d1-aaee-2d4a1d933fa9", - "comment": "", - "command": "click", - "target": "css=#\\/metadataFilters\\/EntityRoleWhiteList\\/retainedRoles\\/1 > option:nth-child(3)", + "target": "id=root_metadataFilters_2_retainedRoles_1", "targets": [ - ["css=#\\/metadataFilters\\/EntityRoleWhiteList\\/retainedRoles\\/1 > option:nth-child(3)", "css:finder"], - ["xpath=(//option[@value='2: md:AttributeAuthorityDescriptor'])[2]", "xpath:attributes"], - ["xpath=//select[@id='/metadataFilters/EntityRoleWhiteList/retainedRoles/1']/option[3]", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/select-component/div/select/option[3]", "xpath:position"] + ["id=root_metadataFilters_2_retainedRoles_1", "id"], + ["css=#root_metadataFilters_2_retainedRoles_1", "css:finder"], + ["xpath=//select[@id='root_metadataFilters_2_retainedRoles_1']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div[2]/div[2]/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/select", "xpath:position"] ], - "value": "" + "value": "label=AttributeAuthorityDescriptor" }, { "id": "4ebbc08c-ee24-43d8-8c2d-b639a625189c", "comment": "", "command": "click", - "target": "css=#\\/metadataFilters\\/EntityRoleWhiteList\\/removeRolelessEntityDescriptors\\.parent > .custom-control-label", + "target": "id=root_metadataFilters_2_removeRolelessEntityDescriptors", "targets": [ - ["css=#\\/metadataFilters\\/EntityRoleWhiteList\\/removeRolelessEntityDescriptors\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/metadataFilters/EntityRoleWhiteList/removeRolelessEntityDescriptors.parent']/label", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Remove Roleless Entity Descriptors?')]", "xpath:innerText"] + ["id=root_metadataFilters_2_removeRolelessEntityDescriptors", "id"], + ["css=#root_metadataFilters_2_removeRolelessEntityDescriptors", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_2_removeRolelessEntityDescriptors']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[3]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "1c23c527-46e7-4fe6-8f60-37833af073c8", "comment": "", "command": "click", - "target": "css=#\\/metadataFilters\\/EntityRoleWhiteList\\/removeEmptyEntitiesDescriptors\\.parent > .custom-control-label", + "target": "id=root_metadataFilters_2_removeEmptyEntitiesDescriptors", "targets": [ - ["css=#\\/metadataFilters\\/EntityRoleWhiteList\\/removeEmptyEntitiesDescriptors\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/metadataFilters/EntityRoleWhiteList/removeEmptyEntitiesDescriptors.parent']/label", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Remove Empty Entities Descriptors?')]", "xpath:innerText"] + ["id=root_metadataFilters_2_removeEmptyEntitiesDescriptors", "id"], + ["css=#root_metadataFilters_2_removeEmptyEntitiesDescriptors", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_2_removeEmptyEntitiesDescriptors']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[4]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { @@ -550,49 +589,55 @@ ], "value": "" }, { - "id": "7cd861ea-d86c-4faa-a07b-c1508811b506", + "id": "0c112a41-8feb-42da-a58b-8fc04e9a3bf6", "comment": "", "command": "click", - "target": "css=.custom-control-label", + "target": "css=.save", "targets": [ - ["css=.custom-control-label", "css:finder"], - ["xpath=//div[@id='/enabled.parent']/label", "xpath:idRelative"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Enable this service?')]", "xpath:innerText"] + ["css=.save", "css:finder"], + ["xpath=//li[3]/button", "xpath:position"] ], "value": "" }, { - "id": "0c112a41-8feb-42da-a58b-8fc04e9a3bf6", + "id": "daa2d46a-d238-4a48-aca7-0f34c9b93d5f", "comment": "", "command": "click", - "target": "css=.save", + "target": "linkText=File Backed HTTP Metadata Provider", "targets": [ - ["css=.save", "css:finder"], - ["xpath=//li[3]/button", "xpath:position"] + ["linkText=File Backed HTTP Metadata Provider", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'File Backed HTTP Metadata Provider')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/06a36938-dcdb-4289-837a-1826b28eef8b/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'File Backed HTTP Metadata Provider')]", "xpath:innerText"] ], "value": "" }, { - "id": "daa2d46a-d238-4a48-aca7-0f34c9b93d5f", + "id": "eb05cf9c-2ef9-4a0e-837c-655442b82464", "comment": "", "command": "click", - "target": "css=.btn:nth-child(2) > translate-i18n", + "target": "linkText=Add Filter", "targets": [ - ["css=.btn:nth-child(2) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/button/translate-i18n", "xpath:idRelative"], - ["xpath=//div/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Filters')]", "xpath:innerText"] + ["linkText=Add Filter", "linkText"], + ["css=#filters .btn", "css:finder"], + ["xpath=//div[@id='filters']/div/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/34c2d268-3580-4303-9867-c07e7635a353/filter/new')]", "xpath:href"], + ["xpath=//div[3]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Add Filter')]", "xpath:innerText"] ], "value": "" }, { "id": "d86e9a98-a0a1-4696-b454-1bca1d01f9d0", "comment": "", "command": "click", - "target": "css=#filters .actions span", + "target": "name=type", "targets": [ - ["css=#filters .actions span", "css:finder"], - ["xpath=//div[@id='filters']/div/div/a/span", "xpath:idRelative"], - ["xpath=//div/a/span", "xpath:position"], - ["xpath=//span[contains(.,'Add Filter')]", "xpath:innerText"] + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/div/div/form/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], "value": "" }, { @@ -602,30 +647,24 @@ "target": "name=type", "targets": [], "value": "label=EntityAttributes" - }, { - "id": "49fe7508-4f42-4eae-a47d-85a0983efb64", - "comment": "", - "command": "click", - "target": "css=option:nth-child(2)", - "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='EntityAttributes']", "xpath:attributes"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'EntityAttributes')]", "xpath:innerText"] - ], - "value": "" }, { "id": "8a52ad88-b583-41b7-92a6-bdb185b03a06", "comment": "", "command": "waitForElementVisible", - "target": "id=/name", - "targets": [], + "target": "id=root_name", + "targets": [ + ["id=root_name", "id"], + ["css=#root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "b1c779b1-d3ed-47cc-bc88-e5c280161c32", "comment": "", "command": "type", - "target": "id=/name", + "target": "id=root_name", "targets": [ ["id=/name", "id"], ["name=field37", "name"], @@ -645,13 +684,14 @@ "id": "a10a6faf-90cd-4713-8ea3-60c768ed935e", "comment": "", "command": "click", - "target": "id=/entityAttributesFilterTarget.valuedd", + "target": "id=dropdown-label.filter-target-type", "targets": [ - ["id=/entityAttributesFilterTarget.valuedd", "id"], - ["css=#\\/entityAttributesFilterTarget\\.valuedd", "css:finder"], - ["xpath=//button[@id='/entityAttributesFilterTarget.valuedd']", "xpath:attributes"], + ["id=dropdown-label.filter-target-type", "id"], + ["css=#dropdown-label\\.filter-target-type", "css:finder"], + ["xpath=//button[@id='dropdown-label.filter-target-type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[6]/div/div/div/fieldset/div/div/div/div/button", "xpath:idRelative"], ["xpath=//fieldset/div/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Entity ID')]", "xpath:innerText"] + ["xpath=//button[contains(.,'Entity ID ')]", "xpath:innerText"] ], "value": "" }, { @@ -665,14 +705,13 @@ "id": "1f2b93b8-23ae-4a9c-b015-96ca890ae150", "comment": "", "command": "click", - "target": "linkText=Regex", + "target": "css=.show > .dropdown-item:nth-child(2)", "targets": [ - ["linkText=Regex", "linkText"], - ["css=.dropdown-item:nth-child(2)", "css:finder"], - ["xpath=//a[contains(text(),'Regex')]", "xpath:link"], - ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], - ["xpath=//div/div/a[2]", "xpath:position"], - ["xpath=//a[contains(.,'Regex')]", "xpath:innerText"] + ["css=.show > .dropdown-item:nth-child(2)", "css:finder"], + ["xpath=(//button[@type='button'])[16]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[6]/div/div/div/fieldset/div/div/div/div/div/button[2]", "xpath:idRelative"], + ["xpath=//fieldset/div/div/div/div/div/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Regex')]", "xpath:innerText"] ], "value": "" }, { @@ -683,130 +722,134 @@ "targets": [], "value": "" }, { - "id": "5c2ed93d-3630-408c-bb89-0b2baffb73c0", + "id": "6dec176f-0c5a-4982-867e-087342c90987", "comment": "", - "command": "click", - "target": "id=/entityAttributesFilterTarget.target", + "command": "sendKeys", + "target": "id=targetInput", "targets": [ - ["id=/entityAttributesFilterTarget.target", "id"], + ["id=targetInput", "id"], ["name=script", "name"], - ["css=#\\/entityAttributesFilterTarget\\.target", "css:finder"], - ["xpath=//input[@id='/entityAttributesFilterTarget.target']", "xpath:attributes"], - ["xpath=//div/div/input", "xpath:position"] + ["css=#targetInput", "css:finder"], + ["xpath=//input[@id='targetInput']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[6]/div/div/div/fieldset/div/div/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], - "value": "" - }, { - "id": "6dec176f-0c5a-4982-867e-087342c90987", - "comment": "", - "command": "sendKeys", - "target": "id=/entityAttributesFilterTarget.target", - "targets": [], "value": "/foo.*/" }, { - "id": "f4e6e8a5-0040-4aac-a0f9-9b49abbd9568", + "id": "86f35854-4979-4f43-97d9-5026d852514c", "comment": "", "command": "click", - "target": "css=#\\/filterEnabled\\.parent > .custom-control-label", + "target": "css=.nav-link:nth-child(2)", "targets": [ - ["css=#\\/filterEnabled\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/filterEnabled.parent']/label", "xpath:idRelative"], - ["xpath=//checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Filter?')]", "xpath:innerText"] + ["css=.nav-link:nth-child(2)", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div/nav/button[2]", "xpath:idRelative"], + ["xpath=//nav/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Options')]", "xpath:innerText"] ], "value": "" }, { "id": "603aff60-cf79-4804-90c5-2ffd0f5ef550", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/signAssertion\\.parent > .custom-control-label", + "target": "id=root_relyingPartyOverrides_signAssertion", "targets": [ - ["css=#\\/relyingPartyOverrides\\/signAssertion\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/signAssertion.parent']/label", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Sign the Assertion?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_signAssertion", "id"], + ["css=#root_relyingPartyOverrides_signAssertion", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_signAssertion']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { "id": "9456ba02-3dd6-4305-a0d3-f031e1e79b16", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/dontSignResponse\\.parent > .custom-control-label", + "target": "id=root_relyingPartyOverrides_dontSignResponse", "targets": [ - ["css=#\\/relyingPartyOverrides\\/dontSignResponse\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/dontSignResponse.parent']/label", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"] + ["id=root_relyingPartyOverrides_dontSignResponse", "id"], + ["css=#root_relyingPartyOverrides_dontSignResponse", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_dontSignResponse']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "a1ce4398-4f95-498c-b01b-2f25e1fd3380", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/turnOffEncryption\\.parent > .custom-control-label", + "target": "id=root_relyingPartyOverrides_turnOffEncryption", "targets": [ - ["css=#\\/relyingPartyOverrides\\/turnOffEncryption\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/turnOffEncryption.parent']/label", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Turn off Encryption of Response?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_turnOffEncryption", "id"], + ["css=#root_relyingPartyOverrides_turnOffEncryption", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_turnOffEncryption']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[3]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "dcaa766a-3800-4412-9631-0f279e23bf41", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/useSha\\.parent > .custom-control-label", + "target": "id=root_relyingPartyOverrides_useSha", "targets": [ - ["css=#\\/relyingPartyOverrides\\/useSha\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/useSha.parent']/label", "xpath:idRelative"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Use SHA1 Signing Algorithm?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_useSha", "id"], + ["css=#root_relyingPartyOverrides_useSha", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_useSha']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[4]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "c7a9bd88-9198-4ce0-8ae0-618b90fd787a", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/ignoreAuthenticationMethod\\.parent > .custom-control-label", + "target": "id=root_relyingPartyOverrides_ignoreAuthenticationMethod", "targets": [ - ["css=#\\/relyingPartyOverrides\\/ignoreAuthenticationMethod\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/ignoreAuthenticationMethod.parent']/label", "xpath:idRelative"], - ["xpath=//div[5]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Ignore any SP-Requested Authentication Method?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_ignoreAuthenticationMethod", "id"], + ["css=#root_relyingPartyOverrides_ignoreAuthenticationMethod", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_ignoreAuthenticationMethod']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[5]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "c806723d-9713-4710-96e2-6410b79895c0", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/omitNotBefore\\.parent > .custom-control-label", + "target": "id=root_relyingPartyOverrides_omitNotBefore", "targets": [ - ["css=#\\/relyingPartyOverrides\\/omitNotBefore\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/omitNotBefore.parent']/label", "xpath:idRelative"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Omit Not Before Condition?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_omitNotBefore", "id"], + ["css=#root_relyingPartyOverrides_omitNotBefore", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_omitNotBefore']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[6]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "1c7d678e-5b74-4542-bf6c-a64d0117f831", "comment": "", "command": "type", - "target": "id=/relyingPartyOverrides/responderId", + "target": "id=root_relyingPartyOverrides_responderId", "targets": [ - ["id=/relyingPartyOverrides/responderId", "id"], - ["name=field50", "name"], - ["css=#\\/relyingPartyOverrides\\/responderId", "css:finder"], - ["xpath=//input[@id='/relyingPartyOverrides/responderId']", "xpath:attributes"], - ["xpath=//div[7]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_relyingPartyOverrides_responderId", "id"], + ["css=#root_relyingPartyOverrides_responderId", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_responderId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[7]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div/div/input", "xpath:position"] ], "value": "id-123" }, { "id": "027b4448-eaf6-4f24-ae2f-5b592db910ed", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ - ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], - ["xpath=//array-component/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.row:nth-child(8) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[18]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[8]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[8]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -820,11 +863,12 @@ "id": "fd1af538-1b5b-4d6a-b56b-d56e7f01bb40", "comment": "", "command": "click", - "target": "css=.fa-caret-down", + "target": "css=.toggle-button", "targets": [ - ["css=.fa-caret-down", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/0-container']/div/div/button/i", "xpath:idRelative"], - ["xpath=//auto-complete/div/div/div/button/i", "xpath:position"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[20]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[8]/div/div/div/div/div/div[2]/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -838,20 +882,23 @@ "id": "cc233154-4159-425b-8ac5-761c26a0de15", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/0__option--0", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/0__option--0", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/0__option--0", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/0__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/0__listbox']/li", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_0']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified')]", "xpath:innerText"] ], "value": "" }, { "id": "d8e3df44-0db6-458e-b133-36b7ec08fbb7", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ ["css=div:nth-child(8) .btn > translate-i18n", "css:finder"], ["xpath=//array-component/div/div/button/translate-i18n", "xpath:position"] @@ -868,12 +915,12 @@ "id": "562c7f9f-1e55-432a-8fff-0cae15b23a33", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/nameIdFormats\\/1-container .btn", + "target": "css=.mt-2:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/1-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/1-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[22]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[8]/div/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -887,20 +934,23 @@ "id": "f5f27af2-b869-4b99-a3d9-3efce014be06", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/1__option--1", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/1__option--1", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/1__option--1", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/1__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/1__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[2]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_1']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress')]", "xpath:innerText"] ], "value": "" }, { "id": "4e595806-b2c6-43c6-bd1f-78e659f795e4", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], ["xpath=//array-component/div/div/button", "xpath:position"], @@ -918,12 +968,12 @@ "id": "b717af46-a3c1-40f2-ac1a-2c7f84fbf33f", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/nameIdFormats\\/2-container .btn", + "target": "css=.mt-2:nth-child(3) .toggle-button", "targets": [ - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/2-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/2-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(3) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[24]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[8]/div/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -937,20 +987,23 @@ "id": "4655a981-c5d6-4b48-aad2-77295dc37859", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/2__option--2", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/2__option--2", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/2__option--2", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/2__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/2__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_2']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent')]", "xpath:innerText"] ], "value": "" }, { "id": "9902d02a-d7f7-4424-92f4-2a6072916421", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], ["xpath=//array-component/div/div/button", "xpath:position"], @@ -968,12 +1021,12 @@ "id": "df07e4c7-8e0f-4eed-ab58-42e2b5bcfc93", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/nameIdFormats\\/3-container .btn", + "target": "css=.mt-2:nth-child(4) .toggle-button", "targets": [ - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/3-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/3-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(4) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[26]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[8]/div/div/div/div/div/div[2]/div[4]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -987,20 +1040,41 @@ "id": "cd34bc8a-564b-4d15-90c9-f09e12d7e078", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/3__option--3", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/3__option--3", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/3__option--3", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/3__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/3__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:transient", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_3']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:transient')]", "xpath:innerText"] ], "value": "" + }, { + "id": "290e296a-97a9-41e3-bbd8-51edfebc550b", + "comment": "", + "command": "click", + "target": "css=.row:nth-child(2) .array-add-button", + "targets": [ + ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], + ["xpath=//array-component/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "fabcaffe-4f57-45ab-ad6d-8901a14da678", + "comment": "", + "command": "pause", + "target": "500", + "targets": [], + "value": "" }, { "id": "624fd275-3ee2-4cd0-890a-4ae22b152ed4", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "xpath=//section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div[1]/div/div[7]/div/div/div[1]/div/div[2]/div/div/div[1]/div/div/div[2]/div[5]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], ["xpath=//array-component/div/div/button", "xpath:position"], @@ -1011,23 +1085,31 @@ "id": "e6c3d2db-386e-4b9b-a160-c091b025c1b9", "comment": "", "command": "type", - "target": "id=/relyingPartyOverrides/nameIdFormats/4", + "target": "xpath=//section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div[1]/div/div[7]/div/div/div[1]/div/div[2]/div/div/div[1]/div/div/div[2]/div[5]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/4", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/4", "css:finder"], - ["xpath=//input[@id='/relyingPartyOverrides/nameIdFormats/4']", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/4-container']/div/input", "xpath:idRelative"], - ["xpath=//li[5]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] + ["css=.focus", "css:finder"], + ["xpath=(//input[@value=''])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[8]/div/div/div/div/div/div[2]/div[5]/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "nameIdFormat" + }, { + "id": "0c417f2a-a400-4b34-91fc-e73efb92faff", + "comment": "", + "command": "click", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_4-item-4", + "targets": [], + "value": "" }, { "id": "82093807-448e-4a25-96bf-ed1dfca77452", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .d-flex > .btn", + "target": "css=.row:nth-child(4) .array-add-button", "targets": [ - ["css=div:nth-child(9) .d-flex > .btn", "css:finder"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button", "xpath:position"] + ["css=.row:nth-child(9) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[30]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[9]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1041,7 +1123,7 @@ "id": "fcd7d891-5ea4-45a6-8554-4298ec5804c9", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/authenticationMethods\\/0-container .btn", + "target": "xpath=//section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div[1]/div/div[7]/div/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[1]/div/div[1]/div/div[1]/div/div/button", "targets": [ ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/0-container .btn", "css:finder"], ["xpath=(//button[@type='button'])[8]", "xpath:attributes"], @@ -1060,20 +1142,23 @@ "id": "9bb8951c-c932-4236-89d8-9d2c8d49a702", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/0__option--0", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/0__option--0", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/0__option--0", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/authenticationMethods/0__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/authenticationMethods/0__listbox']/li", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0", "id"], + ["linkText=https://refeds.org/profile/mfa", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_0']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'https://refeds.org/profile/mfa')]", "xpath:innerText"] ], "value": "" }, { "id": "743e6d84-98b7-461a-8fb9-05826abb8e22", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .d-flex > .btn", + "target": "css=.row:nth-child(4) .array-add-button", "targets": [ ["css=div:nth-child(9) .d-flex > .btn", "css:finder"], ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button", "xpath:position"] @@ -1090,7 +1175,7 @@ "id": "81517bc9-7996-46be-9dfe-9eea57f0e616", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/authenticationMethods\\/1-container .btn", + "target": "xpath=//section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div[1]/div/div[7]/div/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[2]/div/div[1]/div/div[1]/div/div/button", "targets": [ ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/1-container .btn", "css:finder"], ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], @@ -1109,20 +1194,23 @@ "id": "8f00493c-94ef-4182-8423-5d23bd01136f", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/1__option--1", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/1__option--1", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/1__option--1", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/authenticationMethods/1__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/authenticationMethods/1__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[2]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_1']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken')]", "xpath:innerText"] ], "value": "" }, { "id": "7a3a49b4-4348-4318-a35c-ba0a2192e811", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .d-flex > .btn", + "target": "css=.row:nth-child(4) .array-add-button", "targets": [ ["css=div:nth-child(9) .d-flex > .btn", "css:finder"], ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button", "xpath:position"] @@ -1139,7 +1227,7 @@ "id": "c2f97ae8-fddf-4e48-b961-1d4154ceae9f", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/authenticationMethods\\/2-container .btn", + "target": "xpath=//section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div[1]/div/div[7]/div/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[3]/div/div[1]/div/div[1]/div/div/button", "targets": [ ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/2-container .btn", "css:finder"], ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], @@ -1158,20 +1246,23 @@ "id": "3dcbc6b1-2571-4ab8-9014-66b19727fe0a", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/2__option--2", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/2__option--2", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/2__option--2", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/authenticationMethods/2__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/authenticationMethods/2__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_2']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport')]", "xpath:innerText"] ], "value": "" }, { "id": "efad42c9-5d79-42f6-a348-54ba5fe59e9d", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .d-flex > .btn", + "target": "css=.row:nth-child(4) .array-add-button", "targets": [ ["css=div:nth-child(9) .d-flex > .btn", "css:finder"], ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button", "xpath:position"] @@ -1181,25 +1272,45 @@ "id": "9a7b2bfe-8702-40be-a6fe-a76b9a01cdde", "comment": "", "command": "type", - "target": "id=/relyingPartyOverrides/authenticationMethods/3", + "target": "xpath=//section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div[1]/div/div[7]/div/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[4]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/3", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/3", "css:finder"], - ["xpath=//input[@id='/relyingPartyOverrides/authenticationMethods/3']", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/authenticationMethods/3-container']/div/input", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] + ["css=.focus", "css:finder"], + ["xpath=(//input[@value=''])[18]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[9]/div/div/div/div/div/div[2]/div[4]/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div[2]/div[4]/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "someOverride" + }, { + "id": "9a850c80-fc21-48c8-b146-a665307c5ac6", + "comment": "", + "command": "click", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_3-item-3", + "targets": [], + "value": "" }, { "id": "82bf7075-6128-4471-a631-c8e4c3525eea", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/forceAuthn\\.parent > .custom-control-label", + "target": "id=root_relyingPartyOverrides_forceAuthn", "targets": [ - ["css=#\\/relyingPartyOverrides\\/forceAuthn\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/forceAuthn.parent']/label", "xpath:idRelative"], - ["xpath=//div[10]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Force AuthN')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_forceAuthn", "id"], + ["css=#root_relyingPartyOverrides_forceAuthn", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_forceAuthn']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[10]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[10]/div/div/div/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "e16e4888-e311-4719-9f87-590ddb124dc4", + "comment": "", + "command": "click", + "target": "css=.text-left:nth-child(3)", + "targets": [ + ["css=.text-left:nth-child(3)", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div/nav/button[3]", "xpath:idRelative"], + ["xpath=//button[3]", "xpath:position"], + ["xpath=//button[contains(.,'Attributes')]", "xpath:innerText"] ], "value": "" }, { @@ -1208,21 +1319,20 @@ "command": "click", "target": "css=.fa-check", "targets": [ - ["css=.fa-check", "css:finder"], - ["xpath=//button[@id='/attributeRelease.checkall']/i", "xpath:idRelative"], - ["xpath=//td[2]/button/i", "xpath:position"] + ["css=.fa-check", "css:finder"] ], "value": "" }, { "id": "2c3908a1-3fbf-4bbe-8611-fb8a87da1a66", "comment": "", "command": "click", - "target": "css=.btn-primary", + "target": "css=.btn-info", "targets": [ - ["css=.btn-primary", "css:finder"], - ["xpath=//button[@type='submit']", "xpath:attributes"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Save')]", "xpath:innerText"] + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/div[2]/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Save')]", "xpath:innerText"] ], "value": "" }, { @@ -1232,10 +1342,11 @@ "target": "linkText=Add Filter", "targets": [ ["linkText=Add Filter", "linkText"], - ["css=.btn-success", "css:finder"], - ["xpath=//a[contains(@href, '/metadata/provider/d71151a4-a27d-4cb9-bd96-882280454c4a/filter/new')]", "xpath:href"], - ["xpath=//div[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Add Filter')]", "xpath:innerText"] + ["css=#filters > .numbered-header .btn", "css:finder"], + ["xpath=//div[@id='filters']/div/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/ba913942-7961-4343-8e93-4f0918a57b88/filter/new')]", "xpath:href"], + ["xpath=//div[3]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Add Filter')]", "xpath:innerText"] ], "value": "" }, { @@ -1261,14 +1372,20 @@ "id": "4a663db9-9f10-4b12-9cb9-61aa01ecc0c0", "comment": "", "command": "waitForElementVisible", - "target": "id=/name", - "targets": [], + "target": "id=root_name", + "targets": [ + ["id=root_name", "id"], + ["css=#root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "92fdc836-2479-4faa-9e3d-447f5b82cc11", "comment": "", "command": "type", - "target": "id=/name", + "target": "id=root_name", "targets": [ ["id=/name", "id"], ["name=field65", "name"], @@ -1284,93 +1401,55 @@ "target": "2000", "targets": [], "value": "" - }, { - "id": "abfa17d5-ebfe-4bb2-b64a-ef5f127bac86", - "comment": "", - "command": "click", - "target": "id=/nameIdFormatFilterTarget.valuedd", - "targets": [ - ["id=/nameIdFormatFilterTarget.valuedd", "id"], - ["css=#\\/nameIdFormatFilterTarget\\.valuedd", "css:finder"], - ["xpath=//button[@id='/nameIdFormatFilterTarget.valuedd']", "xpath:attributes"], - ["xpath=//fieldset/div/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Entity ID')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "43878e34-28cc-424f-9044-87b8cb61db03", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "6040112e-86c4-4e98-b258-79d7e61dfb6d", - "comment": "", - "command": "click", - "target": "linkText=Entity ID", - "targets": [ - ["linkText=Entity ID", "linkText"], - ["css=.show > .dropdown-item:nth-child(1)", "css:finder"], - ["xpath=//a[contains(text(),'Entity ID')]", "xpath:link"], - ["xpath=//a[contains(@href, '#')]", "xpath:href"], - ["xpath=//div/div/a", "xpath:position"], - ["xpath=//a[contains(.,'Entity ID')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "70eba7e8-d84f-4b65-b5e8-d1523514dd29", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" }, { "id": "bba23377-23a1-46d5-b044-15047a08ee53", "comment": "", "command": "type", - "target": "id=/nameIdFormatFilterTarget.target", + "target": "css=.rbt-input-main", "targets": [ - ["id=/nameIdFormatFilterTarget.target", "id"], - ["css=#\\/nameIdFormatFilterTarget\\.target", "css:finder"], - ["xpath=//input[@id='/nameIdFormatFilterTarget.target']", "xpath:attributes"], - ["xpath=//div[@id='-container']/div/input", "xpath:idRelative"], - ["xpath=//div/div/input", "xpath:position"] + ["css=.rbt-input-main", "css:finder"], + ["xpath=(//input[@value=''])[2]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[3]/div/div/div/fieldset/div/div/div[2]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/input", "xpath:position"] ], "value": "https://idp.unicon.net/idp/shibboleth" }, { "id": "6fbb57d1-0fc6-42bc-86ca-4a5fe872ea34", "comment": "", "command": "click", - "target": "css=.btn-success:nth-child(1)", + "target": "css=.btn-success", "targets": [ - ["css=.btn-success:nth-child(1)", "css:finder"], - ["xpath=//div[2]/button", "xpath:position"], - ["xpath=//button[contains(.,'Add Entity ID')]", "xpath:innerText"] + ["css=.btn-success", "css:finder"], + ["xpath=(//button[@type='button'])[16]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[3]/div/div/div/fieldset/div/div/div[2]/div/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add Entity ID  ')]", "xpath:innerText"] ], "value": "" }, { - "id": "fa75b464-10a7-43da-939e-550e88748eb6", + "id": "56f0e9b6-ee8b-46d4-b40d-b1d4e6dab294", "comment": "", "command": "click", - "target": "css=#\\/filterEnabled\\.parent > .custom-control-label", + "target": "css=.nav-link:nth-child(2)", "targets": [ - ["css=#\\/filterEnabled\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/filterEnabled.parent']/label", "xpath:idRelative"], - ["xpath=//checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Filter?')]", "xpath:innerText"] + ["css=.nav-link:nth-child(2)", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div/nav/button[2]", "xpath:idRelative"], + ["xpath=//nav/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Options')]", "xpath:innerText"] ], "value": "" }, { "id": "a721538a-5f95-4567-8d7c-5851f67f3ae0", "comment": "", "command": "click", - "target": "css=#\\/removeExistingFormats\\.parent > .custom-control-label", + "target": "id=root_removeExistingFormats", "targets": [ - ["css=#\\/removeExistingFormats\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/removeExistingFormats.parent']/label", "xpath:idRelative"], - ["xpath=//div[7]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Remove Existing Formats?')]", "xpath:innerText"] + ["id=root_removeExistingFormats", "id"], + ["css=#root_removeExistingFormats", "css:finder"], + ["xpath=//input[@id='root_removeExistingFormats']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { @@ -1395,13 +1474,12 @@ "id": "76b5506e-ebd3-416b-9a2d-391d39b8b282", "comment": "", "command": "click", - "target": "css=.input-group-append > .btn", + "target": "css=.toggle-button", "targets": [ - ["css=.input-group-append > .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/formats/0-container']/div/div/button", "xpath:idRelative"], - ["xpath=//auto-complete/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[8]/div/div/div/div/div/div[2]/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1415,13 +1493,16 @@ "id": "ee812306-8d00-4162-9d92-eb598802f4bc", "comment": "", "command": "click", - "target": "id=/formats/0__option--0", + "target": "id=option-selector-root_formats_0-item-0", "targets": [ - ["id=/formats/0__option--0", "id"], - ["css=#\\/formats\\/0__option--0", "css:finder"], - ["xpath=//li[@id='/formats/0__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/formats/0__listbox']/li", "xpath:idRelative"], - ["xpath=//datalist-component/div/auto-complete/div/ul/li", "xpath:position"] + ["id=option-selector-root_formats_0-item-0", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "linkText"], + ["css=#option-selector-root_formats_0-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_formats_0-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_formats_0']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified')]", "xpath:innerText"] ], "value": "" }, { @@ -1445,12 +1526,12 @@ "id": "1f3cca46-1bf0-469f-9ac5-6481c8447633", "comment": "", "command": "click", - "target": "css=#\\/formats\\/1-container .btn", + "target": "css=.mt-2:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/formats\\/1-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], - ["xpath=//div[@id='/formats/1-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[15]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[8]/div/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1464,13 +1545,16 @@ "id": "aa0cb8e5-a5b5-4956-91dc-d25ea30ff87a", "comment": "", "command": "click", - "target": "id=/formats/1__option--1", + "target": "id=option-selector-root_formats_1-item-1", "targets": [ - ["id=/formats/1__option--1", "id"], - ["css=#\\/formats\\/1__option--1", "css:finder"], - ["xpath=//li[@id='/formats/1__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/formats/1__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[2]", "xpath:position"] + ["id=option-selector-root_formats_1-item-1", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "linkText"], + ["css=#option-selector-root_formats_1-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_formats_1-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_formats_1']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress')]", "xpath:innerText"] ], "value": "" }, { @@ -1495,11 +1579,12 @@ "id": "f313f186-80e1-42ea-9b19-c59efe66a92d", "comment": "", "command": "click", - "target": "css=#\\/formats\\/2-container .btn", + "target": "css=.mt-2:nth-child(3) .toggle-button", "targets": [ - ["css=#\\/formats\\/2-container .fa", "css:finder"], - ["xpath=//div[@id='/formats/2-container']/div/div/button/i", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button/i", "xpath:position"] + ["css=.mt-2:nth-child(3) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[17]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[8]/div/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1513,13 +1598,16 @@ "id": "bf10f8f1-f5b8-43f5-b1d8-6e4e67e92621", "comment": "", "command": "click", - "target": "id=/formats/2__option--2", + "target": "id=option-selector-root_formats_2-item-2", "targets": [ - ["id=/formats/2__option--2", "id"], - ["css=#\\/formats\\/2__option--2", "css:finder"], - ["xpath=//li[@id='/formats/2__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/formats/2__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_formats_2-item-2", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "linkText"], + ["css=#option-selector-root_formats_2-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_formats_2-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_formats_2']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent')]", "xpath:innerText"] ], "value": "" }, { @@ -1543,11 +1631,12 @@ "id": "823e4972-3bdd-4286-a22d-8805adef4f2c", "comment": "", "command": "click", - "target": "css=#\\/formats\\/3-container .btn", + "target": "css=.mt-2:nth-child(4) .toggle-button", "targets": [ - ["css=#\\/formats\\/3-container .fa", "css:finder"], - ["xpath=//div[@id='/formats/3-container']/div/div/button/i", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button/i", "xpath:position"] + ["css=.mt-2:nth-child(4) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[19]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[8]/div/div/div/div/div/div[2]/div[4]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1561,13 +1650,16 @@ "id": "3cba2ead-22cd-4bc9-b0ca-bb1f5ebb10a2", "comment": "", "command": "click", - "target": "id=/formats/3__option--3", + "target": "id=option-selector-root_formats_3-item-3", "targets": [ - ["id=/formats/3__option--3", "id"], - ["css=#\\/formats\\/3__option--3", "css:finder"], - ["xpath=//li[@id='/formats/3__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/formats/3__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_formats_3-item-3", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:transient", "linkText"], + ["css=#option-selector-root_formats_3-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_formats_3-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_formats_3']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:transient')]", "xpath:innerText"] ], "value": "" }, { @@ -1584,25 +1676,41 @@ "id": "f0ae75e7-b2c0-49fa-9806-23f4f228e3e1", "comment": "", "command": "type", - "target": "id=/formats/4", + "target": "xpath=//section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div[1]/div/div[8]/div/div/div[1]/div/div/div[2]/div[5]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ - ["id=/formats/4", "id"], - ["css=#\\/formats\\/4", "css:finder"], - ["xpath=//input[@id='/formats/4']", "xpath:attributes"], - ["xpath=//div[@id='/formats/4-container']/div/input", "xpath:idRelative"], - ["xpath=//li[5]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] + ["css=.focus", "css:finder"], + ["xpath=(//input[@value=''])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[8]/div/div/div/div/div/div[2]/div[5]/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "name id format" + }, { + "id": "fffef61c-1c28-4180-b337-00b69a0148d3", + "comment": "", + "command": "click", + "target": "id=option-selector-root_formats_4-item-4", + "targets": [ + ["id=option-selector-root_formats_4-item-4", "id"], + ["linkText=name id format", "linkText"], + ["css=#option-selector-root_formats_4-item-4", "css:finder"], + ["xpath=//a[@id='option-selector-root_formats_4-item-4']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_formats_4']/a[5]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[5]", "xpath:href"], + ["xpath=//a[5]", "xpath:position"], + ["xpath=//a[contains(.,'name id format')]", "xpath:innerText"] + ], + "value": "" }, { "id": "3a97e6c5-badb-45c8-b6e5-a7e8462ee77f", "comment": "", "command": "click", - "target": "css=.btn-primary", + "target": "css=.btn-info", "targets": [ - ["css=.btn-primary", "css:finder"], - ["xpath=//button[@type='submit']", "xpath:attributes"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Save')]", "xpath:innerText"] + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/div[2]/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Save')]", "xpath:innerText"] ], "value": "" }, { @@ -1616,11 +1724,12 @@ "id": "100902ee-6d6e-4148-a69b-b37746a4ad6e", "comment": "", "command": "assertText", - "target": "css=.list-group-item:nth-child(1) > filter-configuration-list-item > .d-flex > .btn", + "target": "css=.list-group-item:nth-child(1) .mx-4", "targets": [ - ["css=.list-group-item:nth-child(1) > filter-configuration-list-item > .d-flex > .btn", "css:finder"], - ["xpath=//div[@id='filters']/filter-configuration-list/ul/li/filter-configuration-list-item/div/button", "xpath:idRelative"], - ["xpath=//filter-configuration-list-item/div/button", "xpath:position"], + ["css=.list-group-item:nth-child(1) .mx-4", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='filters']/ul/li/div/button", "xpath:idRelative"], + ["xpath=//li/div/button", "xpath:position"], ["xpath=//button[contains(.,'Entity Attributes Filter')]", "xpath:innerText"] ], "value": "Entity Attributes Filter" @@ -1646,11 +1755,13 @@ "id": "c9d498da-9f59-40ae-b5d4-cae397a13766", "comment": "", "command": "assertText", - "target": "css=.list-group-item:nth-child(1) > filter-configuration-list-item > .d-flex > .btn", + "target": "css=.list-group-item:nth-child(1) .mx-4", "targets": [ - ["css=tr:nth-child(1) > .td-lg:nth-child(3)", "css:finder"], - ["xpath=//td[3]", "xpath:position"], - ["xpath=//td[contains(.,'Name ID Format Filter')]", "xpath:innerText"] + ["css=.list-group-item:nth-child(1) .mx-4", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='filters']/ul/li/div/button", "xpath:idRelative"], + ["xpath=//li/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Name ID Format Filter')]", "xpath:innerText"] ], "value": "Name ID Format Filter" }, { @@ -1674,20 +1785,15 @@ "id": "441608df-24a3-4a60-bfce-50a90ff0ee16", "comment": "", "command": "assertText", - "target": "css=.list-group-item:nth-child(1) > filter-configuration-list-item > .d-flex > .btn", + "target": "css=.list-group-item:nth-child(1) .mx-4", "targets": [ - ["css=tr:nth-child(1) > .td-lg:nth-child(3)", "css:finder"], - ["xpath=//td[3]", "xpath:position"], - ["xpath=//td[contains(.,'Entity Attributes Filter')]", "xpath:innerText"] + ["css=.list-group-item:nth-child(1) .mx-4", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='filters']/ul/li/div/button", "xpath:idRelative"], + ["xpath=//li/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Entity Attributes Filter')]", "xpath:innerText"] ], "value": "Entity Attributes Filter" - }, { - "id": "13133548-1a88-4cc0-a861-7481794c65e0", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1335-2.side b/backend/src/integration/resources/SHIBUI-1335-2.side index abc25a75c..80009fd84 100644 --- a/backend/src/integration/resources/SHIBUI-1335-2.side +++ b/backend/src/integration/resources/SHIBUI-1335-2.side @@ -41,51 +41,91 @@ "id": "185a1e41-d3a3-4627-aae2-7f05059e9c7d", "comment": "", "command": "click", - "target": "name=submit", + "target": "css=.btn", "targets": [ - ["name=submit", "name"], - ["css=td:nth-child(1) > input", "css:finder"], - ["xpath=//input[@name='submit']", "xpath:attributes"], - ["xpath=//tr[3]/td/input", "xpath:position"] + ["css=.btn", "css:finder"], + ["xpath=//button[@type='submit']", "xpath:attributes"], + ["xpath=//button", "xpath:position"], + ["xpath=//button[contains(.,'Sign in')]", "xpath:innerText"] ], "value": "" + }, { + "id": "2cd3569b-d26c-4d57-bb95-f5e8bd1034c4", + "comment": "", + "command": "waitForElementVisible", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "67772da3-94dd-419e-b05c-7ed12927805e", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "315688c9-6e8d-47e9-b98a-b2b35f48a475", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "eb6fccd7-ea92-41ad-ade1-b985244f79d5", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "94e01321-ac2d-427f-89a5-7f816cea0f00", "comment": "", "command": "click", - "target": "css=#addNewDropdown > translate-i18n", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=#addNewDropdown > translate-i18n", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/translate-i18n", "xpath:idRelative"], - ["xpath=//translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Add New')]", "xpath:innerText"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "c65500ae-3b08-4c22-8c88-b4116d6e0c9b", "comment": "", "command": "click", - "target": "linkText=Metadata Provider", + "target": "id=metadata-nav-dropdown-provider", "targets": [ - ["linkText=Metadata Provider", "linkText"], - ["css=.nav-link:nth-child(2)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a[2]", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[3]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"] + ["id=metadata-nav-dropdown-provider", "id"], + ["linkText=Add a new metadata provider", "linkText"], + ["css=#metadata-nav-dropdown-provider", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata provider')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-provider']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/new')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata provider')]", "xpath:innerText"] ], "value": "" }, { "id": "c5ec3177-5a66-4901-a644-8c6cfbb99254", "comment": "", "command": "waitForElementVisible", - "target": "id=/name", - "targets": [], + "target": "name=name", + "targets": [ + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "d093ad38-ab2d-4441-a60b-2c094d6938f9", "comment": "", "command": "type", - "target": "id=/name", + "target": "name=name", "targets": [ ["id=/name", "id"], ["name=field4", "name"], @@ -94,19 +134,26 @@ ["xpath=//input", "xpath:position"] ], "value": "Filesystem Metadata Provider" + }, { + "id": "f1d094a5-3a8b-4336-9d61-2f2d4b852ed4", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" }, { "id": "aac150b1-6140-476b-8bdb-ebb83a14812d", "comment": "", "command": "select", - "target": "id=/type", + "target": "name=type", "targets": [ - ["id=/type", "id"], - ["name=field2", "name"], - ["css=#\\/type", "css:finder"], - ["xpath=//select[@id='/type']", "xpath:attributes"], + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div[2]/select", "xpath:idRelative"], ["xpath=//select", "xpath:position"] ], - "value": "label=FilesystemMetadataProvider" + "value": "label=FilesystemMetadataResolver" }, { "id": "7a60cb3c-ed3c-495c-8329-2fe52e72cceb", "comment": "", @@ -121,14 +168,20 @@ "id": "8cbc5dce-126e-4fb6-afcd-9651d9be6ba2", "comment": "", "command": "waitForElementVisible", - "target": "id=/xmlId", - "targets": [], + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "c140099c-f6e3-4600-92b3-5b97e07a95ee", "comment": "", "command": "type", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ ["id=/xmlId", "id"], ["name=field7", "name"], @@ -141,15 +194,28 @@ "id": "e2e3a3e4-196c-483d-ac52-de4027636a05", "comment": "", "command": "type", - "target": "id=/metadataFile", + "target": "id=root_metadataFile", "targets": [ - ["id=/metadataFile", "id"], - ["name=field8", "name"], - ["css=#\\/metadataFile", "css:finder"], - ["xpath=//input[@id='/metadataFile']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_metadataFile", "id"], + ["css=#root_metadataFile", "css:finder"], + ["xpath=//input[@id='root_metadataFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "%{idp.home}/metadata.txt" + }, { + "id": "6ad23a8b-b13c-48b9-8972-cc20577ed1f1", + "comment": "", + "command": "click", + "target": "id=root_doInitialization-No", + "targets": [ + ["id=root_doInitialization-No", "id"], + ["css=#root_doInitialization-No", "css:finder"], + ["xpath=//input[@id='root_doInitialization-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[3]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] + ], + "value": "" }, { "id": "5f32dd3f-a1d0-4ca3-9f2d-8a9cc6141004", "comment": "", @@ -171,13 +237,12 @@ "id": "8197c49f-a70f-46dd-919e-58fff0e14075", "comment": "", "command": "click", - "target": "css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", + "target": "css=.row:nth-child(1) > .col-12 .toggle-button", "targets": [ - ["css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/reloadableMetadataResolverAttributes/minRefreshDelay-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.row:nth-child(1) > .col-12 .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -191,14 +256,16 @@ "id": "0f1a7a34-0955-45bb-bd2a-a5e4f246869b", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/minRefreshDelay__option--1", + "target": "id=option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "targets": [ - ["id=/reloadableMetadataResolverAttributes/minRefreshDelay__option--1", "id"], - ["css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay__option--1", "css:finder"], - ["xpath=//li[@id='/reloadableMetadataResolverAttributes/minRefreshDelay__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/reloadableMetadataResolverAttributes/minRefreshDelay__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'PT30S')]", "xpath:innerText"] + ["id=option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { @@ -212,12 +279,12 @@ "id": "64d0912a-0244-4f5e-818f-17000c01477b", "comment": "", "command": "click", - "target": "css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay-container .btn", + "target": "css=.row:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -231,33 +298,36 @@ "id": "80a08176-de7d-4938-8d49-1d296a8ba27c", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/maxRefreshDelay__option--2", + "target": "id=option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-2", "targets": [ - ["id=/reloadableMetadataResolverAttributes/maxRefreshDelay__option--2", "id"], - ["css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay__option--2", "css:finder"], - ["xpath=//li[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-2", "id"], + ["linkText=PT1M", "linkText"], + ["css=#option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'PT1M')]", "xpath:innerText"] ], "value": "" }, { "id": "f5d73c96-8567-40da-8c7e-be7524050cb8", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "targets": [ - ["id=/reloadableMetadataResolverAttributes/refreshDelayFactor", "id"], - ["name=field14", "name"], - ["css=#\\/reloadableMetadataResolverAttributes\\/refreshDelayFactor", "css:finder"], - ["xpath=//input[@id='/reloadableMetadataResolverAttributes/refreshDelayFactor']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "id"], + ["css=#root_reloadableMetadataResolverAttributes_refreshDelayFactor", "css:finder"], + ["xpath=//input[@id='root_reloadableMetadataResolverAttributes_refreshDelayFactor']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "85e3eefd-43e7-43b7-b33e-a2c75149ba0c", "comment": "", "command": "type", - "target": "id=/reloadableMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "targets": [ ["id=/reloadableMetadataResolverAttributes/refreshDelayFactor", "id"], ["name=field14", "name"], @@ -276,18 +346,6 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "c5fbaf24-139b-4886-a437-ef41a695bbc9", - "comment": "", - "command": "click", - "target": "css=.custom-control-label", - "targets": [ - ["css=.custom-control-label", "css:finder"], - ["xpath=//div[@id='/enabled.parent']/label", "xpath:idRelative"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Metadata Provider?')]", "xpath:innerText"] - ], - "value": "" }, { "id": "7fcdaee3-5714-4c5a-93a7-b1b15c6b24e1", "comment": "", @@ -302,14 +360,19 @@ "id": "27c0717e-f477-448b-8091-3bb2f3e6080f", "comment": "", "command": "waitForElementVisible", - "target": "css=.d-block > primitive-property:nth-child(2) .text-truncate", - "targets": [], + "target": "css=.align-middle:nth-child(3)", + "targets": [ + ["css=.align-middle:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[3]", "xpath:idRelative"], + ["xpath=//td[3]", "xpath:position"], + ["xpath=//td[contains(.,'FilesystemMetadataResolver')]", "xpath:innerText"] + ], "value": "10000" }, { "id": "20f7b832-ec52-450a-8224-399f0d4de0a0", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(2) .text-truncate", + "target": "css=.align-middle:nth-child(3)", "targets": [ ["css=.d-block > primitive-property:nth-child(2) .text-truncate", "css:finder"], ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property[2]/div/div/span[2]", "xpath:idRelative"], @@ -321,499 +384,36 @@ "id": "11d71ffb-3372-41cb-9832-72755ef298b5", "comment": "", "command": "click", - "target": "css=.btn:nth-child(2) > translate-i18n", - "targets": [ - ["css=.btn:nth-child(2) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/button/translate-i18n", "xpath:idRelative"], - ["xpath=//div/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Filters')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "b7312cb1-744c-429f-a6fa-58635f7a1fea", - "comment": "", - "command": "click", - "target": "css=#filters .actions span", - "targets": [ - ["css=#filters .actions span", "css:finder"], - ["xpath=//div[@id='filters']/div/div/a/span", "xpath:idRelative"], - ["xpath=//div/a/span", "xpath:position"], - ["xpath=//span[contains(.,'Add Filter')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "2ba34b77-bac1-48f4-b2ef-c3a4f93e9b51", - "comment": "", - "command": "select", - "target": "name=type", - "targets": [], - "value": "label=EntityAttributes" - }, { - "id": "73f3151e-9a9f-4f6c-b3d4-93560b3e42bb", - "comment": "", - "command": "click", - "target": "css=option:nth-child(2)", - "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='EntityAttributes']", "xpath:attributes"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'EntityAttributes')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "a8ee94c0-d4f2-47f1-974e-09308193e6dd", - "comment": "", - "command": "waitForElementVisible", - "target": "id=/name", - "targets": [], - "value": "10000" - }, { - "id": "3edb4fc7-f24c-440b-8403-974304f0b4ac", - "comment": "", - "command": "type", - "target": "id=/name", - "targets": [ - ["id=/name", "id"], - ["name=field18", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], - ["xpath=//input", "xpath:position"] - ], - "value": "Entity Attributes" - }, { - "id": "36dac228-9203-4f2e-a623-db41ef8c019f", - "comment": "", - "command": "pause", - "target": "5000", - "targets": [], - "value": "" - }, { - "id": "f2c07797-07f6-4325-8c5f-57a676dc982c", - "comment": "", - "command": "click", - "target": "id=/entityAttributesFilterTarget.valuedd", - "targets": [ - ["id=/entityAttributesFilterTarget.valuedd", "id"], - ["css=#\\/entityAttributesFilterTarget\\.valuedd", "css:finder"], - ["xpath=//button[@id='/entityAttributesFilterTarget.valuedd']", "xpath:attributes"], - ["xpath=//fieldset/div/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Entity ID')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "1c424cfa-8201-40df-b8ed-ddec065dfd66", - "comment": "", - "command": "pause", - "target": "5000", - "targets": [], - "value": "" - }, { - "id": "bca61e15-7c13-4007-8c90-1a667bbef67d", - "comment": "", - "command": "click", - "target": "linkText=Regex", - "targets": [ - ["linkText=Regex", "linkText"], - ["css=.dropdown-item:nth-child(2)", "css:finder"], - ["xpath=//a[contains(text(),'Regex')]", "xpath:link"], - ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], - ["xpath=//div/div/a[2]", "xpath:position"], - ["xpath=//a[contains(.,'Regex')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "98f6eea0-36ff-449c-b042-98b87f0d3a70", - "comment": "", - "command": "pause", - "target": "5000", - "targets": [], - "value": "" - }, { - "id": "e0c65de5-d74a-4d87-aca0-9e9f4b37fb36", - "comment": "", - "command": "click", - "target": "id=/entityAttributesFilterTarget.target", - "targets": [ - ["id=/entityAttributesFilterTarget.target", "id"], - ["name=script", "name"], - ["css=#\\/entityAttributesFilterTarget\\.target", "css:finder"], - ["xpath=//input[@id='/entityAttributesFilterTarget.target']", "xpath:attributes"], - ["xpath=//div/div/input", "xpath:position"] - ], - "value": "" - }, { - "id": "70a43e87-7180-4761-8f64-d69c7c7557e5", - "comment": "", - "command": "sendKeys", - "target": "id=/entityAttributesFilterTarget.target", - "targets": [], - "value": "/foo.*/" - }, { - "id": "ce3cf65a-40bd-43fe-beb7-dc3e1d79927b", - "comment": "", - "command": "click", - "target": "css=#\\/filterEnabled\\.parent > .custom-control-label", - "targets": [ - ["css=#\\/filterEnabled\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/filterEnabled.parent']/label", "xpath:idRelative"], - ["xpath=//checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Filter?')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "2eea7d5e-e992-4c85-94da-4537e4863228", - "comment": "", - "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/signAssertion\\.parent > .custom-control-label", - "targets": [ - ["css=#\\/relyingPartyOverrides\\/signAssertion\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/signAssertion.parent']/label", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Sign the Assertion?')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "f34181b8-eac5-4ce7-8776-0f87cf938503", - "comment": "", - "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/dontSignResponse\\.parent > .custom-control-label", - "targets": [ - ["css=#\\/relyingPartyOverrides\\/dontSignResponse\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/dontSignResponse.parent']/label", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"] - ], - "value": "" - }, { - "id": "06699eac-9dcc-46ea-a520-bd8117deab97", - "comment": "", - "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/turnOffEncryption\\.parent > .custom-control-label", - "targets": [ - ["css=#\\/relyingPartyOverrides\\/turnOffEncryption\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/turnOffEncryption.parent']/label", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Turn off Encryption of Response?')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "891515dc-c75b-45f7-b33e-05760891e9aa", - "comment": "", - "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/forceAuthn\\.parent > .custom-control-label", - "targets": [ - ["css=#\\/relyingPartyOverrides\\/forceAuthn\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/forceAuthn.parent']/label", "xpath:idRelative"], - ["xpath=//div[10]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Force AuthN')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "1c315922-1f5a-43a5-97fd-1767f3392471", - "comment": "", - "command": "click", - "target": "css=tr:nth-child(5) .custom-control-label", - "targets": [ - ["css=tr:nth-child(5) .custom-control-label", "css:finder"], - ["xpath=//tr[5]/td[2]/fieldset/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Toggle givenName')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "9569fc2c-5b8d-4724-bf1c-5a2a9af253bd", - "comment": "", - "command": "click", - "target": "css=tr:nth-child(9) .custom-control-label", + "target": "linkText=Filesystem Metadata Provider", "targets": [ - ["css=tr:nth-child(9) .custom-control-label", "css:finder"], - ["xpath=//tr[9]/td[2]/fieldset/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Toggle eduPersonEntitlement')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "f2cfdab4-af65-45b5-b62a-56935ae15637", - "comment": "", - "command": "click", - "target": "css=.btn-primary", - "targets": [ - ["css=.btn-primary", "css:finder"], - ["xpath=//button[@type='submit']", "xpath:attributes"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Save')]", "xpath:innerText"] + ["linkText=Filesystem Metadata Provider", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'Filesystem Metadata Provider')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/3e6636fa-ea9d-4b85-b4b0-ef25073de02a/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Filesystem Metadata Provider')]", "xpath:innerText"] ], "value": "" }, { - "id": "86d92dcf-e856-4578-8a0d-25b4121ad69e", - "comment": "", - "command": "waitForElementVisible", - "target": "linkText=Add Filter", - "targets": [ - ["linkText=Add Filter", "linkText"], - ["css=.btn-success", "css:finder"], - ["xpath=//a[contains(@href, '/metadata/provider/45943457-0dd0-486b-b111-19ae6dd6896c/filter/new')]", "xpath:href"], - ["xpath=//div[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Add Filter')]", "xpath:innerText"] - ], - "value": "10000" - }, { - "id": "bc3e5810-89fb-42de-92da-e9336b29ebd3", - "comment": "", - "command": "click", - "target": "linkText=Add Filter", - "targets": [ - ["linkText=Add Filter", "linkText"], - ["css=.btn-success", "css:finder"], - ["xpath=//a[contains(@href, '/metadata/provider/dbc814ac-890b-4f11-b3e0-3a2d667fa5cd/filter/new')]", "xpath:href"], - ["xpath=//div[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Add Filter')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "32c13864-5b11-4316-a27b-fd0042328924", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "094ce013-936c-4479-9c5b-ba26db4d05c9", - "comment": "", - "command": "waitForElementVisible", - "target": "name=type", - "targets": [ - ["name=type", "name"], - ["css=.form-control", "css:finder"], - ["xpath=//select[@name='type']", "xpath:attributes"], - ["xpath=//select", "xpath:position"] - ], - "value": "10000" - }, { - "id": "f6d537b3-74ab-430f-9688-b7c90516cfc0", - "comment": "", - "command": "select", - "target": "name=type", - "targets": [], - "value": "label=NameIDFormat" - }, { - "id": "c2598572-19aa-49d9-b336-f486a73e2579", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "471c00e2-52d8-4cf7-a071-00b50c98bf9e", + "id": "b9e9f9c9-bc4b-4ebc-a4f6-253440f34837", "comment": "", "command": "waitForElementVisible", - "target": "id=/name", + "target": "css=div:nth-child(2) > div:nth-child(2) > .d-flex > .text-truncate", "targets": [], - "value": "10000" + "value": "30000" }, { - "id": "8b0dfae1-5e58-4943-ae62-cad5d32ea203", - "comment": "", - "command": "type", - "target": "id=/name", - "targets": [ - ["id=/name", "id"], - ["name=field37", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], - ["xpath=//input", "xpath:position"] - ], - "value": "Name ID Filter" - }, { - "id": "4cc11ab2-b8e3-4669-ad58-9c8e9664a8de", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "ec49b089-a390-4cff-904f-363d3a57cb76", - "comment": "", - "command": "click", - "target": "id=/nameIdFormatFilterTarget.valuedd", - "targets": [ - ["id=/nameIdFormatFilterTarget.valuedd", "id"], - ["css=#\\/nameIdFormatFilterTarget\\.valuedd", "css:finder"], - ["xpath=//button[@id='/nameIdFormatFilterTarget.valuedd']", "xpath:attributes"], - ["xpath=//fieldset/div/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Entity ID')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "7f746a0d-6006-4749-aa61-56b08b48c4fd", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "56abaabc-0c96-428c-9070-62a79ba90c6c", - "comment": "", - "command": "click", - "target": "css=.show > .dropdown-item:nth-child(1)", - "targets": [ - ["linkText=Entity ID", "linkText"], - ["css=.show > .dropdown-item:nth-child(1)", "css:finder"], - ["xpath=//a[contains(text(),'Entity ID')]", "xpath:link"], - ["xpath=//a[contains(@href, '#')]", "xpath:href"], - ["xpath=//div/div/a", "xpath:position"], - ["xpath=//a[contains(.,'Entity ID')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "3f8bc2f3-ee80-410f-aa5d-33aea08bf991", - "comment": "", - "command": "type", - "target": "id=/nameIdFormatFilterTarget.target", - "targets": [ - ["id=/nameIdFormatFilterTarget.target", "id"], - ["css=#\\/nameIdFormatFilterTarget\\.target", "css:finder"], - ["xpath=//input[@id='/nameIdFormatFilterTarget.target']", "xpath:attributes"], - ["xpath=//div[@id='-container']/div/input", "xpath:idRelative"], - ["xpath=//div/div/input", "xpath:position"] - ], - "value": "unicon" - }, { - "id": "7129e60b-fecc-436f-b055-0f377ade83f8", - "comment": "", - "command": "click", - "target": "css=.btn-success:nth-child(1)", - "targets": [ - ["css=.btn-success:nth-child(1)", "css:finder"], - ["xpath=//div[2]/button", "xpath:position"], - ["xpath=//button[contains(.,'Add Entity ID')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "93a29942-d580-412b-b151-9961fd1495d0", - "comment": "", - "command": "click", - "target": "css=#\\/filterEnabled\\.parent > .custom-control-label", - "targets": [ - ["css=#\\/filterEnabled\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/filterEnabled.parent']/label", "xpath:idRelative"], - ["xpath=//checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Filter?')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "c0ab05f8-13f7-4e4a-bf02-2118629eca43", - "comment": "", - "command": "click", - "target": "css=.btn-success > translate-i18n", - "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//array-component/div/div/button/translate-i18n", "xpath:position"] - ], - "value": "" - }, { - "id": "f0b7296b-004d-445e-9ebd-6bbd9052b30f", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "028122a4-7a5c-4ee9-afb9-5f7d491cc9bd", - "comment": "", - "command": "click", - "target": "css=.input-group-append > .btn", - "targets": [ - ["css=.input-group-append > .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/formats/0-container']/div/div/button", "xpath:idRelative"], - ["xpath=//auto-complete/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "e3c2c21f-408c-48f2-a2dd-9241123f0ead", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "e50612f4-b0e4-4749-99ec-5c67e66cd398", - "comment": "", - "command": "click", - "target": "id=/formats/0__option--1", - "targets": [ - ["id=/formats/0__option--1", "id"], - ["css=#\\/formats\\/0__option--1", "css:finder"], - ["xpath=//li[@id='/formats/0__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/formats/0__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"] - ], - "value": "" - }, { - "id": "952930b1-160e-42cd-9be5-c44f397a1451", - "comment": "", - "command": "click", - "target": "css=.btn-primary", - "targets": [ - ["css=.btn-primary", "css:finder"], - ["xpath=//button[@type='submit']", "xpath:attributes"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Save')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "eca1d3dd-9e47-49d2-b4a1-a45c2b6c8c3a", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "d722902b-5c10-45dc-99df-d96f46e78313", - "comment": "", - "command": "assertText", - "target": "css=.list-group-item:nth-child(1) span:nth-child(4)", - "targets": [ - ["css=.list-group-item:nth-child(1) span:nth-child(4)", "css:finder"], - ["xpath=//div[@id='filters']/filter-configuration-list/ul/li/filter-configuration-list-item/div/span[2]", "xpath:idRelative"], - ["xpath=//filter-configuration-list-item/div/span[2]", "xpath:position"], - ["xpath=//span[contains(.,'EntityAttributes')]", "xpath:innerText"] - ], - "value": "EntityAttributes" - }, { - "id": "c8d9bc5a-4b7e-4178-8aba-8b8280506c20", - "comment": "", - "command": "click", - "target": "css=.list-group-item:nth-child(1) .btn:nth-child(2)", - "targets": [ - ["css=.list-group-item:nth-child(1) .btn:nth-child(2)", "css:finder"], - ["xpath=//div[@id='filters']/filter-configuration-list/ul/li/filter-configuration-list-item/div/div/button[2]", "xpath:idRelative"], - ["xpath=//button[2]", "xpath:position"] - ], - "value": "" - }, { - "id": "d25400e1-127e-4b8c-b7e2-ade937cfd5a0", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "d7909094-96ce-4532-98b4-446cc013c9c8", + "id": "91ba0e44-01e0-452c-b232-ed72f673682c", "comment": "", "command": "assertText", - "target": "css=.list-group-item:nth-child(1) span:nth-child(4)", + "target": "css=div:nth-child(2) > div:nth-child(2) > .d-flex > .text-truncate", "targets": [ - ["css=tr:nth-child(1) > .td-lg:nth-child(4)", "css:finder"], - ["xpath=//td[4]", "xpath:position"], - ["xpath=//td[contains(.,'NameIDFormat')]", "xpath:innerText"] + ["css=div:nth-child(2) > div:nth-child(2) > .d-flex > .text-truncate", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[2]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'FilesystemMetadataResolver')]", "xpath:innerText"] ], - "value": "NameIDFormat" - }, { - "id": "d4c36d2c-c90e-45e6-ae49-a46b3c64a629", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" + "value": "FilesystemMetadataResolver" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1335-3.side b/backend/src/integration/resources/SHIBUI-1335-3.side index 90ac4f016..7454cc6b9 100644 --- a/backend/src/integration/resources/SHIBUI-1335-3.side +++ b/backend/src/integration/resources/SHIBUI-1335-3.side @@ -41,51 +41,91 @@ "id": "185a1e41-d3a3-4627-aae2-7f05059e9c7d", "comment": "", "command": "click", - "target": "name=submit", + "target": "css=.btn", "targets": [ - ["name=submit", "name"], - ["css=td:nth-child(1) > input", "css:finder"], - ["xpath=//input[@name='submit']", "xpath:attributes"], - ["xpath=//tr[3]/td/input", "xpath:position"] + ["css=.btn", "css:finder"], + ["xpath=//button[@type='submit']", "xpath:attributes"], + ["xpath=//button", "xpath:position"], + ["xpath=//button[contains(.,'Sign in')]", "xpath:innerText"] ], "value": "" + }, { + "id": "2b160585-ee18-4852-9c8f-b39656a03736", + "comment": "", + "command": "waitForElementVisible", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "e64cf7d1-36eb-483b-b577-0f9daf9793c1", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "82fb2e02-32d9-44f2-b531-162df5a20432", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "b878a3aa-276c-42ee-8651-9b90d2e92c09", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "94e01321-ac2d-427f-89a5-7f816cea0f00", "comment": "", "command": "click", - "target": "css=#addNewDropdown > translate-i18n", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=#addNewDropdown > translate-i18n", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/translate-i18n", "xpath:idRelative"], - ["xpath=//translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Add New')]", "xpath:innerText"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "c65500ae-3b08-4c22-8c88-b4116d6e0c9b", "comment": "", "command": "click", - "target": "linkText=Metadata Provider", + "target": "id=metadata-nav-dropdown-provider", "targets": [ - ["linkText=Metadata Provider", "linkText"], - ["css=.nav-link:nth-child(2)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a[2]", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[3]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"] + ["id=metadata-nav-dropdown-provider", "id"], + ["linkText=Add a new metadata provider", "linkText"], + ["css=#metadata-nav-dropdown-provider", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata provider')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-provider']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/new')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata provider')]", "xpath:innerText"] ], "value": "" }, { "id": "c5ec3177-5a66-4901-a644-8c6cfbb99254", "comment": "", "command": "waitForElementVisible", - "target": "id=/name", - "targets": [], + "target": "name=name", + "targets": [ + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "d093ad38-ab2d-4441-a60b-2c094d6938f9", "comment": "", "command": "type", - "target": "id=/name", + "target": "name=name", "targets": [ ["id=/name", "id"], ["name=field4", "name"], @@ -94,19 +134,26 @@ ["xpath=//input", "xpath:position"] ], "value": "Local Dynamic Metadata Provider" + }, { + "id": "d2ea5b2f-a693-49bb-b644-b1fb35ff54c6", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" }, { "id": "aac150b1-6140-476b-8bdb-ebb83a14812d", "comment": "", "command": "select", - "target": "id=/type", + "target": "name=type", "targets": [ - ["id=/type", "id"], - ["name=field2", "name"], - ["css=#\\/type", "css:finder"], - ["xpath=//select[@id='/type']", "xpath:attributes"], + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div[2]/select", "xpath:idRelative"], ["xpath=//select", "xpath:position"] ], - "value": "label=LocalDynamicMetadataProvider" + "value": "label=LocalDynamicMetadataResolver" }, { "id": "7a60cb3c-ed3c-495c-8329-2fe52e72cceb", "comment": "", @@ -121,14 +168,20 @@ "id": "8cbc5dce-126e-4fb6-afcd-9651d9be6ba2", "comment": "", "command": "waitForElementVisible", - "target": "id=/xmlId", - "targets": [], + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "c140099c-f6e3-4600-92b3-5b97e07a95ee", "comment": "", "command": "type", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ ["id=/xmlId", "id"], ["name=field7", "name"], @@ -141,13 +194,13 @@ "id": "e2e3a3e4-196c-483d-ac52-de4027636a05", "comment": "", "command": "type", - "target": "id=/sourceDirectory", + "target": "id=root_sourceDirectory", "targets": [ - ["id=/sourceDirectory", "id"], - ["name=field8", "name"], - ["css=#\\/sourceDirectory", "css:finder"], - ["xpath=//input[@id='/sourceDirectory']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_sourceDirectory", "id"], + ["css=#root_sourceDirectory", "css:finder"], + ["xpath=//input[@id='root_sourceDirectory']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "%{idp.home}/foo" }, { @@ -164,12 +217,12 @@ "id": "0586f02c-c210-4e44-9a86-3e914bc94f3b", "comment": "", "command": "type", - "target": "id=/dynamicMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_dynamicMetadataResolverAttributes_refreshDelayFactor", "targets": [ - ["id=/dynamicMetadataResolverAttributes/refreshDelayFactor", "id"], - ["name=field11", "name"], - ["css=#\\/dynamicMetadataResolverAttributes\\/refreshDelayFactor", "css:finder"], - ["xpath=//input[@id='/dynamicMetadataResolverAttributes/refreshDelayFactor']", "xpath:attributes"], + ["id=root_dynamicMetadataResolverAttributes_refreshDelayFactor", "id"], + ["css=.mb-0 > #root_dynamicMetadataResolverAttributes_refreshDelayFactor", "css:finder"], + ["xpath=//input[@id='root_dynamicMetadataResolverAttributes_refreshDelayFactor']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "0.5" @@ -184,13 +237,12 @@ "id": "1a8a9dcf-9c6b-4802-8483-981d14131346", "comment": "", "command": "click", - "target": "css=#\\/dynamicMetadataResolverAttributes\\/minCacheDuration-container .btn", + "target": "css=.row:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/dynamicMetadataResolverAttributes\\/minCacheDuration-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/dynamicMetadataResolverAttributes/minCacheDuration-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.row:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[8]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -204,14 +256,16 @@ "id": "443a9cfc-17c8-49da-9d87-bfabda8fd0b6", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/minCacheDuration__option--0", + "target": "id=option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration-item-0", "targets": [ - ["id=/dynamicMetadataResolverAttributes/minCacheDuration__option--0", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/minCacheDuration__option--0", "css:finder"], - ["xpath=//li[@id='/dynamicMetadataResolverAttributes/minCacheDuration__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/dynamicMetadataResolverAttributes/minCacheDuration__listbox']/li", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li", "xpath:position"], - ["xpath=//li[contains(.,'PT0S')]", "xpath:innerText"] + ["id=option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration-item-0", "id"], + ["linkText=PT0S", "linkText"], + ["css=#option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'PT0S')]", "xpath:innerText"] ], "value": "" }, { @@ -225,12 +279,12 @@ "id": "84f35d35-ea9c-4a06-aaec-bee1c1922aec", "comment": "", "command": "click", - "target": "css=#\\/dynamicMetadataResolverAttributes\\/maxCacheDuration-container .btn", + "target": "css=.row:nth-child(3) > .col-12 > .form-group .toggle-button", "targets": [ - ["css=#\\/dynamicMetadataResolverAttributes\\/maxCacheDuration-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/dynamicMetadataResolverAttributes/maxCacheDuration-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(3) > .col-12 > .form-group .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[3]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -244,13 +298,16 @@ "id": "c03be15d-ee34-4cd1-bac9-c52e3baa70a3", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/maxCacheDuration__option--2", + "target": "id=option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration-item-2", "targets": [ - ["id=/dynamicMetadataResolverAttributes/maxCacheDuration__option--2", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/maxCacheDuration__option--2", "css:finder"], - ["xpath=//li[@id='/dynamicMetadataResolverAttributes/maxCacheDuration__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/dynamicMetadataResolverAttributes/maxCacheDuration__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration-item-2", "id"], + ["linkText=PT1M", "linkText"], + ["css=#option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'PT1M')]", "xpath:innerText"] ], "value": "" }, { @@ -264,12 +321,12 @@ "id": "f0cdfbcf-46e2-4013-b085-0730b0127842", "comment": "", "command": "click", - "target": "css=#\\/dynamicMetadataResolverAttributes\\/maxIdleEntityData-container .btn", + "target": "css=.row:nth-child(4) .toggle-button", "targets": [ - ["css=#\\/dynamicMetadataResolverAttributes\\/maxIdleEntityData-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], - ["xpath=//div[@id='/dynamicMetadataResolverAttributes/maxIdleEntityData-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(4) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[12]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[4]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -283,25 +340,29 @@ "id": "dd663319-7eef-4301-a0d4-24d9583eab7f", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/maxIdleEntityData__option--1", + "target": "id=option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData-item-1", "targets": [ - ["id=/dynamicMetadataResolverAttributes/maxIdleEntityData__option--1", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/maxIdleEntityData__option--1", "css:finder"], - ["xpath=//li[@id='/dynamicMetadataResolverAttributes/maxIdleEntityData__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/dynamicMetadataResolverAttributes/maxIdleEntityData__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[2]", "xpath:position"] + ["id=option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { "id": "25ed1d75-be93-4e20-88ba-57d8ae7bf053", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/removeIdleEntityData.false", + "target": "id=root_dynamicMetadataResolverAttributes_removeIdleEntityData-No", "targets": [ - ["id=/dynamicMetadataResolverAttributes/removeIdleEntityData.false", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/removeIdleEntityData\\.false", "css:finder"], - ["xpath=//input[@id='/dynamicMetadataResolverAttributes/removeIdleEntityData.false']", "xpath:attributes"], - ["xpath=//div[2]/label/input", "xpath:position"] + ["id=root_dynamicMetadataResolverAttributes_removeIdleEntityData-No", "id"], + ["css=#root_dynamicMetadataResolverAttributes_removeIdleEntityData-No", "css:finder"], + ["xpath=//input[@id='root_dynamicMetadataResolverAttributes_removeIdleEntityData-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[5]/div/div/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] ], "value": "" }, { @@ -315,12 +376,12 @@ "id": "54df6d88-1a85-407f-935a-a016f5952a93", "comment": "", "command": "click", - "target": "css=#\\/dynamicMetadataResolverAttributes\\/cleanupTaskInterval-container .btn", + "target": "css=.row:nth-child(6) .toggle-button", "targets": [ - ["css=#\\/dynamicMetadataResolverAttributes\\/cleanupTaskInterval-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], - ["xpath=//div[@id='/dynamicMetadataResolverAttributes/cleanupTaskInterval-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(6) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[15]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[6]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -334,13 +395,16 @@ "id": "e7f2439a-e9a1-4b23-b0b9-d992f5b477d4", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/cleanupTaskInterval__option--3", + "target": "id=option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval-item-3", "targets": [ - ["id=/dynamicMetadataResolverAttributes/cleanupTaskInterval__option--3", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/cleanupTaskInterval__option--3", "css:finder"], - ["xpath=//li[@id='/dynamicMetadataResolverAttributes/cleanupTaskInterval__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/dynamicMetadataResolverAttributes/cleanupTaskInterval__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval-item-3", "id"], + ["linkText=PT10M", "linkText"], + ["css=#option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'PT10M')]", "xpath:innerText"] ], "value": "" }, { @@ -353,18 +417,6 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "d02ae356-8086-4794-97ba-980fc75cca79", - "comment": "", - "command": "click", - "target": "css=.custom-control-label", - "targets": [ - ["css=.custom-control-label", "css:finder"], - ["xpath=//div[@id='/enabled.parent']/label", "xpath:idRelative"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Metadata Provider?')]", "xpath:innerText"] - ], - "value": "" }, { "id": "dc60328b-d6e0-4f62-96c5-012f0fb5edc4", "comment": "", @@ -379,14 +431,19 @@ "id": "02e53e75-003b-42ce-8522-817d52ad16a3", "comment": "", "command": "waitForElementVisible", - "target": "css=.d-block > primitive-property:nth-child(2) .text-truncate", - "targets": [], + "target": "css=.align-middle:nth-child(3)", + "targets": [ + ["css=.align-middle:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[3]", "xpath:idRelative"], + ["xpath=//td[3]", "xpath:position"], + ["xpath=//td[contains(.,'LocalDynamicMetadataResolver')]", "xpath:innerText"] + ], "value": "10000" }, { "id": "7d059a57-60f7-4729-95af-b36619b98694", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(2) .text-truncate", + "target": "css=.align-middle:nth-child(3)", "targets": [ ["css=.d-block > primitive-property:nth-child(2) .text-truncate", "css:finder"], ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property[2]/div/div/span[2]", "xpath:idRelative"], @@ -398,541 +455,36 @@ "id": "feb08e76-e553-4505-bffe-07f3e77206d0", "comment": "", "command": "click", - "target": "css=.btn:nth-child(2)", - "targets": [ - ["css=.btn:nth-child(2) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/button/translate-i18n", "xpath:idRelative"], - ["xpath=//div/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Filters')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "2afa209b-d09b-468e-8cc3-d549abb3be4a", - "comment": "", - "command": "click", - "target": "css=#filters .actions span", - "targets": [ - ["css=#filters .actions span", "css:finder"], - ["xpath=//div[@id='filters']/div/div/a/span", "xpath:idRelative"], - ["xpath=//div/a/span", "xpath:position"], - ["xpath=//span[contains(.,'Add Filter')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "c4e0394c-ba68-4e75-8d20-174a91fad2f5", - "comment": "", - "command": "select", - "target": "name=type", - "targets": [], - "value": "label=EntityAttributes" - }, { - "id": "5f1229fb-9185-40cf-bd65-76435d93d7df", - "comment": "", - "command": "click", - "target": "css=option:nth-child(2)", - "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='EntityAttributes']", "xpath:attributes"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'EntityAttributes')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "03f838cb-2aea-40fa-b549-8263aa2046cf", - "comment": "", - "command": "click", - "target": "id=/name", - "targets": [ - ["id=/name", "id"], - ["name=field20", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], - ["xpath=//input", "xpath:position"] - ], - "value": "" - }, { - "id": "ad127dfe-2cae-4693-b65f-e35c0655e9eb", - "comment": "", - "command": "type", - "target": "id=/name", - "targets": [ - ["id=/name", "id"], - ["name=field20", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], - ["xpath=//input", "xpath:position"] - ], - "value": "Entity Attributes Filter" - }, { - "id": "0065c161-84c6-4cd0-8b69-b257ec572915", - "comment": "", - "command": "click", - "target": "id=/entityAttributesFilterTarget.target", - "targets": [ - ["id=/entityAttributesFilterTarget.target", "id"], - ["css=#\\/entityAttributesFilterTarget\\.target", "css:finder"], - ["xpath=//input[@id='/entityAttributesFilterTarget.target']", "xpath:attributes"], - ["xpath=//div[@id='-container']/div/input", "xpath:idRelative"], - ["xpath=//div/div/input", "xpath:position"] - ], - "value": "" - }, { - "id": "15d90ee0-b1cc-4fae-abec-ae80d93db1c1", - "comment": "", - "command": "type", - "target": "id=/entityAttributesFilterTarget.target", - "targets": [ - ["id=/entityAttributesFilterTarget.target", "id"], - ["css=#\\/entityAttributesFilterTarget\\.target", "css:finder"], - ["xpath=//input[@id='/entityAttributesFilterTarget.target']", "xpath:attributes"], - ["xpath=//div[@id='-container']/div/input", "xpath:idRelative"], - ["xpath=//div/div/input", "xpath:position"] - ], - "value": "unicon" - }, { - "id": "1d754809-177b-47f9-98e6-5e757713d834", - "comment": "", - "command": "click", - "target": "css=.btn-success:nth-child(1)", - "targets": [ - ["css=.btn-success:nth-child(1)", "css:finder"], - ["xpath=//div[2]/button", "xpath:position"], - ["xpath=//button[contains(.,'Add Entity ID')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "72c2bc1d-f96f-497b-bbd8-b2e254fae6b6", - "comment": "", - "command": "click", - "target": "css=#\\/filterEnabled\\.parent > .custom-control-label", - "targets": [ - ["css=#\\/filterEnabled\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/filterEnabled.parent']/label", "xpath:idRelative"], - ["xpath=//checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Filter?')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "1e74f318-f78c-4e64-8ac7-fc999df0dd19", - "comment": "", - "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/turnOffEncryption\\.parent > .custom-control-label", - "targets": [ - ["css=#\\/relyingPartyOverrides\\/turnOffEncryption\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/turnOffEncryption.parent']/label", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Turn off Encryption of Response?')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "d05f7295-35b2-42ba-98d0-1c9673846190", - "comment": "", - "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/useSha\\.parent > .custom-control-label", - "targets": [ - ["css=#\\/relyingPartyOverrides\\/useSha\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/useSha.parent']/label", "xpath:idRelative"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Use SHA1 Signing Algorithm?')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "82bbe8c4-e66c-470d-bdf6-9cd3337b4a3e", - "comment": "", - "command": "click", - "target": "id=/relyingPartyOverrides/responderId", - "targets": [ - ["id=/relyingPartyOverrides/responderId", "id"], - ["name=field33", "name"], - ["css=#\\/relyingPartyOverrides\\/responderId", "css:finder"], - ["xpath=//input[@id='/relyingPartyOverrides/responderId']", "xpath:attributes"], - ["xpath=//div[7]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] - ], - "value": "" - }, { - "id": "2e4c1077-cd2f-4298-969f-e945e2d68636", - "comment": "", - "command": "type", - "target": "id=/relyingPartyOverrides/responderId", - "targets": [ - ["id=/relyingPartyOverrides/responderId", "id"], - ["name=field33", "name"], - ["css=#\\/relyingPartyOverrides\\/responderId", "css:finder"], - ["xpath=//input[@id='/relyingPartyOverrides/responderId']", "xpath:attributes"], - ["xpath=//div[7]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] - ], - "value": "responder" - }, { - "id": "14785e6f-8ab8-47e0-b16e-8e736638d8c8", - "comment": "", - "command": "click", - "target": "css=div:nth-child(9) .d-flex > .btn", - "targets": [ - ["css=div:nth-child(9) .d-flex > .btn", "css:finder"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button", "xpath:position"] - ], - "value": "" - }, { - "id": "1e7c0ceb-f555-497d-a465-92df7d67b40a", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "3e162911-9775-4d01-8802-63f5638c7cba", - "comment": "", - "command": "click", - "target": "css=.input-group-append > .btn", - "targets": [ - ["css=.input-group-append > .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/authenticationMethods/0-container']/div/div/button", "xpath:idRelative"], - ["xpath=//auto-complete/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "a9c5ad9d-05ab-4b47-9e0d-c4e81d28c87e", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "ab2594b3-45a8-43f7-885b-270239a46628", - "comment": "", - "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/0__option--0", - "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/0__option--0", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/0__option--0", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/authenticationMethods/0__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/authenticationMethods/0__listbox']/li", "xpath:idRelative"], - ["xpath=//datalist-component/div/auto-complete/div/ul/li", "xpath:position"] - ], - "value": "" - }, { - "id": "dd4e22ff-aa54-40c0-b5c2-6a5b79845062", - "comment": "", - "command": "click", - "target": "css=.fa-check", - "targets": [ - ["css=.fa-check", "css:finder"], - ["xpath=//button[@id='/attributeRelease.checkall']/i", "xpath:idRelative"], - ["xpath=//td[2]/button/i", "xpath:position"] - ], - "value": "" - }, { - "id": "1c4c90ac-b644-4033-8ebc-07a8cd1bdbdd", - "comment": "", - "command": "click", - "target": "css=.btn-primary", + "target": "linkText=Local Dynamic Metadata Provider", "targets": [ - ["css=.btn-primary", "css:finder"], - ["xpath=//button[@type='submit']", "xpath:attributes"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Save')]", "xpath:innerText"] + ["linkText=Local Dynamic Metadata Provider", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'Local Dynamic Metadata Provider')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/505681e0-c5c2-491e-91ce-c69a00d49127/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Local Dynamic Metadata Provider')]", "xpath:innerText"] ], "value": "" }, { - "id": "af17a3a7-f292-4c22-8f2f-3d3bf1938fc1", + "id": "6748f7a0-295a-40a3-a6a4-629ba0852fb5", "comment": "", "command": "waitForElementVisible", - "target": "css=span:nth-child(4)", - "targets": [], - "value": "10000" - }, { - "id": "2b9c0a43-fd7a-4ffa-bfef-a7fc41746e16", - "comment": "", - "command": "assertText", - "target": "css=span:nth-child(4)", - "targets": [ - ["css=span:nth-child(4)", "css:finder"], - ["xpath=//div[@id='filters']/filter-configuration-list/ul/li/filter-configuration-list-item/div/span[2]", "xpath:idRelative"], - ["xpath=//filter-configuration-list-item/div/span[2]", "xpath:position"], - ["xpath=//span[contains(.,'EntityAttributes')]", "xpath:innerText"] - ], - "value": "EntityAttributes" - }, { - "id": "a0e16e8d-91c9-416c-b1c1-a2898bfbd185", - "comment": "", - "command": "click", - "target": "linkText=Add Filter", - "targets": [ - ["linkText=Add Filter", "linkText"], - ["css=.btn-success", "css:finder"], - ["xpath=//a[contains(@href, '/metadata/provider/ceb1cfdd-26c1-4134-baab-1438190ae9bd/filter/new')]", "xpath:href"], - ["xpath=//div[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Add Filter')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "11fd3e95-ce05-4ad0-8238-c34b696003cd", - "comment": "", - "command": "click", - "target": "name=type", - "targets": [ - ["name=type", "name"], - ["css=.form-control", "css:finder"], - ["xpath=//select[@name='type']", "xpath:attributes"], - ["xpath=//select", "xpath:position"] - ], - "value": "" - }, { - "id": "0b68dd82-e9a5-447f-b062-9f7849529bcc", - "comment": "", - "command": "select", - "target": "name=type", - "targets": [], - "value": "label=NameIDFormat" - }, { - "id": "e85fde4c-cdbf-41c6-89e7-d4b281a16219", - "comment": "", - "command": "click", - "target": "css=option:nth-child(3)", - "targets": [ - ["css=option:nth-child(3)", "css:finder"], - ["xpath=//option[@value='NameIDFormat']", "xpath:attributes"], - ["xpath=//option[3]", "xpath:position"], - ["xpath=//option[contains(.,'NameIDFormat')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "a058bf22-7d07-4850-8004-8a85a2016d25", - "comment": "", - "command": "waitForElementVisible", - "target": "id=/name", - "targets": [], - "value": "10000" - }, { - "id": "8a94f318-76bb-49f1-90d5-b2dcbcb1ff80", - "comment": "", - "command": "click", - "target": "id=/name", - "targets": [ - ["id=/name", "id"], - ["name=field40", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], - ["xpath=//input", "xpath:position"] - ], - "value": "" - }, { - "id": "9bd2419e-c4f5-4dd2-9fb8-278d70be987b", - "comment": "", - "command": "type", - "target": "id=/name", - "targets": [ - ["id=/name", "id"], - ["name=field40", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], - ["xpath=//input", "xpath:position"] - ], - "value": "Name ID Format Filter" - }, { - "id": "03d1d74e-efa5-4d0e-a780-900449bb4ac5", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "9b9d7604-7025-4ccb-bb95-862f57f696f1", - "comment": "", - "command": "click", - "target": "id=/nameIdFormatFilterTarget.valuedd", - "targets": [ - ["id=/nameIdFormatFilterTarget.valuedd", "id"], - ["css=#\\/nameIdFormatFilterTarget\\.valuedd", "css:finder"], - ["xpath=//button[@id='/nameIdFormatFilterTarget.valuedd']", "xpath:attributes"], - ["xpath=//fieldset/div/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Entity ID')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "5cda2bf9-f169-4e37-8071-a6f8d1d1407d", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "9e84c57f-c33d-48f8-85ac-ed50751eb37b", - "comment": "", - "command": "click", - "target": "linkText=Regex", - "targets": [ - ["linkText=Regex", "linkText"], - ["css=.dropdown-item:nth-child(2)", "css:finder"], - ["xpath=//a[contains(text(),'Regex')]", "xpath:link"], - ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], - ["xpath=//div/div/a[2]", "xpath:position"], - ["xpath=//a[contains(.,'Regex')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "82336d07-df2f-416e-b5c3-59eaf64a82d4", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "f3bc22e2-0e3a-4d58-b992-31d687148c57", - "comment": "", - "command": "sendKeys", - "target": "id=/nameIdFormatFilterTarget.target", - "targets": [], - "value": "/foo.*/" - }, { - "id": "343b40b9-87df-46ab-b3ef-285e4e5ed784", - "comment": "", - "command": "click", - "target": "css=#\\/filterEnabled\\.parent > .custom-control-label", - "targets": [ - ["css=#\\/filterEnabled\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/filterEnabled.parent']/label", "xpath:idRelative"], - ["xpath=//checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Filter?')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "6ce98c83-68b8-45c0-834e-cc40af11fc29", - "comment": "", - "command": "click", - "target": "css=.btn-success", - "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//array-component/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "17f77efb-f64a-4a64-8c48-36830a087dbb", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "a7aa04e7-b909-42cf-85ed-adbff0adefce", - "comment": "", - "command": "click", - "target": "css=.input-group-append > .btn", - "targets": [ - ["css=.input-group-append > .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/formats/0-container']/div/div/button", "xpath:idRelative"], - ["xpath=//auto-complete/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "d1fa4a9b-80bd-4ad7-989e-1e5b56893bbc", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "8b7b79fd-2405-4ab6-8f91-4906f663cd1e", - "comment": "", - "command": "click", - "target": "id=/formats/0__option--1", - "targets": [ - ["id=/formats/0__option--1", "id"], - ["css=#\\/formats\\/0__option--1", "css:finder"], - ["xpath=//li[@id='/formats/0__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/formats/0__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"] - ], - "value": "" - }, { - "id": "6d4c2c20-0855-4cdf-8e4d-dbbd6afb328b", - "comment": "", - "command": "click", - "target": "css=.btn-primary", - "targets": [ - ["css=.btn-primary", "css:finder"], - ["xpath=//button[@type='submit']", "xpath:attributes"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Save')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "455e24c1-5093-4da3-a62d-457bbf0cd5db", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "9f7e95cf-4dd5-415f-8577-a6f1bc54a85d", - "comment": "", - "command": "click", - "target": "css=.list-group-item:nth-child(1) .btn:nth-child(2)", - "targets": [ - ["css=.list-group-item:nth-child(1) .btn:nth-child(2)", "css:finder"], - ["xpath=//div[@id='filters']/filter-configuration-list/ul/li/filter-configuration-list-item/div/div/button[2]", "xpath:idRelative"], - ["xpath=//button[2]", "xpath:position"] - ], - "value": "" - }, { - "id": "afb97ce0-665f-4469-9aad-d17349c491cd", - "comment": "", - "command": "pause", - "target": "2000", + "target": "css=div:nth-child(2) > div:nth-child(2) > .d-flex > .text-truncate", "targets": [], - "value": "" + "value": "30000" }, { - "id": "4a73b268-7d33-4e8c-8fa4-cb059be9768f", + "id": "661604ac-7990-4772-ae36-06d44e5f2f8f", "comment": "", "command": "assertText", - "target": "css=.list-group-item:nth-child(1) span:nth-child(4)", + "target": "css=div:nth-child(2) > div:nth-child(2) > .d-flex > .text-truncate", "targets": [ - ["css=.list-group-item:nth-child(1) span:nth-child(4)", "css:finder"], - ["xpath=//div[@id='filters']/filter-configuration-list/ul/li/filter-configuration-list-item/div/span[2]", "xpath:idRelative"], - ["xpath=//filter-configuration-list-item/div/span[2]", "xpath:position"], - ["xpath=//span[contains(.,'EntityAttributes')]", "xpath:innerText"] - ], - "value": "NameIDFormat" - }, { - "id": "63ac7307-0538-4c0d-8e98-2f05c767baaf", - "comment": "", - "command": "click", - "target": "css=.list-group-item:nth-child(1) .btn:nth-child(2)", - "targets": [ - ["css=tr:nth-child(1) .fa-arrow-circle-down", "css:finder"], - ["xpath=//button[2]/i", "xpath:position"] - ], - "value": "" - }, { - "id": "5037edea-9d8f-496d-aedc-70b8763d5de2", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "ed8e07ff-0dce-47d6-8310-f1920bfe1367", - "comment": "", - "command": "assertText", - "target": "css=.list-group-item:nth-child(1) span:nth-child(4)", - "targets": [ - ["css=tr:nth-child(1) > .td-lg:nth-child(4)", "css:finder"], - ["xpath=//td[4]", "xpath:position"], - ["xpath=//td[contains(.,'EntityAttributes')]", "xpath:innerText"] + ["css=div:nth-child(2) > div:nth-child(2) > .d-flex > .text-truncate", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[2]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'LocalDynamicMetadataResolver')]", "xpath:innerText"] ], - "value": "EntityAttributes" - }, { - "id": "3c9a53c4-b56a-4a4b-9fef-12951d198754", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" + "value": "LocalDynamicMetadataResolver" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1335-4.side b/backend/src/integration/resources/SHIBUI-1335-4.side index bb7a0d9be..cc66f27c4 100644 --- a/backend/src/integration/resources/SHIBUI-1335-4.side +++ b/backend/src/integration/resources/SHIBUI-1335-4.side @@ -41,72 +41,119 @@ "id": "185a1e41-d3a3-4627-aae2-7f05059e9c7d", "comment": "", "command": "click", - "target": "name=submit", + "target": "css=.btn", "targets": [ - ["name=submit", "name"], - ["css=td:nth-child(1) > input", "css:finder"], - ["xpath=//input[@name='submit']", "xpath:attributes"], - ["xpath=//tr[3]/td/input", "xpath:position"] + ["css=.btn", "css:finder"], + ["xpath=//button[@type='submit']", "xpath:attributes"], + ["xpath=//button", "xpath:position"], + ["xpath=//button[contains(.,'Sign in')]", "xpath:innerText"] ], "value": "" + }, { + "id": "7a51362b-4455-4790-b9ef-d8f90c7f1417", + "comment": "", + "command": "waitForElementVisible", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "650dbd56-1f7b-4ec9-9400-b32691018e65", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "f6905e37-b515-4578-b931-eae4842bf772", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "e3927a3c-d0b9-47ae-bb81-1d1a80204f4f", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "94e01321-ac2d-427f-89a5-7f816cea0f00", "comment": "", "command": "click", - "target": "css=#addNewDropdown > translate-i18n", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=#addNewDropdown > translate-i18n", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/translate-i18n", "xpath:idRelative"], - ["xpath=//translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Add New')]", "xpath:innerText"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "c65500ae-3b08-4c22-8c88-b4116d6e0c9b", "comment": "", "command": "click", - "target": "linkText=Metadata Provider", + "target": "id=metadata-nav-dropdown-provider", "targets": [ - ["linkText=Metadata Provider", "linkText"], - ["css=.nav-link:nth-child(2)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a[2]", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[3]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"] + ["id=metadata-nav-dropdown-provider", "id"], + ["linkText=Add a new metadata provider", "linkText"], + ["css=#metadata-nav-dropdown-provider", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata provider')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-provider']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/new')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata provider')]", "xpath:innerText"] ], "value": "" }, { "id": "c5ec3177-5a66-4901-a644-8c6cfbb99254", "comment": "", "command": "waitForElementVisible", - "target": "id=/name", - "targets": [], + "target": "name=name", + "targets": [ + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "d093ad38-ab2d-4441-a60b-2c094d6938f9", "comment": "", "command": "type", - "target": "id=/name", + "target": "name=name", "targets": [ - ["id=/name", "id"], - ["name=field4", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "Dynamic Http Metadata Provider" + }, { + "id": "833f72b8-851b-469c-bd2d-71f1cfbef83e", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" }, { "id": "aac150b1-6140-476b-8bdb-ebb83a14812d", "comment": "", "command": "select", - "target": "id=/type", + "target": "name=type", "targets": [ - ["id=/type", "id"], - ["name=field2", "name"], - ["css=#\\/type", "css:finder"], - ["xpath=//select[@id='/type']", "xpath:attributes"], + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div[2]/select", "xpath:idRelative"], ["xpath=//select", "xpath:position"] ], - "value": "label=DynamicHttpMetadataProvider" + "value": "label=DynamicHttpMetadataResolver" }, { "id": "7a60cb3c-ed3c-495c-8329-2fe52e72cceb", "comment": "", @@ -121,14 +168,20 @@ "id": "8cbc5dce-126e-4fb6-afcd-9651d9be6ba2", "comment": "", "command": "waitForElementVisible", - "target": "id=/xmlId", - "targets": [], + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "c140099c-f6e3-4600-92b3-5b97e07a95ee", "comment": "", "command": "type", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ ["id=/xmlId", "id"], ["name=field7", "name"], @@ -141,40 +194,33 @@ "id": "d8716eae-bb36-42ae-b505-2626c5a8c377", "comment": "", "command": "select", - "target": "id=/metadataRequestURLConstructionScheme/type", - "targets": [], - "value": "label=MetadataQueryProtocol" - }, { - "id": "326f3387-12c8-4294-843c-182fd8d06c46", - "comment": "", - "command": "click", - "target": "css=option:nth-child(2)", + "target": "id=root_metadataRequestURLConstructionScheme_@type", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: MetadataQueryProtocol']", "xpath:attributes"], - ["xpath=//select[@id='/metadataRequestURLConstructionScheme/type']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'MetadataQueryProtocol')]", "xpath:innerText"] + ["id=root_metadataRequestURLConstructionScheme_@type", "id"], + ["css=#root_metadataRequestURLConstructionScheme_\\@type", "css:finder"], + ["xpath=//select[@id='root_metadataRequestURLConstructionScheme_@type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], - "value": "" + "value": "label=MetadataQueryProtocol" }, { "id": "516d7e81-3672-4dd7-811b-70ee38c21e52", "comment": "", "command": "click", - "target": "id=/metadataRequestURLConstructionScheme/content", + "target": "id=root_metadataRequestURLConstructionScheme_content", "targets": [ - ["id=/metadataRequestURLConstructionScheme/content", "id"], - ["name=field10", "name"], - ["css=#\\/metadataRequestURLConstructionScheme\\/content", "css:finder"], - ["xpath=//input[@id='/metadataRequestURLConstructionScheme/content']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_metadataRequestURLConstructionScheme_content", "id"], + ["css=#root_metadataRequestURLConstructionScheme_content", "css:finder"], + ["xpath=//input[@id='root_metadataRequestURLConstructionScheme_content']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/div[2]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "7b60ce4c-a16c-4bc5-9d9c-999f9fc6b197", "comment": "", "command": "type", - "target": "id=/metadataRequestURLConstructionScheme/content", + "target": "id=root_metadataRequestURLConstructionScheme_content", "targets": [ ["id=/metadataRequestURLConstructionScheme/content", "id"], ["name=field10", "name"], @@ -187,24 +233,26 @@ "id": "cd0d4f15-2193-4814-8e72-f38d9d2221e2", "comment": "", "command": "click", - "target": "id=/requireValidMetadata.false", + "target": "id=root_requireValidMetadata-No", "targets": [ - ["id=/requireValidMetadata.false", "id"], - ["css=#\\/requireValidMetadata\\.false", "css:finder"], - ["xpath=//input[@id='/requireValidMetadata.false']", "xpath:attributes"], - ["xpath=//div[2]/label/input", "xpath:position"] + ["id=root_requireValidMetadata-No", "id"], + ["css=#root_requireValidMetadata-No", "css:finder"], + ["xpath=//input[@id='root_requireValidMetadata-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[3]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] ], "value": "" }, { "id": "3b83fa2b-147f-4b7b-9b30-44c28b07576e", "comment": "", "command": "click", - "target": "id=/failFastInitialization.false", + "target": "id=root_failFastInitialization-No", "targets": [ - ["id=/failFastInitialization.false", "id"], - ["css=#\\/failFastInitialization\\.false", "css:finder"], - ["xpath=//input[@id='/failFastInitialization.false']", "xpath:attributes"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_failFastInitialization-No", "id"], + ["css=#root_failFastInitialization-No", "css:finder"], + ["xpath=//input[@id='root_failFastInitialization-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[4]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { @@ -221,12 +269,12 @@ "id": "30565900-4c02-4cb0-9d5a-c980349307ea", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_dynamicMetadataResolverAttributes_refreshDelayFactor", "targets": [ - ["id=/dynamicMetadataResolverAttributes/refreshDelayFactor", "id"], - ["name=field15", "name"], - ["css=#\\/dynamicMetadataResolverAttributes\\/refreshDelayFactor", "css:finder"], - ["xpath=//input[@id='/dynamicMetadataResolverAttributes/refreshDelayFactor']", "xpath:attributes"], + ["id=root_dynamicMetadataResolverAttributes_refreshDelayFactor", "id"], + ["css=#root_dynamicMetadataResolverAttributes_refreshDelayFactor", "css:finder"], + ["xpath=//input[@id='root_dynamicMetadataResolverAttributes_refreshDelayFactor']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -234,7 +282,7 @@ "id": "5b6ea5bf-d5c1-4d5e-bc15-ffabf67f74ec", "comment": "", "command": "type", - "target": "id=/dynamicMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_dynamicMetadataResolverAttributes_refreshDelayFactor", "targets": [ ["id=/dynamicMetadataResolverAttributes/refreshDelayFactor", "id"], ["name=field15", "name"], @@ -254,13 +302,12 @@ "id": "a51172e3-792f-4881-8083-efcb34c63e56", "comment": "", "command": "click", - "target": "css=#\\/dynamicMetadataResolverAttributes\\/minCacheDuration-container .btn", + "target": "css=.row:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/dynamicMetadataResolverAttributes\\/minCacheDuration-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/dynamicMetadataResolverAttributes/minCacheDuration-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.row:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[8]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -274,14 +321,16 @@ "id": "b1ec3405-0d75-45d6-8986-51c2f09c4dc4", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/minCacheDuration__option--1", + "target": "id=option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration-item-1", "targets": [ - ["id=/dynamicMetadataResolverAttributes/minCacheDuration__option--1", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/minCacheDuration__option--1", "css:finder"], - ["xpath=//li[@id='/dynamicMetadataResolverAttributes/minCacheDuration__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/dynamicMetadataResolverAttributes/minCacheDuration__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'PT30S')]", "xpath:innerText"] + ["id=option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { @@ -295,12 +344,12 @@ "id": "2793bf1b-177b-461f-b06c-0a584ab6eaf0", "comment": "", "command": "click", - "target": "css=#\\/dynamicMetadataResolverAttributes\\/maxCacheDuration-container .btn", + "target": "css=.row:nth-child(3) > .col-12 > .form-group .toggle-button", "targets": [ - ["css=#\\/dynamicMetadataResolverAttributes\\/maxCacheDuration-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/dynamicMetadataResolverAttributes/maxCacheDuration-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(3) > .col-12 > .form-group .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[3]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -314,13 +363,16 @@ "id": "87084a6a-8e89-4c00-a3d9-c104107a3ba2", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/maxCacheDuration__option--3", + "target": "id=option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration-item-3", "targets": [ - ["id=/dynamicMetadataResolverAttributes/maxCacheDuration__option--3", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/maxCacheDuration__option--3", "css:finder"], - ["xpath=//li[@id='/dynamicMetadataResolverAttributes/maxCacheDuration__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/dynamicMetadataResolverAttributes/maxCacheDuration__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration-item-3", "id"], + ["linkText=PT10M", "linkText"], + ["css=#option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'PT10M')]", "xpath:innerText"] ], "value": "" }, { @@ -334,12 +386,12 @@ "id": "4c017bde-e242-4d2f-838e-a2a026e4292b", "comment": "", "command": "click", - "target": "css=#\\/dynamicMetadataResolverAttributes\\/maxIdleEntityData-container .btn", + "target": "css=.row:nth-child(4) .toggle-button", "targets": [ - ["css=#\\/dynamicMetadataResolverAttributes\\/maxIdleEntityData-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], - ["xpath=//div[@id='/dynamicMetadataResolverAttributes/maxIdleEntityData-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(4) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[12]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[4]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -353,13 +405,16 @@ "id": "d477fd6a-2c15-4fb6-a199-d49aa495ef94", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/maxIdleEntityData__option--2", + "target": "id=option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData-item-2", "targets": [ - ["id=/dynamicMetadataResolverAttributes/maxIdleEntityData__option--2", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/maxIdleEntityData__option--2", "css:finder"], - ["xpath=//li[@id='/dynamicMetadataResolverAttributes/maxIdleEntityData__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/dynamicMetadataResolverAttributes/maxIdleEntityData__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData-item-2", "id"], + ["linkText=PT1M", "linkText"], + ["css=#option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'PT1M')]", "xpath:innerText"] ], "value": "" }, { @@ -373,12 +428,12 @@ "id": "62f7ce3c-5cff-43c6-8ce6-a0e6bf2b2257", "comment": "", "command": "click", - "target": "css=#\\/dynamicMetadataResolverAttributes\\/cleanupTaskInterval-container .btn", + "target": "css=.row:nth-child(6) .toggle-button", "targets": [ - ["css=#\\/dynamicMetadataResolverAttributes\\/cleanupTaskInterval-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], - ["xpath=//div[@id='/dynamicMetadataResolverAttributes/cleanupTaskInterval-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(6) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[15]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[6]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -392,61 +447,80 @@ "id": "bf855df4-326e-484e-9022-d2c84e09e6f3", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/cleanupTaskInterval__option--3", + "target": "id=option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval-item-3", "targets": [ - ["id=/dynamicMetadataResolverAttributes/cleanupTaskInterval__option--3", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/cleanupTaskInterval__option--3", "css:finder"], - ["xpath=//li[@id='/dynamicMetadataResolverAttributes/cleanupTaskInterval__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/dynamicMetadataResolverAttributes/cleanupTaskInterval__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval-item-3", "id"], + ["linkText=PT10M", "linkText"], + ["css=#option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'PT10M')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "44e50478-4b65-420f-8f29-7ecb6c70c856", + "comment": "", + "command": "click", + "target": "id=root_dynamicMetadataResolverAttributes_removeIdleEntityData-No", + "targets": [ + ["id=root_dynamicMetadataResolverAttributes_removeIdleEntityData-No", "id"], + ["css=#root_dynamicMetadataResolverAttributes_removeIdleEntityData-No", "css:finder"], + ["xpath=//input[@id='root_dynamicMetadataResolverAttributes_removeIdleEntityData-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[5]/div/div/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] ], "value": "" }, { "id": "df2a3e70-d7d3-487b-a205-218e9987b060", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/persistentCacheManagerDirectory", + "target": "id=root_dynamicMetadataResolverAttributes_persistentCacheManagerDirectory", "targets": [ - ["id=/dynamicMetadataResolverAttributes/persistentCacheManagerDirectory", "id"], - ["name=field21", "name"], - ["css=#\\/dynamicMetadataResolverAttributes\\/persistentCacheManagerDirectory", "css:finder"], - ["xpath=//input[@id='/dynamicMetadataResolverAttributes/persistentCacheManagerDirectory']", "xpath:attributes"], - ["xpath=//div[7]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_dynamicMetadataResolverAttributes_persistentCacheManagerDirectory", "id"], + ["css=#root_dynamicMetadataResolverAttributes_persistentCacheManagerDirectory", "css:finder"], + ["xpath=//input[@id='root_dynamicMetadataResolverAttributes_persistentCacheManagerDirectory']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[7]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "b25d9d91-b8f2-46ad-ac79-cbac34fa3f91", "comment": "", "command": "type", - "target": "id=/dynamicMetadataResolverAttributes/persistentCacheManagerDirectory", + "target": "id=root_dynamicMetadataResolverAttributes_persistentCacheManagerDirectory", "targets": [ - ["id=/dynamicMetadataResolverAttributes/persistentCacheManagerDirectory", "id"], - ["name=field21", "name"], - ["css=#\\/dynamicMetadataResolverAttributes\\/persistentCacheManagerDirectory", "css:finder"], - ["xpath=//input[@id='/dynamicMetadataResolverAttributes/persistentCacheManagerDirectory']", "xpath:attributes"], - ["xpath=//div[7]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_dynamicMetadataResolverAttributes_persistentCacheManagerDirectory", "id"], + ["css=#root_dynamicMetadataResolverAttributes_persistentCacheManagerDirectory", "css:finder"], + ["xpath=//input[@id='root_dynamicMetadataResolverAttributes_persistentCacheManagerDirectory']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[7]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div/div/input", "xpath:position"] ], "value": "%{idp.home}/cache" }, { "id": "5b546b6b-ee98-4852-8ffd-b95f7e68d954", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/initializeFromPersistentCacheInBackground.false", + "target": "id=root_dynamicMetadataResolverAttributes_initializeFromPersistentCacheInBackground-No", "targets": [ - ["id=/dynamicMetadataResolverAttributes/initializeFromPersistentCacheInBackground.false", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/initializeFromPersistentCacheInBackground\\.false", "css:finder"], - ["xpath=//input[@id='/dynamicMetadataResolverAttributes/initializeFromPersistentCacheInBackground.false']", "xpath:attributes"], - ["xpath=//div[8]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_dynamicMetadataResolverAttributes_initializeFromPersistentCacheInBackground-No", "id"], + ["css=#root_dynamicMetadataResolverAttributes_initializeFromPersistentCacheInBackground-No", "css:finder"], + ["xpath=//input[@id='root_dynamicMetadataResolverAttributes_initializeFromPersistentCacheInBackground-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[8]/div/div/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[8]/div/div/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "5743cab2-018a-4706-b052-0d26c8e1e963", "comment": "", "command": "click", - "target": "css=.label:nth-child(1)", + "target": "css=.next", "targets": [ - ["css=.label:nth-child(1)", "css:finder"], - ["xpath=//li[3]/button/span", "xpath:position"] + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button", "xpath:idRelative"], + ["xpath=//li[3]/button", "xpath:position"] ], "value": "" }, { @@ -460,13 +534,12 @@ "id": "b777b343-71a0-4056-a85e-d8d548b993b2", "comment": "", "command": "click", - "target": "css=.btn-outline-secondary", + "target": "css=.toggle-button", "targets": [ - ["css=.btn-outline-secondary", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div/div/div/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -480,95 +553,107 @@ "id": "22f7bf37-718c-4126-867b-67a383eefff5", "comment": "", "command": "click", - "target": "id=/metadataFilters/RequiredValidUntil/maxValidityInterval__option--2", + "target": "id=option-selector-root_metadataFilters_0_maxValidityInterval-item-2", "targets": [ - ["id=/metadataFilters/RequiredValidUntil/maxValidityInterval__option--2", "id"], - ["css=#\\/metadataFilters\\/RequiredValidUntil\\/maxValidityInterval__option--2", "css:finder"], - ["xpath=//li[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[3]", "xpath:position"], - ["xpath=//li[contains(.,'PT1M')]", "xpath:innerText"] + ["id=option-selector-root_metadataFilters_0_maxValidityInterval-item-2", "id"], + ["linkText=PT1M", "linkText"], + ["css=#option-selector-root_metadataFilters_0_maxValidityInterval-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_metadataFilters_0_maxValidityInterval-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_metadataFilters_0_maxValidityInterval']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'PT1M')]", "xpath:innerText"] ], "value": "" }, { "id": "5320f384-0881-4e7a-b89f-33a57efb22ba", "comment": "", "command": "click", - "target": "id=/metadataFilters/SignatureValidation/requireSignedRoot", + "target": "id=root_metadataFilters_1_requireSignedRoot", "targets": [ - ["css=#\\/metadataFilters\\/SignatureValidation\\/requireSignedRoot\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/metadataFilters/SignatureValidation/requireSignedRoot.parent']/label", "xpath:idRelative"], - ["xpath=//div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Require Signed Root')]", "xpath:innerText"] + ["id=root_metadataFilters_1_requireSignedRoot", "id"], + ["css=#root_metadataFilters_1_requireSignedRoot", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_1_requireSignedRoot']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "f60a2a6e-2739-4da6-8e94-a5f0e7cf70de", "comment": "", "command": "click", - "target": "id=/metadataFilters/SignatureValidation/certificateFile", + "target": "id=root_metadataFilters_1_certificateFile", "targets": [ - ["id=/metadataFilters/SignatureValidation/certificateFile", "id"], - ["name=field30", "name"], - ["css=#\\/metadataFilters\\/SignatureValidation\\/certificateFile", "css:finder"], - ["xpath=//input[@id='/metadataFilters/SignatureValidation/certificateFile']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_metadataFilters_1_certificateFile", "id"], + ["css=#root_metadataFilters_1_certificateFile", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_1_certificateFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "d1402eee-5e5c-4634-ac31-6843ed775bb8", "comment": "", "command": "type", - "target": "id=/metadataFilters/SignatureValidation/certificateFile", + "target": "id=root_metadataFilters_1_certificateFile", "targets": [ - ["id=/metadataFilters/SignatureValidation/certificateFile", "id"], - ["name=field30", "name"], - ["css=#\\/metadataFilters\\/SignatureValidation\\/certificateFile", "css:finder"], - ["xpath=//input[@id='/metadataFilters/SignatureValidation/certificateFile']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_metadataFilters_1_certificateFile", "id"], + ["css=#root_metadataFilters_1_certificateFile", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_1_certificateFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "%{idp.home}/cert.key" }, { "id": "581415bb-bd83-4bc8-9417-da0a9781c7bd", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//array-component/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "6e976ed9-98a5-4e5d-8151-13a6c8498155", "comment": "", "command": "select", - "target": "id=/metadataFilters/EntityRoleWhiteList/retainedRoles/0", - "targets": [], + "target": "id=root_metadataFilters_2_retainedRoles_0", + "targets": [ + ["id=root_metadataFilters_2_retainedRoles_0", "id"], + ["css=#root_metadataFilters_2_retainedRoles_0", "css:finder"], + ["xpath=//select[@id='root_metadataFilters_2_retainedRoles_0']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] + ], "value": "label=SPSSODescriptor" }, { - "id": "4c21b4c9-6f8e-4520-b55c-9b945b97de01", + "id": "b027e53b-bdf7-40e5-a296-6f25eae50732", "comment": "", "command": "click", - "target": "css=option:nth-child(2)", + "target": "id=root_metadataFilters_2_removeRolelessEntityDescriptors", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: SPSSODescriptor']", "xpath:attributes"], - ["xpath=//select[@id='/metadataFilters/EntityRoleWhiteList/retainedRoles/0']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'SPSSODescriptor')]", "xpath:innerText"] + ["id=root_metadataFilters_2_removeRolelessEntityDescriptors", "id"], + ["css=#root_metadataFilters_2_removeRolelessEntityDescriptors", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_2_removeRolelessEntityDescriptors']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[3]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { - "id": "b027e53b-bdf7-40e5-a296-6f25eae50732", + "id": "d2495b38-f389-4ce0-a9e3-578266d2dfd1", "comment": "", "command": "click", - "target": "id=/metadataFilters/EntityRoleWhiteList/removeRolelessEntityDescriptors", + "target": "id=root_metadataFilters_2_removeEmptyEntitiesDescriptors", "targets": [ - ["css=#\\/metadataFilters\\/EntityRoleWhiteList\\/removeRolelessEntityDescriptors\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/metadataFilters/EntityRoleWhiteList/removeRolelessEntityDescriptors.parent']/label", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Remove Roleless Entity Descriptors?')]", "xpath:innerText"] + ["id=root_metadataFilters_2_removeEmptyEntitiesDescriptors", "id"], + ["css=#root_metadataFilters_2_removeEmptyEntitiesDescriptors", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_2_removeEmptyEntitiesDescriptors']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[4]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { @@ -581,18 +666,6 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "c4d98111-537a-45a1-9bfd-e8d780a0c0b3", - "comment": "", - "command": "click", - "target": "css=.custom-control-label", - "targets": [ - ["css=.custom-control-label", "css:finder"], - ["xpath=//div[@id='/enabled.parent']/label", "xpath:idRelative"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Metadata Provider?')]", "xpath:innerText"] - ], - "value": "" }, { "id": "a57a12dd-b641-46eb-afce-4c7be5a8f180", "comment": "", @@ -614,36 +687,41 @@ "id": "8c52471a-70f5-43aa-b670-6f8d22e18668", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(2) .text-truncate", + "target": "css=.align-middle:nth-child(3)", "targets": [ - ["css=.d-block > primitive-property:nth-child(2) .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property[2]/div/div/span[2]", "xpath:idRelative"], - ["xpath=//primitive-property[2]/div/div/span[2]", "xpath:position"], - ["xpath=//span[contains(.,'DynamicHttpMetadataResolver')]", "xpath:innerText"] + ["css=.align-middle:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[3]", "xpath:idRelative"], + ["xpath=//td[3]", "xpath:position"], + ["xpath=//td[contains(.,'DynamicHttpMetadataResolver')]", "xpath:innerText"] ], "value": "DynamicHttpMetadataResolver" }, { "id": "31a8587f-8ac0-4512-98ec-6cd230dfb0b6", "comment": "", "command": "click", - "target": "css=.btn:nth-child(2) > translate-i18n", + "target": "linkText=Dynamic Http Metadata Provider", "targets": [ - ["css=.btn:nth-child(2) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/button/translate-i18n", "xpath:idRelative"], - ["xpath=//div/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Filters')]", "xpath:innerText"] + ["linkText=Dynamic Http Metadata Provider", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'Dynamic Http Metadata Provider')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/91b14905-9e03-4b95-bf19-d4972ded399b/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Dynamic Http Metadata Provider')]", "xpath:innerText"] ], "value": "" }, { "id": "fb7aea4e-7991-482c-b673-de998c20129c", "comment": "", "command": "click", - "target": "css=#filters .actions span", + "target": "linkText=Add Filter", "targets": [ - ["css=#filters .actions span", "css:finder"], - ["xpath=//div[@id='filters']/div/div/a/span", "xpath:idRelative"], - ["xpath=//div/a/span", "xpath:position"], - ["xpath=//span[contains(.,'Add Filter')]", "xpath:innerText"] + ["linkText=Add Filter", "linkText"], + ["css=#filters .btn", "css:finder"], + ["xpath=//div[@id='filters']/div/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/91b14905-9e03-4b95-bf19-d4972ded399b/filter/new')]", "xpath:href"], + ["xpath=//div[3]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Add Filter')]", "xpath:innerText"] ], "value": "" }, { @@ -651,37 +729,37 @@ "comment": "", "command": "select", "target": "name=type", - "targets": [], - "value": "label=EntityAttributes" - }, { - "id": "5d3daf7a-a4e0-4767-a1ef-2416270bfae4", - "comment": "", - "command": "click", - "target": "css=option:nth-child(2)", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='EntityAttributes']", "xpath:attributes"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'EntityAttributes')]", "xpath:innerText"] + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/div/div/form/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], - "value": "" + "value": "label=EntityAttributes" }, { "id": "f013d7b6-96c3-4155-ac1e-cff223e5e547", "comment": "", "command": "waitForElementVisible", - "target": "id=/name", - "targets": [], + "target": "id=root_name", + "targets": [ + ["id=root_name", "id"], + ["css=#root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "a58e088d-329b-4cfb-949b-eea9fdbdad37", "comment": "", "command": "click", - "target": "id=/name", + "target": "id=root_name", "targets": [ - ["id=/name", "id"], - ["name=field39", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], + ["id=root_name", "id"], + ["css=#root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -689,12 +767,12 @@ "id": "60177908-3143-407a-8bdf-a045463d5490", "comment": "", "command": "type", - "target": "id=/name", + "target": "id=root_name", "targets": [ - ["id=/name", "id"], - ["name=field39", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], + ["id=root_name", "id"], + ["css=#root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "Entity Attributes Filter" @@ -702,20 +780,19 @@ "id": "67d52837-5e50-487c-a744-9ee0ea39f5b7", "comment": "", "command": "click", - "target": "id=/entityAttributesFilterTarget.target", + "target": "css=.rbt-input-main", "targets": [ - ["id=/entityAttributesFilterTarget.target", "id"], - ["css=#\\/entityAttributesFilterTarget\\.target", "css:finder"], - ["xpath=//input[@id='/entityAttributesFilterTarget.target']", "xpath:attributes"], - ["xpath=//div[@id='-container']/div/input", "xpath:idRelative"], - ["xpath=//div/div/input", "xpath:position"] + ["css=.rbt-input-main", "css:finder"], + ["xpath=(//input[@value=''])[2]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[6]/div/div/div/fieldset/div/div/div[2]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "3512eb60-34d4-455b-8a2c-e6c98d382cac", "comment": "", "command": "type", - "target": "id=/entityAttributesFilterTarget.target", + "target": "css=.rbt-input-main", "targets": [ ["id=/entityAttributesFilterTarget.target", "id"], ["css=#\\/entityAttributesFilterTarget\\.target", "css:finder"], @@ -728,58 +805,65 @@ "id": "a9d49b1c-c794-4c54-83ea-c61bd3011dba", "comment": "", "command": "click", - "target": "css=.btn-success:nth-child(1)", + "target": "css=.btn-success", "targets": [ - ["css=.btn-success:nth-child(1)", "css:finder"], - ["xpath=//div[2]/button", "xpath:position"], - ["xpath=//button[contains(.,'Add Entity ID')]", "xpath:innerText"] + ["css=.btn-success", "css:finder"], + ["xpath=(//button[@type='button'])[17]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[6]/div/div/div/fieldset/div/div/div[2]/div/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add Entity ID  ')]", "xpath:innerText"] ], "value": "" }, { - "id": "dff6b5d5-02ae-41a1-bae4-6ce39aeca199", + "id": "f82a986d-d0e8-433d-8b5c-805e84b76d6e", "comment": "", "command": "click", - "target": "css=#\\/filterEnabled\\.parent > .custom-control-label", + "target": "css=.nav-link:nth-child(2)", "targets": [ - ["css=#\\/filterEnabled\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/filterEnabled.parent']/label", "xpath:idRelative"], - ["xpath=//checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Filter?')]", "xpath:innerText"] + ["css=.nav-link:nth-child(2)", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div/nav/button[2]", "xpath:idRelative"], + ["xpath=//nav/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Options')]", "xpath:innerText"] ], "value": "" }, { "id": "356339ea-0caf-406a-a2d6-b3eb991b7af6", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/omitNotBefore\\.parent > .custom-control-label", + "target": "id=root_relyingPartyOverrides_omitNotBefore", "targets": [ - ["css=#\\/relyingPartyOverrides\\/omitNotBefore\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/omitNotBefore.parent']/label", "xpath:idRelative"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Omit Not Before Condition?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_omitNotBefore", "id"], + ["css=#root_relyingPartyOverrides_omitNotBefore", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_omitNotBefore']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[6]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "fdb64234-9424-4e0d-8be0-dd7c43859de3", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/forceAuthn\\.parent > .custom-control-label", + "target": "id=root_relyingPartyOverrides_forceAuthn", "targets": [ - ["css=#\\/relyingPartyOverrides\\/forceAuthn\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/forceAuthn.parent']/label", "xpath:idRelative"], - ["xpath=//div[10]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Force AuthN')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_forceAuthn", "id"], + ["css=#root_relyingPartyOverrides_forceAuthn", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_forceAuthn']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[10]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[10]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "c722da17-b739-4fa6-b731-8b347e3c96e3", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ - ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], - ["xpath=//array-component/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.row:nth-child(8) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[18]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[8]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[8]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -793,13 +877,12 @@ "id": "93505bd6-8a5e-4ef0-8f50-d2dc9bce71d6", "comment": "", "command": "click", - "target": "css=.input-group-append > .btn", + "target": "css=.toggle-button", "targets": [ - ["css=.input-group-append > .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/0-container']/div/div/button", "xpath:idRelative"], - ["xpath=//auto-complete/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[20]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[8]/div/div/div/div/div/div[2]/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -813,58 +896,81 @@ "id": "b269b8f4-8191-47c1-a84a-5b64df6aadcb", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/0__option--2", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-2", + "targets": [ + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-2", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_0']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "f82f3d61-f057-4c8e-96c8-321cc7bb134c", + "comment": "", + "command": "click", + "target": "css=.text-left:nth-child(3)", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/0__option--2", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/0__option--2", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/0__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/0__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[3]", "xpath:position"] + ["css=.text-left:nth-child(3)", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div/nav/button[3]", "xpath:idRelative"], + ["xpath=//button[3]", "xpath:position"], + ["xpath=//button[contains(.,'Attributes')]", "xpath:innerText"] ], "value": "" }, { "id": "c4431fc6-cbd3-4b7b-b1fd-b30141aa2af8", "comment": "", "command": "click", - "target": "css=tr:nth-child(6) .custom-control-label", + "target": "id=root_attributeRelease_6", "targets": [ - ["css=tr:nth-child(6) .custom-control-label", "css:finder"], - ["xpath=//tr[6]/td[2]/fieldset/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Toggle eduPersonAffiliation')]", "xpath:innerText"] + ["id=root_attributeRelease_6", "id"], + ["css=#root_attributeRelease_6", "css:finder"], + ["xpath=//input[@id='root_attributeRelease_6']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[8]/div/div/div/fieldset/table/tbody/tr[7]/td[2]/fieldset/div/div/input", "xpath:idRelative"], + ["xpath=//tr[7]/td[2]/fieldset/div/div/input", "xpath:position"] ], "value": "" }, { "id": "7b22d9b0-81f4-47c6-91f1-713c89cf9dd1", "comment": "", "command": "click", - "target": "css=tr:nth-child(7) .custom-control-label", + "target": "id=root_attributeRelease_7", "targets": [ - ["css=tr:nth-child(7) .custom-control-label", "css:finder"], - ["xpath=//tr[7]/td[2]/fieldset/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Toggle eduPersonScopedAffiliation')]", "xpath:innerText"] + ["id=root_attributeRelease_7", "id"], + ["css=#root_attributeRelease_7", "css:finder"], + ["xpath=//input[@id='root_attributeRelease_7']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[8]/div/div/div/fieldset/table/tbody/tr[8]/td[2]/fieldset/div/div/input", "xpath:idRelative"], + ["xpath=//tr[8]/td[2]/fieldset/div/div/input", "xpath:position"] ], "value": "" }, { "id": "ad3ec36d-6e6a-4650-b7a1-0c8efaaeabe3", "comment": "", "command": "click", - "target": "css=tr:nth-child(8) .custom-control-label", + "target": "id=root_attributeRelease_8", "targets": [ - ["css=tr:nth-child(8) .custom-control-label", "css:finder"], - ["xpath=//tr[8]/td[2]/fieldset/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Toggle eduPersonPrimaryAffiliation')]", "xpath:innerText"] + ["id=root_attributeRelease_8", "id"], + ["css=#root_attributeRelease_8", "css:finder"], + ["xpath=//input[@id='root_attributeRelease_8']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[8]/div/div/div/fieldset/table/tbody/tr[9]/td[2]/fieldset/div/div/input", "xpath:idRelative"], + ["xpath=//tr[9]/td[2]/fieldset/div/div/input", "xpath:position"] ], "value": "" }, { "id": "25090cbb-9e11-4938-b44e-70326857422d", "comment": "", "command": "click", - "target": "css=.btn-primary", + "target": "css=.btn-info", "targets": [ - ["css=.btn-primary", "css:finder"], - ["xpath=//button[@type='submit']", "xpath:attributes"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Save')]", "xpath:innerText"] + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/div[2]/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Save')]", "xpath:innerText"] ], "value": "" }, { @@ -872,7 +978,12 @@ "comment": "", "command": "waitForElementVisible", "target": "css=span:nth-child(4)", - "targets": [], + "targets": [ + ["css=span:nth-child(4)", "css:finder"], + ["xpath=//div[@id='filters']/ul/li/div/span[2]", "xpath:idRelative"], + ["xpath=//li/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'EntityAttributes')]", "xpath:innerText"] + ], "value": "10000" }, { "id": "e9f4ddf4-db8a-4bda-88cc-66173717986c", @@ -905,30 +1016,24 @@ "comment": "", "command": "select", "target": "name=type", - "targets": [], - "value": "label=NameIDFormat" - }, { - "id": "a0388dc6-4668-48bb-ab21-2ecaaade5ff0", - "comment": "", - "command": "click", - "target": "css=option:nth-child(3)", "targets": [ - ["css=option:nth-child(3)", "css:finder"], - ["xpath=//option[@value='NameIDFormat']", "xpath:attributes"], - ["xpath=//option[3]", "xpath:position"], - ["xpath=//option[contains(.,'NameIDFormat')]", "xpath:innerText"] + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/div/div/form/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], - "value": "" + "value": "label=NameIDFormat" }, { "id": "be76769e-6422-4b1f-a2e4-00a32d394057", "comment": "", "command": "type", - "target": "id=/name", + "target": "id=root_name", "targets": [ - ["id=/name", "id"], - ["name=field59", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], + ["id=root_name", "id"], + ["css=#root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "Name ID Format Filter" @@ -943,13 +1048,14 @@ "id": "81373637-8e36-4736-9b2a-7b8d477dc2c1", "comment": "", "command": "click", - "target": "id=/nameIdFormatFilterTarget.valuedd", + "target": "id=dropdown-label.filter-target-type", "targets": [ - ["id=/nameIdFormatFilterTarget.valuedd", "id"], - ["css=#\\/nameIdFormatFilterTarget\\.valuedd", "css:finder"], - ["xpath=//button[@id='/nameIdFormatFilterTarget.valuedd']", "xpath:attributes"], + ["id=dropdown-label.filter-target-type", "id"], + ["css=#dropdown-label\\.filter-target-type", "css:finder"], + ["xpath=//button[@id='dropdown-label.filter-target-type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[3]/div/div/div/fieldset/div/div/div/div/button", "xpath:idRelative"], ["xpath=//fieldset/div/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Entity ID')]", "xpath:innerText"] + ["xpath=//button[contains(.,'Entity ID ')]", "xpath:innerText"] ], "value": "" }, { @@ -963,14 +1069,13 @@ "id": "f562c710-39fc-490d-80c9-d3525722397c", "comment": "", "command": "click", - "target": "linkText=Regex", + "target": "css=.show > .dropdown-item:nth-child(2)", "targets": [ - ["linkText=Regex", "linkText"], - ["css=.dropdown-item:nth-child(2)", "css:finder"], - ["xpath=//a[contains(text(),'Regex')]", "xpath:link"], - ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], - ["xpath=//div/div/a[2]", "xpath:position"], - ["xpath=//a[contains(.,'Regex')]", "xpath:innerText"] + ["css=.show > .dropdown-item:nth-child(2)", "css:finder"], + ["xpath=(//button[@type='button'])[15]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[3]/div/div/div/fieldset/div/div/div/div/div/button[2]", "xpath:idRelative"], + ["xpath=//fieldset/div/div/div/div/div/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Regex')]", "xpath:innerText"] ], "value": "" }, { @@ -984,30 +1089,53 @@ "id": "c5dc3e04-eb5a-4885-92ed-3425da3026e6", "comment": "", "command": "sendKeys", - "target": "id=/nameIdFormatFilterTarget.target", - "targets": [], + "target": "id=targetInput", + "targets": [ + ["id=targetInput", "id"], + ["name=script", "name"], + ["css=#targetInput", "css:finder"], + ["xpath=//input[@id='targetInput']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[3]/div/div/div/fieldset/div/div/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] + ], "value": "/foo.*/" + }, { + "id": "51fb3b80-0f3b-4a54-892f-958f20ddf741", + "comment": "", + "command": "click", + "target": "css=.nav-link:nth-child(2)", + "targets": [ + ["css=.nav-link:nth-child(2)", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div/nav/button[2]", "xpath:idRelative"], + ["xpath=//nav/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Options')]", "xpath:innerText"] + ], + "value": "" }, { "id": "d2cbc813-89e5-4801-a9fe-5e0e775a419f", "comment": "", "command": "click", - "target": "css=#\\/removeExistingFormats\\.parent > .custom-control-label", + "target": "id=root_removeExistingFormats", "targets": [ - ["css=#\\/removeExistingFormats\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/removeExistingFormats.parent']/label", "xpath:idRelative"], - ["xpath=//div[7]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Remove Existing Formats?')]", "xpath:innerText"] + ["id=root_removeExistingFormats", "id"], + ["css=#root_removeExistingFormats", "css:finder"], + ["xpath=//input[@id='root_removeExistingFormats']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { "id": "77dfeb05-38e3-4ef8-9566-06e7597d464c", "comment": "", "command": "click", - "target": "css=.btn-primary", + "target": "css=.btn-info", "targets": [ - ["css=.btn-primary > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Save')]", "xpath:innerText"] + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/div[2]/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Save')]", "xpath:innerText"] ], "value": "" }, { @@ -1032,7 +1160,7 @@ "id": "6b3ec8f1-8b9a-40f5-816f-3a1e415b9d8d", "comment": "", "command": "pause", - "target": "2000", + "target": "5000", "targets": [], "value": "" }, { @@ -1061,7 +1189,7 @@ "id": "403570ff-e1f0-4db9-925f-f90c5994b60e", "comment": "", "command": "pause", - "target": "2000", + "target": "3000", "targets": [], "value": "" }, { @@ -1075,13 +1203,6 @@ ["xpath=//td[contains(.,'EntityAttributes')]", "xpath:innerText"] ], "value": "EntityAttributes" - }, { - "id": "f81a35eb-de1b-49ac-a9bb-b528393e9f9e", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1352-1.side b/backend/src/integration/resources/SHIBUI-1352-1.side index f59c15872..ce0a0b85f 100644 --- a/backend/src/integration/resources/SHIBUI-1352-1.side +++ b/backend/src/integration/resources/SHIBUI-1352-1.side @@ -49,41 +49,75 @@ ["xpath=//tr[2]/td[2]/input", "xpath:position"] ], "value": "${KEY_ENTER}" + }, { + "id": "aca3ed42-716a-47c6-ad6b-b193be24d5d9", + "comment": "", + "command": "waitForElementVisible", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "5fe93ce7-64eb-4b3f-b01f-260b88b09f26", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "5f3e3367-de96-4bf0-b9e7-47e08c781038", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "3e186997-b81e-487b-8973-77ed74b32895", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "8ff3019f-42b4-4ba8-8b63-b9f0f6aa413f", "comment": "", "command": "click", - "target": "css=#addNewDropdown > translate-i18n", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=#addNewDropdown > translate-i18n", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/translate-i18n", "xpath:idRelative"], - ["xpath=//translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Add New')]", "xpath:innerText"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "c36d95be-7a13-454d-a05e-ef323b530c9d", "comment": "", "command": "click", - "target": "linkText=Metadata Provider", + "target": "id=metadata-nav-dropdown-provider", "targets": [ - ["linkText=Metadata Provider", "linkText"], - ["css=.nav-link:nth-child(2)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a[2]", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[3]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"] + ["id=metadata-nav-dropdown-provider", "id"], + ["linkText=Add a new metadata provider", "linkText"], + ["css=#metadata-nav-dropdown-provider", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata provider')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-provider']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/new')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata provider')]", "xpath:innerText"] ], "value": "" }, { "id": "2e8de1a4-a5a3-49fc-8314-206ab7373f14", "comment": "", "command": "click", - "target": "id=/name", + "target": "name=name", "targets": [ - ["id=/name", "id"], - ["name=field1", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -91,7 +125,7 @@ "id": "88683ce7-ec58-4a98-8138-9003d4275f8b", "comment": "", "command": "type", - "target": "id=/name", + "target": "name=name", "targets": [ ["id=field1", "id"], ["name=field1", "name"], @@ -100,19 +134,26 @@ ["xpath=//input", "xpath:position"] ], "value": "Test Local Dynamic Provider" + }, { + "id": "419d075c-3257-41aa-b462-25296a5e4b25", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" }, { "id": "fd4257d7-488a-4eed-8d72-7f39034a1c72", "comment": "", "command": "select", - "target": "id=/type", + "target": "name=type", "targets": [ - ["id=/@type", "id"], - ["name=field2", "name"], - ["css=#\\/\\@type", "css:finder"], - ["xpath=//select[@id='/@type']", "xpath:attributes"], + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div[2]/select", "xpath:idRelative"], ["xpath=//select", "xpath:position"] ], - "value": "label=LocalDynamicMetadataProvider" + "value": "label=LocalDynamicMetadataResolver" }, { "id": "34cb083d-1dbf-463d-94de-392356f4e68d", "comment": "", @@ -127,12 +168,12 @@ "id": "205b2459-f8d3-4571-813b-e752ec2295a0", "comment": "", "command": "click", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ - ["id=/xmlId", "id"], - ["name=field7", "name"], - ["css=#\\/xmlId", "css:finder"], - ["xpath=//input[@id='/xmlId']", "xpath:attributes"], + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -140,7 +181,7 @@ "id": "54554bf5-8354-4737-b96e-6f36ccab6455", "comment": "", "command": "type", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ ["id=field7", "id"], ["name=field7", "name"], @@ -153,20 +194,20 @@ "id": "2510aebf-4351-4bd4-8d57-1b8061a3da93", "comment": "", "command": "click", - "target": "id=/sourceDirectory", + "target": "id=root_sourceDirectory", "targets": [ - ["id=/sourceDirectory", "id"], - ["name=field8", "name"], - ["css=#\\/sourceDirectory", "css:finder"], - ["xpath=//input[@id='/sourceDirectory']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_sourceDirectory", "id"], + ["css=#root_sourceDirectory", "css:finder"], + ["xpath=//input[@id='root_sourceDirectory']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "" }, { "id": "b020f834-180b-400f-a85a-b3e006337c55", "comment": "", "command": "type", - "target": "id=/sourceDirectory", + "target": "id=root_sourceDirectory", "targets": [ ["id=field8", "id"], ["name=field8", "name"], @@ -189,12 +230,12 @@ "id": "ee0724b9-a055-4aef-a5a2-a58acd017000", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_dynamicMetadataResolverAttributes_refreshDelayFactor", "targets": [ - ["id=/dynamicMetadataResolverAttributes/refreshDelayFactor", "id"], - ["name=field11", "name"], - ["css=#\\/dynamicMetadataResolverAttributes\\/refreshDelayFactor", "css:finder"], - ["xpath=//input[@id='/dynamicMetadataResolverAttributes/refreshDelayFactor']", "xpath:attributes"], + ["id=root_dynamicMetadataResolverAttributes_refreshDelayFactor", "id"], + ["css=.mb-0 > #root_dynamicMetadataResolverAttributes_refreshDelayFactor", "css:finder"], + ["xpath=//input[@id='root_dynamicMetadataResolverAttributes_refreshDelayFactor']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -202,7 +243,7 @@ "id": "1d3c8b73-97b8-40d2-ba89-9692f443b53d", "comment": "", "command": "type", - "target": "id=/dynamicMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_dynamicMetadataResolverAttributes_refreshDelayFactor", "targets": [ ["id=field11", "id"], ["name=field11", "name"], @@ -222,13 +263,12 @@ "id": "59ca3a2c-b9da-4ac6-9b44-d44271355659", "comment": "", "command": "click", - "target": "css=#\\/dynamicMetadataResolverAttributes\\/minCacheDuration-container .btn", + "target": "css=.row:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/dynamicMetadataResolverAttributes\\/minCacheDuration-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/dynamicMetadataResolverAttributes/minCacheDuration-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.row:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[8]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -242,14 +282,16 @@ "id": "8db04a8f-565a-4fa9-b5c0-8ce4b200b11c", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/minCacheDuration__option--1", + "target": "id=option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration-item-1", "targets": [ - ["id=/dynamicMetadataResolverAttributes/minCacheDuration__option--1", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/minCacheDuration__option--1", "css:finder"], - ["xpath=//li[@id='/dynamicMetadataResolverAttributes/minCacheDuration__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/dynamicMetadataResolverAttributes/minCacheDuration__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'PT30S')]", "xpath:innerText"] + ["id=option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { @@ -263,12 +305,12 @@ "id": "a5274853-084e-438f-8cea-9a74e55fd0b9", "comment": "", "command": "click", - "target": "css=#\\/dynamicMetadataResolverAttributes\\/maxCacheDuration-container .btn", + "target": "css=.row:nth-child(3) > .col-12 > .form-group .toggle-button", "targets": [ - ["css=#\\/dynamicMetadataResolverAttributes\\/maxCacheDuration-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/dynamicMetadataResolverAttributes/maxCacheDuration-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(3) > .col-12 > .form-group .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[3]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -282,13 +324,16 @@ "id": "bf7f5914-5aad-485a-8af0-aa510605e1dc", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/maxCacheDuration__option--3", + "target": "id=option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration-item-3", "targets": [ - ["id=/dynamicMetadataResolverAttributes/maxCacheDuration__option--3", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/maxCacheDuration__option--3", "css:finder"], - ["xpath=//li[@id='/dynamicMetadataResolverAttributes/maxCacheDuration__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/dynamicMetadataResolverAttributes/maxCacheDuration__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration-item-3", "id"], + ["linkText=PT10M", "linkText"], + ["css=#option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'PT10M')]", "xpath:innerText"] ], "value": "" }, { @@ -302,12 +347,12 @@ "id": "b2bd8d25-4f3c-47b2-a070-53a364840916", "comment": "", "command": "click", - "target": "css=#\\/dynamicMetadataResolverAttributes\\/maxIdleEntityData-container .btn", + "target": "css=.row:nth-child(4) .toggle-button", "targets": [ - ["css=#\\/dynamicMetadataResolverAttributes\\/maxIdleEntityData-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], - ["xpath=//div[@id='/dynamicMetadataResolverAttributes/maxIdleEntityData-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(4) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[12]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[4]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -321,25 +366,29 @@ "id": "9a411cfc-479d-4951-aab2-e8d09ba64b4e", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/maxIdleEntityData__option--2", + "target": "id=option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData-item-5", "targets": [ - ["id=/dynamicMetadataResolverAttributes/maxIdleEntityData__option--2", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/maxIdleEntityData__option--2", "css:finder"], - ["xpath=//li[@id='/dynamicMetadataResolverAttributes/maxIdleEntityData__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/dynamicMetadataResolverAttributes/maxIdleEntityData__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData-item-5", "id"], + ["linkText=PT1H", "linkText"], + ["css=#option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData-item-5", "css:finder"], + ["xpath=//a[@id='option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData-item-5']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData']/a[6]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[6]", "xpath:href"], + ["xpath=//a[6]", "xpath:position"], + ["xpath=//a[contains(.,'PT1H')]", "xpath:innerText"] ], "value": "" }, { "id": "1176d384-4b0c-4a67-8e43-6cc3cbbcff73", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/removeIdleEntityData.false", + "target": "id=root_dynamicMetadataResolverAttributes_removeIdleEntityData-No", "targets": [ - ["id=/dynamicMetadataResolverAttributes/removeIdleEntityData.false", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/removeIdleEntityData\\.false", "css:finder"], - ["xpath=//input[@id='/dynamicMetadataResolverAttributes/removeIdleEntityData.false']", "xpath:attributes"], - ["xpath=//div[2]/label/input", "xpath:position"] + ["id=root_dynamicMetadataResolverAttributes_removeIdleEntityData-No", "id"], + ["css=#root_dynamicMetadataResolverAttributes_removeIdleEntityData-No", "css:finder"], + ["xpath=//input[@id='root_dynamicMetadataResolverAttributes_removeIdleEntityData-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[5]/div/div/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] ], "value": "" }, { @@ -353,12 +402,12 @@ "id": "ae32fb25-67b1-469b-9f23-3cbca895b956", "comment": "", "command": "click", - "target": "css=#\\/dynamicMetadataResolverAttributes\\/cleanupTaskInterval-container .btn", + "target": "css=.row:nth-child(6) .toggle-button", "targets": [ - ["css=#\\/dynamicMetadataResolverAttributes\\/cleanupTaskInterval-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], - ["xpath=//div[@id='/dynamicMetadataResolverAttributes/cleanupTaskInterval-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(6) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[15]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[6]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -372,13 +421,16 @@ "id": "c30bf781-4d5d-46ad-9bbc-4a5165788870", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/cleanupTaskInterval__option--1", + "target": "id=option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval-item-1", "targets": [ - ["id=/dynamicMetadataResolverAttributes/cleanupTaskInterval__option--1", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/cleanupTaskInterval__option--1", "css:finder"], - ["xpath=//li[@id='/dynamicMetadataResolverAttributes/cleanupTaskInterval__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/dynamicMetadataResolverAttributes/cleanupTaskInterval__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[2]", "xpath:position"] + ["id=option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { @@ -391,17 +443,6 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "f4b19f08-bf68-47d0-9c1d-d59f6476a468", - "comment": "", - "command": "click", - "target": "css=.custom-control-label", - "targets": [ - ["css=.custom-control-label", "css:finder"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Metadata Provider?')]", "xpath:innerText"] - ], - "value": "" }, { "id": "e27e05ac-3a23-47e2-b5b4-51b2ae2f4b31", "comment": "", @@ -416,39 +457,44 @@ "id": "6a002ac9-ba5c-4d57-bb87-05c3a5812469", "comment": "", "command": "waitForElementVisible", - "target": "css=.d-block > primitive-property:nth-child(1) .text-truncate", - "targets": [], + "target": "linkText=Test Local Dynamic Provider", + "targets": [ + ["linkText=Test Local Dynamic Provider", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'Test Local Dynamic Provider')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/69dc896e-c046-469d-a85d-066c71606460/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Test Local Dynamic Provider')]", "xpath:innerText"] + ], "value": "30000" }, { "id": "f0232386-eb88-4f6c-98fa-b9065ed422b7", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(1) .text-truncate", + "target": "linkText=Test Local Dynamic Provider", "targets": [ - ["css=.d-block > primitive-property:nth-child(1) .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], - ["xpath=//div/span[2]", "xpath:position"] + ["linkText=Test Local Dynamic Provider", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'Test Local Dynamic Provider')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/69dc896e-c046-469d-a85d-066c71606460/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Test Local Dynamic Provider')]", "xpath:innerText"] ], "value": "Test Local Dynamic Provider" }, { "id": "5e8993ae-47ee-4e65-b667-b291d7c934ec", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(2) .text-truncate", + "target": "css=.align-middle:nth-child(3)", "targets": [ - ["css=.d-block > primitive-property:nth-child(2) .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property[2]/div/div/span[2]", "xpath:idRelative"], - ["xpath=//primitive-property[2]/div/div/span[2]", "xpath:position"], - ["xpath=//span[contains(.,'LocalDynamicMetadataResolver')]", "xpath:innerText"] + ["css=.align-middle:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[3]", "xpath:idRelative"], + ["xpath=//td[3]", "xpath:position"], + ["xpath=//td[contains(.,'LocalDynamicMetadataResolver')]", "xpath:innerText"] ], "value": "LocalDynamicMetadataResolver" - }, { - "id": "0da0b69c-a807-4961-ad8d-ef5eb1ba667e", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1352-2.side b/backend/src/integration/resources/SHIBUI-1352-2.side index a6b4b2593..611da7aa9 100644 --- a/backend/src/integration/resources/SHIBUI-1352-2.side +++ b/backend/src/integration/resources/SHIBUI-1352-2.side @@ -49,36 +49,70 @@ ["xpath=//tr[2]/td[2]/input", "xpath:position"] ], "value": "${KEY_ENTER}" + }, { + "id": "56429611-d4c2-4486-bcc1-99c177764717", + "comment": "", + "command": "waitForElementVisible", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "e3eeb3b6-c6de-466f-9609-9683bc71ac71", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "b9614d2a-251b-4ad0-b85d-066c7b947d7c", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "9c33c58d-9c9f-405e-960a-3ae946ebfc69", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "1245c352-1466-4b3f-ac54-a71bdd99ed29", "comment": "", "command": "click", - "target": "css=#addNewDropdown > translate-i18n", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=#addNewDropdown > translate-i18n", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/translate-i18n", "xpath:idRelative"], - ["xpath=//translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Add New')]", "xpath:innerText"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "0a94c3ad-96c3-464c-8db2-04b8d40d07fe", "comment": "", "command": "click", - "target": "linkText=Metadata Provider", + "target": "id=metadata-nav-dropdown-provider", "targets": [ - ["linkText=Metadata Provider", "linkText"], - ["css=.nav-link:nth-child(2)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a[2]", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[3]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"] + ["id=metadata-nav-dropdown-provider", "id"], + ["linkText=Add a new metadata provider", "linkText"], + ["css=#metadata-nav-dropdown-provider", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata provider')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-provider']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/new')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata provider')]", "xpath:innerText"] ], "value": "" }, { "id": "230d4089-99c3-4f2e-99a8-b125bbde94aa", "comment": "", "command": "click", - "target": "id=/name", + "target": "name=name", "targets": [ ["id=/name", "id"], ["name=field1", "name"], @@ -91,7 +125,7 @@ "id": "872cc901-9a64-46c8-9a8b-78df25273a29", "comment": "", "command": "type", - "target": "id=/name", + "target": "name=name", "targets": [ ["id=field4", "id"], ["name=field4", "name"], @@ -100,11 +134,18 @@ ["xpath=//input", "xpath:position"] ], "value": "Test File System Provider" + }, { + "id": "857164d1-abcf-4b8c-a565-ee015ac17938", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" }, { "id": "9621e646-308a-4eda-9244-036e8997467a", "comment": "", "command": "select", - "target": "id=/type", + "target": "name=type", "targets": [ ["id=/@type", "id"], ["name=field2", "name"], @@ -112,7 +153,7 @@ ["xpath=//select[@id='/@type']", "xpath:attributes"], ["xpath=//select", "xpath:position"] ], - "value": "label=FilesystemMetadataProvider" + "value": "label=FilesystemMetadataResolver" }, { "id": "19b8e1ac-427a-4ced-91c7-226fd2480f46", "comment": "", @@ -127,12 +168,12 @@ "id": "cb1183c8-8165-4021-b1ff-77cf7ba210a5", "comment": "", "command": "click", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ - ["id=/xmlId", "id"], - ["name=field7", "name"], - ["css=#\\/xmlId", "css:finder"], - ["xpath=//input[@id='/xmlId']", "xpath:attributes"], + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -140,7 +181,7 @@ "id": "fb136799-b38b-49f7-8cf6-f00de5c56a46", "comment": "", "command": "type", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ ["id=field7", "id"], ["name=field7", "name"], @@ -153,20 +194,20 @@ "id": "dece0246-47b4-4553-b06e-f89e096ef244", "comment": "", "command": "click", - "target": "id=/metadataFile", + "target": "id=root_metadataFile", "targets": [ - ["id=/metadataFile", "id"], - ["name=field8", "name"], - ["css=#\\/metadataFile", "css:finder"], - ["xpath=//input[@id='/metadataFile']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_metadataFile", "id"], + ["css=#root_metadataFile", "css:finder"], + ["xpath=//input[@id='root_metadataFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "" }, { "id": "614a5542-fafa-4523-aa58-5f4fd3586d76", "comment": "", "command": "type", - "target": "id=/metadataFile", + "target": "id=root_metadataFile", "targets": [ ["id=field8", "id"], ["name=field8", "name"], @@ -179,12 +220,13 @@ "id": "88cf741f-0922-4dfb-aaea-9e4c146ed8e1", "comment": "", "command": "click", - "target": "id=/doInitialization.false", + "target": "id=root_doInitialization-No", "targets": [ - ["id=/doInitialization.true", "id"], - ["css=#\\/doInitialization\\.true", "css:finder"], - ["xpath=//input[@id='/doInitialization.true']", "xpath:attributes"], - ["xpath=//label/input", "xpath:position"] + ["id=root_doInitialization-No", "id"], + ["css=#root_doInitialization-No", "css:finder"], + ["xpath=//input[@id='root_doInitialization-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[3]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] ], "value": "" }, { @@ -208,13 +250,12 @@ "id": "d2e09813-fee8-4744-9ac9-72bdbac92b72", "comment": "", "command": "click", - "target": "css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", + "target": "css=.row:nth-child(1) > .col-12 .toggle-button", "targets": [ - ["css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/reloadableMetadataResolverAttributes/minRefreshDelay-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.row:nth-child(1) > .col-12 .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -228,14 +269,16 @@ "id": "d449fec4-84f9-4eda-98e5-2dc40d185a63", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/minRefreshDelay__option--1", + "target": "id=option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "targets": [ - ["id=/reloadableMetadataResolverAttributes/minRefreshDelay__option--1", "id"], - ["css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay__option--1", "css:finder"], - ["xpath=//li[@id='/reloadableMetadataResolverAttributes/minRefreshDelay__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/reloadableMetadataResolverAttributes/minRefreshDelay__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'PT30S')]", "xpath:innerText"] + ["id=option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { @@ -249,12 +292,12 @@ "id": "54784d87-c835-4e3f-9467-9c39be596bb8", "comment": "", "command": "click", - "target": "css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay-container .btn", + "target": "css=.row:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -268,33 +311,36 @@ "id": "119a39c2-6d86-4d94-a093-6669e89e78e4", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/maxRefreshDelay__option--3", + "target": "id=option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3", "targets": [ - ["id=/reloadableMetadataResolverAttributes/maxRefreshDelay__option--3", "id"], - ["css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay__option--3", "css:finder"], - ["xpath=//li[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3", "id"], + ["linkText=PT10M", "linkText"], + ["css=#option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'PT10M')]", "xpath:innerText"] ], "value": "" }, { "id": "fa8357ce-5c99-483d-8170-bf9987aa81db", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "targets": [ - ["id=/reloadableMetadataResolverAttributes/refreshDelayFactor", "id"], - ["name=field14", "name"], - ["css=#\\/reloadableMetadataResolverAttributes\\/refreshDelayFactor", "css:finder"], - ["xpath=//input[@id='/reloadableMetadataResolverAttributes/refreshDelayFactor']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "id"], + ["css=#root_reloadableMetadataResolverAttributes_refreshDelayFactor", "css:finder"], + ["xpath=//input[@id='root_reloadableMetadataResolverAttributes_refreshDelayFactor']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "415caf46-dca5-41be-9334-f01a0bf42af8", "comment": "", "command": "type", - "target": "id=/reloadableMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "targets": [ ["id=field14", "id"], ["name=field14", "name"], @@ -303,6 +349,13 @@ ["xpath=//custom-string/div/input", "xpath:position"] ], "value": "0.5" + }, { + "id": "07cf4466-78fc-4a17-8a10-5d991bb2256c", + "comment": "", + "command": "sendKeys", + "target": "id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", + "targets": [], + "value": "${KEY_ENTER]" }, { "id": "138ac9c7-03ae-4a87-b1f4-73bab4cc1197", "comment": "", @@ -313,17 +366,6 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "6a929cbb-551e-416d-9dd0-aea3d2ff7fa8", - "comment": "", - "command": "click", - "target": "css=.custom-control-label", - "targets": [ - ["css=.custom-control-label", "css:finder"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Metadata Provider?')]", "xpath:innerText"] - ], - "value": "" }, { "id": "745769b0-8422-4100-8ce5-5ec1b1a18c25", "comment": "", @@ -338,18 +380,22 @@ "id": "3718c9f8-edb3-412a-9819-f3adc27f1226", "comment": "", "command": "waitForElementVisible", - "target": "css=.d-block > primitive-property:nth-child(1) .text-truncate", + "target": "linkText=Test File System Provider", "targets": [ - ["css=.d-block > primitive-property:nth-child(1) .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], - ["xpath=//div/span[2]", "xpath:position"] + ["linkText=Test File System Provider", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'Test File System Provider')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/f11c3ea0-fec6-4146-9e02-663212855b35/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Test File System Provider')]", "xpath:innerText"] ], "value": "10000" }, { "id": "44749988-e30f-4328-9f78-dc9eaafa891a", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(1) .text-truncate", + "target": "linkText=Test File System Provider", "targets": [ ["css=.d-block > primitive-property:nth-child(1) .text-truncate", "css:finder"], ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], @@ -360,21 +406,14 @@ "id": "6ddcb09b-9d3b-4a13-bb95-1b79028ba2af", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(2) .text-truncate", + "target": "css=.align-middle:nth-child(3)", "targets": [ - ["css=.d-block > primitive-property:nth-child(2) .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property[2]/div/div/span[2]", "xpath:idRelative"], - ["xpath=//primitive-property[2]/div/div/span[2]", "xpath:position"], - ["xpath=//span[contains(.,'FilesystemMetadataResolver')]", "xpath:innerText"] + ["css=.align-middle:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[3]", "xpath:idRelative"], + ["xpath=//td[3]", "xpath:position"], + ["xpath=//td[contains(.,'FilesystemMetadataResolver')]", "xpath:innerText"] ], "value": "FilesystemMetadataResolver" - }, { - "id": "4ff97235-563b-4d71-80b7-a8b263aeb90b", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1361.side b/backend/src/integration/resources/SHIBUI-1361.side index 86f1b4bc4..ebb82a22a 100644 --- a/backend/src/integration/resources/SHIBUI-1361.side +++ b/backend/src/integration/resources/SHIBUI-1361.side @@ -10,9 +10,16 @@ "id": "58401038-5239-4643-b370-d7012a6f9486", "comment": "", "command": "store", - "target": "^[A-Z][a-z]{2} [0-9][0-9]?, [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2}(.*)?$", + "target": "^[A-Z][a-z]{2} [0-9][0-9]?, [0-9]{4}$", "targets": [], "value": "dateRegex" + }, { + "id": "f2d92146-8cf3-4678-a681-cbed4d36871f", + "comment": "", + "command": "store", + "target": "^[A-Z][a-z]{2} [0-9][0-9]?, [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2}(.*)?$", + "targets": [], + "value": "dateTimeRegex" }, { "id": "29bb3186-81c8-4b3e-a9d9-5ff55d225878", "comment": "", @@ -56,40 +63,75 @@ ["xpath=//tr[2]/td[2]/input", "xpath:position"] ], "value": "${KEY_ENTER}" + }, { + "id": "e944d34b-22dc-491a-bafc-f2561b0c8767", + "comment": "", + "command": "waitForElementVisible", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "554d601e-0128-4f3f-94db-9d8e2b5e5e92", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "aa71a9ac-3050-41c4-a6aa-6dd008938a8b", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "592758cc-3da8-4481-8b73-3489a67d7e47", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "e7a98419-36c7-4b0f-a99d-087144f6a417", "comment": "", "command": "click", - "target": "css=.fa-plus-circle", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=.fa-plus-circle", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/i", "xpath:idRelative"], - ["xpath=//i", "xpath:position"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "74fef022-3979-4bed-9226-b25114514976", "comment": "", "command": "click", - "target": "linkText=Metadata Provider", + "target": "id=metadata-nav-dropdown-provider", "targets": [ - ["linkText=Metadata Provider", "linkText"], - ["css=.nav-link:nth-child(2)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a[2]", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[3]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"] + ["id=metadata-nav-dropdown-provider", "id"], + ["linkText=Add a new metadata provider", "linkText"], + ["css=#metadata-nav-dropdown-provider", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata provider')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-provider']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/new')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata provider')]", "xpath:innerText"] ], "value": "" }, { "id": "55a876d6-70b7-46f6-aab1-7efacb79156f", "comment": "", "command": "waitForElementEditable", - "target": "id=/name", + "target": "name=name", "targets": [ - ["id=/name", "id"], - ["name=field1", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "30000" @@ -97,7 +139,7 @@ "id": "54dc29f7-bbe0-4c2b-a76e-e67a61f57a96", "comment": "", "command": "type", - "target": "id=/name", + "target": "name=name", "targets": [ ["id=/name", "id"], ["name=field1", "name"], @@ -106,16 +148,26 @@ ["xpath=//input", "xpath:position"] ], "value": "Test Metadata Provider" + }, { + "id": "ea6f0896-33a5-4e02-b8a9-9d171b83c716", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" }, { "id": "add874d5-e3b2-4412-8039-2b9d2619ed19", "comment": "", "command": "select", - "target": "id=/type", + "target": "name=type", "targets": [ - ["css=select-component > .widget", "css:finder"], - ["xpath=//select-component/div", "xpath:position"] + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div[2]/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], - "value": "label=FileBackedHttpMetadataProvider" + "value": "label=FileBackedHttpMetadataResolver" }, { "id": "1cc352f4-0d71-4a3e-9399-1d9932816efc", "comment": "", @@ -130,19 +182,25 @@ "id": "79f8f28b-8bcf-464a-850f-eb10552a9390", "comment": "", "command": "waitForElementVisible", - "target": "id=/xmlId", - "targets": [], + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "86262eda-4a44-41b0-b7aa-fa46406e2601", "comment": "", "command": "type", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ - ["id=field7", "id"], - ["name=field7", "name"], - ["css=#field7", "css:finder"], - ["xpath=//input[@id='field7']", "xpath:attributes"], + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "123" @@ -150,38 +208,39 @@ "id": "26cc765d-98c1-414c-97d8-4c7e5c6ab7e2", "comment": "", "command": "type", - "target": "id=/metadataURL", + "target": "id=root_metadataURL", "targets": [ - ["id=field8", "id"], - ["name=field8", "name"], - ["css=#field8", "css:finder"], - ["xpath=//input[@id='field8']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_metadataURL", "id"], + ["css=#root_metadataURL", "css:finder"], + ["xpath=//input[@id='root_metadataURL']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "https://idp.unicon.net/idp/shibboleth" }, { "id": "f0459917-b2a1-4e3c-8800-25273965129f", "comment": "", "command": "click", - "target": "id=/initializeFromBackupFile.false", + "target": "id=root_initializeFromBackupFile-No", "targets": [ - ["id=/initializeFromBackupFile.false", "id"], - ["css=#\\/initializeFromBackupFile\\.false", "css:finder"], - ["xpath=//input[@id='/initializeFromBackupFile.false']", "xpath:attributes"], - ["xpath=//div[2]/label/input", "xpath:position"] + ["id=root_initializeFromBackupFile-No", "id"], + ["css=#root_initializeFromBackupFile-No", "css:finder"], + ["xpath=//input[@id='root_initializeFromBackupFile-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[3]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] ], "value": "" }, { "id": "5b37cf08-77b9-4091-94f9-c0d539c9010d", "comment": "", "command": "type", - "target": "id=/backingFile", + "target": "id=root_backingFile", "targets": [ - ["id=/backingFile", "id"], - ["name=field10", "name"], - ["css=#\\/backingFile", "css:finder"], - ["xpath=//input[@id='/backingFile']", "xpath:attributes"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_backingFile", "id"], + ["css=#root_backingFile", "css:finder"], + ["xpath=//input[@id='root_backingFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] ], "value": "%{idp.home}/foo.txt" }, { @@ -195,11 +254,12 @@ "id": "203d0d3c-d866-422a-8b48-b50181db00e9", "comment": "", "command": "click", - "target": "css=.fa-caret-down", + "target": "css=.toggle-button", "targets": [ - ["css=.fa-caret-down", "css:finder"], - ["xpath=//div[@id='/backupFileInitNextRefreshDelay-container']/div/div/button/i", "xpath:idRelative"], - ["xpath=//div/button/i", "xpath:position"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[5]/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -213,62 +273,69 @@ "id": "5fc6a348-0533-4d94-bb76-ebb891a0db8f", "comment": "", "command": "click", - "target": "id=/backupFileInitNextRefreshDelay__option--1", + "target": "id=option-selector-root_backupFileInitNextRefreshDelay-item-1", "targets": [ - ["id=/backupFileInitNextRefreshDelay__option--1", "id"], - ["css=#\\/backupFileInitNextRefreshDelay__option--1", "css:finder"], - ["xpath=//li[@id='/backupFileInitNextRefreshDelay__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/backupFileInitNextRefreshDelay__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'PT30S')]", "xpath:innerText"] + ["id=option-selector-root_backupFileInitNextRefreshDelay-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_backupFileInitNextRefreshDelay-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_backupFileInitNextRefreshDelay-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_backupFileInitNextRefreshDelay']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { "id": "bf041d41-5d58-4f69-8fcc-49ec79e5547d", "comment": "", "command": "click", - "target": "id=/requireValidMetadata.false", + "target": "id=root_requireValidMetadata-No", "targets": [ - ["id=/requireValidMetadata.false", "id"], - ["css=#\\/requireValidMetadata\\.false", "css:finder"], - ["xpath=//input[@id='/requireValidMetadata.false']", "xpath:attributes"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_requireValidMetadata-No", "id"], + ["css=#root_requireValidMetadata-No", "css:finder"], + ["xpath=//input[@id='root_requireValidMetadata-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[6]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "fba85c75-e218-4deb-b5e1-888ff75b6a4e", "comment": "", "command": "click", - "target": "id=/failFastInitialization.false", + "target": "id=root_failFastInitialization-No", "targets": [ - ["id=/failFastInitialization.false", "id"], - ["css=#\\/failFastInitialization\\.false", "css:finder"], - ["xpath=//input[@id='/failFastInitialization.false']", "xpath:attributes"], - ["xpath=//div[7]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_failFastInitialization-No", "id"], + ["css=#root_failFastInitialization-No", "css:finder"], + ["xpath=//input[@id='root_failFastInitialization-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[7]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "375b8d6e-179b-4f14-8f00-d8a8cad29d7e", "comment": "", "command": "click", - "target": "id=/useDefaultPredicateRegistry.false", + "target": "id=root_useDefaultPredicateRegistry-No", "targets": [ - ["id=/useDefaultPredicateRegistry.false", "id"], - ["css=#\\/useDefaultPredicateRegistry\\.false", "css:finder"], - ["xpath=//input[@id='/useDefaultPredicateRegistry.false']", "xpath:attributes"], - ["xpath=//div[8]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_useDefaultPredicateRegistry-No", "id"], + ["css=#root_useDefaultPredicateRegistry-No", "css:finder"], + ["xpath=//input[@id='root_useDefaultPredicateRegistry-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[8]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[8]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "8b4bf341-62c0-491f-b775-d2faf55477bc", "comment": "", "command": "click", - "target": "id=/satisfyAnyPredicates.true", + "target": "id=root_satisfyAnyPredicates-Yes", "targets": [ - ["id=/satisfyAnyPredicates.true", "id"], - ["css=#\\/satisfyAnyPredicates\\.true", "css:finder"], - ["xpath=//input[@id='/satisfyAnyPredicates.true']", "xpath:attributes"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div/label/input", "xpath:position"] + ["id=root_satisfyAnyPredicates-Yes", "id"], + ["name=root_satisfyAnyPredicates", "name"], + ["css=#root_satisfyAnyPredicates-Yes", "css:finder"], + ["xpath=//input[@id='root_satisfyAnyPredicates-Yes']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[9]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/input", "xpath:position"] ], "value": "" }, { @@ -292,13 +359,12 @@ "id": "a188bc3e-fd98-4d49-ae35-a0b78a17607c", "comment": "", "command": "click", - "target": "css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", + "target": "css=.row:nth-child(1) > .col-12 .toggle-button", "targets": [ - ["css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/reloadableMetadataResolverAttributes/minRefreshDelay-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.row:nth-child(1) > .col-12 .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -312,14 +378,16 @@ "id": "a159e056-c870-4e02-a7e9-4b3a60d83718", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/minRefreshDelay__option--1", + "target": "id=option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "targets": [ - ["id=/reloadableMetadataResolverAttributes/minRefreshDelay__option--1", "id"], - ["css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay__option--1", "css:finder"], - ["xpath=//li[@id='/reloadableMetadataResolverAttributes/minRefreshDelay__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/reloadableMetadataResolverAttributes/minRefreshDelay__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'PT30S')]", "xpath:innerText"] + ["id=option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { @@ -333,11 +401,12 @@ "id": "7a72cf6a-c97a-49f6-83d0-cbe42f0fdb7d", "comment": "", "command": "click", - "target": "css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay-container .btn", + "target": "css=.row:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay-container .fa", "css:finder"], - ["xpath=//div[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay-container']/div/div/button/i", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button/i", "xpath:position"] + ["css=.row:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -351,26 +420,29 @@ "id": "820397f5-aabb-46f5-a65a-56747ce29091", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/maxRefreshDelay__option--3", + "target": "id=option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3", "targets": [ - ["id=/reloadableMetadataResolverAttributes/maxRefreshDelay__option--3", "id"], - ["css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay__option--3", "css:finder"], - ["xpath=//li[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3", "id"], + ["linkText=PT10M", "linkText"], + ["css=#option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'PT10M')]", "xpath:innerText"] ], "value": "" }, { "id": "b036a851-4ac9-43cb-8686-8e78ed940d72", "comment": "", "command": "type", - "target": "id=/reloadableMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "targets": [ - ["id=/reloadableMetadataResolverAttributes/refreshDelayFactor", "id"], - ["name=field20", "name"], - ["css=#\\/reloadableMetadataResolverAttributes\\/refreshDelayFactor", "css:finder"], - ["xpath=//input[@id='/reloadableMetadataResolverAttributes/refreshDelayFactor']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "id"], + ["css=#root_reloadableMetadataResolverAttributes_refreshDelayFactor", "css:finder"], + ["xpath=//input[@id='root_reloadableMetadataResolverAttributes_refreshDelayFactor']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "0.5" }, { @@ -384,23 +456,22 @@ ], "value": "" }, { - "id": "0bc204b3-2adb-4446-899b-0665619aaec1", + "id": "f4376824-f72c-40c1-8b78-f1de5d8d9d06", "comment": "", "command": "pause", "target": "500", "targets": [], "value": "" }, { - "id": "232da257-962f-4a4b-8213-038ef90c96c3", + "id": "bb542739-db7f-4386-8d46-3438f7afd4e1", "comment": "", "command": "click", - "target": "css=.btn-outline-secondary", + "target": "css=.toggle-button", "targets": [ - ["css=.btn-outline-secondary", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div/div/div/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -414,114 +485,120 @@ "id": "b8d999f1-0c59-4a9a-9991-91d222f52b8e", "comment": "", "command": "click", - "target": "id=/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1", + "target": "id=option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "targets": [ - ["id=/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1", "id"], - ["css=#\\/metadataFilters\\/RequiredValidUntil\\/maxValidityInterval__option--1", "css:finder"], - ["xpath=//li[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'P14D')]", "xpath:innerText"] + ["id=option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_metadataFilters_0_maxValidityInterval-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_metadataFilters_0_maxValidityInterval']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { "id": "8af1abb5-2c7a-4a4c-a8f7-0eb287100dde", "comment": "", "command": "click", - "target": "id=/metadataFilters/SignatureValidation/requireSignedRoot", + "target": "id=root_metadataFilters_1_requireSignedRoot", "targets": [ - ["css=div:nth-child(1) > sf-form-element > .has-success .custom-control-label", "css:finder"], - ["xpath=//div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Require Signed Root')]", "xpath:innerText"] + ["id=root_metadataFilters_1_requireSignedRoot", "id"], + ["css=#root_metadataFilters_1_requireSignedRoot", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_1_requireSignedRoot']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "323a2a02-9111-4064-8bb0-a3da34330e54", "comment": "", "command": "type", - "target": "id=/metadataFilters/SignatureValidation/certificateFile", - "targets": [], + "target": "id=root_metadataFilters_1_certificateFile", + "targets": [ + ["id=root_metadataFilters_1_certificateFile", "id"], + ["css=#root_metadataFilters_1_certificateFile", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_1_certificateFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] + ], "value": "%{idp.home}/foo.txt" }, { "id": "a125e601-f306-441d-9c8c-e97b95817b46", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//array-component/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "74d696db-3f3b-4ff3-a180-34baceb469a2", "comment": "", "command": "select", - "target": "id=/metadataFilters/EntityRoleWhiteList/retainedRoles/0", - "targets": [], - "value": "label=SPSSODescriptor" - }, { - "id": "532bf2e5-13fc-48d7-b01b-ff16207a554d", - "comment": "", - "command": "click", - "target": "css=option:nth-child(2)", + "target": "id=root_metadataFilters_2_retainedRoles_0", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: md:SPSSODescriptor']", "xpath:attributes"], - ["xpath=//select[@id='/metadataFilters/EntityRoleWhiteList/retainedRoles/0']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'SPSSODescriptor')]", "xpath:innerText"] + ["id=root_metadataFilters_2_retainedRoles_0", "id"], + ["css=#root_metadataFilters_2_retainedRoles_0", "css:finder"], + ["xpath=//select[@id='root_metadataFilters_2_retainedRoles_0']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], - "value": "" + "value": "label=SPSSODescriptor" }, { "id": "12cf80c9-594c-4c4d-bf26-aa36ba636220", "comment": "", "command": "click", - "target": "css=.fa-plus", + "target": "css=.array-add-button", "targets": [ - ["css=.fa-plus", "css:finder"], - ["xpath=//array-component/div/div/button/i", "xpath:position"] - ], - "value": "" - }, { - "id": "6cb9854b-293b-482d-8c07-4b7c638d79cb", - "comment": "", - "command": "click", - "target": "css=#\\/metadataFilters\\/EntityRoleWhiteList\\/retainedRoles\\/1 > option:nth-child(1)", - "targets": [ - ["css=#\\/metadataFilters\\/EntityRoleWhiteList\\/retainedRoles\\/1 > option:nth-child(1)", "css:finder"], - ["xpath=(//option[@value=''])[2]", "xpath:attributes"], - ["xpath=//select[@id='/metadataFilters/EntityRoleWhiteList/retainedRoles/1']/option", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/select-component/div/select/option", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "f366c86c-1420-4fb7-86c2-82c49d81208d", "comment": "", "command": "select", - "target": "id=/metadataFilters/EntityRoleWhiteList/retainedRoles/1", - "targets": [], + "target": "id=root_metadataFilters_2_retainedRoles_1", + "targets": [ + ["id=root_metadataFilters_2_retainedRoles_1", "id"], + ["css=#root_metadataFilters_2_retainedRoles_1", "css:finder"], + ["xpath=//select[@id='root_metadataFilters_2_retainedRoles_1']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div[2]/div[2]/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/select", "xpath:position"] + ], "value": "label=AttributeAuthorityDescriptor" }, { "id": "5dfac033-ecfd-42e8-aa6f-931d5acd4d89", "comment": "", "command": "click", - "target": "id=/metadataFilters/EntityRoleWhiteList/removeRolelessEntityDescriptors", + "target": "id=root_metadataFilters_2_removeRolelessEntityDescriptors", "targets": [ - ["css=div:nth-child(2) > sf-form-element > .has-success > sf-widget-chooser > checkbox-component .custom-control-label", "css:finder"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Remove Roleless Entity Descriptors?')]", "xpath:innerText"] + ["id=root_metadataFilters_2_removeRolelessEntityDescriptors", "id"], + ["css=#root_metadataFilters_2_removeRolelessEntityDescriptors", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_2_removeRolelessEntityDescriptors']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[3]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "9d5934f0-fe10-4539-9d71-80b454fc8612", "comment": "", "command": "click", - "target": "id=/metadataFilters/EntityRoleWhiteList/removeEmptyEntitiesDescriptors", + "target": "id=root_metadataFilters_2_removeEmptyEntitiesDescriptors", "targets": [ - ["css=div:nth-child(3) > sf-form-element > .has-success > sf-widget-chooser > checkbox-component .custom-control-label", "css:finder"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Remove Empty Entities Descriptors?')]", "xpath:innerText"] + ["id=root_metadataFilters_2_removeEmptyEntitiesDescriptors", "id"], + ["css=#root_metadataFilters_2_removeEmptyEntitiesDescriptors", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_2_removeEmptyEntitiesDescriptors']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[4]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { @@ -534,21 +611,14 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "79b96f40-2677-438a-9564-62df0ea2c116", - "comment": "", - "command": "click", - "target": "css=.custom-control-label", - "targets": [], - "value": "" }, { "id": "52f5680c-c63d-411e-8332-52901f12ea3b", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(1) primitive-property:nth-child(1) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(1) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(1) primitive-property:nth-child(1) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], + ["css=.mb-4:nth-child(1) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], ["xpath=//div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'Test Metadata Provider')]", "xpath:innerText"] ], @@ -557,11 +627,11 @@ "id": "67ff44aa-1efd-4b13-a0e9-3648a09911dd", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(2) primitive-property:nth-child(1) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(2) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(2) primitive-property:nth-child(1) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[2]/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], - ["xpath=//section[2]/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:position"], + ["css=.mb-4:nth-child(2) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[2]/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], + ["xpath=//section[2]/div/div[2]/div[2]/div/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'123')]", "xpath:innerText"] ], "value": "123" @@ -575,64 +645,65 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "5cee98ef-08bf-4eea-940d-9c29ebb241ef", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" }, { "id": "1067b0b4-8aff-4972-b6f5-e4479eca9150", "comment": "", "command": "waitForElementPresent", - "target": "css=.d-block > primitive-property:nth-child(1) .text-truncate", + "target": "css=.align-middle:nth-child(2)", "targets": [ - ["css=.badge > span", "css:finder"], - ["xpath=//span/span", "xpath:position"] + ["css=.align-middle:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]", "xpath:idRelative"], + ["xpath=//td[2]", "xpath:position"], + ["xpath=//td[contains(.,'Test Metadata Provider')]", "xpath:innerText"] ], "value": "10000" }, { "id": "f48dd1b5-607a-485b-b1d5-03301f99b9ce", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(1) .text-truncate", + "target": "css=.align-middle:nth-child(2)", "targets": [ - ["css=.d-block > primitive-property:nth-child(1) .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], - ["xpath=//div/span[2]", "xpath:position"] + ["css=.align-middle:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]", "xpath:idRelative"], + ["xpath=//td[2]", "xpath:position"], + ["xpath=//td[contains(.,'Test Metadata Provider')]", "xpath:innerText"] ], "value": "Test Metadata Provider" }, { "id": "5eccd4e9-a451-4ec8-a9e1-1e1f8e771677", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(2) .text-truncate", + "target": "css=.align-middle:nth-child(3)", "targets": [ - ["css=.d-block > primitive-property:nth-child(2) .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property[2]/div/div/span[2]", "xpath:idRelative"], - ["xpath=//primitive-property[2]/div/div/span[2]", "xpath:position"], - ["xpath=//span[contains(.,'FileBackedHttpMetadataResolver')]", "xpath:innerText"] + ["css=.align-middle:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[3]", "xpath:idRelative"], + ["xpath=//td[3]", "xpath:position"], + ["xpath=//td[contains(.,'FileBackedHttpMetadataResolver')]", "xpath:innerText"] ], "value": "FileBackedHttpMetadataResolver" }, { "id": "c768c2c1-09d4-46fe-8007-42fb4b3f4aaa", "comment": "", "command": "assertText", - "target": "css=.author", + "target": "css=.align-middle:nth-child(4)", "targets": [ - ["css=.author", "css:finder"], - ["xpath=//div[@id='header']/metadata-header/div/div/h5/span[2]", "xpath:idRelative"], - ["xpath=//span[2]", "xpath:position"], - ["xpath=//span[contains(.,'admin')]", "xpath:innerText"] + ["css=.align-middle:nth-child(4)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[4]", "xpath:idRelative"], + ["xpath=//td[4]", "xpath:position"], + ["xpath=//td[contains(.,'admin')]", "xpath:innerText"] ], "value": "admin" }, { "id": "fe1e9381-048e-4948-8a9a-f58d8afba258", "comment": "", "command": "storeText", - "target": "css=.save-date", - "targets": [], + "target": "css=.align-middle:nth-child(5)", + "targets": [ + ["css=.align-middle:nth-child(5)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[5]", "xpath:idRelative"], + ["xpath=//td[5]", "xpath:position"], + ["xpath=//td[contains(.,'Jun 22, 2021')]", "xpath:innerText"] + ], "value": "saveDate" }, { "id": "a7b73d1f-87bb-4364-944a-5097f981b8c9", @@ -648,43 +719,65 @@ "target": "isDate", "targets": [], "value": "true" + }, { + "id": "748bf353-6658-4c78-a497-d37a160e5a09", + "comment": "", + "command": "click", + "target": "linkText=Test Metadata Provider", + "targets": [ + ["linkText=Test Metadata Provider", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'Test Metadata Provider')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/c0c833ef-663f-474b-8c24-27d52dc2acbd/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Test Metadata Provider')]", "xpath:innerText"] + ], + "value": "" }, { "id": "67578648-0800-4716-8c0c-27741770249a", "comment": "", "command": "click", - "target": "css=.mb-4:nth-child(1) .actions span", + "target": "css=.mb-4:nth-child(3) .edit-link", "targets": [ - ["css=.mb-4:nth-child(1) .actions span", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div/div/button/span", "xpath:idRelative"], - ["xpath=//div/button/span", "xpath:position"], - ["xpath=//span[contains(.,'Edit')]", "xpath:innerText"] + ["css=.mb-4:nth-child(3) .edit-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div/div/button", "xpath:idRelative"], + ["xpath=//section/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Edit')]", "xpath:innerText"] ], "value": "" }, { "id": "6a917493-6dfa-4126-ba9b-207f9c670867", "comment": "", "command": "waitForElementVisible", - "target": "id=/xmlId", - "targets": [], + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/input", "xpath:position"] + ], "value": "10000" }, { - "id": "0aae114c-3e79-4d57-8f40-e669887a8545", + "id": "875232f2-bfa0-41f8-8de1-b2cc72373373", "comment": "", - "command": "pause", - "target": "2000", + "command": "type", + "target": "id=root_xmlId", "targets": [], "value": "" }, { "id": "7d641e58-47ce-4d20-908c-e0002ff73cfa", "comment": "", "command": "type", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ - ["id=/xmlId", "id"], - ["name=field38", "name"], - ["css=#\\/xmlId", "css:finder"], - ["xpath=//input[@id='/xmlId']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/input", "xpath:position"] ], "value": "123 v2" }, { @@ -698,12 +791,13 @@ "id": "247b04c1-e690-42bc-ae15-dfbedb44d2e9", "comment": "", "command": "click", - "target": "id=/satisfyAnyPredicates.false", + "target": "id=root_satisfyAnyPredicates-No", "targets": [ - ["id=/satisfyAnyPredicates.false", "id"], - ["css=#\\/satisfyAnyPredicates\\.false", "css:finder"], - ["xpath=//input[@id='/satisfyAnyPredicates.false']", "xpath:attributes"], - ["xpath=//div[10]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_satisfyAnyPredicates-No", "id"], + ["css=#root_satisfyAnyPredicates-No", "css:finder"], + ["xpath=//input[@id='root_satisfyAnyPredicates-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div[3]/div[9]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { @@ -727,20 +821,29 @@ }, { "id": "7e42b8b2-cc31-4fb5-bcf8-77d8068e2e04", "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" + "command": "waitForElementVisible", + "target": "linkText=Version History", + "targets": [ + ["linkText=Version History", "linkText"], + ["css=div:nth-child(1) > .btn-link:nth-child(1)", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/c0c833ef-663f-474b-8c24-27d52dc2acbd/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] + ], + "value": "30000" }, { "id": "ea880e6a-498a-427a-bc08-8058137d62e0", "comment": "", "command": "click", - "target": "css=.btn-link:nth-child(1)", + "target": "linkText=Version History", "targets": [ - ["css=.btn-link:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/a/translate-i18n", "xpath:idRelative"], - ["xpath=//div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Version History')]", "xpath:innerText"] + ["linkText=Version History", "linkText"], + ["css=div:nth-child(1) > .btn-link:nth-child(1)", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/c0c833ef-663f-474b-8c24-27d52dc2acbd/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] ], "value": "" }, { @@ -754,13 +857,6 @@ ["xpath=//button[contains(.,'  Restore')]", "xpath:innerText"] ], "value": "10000" - }, { - "id": "271939a6-6196-4c14-aa13-e6c31e0373c2", - "comment": "", - "command": "pause", - "target": "5000", - "targets": [], - "value": "" }, { "id": "c223e329-733c-41eb-9e85-c6f69a840179", "comment": "", @@ -797,36 +893,59 @@ "id": "ce328b6a-f6ee-45e9-975c-5a5608f373dc", "comment": "", "command": "waitForElementVisible", - "target": "css=.d-block > primitive-property:nth-child(2) .d-block:nth-child(2)", - "targets": [], + "target": "css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", + "targets": [ + ["css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[3]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'123 v2')]", "xpath:innerText"] + ], "value": "10000" }, { "id": "68103f0e-e3f1-419b-903d-5d8c30bc6700", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(4) .d-block:nth-child(2)", - "targets": [], + "target": "css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", + "targets": [ + ["css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[3]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'123 v2')]", "xpath:innerText"] + ], "value": "123 v2" }, { "id": "a13198b9-7827-47e2-ade3-143b981d34ee", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(4) .d-block:nth-child(3)", - "targets": [], + "target": "css=div:nth-child(3) > .bg-diff > .d-block:nth-child(3)", + "targets": [ + ["css=div:nth-child(3) > .bg-diff > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[3]/div/span[3]", "xpath:idRelative"], + ["xpath=//div[3]/div/span[3]", "xpath:position"] + ], "value": "123" }, { "id": "3d83741c-299e-4fcb-9ce6-4b7291c423a4", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(12) .d-block:nth-child(2)", - "targets": [], + "target": "css=div:nth-child(11) > .bg-diff > .d-block:nth-child(2)", + "targets": [ + ["css=div:nth-child(11) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[11]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[11]/div/span[2]", "xpath:position"] + ], "value": "false" }, { "id": "190cc157-d427-4046-aff2-180392395ad3", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(12) .d-block:nth-child(3)", - "targets": [], + "target": "css=div:nth-child(11) > .bg-diff > .d-block:nth-child(3)", + "targets": [ + ["css=div:nth-child(11) > .bg-diff > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[11]/div/span[3]", "xpath:idRelative"], + ["xpath=//div[11]/div/span[3]", "xpath:position"], + ["xpath=//span[contains(.,'true')]", "xpath:innerText"] + ], "value": "true" }, { "id": "f6897c4f-763f-4360-95a2-1d144455fa17", @@ -872,11 +991,12 @@ "id": "c9341f6f-4d13-4378-bb5c-0079e7535008", "comment": "", "command": "click", - "target": "css=.mb-4:nth-child(4) .actions span", + "target": "css=.mb-4:nth-child(6) .edit-link", "targets": [ - ["css=.mb-4:nth-child(4) .actions span", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[4]/div/div/div/button/span", "xpath:idRelative"], - ["xpath=//section[4]/div/div/div/button/span", "xpath:position"] + ["css=.mb-4:nth-child(6) .edit-link", "css:finder"], + ["xpath=(//button[@type='button'])[8]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[4]/div/div/div/button", "xpath:idRelative"], + ["xpath=//section[4]/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -890,11 +1010,13 @@ "id": "1cde012c-d521-4fd5-a7d5-7a680bba0e7b", "comment": "", "command": "click", - "target": "css=.slider", + "target": "id=custom-switch", "targets": [ - ["css=.slider", "css:finder"], - ["xpath=//toggle-switch[@id='toggle']/label/span", "xpath:idRelative"], - ["xpath=//label/span", "xpath:position"] + ["id=custom-switch", "id"], + ["css=#custom-switch", "css:finder"], + ["xpath=//input[@id='custom-switch']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { @@ -908,13 +1030,12 @@ "id": "d00ecf98-7425-467c-acbb-3b39918e3462", "comment": "", "command": "click", - "target": "css=#\\/httpMetadataResolverAttributes\\/connectionRequestTimeout-container .btn", + "target": "css=.form-group:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/httpMetadataResolverAttributes\\/connectionRequestTimeout-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/httpMetadataResolverAttributes/connectionRequestTimeout-container']/div/div/button", "xpath:idRelative"], - ["xpath=//auto-complete/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.form-group:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div[2]/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -928,14 +1049,16 @@ "id": "8ba62572-354d-47f4-bb72-f9309c1cb201", "comment": "", "command": "click", - "target": "id=/httpMetadataResolverAttributes/connectionRequestTimeout__option--1", + "target": "id=option-selector-root_httpMetadataResolverAttributes_connectionRequestTimeout-item-1", "targets": [ - ["id=/httpMetadataResolverAttributes/connectionRequestTimeout__option--1", "id"], - ["css=#\\/httpMetadataResolverAttributes\\/connectionRequestTimeout__option--1", "css:finder"], - ["xpath=//li[@id='/httpMetadataResolverAttributes/connectionRequestTimeout__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/httpMetadataResolverAttributes/connectionRequestTimeout__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'PT30S')]", "xpath:innerText"] + ["id=option-selector-root_httpMetadataResolverAttributes_connectionRequestTimeout-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_httpMetadataResolverAttributes_connectionRequestTimeout-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_httpMetadataResolverAttributes_connectionRequestTimeout-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_httpMetadataResolverAttributes_connectionRequestTimeout']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { @@ -949,12 +1072,12 @@ "id": "d7406190-0bb0-4df8-9c0b-7e393952b6a2", "comment": "", "command": "click", - "target": "css=#\\/httpMetadataResolverAttributes\\/connectionTimeout-container .btn", + "target": "css=.form-group:nth-child(3) .toggle-button", "targets": [ - ["css=#\\/httpMetadataResolverAttributes\\/connectionTimeout-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/httpMetadataResolverAttributes/connectionTimeout-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.form-group:nth-child(3) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[15]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div[2]/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div[2]/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -968,13 +1091,16 @@ "id": "337ac160-7990-425f-83da-2788d8a0985e", "comment": "", "command": "click", - "target": "id=/httpMetadataResolverAttributes/connectionTimeout__option--2", + "target": "id=option-selector-root_httpMetadataResolverAttributes_connectionTimeout-item-2", "targets": [ - ["id=/httpMetadataResolverAttributes/connectionTimeout__option--2", "id"], - ["css=#\\/httpMetadataResolverAttributes\\/connectionTimeout__option--2", "css:finder"], - ["xpath=//li[@id='/httpMetadataResolverAttributes/connectionTimeout__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/httpMetadataResolverAttributes/connectionTimeout__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_httpMetadataResolverAttributes_connectionTimeout-item-2", "id"], + ["linkText=PT1M", "linkText"], + ["css=#option-selector-root_httpMetadataResolverAttributes_connectionTimeout-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_httpMetadataResolverAttributes_connectionTimeout-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_httpMetadataResolverAttributes_connectionTimeout']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'PT1M')]", "xpath:innerText"] ], "value": "" }, { @@ -988,12 +1114,12 @@ "id": "19182110-0f86-4601-ae12-0b90967ef68a", "comment": "", "command": "click", - "target": "css=#\\/httpMetadataResolverAttributes\\/socketTimeout-container .btn", + "target": "css=.form-group:nth-child(4) .toggle-button", "targets": [ - ["css=#\\/httpMetadataResolverAttributes\\/socketTimeout-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], - ["xpath=//div[@id='/httpMetadataResolverAttributes/socketTimeout-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.form-group:nth-child(4) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[17]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div[2]/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div[3]/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1007,13 +1133,16 @@ "id": "34693225-4754-4b27-92ee-3e37304a8cd7", "comment": "", "command": "click", - "target": "id=/httpMetadataResolverAttributes/socketTimeout__option--3", + "target": "id=option-selector-root_httpMetadataResolverAttributes_socketTimeout-item-3", "targets": [ - ["id=/httpMetadataResolverAttributes/socketTimeout__option--3", "id"], - ["css=#\\/httpMetadataResolverAttributes\\/socketTimeout__option--3", "css:finder"], - ["xpath=//li[@id='/httpMetadataResolverAttributes/socketTimeout__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/httpMetadataResolverAttributes/socketTimeout__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_httpMetadataResolverAttributes_socketTimeout-item-3", "id"], + ["linkText=PT10M", "linkText"], + ["css=#option-selector-root_httpMetadataResolverAttributes_socketTimeout-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_httpMetadataResolverAttributes_socketTimeout-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_httpMetadataResolverAttributes_socketTimeout']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'PT10M')]", "xpath:innerText"] ], "value": "" }, { @@ -1031,37 +1160,28 @@ "id": "4e2831c6-d1ba-409d-a0cc-7a25dad75421", "comment": "", "command": "waitForElementVisible", - "target": "css=.d-block > primitive-property:nth-child(1) .text-truncate", + "target": "linkText=Version History", "targets": [ - ["css=.d-block > primitive-property:nth-child(1) .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], - ["xpath=//div/span[2]", "xpath:position"] + ["linkText=Version History", "linkText"], + ["css=div:nth-child(1) > .btn-link:nth-child(1)", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/c0c833ef-663f-474b-8c24-27d52dc2acbd/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] ], "value": "10000" - }, { - "id": "8868c054-2e6a-403e-ba2b-499a56730d71", - "comment": "", - "command": "click", - "target": "css=.d-block > primitive-property:nth-child(1) .text-truncate", - "targets": [ - ["linkText=Test Metadata Provider", "linkText"], - ["css=td > a", "css:finder"], - ["xpath=//a[contains(text(),'Test Metadata Provider')]", "xpath:link"], - ["xpath=//a[contains(@href, '/metadata/provider/eb0ee617-33e2-4a31-83a5-7c42515c3b4f/configuration/options')]", "xpath:href"], - ["xpath=//td[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Test Metadata Provider')]", "xpath:innerText"] - ], - "value": "" }, { "id": "0092cd5c-a885-4a48-a233-b3af447b02bc", "comment": "", "command": "click", - "target": "css=.btn-link:nth-child(1)", + "target": "linkText=Version History", "targets": [ - ["css=.btn-link:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/a/translate-i18n", "xpath:idRelative"], - ["xpath=//div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Version History')]", "xpath:innerText"] + ["linkText=Version History", "linkText"], + ["css=div:nth-child(1) > .btn-link:nth-child(1)", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/c0c833ef-663f-474b-8c24-27d52dc2acbd/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] ], "value": "" }, { @@ -1093,7 +1213,7 @@ "id": "910d8bf9-4875-4946-9ab8-0d3a9b13f020", "comment": "", "command": "executeScript", - "target": "return RegExp(${dateRegex}).test(${saveDate});", + "target": "return RegExp(${dateTimeRegex}).test(${saveDate});", "targets": [], "value": "isDate" }, { @@ -1121,7 +1241,7 @@ "id": "a370624e-a6d6-43d7-a74a-eeb8c577fc06", "comment": "", "command": "executeScript", - "target": "return RegExp(${dateRegex}).test(${saveDate});", + "target": "return RegExp(${dateTimeRegex}).test(${saveDate});", "targets": [], "value": "isDate" }, { @@ -1146,7 +1266,7 @@ "id": "4b305857-0369-4fad-821c-c944e9801395", "comment": "", "command": "executeScript", - "target": "return RegExp(${dateRegex}).test(${saveDate});", + "target": "return RegExp(${dateTimeRegex}).test(${saveDate});", "targets": [], "value": "isDate" }, { @@ -1199,53 +1319,63 @@ "id": "9f1380c3-2b99-4b7d-90b7-f20d4fe431d3", "comment": "", "command": "waitForElementVisible", - "target": "css=.mb-4:nth-child(4) primitive-property:nth-child(2) .d-block:nth-child(2)", - "targets": [], + "target": "css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", + "targets": [ + ["css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[4]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[4]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:position"] + ], "value": "10000" }, { "id": "8a2c6435-d77b-4c87-8e0e-e1ae6d4629b9", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(4) primitive-property:nth-child(2) .d-block:nth-child(2)", - "targets": [], + "target": "css=div:nth-child(1) > div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", + "targets": [ + ["css=div:nth-child(1) > div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[4]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[4]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:position"] + ], "value": "PT30S" }, { "id": "0687fe3f-c1af-4a5a-9708-09b7b92734bc", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(4) primitive-property:nth-child(3) .d-block:nth-child(2)", - "targets": [], + "target": "css=div:nth-child(4) > .bg-diff > .d-block:nth-child(2)", + "targets": [ + ["css=div:nth-child(4) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[4]/div/div[2]/div[2]/div/div[4]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[4]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'PT1M')]", "xpath:innerText"] + ], "value": "PT1M" }, { "id": "a007794f-ab91-47b8-b470-e4294e47a2a7", "comment": "", "command": "assertText", - "target": "css=object-property:nth-child(1) > primitive-property:nth-child(4) .d-block:nth-child(2)", - "targets": [], + "target": "css=div:nth-child(5) > .bg-diff > .d-block:nth-child(2)", + "targets": [ + ["css=div:nth-child(5) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[4]/div/div[2]/div[2]/div/div[5]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[5]/div/span[2]", "xpath:position"] + ], "value": "PT10M" - }, { - "id": "5279bf64-46c1-4376-a527-e19e217b42fa", - "comment": "", - "command": "assertText", - "target": "css=object-property:nth-child(1) > primitive-property:nth-child(5) .d-block:nth-child(2)", - "targets": [], - "value": "false" }, { "id": "cc2f6596-d135-48ef-abab-8f2c4bf44a2c", "comment": "", "command": "storeText", - "target": "css=.mb-4:nth-child(1) strong:nth-child(2) > span", + "target": "css=.mb-4:nth-child(5) strong:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(1) strong:nth-child(2) > span", "css:finder"], - ["xpath=//strong[2]/span", "xpath:position"], - ["xpath=//span[contains(.,'Aug 08, 2019 16:10:01')]", "xpath:innerText"] + ["css=.mb-4:nth-child(5) strong:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[4]/div/div[2]/div/strong[2]", "xpath:idRelative"], + ["xpath=//section[4]/div/div[2]/div/strong[2]", "xpath:position"] ], "value": "leftDate" }, { "id": "c1fda79e-9fa9-4969-92f5-83f9f54b9d3d", "comment": "", "command": "executeScript", - "target": "return RegExp(${dateRegex}).test(${leftDate});", + "target": "return RegExp(${dateTimeRegex}).test(${leftDate});", "targets": [], "value": "leftDateIsDate" }, { @@ -1259,18 +1389,18 @@ "id": "a55513b6-d1dd-4036-9b99-4d03e845d65a", "comment": "", "command": "storeText", - "target": "css=.mb-4:nth-child(1) strong:nth-child(3) > span", + "target": "css=.mb-4:nth-child(5) strong:nth-child(3)", "targets": [ - ["css=.mb-4:nth-child(1) strong:nth-child(3) > span", "css:finder"], - ["xpath=//strong[3]/span", "xpath:position"], - ["xpath=//span[contains(.,'Aug 08, 2019 16:09:55')]", "xpath:innerText"] + ["css=.mb-4:nth-child(5) strong:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[4]/div/div[2]/div/strong[3]", "xpath:idRelative"], + ["xpath=//section[4]/div/div[2]/div/strong[3]", "xpath:position"] ], "value": "rightDate" }, { "id": "dd3a52a4-de8b-4c25-a6e7-81b7ee9f8149", "comment": "", "command": "executeScript", - "target": "return RegExp(${dateRegex}).test(${rightDate});", + "target": "return RegExp(${dateTimeRegex}).test(${rightDate});", "targets": [], "value": "rightDateIsDate" }, { @@ -1280,13 +1410,6 @@ "target": "rightDateIsDate", "targets": [], "value": "true" - }, { - "id": "bc352f8a-9212-4985-80b8-19a3814b5bfd", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1364-1.side b/backend/src/integration/resources/SHIBUI-1364-1.side index 04508d504..1b2d59271 100644 --- a/backend/src/integration/resources/SHIBUI-1364-1.side +++ b/backend/src/integration/resources/SHIBUI-1364-1.side @@ -41,72 +41,132 @@ "id": "358c31ea-fab8-4709-9b25-d9e5e82e123c", "comment": "", "command": "click", - "target": "name=submit", + "target": "css=.btn", "targets": [ - ["name=submit", "name"], - ["css=td:nth-child(1) > input", "css:finder"], - ["xpath=//input[@name='submit']", "xpath:attributes"], - ["xpath=//tr[3]/td/input", "xpath:position"] + ["css=.btn", "css:finder"], + ["xpath=//button[@type='submit']", "xpath:attributes"], + ["xpath=//button", "xpath:position"], + ["xpath=//button[contains(.,'Sign in')]", "xpath:innerText"] ], "value": "" + }, { + "id": "cefca51c-9ff6-4548-90c8-294fa0e2a6a0", + "comment": "", + "command": "pause", + "target": "3000", + "targets": [], + "value": "" + }, { + "id": "4ec2c493-85e4-403b-9b09-031c5728f498", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "e074980a-8f21-4c22-8412-c4b6fcdcd1a4", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "14967816-ba8b-4a5a-8568-e69d8b4114a5", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "fdea3214-f0e0-4f13-9d5d-e07ef92d71f1", "comment": "", "command": "click", - "target": "css=#addNewDropdown", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=#addNewDropdown > translate-i18n", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/translate-i18n", "xpath:idRelative"], - ["xpath=//translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Add New')]", "xpath:innerText"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "2c40ac99-5e92-4c1c-923a-5a6100cadf43", "comment": "", "command": "click", - "target": "linkText=Metadata Provider", + "target": "id=metadata-nav-dropdown-provider", "targets": [ - ["linkText=Metadata Provider", "linkText"], - ["css=.nav-link:nth-child(2)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a[2]", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[3]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"] + ["id=metadata-nav-dropdown-provider", "id"], + ["linkText=Add a new metadata provider", "linkText"], + ["css=#metadata-nav-dropdown-provider", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata provider')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-provider']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/new')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata provider')]", "xpath:innerText"] ], "value": "" }, { "id": "7a42de04-995f-45aa-ba3f-095900a564ec", "comment": "", "command": "waitForElementVisible", - "target": "id=/name", - "targets": [], + "target": "name=name", + "targets": [ + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "b2725ef6-b394-4f87-a2a5-031be085cedb", "comment": "", "command": "type", - "target": "id=/name", + "target": "name=name", "targets": [ - ["id=/name", "id"], - ["name=field4", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "File Backed HTTP Metadata Provider" }, { - "id": "ca36b018-a4df-43d1-9fbd-973d6653d3e0", + "id": "3334358f-2562-4fb9-9d1d-cb0d3e8504c0", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" + }, { + "id": "94f84e8a-a971-495e-a3d8-67bbb5e2d332", + "comment": "", + "command": "click", + "target": "name=type", + "targets": [ + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div[2]/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] + ], + "value": "" + }, { + "id": "180e83fa-0a8d-46a5-9ea3-3daea0ed9ef1", "comment": "", "command": "select", - "target": "id=/type", + "target": "name=type", "targets": [ - ["id=/type", "id"], - ["name=field2", "name"], - ["css=#\\/type", "css:finder"], - ["xpath=//select[@id='/type']", "xpath:attributes"], + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div[2]/select", "xpath:idRelative"], ["xpath=//select", "xpath:position"] ], - "value": "label=FileBackedHttpMetadataProvider" + "value": "label=FileBackedHttpMetadataResolver" }, { "id": "e5d1d696-3029-4f9d-ad53-2e60b4789935", "comment": "", @@ -114,6 +174,8 @@ "target": "css=.next", "targets": [ ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/nav/ul/li[2]/button", "xpath:idRelative"], ["xpath=//li[2]/button", "xpath:position"] ], "value": "" @@ -121,19 +183,25 @@ "id": "352f066f-c2af-4735-81b1-5440ba7a3432", "comment": "", "command": "waitForElementVisible", - "target": "id=/xmlId", - "targets": [], + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "e7462621-f4e4-4512-b200-20afa5685fc6", "comment": "", "command": "type", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ - ["id=/xmlId", "id"], - ["name=field7", "name"], - ["css=#\\/xmlId", "css:finder"], - ["xpath=//input[@id='/xmlId']", "xpath:attributes"], + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "12345" @@ -141,38 +209,39 @@ "id": "7bfaa2a7-c66d-4e36-b1f4-1de30b02ebd0", "comment": "", "command": "type", - "target": "id=/metadataURL", + "target": "id=root_metadataURL", "targets": [ - ["id=/metadataURL", "id"], - ["name=field8", "name"], - ["css=#\\/metadataURL", "css:finder"], - ["xpath=//input[@id='/metadataURL']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_metadataURL", "id"], + ["css=#root_metadataURL", "css:finder"], + ["xpath=//input[@id='root_metadataURL']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "https://idp.unicon.net/idp/shibboleth" }, { "id": "047e1ea4-e28c-4b1b-86fc-ff19a3c0efcc", "comment": "", "command": "click", - "target": "id=/initializeFromBackupFile.false", + "target": "id=root_initializeFromBackupFile-No", "targets": [ - ["id=/initializeFromBackupFile.false", "id"], - ["css=#\\/initializeFromBackupFile\\.false", "css:finder"], - ["xpath=//input[@id='/initializeFromBackupFile.false']", "xpath:attributes"], - ["xpath=//div[2]/label/input", "xpath:position"] + ["id=root_initializeFromBackupFile-No", "id"], + ["css=#root_initializeFromBackupFile-No", "css:finder"], + ["xpath=//input[@id='root_initializeFromBackupFile-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[3]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] ], "value": "" }, { "id": "34124b74-7b90-424a-9219-1f0bfbf06b70", "comment": "", "command": "type", - "target": "id=/backingFile", + "target": "id=root_backingFile", "targets": [ - ["id=/backingFile", "id"], - ["name=field10", "name"], - ["css=#\\/backingFile", "css:finder"], - ["xpath=//input[@id='/backingFile']", "xpath:attributes"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_backingFile", "id"], + ["css=#root_backingFile", "css:finder"], + ["xpath=//input[@id='root_backingFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] ], "value": "%{idp.home}/foo.txt" }, { @@ -186,13 +255,12 @@ "id": "0668032d-608b-4a01-9ac8-e4e2ac058294", "comment": "", "command": "click", - "target": "css=.btn-outline-secondary", + "target": "css=.toggle-button", "targets": [ - ["css=.btn-outline-secondary", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/backupFileInitNextRefreshDelay-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[5]/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -206,38 +274,43 @@ "id": "35dfa0f8-c0f2-4356-a6b0-18b5dc35337b", "comment": "", "command": "click", - "target": "id=/backupFileInitNextRefreshDelay__option--1", + "target": "id=option-selector-root_backupFileInitNextRefreshDelay-item-1", "targets": [ - ["id=/backupFileInitNextRefreshDelay__option--1", "id"], - ["css=#\\/backupFileInitNextRefreshDelay__option--1", "css:finder"], - ["xpath=//li[@id='/backupFileInitNextRefreshDelay__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/backupFileInitNextRefreshDelay__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'PT30S')]", "xpath:innerText"] + ["id=option-selector-root_backupFileInitNextRefreshDelay-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_backupFileInitNextRefreshDelay-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_backupFileInitNextRefreshDelay-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_backupFileInitNextRefreshDelay']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { "id": "b4d0a551-3bc1-466f-b204-ec7164af44ec", "comment": "", "command": "click", - "target": "id=/failFastInitialization.false", + "target": "id=root_failFastInitialization-No", "targets": [ - ["id=/failFastInitialization.false", "id"], - ["css=#\\/failFastInitialization\\.false", "css:finder"], - ["xpath=//input[@id='/failFastInitialization.false']", "xpath:attributes"], - ["xpath=//div[7]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_failFastInitialization-No", "id"], + ["css=#root_failFastInitialization-No", "css:finder"], + ["xpath=//input[@id='root_failFastInitialization-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[7]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "bef80dbb-25a6-4381-8b0e-331faaeb4392", "comment": "", "command": "click", - "target": "id=/satisfyAnyPredicates.true", + "target": "id=root_satisfyAnyPredicates-Yes", "targets": [ - ["id=/satisfyAnyPredicates.true", "id"], - ["css=#\\/satisfyAnyPredicates\\.true", "css:finder"], - ["xpath=//input[@id='/satisfyAnyPredicates.true']", "xpath:attributes"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div/label/input", "xpath:position"] + ["id=root_satisfyAnyPredicates-Yes", "id"], + ["name=root_satisfyAnyPredicates", "name"], + ["css=#root_satisfyAnyPredicates-Yes", "css:finder"], + ["xpath=//input[@id='root_satisfyAnyPredicates-Yes']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[9]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/input", "xpath:position"] ], "value": "" }, { @@ -275,13 +348,12 @@ "id": "824b4515-ae14-436e-a56f-d631ea9e1edc", "comment": "", "command": "click", - "target": "css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", + "target": "css=.row:nth-child(1) > .col-12 .toggle-button", "targets": [ - ["css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/reloadableMetadataResolverAttributes/minRefreshDelay-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.row:nth-child(1) > .col-12 .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -295,14 +367,16 @@ "id": "9ee7065a-823e-4b4a-b212-0582eeaf7a00", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/minRefreshDelay__option--0", + "target": "id=option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-0", "targets": [ - ["id=/reloadableMetadataResolverAttributes/minRefreshDelay__option--0", "id"], - ["css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay__option--0", "css:finder"], - ["xpath=//li[@id='/reloadableMetadataResolverAttributes/minRefreshDelay__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/reloadableMetadataResolverAttributes/minRefreshDelay__listbox']/li", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li", "xpath:position"], - ["xpath=//li[contains(.,'PT0S')]", "xpath:innerText"] + ["id=option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-0", "id"], + ["linkText=PT0S", "linkText"], + ["css=#option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'PT0S')]", "xpath:innerText"] ], "value": "" }, { @@ -316,12 +390,12 @@ "id": "618cc5f1-417b-4bc6-9388-3238f2304904", "comment": "", "command": "click", - "target": "css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay-container .btn", + "target": "css=.row:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -335,39 +409,42 @@ "id": "a89f1b4d-10bd-48f7-9b97-865710cfe01f", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/maxRefreshDelay__option--2", + "target": "id=option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-2", "targets": [ - ["id=/reloadableMetadataResolverAttributes/maxRefreshDelay__option--2", "id"], - ["css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay__option--2", "css:finder"], - ["xpath=//li[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-2", "id"], + ["linkText=PT1M", "linkText"], + ["css=#option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'PT1M')]", "xpath:innerText"] ], "value": "" }, { "id": "143b781c-56ae-48c6-a7f5-8c93953f6095", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "targets": [ - ["id=/reloadableMetadataResolverAttributes/refreshDelayFactor", "id"], - ["name=field20", "name"], - ["css=#\\/reloadableMetadataResolverAttributes\\/refreshDelayFactor", "css:finder"], - ["xpath=//input[@id='/reloadableMetadataResolverAttributes/refreshDelayFactor']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "id"], + ["css=#root_reloadableMetadataResolverAttributes_refreshDelayFactor", "css:finder"], + ["xpath=//input[@id='root_reloadableMetadataResolverAttributes_refreshDelayFactor']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "dcd01c7a-f733-4977-9cc2-e9084903e079", "comment": "", "command": "type", - "target": "id=/reloadableMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "targets": [ - ["id=/reloadableMetadataResolverAttributes/refreshDelayFactor", "id"], - ["name=field20", "name"], - ["css=#\\/reloadableMetadataResolverAttributes\\/refreshDelayFactor", "css:finder"], - ["xpath=//input[@id='/reloadableMetadataResolverAttributes/refreshDelayFactor']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "id"], + ["css=#root_reloadableMetadataResolverAttributes_refreshDelayFactor", "css:finder"], + ["xpath=//input[@id='root_reloadableMetadataResolverAttributes_refreshDelayFactor']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "0.5" }, { @@ -381,162 +458,156 @@ ], "value": "" }, { - "id": "faf43746-1293-437f-a1ce-63145f5d6135", + "id": "a14576bb-2d15-4e51-89c6-b8289311e58a", "comment": "", "command": "pause", "target": "1500", "targets": [], "value": "" }, { - "id": "363af92e-0327-47b9-918c-1560adab40cc", + "id": "a4ff078a-48ec-47c6-a67f-f562f7a2b02c", "comment": "", "command": "click", - "target": "css=.btn-outline-secondary", + "target": "css=.toggle-button", "targets": [ - ["css=.btn-outline-secondary", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div/div/div/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" - }, { - "id": "a14576bb-2d15-4e51-89c6-b8289311e58a", - "comment": "", - "command": "pause", - "target": "1500", - "targets": [], - "value": "" }, { "id": "a4470d6f-04a7-4c4b-8c1e-70cff2f35e8a", "comment": "", "command": "click", - "target": "id=/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1", + "target": "id=option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "targets": [ - ["id=/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1", "id"], - ["css=#\\/metadataFilters\\/RequiredValidUntil\\/maxValidityInterval__option--1", "css:finder"], - ["xpath=//li[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'P14D')]", "xpath:innerText"] + ["id=option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_metadataFilters_0_maxValidityInterval-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_metadataFilters_0_maxValidityInterval']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { "id": "4530c1b4-8f27-4272-9633-c792a3a54f90", "comment": "", "command": "click", - "target": "id=/metadataFilters/SignatureValidation/requireSignedRoot", + "target": "id=root_metadataFilters_1_requireSignedRoot", "targets": [ - ["css=#\\/metadataFilters\\/SignatureValidation\\/requireSignedRoot\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/metadataFilters/SignatureValidation/requireSignedRoot.parent']/label", "xpath:idRelative"], - ["xpath=//div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Require Signed Root')]", "xpath:innerText"] + ["id=root_metadataFilters_1_requireSignedRoot", "id"], + ["css=#root_metadataFilters_1_requireSignedRoot", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_1_requireSignedRoot']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "10cd8cee-fc6a-4e5b-a11b-a7b0a9338f5d", "comment": "", "command": "type", - "target": "id=/metadataFilters/SignatureValidation/certificateFile", + "target": "id=root_metadataFilters_1_certificateFile", "targets": [ - ["id=/metadataFilters/SignatureValidation/certificateFile", "id"], - ["name=field27", "name"], - ["css=#\\/metadataFilters\\/SignatureValidation\\/certificateFile", "css:finder"], - ["xpath=//input[@id='/metadataFilters/SignatureValidation/certificateFile']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_metadataFilters_1_certificateFile", "id"], + ["css=#root_metadataFilters_1_certificateFile", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_1_certificateFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "%{idp.home}/foo2.txt" }, { - "id": "a3ce889f-0607-4071-bd39-25b169c30114", + "id": "cfefd461-2a9f-45bd-8009-eba5e2a5f279", "comment": "", "command": "click", - "target": "css=div:nth-child(3) > sf-form-element .bg-light", + "target": "css=.array-add-button", "targets": [ - ["css=div:nth-child(3) > sf-form-element .bg-light", "css:finder"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/fieldset-object/div/div/fieldset/div", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { - "id": "f205ec23-b433-44bb-af80-e72330b4c7a3", + "id": "4cfca7fa-34db-47c9-9076-db799b49511e", "comment": "", "command": "click", - "target": "css=.fa-plus", + "target": "id=root_metadataFilters_2_retainedRoles_0", "targets": [ - ["css=.fa-plus", "css:finder"], - ["xpath=//array-component/div/div/button/i", "xpath:position"] + ["id=root_metadataFilters_2_retainedRoles_0", "id"], + ["css=#root_metadataFilters_2_retainedRoles_0", "css:finder"], + ["xpath=//select[@id='root_metadataFilters_2_retainedRoles_0']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], "value": "" }, { - "id": "4dae6914-ae68-45e2-b332-cc4c1ac71e43", + "id": "5ba86ad0-04c7-48bb-8be8-66611540dffd", "comment": "", "command": "select", - "target": "id=/metadataFilters/EntityRoleWhiteList/retainedRoles/0", + "target": "id=root_metadataFilters_2_retainedRoles_0", "targets": [], "value": "label=SPSSODescriptor" }, { - "id": "4b257d69-1948-4c5f-a88d-b1bfa8f2ba72", + "id": "bab64d21-7733-4c45-8b3a-1c4354d8b936", "comment": "", "command": "click", - "target": "css=option:nth-child(2)", + "target": "css=.array-add-button", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: md:SPSSODescriptor']", "xpath:attributes"], - ["xpath=//select[@id='/metadataFilters/EntityRoleWhiteList/retainedRoles/0']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'SPSSODescriptor')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { - "id": "d47fc8b5-4062-4813-90a8-cdc91b777f1d", + "id": "daebe1ec-bafe-4505-91bd-7058b059ecca", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "id=root_metadataFilters_2_retainedRoles_1", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["id=root_metadataFilters_2_retainedRoles_2", "id"], + ["css=#root_metadataFilters_2_retainedRoles_2", "css:finder"], + ["xpath=//select[@id='root_metadataFilters_2_retainedRoles_2']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div[2]/div[3]/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/select", "xpath:position"] ], "value": "" }, { - "id": "442c5b8d-f108-488e-8779-06171f5081f6", + "id": "030e5bcb-60ca-4aa5-82c3-8f48b0039d7b", "comment": "", "command": "select", - "target": "id=/metadataFilters/EntityRoleWhiteList/retainedRoles/1", + "target": "id=root_metadataFilters_2_retainedRoles_1", "targets": [], "value": "label=AttributeAuthorityDescriptor" }, { "id": "42eddc22-9eed-41d1-aaee-2d4a1d933fa9", "comment": "", "command": "click", - "target": "css=#\\/metadataFilters\\/EntityRoleWhiteList\\/retainedRoles\\/1 > option:nth-child(3)", + "target": "id=root_metadataFilters_2_removeRolelessEntityDescriptors", "targets": [ - ["css=#\\/metadataFilters\\/EntityRoleWhiteList\\/retainedRoles\\/1 > option:nth-child(3)", "css:finder"], - ["xpath=(//option[@value='2: md:AttributeAuthorityDescriptor'])[2]", "xpath:attributes"], - ["xpath=//select[@id='/metadataFilters/EntityRoleWhiteList/retainedRoles/1']/option[3]", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/select-component/div/select/option[3]", "xpath:position"] + ["id=root_metadataFilters_2_removeRolelessEntityDescriptors", "id"], + ["css=#root_metadataFilters_2_removeRolelessEntityDescriptors", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_2_removeRolelessEntityDescriptors']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[3]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "4ebbc08c-ee24-43d8-8c2d-b639a625189c", "comment": "", "command": "click", - "target": "css=#\\/metadataFilters\\/EntityRoleWhiteList\\/removeRolelessEntityDescriptors\\.parent > .custom-control-label", + "target": "id=root_metadataFilters_2_removeEmptyEntitiesDescriptors", "targets": [ - ["css=#\\/metadataFilters\\/EntityRoleWhiteList\\/removeRolelessEntityDescriptors\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/metadataFilters/EntityRoleWhiteList/removeRolelessEntityDescriptors.parent']/label", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Remove Roleless Entity Descriptors?')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "1c23c527-46e7-4fe6-8f60-37833af073c8", - "comment": "", - "command": "click", - "target": "css=#\\/metadataFilters\\/EntityRoleWhiteList\\/removeEmptyEntitiesDescriptors\\.parent > .custom-control-label", - "targets": [ - ["css=#\\/metadataFilters\\/EntityRoleWhiteList\\/removeEmptyEntitiesDescriptors\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/metadataFilters/EntityRoleWhiteList/removeEmptyEntitiesDescriptors.parent']/label", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Remove Empty Entities Descriptors?')]", "xpath:innerText"] + ["id=root_metadataFilters_2_removeEmptyEntitiesDescriptors", "id"], + ["css=#root_metadataFilters_2_removeEmptyEntitiesDescriptors", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_2_removeEmptyEntitiesDescriptors']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[4]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { @@ -549,18 +620,6 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "7cd861ea-d86c-4faa-a07b-c1508811b506", - "comment": "", - "command": "click", - "target": "css=.custom-control-label", - "targets": [ - ["css=.custom-control-label", "css:finder"], - ["xpath=//div[@id='/enabled.parent']/label", "xpath:idRelative"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Enable this service?')]", "xpath:innerText"] - ], - "value": "" }, { "id": "0c112a41-8feb-42da-a58b-8fc04e9a3bf6", "comment": "", @@ -575,32 +634,63 @@ "id": "daa2d46a-d238-4a48-aca7-0f34c9b93d5f", "comment": "", "command": "click", - "target": "css=.btn:nth-child(2) > translate-i18n", + "target": "linkText=File Backed HTTP Metadata Provider", "targets": [ - ["css=.btn:nth-child(2) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/button/translate-i18n", "xpath:idRelative"], - ["xpath=//div/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Filters')]", "xpath:innerText"] + ["linkText=File Backed HTTP Metadata Provider", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'File Backed HTTP Metadata Provider')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/1c0e0d02-5323-44b4-a610-821a6d464792/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'File Backed HTTP Metadata Provider')]", "xpath:innerText"] ], "value": "" }, { "id": "d86e9a98-a0a1-4696-b454-1bca1d01f9d0", "comment": "", "command": "click", - "target": "css=#filters .actions span", + "target": "css=.btn:nth-child(2)", "targets": [ - ["css=#filters .actions span", "css:finder"], - ["xpath=//div[@id='filters']/div/div/a/span", "xpath:idRelative"], - ["xpath=//div/a/span", "xpath:position"], - ["xpath=//span[contains(.,'Add Filter')]", "xpath:innerText"] + ["css=.btn:nth-child(2)", "css:finder"], + ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], + ["xpath=//div[@id='navigation']/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Filters')]", "xpath:innerText"] ], "value": "" + }, { + "id": "8cd894a4-6434-4b05-a91b-1d1e09aa58fd", + "comment": "", + "command": "click", + "target": "linkText=Add Filter", + "targets": [ + ["linkText=Add Filter", "linkText"], + ["css=#filters .btn", "css:finder"], + ["xpath=//div[@id='filters']/div/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/1c0e0d02-5323-44b4-a610-821a6d464792/filter/new')]", "xpath:href"], + ["xpath=//div[3]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Add Filter')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "f62f8d1d-8c53-4cb5-bc19-84f68fee870d", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" }, { "id": "dc41b26d-b101-4ead-866f-482df0bfee04", "comment": "", "command": "select", "target": "name=type", - "targets": [], + "targets": [ + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/div/div/form/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] + ], "value": "label=EntityAttributes" }, { "id": "49fe7508-4f42-4eae-a47d-85a0983efb64", @@ -618,19 +708,25 @@ "id": "8a52ad88-b583-41b7-92a6-bdb185b03a06", "comment": "", "command": "waitForElementVisible", - "target": "id=/name", - "targets": [], + "target": "id=root_name", + "targets": [ + ["id=root_name", "id"], + ["css=#root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "b1c779b1-d3ed-47cc-bc88-e5c280161c32", "comment": "", "command": "type", - "target": "id=/name", + "target": "id=root_name", "targets": [ - ["id=/name", "id"], - ["name=field37", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], + ["id=root_name", "id"], + ["css=#root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "Entity Attributes Filter" @@ -645,13 +741,14 @@ "id": "a10a6faf-90cd-4713-8ea3-60c768ed935e", "comment": "", "command": "click", - "target": "id=/entityAttributesFilterTarget.valuedd", + "target": "id=dropdown-label.filter-target-type", "targets": [ - ["id=/entityAttributesFilterTarget.valuedd", "id"], - ["css=#\\/entityAttributesFilterTarget\\.valuedd", "css:finder"], - ["xpath=//button[@id='/entityAttributesFilterTarget.valuedd']", "xpath:attributes"], + ["id=dropdown-label.filter-target-type", "id"], + ["css=#dropdown-label\\.filter-target-type", "css:finder"], + ["xpath=//button[@id='dropdown-label.filter-target-type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[6]/div/div/div/fieldset/div/div/div/div/button", "xpath:idRelative"], ["xpath=//fieldset/div/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Entity ID')]", "xpath:innerText"] + ["xpath=//button[contains(.,'Entity ID ')]", "xpath:innerText"] ], "value": "" }, { @@ -665,14 +762,13 @@ "id": "1f2b93b8-23ae-4a9c-b015-96ca890ae150", "comment": "", "command": "click", - "target": "linkText=Regex", + "target": "css=.show > .dropdown-item:nth-child(2)", "targets": [ - ["linkText=Regex", "linkText"], - ["css=.dropdown-item:nth-child(2)", "css:finder"], - ["xpath=//a[contains(text(),'Regex')]", "xpath:link"], - ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], - ["xpath=//div/div/a[2]", "xpath:position"], - ["xpath=//a[contains(.,'Regex')]", "xpath:innerText"] + ["css=.show > .dropdown-item:nth-child(2)", "css:finder"], + ["xpath=(//button[@type='button'])[16]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[6]/div/div/div/fieldset/div/div/div/div/div/button[2]", "xpath:idRelative"], + ["xpath=//fieldset/div/div/div/div/div/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Regex')]", "xpath:innerText"] ], "value": "" }, { @@ -686,543 +782,528 @@ "id": "5c2ed93d-3630-408c-bb89-0b2baffb73c0", "comment": "", "command": "click", - "target": "id=/entityAttributesFilterTarget.target", + "target": "id=targetInput", "targets": [ - ["id=/entityAttributesFilterTarget.target", "id"], + ["id=targetInput", "id"], ["name=script", "name"], - ["css=#\\/entityAttributesFilterTarget\\.target", "css:finder"], - ["xpath=//input[@id='/entityAttributesFilterTarget.target']", "xpath:attributes"], - ["xpath=//div/div/input", "xpath:position"] + ["css=#targetInput", "css:finder"], + ["xpath=//input[@id='targetInput']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[6]/div/div/div/fieldset/div/div/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "" }, { "id": "6dec176f-0c5a-4982-867e-087342c90987", "comment": "", "command": "sendKeys", - "target": "id=/entityAttributesFilterTarget.target", - "targets": [], + "target": "id=targetInput", + "targets": [ + ["id=targetInput", "id"], + ["name=script", "name"], + ["css=#targetInput", "css:finder"], + ["xpath=//input[@id='targetInput']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[6]/div/div/div/fieldset/div/div/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] + ], "value": "/foo.*/" }, { - "id": "f4e6e8a5-0040-4aac-a0f9-9b49abbd9568", + "id": "776f70b4-426a-4be2-99af-66930232b1e9", "comment": "", "command": "click", - "target": "css=#\\/filterEnabled\\.parent > .custom-control-label", + "target": "css=.nav-link:nth-child(2)", "targets": [ - ["css=#\\/filterEnabled\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/filterEnabled.parent']/label", "xpath:idRelative"], - ["xpath=//checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Filter?')]", "xpath:innerText"] + ["css=.nav-link:nth-child(2)", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div/nav/button[2]", "xpath:idRelative"], + ["xpath=//nav/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Options')]", "xpath:innerText"] ], "value": "" }, { "id": "603aff60-cf79-4804-90c5-2ffd0f5ef550", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/signAssertion\\.parent > .custom-control-label", + "target": "id=root_relyingPartyOverrides_signAssertion", "targets": [ - ["css=#\\/relyingPartyOverrides\\/signAssertion\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/signAssertion.parent']/label", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Sign the Assertion?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_signAssertion", "id"], + ["css=#root_relyingPartyOverrides_signAssertion", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_signAssertion']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { "id": "9456ba02-3dd6-4305-a0d3-f031e1e79b16", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/dontSignResponse\\.parent > .custom-control-label", + "target": "id=root_relyingPartyOverrides_dontSignResponse", "targets": [ - ["css=#\\/relyingPartyOverrides\\/dontSignResponse\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/dontSignResponse.parent']/label", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"] + ["id=root_relyingPartyOverrides_dontSignResponse", "id"], + ["css=#root_relyingPartyOverrides_dontSignResponse", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_dontSignResponse']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "a1ce4398-4f95-498c-b01b-2f25e1fd3380", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/turnOffEncryption\\.parent > .custom-control-label", + "target": "id=root_relyingPartyOverrides_turnOffEncryption", "targets": [ - ["css=#\\/relyingPartyOverrides\\/turnOffEncryption\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/turnOffEncryption.parent']/label", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Turn off Encryption of Response?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_turnOffEncryption", "id"], + ["css=#root_relyingPartyOverrides_turnOffEncryption", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_turnOffEncryption']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[3]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "dcaa766a-3800-4412-9631-0f279e23bf41", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/useSha\\.parent > .custom-control-label", + "target": "id=root_relyingPartyOverrides_useSha", "targets": [ - ["css=#\\/relyingPartyOverrides\\/useSha\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/useSha.parent']/label", "xpath:idRelative"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Use SHA1 Signing Algorithm?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_useSha", "id"], + ["css=#root_relyingPartyOverrides_useSha", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_useSha']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[4]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "c7a9bd88-9198-4ce0-8ae0-618b90fd787a", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/ignoreAuthenticationMethod\\.parent > .custom-control-label", + "target": "id=root_relyingPartyOverrides_ignoreAuthenticationMethod", "targets": [ - ["css=#\\/relyingPartyOverrides\\/ignoreAuthenticationMethod\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/ignoreAuthenticationMethod.parent']/label", "xpath:idRelative"], - ["xpath=//div[5]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Ignore any SP-Requested Authentication Method?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_ignoreAuthenticationMethod", "id"], + ["css=#root_relyingPartyOverrides_ignoreAuthenticationMethod", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_ignoreAuthenticationMethod']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[5]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "c806723d-9713-4710-96e2-6410b79895c0", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/omitNotBefore\\.parent > .custom-control-label", + "target": "id=root_relyingPartyOverrides_omitNotBefore", "targets": [ - ["css=#\\/relyingPartyOverrides\\/omitNotBefore\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/omitNotBefore.parent']/label", "xpath:idRelative"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Omit Not Before Condition?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_omitNotBefore", "id"], + ["css=#root_relyingPartyOverrides_omitNotBefore", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_omitNotBefore']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[6]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "1c7d678e-5b74-4542-bf6c-a64d0117f831", "comment": "", "command": "type", - "target": "id=/relyingPartyOverrides/responderId", + "target": "id=root_relyingPartyOverrides_responderId", "targets": [ - ["id=/relyingPartyOverrides/responderId", "id"], - ["name=field50", "name"], - ["css=#\\/relyingPartyOverrides\\/responderId", "css:finder"], - ["xpath=//input[@id='/relyingPartyOverrides/responderId']", "xpath:attributes"], - ["xpath=//div[7]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_relyingPartyOverrides_responderId", "id"], + ["css=#root_relyingPartyOverrides_responderId", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_responderId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[7]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div/div/input", "xpath:position"] ], "value": "id-123" }, { - "id": "027b4448-eaf6-4f24-ae2f-5b592db910ed", + "id": "7753fdc3-fb29-436e-aa16-c331fa4772d6", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ - ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], - ["xpath=//array-component/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.row:nth-child(8) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[18]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[8]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[8]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { - "id": "1bb700ae-08eb-403c-b3ba-0090132b69ff", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "fd1af538-1b5b-4d6a-b56b-d56e7f01bb40", + "id": "a0915c28-40cd-4c2b-a341-8d683a1058dd", "comment": "", "command": "click", - "target": "css=.fa-caret-down", + "target": "css=.toggle-button", "targets": [ - ["css=.fa-caret-down", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/0-container']/div/div/button/i", "xpath:idRelative"], - ["xpath=//auto-complete/div/div/div/button/i", "xpath:position"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[20]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[8]/div/div/div/div/div/div[2]/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { - "id": "6afaa45d-1beb-4f15-8810-278af7489657", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "cc233154-4159-425b-8ac5-761c26a0de15", + "id": "645be3e5-166a-4ef6-8e7f-18113387c3ab", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/0__option--0", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/0__option--0", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/0__option--0", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/0__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/0__listbox']/li", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_0']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified')]", "xpath:innerText"] ], "value": "" }, { - "id": "d8e3df44-0db6-458e-b133-36b7ec08fbb7", + "id": "7e21402f-383c-4995-89b6-b75db89c0ab5", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .btn", + "target": "css=.row:nth-child(2) .array-add-button > .svg-inline--fa", "targets": [ - ["css=div:nth-child(8) .btn > translate-i18n", "css:finder"], - ["xpath=//array-component/div/div/button/translate-i18n", "xpath:position"] + ["css=.row:nth-child(8) .array-add-button > .svg-inline--fa", "css:finder"] ], "value": "" }, { - "id": "3395ec88-2d19-4785-99f9-3921dddfba28", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "562c7f9f-1e55-432a-8fff-0cae15b23a33", + "id": "a86b93d7-f4f2-48de-85c6-4f6f6190e7d4", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/nameIdFormats\\/1-container .btn", + "target": "css=.is-invalid > .toggle-button", "targets": [ - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/1-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/1-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.is-invalid > .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[22]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[8]/div/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { - "id": "c80afbe5-2c88-4207-b133-6d151fea12a8", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "f5f27af2-b869-4b99-a3d9-3efce014be06", + "id": "5e8fc8bb-5cb8-4e25-b7ed-95a7cd4654e3", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/1__option--1", + "target": "css=#option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1 > span", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/1__option--1", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/1__option--1", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/1__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/1__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[2]", "xpath:position"] + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1 > span", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1']/span", "xpath:idRelative"], + ["xpath=//a[2]/span", "xpath:position"], + ["xpath=//span[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress')]", "xpath:innerText"] ], "value": "" }, { - "id": "4e595806-b2c6-43c6-bd1f-78e659f795e4", + "id": "8fbcab89-08ff-4c40-a2bc-79674b75720c", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ - ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], - ["xpath=//array-component/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.row:nth-child(8) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[18]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[8]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[8]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { - "id": "5e26a17f-98e4-4adc-b851-4e854228ebba", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "b717af46-a3c1-40f2-ac1a-2c7f84fbf33f", + "id": "545efe56-2c2c-4158-9984-93e8df445f17", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/nameIdFormats\\/2-container .btn", + "target": "css=.is-invalid > .toggle-button", "targets": [ - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/2-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/2-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.is-invalid > .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[24]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[8]/div/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { - "id": "d07e6da7-ed28-4460-914a-eb355b3a2de3", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "4655a981-c5d6-4b48-aad2-77295dc37859", + "id": "d195071e-6f5a-4eca-b618-c8b926dc7753", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/2__option--2", + "target": "css=#option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2 > span", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/2__option--2", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/2__option--2", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/2__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/2__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2 > span", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2']/span", "xpath:idRelative"], + ["xpath=//a[3]/span", "xpath:position"], + ["xpath=//span[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent')]", "xpath:innerText"] ], "value": "" }, { - "id": "9902d02a-d7f7-4424-92f4-2a6072916421", + "id": "72506b7c-224d-4c45-81e6-1b1e5f3a08b8", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ - ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], - ["xpath=//array-component/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.row:nth-child(8) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[18]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[8]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[8]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { - "id": "605d3970-c910-4bec-accd-d7c4d0334f91", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "df07e4c7-8e0f-4eed-ab58-42e2b5bcfc93", + "id": "5382e207-f281-4ea9-9da8-8d2a0e029ab6", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/nameIdFormats\\/3-container .btn", + "target": "css=.is-invalid .svg-inline--fa", "targets": [ - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/3-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/3-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.is-invalid .svg-inline--fa", "css:finder"] ], "value": "" }, { - "id": "0ef4ae64-3b16-4488-b19e-629162a9c84d", + "id": "0aa7801a-8156-4b45-9947-b2e60218e503", "comment": "", - "command": "pause", - "target": "500", - "targets": [], + "command": "click", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3", + "targets": [ + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:transient", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_3']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:transient')]", "xpath:innerText"] + ], "value": "" }, { - "id": "cd34bc8a-564b-4d15-90c9-f09e12d7e078", + "id": "bac85588-bf58-4e2a-ba71-6d0a3941631e", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/3__option--3", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/3__option--3", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/3__option--3", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/3__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/3__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["css=.row:nth-child(8) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[18]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[8]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[8]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { - "id": "624fd275-3ee2-4cd0-890a-4ae22b152ed4", + "id": "dd44bd2e-84dc-4512-966f-97f893f530e9", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "xpath=//section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div[1]/div/div[7]/div/div/div[1]/div/div[2]/div/div/div[1]/div/div/div[2]/div[5]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ - ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], - ["xpath=//array-component/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.focus", "css:finder"], + ["xpath=(//input[@value=''])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[8]/div/div/div/div/div/div[2]/div[5]/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { - "id": "e6c3d2db-386e-4b9b-a160-c091b025c1b9", + "id": "2d2e92a4-213d-4345-9b1c-f6fb04df3971", "comment": "", "command": "type", - "target": "id=/relyingPartyOverrides/nameIdFormats/4", + "target": "xpath=//section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div[1]/div/div[7]/div/div/div[1]/div/div[2]/div/div/div[1]/div/div/div[2]/div[5]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/4", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/4", "css:finder"], - ["xpath=//input[@id='/relyingPartyOverrides/nameIdFormats/4']", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/4-container']/div/input", "xpath:idRelative"], - ["xpath=//li[5]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] + ["css=.focus", "css:finder"], + ["xpath=//input[@value='someNameID']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[8]/div/div/div/div/div/div[2]/div[5]/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/div/div/div/input", "xpath:position"] ], - "value": "nameIdFormat" + "value": "someNameID" }, { - "id": "82093807-448e-4a25-96bf-ed1dfca77452", + "id": "22098498-fa16-468f-abfa-768e5736d317", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .d-flex > .btn", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_4-item-4", "targets": [ - ["css=div:nth-child(9) .d-flex > .btn", "css:finder"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_4-item-4", "id"], + ["linkText=someNameID", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_4-item-4", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_4-item-4']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_4']/a[5]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[5]", "xpath:href"], + ["xpath=//a[5]", "xpath:position"], + ["xpath=//a[contains(.,'someNameID')]", "xpath:innerText"] ], "value": "" }, { - "id": "1acc3e01-45ae-4c6d-9291-165affb7306f", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "fcd7d891-5ea4-45a6-8554-4298ec5804c9", + "id": "f2443263-2147-4457-ae68-9c46bb38940a", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/authenticationMethods\\/0-container .btn", + "target": "css=.row:nth-child(4) .array-add-button", "targets": [ - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/0-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[8]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/authenticationMethods/0-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(9) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[30]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[9]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { - "id": "faf08fb6-7c62-465c-b198-6da8ef3a1dd5", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "9bb8951c-c932-4236-89d8-9d2c8d49a702", + "id": "22ce2ccc-94d9-4b6c-8a6c-7544af49e00a", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/0__option--0", + "target": "xpath=//section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div[1]/div/div[7]/div/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div/div/div[1]/div/div[1]/div/div/button", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/0__option--0", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/0__option--0", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/authenticationMethods/0__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/authenticationMethods/0__listbox']/li", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li", "xpath:position"] + ["css=.is-invalid > .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[32]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[9]/div/div/div/div/div/div[2]/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div[2]/div/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { - "id": "743e6d84-98b7-461a-8fb9-05826abb8e22", + "id": "9af0bdca-6c53-4192-8d51-1e6bb96fda3a", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .d-flex > .btn", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0", "targets": [ - ["css=div:nth-child(9) .d-flex > .btn", "css:finder"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0", "id"], + ["linkText=https://refeds.org/profile/mfa", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_0']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'https://refeds.org/profile/mfa')]", "xpath:innerText"] ], "value": "" }, { - "id": "926e66e1-3bcb-41bd-a6a8-83ed90ceab59", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "81517bc9-7996-46be-9dfe-9eea57f0e616", + "id": "ccd54cce-a783-4dbd-b64e-1932286b4a08", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/authenticationMethods\\/1-container .btn", + "target": "css=.row:nth-child(4) .array-add-button", "targets": [ - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/1-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/authenticationMethods/1-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(9) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[30]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[9]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { - "id": "8343153e-ade7-4713-a9f6-079b0bfbac44", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "8f00493c-94ef-4182-8423-5d23bd01136f", + "id": "00087e23-8d82-4dc1-ae12-8043589e08f1", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/1__option--1", + "target": "xpath=//section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div[1]/div/div[7]/div/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[2]/div/div[1]/div/div[1]/div/div/button", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/1__option--1", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/1__option--1", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/authenticationMethods/1__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/authenticationMethods/1__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[2]", "xpath:position"] + ["css=.is-invalid > .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[34]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[9]/div/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { - "id": "7a3a49b4-4348-4318-a35c-ba0a2192e811", + "id": "c8ca751b-d9a3-4878-9be7-92befd0bc6a4", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .d-flex > .btn", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1", "targets": [ - ["css=div:nth-child(9) .d-flex > .btn", "css:finder"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_1']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken')]", "xpath:innerText"] ], "value": "" }, { - "id": "b9b5a336-2b99-4315-8c14-13ee1c5af2ed", + "id": "58dc23a7-adae-4b09-a056-c1facfc3db89", "comment": "", - "command": "pause", - "target": "500", - "targets": [], + "command": "click", + "target": "css=.row:nth-child(4) .array-add-button", + "targets": [ + ["css=.row:nth-child(4) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[25]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[4]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div/div/div[4]/div/div/div/div/div/div/button", "xpath:position"] + ], "value": "" }, { - "id": "c2f97ae8-fddf-4e48-b961-1d4154ceae9f", + "id": "b1429afc-4501-4fb3-acf7-02f2cb90f7f3", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/authenticationMethods\\/2-container .btn", + "target": "xpath=//section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div[1]/div/div[7]/div/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[3]/div/div[1]/div/div[1]/div/div/button", "targets": [ - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/2-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/authenticationMethods/2-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.is-invalid > .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[36]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[9]/div/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { - "id": "39a8ea0f-a57a-49b6-b640-7b608eb29b88", + "id": "4aff346b-b423-4999-9e8b-b099f6b275ac", "comment": "", - "command": "pause", - "target": "500", - "targets": [], + "command": "click", + "target": "css=#option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2 > span", + "targets": [ + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2 > span", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2']/span", "xpath:idRelative"], + ["xpath=//a[3]/span", "xpath:position"], + ["xpath=//span[contains(.,'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport')]", "xpath:innerText"] + ], "value": "" }, { - "id": "3dcbc6b1-2571-4ab8-9014-66b19727fe0a", + "id": "268e6828-97c8-4f68-9f2d-9c443b16dcef", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/2__option--2", + "target": "css=.row:nth-child(4) .array-add-button", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/2__option--2", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/2__option--2", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/authenticationMethods/2__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/authenticationMethods/2__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["css=.row:nth-child(9) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[30]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[9]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { - "id": "efad42c9-5d79-42f6-a348-54ba5fe59e9d", + "id": "b6dc2be5-574b-4fd6-b1a1-786303efc60a", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .d-flex > .btn", + "target": "xpath=//section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div[1]/div/div[7]/div/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[4]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ - ["css=div:nth-child(9) .d-flex > .btn", "css:finder"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button", "xpath:position"] + ["css=.focus", "css:finder"], + ["xpath=(//input[@value=''])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[9]/div/div/div/div/div/div[2]/div[4]/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div[2]/div[4]/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { - "id": "9a7b2bfe-8702-40be-a6fe-a76b9a01cdde", + "id": "28aa7d61-803f-48af-a103-5945f84a1601", "comment": "", "command": "type", - "target": "id=/relyingPartyOverrides/authenticationMethods/3", + "target": "xpath=//section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div[1]/div/div[7]/div/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[4]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/3", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/3", "css:finder"], - ["xpath=//input[@id='/relyingPartyOverrides/authenticationMethods/3']", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/authenticationMethods/3-container']/div/input", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] + ["css=.focus", "css:finder"], + ["xpath=//input[@value='SomeAuthnMethod']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[9]/div/div/div/div/div/div[2]/div[4]/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div[2]/div[4]/div/div/div/div/div/div/div/input", "xpath:position"] ], - "value": "someOverride" + "value": "SomeAuthnMethod" }, { - "id": "82bf7075-6128-4471-a631-c8e4c3525eea", + "id": "3d9af697-8021-4a7b-bc09-7fbcc501817e", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/forceAuthn\\.parent > .custom-control-label", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_3-item-3", "targets": [ - ["css=#\\/relyingPartyOverrides\\/forceAuthn\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/forceAuthn.parent']/label", "xpath:idRelative"], - ["xpath=//div[10]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Force AuthN')]", "xpath:innerText"] + ["id=option-selector-root_relyingPartyOverrides_authenticationMethods_3-item-3", "id"], + ["linkText=SomeAuthnMethod", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_3-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_3-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_3']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'SomeAuthnMethod')]", "xpath:innerText"] ], "value": "" }, { - "id": "4098e48d-eef1-42e8-a1a4-e4eb48f5f9bd", + "id": "82bf7075-6128-4471-a631-c8e4c3525eea", "comment": "", "command": "click", - "target": "css=.fa-check", + "target": "id=root_relyingPartyOverrides_forceAuthn", "targets": [ - ["css=.fa-check", "css:finder"], - ["xpath=//button[@id='/attributeRelease.checkall']/i", "xpath:idRelative"], - ["xpath=//td[2]/button/i", "xpath:position"] + ["id=root_relyingPartyOverrides_forceAuthn", "id"], + ["css=#root_relyingPartyOverrides_forceAuthn", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_forceAuthn']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[10]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[10]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "2c3908a1-3fbf-4bbe-8611-fb8a87da1a66", "comment": "", "command": "click", - "target": "css=.btn-primary", + "target": "css=.btn-info", "targets": [ - ["css=.btn-primary", "css:finder"], - ["xpath=//button[@type='submit']", "xpath:attributes"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Save')]", "xpath:innerText"] + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/div[2]/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Save')]", "xpath:innerText"] ], "value": "" }, { @@ -1238,6 +1319,13 @@ ["xpath=//a[contains(.,'Add Filter')]", "xpath:innerText"] ], "value": "" + }, { + "id": "53ed1d39-156e-44ed-81a7-7c1aed296ff6", + "comment": "", + "command": "waitForElementPresent", + "target": "name=type", + "targets": [], + "value": "30000" }, { "id": "097ea9f6-e75c-41a3-b4e9-a4a80a866802", "comment": "", @@ -1261,19 +1349,25 @@ "id": "4a663db9-9f10-4b12-9cb9-61aa01ecc0c0", "comment": "", "command": "waitForElementVisible", - "target": "id=/name", - "targets": [], + "target": "id=root_name", + "targets": [ + ["id=root_name", "id"], + ["css=#root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "92fdc836-2479-4faa-9e3d-447f5b82cc11", "comment": "", "command": "type", - "target": "id=/name", + "target": "id=root_name", "targets": [ - ["id=/name", "id"], - ["name=field65", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], + ["id=root_name", "id"], + ["css=#root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "Name ID Format Filter" @@ -1288,13 +1382,14 @@ "id": "abfa17d5-ebfe-4bb2-b64a-ef5f127bac86", "comment": "", "command": "click", - "target": "id=/nameIdFormatFilterTarget.valuedd", + "target": "id=dropdown-label.filter-target-type", "targets": [ - ["id=/nameIdFormatFilterTarget.valuedd", "id"], - ["css=#\\/nameIdFormatFilterTarget\\.valuedd", "css:finder"], - ["xpath=//button[@id='/nameIdFormatFilterTarget.valuedd']", "xpath:attributes"], + ["id=dropdown-label.filter-target-type", "id"], + ["css=#dropdown-label\\.filter-target-type", "css:finder"], + ["xpath=//button[@id='dropdown-label.filter-target-type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[3]/div/div/div/fieldset/div/div/div/div/button", "xpath:idRelative"], ["xpath=//fieldset/div/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Entity ID')]", "xpath:innerText"] + ["xpath=//button[contains(.,'Entity ID ')]", "xpath:innerText"] ], "value": "" }, { @@ -1308,36 +1403,33 @@ "id": "6040112e-86c4-4e98-b258-79d7e61dfb6d", "comment": "", "command": "click", - "target": "linkText=Entity ID", + "target": "css=.show > .dropdown-item:nth-child(1)", "targets": [ - ["linkText=Entity ID", "linkText"], ["css=.show > .dropdown-item:nth-child(1)", "css:finder"], - ["xpath=//a[contains(text(),'Entity ID')]", "xpath:link"], - ["xpath=//a[contains(@href, '#')]", "xpath:href"], - ["xpath=//div/div/a", "xpath:position"], - ["xpath=//a[contains(.,'Entity ID')]", "xpath:innerText"] + ["xpath=(//button[@type='button'])[14]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[3]/div/div/div/fieldset/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//fieldset/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { "id": "70eba7e8-d84f-4b65-b5e8-d1523514dd29", "comment": "", "command": "pause", - "target": "2000", + "target": "3000", "targets": [], "value": "" }, { "id": "bba23377-23a1-46d5-b044-15047a08ee53", "comment": "", "command": "type", - "target": "id=/nameIdFormatFilterTarget.target", + "target": "css=.rbt-input-main", "targets": [ - ["id=/nameIdFormatFilterTarget.target", "id"], - ["css=#\\/nameIdFormatFilterTarget\\.target", "css:finder"], - ["xpath=//input[@id='/nameIdFormatFilterTarget.target']", "xpath:attributes"], - ["xpath=//div[@id='-container']/div/input", "xpath:idRelative"], - ["xpath=//div/div/input", "xpath:position"] + ["css=.rbt-input-main", "css:finder"], + ["xpath=(//input[@value=''])[2]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[3]/div/div/div/fieldset/div/div/div[2]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/input", "xpath:position"] ], - "value": "https://idp.unicon.net/idp/shibboleth" + "value": "https://idp.unicon.net" }, { "id": "6fbb57d1-0fc6-42bc-86ca-4a5fe872ea34", "comment": "", @@ -1350,27 +1442,29 @@ ], "value": "" }, { - "id": "fa75b464-10a7-43da-939e-550e88748eb6", + "id": "ebe9c389-fd68-4907-b9f7-95274a36de4e", "comment": "", "command": "click", - "target": "css=#\\/filterEnabled\\.parent > .custom-control-label", + "target": "css=.nav-link:nth-child(2)", "targets": [ - ["css=#\\/filterEnabled\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/filterEnabled.parent']/label", "xpath:idRelative"], - ["xpath=//checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Filter?')]", "xpath:innerText"] + ["css=.nav-link:nth-child(2)", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div/nav/button[2]", "xpath:idRelative"], + ["xpath=//nav/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Options')]", "xpath:innerText"] ], "value": "" }, { "id": "a721538a-5f95-4567-8d7c-5851f67f3ae0", "comment": "", "command": "click", - "target": "css=#\\/removeExistingFormats\\.parent > .custom-control-label", + "target": "id=root_removeExistingFormats", "targets": [ - ["css=#\\/removeExistingFormats\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/removeExistingFormats.parent']/label", "xpath:idRelative"], - ["xpath=//div[7]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Remove Existing Formats?')]", "xpath:innerText"] + ["id=root_removeExistingFormats", "id"], + ["css=#root_removeExistingFormats", "css:finder"], + ["xpath=//input[@id='root_removeExistingFormats']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { @@ -1392,217 +1486,213 @@ "targets": [], "value": "" }, { - "id": "76b5506e-ebd3-416b-9a2d-391d39b8b282", + "id": "226df885-00bc-4974-8496-420f4e080254", "comment": "", "command": "click", - "target": "css=.input-group-append > .btn", + "target": "css=.toggle-button", "targets": [ - ["css=.input-group-append > .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/formats/0-container']/div/div/button", "xpath:idRelative"], - ["xpath=//auto-complete/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[8]/div/div/div/div/div/div[2]/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { - "id": "e71b7c21-86c7-46e1-8451-4005940dbf02", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "ee812306-8d00-4162-9d92-eb598802f4bc", + "id": "0513bc68-fb27-426e-8f51-4018c0e2497a", "comment": "", "command": "click", - "target": "id=/formats/0__option--0", + "target": "id=option-selector-root_formats_0-item-0", "targets": [ - ["id=/formats/0__option--0", "id"], - ["css=#\\/formats\\/0__option--0", "css:finder"], - ["xpath=//li[@id='/formats/0__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/formats/0__listbox']/li", "xpath:idRelative"], - ["xpath=//datalist-component/div/auto-complete/div/ul/li", "xpath:position"] + ["id=option-selector-root_formats_0-item-0", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "linkText"], + ["css=#option-selector-root_formats_0-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_formats_0-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_formats_0']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified')]", "xpath:innerText"] ], "value": "" }, { - "id": "ddcda076-a6d1-4a6f-861d-c32642305841", + "id": "264db296-0744-41b9-a0be-1447056dbc95", "comment": "", "command": "click", "target": "css=.array-add-button", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//array-component/div/div/button/translate-i18n", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[8]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[8]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { - "id": "da1e1b22-55cb-4934-9d0c-8955e5434289", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "1f3cca46-1bf0-469f-9ac5-6481c8447633", + "id": "1fbfca66-877d-4122-a110-70e1b4383658", "comment": "", "command": "click", - "target": "css=#\\/formats\\/1-container .btn", + "target": "css=.is-invalid > .toggle-button", "targets": [ - ["css=#\\/formats\\/1-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], - ["xpath=//div[@id='/formats/1-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.is-invalid > .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[15]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[8]/div/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { - "id": "65b07bc0-3c1d-4eeb-b268-baa2f2a0992c", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "aa0cb8e5-a5b5-4956-91dc-d25ea30ff87a", + "id": "81d7e06f-ab01-4eb9-ab56-9e49508f2fbf", "comment": "", "command": "click", - "target": "id=/formats/1__option--1", + "target": "id=option-selector-root_formats_1-item-1", "targets": [ - ["id=/formats/1__option--1", "id"], - ["css=#\\/formats\\/1__option--1", "css:finder"], - ["xpath=//li[@id='/formats/1__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/formats/1__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[2]", "xpath:position"] + ["id=option-selector-root_formats_1-item-1", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "linkText"], + ["css=#option-selector-root_formats_1-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_formats_1-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_formats_1']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress')]", "xpath:innerText"] ], "value": "" }, { - "id": "233f96b6-032e-40c4-8232-dc65583830fc", + "id": "94fa27ec-740c-49e5-8a3a-6173bcb479a5", "comment": "", "command": "click", "target": "css=.array-add-button", "targets": [ ["css=.array-add-button", "css:finder"], - ["xpath=//array-component/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[8]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[8]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { - "id": "43200793-5c4c-47dd-93b7-7bdd138eb6d4", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "f313f186-80e1-42ea-9b19-c59efe66a92d", + "id": "ba98136f-2ae5-47e5-9e56-3845461da18c", "comment": "", "command": "click", - "target": "css=#\\/formats\\/2-container .btn", + "target": "css=.is-invalid > .toggle-button", "targets": [ - ["css=#\\/formats\\/2-container .fa", "css:finder"], - ["xpath=//div[@id='/formats/2-container']/div/div/button/i", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button/i", "xpath:position"] + ["css=.is-invalid > .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[17]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[8]/div/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { - "id": "26e1228a-a453-4f79-bd7d-222f50e21b69", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "bf10f8f1-f5b8-43f5-b1d8-6e4e67e92621", + "id": "1e0353c9-84c4-4a62-9598-4c512e08fb4b", "comment": "", "command": "click", - "target": "id=/formats/2__option--2", + "target": "id=option-selector-root_formats_2-item-2", "targets": [ - ["id=/formats/2__option--2", "id"], - ["css=#\\/formats\\/2__option--2", "css:finder"], - ["xpath=//li[@id='/formats/2__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/formats/2__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_formats_2-item-2", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "linkText"], + ["css=#option-selector-root_formats_2-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_formats_2-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_formats_2']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent')]", "xpath:innerText"] ], "value": "" }, { - "id": "be2cee3b-966a-47e8-8907-9d21bb63a61c", + "id": "73394ddd-4174-4eaf-95a4-de44e3f8c0ed", "comment": "", "command": "click", - "target": "css=.array-add-button", + "target": "css=.fa-plus", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//array-component/div/div/button/translate-i18n", "xpath:position"] + ["css=.fa-plus", "css:finder"] ], "value": "" }, { - "id": "0502f5d7-bc0a-4b4c-b0d0-5cf159dd0492", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "823e4972-3bdd-4286-a22d-8805adef4f2c", + "id": "7b3075ec-6f7b-431b-b279-0f0b010d0cff", "comment": "", "command": "click", - "target": "css=#\\/formats\\/3-container .btn", + "target": "css=.is-invalid .svg-inline--fa", "targets": [ - ["css=#\\/formats\\/3-container .fa", "css:finder"], - ["xpath=//div[@id='/formats/3-container']/div/div/button/i", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button/i", "xpath:position"] + ["css=.is-invalid .svg-inline--fa", "css:finder"] ], "value": "" }, { - "id": "55751a6d-974e-45cb-83fa-cea50fd6612c", + "id": "1f17992f-336f-4ab1-90fa-6b86c0c3aa4f", "comment": "", - "command": "pause", - "target": "500", - "targets": [], + "command": "click", + "target": "id=option-selector-root_formats_3-item-3", + "targets": [ + ["id=option-selector-root_formats_3-item-3", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:transient", "linkText"], + ["css=#option-selector-root_formats_3-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_formats_3-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_formats_3']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:transient')]", "xpath:innerText"] + ], "value": "" }, { - "id": "3cba2ead-22cd-4bc9-b0ca-bb1f5ebb10a2", + "id": "04c4c383-1cd1-4b0f-9988-78ca347cc89f", "comment": "", "command": "click", - "target": "id=/formats/3__option--3", + "target": "css=.array-add-button", "targets": [ - ["id=/formats/3__option--3", "id"], - ["css=#\\/formats\\/3__option--3", "css:finder"], - ["xpath=//li[@id='/formats/3__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/formats/3__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[8]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[8]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { - "id": "e793e30f-cefa-4a31-9a92-56c49c87b339", + "id": "c18de9c9-ff9e-4784-897f-9b081102aa9e", "comment": "", "command": "click", - "target": "css=.array-add-button", + "target": "xpath=//section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div[1]/div/div[8]/div/div/div[1]/div/div/div[2]/div[5]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//array-component/div/div/button/translate-i18n", "xpath:position"] + ["css=.focus", "css:finder"], + ["xpath=(//input[@value=''])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[8]/div/div/div/div/div/div[2]/div[5]/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { - "id": "f0ae75e7-b2c0-49fa-9806-23f4f228e3e1", + "id": "3d49dbfc-47e9-4629-a27c-1013e0e2bdac", "comment": "", "command": "type", - "target": "id=/formats/4", + "target": "xpath=//section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div[1]/div/div[8]/div/div/div[1]/div/div/div[2]/div[5]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ - ["id=/formats/4", "id"], - ["css=#\\/formats\\/4", "css:finder"], - ["xpath=//input[@id='/formats/4']", "xpath:attributes"], - ["xpath=//div[@id='/formats/4-container']/div/input", "xpath:idRelative"], - ["xpath=//li[5]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] + ["css=.focus", "css:finder"], + ["xpath=//input[@value='SomeOtherNameIDFormat']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[8]/div/div/div/div/div/div[2]/div[5]/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/div/div/div/input", "xpath:position"] ], - "value": "name id format" + "value": "SomeOtherNameIDFormat" }, { - "id": "3a97e6c5-badb-45c8-b6e5-a7e8462ee77f", + "id": "875914ff-80a4-41cd-ab6c-602d1ddaaa8f", "comment": "", "command": "click", - "target": "css=.btn-primary", + "target": "id=option-selector-root_formats_4-item-4", "targets": [ - ["css=.btn-primary", "css:finder"], - ["xpath=//button[@type='submit']", "xpath:attributes"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Save')]", "xpath:innerText"] + ["id=option-selector-root_formats_4-item-4", "id"], + ["linkText=SomeOtherNameIDFormat", "linkText"], + ["css=#option-selector-root_formats_4-item-4", "css:finder"], + ["xpath=//a[@id='option-selector-root_formats_4-item-4']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_formats_4']/a[5]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[5]", "xpath:href"], + ["xpath=//a[5]", "xpath:position"], + ["xpath=//a[contains(.,'SomeOtherNameIDFormat')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "4ae2793d-9d5a-4416-9875-97a7bbfee59f", + "comment": "", + "command": "click", + "target": "css=.btn-info", + "targets": [ + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/div[2]/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Save')]", "xpath:innerText"] ], "value": "" }, { @@ -1616,11 +1706,12 @@ "id": "100902ee-6d6e-4148-a69b-b37746a4ad6e", "comment": "", "command": "assertText", - "target": "css=.list-group-item:nth-child(1) > filter-configuration-list-item > .d-flex > .btn", + "target": "css=.list-group-item:nth-child(1) .mx-4", "targets": [ - ["css=.list-group-item:nth-child(1) > filter-configuration-list-item > .d-flex > .btn", "css:finder"], - ["xpath=//div[@id='filters']/filter-configuration-list/ul/li/filter-configuration-list-item/div/button", "xpath:idRelative"], - ["xpath=//filter-configuration-list-item/div/button", "xpath:position"], + ["css=.list-group-item:nth-child(1) .mx-4", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='filters']/ul/li/div/button", "xpath:idRelative"], + ["xpath=//li/div/button", "xpath:position"], ["xpath=//button[contains(.,'Entity Attributes Filter')]", "xpath:innerText"] ], "value": "Entity Attributes Filter" @@ -1646,11 +1737,13 @@ "id": "c9d498da-9f59-40ae-b5d4-cae397a13766", "comment": "", "command": "assertText", - "target": "css=.list-group-item:nth-child(1) > filter-configuration-list-item > .d-flex > .btn", + "target": "css=.list-group-item:nth-child(1) .mx-4", "targets": [ - ["css=tr:nth-child(1) > .td-lg:nth-child(3)", "css:finder"], - ["xpath=//td[3]", "xpath:position"], - ["xpath=//td[contains(.,'Name ID Format Filter')]", "xpath:innerText"] + ["css=.list-group-item:nth-child(1) .mx-4", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='filters']/ul/li/div/button", "xpath:idRelative"], + ["xpath=//li/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Name ID Format Filter')]", "xpath:innerText"] ], "value": "Name ID Format Filter" }, { @@ -1674,11 +1767,13 @@ "id": "441608df-24a3-4a60-bfce-50a90ff0ee16", "comment": "", "command": "assertText", - "target": "css=.list-group-item:nth-child(1) > filter-configuration-list-item > .d-flex > .btn", + "target": "css=.list-group-item:nth-child(1) .mx-4", "targets": [ - ["css=tr:nth-child(1) > .td-lg:nth-child(3)", "css:finder"], - ["xpath=//td[3]", "xpath:position"], - ["xpath=//td[contains(.,'Entity Attributes Filter')]", "xpath:innerText"] + ["css=.list-group-item:nth-child(1) .mx-4", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='filters']/ul/li/div/button", "xpath:idRelative"], + ["xpath=//li/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Entity Attributes Filter')]", "xpath:innerText"] ], "value": "Entity Attributes Filter" }, { @@ -1731,55 +1826,63 @@ ], "value": "" }, { - "id": "ce07e08e-53a0-423a-9d00-7b0417a9697e", + "id": "138845c8-0cbf-4cba-b256-8c7e58065c26", "comment": "", "command": "click", - "target": "css=.btn-link:nth-child(1)", + "target": "css=.mb-4:nth-child(3) .edit-link", "targets": [ - ["css=.btn-link:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/a/translate-i18n", "xpath:idRelative"], - ["xpath=//div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Version History')]", "xpath:innerText"] + ["css=.mb-4:nth-child(3) .edit-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div/div/button", "xpath:idRelative"], + ["xpath=//section/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Edit')]", "xpath:innerText"] ], "value": "" }, { - "id": "4c543e76-dc9b-4786-b569-4c3071a88f07", + "id": "eb4df817-c23d-47e6-92a8-e013701c90de", "comment": "", - "command": "click", - "target": "css=tr:nth-child(1) a", - "targets": [ - ["linkText=Sep 25, 2019 10:20:58 (Current)", "linkText"], - ["css=tr:nth-child(1) a", "css:finder"], - ["xpath=//a[contains(@href, '/metadata/provider/5ac01c48-a78d-42a9-b5fa-fd9a057ebb17/configuration/options')]", "xpath:href"], - ["xpath=//td[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Sep 25, 2019 10:20:58 (Current)')]", "xpath:innerText"] - ], + "command": "pause", + "target": "3000", + "targets": [], "value": "" }, { - "id": "138845c8-0cbf-4cba-b256-8c7e58065c26", + "id": "1426c8e4-2c0b-4fa6-983b-32afb0d7cb84", "comment": "", "command": "click", - "target": "css=.mb-4:nth-child(1) .actions span", + "target": "id=root_name", "targets": [ - ["css=.mb-4:nth-child(1) .actions span", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div/div/button/span", "xpath:idRelative"], - ["xpath=//div/button/span", "xpath:position"], - ["xpath=//span[contains(.,'Edit')]", "xpath:innerText"] + ["id=root_name", "id"], + ["css=.mb-0 > #root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { - "id": "eb4df817-c23d-47e6-92a8-e013701c90de", + "id": "5f2dc2f5-61e7-4d2c-b2b8-d2c960723162", "comment": "", - "command": "pause", - "target": "3000", - "targets": [], + "command": "type", + "target": "id=root_name", + "targets": [ + ["id=root_name", "id"], + ["css=#root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "" }, { "id": "ae293184-6d83-4ecb-8e25-b757931c49f0", "comment": "", "command": "type", - "target": "id=/name", - "targets": [], + "target": "id=root_name", + "targets": [ + ["id=root_name", "id"], + ["css=.mb-0 > #root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "Provider Version 2" }, { "id": "9c887b33-de0e-4f38-8ea8-d6d0f0a9d841", @@ -1812,14 +1915,16 @@ "id": "6ebd7167-8187-4564-b441-213daa903faa", "comment": "", "command": "click", - "target": "id=/backupFileInitNextRefreshDelay__option--2", + "target": "id=option-selector-root_backupFileInitNextRefreshDelay-item-2", "targets": [ - ["id=/backupFileInitNextRefreshDelay__option--2", "id"], - ["css=#\\/backupFileInitNextRefreshDelay__option--2", "css:finder"], - ["xpath=//li[@id='/backupFileInitNextRefreshDelay__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/backupFileInitNextRefreshDelay__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[3]", "xpath:position"], - ["xpath=//li[contains(.,'PT1M')]", "xpath:innerText"] + ["id=option-selector-root_backupFileInitNextRefreshDelay-item-2", "id"], + ["linkText=PT1M", "linkText"], + ["css=#option-selector-root_backupFileInitNextRefreshDelay-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_backupFileInitNextRefreshDelay-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_backupFileInitNextRefreshDelay']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'PT1M')]", "xpath:innerText"] ], "value": "" }, { @@ -1851,12 +1956,14 @@ "id": "8c0f82f1-d6b4-4e62-bdb0-087dd31471cf", "comment": "", "command": "click", - "target": "css=.btn-link:nth-child(1) > translate-i18n", + "target": "linkText=Version History", "targets": [ - ["css=.btn-link:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/a/translate-i18n", "xpath:idRelative"], - ["xpath=//div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Version History')]", "xpath:innerText"] + ["linkText=Version History", "linkText"], + ["css=div:nth-child(1) > .btn-link:nth-child(1)", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/d1b00b13-5c76-45a1-9286-4968a1b23ae1/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] ], "value": "" }, { @@ -1873,6 +1980,7 @@ "target": "css=tr:nth-child(1) .custom-control-label", "targets": [ ["css=tr:nth-child(1) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/table/tbody/tr/td/div/label", "xpath:idRelative"], ["xpath=//label", "xpath:position"], ["xpath=//label[contains(.,'Check to select')]", "xpath:innerText"] ], @@ -1891,27 +1999,34 @@ "id": "6733a65d-7c16-4bf4-a6b4-bb3007e08c87", "comment": "", "command": "click", - "target": "css=.btn-primary > translate-i18n", + "target": "css=.btn-primary", "targets": [ - ["css=.btn-primary > translate-i18n", "css:finder"], - ["xpath=//history-list/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Compare Selected')]", "xpath:innerText"] + ["css=.btn-primary", "css:finder"], + ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/button", "xpath:idRelative"], + ["xpath=//section/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Compare Selected(1)')]", "xpath:innerText"] ], "value": "" }, { "id": "0abf4b7f-cc20-4a29-8338-90a67421dc41", "comment": "", "command": "waitForElementVisible", - "target": "css=primitive-property:nth-child(1) .bg-diff > .d-block:nth-child(2)", - "targets": [], + "target": "css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(2)", + "targets": [ + ["css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], + ["xpath=//div/span[2]", "xpath:position"] + ], "value": "30000" }, { "id": "2b495102-da87-400d-8c70-1758de76452d", "comment": "", "command": "assertText", - "target": "css=primitive-property:nth-child(1) .bg-diff > .d-block:nth-child(2)", + "target": "css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=primitive-property:nth-child(1) .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], ["xpath=//div/span[2]", "xpath:position"] ], "value": "Provider Version 2" @@ -1919,10 +2034,11 @@ "id": "63e1b12d-a50a-4877-9588-21209a08b364", "comment": "", "command": "assertText", - "target": "css=primitive-property:nth-child(8) .bg-diff > .d-block:nth-child(2)", + "target": "css=div:nth-child(7) .d-block:nth-child(2)", "targets": [ - ["css=primitive-property:nth-child(8) .bg-diff > .d-block:nth-child(2)", "css:finder"], - ["xpath=//primitive-property[8]/div/div/span[2]", "xpath:position"], + ["css=div:nth-child(7) .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[7]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[7]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'PT1M')]", "xpath:innerText"] ], "value": "PT1M" @@ -1930,19 +2046,31 @@ "id": "1f3e3d25-ea44-4110-913c-c6dc9a7ec215", "comment": "", "command": "click", - "target": "css=.fa-toggle-off", + "target": "id=toggleLimited", "targets": [ - ["css=.fa-toggle-off", "css:finder"], - ["xpath=//div/button/i", "xpath:position"] + ["id=toggleLimited", "id"], + ["name=toggleLimited", "name"], + ["css=#toggleLimited", "css:finder"], + ["xpath=//input[@id='toggleLimited']", "xpath:attributes"], + ["xpath=//div[@id='navigation']/div[2]/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" + }, { + "id": "8854eb15-681c-4d2b-a3e2-b324c745b2fa", + "comment": "", + "command": "waitForElementVisible", + "target": "css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(2)", + "targets": [], + "value": "30000" }, { "id": "cfebf080-7825-4412-8a2d-924af79d4b26", "comment": "", "command": "assertText", - "target": "css=primitive-property:nth-child(1) .d-block:nth-child(2)", + "target": "css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=primitive-property:nth-child(1) .d-block:nth-child(2)", "css:finder"], + ["css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], ["xpath=//div/span[2]", "xpath:position"] ], "value": "Provider Version 2" @@ -1950,10 +2078,11 @@ "id": "75f45cb6-9c38-44e7-82dc-a473fa7fab62", "comment": "", "command": "assertText", - "target": "css=primitive-property:nth-child(2) .d-block:nth-child(2)", + "target": "css=div:nth-child(2) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=primitive-property:nth-child(2) .d-block:nth-child(2)", "css:finder"], - ["xpath=//primitive-property[2]/div/div/span[2]", "xpath:position"], + ["css=div:nth-child(2) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[2]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'PT1M')]", "xpath:innerText"] ], "value": "PT1M" @@ -1961,11 +2090,14 @@ "id": "0b097967-1b4e-40cc-b8d7-bd0529fd46d2", "comment": "", "command": "click", - "target": "css=.btn-link:nth-child(1) > translate-i18n", + "target": "linkText=Version History", "targets": [ - ["css=.btn-link:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Version History')]", "xpath:innerText"] + ["linkText=Version History", "linkText"], + ["css=.btn-link:nth-child(1)", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/620ba911-c591-4006-b5a7-3bbf6b03e078/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] ], "value": "" }, { @@ -1992,11 +2124,12 @@ "id": "d2d4b08e-1056-4c7f-b9c0-b7efa76dfb94", "comment": "", "command": "click", - "target": "css=.list-group-item:nth-child(1) > filter-configuration-list-item > .d-flex > .btn", + "target": "css=.list-group-item:nth-child(1) .mx-4", "targets": [ - ["css=.list-group-item:nth-child(1) > filter-configuration-list-item > .d-flex > .btn", "css:finder"], - ["xpath=//div[@id='filters']/filter-configuration-list/ul/li/filter-configuration-list-item/div/button", "xpath:idRelative"], - ["xpath=//filter-configuration-list-item/div/button", "xpath:position"], + ["css=.list-group-item:nth-child(1) .mx-4", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='filters']/ul/li/div/button", "xpath:idRelative"], + ["xpath=//li/div/button", "xpath:position"], ["xpath=//button[contains(.,'Entity Attributes Filter')]", "xpath:innerText"] ], "value": "" @@ -2011,12 +2144,14 @@ "id": "27db83c9-2893-4958-8547-9496cc73440f", "comment": "", "command": "click", - "target": "css=.justify-content-between > .btn:nth-child(1) > translate-i18n", + "target": "linkText=Edit", "targets": [ - ["css=.justify-content-between > .btn:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div[@id='filters']/filter-configuration-list/ul/li/filter-configuration-list-item/div[2]/div/div/a/translate-i18n", "xpath:idRelative"], - ["xpath=//div[2]/div/div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Edit')]", "xpath:innerText"] + ["linkText=Edit", "linkText"], + ["css=.d-flex:nth-child(1) > .btn:nth-child(1)", "css:finder"], + ["xpath=//div[@id='filters']/ul/li/div[2]/div/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/620ba911-c591-4006-b5a7-3bbf6b03e078/filter/cd0259d8-7592-4185-b5e9-d2a9c3868397/edit/common')]", "xpath:href"], + ["xpath=//div[2]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Edit')]", "xpath:innerText"] ], "value": "" }, { @@ -2026,29 +2161,56 @@ "target": "3000", "targets": [], "value": "" + }, { + "id": "b32b054c-1f75-43f4-90ea-030e69d422cb", + "comment": "", + "command": "click", + "target": "id=root_name", + "targets": [ + ["id=root_name", "id"], + ["css=#root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div/div/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "0a06a2ba-f6cd-4725-81c4-9b7e35fce667", + "comment": "", + "command": "type", + "target": "id=root_name", + "targets": [ + ["id=root_name", "id"], + ["css=#root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div/div/div/div/input", "xpath:position"] + ], + "value": "" }, { "id": "2152a1f9-8608-420c-85d8-368f69260c21", "comment": "", "command": "type", - "target": "id=/name", + "target": "id=root_name", "targets": [ - ["id=/name", "id"], - ["name=field118", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_name", "id"], + ["css=#root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div/div/div/div/input", "xpath:position"] ], "value": "Entity Attributes Filter Version 2" }, { "id": "55de5aff-fc78-488f-aa1a-977dabb678dc", "comment": "", "command": "click", - "target": "css=.btn-primary", + "target": "css=.btn-info", "targets": [ - ["css=.btn-primary", "css:finder"], - ["xpath=//button[@type='submit']", "xpath:attributes"], - ["xpath=//div[2]/button", "xpath:position"], - ["xpath=//button[contains(.,'Save')]", "xpath:innerText"] + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div[2]/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Save')]", "xpath:innerText"] ], "value": "" }, { @@ -2062,12 +2224,15 @@ "id": "97c031ee-65f1-4089-ab43-a4a98bfb3798", "comment": "", "command": "click", - "target": "css=.nav-item translate-i18n", + "target": "linkText=Dashboard", "targets": [ - ["css=.nav-item translate-i18n", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li[2]/a/translate-i18n", "xpath:idRelative"], - ["xpath=//a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Dashboard')]", "xpath:innerText"] + ["linkText=Dashboard", "linkText"], + ["css=.nav-link:nth-child(3)", "css:finder"], + ["xpath=//a[contains(text(),'Dashboard')]", "xpath:link"], + ["xpath=//div[@id='basic-navbar-nav']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/dashboard')]", "xpath:href"], + ["xpath=//nav/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Dashboard')]", "xpath:innerText"] ], "value": "" }, { @@ -2123,12 +2288,14 @@ "id": "42bc2d8d-550f-462b-af96-c3811768e78c", "comment": "", "command": "click", - "target": "css=.btn-link:nth-child(1) > translate-i18n", + "target": "linkText=Version History", "targets": [ - ["css=.btn-link:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/a/translate-i18n", "xpath:idRelative"], - ["xpath=//div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Version History')]", "xpath:innerText"] + ["linkText=Version History", "linkText"], + ["css=div:nth-child(1) > .btn-link:nth-child(1)", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/620ba911-c591-4006-b5a7-3bbf6b03e078/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] ], "value": "" }, { @@ -2174,51 +2341,47 @@ "id": "2ff5a597-9fe0-46b4-9ca5-63123ddb3cef", "comment": "", "command": "click", - "target": "css=.d-flex:nth-child(1) > .border-primary:nth-child(2) .fa", + "target": "css=.border-primary:nth-child(2) .fa-square", "targets": [ - ["css=.d-flex:nth-child(1) > .border-primary:nth-child(2) .fa", "css:finder"], - ["xpath=//div[2]/div/button/i", "xpath:position"] + ["css=.border-primary:nth-child(2) .fa-square", "css:finder"] ], "value": "" }, { "id": "d5c5a3da-6634-4c1f-8eae-cd87baab22ef", "comment": "", "command": "click", - "target": "css=.btn-primary > translate-i18n", + "target": "css=.btn-primary", "targets": [ - ["css=.btn-primary > translate-i18n", "css:finder"], - ["xpath=//div[3]/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Compare Selected')]", "xpath:innerText"] + ["css=.btn-primary", "css:finder"], + ["xpath=(//button[@type='button'])[8]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/div[6]/button", "xpath:idRelative"], + ["xpath=//div[6]/button", "xpath:position"], + ["xpath=//button[contains(.,'Compare Selected')]", "xpath:innerText"] ], "value": "" }, { "id": "d7b5550d-1db8-4fa5-800f-fde753413c13", "comment": "", "command": "assertText", - "target": "css=.bg-diff > .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(8) .p-2 > div > div:nth-child(1) .d-block:nth-child(2)", "targets": [ - ["css=.bg-diff > .d-block:nth-child(2)", "css:finder"], - ["xpath=//section[2]/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:position"], - ["xpath=//span[contains(.,'Entity Attributes Filter Version 2')]", "xpath:innerText"] + ["css=.mb-4:nth-child(8) .p-2 > div > div:nth-child(1) .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[5]/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], + ["xpath=//section[5]/div/div[2]/div[2]/div/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'Entity Attributes Filter')]", "xpath:innerText"] ], "value": "Entity Attributes Filter Version 2" }, { "id": "ad797f09-746e-4778-954e-6f92ac5934ea", "comment": "", "command": "assertText", - "target": "css=.bg-diff > .d-block:nth-child(3)", + "target": "css=.mb-4:nth-child(8) .p-2 > div > div:nth-child(1) .d-block:nth-child(3)", "targets": [ - ["css=.bg-diff > .d-block:nth-child(3)", "css:finder"], - ["xpath=//section[2]/div/div[2]/object-property/primitive-property/div/div/span[3]", "xpath:position"] + ["css=.mb-4:nth-child(8) .p-2 > div > div:nth-child(1) .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[5]/div/div[2]/div[2]/div/div/span[3]", "xpath:idRelative"], + ["xpath=//section[5]/div/div[2]/div[2]/div/div/span[3]", "xpath:position"] ], "value": "Entity Attributes Filter" - }, { - "id": "2c05cbfc-f828-426d-be90-eae484624ac0", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1364-2.side b/backend/src/integration/resources/SHIBUI-1364-2.side index 4393ffcd8..4b731fdc4 100644 --- a/backend/src/integration/resources/SHIBUI-1364-2.side +++ b/backend/src/integration/resources/SHIBUI-1364-2.side @@ -41,51 +41,91 @@ "id": "185a1e41-d3a3-4627-aae2-7f05059e9c7d", "comment": "", "command": "click", - "target": "name=submit", + "target": "css=.btn", "targets": [ - ["name=submit", "name"], - ["css=td:nth-child(1) > input", "css:finder"], - ["xpath=//input[@name='submit']", "xpath:attributes"], - ["xpath=//tr[3]/td/input", "xpath:position"] + ["css=.btn", "css:finder"], + ["xpath=//button[@type='submit']", "xpath:attributes"], + ["xpath=//button", "xpath:position"], + ["xpath=//button[contains(.,'Sign in')]", "xpath:innerText"] ], "value": "" + }, { + "id": "88da3c74-55d6-4ba8-84ae-4a950a10feb1", + "comment": "", + "command": "pause", + "target": "3000", + "targets": [], + "value": "" + }, { + "id": "b7783883-d1ad-41c9-a776-361f83e3209f", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "4e044398-c6b1-4899-9ba1-1f9fd57ca434", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "8bc2c7e8-ad9b-4cf4-9dd5-87e4f0225cc3", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "94e01321-ac2d-427f-89a5-7f816cea0f00", "comment": "", "command": "click", - "target": "css=#addNewDropdown > translate-i18n", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=#addNewDropdown > translate-i18n", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/translate-i18n", "xpath:idRelative"], - ["xpath=//translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Add New')]", "xpath:innerText"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "c65500ae-3b08-4c22-8c88-b4116d6e0c9b", "comment": "", "command": "click", - "target": "linkText=Metadata Provider", + "target": "id=metadata-nav-dropdown-provider", "targets": [ - ["linkText=Metadata Provider", "linkText"], - ["css=.nav-link:nth-child(2)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a[2]", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[3]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"] + ["id=metadata-nav-dropdown-provider", "id"], + ["linkText=Add a new metadata provider", "linkText"], + ["css=#metadata-nav-dropdown-provider", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata provider')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-provider']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/new')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata provider')]", "xpath:innerText"] ], "value": "" }, { "id": "c5ec3177-5a66-4901-a644-8c6cfbb99254", "comment": "", "command": "waitForElementVisible", - "target": "id=/name", - "targets": [], + "target": "name=name", + "targets": [ + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "d093ad38-ab2d-4441-a60b-2c094d6938f9", "comment": "", "command": "type", - "target": "id=/name", + "target": "name=name", "targets": [ ["id=/name", "id"], ["name=field4", "name"], @@ -95,18 +135,32 @@ ], "value": "Filesystem Metadata Provider" }, { - "id": "aac150b1-6140-476b-8bdb-ebb83a14812d", + "id": "4f9521d5-75d5-488d-9d1b-521a48cfa508", "comment": "", - "command": "select", - "target": "id=/type", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" + }, { + "id": "8a575355-d9f6-455c-8ded-5a8cda8c8679", + "comment": "", + "command": "click", + "target": "name=type", "targets": [ - ["id=/type", "id"], - ["name=field2", "name"], - ["css=#\\/type", "css:finder"], - ["xpath=//select[@id='/type']", "xpath:attributes"], + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div[2]/select", "xpath:idRelative"], ["xpath=//select", "xpath:position"] ], - "value": "label=FilesystemMetadataProvider" + "value": "" + }, { + "id": "c47c3364-9e5a-4fdf-b87b-1a2ec879189d", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=FilesystemMetadataResolver" }, { "id": "7a60cb3c-ed3c-495c-8329-2fe52e72cceb", "comment": "", @@ -121,14 +175,20 @@ "id": "8cbc5dce-126e-4fb6-afcd-9651d9be6ba2", "comment": "", "command": "waitForElementVisible", - "target": "id=/xmlId", - "targets": [], + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "c140099c-f6e3-4600-92b3-5b97e07a95ee", "comment": "", "command": "type", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ ["id=/xmlId", "id"], ["name=field7", "name"], @@ -141,13 +201,13 @@ "id": "e2e3a3e4-196c-483d-ac52-de4027636a05", "comment": "", "command": "type", - "target": "id=/metadataFile", + "target": "id=root_metadataFile", "targets": [ - ["id=/metadataFile", "id"], - ["name=field8", "name"], - ["css=#\\/metadataFile", "css:finder"], - ["xpath=//input[@id='/metadataFile']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_metadataFile", "id"], + ["css=#root_metadataFile", "css:finder"], + ["xpath=//input[@id='root_metadataFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "%{idp.home}/metadata.txt" }, { @@ -171,13 +231,12 @@ "id": "8197c49f-a70f-46dd-919e-58fff0e14075", "comment": "", "command": "click", - "target": "css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", + "target": "css=.row:nth-child(1) > .col-12 .toggle-button", "targets": [ - ["css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/reloadableMetadataResolverAttributes/minRefreshDelay-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.row:nth-child(1) > .col-12 .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -191,14 +250,16 @@ "id": "0f1a7a34-0955-45bb-bd2a-a5e4f246869b", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/minRefreshDelay__option--1", + "target": "id=option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "targets": [ - ["id=/reloadableMetadataResolverAttributes/minRefreshDelay__option--1", "id"], - ["css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay__option--1", "css:finder"], - ["xpath=//li[@id='/reloadableMetadataResolverAttributes/minRefreshDelay__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/reloadableMetadataResolverAttributes/minRefreshDelay__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'PT30S')]", "xpath:innerText"] + ["id=option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { @@ -212,12 +273,12 @@ "id": "64d0912a-0244-4f5e-818f-17000c01477b", "comment": "", "command": "click", - "target": "css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay-container .btn", + "target": "css=.row:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -231,33 +292,36 @@ "id": "80a08176-de7d-4938-8d49-1d296a8ba27c", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/maxRefreshDelay__option--2", + "target": "id=option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-2", "targets": [ - ["id=/reloadableMetadataResolverAttributes/maxRefreshDelay__option--2", "id"], - ["css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay__option--2", "css:finder"], - ["xpath=//li[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-2", "id"], + ["linkText=PT1M", "linkText"], + ["css=#option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'PT1M')]", "xpath:innerText"] ], "value": "" }, { "id": "f5d73c96-8567-40da-8c7e-be7524050cb8", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "targets": [ - ["id=/reloadableMetadataResolverAttributes/refreshDelayFactor", "id"], - ["name=field14", "name"], - ["css=#\\/reloadableMetadataResolverAttributes\\/refreshDelayFactor", "css:finder"], - ["xpath=//input[@id='/reloadableMetadataResolverAttributes/refreshDelayFactor']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "id"], + ["css=#root_reloadableMetadataResolverAttributes_refreshDelayFactor", "css:finder"], + ["xpath=//input[@id='root_reloadableMetadataResolverAttributes_refreshDelayFactor']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "85e3eefd-43e7-43b7-b33e-a2c75149ba0c", "comment": "", "command": "type", - "target": "id=/reloadableMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "targets": [ ["id=/reloadableMetadataResolverAttributes/refreshDelayFactor", "id"], ["name=field14", "name"], @@ -276,18 +340,6 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "c5fbaf24-139b-4886-a437-ef41a695bbc9", - "comment": "", - "command": "click", - "target": "css=.custom-control-label", - "targets": [ - ["css=.custom-control-label", "css:finder"], - ["xpath=//div[@id='/enabled.parent']/label", "xpath:idRelative"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Metadata Provider?')]", "xpath:innerText"] - ], - "value": "" }, { "id": "7fcdaee3-5714-4c5a-93a7-b1b15c6b24e1", "comment": "", @@ -302,542 +354,28 @@ "id": "11d71ffb-3372-41cb-9832-72755ef298b5", "comment": "", "command": "click", - "target": "css=.btn:nth-child(2) > translate-i18n", - "targets": [ - ["css=.btn:nth-child(2) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/button/translate-i18n", "xpath:idRelative"], - ["xpath=//div/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Filters')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "b7312cb1-744c-429f-a6fa-58635f7a1fea", - "comment": "", - "command": "click", - "target": "css=#filters .actions span", - "targets": [ - ["css=#filters .actions span", "css:finder"], - ["xpath=//div[@id='filters']/div/div/a/span", "xpath:idRelative"], - ["xpath=//div/a/span", "xpath:position"], - ["xpath=//span[contains(.,'Add Filter')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "2ba34b77-bac1-48f4-b2ef-c3a4f93e9b51", - "comment": "", - "command": "select", - "target": "name=type", - "targets": [], - "value": "label=EntityAttributes" - }, { - "id": "73f3151e-9a9f-4f6c-b3d4-93560b3e42bb", - "comment": "", - "command": "click", - "target": "css=option:nth-child(2)", - "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='EntityAttributes']", "xpath:attributes"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'EntityAttributes')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "a8ee94c0-d4f2-47f1-974e-09308193e6dd", - "comment": "", - "command": "waitForElementVisible", - "target": "id=/name", - "targets": [], - "value": "10000" - }, { - "id": "3edb4fc7-f24c-440b-8403-974304f0b4ac", - "comment": "", - "command": "type", - "target": "id=/name", - "targets": [ - ["id=/name", "id"], - ["name=field18", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], - ["xpath=//input", "xpath:position"] - ], - "value": "Entity Attributes" - }, { - "id": "36dac228-9203-4f2e-a623-db41ef8c019f", - "comment": "", - "command": "pause", - "target": "5000", - "targets": [], - "value": "" - }, { - "id": "f2c07797-07f6-4325-8c5f-57a676dc982c", - "comment": "", - "command": "click", - "target": "id=/entityAttributesFilterTarget.valuedd", - "targets": [ - ["id=/entityAttributesFilterTarget.valuedd", "id"], - ["css=#\\/entityAttributesFilterTarget\\.valuedd", "css:finder"], - ["xpath=//button[@id='/entityAttributesFilterTarget.valuedd']", "xpath:attributes"], - ["xpath=//fieldset/div/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Entity ID')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "1c424cfa-8201-40df-b8ed-ddec065dfd66", - "comment": "", - "command": "pause", - "target": "5000", - "targets": [], - "value": "" - }, { - "id": "bca61e15-7c13-4007-8c90-1a667bbef67d", - "comment": "", - "command": "click", - "target": "linkText=Regex", - "targets": [ - ["linkText=Regex", "linkText"], - ["css=.dropdown-item:nth-child(2)", "css:finder"], - ["xpath=//a[contains(text(),'Regex')]", "xpath:link"], - ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], - ["xpath=//div/div/a[2]", "xpath:position"], - ["xpath=//a[contains(.,'Regex')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "98f6eea0-36ff-449c-b042-98b87f0d3a70", - "comment": "", - "command": "pause", - "target": "5000", - "targets": [], - "value": "" - }, { - "id": "e0c65de5-d74a-4d87-aca0-9e9f4b37fb36", - "comment": "", - "command": "click", - "target": "id=/entityAttributesFilterTarget.target", - "targets": [ - ["id=/entityAttributesFilterTarget.target", "id"], - ["name=script", "name"], - ["css=#\\/entityAttributesFilterTarget\\.target", "css:finder"], - ["xpath=//input[@id='/entityAttributesFilterTarget.target']", "xpath:attributes"], - ["xpath=//div/div/input", "xpath:position"] - ], - "value": "" - }, { - "id": "70a43e87-7180-4761-8f64-d69c7c7557e5", - "comment": "", - "command": "sendKeys", - "target": "id=/entityAttributesFilterTarget.target", - "targets": [], - "value": "/foo.*/" - }, { - "id": "ce3cf65a-40bd-43fe-beb7-dc3e1d79927b", - "comment": "", - "command": "click", - "target": "css=#\\/filterEnabled\\.parent > .custom-control-label", - "targets": [ - ["css=#\\/filterEnabled\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/filterEnabled.parent']/label", "xpath:idRelative"], - ["xpath=//checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Filter?')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "2eea7d5e-e992-4c85-94da-4537e4863228", - "comment": "", - "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/signAssertion\\.parent > .custom-control-label", - "targets": [ - ["css=#\\/relyingPartyOverrides\\/signAssertion\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/signAssertion.parent']/label", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Sign the Assertion?')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "f34181b8-eac5-4ce7-8776-0f87cf938503", - "comment": "", - "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/dontSignResponse\\.parent > .custom-control-label", - "targets": [ - ["css=#\\/relyingPartyOverrides\\/dontSignResponse\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/dontSignResponse.parent']/label", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"] - ], - "value": "" - }, { - "id": "06699eac-9dcc-46ea-a520-bd8117deab97", - "comment": "", - "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/turnOffEncryption\\.parent > .custom-control-label", - "targets": [ - ["css=#\\/relyingPartyOverrides\\/turnOffEncryption\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/turnOffEncryption.parent']/label", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Turn off Encryption of Response?')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "891515dc-c75b-45f7-b33e-05760891e9aa", - "comment": "", - "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/forceAuthn\\.parent > .custom-control-label", - "targets": [ - ["css=#\\/relyingPartyOverrides\\/forceAuthn\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/forceAuthn.parent']/label", "xpath:idRelative"], - ["xpath=//div[10]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Force AuthN')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "1c315922-1f5a-43a5-97fd-1767f3392471", - "comment": "", - "command": "click", - "target": "css=tr:nth-child(5) .custom-control-label", - "targets": [ - ["css=tr:nth-child(5) .custom-control-label", "css:finder"], - ["xpath=//tr[5]/td[2]/fieldset/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Toggle givenName')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "9569fc2c-5b8d-4724-bf1c-5a2a9af253bd", - "comment": "", - "command": "click", - "target": "css=tr:nth-child(9) .custom-control-label", - "targets": [ - ["css=tr:nth-child(9) .custom-control-label", "css:finder"], - ["xpath=//tr[9]/td[2]/fieldset/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Toggle eduPersonEntitlement')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "f2cfdab4-af65-45b5-b62a-56935ae15637", - "comment": "", - "command": "click", - "target": "css=.btn-primary", - "targets": [ - ["css=.btn-primary", "css:finder"], - ["xpath=//button[@type='submit']", "xpath:attributes"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Save')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "86d92dcf-e856-4578-8a0d-25b4121ad69e", - "comment": "", - "command": "waitForElementVisible", - "target": "linkText=Add Filter", - "targets": [ - ["linkText=Add Filter", "linkText"], - ["css=.btn-success", "css:finder"], - ["xpath=//a[contains(@href, '/metadata/provider/45943457-0dd0-486b-b111-19ae6dd6896c/filter/new')]", "xpath:href"], - ["xpath=//div[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Add Filter')]", "xpath:innerText"] - ], - "value": "10000" - }, { - "id": "bc3e5810-89fb-42de-92da-e9336b29ebd3", - "comment": "", - "command": "click", - "target": "linkText=Add Filter", - "targets": [ - ["linkText=Add Filter", "linkText"], - ["css=.btn-success", "css:finder"], - ["xpath=//a[contains(@href, '/metadata/provider/dbc814ac-890b-4f11-b3e0-3a2d667fa5cd/filter/new')]", "xpath:href"], - ["xpath=//div[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Add Filter')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "eab53a0d-32e6-4cb1-844b-d5fae8106820", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "094ce013-936c-4479-9c5b-ba26db4d05c9", - "comment": "", - "command": "waitForElementVisible", - "target": "name=type", - "targets": [ - ["name=type", "name"], - ["css=.form-control", "css:finder"], - ["xpath=//select[@name='type']", "xpath:attributes"], - ["xpath=//select", "xpath:position"] - ], - "value": "10000" - }, { - "id": "f6d537b3-74ab-430f-9688-b7c90516cfc0", - "comment": "", - "command": "select", - "target": "name=type", - "targets": [], - "value": "label=NameIDFormat" - }, { - "id": "85556730-f474-42bd-8c04-2620c8814202", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "471c00e2-52d8-4cf7-a071-00b50c98bf9e", - "comment": "", - "command": "waitForElementVisible", - "target": "id=/name", - "targets": [], - "value": "10000" - }, { - "id": "8b0dfae1-5e58-4943-ae62-cad5d32ea203", - "comment": "", - "command": "type", - "target": "id=/name", - "targets": [ - ["id=/name", "id"], - ["name=field37", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], - ["xpath=//input", "xpath:position"] - ], - "value": "Name ID Filter" - }, { - "id": "ec49b089-a390-4cff-904f-363d3a57cb76", - "comment": "", - "command": "click", - "target": "id=/nameIdFormatFilterTarget.valuedd", - "targets": [ - ["id=/nameIdFormatFilterTarget.valuedd", "id"], - ["css=#\\/nameIdFormatFilterTarget\\.valuedd", "css:finder"], - ["xpath=//button[@id='/nameIdFormatFilterTarget.valuedd']", "xpath:attributes"], - ["xpath=//fieldset/div/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Entity ID')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "56abaabc-0c96-428c-9070-62a79ba90c6c", - "comment": "", - "command": "click", - "target": "linkText=Entity ID", - "targets": [ - ["linkText=Entity ID", "linkText"], - ["css=.show > .dropdown-item:nth-child(1)", "css:finder"], - ["xpath=//a[contains(text(),'Entity ID')]", "xpath:link"], - ["xpath=//a[contains(@href, '#')]", "xpath:href"], - ["xpath=//div/div/a", "xpath:position"], - ["xpath=//a[contains(.,'Entity ID')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "3f8bc2f3-ee80-410f-aa5d-33aea08bf991", - "comment": "", - "command": "type", - "target": "id=/nameIdFormatFilterTarget.target", - "targets": [ - ["id=/nameIdFormatFilterTarget.target", "id"], - ["css=#\\/nameIdFormatFilterTarget\\.target", "css:finder"], - ["xpath=//input[@id='/nameIdFormatFilterTarget.target']", "xpath:attributes"], - ["xpath=//div[@id='-container']/div/input", "xpath:idRelative"], - ["xpath=//div/div/input", "xpath:position"] - ], - "value": "unicon" - }, { - "id": "7129e60b-fecc-436f-b055-0f377ade83f8", - "comment": "", - "command": "click", - "target": "css=.btn-success:nth-child(1)", - "targets": [ - ["css=.btn-success:nth-child(1)", "css:finder"], - ["xpath=//div[2]/button", "xpath:position"], - ["xpath=//button[contains(.,'Add Entity ID')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "93a29942-d580-412b-b151-9961fd1495d0", - "comment": "", - "command": "click", - "target": "css=#\\/filterEnabled\\.parent > .custom-control-label", - "targets": [ - ["css=#\\/filterEnabled\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/filterEnabled.parent']/label", "xpath:idRelative"], - ["xpath=//checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Filter?')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "c0ab05f8-13f7-4e4a-bf02-2118629eca43", - "comment": "", - "command": "click", - "target": "css=.btn-success > translate-i18n", - "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//array-component/div/div/button/translate-i18n", "xpath:position"] - ], - "value": "" - }, { - "id": "f0b7296b-004d-445e-9ebd-6bbd9052b30f", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "028122a4-7a5c-4ee9-afb9-5f7d491cc9bd", - "comment": "", - "command": "click", - "target": "css=.input-group-append > .btn", - "targets": [ - ["css=.input-group-append > .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/formats/0-container']/div/div/button", "xpath:idRelative"], - ["xpath=//auto-complete/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "e3c2c21f-408c-48f2-a2dd-9241123f0ead", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "e50612f4-b0e4-4749-99ec-5c67e66cd398", - "comment": "", - "command": "click", - "target": "id=/formats/0__option--1", - "targets": [ - ["id=/formats/0__option--1", "id"], - ["css=#\\/formats\\/0__option--1", "css:finder"], - ["xpath=//li[@id='/formats/0__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/formats/0__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"] - ], - "value": "" - }, { - "id": "952930b1-160e-42cd-9be5-c44f397a1451", - "comment": "", - "command": "click", - "target": "css=.btn-primary", - "targets": [ - ["css=.btn-primary", "css:finder"], - ["xpath=//button[@type='submit']", "xpath:attributes"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Save')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "eca1d3dd-9e47-49d2-b4a1-a45c2b6c8c3a", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "d722902b-5c10-45dc-99df-d96f46e78313", - "comment": "", - "command": "assertText", - "target": "css=.list-group-item:nth-child(1) span:nth-child(4)", - "targets": [ - ["css=.list-group-item:nth-child(1) span:nth-child(4)", "css:finder"], - ["xpath=//div[@id='filters']/filter-configuration-list/ul/li/filter-configuration-list-item/div/span[2]", "xpath:idRelative"], - ["xpath=//filter-configuration-list-item/div/span[2]", "xpath:position"], - ["xpath=//span[contains(.,'EntityAttributes')]", "xpath:innerText"] - ], - "value": "EntityAttributes" - }, { - "id": "c8d9bc5a-4b7e-4178-8aba-8b8280506c20", - "comment": "", - "command": "click", - "target": "css=.list-group-item:nth-child(1) .btn:nth-child(2)", - "targets": [ - ["css=.list-group-item:nth-child(1) .btn:nth-child(2)", "css:finder"], - ["xpath=//div[@id='filters']/filter-configuration-list/ul/li/filter-configuration-list-item/div/div/button[2]", "xpath:idRelative"], - ["xpath=//button[2]", "xpath:position"] - ], - "value": "" - }, { - "id": "d25400e1-127e-4b8c-b7e2-ade937cfd5a0", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "d7909094-96ce-4532-98b4-446cc013c9c8", - "comment": "", - "command": "assertText", - "target": "css=.list-group-item:nth-child(1) span:nth-child(4)", - "targets": [ - ["css=tr:nth-child(1) > .td-lg:nth-child(4)", "css:finder"], - ["xpath=//td[4]", "xpath:position"], - ["xpath=//td[contains(.,'NameIDFormat')]", "xpath:innerText"] - ], - "value": "NameIDFormat" - }, { - "id": "d49c5a8e-35f3-4498-a53b-2b03fcc79552", - "comment": "", - "command": "click", - "target": "css=.nav-item translate-i18n", - "targets": [ - ["css=.nav-item translate-i18n", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li[2]/a/translate-i18n", "xpath:idRelative"], - ["xpath=//a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Dashboard')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "fc58a8d5-f526-4a7c-8475-dbfbeae5cec4", - "comment": "", - "command": "click", - "target": "linkText=Metadata Providers", - "targets": [ - ["linkText=Metadata Providers", "linkText"], - ["css=.nav > .nav-item:nth-child(2) > .nav-link", "css:finder"], - ["xpath=//a[contains(text(),'Metadata Providers')]", "xpath:link"], - ["xpath=//a[contains(@href, '/dashboard/metadata/manager/providers')]", "xpath:href"], - ["xpath=//dashboard-page/div/ul/li[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Metadata Providers')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "fbdf6b10-dd49-402c-8a2f-c8b837505b05", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "1d36be5e-e705-4528-bd80-ae3566cb9b6a", - "comment": "", - "command": "click", "target": "linkText=Filesystem Metadata Provider", "targets": [ ["linkText=Filesystem Metadata Provider", "linkText"], - ["css=td > a", "css:finder"], + ["css=.align-middle > a", "css:finder"], ["xpath=//a[contains(text(),'Filesystem Metadata Provider')]", "xpath:link"], - ["xpath=//a[contains(@href, '/metadata/provider/c90805c1-6468-4164-b9f1-fad547d31232/configuration/options')]", "xpath:href"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/e0822374-6322-4f89-be89-8342b633832a/configuration/options')]", "xpath:href"], ["xpath=//td[2]/a", "xpath:position"], ["xpath=//a[contains(.,'Filesystem Metadata Provider')]", "xpath:innerText"] ], "value": "" - }, { - "id": "465f12fa-e547-4a1b-bea7-7998efca7f85", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" }, { "id": "73335934-98c5-4427-9e05-13ddc7f00432", "comment": "", "command": "click", - "target": "css=.btn-link:nth-child(1) > translate-i18n", + "target": "css=.mb-4:nth-child(3) .edit-link", "targets": [ - ["css=.btn-link:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/a/translate-i18n", "xpath:idRelative"], - ["xpath=//div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Version History')]", "xpath:innerText"] + ["css=.mb-4:nth-child(3) .edit-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div/div/button", "xpath:idRelative"], + ["xpath=//section/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Edit')]", "xpath:innerText"] ], "value": "" }, { @@ -848,49 +386,23 @@ "targets": [], "value": "" }, { - "id": "cc66db21-0f0b-4d85-8ce6-775c3e58de89", + "id": "d8d952d1-185d-416f-be13-fdbc87296c69", "comment": "", - "command": "click", - "target": "css=tr:nth-child(1) a", - "targets": [ - ["linkText=Sep 25, 2019 22:44:09 (Current)", "linkText"], - ["css=tr:nth-child(1) a", "css:finder"], - ["xpath=//a[contains(@href, '/metadata/provider/c90805c1-6468-4164-b9f1-fad547d31232/configuration/options')]", "xpath:href"], - ["xpath=//td[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Sep 25, 2019 22:44:09 (Current)')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "0aab0bfa-7866-41ea-a58c-9b6e8fb52bbc", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "976c8149-9620-490c-887b-a23226619f0d", - "comment": "", - "command": "click", - "target": "css=.mb-4:nth-child(1) .actions span", + "command": "type", + "target": "id=root_name", "targets": [ - ["css=.mb-4:nth-child(1) .actions span", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div/div/button/span", "xpath:idRelative"], - ["xpath=//div/button/span", "xpath:position"], - ["xpath=//span[contains(.,'Edit')]", "xpath:innerText"] + ["id=root_name", "id"], + ["css=#root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" - }, { - "id": "6796aa25-00fa-4cf2-9a74-0c0aa6151863", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" }, { "id": "0362fb34-4886-4f0d-8190-e006dc46df7c", "comment": "", "command": "type", - "target": "id=/name", + "target": "id=root_name", "targets": [ ["id=/name", "id"], ["name=field61", "name"], @@ -899,28 +411,44 @@ ["xpath=//input", "xpath:position"] ], "value": "Filesystem Metadata Provider V2" + }, { + "id": "c65164cd-76e4-464e-ad58-b2961b1facf2", + "comment": "", + "command": "click", + "target": "id=root_xmlId", + "targets": [], + "value": "" + }, { + "id": "b4d5835a-f830-46b7-9b0b-039fc1ca86f3", + "comment": "", + "command": "type", + "target": "id=root_xmlId", + "targets": [], + "value": "" }, { "id": "9d0539c7-e34c-4229-bbcf-d2c9fd499db4", "comment": "", "command": "type", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ - ["id=/xmlId", "id"], - ["name=field64", "name"], - ["css=#\\/xmlId", "css:finder"], - ["xpath=//input[@id='/xmlId']", "xpath:attributes"], - ["xpath=//fieldset[2]/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/input", "xpath:position"] ], "value": "123456" }, { "id": "93d98797-5117-4aca-ace8-c6c7e79976ee", "comment": "", "command": "click", - "target": "css=.btn-info > translate-i18n", + "target": "css=.btn-info", "targets": [ - ["css=.btn-info > translate-i18n", "css:finder"], - ["xpath=//div[2]/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Save')]", "xpath:innerText"] + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,' Save')]", "xpath:innerText"] ], "value": "" }, { @@ -934,10 +462,10 @@ "id": "a5885119-3102-4d0a-a0ea-d5517a94c6d8", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(1) .text-truncate", + "target": "css=div:nth-child(2) > div:nth-child(1) > .d-flex > .text-truncate", "targets": [ - ["css=.d-block > primitive-property:nth-child(1) .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], + ["css=div:nth-child(2) > div:nth-child(1) > .d-flex > .text-truncate", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], ["xpath=//div/span[2]", "xpath:position"] ], "value": "Filesystem Metadata Provider V2" @@ -945,105 +473,27 @@ "id": "23281755-0ef4-404d-bf3f-626bcc495710", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(3) .text-truncate", + "target": "css=div:nth-child(2) > div:nth-child(3) .text-truncate", "targets": [ - ["css=.d-block > primitive-property:nth-child(3) .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property[3]/div/div/span[2]", "xpath:idRelative"], - ["xpath=//primitive-property[3]/div/div/span[2]", "xpath:position"], + ["css=div:nth-child(2) > div:nth-child(3) .text-truncate", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[3]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'123456')]", "xpath:innerText"] ], "value": "123456" - }, { - "id": "39bf8d48-8a95-42fa-8e9e-fe76584f05d1", - "comment": "", - "command": "click", - "target": "css=.btn:nth-child(2) > translate-i18n", - "targets": [ - ["css=.btn:nth-child(2) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/button/translate-i18n", "xpath:idRelative"], - ["xpath=//div/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Filters')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "642991a1-3ab6-4941-a524-62b9d6307cd1", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "c7163d8a-e960-4156-a41c-7d1ce46ad815", - "comment": "", - "command": "click", - "target": "css=.list-group-item:nth-child(1) > filter-configuration-list-item > .d-flex > .btn", - "targets": [ - ["css=.list-group-item:nth-child(1) > filter-configuration-list-item > .d-flex > .btn", "css:finder"], - ["xpath=//div[@id='filters']/filter-configuration-list/ul/li/filter-configuration-list-item/div/button", "xpath:idRelative"], - ["xpath=//filter-configuration-list-item/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Name ID Filter')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "75e9b3fa-b677-4a8d-8175-cbb76c59beb5", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "b24c91ba-4b08-4467-abef-8b5a9f02da8f", - "comment": "", - "command": "click", - "target": "css=.justify-content-between > .btn:nth-child(1) > translate-i18n", - "targets": [ - ["css=.justify-content-between > .btn:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div[@id='filters']/filter-configuration-list/ul/li/filter-configuration-list-item/div[2]/div/div/a/translate-i18n", "xpath:idRelative"], - ["xpath=//div[2]/div/div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Edit')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "ea24e7e6-4580-4875-b56f-f965765b4c86", - "comment": "", - "command": "type", - "target": "id=/name", - "targets": [ - ["id=/name", "id"], - ["name=field68", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] - ], - "value": "Name ID Filter V2" - }, { - "id": "094f38d5-ed9f-4d23-9ad2-c25c0c8befc0", - "comment": "", - "command": "click", - "target": "css=.btn-primary > translate-i18n", - "targets": [ - ["css=.btn-primary > translate-i18n", "css:finder"], - ["xpath=//div[2]/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Save')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "4ff30289-7e28-4402-bc9d-df75864fed75", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" }, { "id": "3b5e6867-ef70-4e49-9a47-f560c76b7959", "comment": "", "command": "click", - "target": "css=.nav-item translate-i18n", + "target": "linkText=Dashboard", "targets": [ - ["css=.nav-item translate-i18n", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li[2]/a/translate-i18n", "xpath:idRelative"], - ["xpath=//a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Dashboard')]", "xpath:innerText"] + ["linkText=Dashboard", "linkText"], + ["css=.nav-link:nth-child(3)", "css:finder"], + ["xpath=//a[contains(text(),'Dashboard')]", "xpath:link"], + ["xpath=//div[@id='basic-navbar-nav']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/dashboard')]", "xpath:href"], + ["xpath=//nav/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Dashboard')]", "xpath:innerText"] ], "value": "" }, { @@ -1099,12 +549,14 @@ "id": "d1645987-c4a3-473a-b830-48559708d23a", "comment": "", "command": "click", - "target": "css=.btn-link:nth-child(1) > translate-i18n", + "target": "linkText=Version History", "targets": [ - ["css=.btn-link:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/a/translate-i18n", "xpath:idRelative"], - ["xpath=//div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Version History')]", "xpath:innerText"] + ["linkText=Version History", "linkText"], + ["css=div:nth-child(1) > .btn-link", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/bc5546b8-ca7f-46ed-b0f8-0cc41deeb48b/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] ], "value": "" }, { @@ -1139,76 +591,96 @@ "id": "00c205c8-aa6d-4627-b063-ea8f8a02c7e9", "comment": "", "command": "click", - "target": "css=.btn-primary > translate-i18n", + "target": "css=.btn-primary", "targets": [ - ["css=.btn-primary > translate-i18n", "css:finder"], - ["xpath=//history-list/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Compare Selected')]", "xpath:innerText"] + ["css=.btn-primary", "css:finder"], + ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/button", "xpath:idRelative"], + ["xpath=//section/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Compare Selected(2)')]", "xpath:innerText"] ], "value": "" }, { - "id": "c5f5881d-c6e3-4392-a1c1-6889b4b548b8", + "id": "d0daca95-3b1b-4bb9-9479-354fe1772b3d", "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" + "command": "waitForElementVisible", + "target": "css=div:nth-child(1) > .bg-diff > .d-block:nth-child(2)", + "targets": [ + ["css=div:nth-child(1) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], + ["xpath=//div/span[2]", "xpath:position"] + ], + "value": "30000" }, { - "id": "78d01216-5d2b-4067-a830-95eae9356738", + "id": "b7a0200a-a5d2-45a4-85f0-f296bdcf6f19", "comment": "", - "command": "click", - "target": "css=.d-flex:nth-child(1) > .border-primary:nth-child(2) .fa", + "command": "assertText", + "target": "css=div:nth-child(1) > .bg-diff > .d-block:nth-child(2)", "targets": [ - ["css=.d-flex:nth-child(1) > .border-primary:nth-child(2) .fa", "css:finder"], - ["xpath=//div[2]/div/button/i", "xpath:position"] + ["css=div:nth-child(1) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], + ["xpath=//div/span[2]", "xpath:position"] ], - "value": "" + "value": "Filesystem Metadata Provider V2" }, { - "id": "2cd5f1b5-f20d-44b9-b9aa-bd9079766088", + "id": "5949a120-cb3d-4511-b984-15cbca2d9479", "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" + "command": "waitForElementVisible", + "target": "css=div:nth-child(1) > .bg-diff > .d-block:nth-child(3)", + "targets": [ + ["css=div:nth-child(1) > .bg-diff > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[3]", "xpath:idRelative"], + ["xpath=//span[3]", "xpath:position"] + ], + "value": "30000" + }, { + "id": "21107eab-53b5-49ad-8206-ed759b545253", + "comment": "", + "command": "assertText", + "target": "css=div:nth-child(1) > .bg-diff > .d-block:nth-child(3)", + "targets": [ + ["css=div:nth-child(1) > .bg-diff > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[3]", "xpath:idRelative"], + ["xpath=//span[3]", "xpath:position"] + ], + "value": "Filesystem Metadata Provider" }, { - "id": "dd7b9b74-ebf1-45b8-a91a-627f06f83996", + "id": "3f6d78dc-bddd-4b59-a39b-1b2f303c380d", "comment": "", "command": "click", - "target": "css=.btn-primary > translate-i18n", + "target": "id=toggleLimited", "targets": [ - ["css=.btn-primary > translate-i18n", "css:finder"], - ["xpath=//div[3]/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Compare Selected')]", "xpath:innerText"] + ["id=toggleLimited", "id"], + ["name=toggleLimited", "name"], + ["css=#toggleLimited", "css:finder"], + ["xpath=//input[@id='toggleLimited']", "xpath:attributes"], + ["xpath=//div[@id='navigation']/div[2]/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { - "id": "08c5c802-f699-4eca-a727-8130db305f43", + "id": "6cb2ac52-6f75-4de3-9fad-4b077af33e4b", "comment": "", "command": "assertText", - "target": "css=.bg-diff > .d-block:nth-child(2)", + "target": "css=div:nth-child(2) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=.bg-diff > .d-block:nth-child(2)", "css:finder"], - ["xpath=//section[2]/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:position"], - ["xpath=//span[contains(.,'Name ID Filter V2')]", "xpath:innerText"] + ["css=div:nth-child(2) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[2]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'123456')]", "xpath:innerText"] ], - "value": "Name ID Filter V2" + "value": "123456" }, { - "id": "974ef62f-ae68-4c32-b439-b4ca8666aaa5", + "id": "3ba534bc-308f-4844-b8bf-a18f3ef61ea6", "comment": "", "command": "assertText", - "target": "css=.bg-diff > .d-block:nth-child(3)", + "target": "css=div:nth-child(2) > .d-flex > .d-block:nth-child(3)", "targets": [ - ["css=.bg-diff > .d-block:nth-child(3)", "css:finder"], - ["xpath=//section[2]/div/div[2]/object-property/primitive-property/div/div/span[3]", "xpath:position"] + ["css=div:nth-child(2) > .d-flex > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[2]/div/span[3]", "xpath:idRelative"], + ["xpath=//div[2]/div/span[3]", "xpath:position"] ], - "value": "Name ID Filter" - }, { - "id": "5a4e74b2-fe33-462a-9739-37b2ffb099f0", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" + "value": "12345" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1364-3.side b/backend/src/integration/resources/SHIBUI-1364-3.side index 81490d195..a0e7435a9 100644 --- a/backend/src/integration/resources/SHIBUI-1364-3.side +++ b/backend/src/integration/resources/SHIBUI-1364-3.side @@ -41,51 +41,84 @@ "id": "185a1e41-d3a3-4627-aae2-7f05059e9c7d", "comment": "", "command": "click", - "target": "name=submit", + "target": "css=.btn", "targets": [ - ["name=submit", "name"], - ["css=td:nth-child(1) > input", "css:finder"], - ["xpath=//input[@name='submit']", "xpath:attributes"], - ["xpath=//tr[3]/td/input", "xpath:position"] + ["css=.btn", "css:finder"], + ["xpath=//button[@type='submit']", "xpath:attributes"], + ["xpath=//button", "xpath:position"], + ["xpath=//button[contains(.,'Sign in')]", "xpath:innerText"] ], "value": "" + }, { + "id": "d16b90c9-d127-49d1-bf8b-8b83731ba1a5", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "ea082b0b-1208-4dc5-b0a8-0a8591ddf9f5", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "d71bf880-6a80-4cce-bcdd-ecc34e86cea8", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "94e01321-ac2d-427f-89a5-7f816cea0f00", "comment": "", "command": "click", - "target": "css=#addNewDropdown > translate-i18n", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=#addNewDropdown > translate-i18n", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/translate-i18n", "xpath:idRelative"], - ["xpath=//translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Add New')]", "xpath:innerText"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "c65500ae-3b08-4c22-8c88-b4116d6e0c9b", "comment": "", "command": "click", - "target": "linkText=Metadata Provider", + "target": "id=metadata-nav-dropdown-provider", "targets": [ - ["linkText=Metadata Provider", "linkText"], - ["css=.nav-link:nth-child(2)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a[2]", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[3]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"] + ["id=metadata-nav-dropdown-provider", "id"], + ["linkText=Add a new metadata provider", "linkText"], + ["css=#metadata-nav-dropdown-provider", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata provider')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-provider']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/new')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata provider')]", "xpath:innerText"] ], "value": "" }, { "id": "c5ec3177-5a66-4901-a644-8c6cfbb99254", "comment": "", "command": "waitForElementVisible", - "target": "id=/name", - "targets": [], + "target": "name=name", + "targets": [ + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "d093ad38-ab2d-4441-a60b-2c094d6938f9", "comment": "", "command": "type", - "target": "id=/name", + "target": "name=name", "targets": [ ["id=/name", "id"], ["name=field4", "name"], @@ -94,19 +127,26 @@ ["xpath=//input", "xpath:position"] ], "value": "Local Dynamic Metadata Provider" + }, { + "id": "166ad43a-f000-4c20-813a-2e7255d863b8", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" }, { "id": "aac150b1-6140-476b-8bdb-ebb83a14812d", "comment": "", "command": "select", - "target": "id=/type", + "target": "name=type", "targets": [ - ["id=/type", "id"], - ["name=field2", "name"], - ["css=#\\/type", "css:finder"], - ["xpath=//select[@id='/type']", "xpath:attributes"], + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div[2]/select", "xpath:idRelative"], ["xpath=//select", "xpath:position"] ], - "value": "label=LocalDynamicMetadataProvider" + "value": "label=LocalDynamicMetadataResolver" }, { "id": "7a60cb3c-ed3c-495c-8329-2fe52e72cceb", "comment": "", @@ -121,14 +161,20 @@ "id": "8cbc5dce-126e-4fb6-afcd-9651d9be6ba2", "comment": "", "command": "waitForElementVisible", - "target": "id=/xmlId", - "targets": [], + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "c140099c-f6e3-4600-92b3-5b97e07a95ee", "comment": "", "command": "type", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ ["id=/xmlId", "id"], ["name=field7", "name"], @@ -141,13 +187,13 @@ "id": "e2e3a3e4-196c-483d-ac52-de4027636a05", "comment": "", "command": "type", - "target": "id=/sourceDirectory", + "target": "id=root_sourceDirectory", "targets": [ - ["id=/sourceDirectory", "id"], - ["name=field8", "name"], - ["css=#\\/sourceDirectory", "css:finder"], - ["xpath=//input[@id='/sourceDirectory']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_sourceDirectory", "id"], + ["css=#root_sourceDirectory", "css:finder"], + ["xpath=//input[@id='root_sourceDirectory']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "%{idp.home}/foo" }, { @@ -164,12 +210,12 @@ "id": "0586f02c-c210-4e44-9a86-3e914bc94f3b", "comment": "", "command": "type", - "target": "id=/dynamicMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_dynamicMetadataResolverAttributes_refreshDelayFactor", "targets": [ - ["id=/dynamicMetadataResolverAttributes/refreshDelayFactor", "id"], - ["name=field11", "name"], - ["css=#\\/dynamicMetadataResolverAttributes\\/refreshDelayFactor", "css:finder"], - ["xpath=//input[@id='/dynamicMetadataResolverAttributes/refreshDelayFactor']", "xpath:attributes"], + ["id=root_dynamicMetadataResolverAttributes_refreshDelayFactor", "id"], + ["css=.mb-0 > #root_dynamicMetadataResolverAttributes_refreshDelayFactor", "css:finder"], + ["xpath=//input[@id='root_dynamicMetadataResolverAttributes_refreshDelayFactor']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "0.5" @@ -184,13 +230,12 @@ "id": "1a8a9dcf-9c6b-4802-8483-981d14131346", "comment": "", "command": "click", - "target": "css=#\\/dynamicMetadataResolverAttributes\\/minCacheDuration-container .btn", + "target": "css=.row:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/dynamicMetadataResolverAttributes\\/minCacheDuration-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/dynamicMetadataResolverAttributes/minCacheDuration-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.row:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[8]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -204,14 +249,16 @@ "id": "443a9cfc-17c8-49da-9d87-bfabda8fd0b6", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/minCacheDuration__option--0", + "target": "id=option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration-item-0", "targets": [ - ["id=/dynamicMetadataResolverAttributes/minCacheDuration__option--0", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/minCacheDuration__option--0", "css:finder"], - ["xpath=//li[@id='/dynamicMetadataResolverAttributes/minCacheDuration__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/dynamicMetadataResolverAttributes/minCacheDuration__listbox']/li", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li", "xpath:position"], - ["xpath=//li[contains(.,'PT0S')]", "xpath:innerText"] + ["id=option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration-item-0", "id"], + ["linkText=PT0S", "linkText"], + ["css=#option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'PT0S')]", "xpath:innerText"] ], "value": "" }, { @@ -225,12 +272,12 @@ "id": "84f35d35-ea9c-4a06-aaec-bee1c1922aec", "comment": "", "command": "click", - "target": "css=#\\/dynamicMetadataResolverAttributes\\/maxCacheDuration-container .btn", + "target": "css=.row:nth-child(3) > .col-12 > .form-group .toggle-button", "targets": [ - ["css=#\\/dynamicMetadataResolverAttributes\\/maxCacheDuration-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/dynamicMetadataResolverAttributes/maxCacheDuration-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(3) > .col-12 > .form-group .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[3]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -244,13 +291,16 @@ "id": "c03be15d-ee34-4cd1-bac9-c52e3baa70a3", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/maxCacheDuration__option--2", + "target": "id=option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration-item-2", "targets": [ - ["id=/dynamicMetadataResolverAttributes/maxCacheDuration__option--2", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/maxCacheDuration__option--2", "css:finder"], - ["xpath=//li[@id='/dynamicMetadataResolverAttributes/maxCacheDuration__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/dynamicMetadataResolverAttributes/maxCacheDuration__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration-item-2", "id"], + ["linkText=PT1M", "linkText"], + ["css=#option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'PT1M')]", "xpath:innerText"] ], "value": "" }, { @@ -264,12 +314,12 @@ "id": "f0cdfbcf-46e2-4013-b085-0730b0127842", "comment": "", "command": "click", - "target": "css=#\\/dynamicMetadataResolverAttributes\\/maxIdleEntityData-container .btn", + "target": "css=.row:nth-child(4) .toggle-button", "targets": [ - ["css=#\\/dynamicMetadataResolverAttributes\\/maxIdleEntityData-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], - ["xpath=//div[@id='/dynamicMetadataResolverAttributes/maxIdleEntityData-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(4) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[12]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[4]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -283,25 +333,29 @@ "id": "dd663319-7eef-4301-a0d4-24d9583eab7f", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/maxIdleEntityData__option--1", + "target": "id=option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData-item-1", "targets": [ - ["id=/dynamicMetadataResolverAttributes/maxIdleEntityData__option--1", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/maxIdleEntityData__option--1", "css:finder"], - ["xpath=//li[@id='/dynamicMetadataResolverAttributes/maxIdleEntityData__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/dynamicMetadataResolverAttributes/maxIdleEntityData__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[2]", "xpath:position"] + ["id=option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { "id": "25ed1d75-be93-4e20-88ba-57d8ae7bf053", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/removeIdleEntityData.false", + "target": "id=root_dynamicMetadataResolverAttributes_removeIdleEntityData-No", "targets": [ - ["id=/dynamicMetadataResolverAttributes/removeIdleEntityData.false", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/removeIdleEntityData\\.false", "css:finder"], - ["xpath=//input[@id='/dynamicMetadataResolverAttributes/removeIdleEntityData.false']", "xpath:attributes"], - ["xpath=//div[2]/label/input", "xpath:position"] + ["id=root_dynamicMetadataResolverAttributes_removeIdleEntityData-No", "id"], + ["css=#root_dynamicMetadataResolverAttributes_removeIdleEntityData-No", "css:finder"], + ["xpath=//input[@id='root_dynamicMetadataResolverAttributes_removeIdleEntityData-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[5]/div/div/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] ], "value": "" }, { @@ -315,12 +369,12 @@ "id": "54df6d88-1a85-407f-935a-a016f5952a93", "comment": "", "command": "click", - "target": "css=#\\/dynamicMetadataResolverAttributes\\/cleanupTaskInterval-container .btn", + "target": "css=.row:nth-child(6) .toggle-button", "targets": [ - ["css=#\\/dynamicMetadataResolverAttributes\\/cleanupTaskInterval-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], - ["xpath=//div[@id='/dynamicMetadataResolverAttributes/cleanupTaskInterval-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(6) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[15]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[6]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -334,13 +388,16 @@ "id": "e7f2439a-e9a1-4b23-b0b9-d992f5b477d4", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/cleanupTaskInterval__option--3", + "target": "id=option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval-item-3", "targets": [ - ["id=/dynamicMetadataResolverAttributes/cleanupTaskInterval__option--3", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/cleanupTaskInterval__option--3", "css:finder"], - ["xpath=//li[@id='/dynamicMetadataResolverAttributes/cleanupTaskInterval__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/dynamicMetadataResolverAttributes/cleanupTaskInterval__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval-item-3", "id"], + ["linkText=PT10M", "linkText"], + ["css=#option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'PT10M')]", "xpath:innerText"] ], "value": "" }, { @@ -353,18 +410,6 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "d02ae356-8086-4794-97ba-980fc75cca79", - "comment": "", - "command": "click", - "target": "css=.custom-control-label", - "targets": [ - ["css=.custom-control-label", "css:finder"], - ["xpath=//div[@id='/enabled.parent']/label", "xpath:idRelative"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Metadata Provider?')]", "xpath:innerText"] - ], - "value": "" }, { "id": "dc60328b-d6e0-4f62-96c5-012f0fb5edc4", "comment": "", @@ -379,1040 +424,276 @@ "id": "feb08e76-e553-4505-bffe-07f3e77206d0", "comment": "", "command": "click", - "target": "css=.btn:nth-child(2)", + "target": "linkText=Local Dynamic Metadata Provider", "targets": [ - ["css=.btn:nth-child(2) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/button/translate-i18n", "xpath:idRelative"], - ["xpath=//div/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Filters')]", "xpath:innerText"] + ["linkText=Local Dynamic Metadata Provider", "linkText"], + ["css=tr:nth-child(2) a", "css:finder"], + ["xpath=//a[contains(text(),'Local Dynamic Metadata Provider')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr[2]/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/2895bcd1-615c-4fa7-9e47-e2c2284014dd/configuration/options')]", "xpath:href"], + ["xpath=//tr[2]/td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Local Dynamic Metadata Provider')]", "xpath:innerText"] ], "value": "" }, { - "id": "2afa209b-d09b-468e-8cc3-d549abb3be4a", + "id": "45fe6404-6af7-4be0-8f21-2dcf378d0060", "comment": "", "command": "click", - "target": "css=#filters .actions span", + "target": "linkText=Dashboard", "targets": [ - ["css=#filters .actions span", "css:finder"], - ["xpath=//div[@id='filters']/div/div/a/span", "xpath:idRelative"], - ["xpath=//div/a/span", "xpath:position"], - ["xpath=//span[contains(.,'Add Filter')]", "xpath:innerText"] + ["linkText=Dashboard", "linkText"], + ["css=.nav-link:nth-child(3)", "css:finder"], + ["xpath=//a[contains(text(),'Dashboard')]", "xpath:link"], + ["xpath=//div[@id='basic-navbar-nav']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/dashboard')]", "xpath:href"], + ["xpath=//nav/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Dashboard')]", "xpath:innerText"] ], "value": "" }, { - "id": "c4e0394c-ba68-4e75-8d20-174a91fad2f5", - "comment": "", - "command": "select", - "target": "name=type", - "targets": [], - "value": "label=EntityAttributes" - }, { - "id": "5f1229fb-9185-40cf-bd65-76435d93d7df", + "id": "beb584cd-c6a8-440e-bf38-b5bd2be71e9e", "comment": "", "command": "click", - "target": "css=option:nth-child(2)", + "target": "linkText=Metadata Providers", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='EntityAttributes']", "xpath:attributes"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'EntityAttributes')]", "xpath:innerText"] + ["linkText=Metadata Providers", "linkText"], + ["css=.nav > .nav-item:nth-child(2) > .nav-link", "css:finder"], + ["xpath=//a[contains(text(),'Metadata Providers')]", "xpath:link"], + ["xpath=//a[contains(@href, '/dashboard/metadata/manager/providers')]", "xpath:href"], + ["xpath=//dashboard-page/div/ul/li[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Metadata Providers')]", "xpath:innerText"] ], "value": "" }, { - "id": "03f838cb-2aea-40fa-b549-8263aa2046cf", + "id": "29e8f9ac-e02f-46e1-9765-5d7003e37f26", "comment": "", - "command": "click", - "target": "id=/name", - "targets": [ - ["id=/name", "id"], - ["name=field20", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], - ["xpath=//input", "xpath:position"] - ], + "command": "pause", + "target": "2000", + "targets": [], "value": "" }, { - "id": "ad127dfe-2cae-4693-b65f-e35c0655e9eb", - "comment": "", - "command": "type", - "target": "id=/name", - "targets": [ - ["id=/name", "id"], - ["name=field20", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], - ["xpath=//input", "xpath:position"] - ], - "value": "Entity Attributes Filter" - }, { - "id": "0065c161-84c6-4cd0-8b69-b257ec572915", + "id": "7c1fbdb4-1739-4b5b-86b9-231884a81e71", "comment": "", "command": "click", - "target": "id=/entityAttributesFilterTarget.target", + "target": "linkText=Local Dynamic Metadata Provider", "targets": [ - ["id=/entityAttributesFilterTarget.target", "id"], - ["css=#\\/entityAttributesFilterTarget\\.target", "css:finder"], - ["xpath=//input[@id='/entityAttributesFilterTarget.target']", "xpath:attributes"], - ["xpath=//div[@id='-container']/div/input", "xpath:idRelative"], - ["xpath=//div/div/input", "xpath:position"] + ["linkText=Local Dynamic Metadata Provider", "linkText"], + ["css=td > a", "css:finder"], + ["xpath=//a[contains(text(),'Local Dynamic Metadata Provider')]", "xpath:link"], + ["xpath=//a[contains(@href, '/metadata/provider/b76c6aaf-4b5b-464b-8aa6-98d1125989b8/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Local Dynamic Metadata Provider')]", "xpath:innerText"] ], "value": "" }, { - "id": "15d90ee0-b1cc-4fae-abec-ae80d93db1c1", + "id": "329a0f30-2aca-4a4b-8b6b-5ba61d73427b", "comment": "", - "command": "type", - "target": "id=/entityAttributesFilterTarget.target", - "targets": [ - ["id=/entityAttributesFilterTarget.target", "id"], - ["css=#\\/entityAttributesFilterTarget\\.target", "css:finder"], - ["xpath=//input[@id='/entityAttributesFilterTarget.target']", "xpath:attributes"], - ["xpath=//div[@id='-container']/div/input", "xpath:idRelative"], - ["xpath=//div/div/input", "xpath:position"] - ], - "value": "unicon" + "command": "pause", + "target": "2000", + "targets": [], + "value": "" }, { - "id": "1d754809-177b-47f9-98e6-5e757713d834", + "id": "547788c6-8ba2-4edc-8add-8ff24d6805b8", "comment": "", "command": "click", - "target": "css=.btn-success:nth-child(1)", + "target": "css=.mb-4:nth-child(3) .edit-link", "targets": [ - ["css=.btn-success:nth-child(1)", "css:finder"], - ["xpath=//div[2]/button", "xpath:position"], - ["xpath=//button[contains(.,'Add Entity ID')]", "xpath:innerText"] + ["css=.mb-4:nth-child(3) .edit-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div/div/button", "xpath:idRelative"], + ["xpath=//section/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Edit')]", "xpath:innerText"] ], "value": "" }, { - "id": "72c2bc1d-f96f-497b-bbd8-b2e254fae6b6", + "id": "98f8bc48-2251-4314-9157-3dd98cd79c5d", "comment": "", - "command": "click", - "target": "css=#\\/filterEnabled\\.parent > .custom-control-label", - "targets": [ - ["css=#\\/filterEnabled\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/filterEnabled.parent']/label", "xpath:idRelative"], - ["xpath=//checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Filter?')]", "xpath:innerText"] - ], + "command": "pause", + "target": "3000", + "targets": [], "value": "" }, { - "id": "1e74f318-f78c-4e64-8ac7-fc999df0dd19", + "id": "01acf33e-4693-40ea-8217-7c275806d5ef", "comment": "", - "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/turnOffEncryption\\.parent > .custom-control-label", - "targets": [ - ["css=#\\/relyingPartyOverrides\\/turnOffEncryption\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/turnOffEncryption.parent']/label", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Turn off Encryption of Response?')]", "xpath:innerText"] - ], + "command": "type", + "target": "id=root_name", + "targets": [], "value": "" }, { - "id": "d05f7295-35b2-42ba-98d0-1c9673846190", + "id": "2383637f-14ad-407d-82cd-49d36f218ee0", "comment": "", - "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/useSha\\.parent > .custom-control-label", + "command": "type", + "target": "id=root_name", "targets": [ - ["css=#\\/relyingPartyOverrides\\/useSha\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/useSha.parent']/label", "xpath:idRelative"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Use SHA1 Signing Algorithm?')]", "xpath:innerText"] + ["id=root_name", "id"], + ["css=.mb-0 > #root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], - "value": "" + "value": "Local Dynamic Metadata Provider V2" }, { - "id": "82bbe8c4-e66c-470d-bdf6-9cd3337b4a3e", + "id": "a9ce8daa-ce77-48b6-8f6e-2dce2f1e468c", "comment": "", - "command": "click", - "target": "id=/relyingPartyOverrides/responderId", - "targets": [ - ["id=/relyingPartyOverrides/responderId", "id"], - ["name=field33", "name"], - ["css=#\\/relyingPartyOverrides\\/responderId", "css:finder"], - ["xpath=//input[@id='/relyingPartyOverrides/responderId']", "xpath:attributes"], - ["xpath=//div[7]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] - ], + "command": "type", + "target": "id=root_xmlId", + "targets": [], "value": "" }, { - "id": "2e4c1077-cd2f-4298-969f-e945e2d68636", + "id": "31561081-f7d8-4fc5-90a2-a216da79b8a6", "comment": "", "command": "type", - "target": "id=/relyingPartyOverrides/responderId", + "target": "id=root_xmlId", "targets": [ - ["id=/relyingPartyOverrides/responderId", "id"], - ["name=field33", "name"], - ["css=#\\/relyingPartyOverrides\\/responderId", "css:finder"], - ["xpath=//input[@id='/relyingPartyOverrides/responderId']", "xpath:attributes"], - ["xpath=//div[7]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/input", "xpath:position"] ], - "value": "responder" + "value": "123456" }, { - "id": "14785e6f-8ab8-47e0-b16e-8e736638d8c8", + "id": "c988660e-6608-4ca4-814a-f1e3bd6a4347", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .d-flex > .btn", + "target": "css=.btn-info", "targets": [ - ["css=div:nth-child(9) .d-flex > .btn", "css:finder"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button", "xpath:position"] + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,' Save')]", "xpath:innerText"] ], "value": "" }, { - "id": "1e7c0ceb-f555-497d-a465-92df7d67b40a", + "id": "78258e16-b2c5-45bb-834f-f566da4a49b3", "comment": "", "command": "pause", - "target": "500", + "target": "2000", "targets": [], "value": "" }, { - "id": "3e162911-9775-4d01-8802-63f5638c7cba", + "id": "add10378-ed96-4fc2-bd50-5ace327bb698", "comment": "", "command": "click", - "target": "css=.input-group-append > .btn", + "target": "linkText=Version History", "targets": [ - ["css=.input-group-append > .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/authenticationMethods/0-container']/div/div/button", "xpath:idRelative"], - ["xpath=//auto-complete/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["linkText=Version History", "linkText"], + ["css=div:nth-child(1) > .btn-link:nth-child(1)", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/e6527f5e-ac1c-4490-ac9e-f07603248b91/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] ], "value": "" }, { - "id": "a9c5ad9d-05ab-4b47-9e0d-c4e81d28c87e", + "id": "39228609-8a84-40e7-8101-36a0849cb2ba", "comment": "", "command": "pause", - "target": "500", + "target": "2000", "targets": [], "value": "" }, { - "id": "ab2594b3-45a8-43f7-885b-270239a46628", + "id": "fc4a8e99-fa0c-410b-9a5a-07097a131234", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/0__option--0", + "target": "css=tr:nth-child(1) .custom-control-label", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/0__option--0", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/0__option--0", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/authenticationMethods/0__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/authenticationMethods/0__listbox']/li", "xpath:idRelative"], - ["xpath=//datalist-component/div/auto-complete/div/ul/li", "xpath:position"] + ["css=tr:nth-child(1) .custom-control-label", "css:finder"], + ["xpath=//label", "xpath:position"], + ["xpath=//label[contains(.,'Check to select')]", "xpath:innerText"] ], "value": "" }, { - "id": "dd4e22ff-aa54-40c0-b5c2-6a5b79845062", + "id": "45f5cf56-587a-4e9b-ba41-333b34f4206c", "comment": "", "command": "click", - "target": "css=.fa-check", + "target": "css=tr:nth-child(2) .custom-control-label", "targets": [ - ["css=.fa-check", "css:finder"], - ["xpath=//button[@id='/attributeRelease.checkall']/i", "xpath:idRelative"], - ["xpath=//td[2]/button/i", "xpath:position"] + ["css=tr:nth-child(2) .custom-control-label", "css:finder"], + ["xpath=//tr[2]/td/div/label", "xpath:position"] ], "value": "" }, { - "id": "1c4c90ac-b644-4033-8ebc-07a8cd1bdbdd", + "id": "e0aa8d5c-d81c-4d4a-ac51-1d3511065d97", "comment": "", "command": "click", "target": "css=.btn-primary", "targets": [ ["css=.btn-primary", "css:finder"], - ["xpath=//button[@type='submit']", "xpath:attributes"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Save')]", "xpath:innerText"] + ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/button", "xpath:idRelative"], + ["xpath=//section/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Compare Selected(2)')]", "xpath:innerText"] ], "value": "" }, { - "id": "af17a3a7-f292-4c22-8f2f-3d3bf1938fc1", + "id": "627ca87e-e3d5-4cf6-ae53-ac095238f23a", "comment": "", "command": "waitForElementVisible", - "target": "css=span:nth-child(4)", - "targets": [], - "value": "10000" - }, { - "id": "2b9c0a43-fd7a-4ffa-bfef-a7fc41746e16", - "comment": "", - "command": "assertText", - "target": "css=span:nth-child(4)", - "targets": [ - ["css=span:nth-child(4)", "css:finder"], - ["xpath=//div[@id='filters']/filter-configuration-list/ul/li/filter-configuration-list-item/div/span[2]", "xpath:idRelative"], - ["xpath=//filter-configuration-list-item/div/span[2]", "xpath:position"], - ["xpath=//span[contains(.,'EntityAttributes')]", "xpath:innerText"] - ], - "value": "EntityAttributes" - }, { - "id": "a0e16e8d-91c9-416c-b1c1-a2898bfbd185", - "comment": "", - "command": "click", - "target": "linkText=Add Filter", + "target": "css=div:nth-child(1) > .bg-diff > .d-block:nth-child(2)", "targets": [ - ["linkText=Add Filter", "linkText"], - ["css=.btn-success", "css:finder"], - ["xpath=//a[contains(@href, '/metadata/provider/ceb1cfdd-26c1-4134-baab-1438190ae9bd/filter/new')]", "xpath:href"], - ["xpath=//div[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Add Filter')]", "xpath:innerText"] + ["css=div:nth-child(1) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], + ["xpath=//div/span[2]", "xpath:position"] ], - "value": "" + "value": "30000" }, { - "id": "11fd3e95-ce05-4ad0-8238-c34b696003cd", + "id": "f3dc8bd0-e8da-48e5-b9bd-d442471a4005", "comment": "", - "command": "click", - "target": "name=type", + "command": "assertText", + "target": "css=div:nth-child(1) > .bg-diff > .d-block:nth-child(2)", "targets": [ - ["name=type", "name"], - ["css=.form-control", "css:finder"], - ["xpath=//select[@name='type']", "xpath:attributes"], - ["xpath=//select", "xpath:position"] + ["css=div:nth-child(1) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], + ["xpath=//div/span[2]", "xpath:position"] ], - "value": "" - }, { - "id": "0b68dd82-e9a5-447f-b062-9f7849529bcc", - "comment": "", - "command": "select", - "target": "name=type", - "targets": [], - "value": "label=NameIDFormat" + "value": "Local Dynamic Metadata Provider V2" }, { - "id": "e85fde4c-cdbf-41c6-89e7-d4b281a16219", + "id": "1103565a-1f1c-44f1-bfa9-91f6469a7723", "comment": "", - "command": "click", - "target": "css=option:nth-child(3)", + "command": "assertText", + "target": "css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", "targets": [ - ["css=option:nth-child(3)", "css:finder"], - ["xpath=//option[@value='NameIDFormat']", "xpath:attributes"], - ["xpath=//option[3]", "xpath:position"], - ["xpath=//option[contains(.,'NameIDFormat')]", "xpath:innerText"] + ["css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[3]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'123456')]", "xpath:innerText"] ], - "value": "" + "value": "123456" }, { - "id": "a058bf22-7d07-4850-8004-8a85a2016d25", + "id": "d2bff59f-32cd-438d-816d-db8ad199b443", "comment": "", "command": "waitForElementVisible", - "target": "id=/name", - "targets": [], - "value": "10000" - }, { - "id": "8a94f318-76bb-49f1-90d5-b2dcbcb1ff80", - "comment": "", - "command": "click", - "target": "id=/name", - "targets": [ - ["id=/name", "id"], - ["name=field40", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], - ["xpath=//input", "xpath:position"] - ], - "value": "" - }, { - "id": "9bd2419e-c4f5-4dd2-9fb8-278d70be987b", - "comment": "", - "command": "type", - "target": "id=/name", - "targets": [ - ["id=/name", "id"], - ["name=field40", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], - ["xpath=//input", "xpath:position"] - ], - "value": "Name ID Format Filter" - }, { - "id": "03d1d74e-efa5-4d0e-a780-900449bb4ac5", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "9b9d7604-7025-4ccb-bb95-862f57f696f1", - "comment": "", - "command": "click", - "target": "id=/nameIdFormatFilterTarget.valuedd", - "targets": [ - ["id=/nameIdFormatFilterTarget.valuedd", "id"], - ["css=#\\/nameIdFormatFilterTarget\\.valuedd", "css:finder"], - ["xpath=//button[@id='/nameIdFormatFilterTarget.valuedd']", "xpath:attributes"], - ["xpath=//fieldset/div/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Entity ID')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "5cda2bf9-f169-4e37-8071-a6f8d1d1407d", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "9e84c57f-c33d-48f8-85ac-ed50751eb37b", - "comment": "", - "command": "click", - "target": "linkText=Regex", + "target": "css=div:nth-child(1) > .bg-diff > .d-block:nth-child(3)", "targets": [ - ["linkText=Regex", "linkText"], - ["css=.dropdown-item:nth-child(2)", "css:finder"], - ["xpath=//a[contains(text(),'Regex')]", "xpath:link"], - ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], - ["xpath=//div/div/a[2]", "xpath:position"], - ["xpath=//a[contains(.,'Regex')]", "xpath:innerText"] + ["css=div:nth-child(1) > .bg-diff > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[3]", "xpath:idRelative"], + ["xpath=//span[3]", "xpath:position"] ], - "value": "" - }, { - "id": "82336d07-df2f-416e-b5c3-59eaf64a82d4", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "f3bc22e2-0e3a-4d58-b992-31d687148c57", - "comment": "", - "command": "sendKeys", - "target": "id=/nameIdFormatFilterTarget.target", - "targets": [], - "value": "/foo.*/" + "value": "30000" }, { - "id": "343b40b9-87df-46ab-b3ef-285e4e5ed784", + "id": "b0a15457-afc8-45e7-848e-876071ce15e4", "comment": "", - "command": "click", - "target": "css=#\\/filterEnabled\\.parent > .custom-control-label", + "command": "assertText", + "target": "css=div:nth-child(1) > .bg-diff > .d-block:nth-child(3)", "targets": [ - ["css=#\\/filterEnabled\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/filterEnabled.parent']/label", "xpath:idRelative"], - ["xpath=//checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Filter?')]", "xpath:innerText"] + ["css=div:nth-child(1) > .bg-diff > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[3]", "xpath:idRelative"], + ["xpath=//span[3]", "xpath:position"] ], - "value": "" + "value": "Local Dynamic Metadata Provider" }, { - "id": "6ce98c83-68b8-45c0-834e-cc40af11fc29", + "id": "244b66e8-18ca-424b-a399-42df5671d554", "comment": "", - "command": "click", - "target": "css=.btn-success", + "command": "assertText", + "target": "css=div:nth-child(3) > .bg-diff > .d-block:nth-child(3)", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//array-component/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "17f77efb-f64a-4a64-8c48-36830a087dbb", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "a7aa04e7-b909-42cf-85ed-adbff0adefce", - "comment": "", - "command": "click", - "target": "css=.input-group-append > .btn", - "targets": [ - ["css=.input-group-append > .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/formats/0-container']/div/div/button", "xpath:idRelative"], - ["xpath=//auto-complete/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "d1fa4a9b-80bd-4ad7-989e-1e5b56893bbc", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "8b7b79fd-2405-4ab6-8f91-4906f663cd1e", - "comment": "", - "command": "click", - "target": "id=/formats/0__option--1", - "targets": [ - ["id=/formats/0__option--1", "id"], - ["css=#\\/formats\\/0__option--1", "css:finder"], - ["xpath=//li[@id='/formats/0__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/formats/0__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"] - ], - "value": "" - }, { - "id": "6d4c2c20-0855-4cdf-8e4d-dbbd6afb328b", - "comment": "", - "command": "click", - "target": "css=.btn-primary", - "targets": [ - ["css=.btn-primary", "css:finder"], - ["xpath=//button[@type='submit']", "xpath:attributes"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Save')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "455e24c1-5093-4da3-a62d-457bbf0cd5db", - "comment": "", - "command": "pause", - "target": "5000", - "targets": [], - "value": "" - }, { - "id": "9f7e95cf-4dd5-415f-8577-a6f1bc54a85d", - "comment": "", - "command": "click", - "target": "css=.list-group-item:nth-child(1) .btn:nth-child(2)", - "targets": [ - ["css=.list-group-item:nth-child(1) .btn:nth-child(2)", "css:finder"], - ["xpath=//div[@id='filters']/filter-configuration-list/ul/li/filter-configuration-list-item/div/div/button[2]", "xpath:idRelative"], - ["xpath=//button[2]", "xpath:position"] - ], - "value": "" - }, { - "id": "afb97ce0-665f-4469-9aad-d17349c491cd", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "4a73b268-7d33-4e8c-8fa4-cb059be9768f", - "comment": "", - "command": "assertText", - "target": "css=.list-group-item:nth-child(1) span:nth-child(4)", - "targets": [ - ["css=.list-group-item:nth-child(1) span:nth-child(4)", "css:finder"], - ["xpath=//div[@id='filters']/filter-configuration-list/ul/li/filter-configuration-list-item/div/span[2]", "xpath:idRelative"], - ["xpath=//filter-configuration-list-item/div/span[2]", "xpath:position"], - ["xpath=//span[contains(.,'EntityAttributes')]", "xpath:innerText"] - ], - "value": "NameIDFormat" - }, { - "id": "63ac7307-0538-4c0d-8e98-2f05c767baaf", - "comment": "", - "command": "click", - "target": "css=.list-group-item:nth-child(1) .btn:nth-child(2)", - "targets": [ - ["css=tr:nth-child(1) .fa-arrow-circle-down", "css:finder"], - ["xpath=//button[2]/i", "xpath:position"] - ], - "value": "" - }, { - "id": "5037edea-9d8f-496d-aedc-70b8763d5de2", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "ed8e07ff-0dce-47d6-8310-f1920bfe1367", - "comment": "", - "command": "assertText", - "target": "css=.list-group-item:nth-child(1) span:nth-child(4)", - "targets": [ - ["css=tr:nth-child(1) > .td-lg:nth-child(4)", "css:finder"], - ["xpath=//td[4]", "xpath:position"], - ["xpath=//td[contains(.,'EntityAttributes')]", "xpath:innerText"] - ], - "value": "EntityAttributes" - }, { - "id": "45fe6404-6af7-4be0-8f21-2dcf378d0060", - "comment": "", - "command": "click", - "target": "css=.nav-item translate-i18n", - "targets": [ - ["css=.nav-item translate-i18n", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li[2]/a/translate-i18n", "xpath:idRelative"], - ["xpath=//a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Dashboard')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "beb584cd-c6a8-440e-bf38-b5bd2be71e9e", - "comment": "", - "command": "click", - "target": "linkText=Metadata Providers", - "targets": [ - ["linkText=Metadata Providers", "linkText"], - ["css=.nav > .nav-item:nth-child(2) > .nav-link", "css:finder"], - ["xpath=//a[contains(text(),'Metadata Providers')]", "xpath:link"], - ["xpath=//a[contains(@href, '/dashboard/metadata/manager/providers')]", "xpath:href"], - ["xpath=//dashboard-page/div/ul/li[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Metadata Providers')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "29e8f9ac-e02f-46e1-9765-5d7003e37f26", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "7c1fbdb4-1739-4b5b-86b9-231884a81e71", - "comment": "", - "command": "click", - "target": "linkText=Local Dynamic Metadata Provider", - "targets": [ - ["linkText=Local Dynamic Metadata Provider", "linkText"], - ["css=td > a", "css:finder"], - ["xpath=//a[contains(text(),'Local Dynamic Metadata Provider')]", "xpath:link"], - ["xpath=//a[contains(@href, '/metadata/provider/b76c6aaf-4b5b-464b-8aa6-98d1125989b8/configuration/options')]", "xpath:href"], - ["xpath=//td[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Local Dynamic Metadata Provider')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "329a0f30-2aca-4a4b-8b6b-5ba61d73427b", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "547788c6-8ba2-4edc-8add-8ff24d6805b8", - "comment": "", - "command": "click", - "target": "css=.mb-4:nth-child(1) .actions span", - "targets": [ - ["css=.mb-4:nth-child(1) .actions span", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div/div/button/span", "xpath:idRelative"], - ["xpath=//div/button/span", "xpath:position"], - ["xpath=//span[contains(.,'Edit')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "98f8bc48-2251-4314-9157-3dd98cd79c5d", - "comment": "", - "command": "pause", - "target": "3000", - "targets": [], - "value": "" - }, { - "id": "2383637f-14ad-407d-82cd-49d36f218ee0", - "comment": "", - "command": "type", - "target": "id=/name", - "targets": [ - ["id=/name", "id"], - ["name=field62", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], - ["xpath=//input", "xpath:position"] - ], - "value": "Local Dynamic Metadata Provider V2" - }, { - "id": "31561081-f7d8-4fc5-90a2-a216da79b8a6", - "comment": "", - "command": "type", - "target": "id=/xmlId", - "targets": [ - ["id=/xmlId", "id"], - ["name=field65", "name"], - ["css=#\\/xmlId", "css:finder"], - ["xpath=//input[@id='/xmlId']", "xpath:attributes"], - ["xpath=//fieldset[2]/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] - ], - "value": "123456" - }, { - "id": "c988660e-6608-4ca4-814a-f1e3bd6a4347", - "comment": "", - "command": "click", - "target": "css=.btn-info > translate-i18n", - "targets": [ - ["css=.btn-info > translate-i18n", "css:finder"], - ["xpath=//div[2]/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Save')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "78258e16-b2c5-45bb-834f-f566da4a49b3", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "add10378-ed96-4fc2-bd50-5ace327bb698", - "comment": "", - "command": "click", - "target": "css=.btn-link:nth-child(1) > translate-i18n", - "targets": [ - ["css=.btn-link:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/a/translate-i18n", "xpath:idRelative"], - ["xpath=//div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Version History')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "39228609-8a84-40e7-8101-36a0849cb2ba", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "fc4a8e99-fa0c-410b-9a5a-07097a131234", - "comment": "", - "command": "click", - "target": "css=tr:nth-child(1) .custom-control-label", - "targets": [ - ["css=tr:nth-child(1) .custom-control-label", "css:finder"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Check to select')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "45f5cf56-587a-4e9b-ba41-333b34f4206c", - "comment": "", - "command": "click", - "target": "css=tr:nth-child(2) .custom-control-label", - "targets": [ - ["css=tr:nth-child(2) .custom-control-label", "css:finder"], - ["xpath=//tr[2]/td/div/label", "xpath:position"] - ], - "value": "" - }, { - "id": "e0aa8d5c-d81c-4d4a-ac51-1d3511065d97", - "comment": "", - "command": "click", - "target": "css=.btn-primary > translate-i18n", - "targets": [ - ["css=.btn-primary > translate-i18n", "css:finder"], - ["xpath=//history-list/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Compare Selected')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "627ca87e-e3d5-4cf6-ae53-ac095238f23a", - "comment": "", - "command": "waitForElementVisible", - "target": "css=primitive-property:nth-child(1) .bg-diff > .d-block:nth-child(2)", - "targets": [], - "value": "30000" - }, { - "id": "f3dc8bd0-e8da-48e5-b9bd-d442471a4005", - "comment": "", - "command": "assertText", - "target": "css=primitive-property:nth-child(1) .bg-diff > .d-block:nth-child(2)", - "targets": [ - ["css=primitive-property:nth-child(1) .bg-diff > .d-block:nth-child(2)", "css:finder"], - ["xpath=//div/span[2]", "xpath:position"] - ], - "value": "Local Dynamic Metadata Provider V2" - }, { - "id": "1103565a-1f1c-44f1-bfa9-91f6469a7723", - "comment": "", - "command": "assertText", - "target": "css=primitive-property:nth-child(3) .bg-diff > .d-block:nth-child(2)", - "targets": [ - ["css=primitive-property:nth-child(3) .bg-diff > .d-block:nth-child(2)", "css:finder"], - ["xpath=//primitive-property[3]/div/div/span[2]", "xpath:position"], - ["xpath=//span[contains(.,'123456')]", "xpath:innerText"] - ], - "value": "123456" - }, { - "id": "b0a15457-afc8-45e7-848e-876071ce15e4", - "comment": "", - "command": "assertText", - "target": "css=primitive-property:nth-child(1) .bg-diff > .d-block:nth-child(3)", - "targets": [ - ["css=primitive-property:nth-child(1) .bg-diff > .d-block:nth-child(3)", "css:finder"], - ["xpath=//span[3]", "xpath:position"] - ], - "value": "Local Dynamic Metadata Provider" - }, { - "id": "244b66e8-18ca-424b-a399-42df5671d554", - "comment": "", - "command": "assertText", - "target": "css=primitive-property:nth-child(3) .bg-diff > .d-block:nth-child(3)", - "targets": [ - ["css=primitive-property:nth-child(3) .bg-diff > .d-block:nth-child(3)", "css:finder"], - ["xpath=//primitive-property[3]/div/div/span[3]", "xpath:position"] + ["css=div:nth-child(3) > .bg-diff > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[3]/div/span[3]", "xpath:idRelative"], + ["xpath=//div[3]/div/span[3]", "xpath:position"] ], "value": "12345" - }, { - "id": "a0411281-4bd1-4a25-a13c-31881f16381f", - "comment": "", - "command": "click", - "target": "css=.btn-link:nth-child(1) > translate-i18n", - "targets": [ - ["css=.btn-link:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Version History')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "e9c3e5d9-1418-4f24-80b5-5d2ea2f50570", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "82d0dbd1-6d39-4213-a169-ffd169ddb800", - "comment": "", - "command": "click", - "target": "css=tr:nth-child(1) a", - "targets": [ - ["linkText=Sep 25, 2019 23:00:04 (Current)", "linkText"], - ["css=tr:nth-child(1) a", "css:finder"], - ["xpath=//a[contains(@href, '/metadata/provider/b76c6aaf-4b5b-464b-8aa6-98d1125989b8/configuration/options')]", "xpath:href"], - ["xpath=//td[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Sep 25, 2019 23:00:04 (Current)')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "c40890c3-7077-4951-a62e-fd7f5fa3c78f", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "c9047379-4634-4d7c-9649-505437ccc4a8", - "comment": "", - "command": "click", - "target": "css=.list-group-item:nth-child(1) > filter-configuration-list-item > .d-flex > .btn", - "targets": [ - ["css=.list-group-item:nth-child(1) > filter-configuration-list-item > .d-flex > .btn", "css:finder"], - ["xpath=//div[@id='filters']/filter-configuration-list/ul/li/filter-configuration-list-item/div/button", "xpath:idRelative"], - ["xpath=//filter-configuration-list-item/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Entity Attributes Filter')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "9a4e24c2-c536-46bf-ada1-6158fbaa8163", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "6ce85361-3225-40b2-ab3e-dda53647733c", - "comment": "", - "command": "click", - "target": "css=.justify-content-between > .btn:nth-child(1) > translate-i18n", - "targets": [ - ["css=.justify-content-between > .btn:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div[@id='filters']/filter-configuration-list/ul/li/filter-configuration-list-item/div[2]/div/div/a/translate-i18n", "xpath:idRelative"], - ["xpath=//div[2]/div/div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Edit')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "7a41b3c7-cae5-4135-95ed-ba45fa4932f2", - "comment": "", - "command": "waitForElementEditable", - "target": "id=/name", - "targets": [], - "value": "30000" - }, { - "id": "52f4e177-c20c-4775-a973-b7b79c67bb96", - "comment": "", - "command": "type", - "target": "id=/name", - "targets": [ - ["id=/name", "id"], - ["name=field68", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] - ], - "value": "Entity Attributes Filter V2" - }, { - "id": "3c8b4ac8-f3ef-4a02-82e3-735c382d3b09", - "comment": "", - "command": "click", - "target": "css=.btn-primary", - "targets": [ - ["css=.btn-primary", "css:finder"], - ["xpath=//button[@type='submit']", "xpath:attributes"], - ["xpath=//div[2]/button", "xpath:position"], - ["xpath=//button[contains(.,'Save')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "0d44ec51-2979-437c-9d1d-cccf719e44f8", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "8a35aa02-3c14-4068-b92c-6d3f89d0e249", - "comment": "", - "command": "click", - "target": "css=.nav-item translate-i18n", - "targets": [ - ["css=.nav-item translate-i18n", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li[2]/a/translate-i18n", "xpath:idRelative"], - ["xpath=//a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Dashboard')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "e5bc1b13-a4bf-4957-90d6-d687c945c732", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "d14a78bc-a8bc-4d79-abf5-4f91954008b8", - "comment": "", - "command": "click", - "target": "linkText=Metadata Providers", - "targets": [ - ["linkText=Metadata Providers", "linkText"], - ["css=.nav > .nav-item:nth-child(2) > .nav-link", "css:finder"], - ["xpath=//a[contains(text(),'Metadata Providers')]", "xpath:link"], - ["xpath=//a[contains(@href, '/dashboard/metadata/manager/providers')]", "xpath:href"], - ["xpath=//dashboard-page/div/ul/li[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Metadata Providers')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "3144718e-3bb6-4e88-8571-b3fca31d432d", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "764605a3-d47d-4dd0-a117-2a5d8b662ec7", - "comment": "", - "command": "click", - "target": "linkText=Local Dynamic Metadata Provider V2", - "targets": [ - ["linkText=Local Dynamic Metadata Provider V2", "linkText"], - ["css=td > a", "css:finder"], - ["xpath=//a[contains(text(),'Local Dynamic Metadata Provider V2')]", "xpath:link"], - ["xpath=//a[contains(@href, '/metadata/provider/b76c6aaf-4b5b-464b-8aa6-98d1125989b8/configuration/options')]", "xpath:href"], - ["xpath=//td[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Local Dynamic Metadata Provider V2')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "521a00d0-68cb-48ba-aa7a-28478af22174", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "3423ee08-377a-43a9-a608-1581eef0ce2e", - "comment": "", - "command": "click", - "target": "css=.btn-link:nth-child(1) > translate-i18n", - "targets": [ - ["css=.btn-link:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/a/translate-i18n", "xpath:idRelative"], - ["xpath=//div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Version History')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "8f91f629-8715-44a8-8895-f271d3c77547", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "293e15d9-de41-45ef-9fa8-94599c9b1f36", - "comment": "", - "command": "click", - "target": "css=tr:nth-child(1) .custom-control-label", - "targets": [ - ["css=tr:nth-child(1) .custom-control-label", "css:finder"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Check to select')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "7810f774-045f-4841-80e7-2c061a5377a3", - "comment": "", - "command": "click", - "target": "css=tr:nth-child(2) .custom-control-label", - "targets": [ - ["css=tr:nth-child(2) .custom-control-label", "css:finder"], - ["xpath=//tr[2]/td/div/label", "xpath:position"] - ], - "value": "" - }, { - "id": "77b0759a-f41e-4ebc-99bc-24ee7a793f6d", - "comment": "", - "command": "click", - "target": "css=.btn-primary > translate-i18n", - "targets": [ - ["css=.btn-primary > translate-i18n", "css:finder"], - ["xpath=//history-list/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Compare Selected')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "12aa48b1-da07-456e-84a6-b1db2a72bc3c", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "c864f2b7-2da3-48ee-9d12-6e3deb69c451", - "comment": "", - "command": "click", - "target": "css=.d-flex:nth-child(1) > .border-primary:nth-child(2) .fa", - "targets": [ - ["css=.d-flex:nth-child(1) > .border-primary:nth-child(2) .fa", "css:finder"], - ["xpath=//div[2]/div/button/i", "xpath:position"] - ], - "value": "" - }, { - "id": "00209590-e55a-4559-a4f3-67e926d9e366", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" - }, { - "id": "4eb17560-540b-435e-b99e-759d59435902", - "comment": "", - "command": "click", - "target": "css=.btn-primary > translate-i18n", - "targets": [ - ["css=.btn-primary > translate-i18n", "css:finder"], - ["xpath=//div[3]/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Compare Selected')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "3ad7ca88-e2e9-47af-a4de-6c35828b26d3", - "comment": "", - "command": "waitForElementVisible", - "target": "css=.bg-diff > .d-block:nth-child(2)", - "targets": [], - "value": "30000" - }, { - "id": "50f9b213-6291-4b1a-b778-3db8e38e80da", - "comment": "", - "command": "assertText", - "target": "css=.bg-diff > .d-block:nth-child(2)", - "targets": [ - ["css=.bg-diff > .d-block:nth-child(2)", "css:finder"], - ["xpath=//section[2]/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:position"], - ["xpath=//span[contains(.,'Entity Attributes Filter V2')]", "xpath:innerText"] - ], - "value": "Entity Attributes Filter V2" - }, { - "id": "4c5111e9-4f0f-4b96-9c62-20bba8aac910", - "comment": "", - "command": "assertText", - "target": "css=.bg-diff > .d-block:nth-child(3)", - "targets": [ - ["css=.bg-diff > .d-block:nth-child(3)", "css:finder"], - ["xpath=//section[2]/div/div[2]/object-property/primitive-property/div/div/span[3]", "xpath:position"] - ], - "value": "Entity Attributes Filter" - }, { - "id": "5bf7126d-9dfb-4b97-8685-fd00778423eb", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1364-4.side b/backend/src/integration/resources/SHIBUI-1364-4.side index c088ae27d..387405cbd 100644 --- a/backend/src/integration/resources/SHIBUI-1364-4.side +++ b/backend/src/integration/resources/SHIBUI-1364-4.side @@ -41,51 +41,88 @@ "id": "185a1e41-d3a3-4627-aae2-7f05059e9c7d", "comment": "", "command": "click", - "target": "name=submit", + "target": "css=.btn", "targets": [ - ["name=submit", "name"], - ["css=td:nth-child(1) > input", "css:finder"], - ["xpath=//input[@name='submit']", "xpath:attributes"], - ["xpath=//tr[3]/td/input", "xpath:position"] + ["css=.btn", "css:finder"], + ["xpath=//button[@type='submit']", "xpath:attributes"], + ["xpath=//button", "xpath:position"], + ["xpath=//button[contains(.,'Sign in')]", "xpath:innerText"] ], "value": "" + }, { + "id": "c3651d7b-1023-42c2-8093-36d348343857", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "739af002-e255-4a84-864c-086f2874a83f", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [ + ["css=body", "css:finder"], + ["xpath=//body", "xpath:position"], + ["xpath=//body[contains(.,'yes, you did it')]", "xpath:innerText"] + ], + "value": "yes, you did it" + }, { + "id": "4ebf9f2c-3a68-441b-910d-8998c6994781", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "94e01321-ac2d-427f-89a5-7f816cea0f00", "comment": "", "command": "click", - "target": "css=#addNewDropdown > translate-i18n", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=#addNewDropdown > translate-i18n", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/translate-i18n", "xpath:idRelative"], - ["xpath=//translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Add New')]", "xpath:innerText"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "c65500ae-3b08-4c22-8c88-b4116d6e0c9b", "comment": "", "command": "click", - "target": "linkText=Metadata Provider", + "target": "id=metadata-nav-dropdown-provider", "targets": [ - ["linkText=Metadata Provider", "linkText"], - ["css=.nav-link:nth-child(2)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a[2]", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[3]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"] + ["id=metadata-nav-dropdown-provider", "id"], + ["linkText=Add a new metadata provider", "linkText"], + ["css=#metadata-nav-dropdown-provider", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata provider')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-provider']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/new')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata provider')]", "xpath:innerText"] ], "value": "" }, { "id": "c5ec3177-5a66-4901-a644-8c6cfbb99254", "comment": "", "command": "waitForElementVisible", - "target": "id=/name", - "targets": [], + "target": "name=name", + "targets": [ + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "d093ad38-ab2d-4441-a60b-2c094d6938f9", "comment": "", "command": "type", - "target": "id=/name", + "target": "name=name", "targets": [ ["id=/name", "id"], ["name=field4", "name"], @@ -98,15 +135,15 @@ "id": "aac150b1-6140-476b-8bdb-ebb83a14812d", "comment": "", "command": "select", - "target": "id=/type", + "target": "name=type", "targets": [ - ["id=/type", "id"], - ["name=field2", "name"], - ["css=#\\/type", "css:finder"], - ["xpath=//select[@id='/type']", "xpath:attributes"], + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div[2]/select", "xpath:idRelative"], ["xpath=//select", "xpath:position"] ], - "value": "label=DynamicHttpMetadataProvider" + "value": "label=DynamicHttpMetadataResolver" }, { "id": "7a60cb3c-ed3c-495c-8329-2fe52e72cceb", "comment": "", @@ -121,14 +158,20 @@ "id": "8cbc5dce-126e-4fb6-afcd-9651d9be6ba2", "comment": "", "command": "waitForElementVisible", - "target": "id=/xmlId", - "targets": [], + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "c140099c-f6e3-4600-92b3-5b97e07a95ee", "comment": "", "command": "type", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ ["id=/xmlId", "id"], ["name=field7", "name"], @@ -141,40 +184,33 @@ "id": "d8716eae-bb36-42ae-b505-2626c5a8c377", "comment": "", "command": "select", - "target": "id=/metadataRequestURLConstructionScheme/type", - "targets": [], - "value": "label=MetadataQueryProtocol" - }, { - "id": "326f3387-12c8-4294-843c-182fd8d06c46", - "comment": "", - "command": "click", - "target": "css=option:nth-child(2)", + "target": "id=root_metadataRequestURLConstructionScheme_@type", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: MetadataQueryProtocol']", "xpath:attributes"], - ["xpath=//select[@id='/metadataRequestURLConstructionScheme/type']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'MetadataQueryProtocol')]", "xpath:innerText"] + ["id=root_metadataRequestURLConstructionScheme_@type", "id"], + ["css=#root_metadataRequestURLConstructionScheme_\\@type", "css:finder"], + ["xpath=//select[@id='root_metadataRequestURLConstructionScheme_@type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], - "value": "" + "value": "label=MetadataQueryProtocol" }, { "id": "516d7e81-3672-4dd7-811b-70ee38c21e52", "comment": "", "command": "click", - "target": "id=/metadataRequestURLConstructionScheme/content", + "target": "id=root_metadataRequestURLConstructionScheme_content", "targets": [ - ["id=/metadataRequestURLConstructionScheme/content", "id"], - ["name=field10", "name"], - ["css=#\\/metadataRequestURLConstructionScheme\\/content", "css:finder"], - ["xpath=//input[@id='/metadataRequestURLConstructionScheme/content']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_metadataRequestURLConstructionScheme_content", "id"], + ["css=#root_metadataRequestURLConstructionScheme_content", "css:finder"], + ["xpath=//input[@id='root_metadataRequestURLConstructionScheme_content']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/div[2]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "7b60ce4c-a16c-4bc5-9d9c-999f9fc6b197", "comment": "", "command": "type", - "target": "id=/metadataRequestURLConstructionScheme/content", + "target": "id=root_metadataRequestURLConstructionScheme_content", "targets": [ ["id=/metadataRequestURLConstructionScheme/content", "id"], ["name=field10", "name"], @@ -187,24 +223,26 @@ "id": "cd0d4f15-2193-4814-8e72-f38d9d2221e2", "comment": "", "command": "click", - "target": "id=/requireValidMetadata.false", + "target": "id=root_requireValidMetadata-No", "targets": [ - ["id=/requireValidMetadata.false", "id"], - ["css=#\\/requireValidMetadata\\.false", "css:finder"], - ["xpath=//input[@id='/requireValidMetadata.false']", "xpath:attributes"], - ["xpath=//div[2]/label/input", "xpath:position"] + ["id=root_requireValidMetadata-No", "id"], + ["css=#root_requireValidMetadata-No", "css:finder"], + ["xpath=//input[@id='root_requireValidMetadata-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[3]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] ], "value": "" }, { "id": "3b83fa2b-147f-4b7b-9b30-44c28b07576e", "comment": "", "command": "click", - "target": "id=/failFastInitialization.false", + "target": "id=root_failFastInitialization-No", "targets": [ - ["id=/failFastInitialization.false", "id"], - ["css=#\\/failFastInitialization\\.false", "css:finder"], - ["xpath=//input[@id='/failFastInitialization.false']", "xpath:attributes"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_failFastInitialization-No", "id"], + ["css=#root_failFastInitialization-No", "css:finder"], + ["xpath=//input[@id='root_failFastInitialization-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[4]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { @@ -220,21 +258,15 @@ }, { "id": "30565900-4c02-4cb0-9d5a-c980349307ea", "comment": "", - "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/refreshDelayFactor", - "targets": [ - ["id=/dynamicMetadataResolverAttributes/refreshDelayFactor", "id"], - ["name=field15", "name"], - ["css=#\\/dynamicMetadataResolverAttributes\\/refreshDelayFactor", "css:finder"], - ["xpath=//input[@id='/dynamicMetadataResolverAttributes/refreshDelayFactor']", "xpath:attributes"], - ["xpath=//input", "xpath:position"] - ], - "value": "" + "command": "waitForElementVisible", + "target": "id=root_dynamicMetadataResolverAttributes_refreshDelayFactor", + "targets": [], + "value": "30000" }, { "id": "5b6ea5bf-d5c1-4d5e-bc15-ffabf67f74ec", "comment": "", "command": "type", - "target": "id=/dynamicMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_dynamicMetadataResolverAttributes_refreshDelayFactor", "targets": [ ["id=/dynamicMetadataResolverAttributes/refreshDelayFactor", "id"], ["name=field15", "name"], @@ -254,13 +286,12 @@ "id": "a51172e3-792f-4881-8083-efcb34c63e56", "comment": "", "command": "click", - "target": "css=#\\/dynamicMetadataResolverAttributes\\/minCacheDuration-container .btn", + "target": "css=.row:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/dynamicMetadataResolverAttributes\\/minCacheDuration-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/dynamicMetadataResolverAttributes/minCacheDuration-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.row:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[8]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -274,14 +305,16 @@ "id": "b1ec3405-0d75-45d6-8986-51c2f09c4dc4", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/minCacheDuration__option--1", + "target": "id=option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration-item-1", "targets": [ - ["id=/dynamicMetadataResolverAttributes/minCacheDuration__option--1", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/minCacheDuration__option--1", "css:finder"], - ["xpath=//li[@id='/dynamicMetadataResolverAttributes/minCacheDuration__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/dynamicMetadataResolverAttributes/minCacheDuration__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'PT30S')]", "xpath:innerText"] + ["id=option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_dynamicMetadataResolverAttributes_minCacheDuration']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { @@ -295,12 +328,12 @@ "id": "2793bf1b-177b-461f-b06c-0a584ab6eaf0", "comment": "", "command": "click", - "target": "css=#\\/dynamicMetadataResolverAttributes\\/maxCacheDuration-container .btn", + "target": "css=.row:nth-child(3) > .col-12 > .form-group .toggle-button", "targets": [ - ["css=#\\/dynamicMetadataResolverAttributes\\/maxCacheDuration-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/dynamicMetadataResolverAttributes/maxCacheDuration-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(3) > .col-12 > .form-group .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[3]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -314,13 +347,16 @@ "id": "87084a6a-8e89-4c00-a3d9-c104107a3ba2", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/maxCacheDuration__option--3", + "target": "id=option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration-item-3", "targets": [ - ["id=/dynamicMetadataResolverAttributes/maxCacheDuration__option--3", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/maxCacheDuration__option--3", "css:finder"], - ["xpath=//li[@id='/dynamicMetadataResolverAttributes/maxCacheDuration__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/dynamicMetadataResolverAttributes/maxCacheDuration__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration-item-3", "id"], + ["linkText=PT10M", "linkText"], + ["css=#option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_dynamicMetadataResolverAttributes_maxCacheDuration']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'PT10M')]", "xpath:innerText"] ], "value": "" }, { @@ -334,12 +370,12 @@ "id": "4c017bde-e242-4d2f-838e-a2a026e4292b", "comment": "", "command": "click", - "target": "css=#\\/dynamicMetadataResolverAttributes\\/maxIdleEntityData-container .btn", + "target": "css=.row:nth-child(4) .toggle-button", "targets": [ - ["css=#\\/dynamicMetadataResolverAttributes\\/maxIdleEntityData-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], - ["xpath=//div[@id='/dynamicMetadataResolverAttributes/maxIdleEntityData-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(4) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[12]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[4]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -353,13 +389,16 @@ "id": "d477fd6a-2c15-4fb6-a199-d49aa495ef94", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/maxIdleEntityData__option--2", + "target": "id=option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData-item-2", "targets": [ - ["id=/dynamicMetadataResolverAttributes/maxIdleEntityData__option--2", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/maxIdleEntityData__option--2", "css:finder"], - ["xpath=//li[@id='/dynamicMetadataResolverAttributes/maxIdleEntityData__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/dynamicMetadataResolverAttributes/maxIdleEntityData__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData-item-2", "id"], + ["linkText=PT1M", "linkText"], + ["css=#option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_dynamicMetadataResolverAttributes_maxIdleEntityData']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'PT1M')]", "xpath:innerText"] ], "value": "" }, { @@ -369,16 +408,29 @@ "target": "500", "targets": [], "value": "" + }, { + "id": "9ef5ccae-f5af-4047-abc6-caa2960c766f", + "comment": "", + "command": "click", + "target": "id=root_dynamicMetadataResolverAttributes_removeIdleEntityData-No", + "targets": [ + ["id=root_dynamicMetadataResolverAttributes_removeIdleEntityData-No", "id"], + ["css=#root_dynamicMetadataResolverAttributes_removeIdleEntityData-No", "css:finder"], + ["xpath=//input[@id='root_dynamicMetadataResolverAttributes_removeIdleEntityData-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[5]/div/div/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] + ], + "value": "" }, { "id": "62f7ce3c-5cff-43c6-8ce6-a0e6bf2b2257", "comment": "", "command": "click", - "target": "css=#\\/dynamicMetadataResolverAttributes\\/cleanupTaskInterval-container .btn", + "target": "css=.row:nth-child(6) .toggle-button", "targets": [ - ["css=#\\/dynamicMetadataResolverAttributes\\/cleanupTaskInterval-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], - ["xpath=//div[@id='/dynamicMetadataResolverAttributes/cleanupTaskInterval-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(6) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[15]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[6]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -392,33 +444,36 @@ "id": "bf855df4-326e-484e-9022-d2c84e09e6f3", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/cleanupTaskInterval__option--3", + "target": "id=option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval-item-3", "targets": [ - ["id=/dynamicMetadataResolverAttributes/cleanupTaskInterval__option--3", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/cleanupTaskInterval__option--3", "css:finder"], - ["xpath=//li[@id='/dynamicMetadataResolverAttributes/cleanupTaskInterval__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/dynamicMetadataResolverAttributes/cleanupTaskInterval__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval-item-3", "id"], + ["linkText=PT10M", "linkText"], + ["css=#option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_dynamicMetadataResolverAttributes_cleanupTaskInterval']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'PT10M')]", "xpath:innerText"] ], "value": "" }, { "id": "df2a3e70-d7d3-487b-a205-218e9987b060", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/persistentCacheManagerDirectory", + "target": "id=root_dynamicMetadataResolverAttributes_persistentCacheManagerDirectory", "targets": [ - ["id=/dynamicMetadataResolverAttributes/persistentCacheManagerDirectory", "id"], - ["name=field21", "name"], - ["css=#\\/dynamicMetadataResolverAttributes\\/persistentCacheManagerDirectory", "css:finder"], - ["xpath=//input[@id='/dynamicMetadataResolverAttributes/persistentCacheManagerDirectory']", "xpath:attributes"], - ["xpath=//div[7]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_dynamicMetadataResolverAttributes_persistentCacheManagerDirectory", "id"], + ["css=#root_dynamicMetadataResolverAttributes_persistentCacheManagerDirectory", "css:finder"], + ["xpath=//input[@id='root_dynamicMetadataResolverAttributes_persistentCacheManagerDirectory']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[7]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "b25d9d91-b8f2-46ad-ac79-cbac34fa3f91", "comment": "", "command": "type", - "target": "id=/dynamicMetadataResolverAttributes/persistentCacheManagerDirectory", + "target": "id=root_dynamicMetadataResolverAttributes_persistentCacheManagerDirectory", "targets": [ ["id=/dynamicMetadataResolverAttributes/persistentCacheManagerDirectory", "id"], ["name=field21", "name"], @@ -431,12 +486,13 @@ "id": "5b546b6b-ee98-4852-8ffd-b95f7e68d954", "comment": "", "command": "click", - "target": "id=/dynamicMetadataResolverAttributes/initializeFromPersistentCacheInBackground.false", + "target": "id=root_dynamicMetadataResolverAttributes_initializeFromPersistentCacheInBackground-No", "targets": [ - ["id=/dynamicMetadataResolverAttributes/initializeFromPersistentCacheInBackground.false", "id"], - ["css=#\\/dynamicMetadataResolverAttributes\\/initializeFromPersistentCacheInBackground\\.false", "css:finder"], - ["xpath=//input[@id='/dynamicMetadataResolverAttributes/initializeFromPersistentCacheInBackground.false']", "xpath:attributes"], - ["xpath=//div[8]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_dynamicMetadataResolverAttributes_initializeFromPersistentCacheInBackground-No", "id"], + ["css=#root_dynamicMetadataResolverAttributes_initializeFromPersistentCacheInBackground-No", "css:finder"], + ["xpath=//input[@id='root_dynamicMetadataResolverAttributes_initializeFromPersistentCacheInBackground-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[8]/div/div/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[8]/div/div/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { @@ -480,46 +536,49 @@ "id": "22f7bf37-718c-4126-867b-67a383eefff5", "comment": "", "command": "click", - "target": "id=/metadataFilters/RequiredValidUntil/maxValidityInterval__option--2", + "target": "id=option-selector-root_metadataFilters_0_maxValidityInterval-item-2", "targets": [ - ["id=/metadataFilters/RequiredValidUntil/maxValidityInterval__option--2", "id"], - ["css=#\\/metadataFilters\\/RequiredValidUntil\\/maxValidityInterval__option--2", "css:finder"], - ["xpath=//li[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[3]", "xpath:position"], - ["xpath=//li[contains(.,'PT1M')]", "xpath:innerText"] + ["id=option-selector-root_metadataFilters_0_maxValidityInterval-item-2", "id"], + ["linkText=PT1M", "linkText"], + ["css=#option-selector-root_metadataFilters_0_maxValidityInterval-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_metadataFilters_0_maxValidityInterval-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_metadataFilters_0_maxValidityInterval']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'PT1M')]", "xpath:innerText"] ], "value": "" }, { "id": "5320f384-0881-4e7a-b89f-33a57efb22ba", "comment": "", "command": "click", - "target": "id=/metadataFilters/SignatureValidation/requireSignedRoot", + "target": "id=root_metadataFilters_1_requireSignedRoot", "targets": [ - ["css=#\\/metadataFilters\\/SignatureValidation\\/requireSignedRoot\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/metadataFilters/SignatureValidation/requireSignedRoot.parent']/label", "xpath:idRelative"], - ["xpath=//div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Require Signed Root')]", "xpath:innerText"] + ["id=root_metadataFilters_1_requireSignedRoot", "id"], + ["css=#root_metadataFilters_1_requireSignedRoot", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_1_requireSignedRoot']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "f60a2a6e-2739-4da6-8e94-a5f0e7cf70de", "comment": "", "command": "click", - "target": "id=/metadataFilters/SignatureValidation/certificateFile", + "target": "id=root_metadataFilters_1_certificateFile", "targets": [ - ["id=/metadataFilters/SignatureValidation/certificateFile", "id"], - ["name=field30", "name"], - ["css=#\\/metadataFilters\\/SignatureValidation\\/certificateFile", "css:finder"], - ["xpath=//input[@id='/metadataFilters/SignatureValidation/certificateFile']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_metadataFilters_1_certificateFile", "id"], + ["css=#root_metadataFilters_1_certificateFile", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_1_certificateFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "d1402eee-5e5c-4634-ac31-6843ed775bb8", "comment": "", "command": "type", - "target": "id=/metadataFilters/SignatureValidation/certificateFile", + "target": "id=root_metadataFilters_1_certificateFile", "targets": [ ["id=/metadataFilters/SignatureValidation/certificateFile", "id"], ["name=field30", "name"], @@ -532,43 +591,39 @@ "id": "581415bb-bd83-4bc8-9417-da0a9781c7bd", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//array-component/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "6e976ed9-98a5-4e5d-8151-13a6c8498155", "comment": "", "command": "select", - "target": "id=/metadataFilters/EntityRoleWhiteList/retainedRoles/0", - "targets": [], - "value": "label=SPSSODescriptor" - }, { - "id": "4c21b4c9-6f8e-4520-b55c-9b945b97de01", - "comment": "", - "command": "click", - "target": "css=option:nth-child(2)", + "target": "id=root_metadataFilters_2_retainedRoles_0", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: SPSSODescriptor']", "xpath:attributes"], - ["xpath=//select[@id='/metadataFilters/EntityRoleWhiteList/retainedRoles/0']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'SPSSODescriptor')]", "xpath:innerText"] + ["id=root_metadataFilters_2_retainedRoles_0", "id"], + ["css=#root_metadataFilters_2_retainedRoles_0", "css:finder"], + ["xpath=//select[@id='root_metadataFilters_2_retainedRoles_0']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], - "value": "" + "value": "label=SPSSODescriptor" }, { "id": "b027e53b-bdf7-40e5-a296-6f25eae50732", "comment": "", "command": "click", - "target": "id=/metadataFilters/EntityRoleWhiteList/removeRolelessEntityDescriptors", + "target": "id=root_metadataFilters_2_removeRolelessEntityDescriptors", "targets": [ - ["css=#\\/metadataFilters\\/EntityRoleWhiteList\\/removeRolelessEntityDescriptors\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/metadataFilters/EntityRoleWhiteList/removeRolelessEntityDescriptors.parent']/label", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Remove Roleless Entity Descriptors?')]", "xpath:innerText"] + ["id=root_metadataFilters_2_removeRolelessEntityDescriptors", "id"], + ["css=#root_metadataFilters_2_removeRolelessEntityDescriptors", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_2_removeRolelessEntityDescriptors']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[3]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { @@ -581,18 +636,6 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "c4d98111-537a-45a1-9bfd-e8d780a0c0b3", - "comment": "", - "command": "click", - "target": "css=.custom-control-label", - "targets": [ - ["css=.custom-control-label", "css:finder"], - ["xpath=//div[@id='/enabled.parent']/label", "xpath:idRelative"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Metadata Provider?')]", "xpath:innerText"] - ], - "value": "" }, { "id": "a57a12dd-b641-46eb-afce-4c7be5a8f180", "comment": "", @@ -607,21 +650,25 @@ "id": "ae27b108-a2f4-4d4b-b375-b582ccc0ef56", "comment": "", "command": "waitForElementVisible", - "target": "css=.d-block > primitive-property:nth-child(2) .text-truncate", + "target": "linkText=Dynamic Http Metadata Provider", "targets": [ - ["css=.d-block > primitive-property:nth-child(2) .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property[2]/div/div/span[2]", "xpath:idRelative"], - ["xpath=//primitive-property[2]/div/div/span[2]", "xpath:position"], - ["xpath=//span[contains(.,'DynamicHttpMetadataResolver')]", "xpath:innerText"] + ["linkText=Dynamic Http Metadata Provider", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'Dynamic Http Metadata Provider')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/7eede370-9063-42fd-898e-f90780a78386/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Dynamic Http Metadata Provider')]", "xpath:innerText"] ], "value": "10000" }, { "id": "8c52471a-70f5-43aa-b670-6f8d22e18668", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(2) .text-truncate", + "target": "css=.align-middle:nth-child(3)", "targets": [ - ["css=td:nth-child(3)", "css:finder"], + ["css=.align-middle:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[3]", "xpath:idRelative"], ["xpath=//td[3]", "xpath:position"], ["xpath=//td[contains(.,'DynamicHttpMetadataResolver')]", "xpath:innerText"] ], @@ -630,7 +677,7 @@ "id": "31a8587f-8ac0-4512-98ec-6cd230dfb0b6", "comment": "", "command": "click", - "target": "css=.btn:nth-child(2) > translate-i18n", + "target": "linkText=Dynamic Http Metadata Provider", "targets": [ ["css=.btn:nth-child(2) > translate-i18n", "css:finder"], ["xpath=//div[@id='navigation']/div/button/translate-i18n", "xpath:idRelative"], @@ -642,12 +689,14 @@ "id": "fb7aea4e-7991-482c-b673-de998c20129c", "comment": "", "command": "click", - "target": "css=#filters .actions span", + "target": "linkText=Add Filter", "targets": [ - ["css=#filters .actions span", "css:finder"], - ["xpath=//div[@id='filters']/div/div/a/span", "xpath:idRelative"], - ["xpath=//div/a/span", "xpath:position"], - ["xpath=//span[contains(.,'Add Filter')]", "xpath:innerText"] + ["linkText=Add Filter", "linkText"], + ["css=#filters .btn", "css:finder"], + ["xpath=//div[@id='filters']/div/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/7eede370-9063-42fd-898e-f90780a78386/filter/new')]", "xpath:href"], + ["xpath=//div[3]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Add Filter')]", "xpath:innerText"] ], "value": "" }, { @@ -657,30 +706,24 @@ "target": "name=type", "targets": [], "value": "label=EntityAttributes" - }, { - "id": "5d3daf7a-a4e0-4767-a1ef-2416270bfae4", - "comment": "", - "command": "click", - "target": "css=option:nth-child(2)", - "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='EntityAttributes']", "xpath:attributes"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'EntityAttributes')]", "xpath:innerText"] - ], - "value": "" }, { "id": "f013d7b6-96c3-4155-ac1e-cff223e5e547", "comment": "", "command": "waitForElementVisible", - "target": "id=/name", - "targets": [], + "target": "id=root_name", + "targets": [ + ["id=root_name", "id"], + ["css=#root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "a58e088d-329b-4cfb-949b-eea9fdbdad37", "comment": "", "command": "click", - "target": "id=/name", + "target": "id=root_name", "targets": [ ["id=/name", "id"], ["name=field39", "name"], @@ -693,7 +736,7 @@ "id": "60177908-3143-407a-8bdf-a045463d5490", "comment": "", "command": "type", - "target": "id=/name", + "target": "id=root_name", "targets": [ ["id=/name", "id"], ["name=field39", "name"], @@ -706,20 +749,19 @@ "id": "67d52837-5e50-487c-a744-9ee0ea39f5b7", "comment": "", "command": "click", - "target": "id=/entityAttributesFilterTarget.target", + "target": "css=.rbt-input-main", "targets": [ - ["id=/entityAttributesFilterTarget.target", "id"], - ["css=#\\/entityAttributesFilterTarget\\.target", "css:finder"], - ["xpath=//input[@id='/entityAttributesFilterTarget.target']", "xpath:attributes"], - ["xpath=//div[@id='-container']/div/input", "xpath:idRelative"], - ["xpath=//div/div/input", "xpath:position"] + ["css=.rbt-input-main", "css:finder"], + ["xpath=(//input[@value=''])[2]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[6]/div/div/div/fieldset/div/div/div[2]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "3512eb60-34d4-455b-8a2c-e6c98d382cac", "comment": "", "command": "type", - "target": "id=/entityAttributesFilterTarget.target", + "target": "css=.rbt-input-main", "targets": [ ["id=/entityAttributesFilterTarget.target", "id"], ["css=#\\/entityAttributesFilterTarget\\.target", "css:finder"], @@ -732,116 +774,133 @@ "id": "a9d49b1c-c794-4c54-83ea-c61bd3011dba", "comment": "", "command": "click", - "target": "css=.btn-success:nth-child(1)", + "target": "css=.btn-success", "targets": [ - ["css=.btn-success:nth-child(1)", "css:finder"], - ["xpath=//div[2]/button", "xpath:position"], - ["xpath=//button[contains(.,'Add Entity ID')]", "xpath:innerText"] + ["css=.btn-success", "css:finder"], + ["xpath=(//button[@type='button'])[17]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[6]/div/div/div/fieldset/div/div/div[2]/div/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add Entity ID  ')]", "xpath:innerText"] ], "value": "" }, { - "id": "dff6b5d5-02ae-41a1-bae4-6ce39aeca199", + "id": "fdb8df7c-cb68-4c9a-9325-db6615591ff8", "comment": "", "command": "click", - "target": "css=#\\/filterEnabled\\.parent > .custom-control-label", + "target": "css=.nav-link:nth-child(2)", "targets": [ - ["css=#\\/filterEnabled\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/filterEnabled.parent']/label", "xpath:idRelative"], - ["xpath=//checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Filter?')]", "xpath:innerText"] + ["css=.nav-link:nth-child(2)", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div/nav/button[2]", "xpath:idRelative"], + ["xpath=//nav/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Options')]", "xpath:innerText"] ], "value": "" }, { "id": "356339ea-0caf-406a-a2d6-b3eb991b7af6", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/omitNotBefore\\.parent > .custom-control-label", + "target": "id=root_relyingPartyOverrides_omitNotBefore", "targets": [ - ["css=#\\/relyingPartyOverrides\\/omitNotBefore\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/omitNotBefore.parent']/label", "xpath:idRelative"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Omit Not Before Condition?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_omitNotBefore", "id"], + ["css=#root_relyingPartyOverrides_omitNotBefore", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_omitNotBefore']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[6]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "fdb64234-9424-4e0d-8be0-dd7c43859de3", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/forceAuthn\\.parent > .custom-control-label", + "target": "id=root_relyingPartyOverrides_forceAuthn", "targets": [ - ["css=#\\/relyingPartyOverrides\\/forceAuthn\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/relyingPartyOverrides/forceAuthn.parent']/label", "xpath:idRelative"], - ["xpath=//div[10]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Force AuthN')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_forceAuthn", "id"], + ["css=#root_relyingPartyOverrides_forceAuthn", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_forceAuthn']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[10]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[10]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { - "id": "c722da17-b739-4fa6-b731-8b347e3c96e3", + "id": "93505bd6-8a5e-4ef0-8f50-d2dc9bce71d6", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ - ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], - ["xpath=//array-component/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.row:nth-child(8) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[18]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[8]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[8]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { - "id": "1abe39e3-d7f2-447f-aff4-3382cc648e29", + "id": "70e68495-a52f-4c3b-aeb4-fac69e8cda96", "comment": "", "command": "pause", "target": "500", "targets": [], "value": "" }, { - "id": "93505bd6-8a5e-4ef0-8f50-d2dc9bce71d6", + "id": "b269b8f4-8191-47c1-a84a-5b64df6aadcb", "comment": "", "command": "click", - "target": "css=.input-group-append > .btn", + "target": "css=.toggle-button", "targets": [ - ["css=.input-group-append > .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/0-container']/div/div/button", "xpath:idRelative"], - ["xpath=//auto-complete/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[20]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[8]/div/div/div/div/div/div[2]/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { - "id": "70e68495-a52f-4c3b-aeb4-fac69e8cda96", + "id": "bbe6893b-033c-4a57-9065-afe00d75a818", "comment": "", - "command": "pause", - "target": "500", - "targets": [], + "command": "click", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-2", + "targets": [ + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-2", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_0']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent')]", "xpath:innerText"] + ], "value": "" }, { - "id": "b269b8f4-8191-47c1-a84a-5b64df6aadcb", + "id": "6895180e-e563-4199-acda-f20823f58a03", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/0__option--2", + "target": "css=.text-left:nth-child(3)", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/0__option--2", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/0__option--2", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/0__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/0__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[3]", "xpath:position"] + ["css=.text-left:nth-child(3)", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div/nav/button[3]", "xpath:idRelative"], + ["xpath=//button[3]", "xpath:position"], + ["xpath=//button[contains(.,'Attributes')]", "xpath:innerText"] ], "value": "" }, { "id": "c4431fc6-cbd3-4b7b-b1fd-b30141aa2af8", "comment": "", "command": "click", - "target": "css=tr:nth-child(6) .custom-control-label", + "target": "id=root_attributeRelease_6", "targets": [ - ["css=tr:nth-child(6) .custom-control-label", "css:finder"], - ["xpath=//tr[6]/td[2]/fieldset/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Toggle eduPersonAffiliation')]", "xpath:innerText"] + ["id=root_attributeRelease_6", "id"], + ["css=#root_attributeRelease_6", "css:finder"], + ["xpath=//input[@id='root_attributeRelease_6']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[8]/div/div/div/fieldset/table/tbody/tr[7]/td[2]/fieldset/div/div/input", "xpath:idRelative"], + ["xpath=//tr[7]/td[2]/fieldset/div/div/input", "xpath:position"] ], "value": "" }, { "id": "7b22d9b0-81f4-47c6-91f1-713c89cf9dd1", "comment": "", "command": "click", - "target": "css=tr:nth-child(7) .custom-control-label", + "target": "id=root_attributeRelease_7", "targets": [ ["css=tr:nth-child(7) .custom-control-label", "css:finder"], ["xpath=//tr[7]/td[2]/fieldset/div/label", "xpath:position"], @@ -852,7 +911,7 @@ "id": "ad3ec36d-6e6a-4650-b7a1-0c8efaaeabe3", "comment": "", "command": "click", - "target": "css=tr:nth-child(8) .custom-control-label", + "target": "id=root_attributeRelease_8", "targets": [ ["css=tr:nth-child(8) .custom-control-label", "css:finder"], ["xpath=//tr[8]/td[2]/fieldset/div/label", "xpath:position"], @@ -863,12 +922,13 @@ "id": "25090cbb-9e11-4938-b44e-70326857422d", "comment": "", "command": "click", - "target": "css=.btn-primary", + "target": "css=.btn-info", "targets": [ - ["css=.btn-primary", "css:finder"], - ["xpath=//button[@type='submit']", "xpath:attributes"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Save')]", "xpath:innerText"] + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/div[2]/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Save')]", "xpath:innerText"] ], "value": "" }, { @@ -927,12 +987,12 @@ "id": "be76769e-6422-4b1f-a2e4-00a32d394057", "comment": "", "command": "type", - "target": "id=/name", + "target": "id=root_name", "targets": [ - ["id=/name", "id"], - ["name=field59", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], + ["id=root_name", "id"], + ["css=#root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "Name ID Format Filter" @@ -947,13 +1007,14 @@ "id": "81373637-8e36-4736-9b2a-7b8d477dc2c1", "comment": "", "command": "click", - "target": "id=/nameIdFormatFilterTarget.valuedd", + "target": "id=dropdown-label.filter-target-type", "targets": [ - ["id=/nameIdFormatFilterTarget.valuedd", "id"], - ["css=#\\/nameIdFormatFilterTarget\\.valuedd", "css:finder"], - ["xpath=//button[@id='/nameIdFormatFilterTarget.valuedd']", "xpath:attributes"], + ["id=dropdown-label.filter-target-type", "id"], + ["css=#dropdown-label\\.filter-target-type", "css:finder"], + ["xpath=//button[@id='dropdown-label.filter-target-type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[3]/div/div/div/fieldset/div/div/div/div/button", "xpath:idRelative"], ["xpath=//fieldset/div/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Entity ID')]", "xpath:innerText"] + ["xpath=//button[contains(.,'Entity ID ')]", "xpath:innerText"] ], "value": "" }, { @@ -967,14 +1028,13 @@ "id": "f562c710-39fc-490d-80c9-d3525722397c", "comment": "", "command": "click", - "target": "linkText=Regex", + "target": "css=.show > .dropdown-item:nth-child(2)", "targets": [ - ["linkText=Regex", "linkText"], - ["css=.dropdown-item:nth-child(2)", "css:finder"], - ["xpath=//a[contains(text(),'Regex')]", "xpath:link"], - ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], - ["xpath=//div/div/a[2]", "xpath:position"], - ["xpath=//a[contains(.,'Regex')]", "xpath:innerText"] + ["css=.show > .dropdown-item:nth-child(2)", "css:finder"], + ["xpath=(//button[@type='button'])[15]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[3]/div/div/div/fieldset/div/div/div/div/div/button[2]", "xpath:idRelative"], + ["xpath=//fieldset/div/div/div/div/div/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Regex')]", "xpath:innerText"] ], "value": "" }, { @@ -988,30 +1048,53 @@ "id": "c5dc3e04-eb5a-4885-92ed-3425da3026e6", "comment": "", "command": "sendKeys", - "target": "id=/nameIdFormatFilterTarget.target", - "targets": [], + "target": "id=targetInput", + "targets": [ + ["id=targetInput", "id"], + ["name=script", "name"], + ["css=#targetInput", "css:finder"], + ["xpath=//input[@id='targetInput']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[3]/div/div/div/fieldset/div/div/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] + ], "value": "/foo.*/" + }, { + "id": "1fd21e00-882a-42d2-82dc-11935393b718", + "comment": "", + "command": "click", + "target": "css=.nav-link:nth-child(2)", + "targets": [ + ["css=.nav-link:nth-child(2)", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div/nav/button[2]", "xpath:idRelative"], + ["xpath=//nav/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Options')]", "xpath:innerText"] + ], + "value": "" }, { "id": "d2cbc813-89e5-4801-a9fe-5e0e775a419f", "comment": "", "command": "click", - "target": "css=#\\/removeExistingFormats\\.parent > .custom-control-label", + "target": "id=root_removeExistingFormats", "targets": [ - ["css=#\\/removeExistingFormats\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/removeExistingFormats.parent']/label", "xpath:idRelative"], - ["xpath=//div[7]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Remove Existing Formats?')]", "xpath:innerText"] + ["id=root_removeExistingFormats", "id"], + ["css=#root_removeExistingFormats", "css:finder"], + ["xpath=//input[@id='root_removeExistingFormats']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { "id": "77dfeb05-38e3-4ef8-9566-06e7597d464c", "comment": "", "command": "click", - "target": "css=.btn-primary", + "target": "css=.btn-info", "targets": [ - ["css=.btn-primary > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Save')]", "xpath:innerText"] + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/div[2]/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Save')]", "xpath:innerText"] ], "value": "" }, { @@ -1025,12 +1108,13 @@ "id": "285fa762-484b-4a81-bdc3-68358cbbe895", "comment": "", "command": "click", - "target": "css=.mb-4:nth-child(1) .actions span", + "target": "css=.mb-4:nth-child(3) .edit-link", "targets": [ - ["css=.mb-4:nth-child(1) .actions span", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div/div/button/span", "xpath:idRelative"], - ["xpath=//div/button/span", "xpath:position"], - ["xpath=//span[contains(.,'Edit')]", "xpath:innerText"] + ["css=.mb-4:nth-child(3) .edit-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div/div/button", "xpath:idRelative"], + ["xpath=//section/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Edit')]", "xpath:innerText"] ], "value": "" }, { @@ -1044,14 +1128,27 @@ "id": "c82354e7-3041-4b44-952a-a654510d0069", "comment": "", "command": "waitForElementVisible", - "target": "id=/name", - "targets": [], + "target": "id=root_name", + "targets": [ + ["id=root_name", "id"], + ["css=.mb-0 > #root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "30000" + }, { + "id": "6e62eda3-8e04-4836-905a-77e1965de7cf", + "comment": "", + "command": "type", + "target": "id=root_name", + "targets": [], + "value": "" }, { "id": "9e520768-e930-483e-b078-c39be294438f", "comment": "", "command": "type", - "target": "id=/name", + "target": "id=root_name", "targets": [ ["id=/name", "id"], ["name=field88", "name"], @@ -1064,24 +1161,32 @@ "id": "8c2f44ff-29f5-49b0-94ee-6e79e2fe871b", "comment": "", "command": "click", - "target": "css=.nav > .nav-link:nth-child(2)", + "target": "css=.nav-link:nth-child(2)", "targets": [ - ["linkText=Dynamic Attributes", "linkText"], - ["css=.nav > .nav-link:nth-child(2)", "css:finder"], - ["xpath=(//a[contains(@href, '/metadata/provider/e9de09a6-6d16-4e94-bba4-13fa38c312ff/edit/dynamic')])[2]", "xpath:href"], - ["xpath=//nav/a[2]", "xpath:position"] + ["css=.nav-link:nth-child(2)", "css:finder"], + ["xpath=(//button[@type='button'])[8]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/nav/button[2]", "xpath:idRelative"], + ["xpath=//nav/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Dynamic Attributes')]", "xpath:innerText"] ], "value": "" + }, { + "id": "c3282a5c-6b89-4a02-b1e6-32f0c9928123", + "comment": "", + "command": "type", + "target": "id=root_dynamicMetadataResolverAttributes_refreshDelayFactor", + "targets": [], + "value": "" }, { "id": "a339275d-3c7a-4a4d-9e6e-cf587521e65c", "comment": "", "command": "type", - "target": "id=/dynamicMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_dynamicMetadataResolverAttributes_refreshDelayFactor", "targets": [ - ["id=/dynamicMetadataResolverAttributes/refreshDelayFactor", "id"], - ["name=field99", "name"], - ["css=#\\/dynamicMetadataResolverAttributes\\/refreshDelayFactor", "css:finder"], - ["xpath=//input[@id='/dynamicMetadataResolverAttributes/refreshDelayFactor']", "xpath:attributes"], + ["id=root_dynamicMetadataResolverAttributes_refreshDelayFactor", "id"], + ["css=#root_dynamicMetadataResolverAttributes_refreshDelayFactor", "css:finder"], + ["xpath=//input[@id='root_dynamicMetadataResolverAttributes_refreshDelayFactor']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div[4]/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "0.7" @@ -1089,11 +1194,13 @@ "id": "7cab82a7-0703-4087-b0d4-5d02a97c28f2", "comment": "", "command": "click", - "target": "css=.btn-info > translate-i18n", + "target": "css=.btn-info", "targets": [ - ["css=.btn-info > translate-i18n", "css:finder"], - ["xpath=//div[2]/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Save')]", "xpath:innerText"] + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,' Save')]", "xpath:innerText"] ], "value": "" }, { @@ -1149,11 +1256,13 @@ "id": "bf03f3d5-c6f3-4693-9145-3afefbc84bab", "comment": "", "command": "click", - "target": "css=.btn-primary > translate-i18n", + "target": "css=.btn-primary", "targets": [ - ["css=.btn-primary > translate-i18n", "css:finder"], - ["xpath=//history-list/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Compare Selected')]", "xpath:innerText"] + ["css=.btn-primary", "css:finder"], + ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/button", "xpath:idRelative"], + ["xpath=//section/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Compare Selected(2)')]", "xpath:innerText"] ], "value": "" }, { @@ -1194,11 +1303,14 @@ "id": "010da979-20a9-419f-89ff-d897f11e6ccb", "comment": "", "command": "click", - "target": "css=.btn-link:nth-child(1) > translate-i18n", + "target": "linkText=Version History", "targets": [ - ["css=.btn-link:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Version History')]", "xpath:innerText"] + ["linkText=Version History", "linkText"], + ["css=.btn-link:nth-child(1)", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/2a395997-566c-4511-ac42-f972e5b1fcf9/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] ], "value": "" }, { @@ -1207,61 +1319,66 @@ "command": "click", "target": "css=tr:nth-child(1) a", "targets": [ - ["linkText=Oct 03, 2019 10:37:01 (Current)", "linkText"], + ["linkText=Jun 15, 2021 16:09:47 (Current)", "linkText"], ["css=tr:nth-child(1) a", "css:finder"], - ["xpath=//a[contains(@href, '/metadata/provider/28ab5bc2-c16d-4460-8e62-18b788b40b8d/configuration/options')]", "xpath:href"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/table/tbody/tr/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/2a395997-566c-4511-ac42-f972e5b1fcf9/configuration/options')]", "xpath:href"], ["xpath=//td[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Oct 03, 2019 10:37:01 (Current)')]", "xpath:innerText"] + ["xpath=//a[contains(.,'Jun 15, 2021 16:09:47 (Current)')]", "xpath:innerText"] ], "value": "" }, { "id": "f4d519b0-c4f5-4421-a7d2-c745de1c695f", "comment": "", "command": "click", - "target": "css=.btn:nth-child(2) > translate-i18n", + "target": "css=.list-group-item:nth-child(1) .mx-4", "targets": [ - ["css=.btn:nth-child(2) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/button/translate-i18n", "xpath:idRelative"], - ["xpath=//div/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Filters')]", "xpath:innerText"] + ["css=.list-group-item:nth-child(1) .mx-4", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='filters']/ul/li/div/button", "xpath:idRelative"], + ["xpath=//li/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Entity Attributes Filter')]", "xpath:innerText"] ], "value": "" }, { "id": "53fcbf86-d8f4-4366-b9ea-1a01dd89ac08", "comment": "", "command": "click", - "target": "css=.list-group-item:nth-child(1) > filter-configuration-list-item > .d-flex > .btn", + "target": "linkText=Edit", "targets": [ - ["css=.list-group-item:nth-child(1) > filter-configuration-list-item > .d-flex > .btn", "css:finder"], - ["xpath=//div[@id='filters']/filter-configuration-list/ul/li/filter-configuration-list-item/div/button", "xpath:idRelative"], - ["xpath=//filter-configuration-list-item/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Entity Attributes Filter')]", "xpath:innerText"] + ["linkText=Edit", "linkText"], + ["css=.d-flex:nth-child(1) > .btn:nth-child(1)", "css:finder"], + ["xpath=//div[@id='filters']/ul/li/div[2]/div/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/2a395997-566c-4511-ac42-f972e5b1fcf9/filter/0e6a21f4-f88c-494e-a1d7-5b2dc684d75f/edit/common')]", "xpath:href"], + ["xpath=//div[2]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Edit')]", "xpath:innerText"] ], "value": "" }, { - "id": "65b8ceb0-7589-465c-be12-123bd78de9ea", + "id": "2457e1c1-6ff5-4839-bdb4-311aadc87b78", "comment": "", - "command": "click", - "target": "css=.justify-content-between > .btn:nth-child(1) > translate-i18n", + "command": "waitForElementVisible", + "target": "id=root_name", "targets": [ - ["css=.justify-content-between > .btn:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div[@id='filters']/filter-configuration-list/ul/li/filter-configuration-list-item/div[2]/div/div/a/translate-i18n", "xpath:idRelative"], - ["xpath=//div[2]/div/div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Edit')]", "xpath:innerText"] + ["id=root_name", "id"], + ["css=#root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div/div/div/div/input", "xpath:position"] ], - "value": "" + "value": "30000" }, { - "id": "2457e1c1-6ff5-4839-bdb4-311aadc87b78", + "id": "d9357940-f476-4ae7-ad39-2f20b8cb979c", "comment": "", - "command": "waitForElementVisible", - "target": "id=/name", + "command": "type", + "target": "id=root_name", "targets": [], - "value": "30000" + "value": "" }, { "id": "4600a21d-e332-4d99-8903-691a6126722f", "comment": "", "command": "type", - "target": "id=/name", + "target": "id=root_name", "targets": [ ["id=/name", "id"], ["name=field118", "name"], @@ -1274,11 +1391,13 @@ "id": "7b064f9b-5820-43cf-aca4-b5f8df846200", "comment": "", "command": "click", - "target": "css=.btn-primary > translate-i18n", + "target": "css=.btn-info", "targets": [ - ["css=.btn-primary > translate-i18n", "css:finder"], - ["xpath=//div[2]/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Save')]", "xpath:innerText"] + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div[2]/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Save')]", "xpath:innerText"] ], "value": "" }, { @@ -1292,12 +1411,15 @@ "id": "2e2a837d-0904-40bc-bef8-92d26660e04f", "comment": "", "command": "click", - "target": "css=.nav-item translate-i18n", + "target": "linkText=Dashboard", "targets": [ - ["css=.nav-item translate-i18n", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li[2]/a/translate-i18n", "xpath:idRelative"], - ["xpath=//a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Dashboard')]", "xpath:innerText"] + ["linkText=Dashboard", "linkText"], + ["css=.nav-link:nth-child(3)", "css:finder"], + ["xpath=//a[contains(text(),'Dashboard')]", "xpath:link"], + ["xpath=//div[@id='basic-navbar-nav']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/dashboard')]", "xpath:href"], + ["xpath=//nav/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Dashboard')]", "xpath:innerText"] ], "value": "" }, { @@ -1346,12 +1468,14 @@ "id": "43a67b75-0971-49ce-b457-0c0424a5a2aa", "comment": "", "command": "click", - "target": "css=.btn-link:nth-child(1) > translate-i18n", + "target": "linkText=Version History", "targets": [ - ["css=.btn-link:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/a/translate-i18n", "xpath:idRelative"], - ["xpath=//div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Version History')]", "xpath:innerText"] + ["linkText=Version History", "linkText"], + ["css=div:nth-child(1) > .btn-link:nth-child(1)", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/2a395997-566c-4511-ac42-f972e5b1fcf9/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] ], "value": "" }, { @@ -1389,7 +1513,9 @@ "target": "css=.btn-primary", "targets": [ ["css=.btn-primary", "css:finder"], - ["xpath=//history-list/button", "xpath:position"], + ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/button", "xpath:idRelative"], + ["xpath=//section/div/div/button", "xpath:position"], ["xpath=//button[contains(.,'Compare Selected(2)')]", "xpath:innerText"] ], "value": "" @@ -1404,51 +1530,48 @@ "id": "359620ef-2e60-425e-9513-a303075b3006", "comment": "", "command": "click", - "target": "css=.d-flex:nth-child(1) > .border-primary:nth-child(2) .fa", + "target": "id=toggleLimited", "targets": [ - ["css=.d-flex:nth-child(1) > .border-primary:nth-child(2) .fa", "css:finder"], - ["xpath=//div[2]/div/button/i", "xpath:position"] + ["id=toggleLimited", "id"], + ["name=toggleLimited", "name"], + ["css=#toggleLimited", "css:finder"], + ["xpath=//input[@id='toggleLimited']", "xpath:attributes"], + ["xpath=//div[@id='navigation']/div[2]/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { "id": "e83dc2da-ad95-4e50-b969-57721eb8f1dc", "comment": "", "command": "click", - "target": "css=.btn-primary > translate-i18n", + "target": "css=.d-flex:nth-child(5) > .border-primary:nth-child(2) .svg-inline--fa", "targets": [ - ["css=.btn-primary > translate-i18n", "css:finder"], - ["xpath=//div[3]/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Compare Selected')]", "xpath:innerText"] + ["css=.d-flex:nth-child(5) > .border-primary:nth-child(2) .svg-inline--fa", "css:finder"] ], "value": "" }, { "id": "c2102a31-6e18-4d6c-8146-e23459403b65", "comment": "", "command": "assertText", - "target": "css=.bg-diff > .d-block:nth-child(2)", + "target": "css=.border-primary:nth-child(2) > .bg-primary-light .mb-0:nth-child(1)", "targets": [ - ["css=.bg-diff > .d-block:nth-child(2)", "css:finder"], - ["xpath=//section[2]/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:position"], - ["xpath=//span[contains(.,'Entity Attributes Filter V2')]", "xpath:innerText"] + ["css=.border-primary:nth-child(2) > .bg-primary-light .mb-0:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/div[4]/div[2]/div/div/p", "xpath:idRelative"], + ["xpath=//p", "xpath:position"], + ["xpath=//p[contains(.,'Entity Attributes Filter V2')]", "xpath:innerText"] ], "value": "Entity Attributes Filter V2" }, { "id": "cac6c125-c81b-40af-ae21-2b717df9511e", "comment": "", "command": "assertText", - "target": "css=.bg-diff > .d-block:nth-child(3)", + "target": "css=.border-primary:nth-child(3) > .bg-primary-light .mb-0:nth-child(1)", "targets": [ - ["css=.bg-diff > .d-block:nth-child(3)", "css:finder"], - ["xpath=//section[2]/div/div[2]/object-property/primitive-property/div/div/span[3]", "xpath:position"] + ["css=.border-primary:nth-child(3) > .bg-primary-light .mb-0:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/div[4]/div[3]/div/div/p", "xpath:idRelative"], + ["xpath=//div[3]/div/div/p", "xpath:position"] ], "value": "Entity Attributes Filter" - }, { - "id": "3f618724-2825-4ebe-97d5-038a67a23e9b", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1385-1.side b/backend/src/integration/resources/SHIBUI-1385-1.side index e9827df33..05225b3f6 100644 --- a/backend/src/integration/resources/SHIBUI-1385-1.side +++ b/backend/src/integration/resources/SHIBUI-1385-1.side @@ -49,43 +49,90 @@ ["xpath=//tr[2]/td[2]/input", "xpath:position"] ], "value": "${KEY_ENTER}" + }, { + "id": "7de08941-38d0-4432-aa7c-e445bf52f29d", + "comment": "", + "command": "click", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [ + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "f3bb93b7-b6ff-41e3-9057-029250b3cc38", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "ead2f875-0685-445b-a11e-94f98858df95", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "560f074a-d125-4586-8959-830fa8d15ab0", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "ad3811ad-f95b-4cca-a5d9-63a10063a652", "comment": "", "command": "click", - "target": "css=#addNewDropdown > translate-i18n", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=#addNewDropdown > translate-i18n", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/translate-i18n", "xpath:idRelative"], - ["xpath=//translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Add New')]", "xpath:innerText"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "1caf8be6-a4d9-4b3b-ace1-0f76d3600d62", "comment": "", "command": "click", - "target": "linkText=Metadata Source", + "target": "id=metadata-nav-dropdown-source", "targets": [ - ["linkText=Metadata Source", "linkText"], - ["css=.dropdown-menu > .nav-link:nth-child(1)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[2]", "xpath:href"], - ["xpath=//div/a", "xpath:position"] + ["id=metadata-nav-dropdown-source", "id"], + ["linkText=Add a new metadata source", "linkText"], + ["css=#metadata-nav-dropdown-source", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata source')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-source']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/source/new')]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata source')]", "xpath:innerText"] ], "value": "" }, { "id": "295789cf-0603-4fd2-9971-c2ed21d2fc81", "comment": "", - "command": "pause", - "target": "5000", - "targets": [], - "value": "" + "command": "waitForElementVisible", + "target": "id=root_serviceProviderName", + "targets": [ + ["id=root_serviceProviderName", "id"], + ["css=#root_serviceProviderName", "css:finder"], + ["xpath=//input[@id='root_serviceProviderName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "30000" }, { "id": "218e51fd-49e6-400b-9d7f-61bcd8e0c074", "comment": "", "command": "click", - "target": "id=/serviceProviderName", + "target": "id=root_serviceProviderName", "targets": [ ["id=/serviceProviderName", "id"], ["name=field1", "name"], @@ -98,7 +145,7 @@ "id": "9ee43e46-ab9e-46b1-8eb2-9718fb98bda2", "comment": "", "command": "type", - "target": "id=/serviceProviderName", + "target": "id=root_serviceProviderName", "targets": [ ["id=field1", "id"], ["name=field1", "name"], @@ -111,13 +158,13 @@ "id": "7fe7298b-275c-4797-8d1b-f4547b63eb02", "comment": "", "command": "type", - "target": "id=/entityId", + "target": "id=root_entityId", "targets": [ - ["id=/entityId", "id"], - ["name=field2", "name"], - ["css=#\\/entityId", "css:finder"], - ["xpath=//input[@id='/entityId']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_entityId", "id"], + ["css=#root_entityId", "css:finder"], + ["xpath=//input[@id='root_entityId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/div/form/div/div/div/div/div/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "test-1234" }, { @@ -134,12 +181,12 @@ "id": "4d88e469-df2f-40ee-a557-b5eafbc24ef3", "comment": "", "command": "click", - "target": "id=/organization/name", + "target": "id=root_organization_name", "targets": [ - ["id=/organization/name", "id"], - ["name=field5", "name"], - ["css=#\\/organization\\/name", "css:finder"], - ["xpath=//input[@id='/organization/name']", "xpath:attributes"], + ["id=root_organization_name", "id"], + ["css=#root_organization_name", "css:finder"], + ["xpath=//input[@id='root_organization_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -147,7 +194,7 @@ "id": "e0168286-af90-4c0a-a0ba-0dd97d64849b", "comment": "", "command": "type", - "target": "id=/organization/name", + "target": "id=root_organization_name", "targets": [ ["id=field5", "id"], ["name=field5", "name"], @@ -160,75 +207,77 @@ "id": "8f6dcf95-41e4-446a-a7fb-a064d928e1bc", "comment": "", "command": "type", - "target": "id=/organization/displayName", + "target": "id=root_organization_displayName", "targets": [ - ["id=/organization/displayName", "id"], - ["name=field6", "name"], - ["css=#\\/organization\\/displayName", "css:finder"], - ["xpath=//input[@id='/organization/displayName']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_organization_displayName", "id"], + ["css=#root_organization_displayName", "css:finder"], + ["xpath=//input[@id='root_organization_displayName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/input", "xpath:position"] ], "value": "Test Org Name" }, { "id": "7cc2068e-3fa3-4f1c-ac97-c63e78911b9e", "comment": "", "command": "type", - "target": "id=/organization/url", + "target": "id=root_organization_url", "targets": [ - ["id=/organization/url", "id"], - ["name=field7", "name"], - ["css=#\\/organization\\/url", "css:finder"], - ["xpath=//input[@id='/organization/url']", "xpath:attributes"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_organization_url", "id"], + ["css=#root_organization_url", "css:finder"], + ["xpath=//input[@id='root_organization_url']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "http://test.org" }, { "id": "1da05567-4f8d-4fd8-957a-bfddb2380bfb", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "5379b245-cd77-43c1-b424-3b6595c74174", "comment": "", "command": "click", - "target": "id=/contacts/0/name", + "target": "id=root_contacts_0_name", "targets": [ - ["id=/contacts/0/name", "id"], - ["name=field10", "name"], - ["css=#\\/contacts\\/0\\/name", "css:finder"], - ["xpath=//input[@id='/contacts/0/name']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_0_name", "id"], + ["css=#root_contacts_0_name", "css:finder"], + ["xpath=//input[@id='root_contacts_0_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "b658cae2-ba5a-406b-a48c-87d110ff4ed0", "comment": "", "command": "type", - "target": "id=/contacts/0/name", + "target": "id=root_contacts_0_name", "targets": [ - ["id=field10", "id"], - ["name=field10", "name"], - ["css=#field10", "css:finder"], - ["xpath=//input[@id='field10']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_0_name", "id"], + ["css=#root_contacts_0_name", "css:finder"], + ["xpath=//input[@id='root_contacts_0_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "Test User" }, { "id": "3a2de62d-c1c1-43a7-a484-8a0d23bf301e", "comment": "", "command": "click", - "target": "id=/contacts/0/type", + "target": "id=root_contacts_0_type", "targets": [ - ["id=/contacts/0/type", "id"], - ["name=field11", "name"], - ["css=#\\/contacts\\/0\\/type", "css:finder"], - ["xpath=//select[@id='/contacts/0/type']", "xpath:attributes"], + ["id=root_contacts_0_type", "id"], + ["css=#root_contacts_0_type", "css:finder"], + ["xpath=//select[@id='root_contacts_0_type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], ["xpath=//select", "xpath:position"] ], "value": "" @@ -236,121 +285,130 @@ "id": "86e4e429-2a72-496a-add8-df2fc079d157", "comment": "", "command": "select", - "target": "id=/contacts/0/type", - "targets": [], - "value": "label=Technical" + "target": "id=root_contacts_0_type", + "targets": [ + ["id=root_contacts_0_type", "id"], + ["css=#root_contacts_0_type", "css:finder"], + ["xpath=//select[@id='root_contacts_0_type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] + ], + "value": "label=technical" }, { "id": "95531b0b-c084-422d-bac9-60ee7e7a9f16", "comment": "", "command": "click", - "target": "id=/contacts/0/emailAddress", + "target": "id=root_contacts_0_emailAddress", "targets": [ - ["id=/contacts/0/emailAddress", "id"], - ["name=field12", "name"], - ["css=#\\/contacts\\/0\\/emailAddress", "css:finder"], - ["xpath=//input[@id='/contacts/0/emailAddress']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[3]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_0_emailAddress", "id"], + ["css=#root_contacts_0_emailAddress", "css:finder"], + ["xpath=//input[@id='root_contacts_0_emailAddress']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "e5d6662e-38d4-479f-b76b-c0c05fcabe15", "comment": "", "command": "type", - "target": "id=/contacts/0/emailAddress", + "target": "id=root_contacts_0_emailAddress", "targets": [ - ["id=field12", "id"], - ["name=field12", "name"], - ["css=#field12", "css:finder"], - ["xpath=//input[@id='field12']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[3]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_0_emailAddress", "id"], + ["css=#root_contacts_0_emailAddress", "css:finder"], + ["xpath=//input[@id='root_contacts_0_emailAddress']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:position"] ], "value": "user@test.org" }, { "id": "b4e3ea55-b4c0-4585-99fe-ac1534efadd8", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "234de758-df6d-47d7-af74-83aee3fa1e72", "comment": "", "command": "click", - "target": "id=/contacts/1/name", + "target": "id=root_contacts_1_name", "targets": [ - ["id=/contacts/1/name", "id"], - ["name=field14", "name"], - ["css=#\\/contacts\\/1\\/name", "css:finder"], - ["xpath=//input[@id='/contacts/1/name']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_1_name", "id"], + ["css=#root_contacts_1_name", "css:finder"], + ["xpath=//input[@id='root_contacts_1_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "02819e27-7aed-4a1a-867f-f8131c3897d8", "comment": "", "command": "type", - "target": "id=/contacts/1/name", + "target": "id=root_contacts_1_name", "targets": [ - ["id=field14", "id"], - ["name=field14", "name"], - ["css=#field14", "css:finder"], - ["xpath=//input[@id='field14']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_1_name", "id"], + ["css=#root_contacts_1_name", "css:finder"], + ["xpath=//input[@id='root_contacts_1_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "Test User 2" }, { "id": "1d478856-8742-4627-acbe-daed2bb83abe", "comment": "", "command": "click", - "target": "id=/contacts/1/type", + "target": "id=root_contacts_1_type", "targets": [ - ["css=#field15 > option:nth-child(2)", "css:finder"], - ["xpath=(//option[@value='1: support'])[2]", "xpath:attributes"], - ["xpath=//select[@id='field15']/option[2]", "xpath:idRelative"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/select-component/div/select/option[2]", "xpath:position"] + ["id=root_contacts_1_type", "id"], + ["css=#root_contacts_1_type", "css:finder"], + ["xpath=//select[@id='root_contacts_1_type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:position"] ], "value": "" }, { "id": "9b4c76b4-3851-4aac-a9f5-67e20c36f174", "comment": "", "command": "select", - "target": "id=/contacts/1/type", + "target": "id=root_contacts_1_type", "targets": [ - ["id=/contacts/1/type", "id"], - ["name=field15", "name"], - ["css=#\\/contacts\\/1\\/type", "css:finder"], - ["xpath=//select[@id='/contacts/1/type']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/select-component/div/select", "xpath:position"] + ["id=root_contacts_1_type", "id"], + ["css=#root_contacts_1_type", "css:finder"], + ["xpath=//select[@id='root_contacts_1_type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:position"] ], - "value": "label=Support" + "value": "label=support" }, { "id": "5e3fddc1-786d-4040-8351-2f553e3c8811", "comment": "", "command": "click", - "target": "id=/contacts/1/emailAddress", + "target": "id=root_contacts_1_emailAddress", "targets": [ - ["id=/contacts/1/emailAddress", "id"], - ["name=field16", "name"], - ["css=#\\/contacts\\/1\\/emailAddress", "css:finder"], - ["xpath=//input[@id='/contacts/1/emailAddress']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[3]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_1_emailAddress", "id"], + ["css=#root_contacts_1_emailAddress", "css:finder"], + ["xpath=//input[@id='root_contacts_1_emailAddress']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "700d8907-6a65-43d5-aebf-60a392379534", "comment": "", "command": "type", - "target": "id=/contacts/1/emailAddress", + "target": "id=root_contacts_1_emailAddress", "targets": [ - ["id=field16", "id"], - ["name=field16", "name"], - ["css=#field16", "css:finder"], - ["xpath=//input[@id='field16']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[3]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_1_emailAddress", "id"], + ["css=#root_contacts_1_emailAddress", "css:finder"], + ["xpath=//input[@id='root_contacts_1_emailAddress']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:position"] ], "value": "user2@test.org" }, { @@ -367,12 +425,12 @@ "id": "f38b7fca-0c0c-4658-9df6-10a26881c6a5", "comment": "", "command": "click", - "target": "id=/mdui/displayName", + "target": "id=root_mdui_displayName", "targets": [ - ["id=/mdui/displayName", "id"], - ["name=field19", "name"], - ["css=#\\/mdui\\/displayName", "css:finder"], - ["xpath=//input[@id='/mdui/displayName']", "xpath:attributes"], + ["id=root_mdui_displayName", "id"], + ["css=#root_mdui_displayName", "css:finder"], + ["xpath=//input[@id='root_mdui_displayName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -380,12 +438,12 @@ "id": "c03c4582-e1f1-449f-9a79-300d48ad69d8", "comment": "", "command": "type", - "target": "id=/mdui/displayName", + "target": "id=root_mdui_displayName", "targets": [ - ["id=field19", "id"], - ["name=field19", "name"], - ["css=#field19", "css:finder"], - ["xpath=//input[@id='field19']", "xpath:attributes"], + ["id=root_mdui_displayName", "id"], + ["css=#root_mdui_displayName", "css:finder"], + ["xpath=//input[@id='root_mdui_displayName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "Display Name" @@ -393,25 +451,25 @@ "id": "5098507c-fa51-4c13-b9a3-381034e0fa52", "comment": "", "command": "type", - "target": "id=/mdui/informationUrl", + "target": "id=root_mdui_informationUrl", "targets": [ - ["id=/mdui/informationUrl", "id"], - ["name=field20", "name"], - ["css=#\\/mdui\\/informationUrl", "css:finder"], - ["xpath=//input[@id='/mdui/informationUrl']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_mdui_informationUrl", "id"], + ["css=#root_mdui_informationUrl", "css:finder"], + ["xpath=//input[@id='root_mdui_informationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "http://test.org/info" }, { "id": "d5de3699-5a18-4abe-a2ea-0a2b7565c525", "comment": "", "command": "type", - "target": "id=/mdui/description", + "target": "id=root_mdui_description", "targets": [ - ["id=/mdui/description", "id"], - ["name=field21", "name"], - ["css=#\\/mdui\\/description", "css:finder"], - ["xpath=//textarea[@id='/mdui/description']", "xpath:attributes"], + ["id=root_mdui_description", "id"], + ["css=#root_mdui_description", "css:finder"], + ["xpath=//textarea[@id='root_mdui_description']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div[3]/div/div/textarea", "xpath:idRelative"], ["xpath=//textarea", "xpath:position"] ], "value": "This is a description." @@ -419,65 +477,65 @@ "id": "115bb9a9-e991-4cf0-8bcb-363d9dc3c269", "comment": "", "command": "click", - "target": "id=/mdui/privacyStatementUrl", + "target": "id=root_mdui_privacyStatementUrl", "targets": [ - ["id=/mdui/privacyStatementUrl", "id"], - ["name=field22", "name"], - ["css=#\\/mdui\\/privacyStatementUrl", "css:finder"], - ["xpath=//input[@id='/mdui/privacyStatementUrl']", "xpath:attributes"], - ["xpath=//fieldset[2]/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_mdui_privacyStatementUrl", "id"], + ["css=#root_mdui_privacyStatementUrl", "css:finder"], + ["xpath=//input[@id='root_mdui_privacyStatementUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "df623bef-a1fc-48ff-aa93-05e0da85ef51", "comment": "", "command": "type", - "target": "id=/mdui/privacyStatementUrl", + "target": "id=root_mdui_privacyStatementUrl", "targets": [ - ["id=field22", "id"], - ["name=field22", "name"], - ["css=#field22", "css:finder"], - ["xpath=//input[@id='field22']", "xpath:attributes"], - ["xpath=//fieldset[2]/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_mdui_privacyStatementUrl", "id"], + ["css=#root_mdui_privacyStatementUrl", "css:finder"], + ["xpath=//input[@id='root_mdui_privacyStatementUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/input", "xpath:position"] ], "value": "http://test.org/privacy" }, { "id": "ed17408b-a763-4e5d-86cd-efe575df8d08", "comment": "", "command": "type", - "target": "id=/mdui/logoUrl", + "target": "id=root_mdui_logoUrl", "targets": [ - ["id=/mdui/logoUrl", "id"], - ["name=field23", "name"], - ["css=#\\/mdui\\/logoUrl", "css:finder"], - ["xpath=//input[@id='/mdui/logoUrl']", "xpath:attributes"], - ["xpath=//fieldset[2]/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_mdui_logoUrl", "id"], + ["css=#root_mdui_logoUrl", "css:finder"], + ["xpath=//input[@id='root_mdui_logoUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div[2]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div/input", "xpath:position"] ], "value": "http://test.org/logo" }, { "id": "2946a968-7289-43e5-820d-b1aee442ce96", "comment": "", "command": "type", - "target": "id=/mdui/logoWidth", + "target": "id=root_mdui_logoWidth", "targets": [ - ["id=/mdui/logoWidth", "id"], - ["name=field24", "name"], - ["css=#\\/mdui\\/logoWidth", "css:finder"], - ["xpath=//input[@id='/mdui/logoWidth']", "xpath:attributes"], - ["xpath=//integer-component/div/input", "xpath:position"] + ["id=root_mdui_logoWidth", "id"], + ["css=#root_mdui_logoWidth", "css:finder"], + ["xpath=//input[@id='root_mdui_logoWidth']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div[2]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] ], "value": "200" }, { "id": "ceec5477-13d4-4ab4-944e-a2a34a9b4510", "comment": "", "command": "type", - "target": "id=/mdui/logoHeight", + "target": "id=root_mdui_logoHeight", "targets": [ - ["id=/mdui/logoHeight", "id"], - ["name=field25", "name"], - ["css=#\\/mdui\\/logoHeight", "css:finder"], - ["xpath=//input[@id='/mdui/logoHeight']", "xpath:attributes"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/integer-component/div/input", "xpath:position"] + ["id=root_mdui_logoHeight", "id"], + ["css=#root_mdui_logoHeight", "css:finder"], + ["xpath=//input[@id='root_mdui_logoHeight']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div[2]/div[3]/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/input", "xpath:position"] ], "value": "300" }, { @@ -494,25 +552,25 @@ "id": "88054c63-d468-4340-b4d3-c69fb6ed6f96", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/protocolSupportEnum", + "target": "id=root_serviceProviderSsoDescriptor_protocolSupportEnum", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: SAML 2']", "xpath:attributes"], - ["xpath=//select[@id='field28']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'SAML 2')]", "xpath:innerText"] + ["id=root_serviceProviderSsoDescriptor_protocolSupportEnum", "id"], + ["css=#root_serviceProviderSsoDescriptor_protocolSupportEnum", "css:finder"], + ["xpath=//select[@id='root_serviceProviderSsoDescriptor_protocolSupportEnum']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], "value": "" }, { "id": "c77b3648-fce1-46f9-aec9-ca88c90d4c92", "comment": "", "command": "select", - "target": "id=/serviceProviderSsoDescriptor/protocolSupportEnum", + "target": "id=root_serviceProviderSsoDescriptor_protocolSupportEnum", "targets": [ - ["id=/serviceProviderSsoDescriptor/protocolSupportEnum", "id"], - ["name=field28", "name"], - ["css=#\\/serviceProviderSsoDescriptor\\/protocolSupportEnum", "css:finder"], - ["xpath=//select[@id='/serviceProviderSsoDescriptor/protocolSupportEnum']", "xpath:attributes"], + ["id=root_serviceProviderSsoDescriptor_protocolSupportEnum", "id"], + ["css=#root_serviceProviderSsoDescriptor_protocolSupportEnum", "css:finder"], + ["xpath=//select[@id='root_serviceProviderSsoDescriptor_protocolSupportEnum']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div/div/div/div/select", "xpath:idRelative"], ["xpath=//select", "xpath:position"] ], "value": "label=SAML 2" @@ -520,11 +578,13 @@ "id": "aec93dce-3142-4df3-b09d-735c70d1197b", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -538,13 +598,12 @@ "id": "a0102f51-f1d8-4c38-9170-482022ea7397", "comment": "", "command": "click", - "target": "css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/0-container .btn", + "target": "css=.toggle-button", "targets": [ - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/0-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/serviceProviderSsoDescriptor/nameIdFormats/0-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -558,23 +617,29 @@ "id": "9033e5ad-4255-4aa7-a878-c7beab69ee8e", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/0__option--0", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0-item-0", "targets": [ - ["id=/serviceProviderSsoDescriptor/nameIdFormats/0__option--0", "id"], - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/0__option--0", "css:finder"], - ["xpath=//li[@id='/serviceProviderSsoDescriptor/nameIdFormats/0__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/serviceProviderSsoDescriptor/nameIdFormats/0__listbox']/li", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li", "xpath:position"] + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0-item-0", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified')]", "xpath:innerText"] ], "value": "" }, { "id": "c21b1d7a-9325-4d70-887d-387c7a042c08", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -588,12 +653,12 @@ "id": "c1534880-c4e5-4fbd-b200-c28f9f556ab9", "comment": "", "command": "click", - "target": "css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/1-container .btn", + "target": "css=.mt-2:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/1-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/serviceProviderSsoDescriptor/nameIdFormats/1-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -607,24 +672,29 @@ "id": "d07b2d83-3699-4f48-90e8-6fc883d3a02a", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/1__option--1", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1-item-1", "targets": [ - ["id=/serviceProviderSsoDescriptor/nameIdFormats/1__option--1", "id"], - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/1__option--1", "css:finder"], - ["xpath=//li[@id='/serviceProviderSsoDescriptor/nameIdFormats/1__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/serviceProviderSsoDescriptor/nameIdFormats/1__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[2]", "xpath:position"] + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1-item-1", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress')]", "xpath:innerText"] ], "value": "" }, { "id": "2c77ecbc-45cc-471c-9e39-f87ec06a9385", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -638,12 +708,12 @@ "id": "97a98737-862d-4567-8b20-c5c991444ed0", "comment": "", "command": "click", - "target": "css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/2-container .btn", + "target": "css=.mt-2:nth-child(3) .toggle-button", "targets": [ - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/2-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], - ["xpath=//div[@id='/serviceProviderSsoDescriptor/nameIdFormats/2-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(3) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -657,24 +727,29 @@ "id": "686e004c-2b0f-4308-8622-b04bc05a50a9", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/2__option--2", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2-item-2", "targets": [ - ["id=/serviceProviderSsoDescriptor/nameIdFormats/2__option--2", "id"], - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/2__option--2", "css:finder"], - ["xpath=//li[@id='/serviceProviderSsoDescriptor/nameIdFormats/2__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/serviceProviderSsoDescriptor/nameIdFormats/2__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2-item-2", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent')]", "xpath:innerText"] ], "value": "" }, { "id": "104367d3-f250-4439-8721-32dcf9f25e0c", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -688,12 +763,12 @@ "id": "e2e8d5d4-8b6a-42d5-9fe7-abb8a84216e3", "comment": "", "command": "click", - "target": "css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/3-container .btn", + "target": "css=.mt-2:nth-child(4) .toggle-button", "targets": [ - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/3-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], - ["xpath=//div[@id='/serviceProviderSsoDescriptor/nameIdFormats/3-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(4) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[15]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div[2]/div[4]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -707,38 +782,59 @@ "id": "b6ac5230-772b-44bc-b9d1-6ae8a58e0368", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/3__option--3", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3-item-3", "targets": [ - ["id=/serviceProviderSsoDescriptor/nameIdFormats/3__option--3", "id"], - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/3__option--3", "css:finder"], - ["xpath=//li[@id='/serviceProviderSsoDescriptor/nameIdFormats/3__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/serviceProviderSsoDescriptor/nameIdFormats/3__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3-item-3", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:transient", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:transient')]", "xpath:innerText"] ], "value": "" }, { "id": "d135ef80-69d8-4cd1-b581-5e1973342082", "comment": "", "command": "click", - "target": "css=.btn-success > translate-i18n", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "23fd8856-32df-48ed-a198-a74e8ca71b10", "comment": "", "command": "type", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/4", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[5]/div/div[1]/div/div[2]/div/div/div[1]/div/div/div[2]/div[5]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ - ["id=field34", "id"], - ["css=#field34", "css:finder"], - ["xpath=//input[@id='field34']", "xpath:attributes"], - ["xpath=//div[@id='field34-container']/div/input", "xpath:idRelative"], - ["xpath=//li[5]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] + ["css=.focus", "css:finder"], + ["xpath=(//input[@value=''])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div[2]/div[5]/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "somethingElse" + }, { + "id": "ac842b8d-4596-4749-85c6-4657cb499b83", + "comment": "", + "command": "click", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4-item-4", + "targets": [ + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4-item-4", "id"], + ["linkText=somethingElse", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4-item-4", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4-item-4']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4']/a[5]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[5]", "xpath:href"], + ["xpath=//a[5]", "xpath:position"], + ["xpath=//a[contains(.,'somethingElse')]", "xpath:innerText"] + ], + "value": "" }, { "id": "4f61120b-7c6b-4f8e-8543-898298451a56", "comment": "", @@ -753,23 +849,25 @@ "id": "0de0345e-c9d2-4904-b797-a36965c5d82c", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "62ade28b-19d4-4c54-b179-0d36312c578f", "comment": "", "command": "click", - "target": "id=/logoutEndpoints/0/url", + "target": "id=root_logoutEndpoints_0_url", "targets": [ - ["id=/logoutEndpoints/0/url", "id"], - ["name=field38", "name"], - ["css=#\\/logoutEndpoints\\/0\\/url", "css:finder"], - ["xpath=//input[@id='/logoutEndpoints/0/url']", "xpath:attributes"], + ["id=root_logoutEndpoints_0_url", "id"], + ["css=#root_logoutEndpoints_0_url", "css:finder"], + ["xpath=//input[@id='root_logoutEndpoints_0_url']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -777,12 +875,12 @@ "id": "517e5991-197d-42fd-86ff-4da5fd04949b", "comment": "", "command": "type", - "target": "id=/logoutEndpoints/0/url", + "target": "id=root_logoutEndpoints_0_url", "targets": [ - ["id=field38", "id"], - ["name=field38", "name"], - ["css=#field38", "css:finder"], - ["xpath=//input[@id='field38']", "xpath:attributes"], + ["id=root_logoutEndpoints_0_url", "id"], + ["css=#root_logoutEndpoints_0_url", "css:finder"], + ["xpath=//input[@id='root_logoutEndpoints_0_url']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "http://test.org/logout" @@ -790,25 +888,25 @@ "id": "034f6a60-6b2d-42f1-adb4-515c8a750953", "comment": "", "command": "click", - "target": "id=/logoutEndpoints/0/bindingType", + "target": "id=root_logoutEndpoints_0_bindingType", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST']", "xpath:attributes"], - ["xpath=//select[@id='field39']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST')]", "xpath:innerText"] + ["id=root_logoutEndpoints_0_bindingType", "id"], + ["css=#root_logoutEndpoints_0_bindingType", "css:finder"], + ["xpath=//select[@id='root_logoutEndpoints_0_bindingType']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], "value": "" }, { "id": "6967d0bb-dbf7-4f57-9e55-6de71abd69c1", "comment": "", "command": "select", - "target": "id=/logoutEndpoints/0/bindingType", + "target": "id=root_logoutEndpoints_0_bindingType", "targets": [ - ["id=/logoutEndpoints/0/bindingType", "id"], - ["name=field39", "name"], - ["css=#\\/logoutEndpoints\\/0\\/bindingType", "css:finder"], - ["xpath=//select[@id='/logoutEndpoints/0/bindingType']", "xpath:attributes"], + ["id=root_logoutEndpoints_0_bindingType", "id"], + ["css=#root_logoutEndpoints_0_bindingType", "css:finder"], + ["xpath=//select[@id='root_logoutEndpoints_0_bindingType']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], ["xpath=//select", "xpath:position"] ], "value": "label=urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" @@ -816,61 +914,65 @@ "id": "542f9b37-a63d-4acb-ba3e-2ac3706b6667", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "39dedb16-bcd2-496a-af85-7d20a129593b", "comment": "", "command": "click", - "target": "id=/logoutEndpoints/1/url", + "target": "id=root_logoutEndpoints_1_url", "targets": [ - ["id=/logoutEndpoints/1/url", "id"], - ["name=field41", "name"], - ["css=#\\/logoutEndpoints\\/1\\/url", "css:finder"], - ["xpath=//input[@id='/logoutEndpoints/1/url']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_logoutEndpoints_1_url", "id"], + ["css=#root_logoutEndpoints_1_url", "css:finder"], + ["xpath=//input[@id='root_logoutEndpoints_1_url']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "d25f708c-f72a-4fb7-88c1-a25a61d9f72a", "comment": "", "command": "type", - "target": "id=/logoutEndpoints/1/url", + "target": "id=root_logoutEndpoints_1_url", "targets": [ - ["id=field41", "id"], - ["name=field41", "name"], - ["css=#field41", "css:finder"], - ["xpath=//input[@id='field41']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_logoutEndpoints_1_url", "id"], + ["css=#root_logoutEndpoints_1_url", "css:finder"], + ["xpath=//input[@id='root_logoutEndpoints_1_url']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "http://test.org/logout2" }, { "id": "bee9600e-b6db-484a-9b87-d7c657911108", "comment": "", "command": "click", - "target": "id=/logoutEndpoints/1/bindingType", + "target": "id=root_logoutEndpoints_1_bindingType", "targets": [ - ["css=#field42 > option:nth-child(3)", "css:finder"], - ["xpath=(//option[@value='2: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redir'])[2]", "xpath:attributes"], - ["xpath=//select[@id='field42']/option[3]", "xpath:idRelative"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/select-component/div/select/option[3]", "xpath:position"] + ["id=root_logoutEndpoints_1_bindingType", "id"], + ["css=#root_logoutEndpoints_1_bindingType", "css:finder"], + ["xpath=//select[@id='root_logoutEndpoints_1_bindingType']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:position"] ], "value": "" }, { "id": "e0e7ef9b-4ed1-4df2-b501-9cbb855baa7f", "comment": "", "command": "select", - "target": "id=/logoutEndpoints/1/bindingType", + "target": "id=root_logoutEndpoints_1_bindingType", "targets": [ - ["id=/logoutEndpoints/1/bindingType", "id"], - ["name=field42", "name"], - ["css=#\\/logoutEndpoints\\/1\\/bindingType", "css:finder"], - ["xpath=//select[@id='/logoutEndpoints/1/bindingType']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/select-component/div/select", "xpath:position"] + ["id=root_logoutEndpoints_1_bindingType", "id"], + ["css=#root_logoutEndpoints_1_bindingType", "css:finder"], + ["xpath=//select[@id='root_logoutEndpoints_1_bindingType']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:position"] ], "value": "label=urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" }, { @@ -883,91 +985,84 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "6c794e94-9c64-4683-816a-380432f2ed79", - "comment": "", - "command": "click", - "target": "id=/securityInfo/x509CertificateAvailable.true", - "targets": [ - ["id=/securityInfo/x509CertificateAvailable.true", "id"], - ["css=#\\/securityInfo\\/x509CertificateAvailable\\.true", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509CertificateAvailable.true']", "xpath:attributes"], - ["xpath=//input", "xpath:position"] - ], - "value": "" }, { "id": "f0ade90e-2c31-4a77-b936-3b2a00388477", "comment": "", "command": "click", - "target": "id=/securityInfo/authenticationRequestsSigned.true", + "target": "id=root_securityInfo_authenticationRequestsSigned-value.true", "targets": [ - ["id=/securityInfo/authenticationRequestsSigned.true", "id"], - ["css=#\\/securityInfo\\/authenticationRequestsSigned\\.true", "css:finder"], - ["xpath=//input[@id='/securityInfo/authenticationRequestsSigned.true']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div/label/input", "xpath:position"] + ["id=root_securityInfo_authenticationRequestsSigned-value.true", "id"], + ["name=root_securityInfo_authenticationRequestsSigned", "name"], + ["css=#root_securityInfo_authenticationRequestsSigned-value\\.true", "css:finder"], + ["xpath=//input[@id='root_securityInfo_authenticationRequestsSigned-value.true']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { "id": "e26eda6f-1897-42e2-9ea9-671b1ff88874", "comment": "", "command": "click", - "target": "id=/securityInfo/wantAssertionsSigned.true", + "target": "id=root_securityInfo_wantAssertionsSigned-value.true", "targets": [ - ["id=/securityInfo/wantAssertionsSigned.true", "id"], - ["css=#\\/securityInfo\\/wantAssertionsSigned\\.true", "css:finder"], - ["xpath=//input[@id='/securityInfo/wantAssertionsSigned.true']", "xpath:attributes"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div/label/input", "xpath:position"] + ["id=root_securityInfo_wantAssertionsSigned-value.true", "id"], + ["name=root_securityInfo_wantAssertionsSigned", "name"], + ["css=#root_securityInfo_wantAssertionsSigned-value\\.true", "css:finder"], + ["xpath=//input[@id='root_securityInfo_wantAssertionsSigned-value.true']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "3e11e54a-1b36-43ed-a8e5-d91f1fbed991", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/0/name", + "target": "id=root_securityInfo_x509Certificates_0_name", "targets": [ - ["id=/securityInfo/x509Certificates/0/name", "id"], - ["name=field50", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/0\\/name", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509Certificates/0/name']", "xpath:attributes"], - ["xpath=//div/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_0_name", "id"], + ["css=#root_securityInfo_x509Certificates_0_name", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_0_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "5acb8e19-16a3-4139-a961-1b58c11c4681", "comment": "", "command": "type", - "target": "id=/securityInfo/x509Certificates/0/name", + "target": "id=root_securityInfo_x509Certificates_0_name", "targets": [ - ["id=field50", "id"], - ["name=field50", "name"], - ["css=#field50", "css:finder"], - ["xpath=//input[@id='field50']", "xpath:attributes"], - ["xpath=//div/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_0_name", "id"], + ["css=#root_securityInfo_x509Certificates_0_name", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_0_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "Cert 1 Name" }, { "id": "23ff8b87-ac6c-4f82-a779-aa91be11f49c", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/0/type.0", + "target": "id=root_securityInfo_x509Certificates_0_type-signing", "targets": [ - ["id=/securityInfo/x509Certificates/0/type.0", "id"], - ["name=field55", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/0\\/type\\.0", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509Certificates/0/type.0']", "xpath:attributes"], - ["xpath=//div/div/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_0_type-signing", "id"], + ["name=root_securityInfo_x509Certificates_0_type", "name"], + ["css=#root_securityInfo_x509Certificates_0_type-signing", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_0_type-signing']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "dd15088c-ddc9-42fd-8f8d-f73338be71b6", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/0/value", + "target": "id=root_securityInfo_x509Certificates_0_value", "targets": [ - ["id=/securityInfo/x509Certificates/0/value", "id"], - ["name=field52", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/0\\/value", "css:finder"], - ["xpath=//textarea[@id='/securityInfo/x509Certificates/0/value']", "xpath:attributes"], + ["id=root_securityInfo_x509Certificates_0_value", "id"], + ["css=#root_securityInfo_x509Certificates_0_value", "css:finder"], + ["xpath=//textarea[@id='root_securityInfo_x509Certificates_0_value']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/textarea", "xpath:idRelative"], ["xpath=//textarea", "xpath:position"] ], "value": "" @@ -975,11 +1070,12 @@ "id": "813bf709-6c73-41ac-837a-5be076fa43c7", "comment": "", "command": "type", - "target": "id=/securityInfo/x509Certificates/0/value", + "target": "id=root_securityInfo_x509Certificates_0_value", "targets": [ - ["name=field52", "name"], - ["css=.text-widget", "css:finder"], - ["xpath=//textarea[@name='field52']", "xpath:attributes"], + ["id=root_securityInfo_x509Certificates_0_value", "id"], + ["css=#root_securityInfo_x509Certificates_0_value", "css:finder"], + ["xpath=//textarea[@id='root_securityInfo_x509Certificates_0_value']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/textarea", "xpath:idRelative"], ["xpath=//textarea", "xpath:position"] ], "value": "This is cert 1." @@ -987,73 +1083,78 @@ "id": "fcf4cc15-54f4-4add-a093-e7ba5f2dc556", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[8]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "cbe577f6-3d18-49d9-95ab-2e597e5308a6", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/1/name", + "target": "id=root_securityInfo_x509Certificates_1_name", "targets": [ - ["id=/securityInfo/x509Certificates/1/name", "id"], - ["name=field54", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/1\\/name", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509Certificates/1/name']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_1_name", "id"], + ["css=#root_securityInfo_x509Certificates_1_name", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_1_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "ae98e813-77f4-424e-9141-d48e6127d9b6", "comment": "", "command": "type", - "target": "id=/securityInfo/x509Certificates/1/name", + "target": "id=root_securityInfo_x509Certificates_1_name", "targets": [ - ["id=field54", "id"], - ["name=field54", "name"], - ["css=#field54", "css:finder"], - ["xpath=//input[@id='field54']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_1_name", "id"], + ["css=#root_securityInfo_x509Certificates_1_name", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_1_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "Cert 2 Name" }, { "id": "835ad053-0a10-4606-a148-c7ba36be316f", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/1/type.1", + "target": "id=root_securityInfo_x509Certificates_1_type-encryption", "targets": [ - ["id=/securityInfo/x509Certificates/1/type.1", "id"], - ["css=#\\/securityInfo\\/x509Certificates\\/1\\/type\\.1", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509Certificates/1/type.1']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-radio-widget/div/div[2]/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_1_type-encryption", "id"], + ["css=#root_securityInfo_x509Certificates_1_type-encryption", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_1_type-encryption']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "e272cafa-3aba-4aff-972e-b1d45e627b88", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/1/value", + "target": "id=root_securityInfo_x509Certificates_1_value", "targets": [ - ["id=/securityInfo/x509Certificates/1/value", "id"], - ["name=field56", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/1\\/value", "css:finder"], - ["xpath=//textarea[@id='/securityInfo/x509Certificates/1/value']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[3]/sf-form-element/div/sf-widget-chooser/textarea-component/div/textarea", "xpath:position"] + ["id=root_securityInfo_x509Certificates_1_value", "id"], + ["css=#root_securityInfo_x509Certificates_1_value", "css:finder"], + ["xpath=//textarea[@id='root_securityInfo_x509Certificates_1_value']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/textarea", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/textarea", "xpath:position"] ], "value": "" }, { "id": "ae42d668-92ba-4cb8-9daf-a2a64ac18404", "comment": "", "command": "type", - "target": "id=/securityInfo/x509Certificates/1/value", + "target": "id=root_securityInfo_x509Certificates_1_value", "targets": [ - ["name=field56", "name"], - ["css=.ng-untouched:nth-child(3)", "css:finder"], - ["xpath=//textarea[@name='field56']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[3]/sf-form-element/div/sf-widget-chooser/textarea-component/div/textarea", "xpath:position"] + ["id=root_securityInfo_x509Certificates_1_value", "id"], + ["css=#root_securityInfo_x509Certificates_1_value", "css:finder"], + ["xpath=//textarea[@id='root_securityInfo_x509Certificates_1_value']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/textarea", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/textarea", "xpath:position"] ], "value": "This is cert 2." }, { @@ -1070,23 +1171,25 @@ "id": "573c9f4c-c677-4175-96c5-3aaaf86e5ac1", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "50c1a3a1-b51c-41f9-81ff-d3d2894861ad", "comment": "", "command": "click", - "target": "id=/assertionConsumerServices/0/locationUrl", + "target": "id=root_assertionConsumerServices_0_locationUrl", "targets": [ - ["id=/assertionConsumerServices/0/locationUrl", "id"], - ["name=field60", "name"], - ["css=#\\/assertionConsumerServices\\/0\\/locationUrl", "css:finder"], - ["xpath=//input[@id='/assertionConsumerServices/0/locationUrl']", "xpath:attributes"], + ["id=root_assertionConsumerServices_0_locationUrl", "id"], + ["css=#root_assertionConsumerServices_0_locationUrl", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_0_locationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -1094,12 +1197,12 @@ "id": "6ff4002a-1c57-4778-b402-f917efaa5194", "comment": "", "command": "type", - "target": "id=/assertionConsumerServices/0/locationUrl", + "target": "id=root_assertionConsumerServices_0_locationUrl", "targets": [ - ["id=field60", "id"], - ["name=field60", "name"], - ["css=#field60", "css:finder"], - ["xpath=//input[@id='field60']", "xpath:attributes"], + ["id=root_assertionConsumerServices_0_locationUrl", "id"], + ["css=#root_assertionConsumerServices_0_locationUrl", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_0_locationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "http://test.org/assert" @@ -1107,25 +1210,25 @@ "id": "e81c5045-98c3-499c-bff5-2645efa4c55d", "comment": "", "command": "click", - "target": "id=/assertionConsumerServices/0/binding", + "target": "id=root_assertionConsumerServices_0_binding", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST']", "xpath:attributes"], - ["xpath=//select[@id='field61']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST')]", "xpath:innerText"] + ["id=root_assertionConsumerServices_0_binding", "id"], + ["css=#root_assertionConsumerServices_0_binding", "css:finder"], + ["xpath=//select[@id='root_assertionConsumerServices_0_binding']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], "value": "" }, { "id": "24c810c8-747a-4ae2-91e5-16685d589f21", "comment": "", "command": "select", - "target": "id=/assertionConsumerServices/0/binding", + "target": "id=root_assertionConsumerServices_0_binding", "targets": [ - ["id=/assertionConsumerServices/0/binding", "id"], - ["name=field61", "name"], - ["css=#\\/assertionConsumerServices\\/0\\/binding", "css:finder"], - ["xpath=//select[@id='/assertionConsumerServices/0/binding']", "xpath:attributes"], + ["id=root_assertionConsumerServices_0_binding", "id"], + ["css=#root_assertionConsumerServices_0_binding", "css:finder"], + ["xpath=//select[@id='root_assertionConsumerServices_0_binding']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], ["xpath=//select", "xpath:position"] ], "value": "label=urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" @@ -1133,72 +1236,78 @@ "id": "c221b1f5-2961-4cbd-a545-1e34a09b8153", "comment": "", "command": "click", - "target": "css=.custom-control-label", + "target": "id=root_assertionConsumerServices_0_makeDefault", "targets": [ - ["css=.custom-control-label", "css:finder"], - ["xpath=//div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Mark as Default')]", "xpath:innerText"] + ["id=root_assertionConsumerServices_0_makeDefault", "id"], + ["css=#root_assertionConsumerServices_0_makeDefault", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_0_makeDefault']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "cb058717-f20f-4a54-81e5-9a7dcf66ec0e", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "f9998203-830b-44d3-8392-45b737544177", "comment": "", "command": "click", - "target": "id=/assertionConsumerServices/1/locationUrl", + "target": "id=root_assertionConsumerServices_1_locationUrl", "targets": [ - ["id=/assertionConsumerServices/1/locationUrl", "id"], - ["name=field64", "name"], - ["css=#\\/assertionConsumerServices\\/1\\/locationUrl", "css:finder"], - ["xpath=//input[@id='/assertionConsumerServices/1/locationUrl']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_assertionConsumerServices_1_locationUrl", "id"], + ["css=#root_assertionConsumerServices_1_locationUrl", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_1_locationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "d5cbf5e8-7c5b-45f7-8645-dd9f9d39922e", "comment": "", "command": "type", - "target": "id=/assertionConsumerServices/1/locationUrl", + "target": "id=root_assertionConsumerServices_1_locationUrl", "targets": [ - ["id=field64", "id"], - ["name=field64", "name"], - ["css=#field64", "css:finder"], - ["xpath=//input[@id='field64']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_assertionConsumerServices_1_locationUrl", "id"], + ["css=#root_assertionConsumerServices_1_locationUrl", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_1_locationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "http://test.org/assert2" }, { "id": "74de4187-3d1e-4a4d-af8e-966f00649ab8", "comment": "", "command": "click", - "target": "id=/assertionConsumerServices/1/binding", + "target": "id=root_assertionConsumerServices_1_binding", "targets": [ - ["css=#field65 > option:nth-child(3)", "css:finder"], - ["xpath=(//option[@value='2: urn:oasis:names:tc:SAML:1.0:profiles:browser-po'])[2]", "xpath:attributes"], - ["xpath=//select[@id='field65']/option[3]", "xpath:idRelative"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/select-component/div/select/option[3]", "xpath:position"] + ["id=root_assertionConsumerServices_1_binding", "id"], + ["css=#root_assertionConsumerServices_1_binding", "css:finder"], + ["xpath=//select[@id='root_assertionConsumerServices_1_binding']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:position"] ], "value": "" }, { "id": "929c1047-f455-418b-b23e-a383d681f028", "comment": "", "command": "select", - "target": "id=/assertionConsumerServices/1/binding", + "target": "id=root_assertionConsumerServices_1_binding", "targets": [ - ["id=/assertionConsumerServices/1/binding", "id"], - ["name=field65", "name"], - ["css=#\\/assertionConsumerServices\\/1\\/binding", "css:finder"], - ["xpath=//select[@id='/assertionConsumerServices/1/binding']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/select-component/div/select", "xpath:position"] + ["id=root_assertionConsumerServices_1_binding", "id"], + ["css=#root_assertionConsumerServices_1_binding", "css:finder"], + ["xpath=//select[@id='root_assertionConsumerServices_1_binding']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:position"] ], "value": "label=urn:oasis:names:tc:SAML:1.0:profiles:browser-post" }, { @@ -1215,101 +1324,117 @@ "id": "134bf1f3-1e86-49e7-91de-185e513b02be", "comment": "", "command": "click", - "target": "css=div:nth-child(1) > sf-form-element > .has-success .custom-control-label", + "target": "id=root_relyingPartyOverrides_signAssertion", "targets": [ - ["css=div:nth-child(1) > sf-form-element > .has-success .custom-control-label", "css:finder"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Sign the Assertion?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_signAssertion", "id"], + ["css=#root_relyingPartyOverrides_signAssertion", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_signAssertion']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { "id": "5cd1ae5f-678a-4be8-a03f-b290006e52fe", "comment": "", "command": "click", - "target": "css=div:nth-child(2) > sf-form-element .custom-control-label", + "target": "id=root_relyingPartyOverrides_dontSignResponse", "targets": [ - ["css=div:nth-child(2) > sf-form-element .custom-control-label", "css:finder"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"] + ["id=root_relyingPartyOverrides_dontSignResponse", "id"], + ["css=#root_relyingPartyOverrides_dontSignResponse", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_dontSignResponse']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "5895d555-6ef5-4344-b177-00e905f9007c", "comment": "", "command": "click", - "target": "css=div:nth-child(3) > sf-form-element .custom-control-label", + "target": "id=root_relyingPartyOverrides_turnOffEncryption", "targets": [ - ["css=div:nth-child(3) > sf-form-element .custom-control-label", "css:finder"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Turn off Encryption of Response?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_turnOffEncryption", "id"], + ["css=#root_relyingPartyOverrides_turnOffEncryption", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_turnOffEncryption']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[3]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "8d834380-e312-494d-9b4b-c5b798cc9b15", "comment": "", "command": "click", - "target": "css=div:nth-child(4) .custom-control-label", + "target": "id=root_relyingPartyOverrides_useSha", "targets": [ - ["css=div:nth-child(4) .custom-control-label", "css:finder"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Use SHA1 Signing Algorithm?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_useSha", "id"], + ["css=#root_relyingPartyOverrides_useSha", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_useSha']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[4]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "bcf532a9-ba5a-4ca1-a342-dde53bc4a592", "comment": "", "command": "click", - "target": "css=div:nth-child(5) .custom-control-label", + "target": "id=root_relyingPartyOverrides_ignoreAuthenticationMethod", "targets": [ - ["css=div:nth-child(5) .custom-control-label", "css:finder"], - ["xpath=//div[5]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Ignore any SP-Requested Authentication Method?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_ignoreAuthenticationMethod", "id"], + ["css=#root_relyingPartyOverrides_ignoreAuthenticationMethod", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_ignoreAuthenticationMethod']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[5]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "45f3df44-1c34-4649-aedb-14207e9ce999", "comment": "", "command": "click", - "target": "css=div:nth-child(6) .custom-control-label", + "target": "id=root_relyingPartyOverrides_omitNotBefore", "targets": [ - ["css=div:nth-child(6) .custom-control-label", "css:finder"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Omit Not Before Condition?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_omitNotBefore", "id"], + ["css=#root_relyingPartyOverrides_omitNotBefore", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_omitNotBefore']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[6]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "7ccb7d88-b113-4ee9-8582-b3d781fa8846", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/responderId", + "target": "id=root_relyingPartyOverrides_responderId", "targets": [ - ["id=/relyingPartyOverrides/responderId", "id"], - ["name=field121", "name"], - ["css=#\\/relyingPartyOverrides\\/responderId", "css:finder"], - ["xpath=//input[@id='/relyingPartyOverrides/responderId']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_relyingPartyOverrides_responderId", "id"], + ["css=#root_relyingPartyOverrides_responderId", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_responderId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[7]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "afe1b839-3421-4816-bf69-c804add681ba", "comment": "", "command": "type", - "target": "id=/relyingPartyOverrides/responderId", + "target": "id=root_relyingPartyOverrides_responderId", "targets": [ - ["id=field75", "id"], - ["name=field75", "name"], - ["css=#field75", "css:finder"], - ["xpath=//input[@id='field75']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_relyingPartyOverrides_responderId", "id"], + ["css=#root_relyingPartyOverrides_responderId", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_responderId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[7]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div/div/input", "xpath:position"] ], "value": "responder-id-123" }, { "id": "ba74d18d-0996-485f-8a9f-01a39428eb0c", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ - ["css=div:nth-child(8) .btn > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.row:nth-child(8) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -1323,13 +1448,12 @@ "id": "2a91666b-5453-4064-8923-c3384835b6fd", "comment": "", "command": "click", - "target": "css=.btn-outline-secondary", + "target": "css=.toggle-button", "targets": [ - ["css=.btn-outline-secondary", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/0-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[15]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div[2]/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1343,24 +1467,29 @@ "id": "6e8718ef-e053-48d8-91e5-f5128e371f56", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/0__option--0", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/0__option--0", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/0__option--0", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/0__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/0__listbox']/li", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_0']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified')]", "xpath:innerText"] ], "value": "" }, { "id": "ec3afb37-30b4-4d07-93a6-dcf022605532", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ - ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.row:nth-child(8) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -1374,12 +1503,12 @@ "id": "fd33610c-dbca-410d-b2a4-117a1b2b6a79", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/nameIdFormats\\/1-container .btn", + "target": "css=.mt-2:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/1-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/1-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[17]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1393,24 +1522,29 @@ "id": "3cd47415-5e57-4148-a40b-9571e6791f3f", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/1__option--1", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/1__option--1", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/1__option--1", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/1__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/1__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[2]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_1']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress')]", "xpath:innerText"] ], "value": "" }, { "id": "8b340d1f-4944-4d10-a4cd-5e79be6804ef", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ - ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.row:nth-child(8) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -1424,12 +1558,12 @@ "id": "208b33cf-f983-4a82-9b1b-19cdf2a937fc", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/nameIdFormats\\/2-container .btn", + "target": "css=.mt-2:nth-child(3) .toggle-button", "targets": [ - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/2-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/2-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(3) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[19]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1443,24 +1577,29 @@ "id": "b4beb2b3-8481-4431-9299-a39a4107f17f", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/2__option--2", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/2__option--2", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/2__option--2", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/2__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/2__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_2']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent')]", "xpath:innerText"] ], "value": "" }, { "id": "d6e7a640-a578-415b-9c1b-b2313b62ad46", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ - ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.row:nth-child(8) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -1474,12 +1613,12 @@ "id": "788a5b63-a75f-4aeb-9a5d-17c41e8f718e", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/nameIdFormats\\/3-container .btn", + "target": "css=.mt-2:nth-child(4) .toggle-button", "targets": [ - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/3-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/3-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(4) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[21]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div[2]/div[4]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1493,43 +1632,48 @@ "id": "c82d6951-13e2-4d32-9e19-eac52bfdc188", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/3__option--3", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/3__option--3", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/3__option--3", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/3__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/3__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:transient", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_3']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:transient')]", "xpath:innerText"] ], "value": "" }, { "id": "4c15be93-75be-4673-b703-07a705300d0f", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ - ["css=div:nth-child(8) .btn > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.row:nth-child(8) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "1a1b509e-1768-4291-820d-26f4b73a9d71", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/4", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[2]/div/div/div[1]/div/div/div[2]/div[5]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/4", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/4", "css:finder"], - ["xpath=//input[@id='/relyingPartyOverrides/nameIdFormats/4']", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/4-container']/div/input", "xpath:idRelative"], - ["xpath=//li[5]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] + ["css=.focus", "css:finder"], + ["xpath=(//input[@value=''])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div[2]/div[5]/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "433d6e9d-9d03-4042-9ee0-6284570f8a3c", "comment": "", "command": "type", - "target": "id=/relyingPartyOverrides/nameIdFormats/4", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[2]/div/div/div[1]/div/div/div[2]/div[5]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ ["id=field83", "id"], ["css=#field83", "css:finder"], @@ -1538,12 +1682,33 @@ ["xpath=//li[5]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] ], "value": "somethingElse" + }, { + "id": "d378468f-965e-4d99-8429-2e4100b3a161", + "comment": "", + "command": "click", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_4-item-4", + "targets": [ + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_4-item-4", "id"], + ["linkText=somethingElse", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_4-item-4", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_4-item-4']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_4']/a[5]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[5]", "xpath:href"], + ["xpath=//a[5]", "xpath:position"], + ["xpath=//a[contains(.,'somethingElse')]", "xpath:innerText"] + ], + "value": "" }, { "id": "c8bb3bee-3d61-4324-a3aa-38b78232b969", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .btn", - "targets": [], + "target": "css=.row:nth-child(4) .array-add-button", + "targets": [ + ["css=.row:nth-child(9) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[25]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[9]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div/button", "xpath:position"] + ], "value": "" }, { "id": "0b950018-bd12-433a-b198-682d4ea55a90", @@ -1556,7 +1721,7 @@ "id": "cbf15c4c-35d9-4f80-ba3d-bfe960048cd1", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/authenticationMethods\\/0-container .btn", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div/div/div[1]/div/div[1]/div/div/button", "targets": [ ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/0-container .btn", "css:finder"], ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], @@ -1575,7 +1740,7 @@ "id": "6c62d514-0143-49d9-97b3-6b7cb443df9d", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/0__option--0", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0", "targets": [ ["id=/relyingPartyOverrides/authenticationMethods/0__option--0", "id"], ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/0__option--0", "css:finder"], @@ -1588,10 +1753,12 @@ "id": "ed769470-9c3f-4c23-bbed-85513dcea800", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .btn", + "target": "css=.row:nth-child(4) .array-add-button", "targets": [ - ["css=div:nth-child(9) .d-flex > .btn", "css:finder"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button", "xpath:position"] + ["css=.row:nth-child(9) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[25]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[9]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1605,7 +1772,7 @@ "id": "2b063eb8-f2d6-4a59-85bb-b04c467d9874", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/authenticationMethods\\/1-container .btn", + "target": "xpath=//div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[2]/div/div[1]/div/div[1]/div/div/button", "targets": [ ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/1-container .btn", "css:finder"], ["xpath=(//button[@type='button'])[8]", "xpath:attributes"], @@ -1624,7 +1791,7 @@ "id": "5a32d59b-1ac3-4cd0-a2d8-0e934f8182fd", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/1__option--1", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1", "targets": [ ["id=/relyingPartyOverrides/authenticationMethods/1__option--1", "id"], ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/1__option--1", "css:finder"], @@ -1637,10 +1804,12 @@ "id": "892ddc96-970b-4dde-9189-0dc9ed197dab", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .btn", + "target": "css=.row:nth-child(4) .array-add-button", "targets": [ - ["css=div:nth-child(9) .d-flex > .btn", "css:finder"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button", "xpath:position"] + ["css=.row:nth-child(9) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[25]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[9]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1654,7 +1823,7 @@ "id": "64e215d9-6e46-422f-882c-13b6fb102622", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/authenticationMethods\\/2-container .btn", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[3]/div/div[1]/div/div[1]/div/div/button", "targets": [ ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/2-container .btn", "css:finder"], ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], @@ -1673,30 +1842,35 @@ "id": "6a7bce1a-34be-4d4c-b732-d2f198e8b8a1", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/2__option--2", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/2__option--2", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/2__option--2", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/authenticationMethods/2__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/authenticationMethods/2__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_2']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport')]", "xpath:innerText"] ], "value": "" }, { "id": "f0dd4b79-eab5-4d4b-af2e-07ca661f8288", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .btn", + "target": "css=.row:nth-child(4) .array-add-button", "targets": [ - ["css=div:nth-child(9) .btn > translate-i18n", "css:finder"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button/translate-i18n", "xpath:position"] + ["css=.row:nth-child(9) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[25]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[9]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { "id": "dacd34b0-9e48-4838-b137-bf22dd027ed0", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/3", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[4]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ ["id=/relyingPartyOverrides/authenticationMethods/3", "id"], ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/3", "css:finder"], @@ -1709,7 +1883,7 @@ "id": "cc9dd18b-ee87-4aa7-91f2-59f02834759b", "comment": "", "command": "type", - "target": "id=/relyingPartyOverrides/authenticationMethods/3", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[4]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ ["id=field87", "id"], ["css=#field87", "css:finder"], @@ -1718,15 +1892,33 @@ ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] ], "value": "otherThings" + }, { + "id": "e9e0639e-2f65-43eb-af05-e0565591dbdc", + "comment": "", + "command": "click", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_3-item-3", + "targets": [ + ["id=option-selector-root_relyingPartyOverrides_authenticationMethods_3-item-3", "id"], + ["linkText=otherThings", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_3-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_3-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_3']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'otherThings')]", "xpath:innerText"] + ], + "value": "" }, { "id": "7c85fe59-dc95-4328-a010-33d1a06a5ce5", "comment": "", "command": "click", - "target": "css=div:nth-child(10) .custom-control-label", + "target": "id=root_relyingPartyOverrides_forceAuthn", "targets": [ - ["css=div:nth-child(10) .custom-control-label", "css:finder"], - ["xpath=//div[10]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Force AuthN')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_forceAuthn", "id"], + ["css=#root_relyingPartyOverrides_forceAuthn", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_forceAuthn']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[10]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[10]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { @@ -1745,9 +1937,7 @@ "command": "click", "target": "css=.fa-check", "targets": [ - ["css=.fa-check", "css:finder"], - ["xpath=//button[@id='/attributeRelease.checkall']/i", "xpath:idRelative"], - ["xpath=//td[2]/button/i", "xpath:position"] + ["css=.fa-check", "css:finder"] ], "value": "" }, { @@ -1760,26 +1950,15 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "14ca713a-313d-4cda-82ca-a0b814ce81dc", - "comment": "", - "command": "click", - "target": "css=.custom-control-label", - "targets": [ - ["css=.custom-control-label", "css:finder"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Enable this service?')]", "xpath:innerText"] - ], - "value": "" }, { "id": "3baa7bd3-55c0-4d10-8aa3-c0daa63ec4d4", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(1) .text-truncate", + "target": "css=div:nth-child(2) > div:nth-child(2) > .border-bottom > .text-truncate", "targets": [ - ["css=.d-block > primitive-property:nth-child(1) .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], - ["xpath=//div/span[2]", "xpath:position"], + ["css=div:nth-child(2) > div:nth-child(2) > .border-bottom > .text-truncate", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section/div/div[2]/div[2]/div[2]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'test-1234')]", "xpath:innerText"] ], "value": "test-1234" @@ -1787,33 +1966,36 @@ "id": "0d355ff0-0449-49a7-ae75-14d7c405b97c", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(7) .py-2:nth-child(3) > .d-flex:nth-child(1) > .text-truncate", + "target": "css=.mb-4:nth-child(7) .py-2:nth-child(3) > .d-flex:nth-child(1) > .d-block", "targets": [ - ["css=.mb-4:nth-child(7) .py-2:nth-child(3) > .d-flex:nth-child(1) > .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[7]/div/div[2]/object-property/array-property/div/div[3]/div/div[2]", "xpath:idRelative"], - ["xpath=//section[7]/div/div[2]/object-property/array-property/div/div[3]/div/div[2]", "xpath:position"] + ["css=.mb-4:nth-child(7) .py-2:nth-child(3) > .d-flex:nth-child(1) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[7]/div/div[2]/div[2]/div/div[3]/div/span", "xpath:idRelative"], + ["xpath=//section[7]/div/div[2]/div[2]/div/div[3]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'http://test.org/assert2')]", "xpath:innerText"] ], "value": "http://test.org/assert2" }, { "id": "e53030b6-f344-4361-981d-b8303a721c5d", "comment": "", "command": "assertText", - "target": "css=array-property:nth-child(8) .border-0", + "target": "css=.mb-4:nth-child(4) .d-flex:nth-child(5) > .d-block", "targets": [ - ["css=array-property:nth-child(8) .border-0", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[8]/div/div[2]/object-property/object-property/array-property/div/ul/li[5]", "xpath:idRelative"], - ["xpath=//section[8]/div/div[2]/object-property/object-property/array-property/div/ul/li[5]", "xpath:position"] + ["css=.mb-4:nth-child(4) .d-flex:nth-child(5) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[4]/div/div[2]/div[2]/div/div[2]/ul/li[5]/span", "xpath:idRelative"], + ["xpath=//li[5]/span", "xpath:position"], + ["xpath=//span[contains(.,'somethingElse')]", "xpath:innerText"] ], "value": "somethingElse" }, { "id": "18636780-2feb-458f-97be-cf4a625b22e1", "comment": "", "command": "assertText", - "target": "css=.d-flex:nth-child(5) > .py-2 > span", + "target": "css=.d-flex:nth-child(1) > .py-2 > span", "targets": [ - ["css=.d-flex:nth-child(5) > .py-2 > span", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[9]/div/div[2]/object-property/array-property/div/div[5]/div/span", "xpath:idRelative"], - ["xpath=//div/div[5]/div/span", "xpath:position"] + ["css=.d-flex:nth-child(1) > .py-2 > span", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[9]/div/div[2]/div[2]/div/div/span", "xpath:idRelative"], + ["xpath=//section[9]/div/div[2]/div[2]/div/div/span", "xpath:position"], + ["xpath=//span[contains(.,'True')]", "xpath:innerText"] ], "value": "True" }, { @@ -1830,11 +2012,15 @@ "id": "4e0fa4f5-817f-41fb-9885-60f37b699436", "comment": "", "command": "waitForElementVisible", - "target": "css=tr > .text-right", + "target": "linkText=Test Provider", "targets": [ - ["css=tr > .text-right", "css:finder"], - ["xpath=//td[5]", "xpath:position"], - ["xpath=//td[contains(.,'Enabled')]", "xpath:innerText"] + ["linkText=Test Provider", "linkText"], + ["css=td > a", "css:finder"], + ["xpath=//a[contains(text(),'Test Provider')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/source/18b88eef-18ea-4b30-9704-73194460c1f4/configuration/options')]", "xpath:href"], + ["xpath=//td/a", "xpath:position"], + ["xpath=//a[contains(.,'Test Provider')]", "xpath:innerText"] ], "value": "10000" }, { @@ -1843,12 +2029,10 @@ "command": "assertText", "target": "css=td:nth-child(1)", "targets": [ - ["linkText=Test Provider", "linkText"], - ["css=td > a", "css:finder"], - ["xpath=//a[contains(text(),'Test Provider')]", "xpath:link"], - ["xpath=//a[contains(@href, '/metadata/resolver/ee3aedc4-b56a-46c4-b8db-09603dd5b473/configuration/options')]", "xpath:href"], - ["xpath=//td/a", "xpath:position"], - ["xpath=//a[contains(.,'Test Provider')]", "xpath:innerText"] + ["css=td:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td", "xpath:idRelative"], + ["xpath=//td", "xpath:position"], + ["xpath=//td[contains(.,'Test Provider')]", "xpath:innerText"] ], "value": "Test Provider" }, { @@ -1858,6 +2042,7 @@ "target": "css=td:nth-child(2)", "targets": [ ["css=td:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]", "xpath:idRelative"], ["xpath=//td[2]", "xpath:position"], ["xpath=//td[contains(.,'test-1234')]", "xpath:innerText"] ], @@ -1955,11 +2140,12 @@ "id": "01da89d4-e043-4f99-9d98-dcb42b9b4777", "comment": "", "command": "click", - "target": "css=.btn-link", + "target": "css=.px-3", "targets": [ - ["css=.btn-link", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div/button", "xpath:position"], + ["css=.px-3", "css:finder"], + ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/form/div/div/div/button", "xpath:idRelative"], + ["xpath=//form/div/div/div/button", "xpath:position"], ["xpath=//button[contains(.,'Clear')]", "xpath:innerText"] ], "value": "" @@ -1982,7 +2168,12 @@ "comment": "", "command": "waitForElementPresent", "target": "css=.author", - "targets": [], + "targets": [ + ["css=.author", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/div/div/div/h5/span[2]", "xpath:idRelative"], + ["xpath=//span[2]", "xpath:position"], + ["xpath=//span[contains(.,'admin')]", "xpath:innerText"] + ], "value": "10000" }, { "id": "c9ea2708-7c12-43ce-b827-f0f34d2f2831", @@ -2000,11 +2191,11 @@ "id": "16271513-203c-4528-870f-dcf73f4d81cb", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(1) .d-block:nth-child(2)", + "target": "css=div:nth-child(2) > div:nth-child(2) > .d-flex > .text-truncate", "targets": [ - ["css=.d-block > primitive-property:nth-child(1) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/span[2]", "xpath:idRelative"], - ["xpath=//div/span[2]", "xpath:position"], + ["css=div:nth-child(2) > div:nth-child(2) > .d-flex > .text-truncate", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[2]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'test-1234')]", "xpath:innerText"] ], "value": "test-1234" @@ -2012,22 +2203,23 @@ "id": "3f2c3eab-ecbf-45f3-bcdc-a5cad766b27c", "comment": "", "command": "assertText", - "target": "css=array-property:nth-child(5) .py-2:nth-child(2) > .d-flex:nth-child(3) > .text-truncate", + "target": "css=div:nth-child(2) > div:nth-child(4) > .py-2:nth-child(2) > .d-flex:nth-child(3) > .d-block", "targets": [ - ["css=array-property:nth-child(5) .py-2:nth-child(2) > .d-flex:nth-child(3) > .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/array-property/div/div[2]/div[3]/div[2]", "xpath:idRelative"], - ["xpath=//div[3]/div[2]", "xpath:position"] + ["css=div:nth-child(2) > div:nth-child(4) > .py-2:nth-child(2) > .d-flex:nth-child(3) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[4]/div[2]/div[3]/span", "xpath:idRelative"], + ["xpath=//div[3]/span", "xpath:position"], + ["xpath=//span[contains(.,'user@test.org')]", "xpath:innerText"] ], "value": "user@test.org" }, { "id": "467409c7-1007-4c45-80d2-0b4eea5199a0", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(2) primitive-property:nth-child(2) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(4) div:nth-child(2) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(2) primitive-property:nth-child(2) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[2]/div/div[2]/object-property/object-property/primitive-property[2]/div/span[2]", "xpath:idRelative"], - ["xpath=//section[2]/div/div[2]/object-property/object-property/primitive-property[2]/div/span[2]", "xpath:position"], + ["css=.mb-4:nth-child(4) div:nth-child(2) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[2]/div/div[2]/div[2]/div/div[2]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[2]/div/div[2]/div[2]/div/div[2]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'http://test.org/info')]", "xpath:innerText"] ], "value": "http://test.org/info" @@ -2035,56 +2227,58 @@ "id": "eaaf9d59-1466-4736-924c-56c9b3f7522f", "comment": "", "command": "assertText", - "target": "css=array-property:nth-child(2) .text-truncate:nth-child(2)", + "target": "css=.d-flex:nth-child(2) .d-flex:nth-child(2) > .d-block", "targets": [ - ["css=array-property:nth-child(2) .text-truncate:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[3]/div/div[2]/object-property/object-property/array-property/div/div/ul/li[2]", "xpath:idRelative"], - ["xpath=//div/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress')]", "xpath:innerText"] + ["css=.d-flex:nth-child(2) .d-flex:nth-child(2) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[3]/div/div[2]/div[2]/div/div[2]/ul/li[2]/span", "xpath:idRelative"], + ["xpath=//ul/li[2]/span", "xpath:position"], + ["xpath=//span[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress')]", "xpath:innerText"] ], "value": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" }, { "id": "2a23096f-d5cd-4727-af1b-130388117aa0", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(4) .py-2:nth-child(3) > .d-flex:nth-child(1) > .text-truncate", + "target": "css=.mb-4:nth-child(6) .py-2:nth-child(3) > .d-flex:nth-child(1) > .d-block", "targets": [ - ["css=.mb-4:nth-child(4) .py-2:nth-child(3) > .d-flex:nth-child(1) > .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[4]/div/div[2]/object-property/array-property/div/div[3]/div/div[2]", "xpath:idRelative"], - ["xpath=//section[4]/div/div[2]/object-property/array-property/div/div[3]/div/div[2]", "xpath:position"] + ["css=.mb-4:nth-child(6) .py-2:nth-child(3) > .d-flex:nth-child(1) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[4]/div/div[2]/div[2]/div/div[3]/div/span", "xpath:idRelative"], + ["xpath=//section[4]/div/div[2]/div[2]/div/div[3]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'http://test.org/logout2')]", "xpath:innerText"] ], "value": "http://test.org/logout2" }, { "id": "fe47ffd2-d2a0-4264-90fe-31b998f81ac2", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(5) primitive-property:nth-child(3) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(7) .p-2 > div > div > div:nth-child(2) .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(5) primitive-property:nth-child(3) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[5]/div/div[2]/object-property/object-property/primitive-property[3]/div/span[2]", "xpath:idRelative"], - ["xpath=//section[5]/div/div[2]/object-property/object-property/primitive-property[3]/div/span[2]", "xpath:position"] + ["css=.mb-4:nth-child(7) .p-2 > div > div > div:nth-child(2) .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[5]/div/div[2]/div[2]/div/div[2]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[5]/div/div[2]/div[2]/div/div[2]/div/span[2]", "xpath:position"] ], "value": "true" }, { "id": "7300785c-b83e-49b8-97a6-d66516f6c133", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(6) .py-2:nth-child(2) > .d-flex:nth-child(1) > .text-truncate", + "target": "css=.mb-4:nth-child(8) .py-2:nth-child(2) > .d-flex:nth-child(1) > .d-block", "targets": [ - ["css=.mb-4:nth-child(6) .py-2:nth-child(2) > .d-flex:nth-child(1) > .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[6]/div/div[2]/object-property/array-property/div/div[2]/div/div[2]", "xpath:idRelative"], - ["xpath=//section[6]/div/div[2]/object-property/array-property/div/div[2]/div/div[2]", "xpath:position"] + ["css=.mb-4:nth-child(8) .py-2:nth-child(2) > .d-flex:nth-child(1) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[6]/div/div[2]/div[2]/div/div[2]/div/span", "xpath:idRelative"], + ["xpath=//section[6]/div/div[2]/div[2]/div/div[2]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'http://test.org/assert')]", "xpath:innerText"] ], "value": "http://test.org/assert" }, { "id": "951a21c9-4cd3-4989-8dc0-77760ca0dc95", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(7) primitive-property:nth-child(7) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(9) div:nth-child(3) .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(7) primitive-property:nth-child(7) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[7]/div/div[2]/object-property/object-property/primitive-property[7]/div/span[2]", "xpath:idRelative"], - ["xpath=//section[7]/div/div[2]/object-property/object-property/primitive-property[7]/div/span[2]", "xpath:position"], + ["css=.mb-4:nth-child(9) div:nth-child(3) .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[7]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[7]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'responder-id-123')]", "xpath:innerText"] ], "value": "responder-id-123" @@ -2092,23 +2286,25 @@ "id": "e8b794fc-20e2-4317-8bdd-73eee8e94951", "comment": "", "command": "assertText", - "target": "css=.d-flex:nth-child(3) > .py-2 > span", + "target": "css=.d-flex:nth-child(1) > .py-2 > span", "targets": [ - ["css=.d-flex:nth-child(3) > .py-2 > span", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[8]/div/div[2]/object-property/array-property/div/div/div[3]/div/span", "xpath:idRelative"], - ["xpath=//section[8]/div/div[2]/object-property/array-property/div/div/div[3]/div/span", "xpath:position"] + ["css=.d-flex:nth-child(1) > .py-2 > span", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[8]/div/div[2]/div[2]/div/div/span", "xpath:idRelative"], + ["xpath=//section[8]/div/div[2]/div[2]/div/div/span", "xpath:position"], + ["xpath=//span[contains(.,'True')]", "xpath:innerText"] ], "value": "True" }, { "id": "2c46cdcd-d5a5-47fe-aa7b-0120fd2fcfc9", "comment": "", "command": "click", - "target": "css=.mb-4:nth-child(1) .actions span", + "target": "css=.mb-4:nth-child(3) .edit-link", "targets": [ - ["css=.mb-4:nth-child(1) .actions span", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div/div/button/span", "xpath:idRelative"], - ["xpath=//div/button/span", "xpath:position"], - ["xpath=//span[contains(.,'Edit')]", "xpath:innerText"] + ["css=.mb-4:nth-child(3) .edit-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div/div/button", "xpath:idRelative"], + ["xpath=//section/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Edit')]", "xpath:innerText"] ], "value": "" }, { @@ -2118,24 +2314,44 @@ "target": "5000", "targets": [], "value": "" + }, { + "id": "21dcd554-a579-4182-9bd0-3c9979b10cd5", + "comment": "", + "command": "type", + "target": "id=root_serviceProviderName", + "targets": [], + "value": "" }, { "id": "99731068-2016-4a7f-8a38-febfb711d027", "comment": "", "command": "type", - "target": "id=/serviceProviderName", + "target": "id=root_serviceProviderName", "targets": [ - ["id=/serviceProviderName", "id"], - ["name=field93", "name"], - ["css=#\\/serviceProviderName", "css:finder"], - ["xpath=//input[@id='/serviceProviderName']", "xpath:attributes"], + ["id=root_serviceProviderName", "id"], + ["css=#root_serviceProviderName", "css:finder"], + ["xpath=//input[@id='root_serviceProviderName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "Service Provider v2" + }, { + "id": "0c0fbefb-efd7-43dd-a719-18e9e6a0c6f7", + "comment": "", + "command": "type", + "target": "id=root_contacts_0_name", + "targets": [ + ["id=root_contacts_0_name", "id"], + ["css=#root_contacts_0_name", "css:finder"], + ["xpath=//input[@id='root_contacts_0_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] + ], + "value": "" }, { "id": "c6484ff1-8bf2-4442-8f73-13c7af38634a", "comment": "", "command": "type", - "target": "id=/contacts/0/name", + "target": "id=root_contacts_0_name", "targets": [ ["id=/contacts/0/name", "id"], ["name=field102", "name"], @@ -2151,20 +2367,24 @@ "target": "css=.btn-info", "targets": [ ["css=.btn-info", "css:finder"], - ["xpath=//div[2]/button", "xpath:position"], - ["xpath=//button[contains(.,'Save')]", "xpath:innerText"] + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,' Save')]", "xpath:innerText"] ], "value": "" }, { "id": "c5985278-503e-4258-bba9-de7d2f157db0", "comment": "", "command": "click", - "target": "css=.btn-link:nth-child(1)", + "target": "linkText=Version History", "targets": [ - ["css=.btn-link:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/a/translate-i18n", "xpath:idRelative"], - ["xpath=//div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Version History')]", "xpath:innerText"] + ["linkText=Version History", "linkText"], + ["css=div:nth-child(1) > .btn-link", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/source/18b88eef-18ea-4b30-9704-73194460c1f4/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] ], "value": "" }, { @@ -2195,56 +2415,77 @@ "target": "css=.btn-primary", "targets": [ ["css=.btn-primary", "css:finder"], - ["xpath=//history-list/button", "xpath:position"], + ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/button", "xpath:idRelative"], + ["xpath=//section/div/div/button", "xpath:position"], ["xpath=//button[contains(.,'Compare Selected(2)')]", "xpath:innerText"] ], "value": "" }, { - "id": "978829e9-fa70-4548-9a55-0e2ffa0df9a4", + "id": "2e91c30c-20dc-4023-96a9-b835bfebc77e", "comment": "", - "command": "pause", - "target": "5000", - "targets": [], - "value": "" + "command": "waitForElementVisible", + "target": "css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(2)", + "targets": [ + ["css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], + ["xpath=//div/span[2]", "xpath:position"] + ], + "value": "30000" }, { "id": "1c0b7514-92b7-4e07-b462-467113f4a8cd", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(2) .d-block:nth-child(2)", + "target": "css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=.d-block > primitive-property:nth-child(2) .d-block:nth-child(2)", "css:finder"], - ["xpath=//primitive-property[2]/div/span[2]", "xpath:position"] + ["css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], + ["xpath=//div/span[2]", "xpath:position"] ], "value": "Service Provider v2" + }, { + "id": "a870af31-cc79-4140-a9aa-0e714a5fc23e", + "comment": "", + "command": "waitForElementVisible", + "target": "css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(3)", + "targets": [ + ["css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[3]", "xpath:idRelative"], + ["xpath=//span[3]", "xpath:position"] + ], + "value": "30000" }, { "id": "fc7c4e1e-03c7-4108-9a8d-f469e7679ae4", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(2) .d-block:nth-child(3)", + "target": "css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(3)", "targets": [ - ["css=.d-block > primitive-property:nth-child(2) .d-block:nth-child(3)", "css:finder"], - ["xpath=//primitive-property[2]/div/span[3]", "xpath:position"], - ["xpath=//span[contains(.,'Test Provider')]", "xpath:innerText"] + ["css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[3]", "xpath:idRelative"], + ["xpath=//span[3]", "xpath:position"] ], "value": "Test Provider" }, { "id": "138ad58b-f0a2-436b-a8b0-43484f4180e6", "comment": "", "command": "assertText", - "target": "css=.bg-diff > .py-2:nth-child(2) > .d-flex:nth-child(1) > .text-truncate:nth-child(3)", + "target": "css=.bg-diff:nth-child(2) > .d-flex:nth-child(1) > .d-block:nth-child(3)", "targets": [ - ["css=.bg-diff > .py-2:nth-child(2) > .d-flex:nth-child(1) > .text-truncate:nth-child(3)", "css:finder"], - ["xpath=//div[2]/div/div[2]", "xpath:position"] + ["css=.bg-diff:nth-child(2) > .d-flex:nth-child(1) > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[5]/div[2]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[5]/div[2]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'Test User v2')]", "xpath:innerText"] ], "value": "Test User v2" }, { "id": "17049c95-4724-4521-ac47-6b64bde822aa", "comment": "", "command": "assertText", - "target": "css=.py-2:nth-child(2) > .d-flex:nth-child(1) > .text-truncate:nth-child(4)", + "target": "css=.py-2:nth-child(2) > .d-flex:nth-child(1) > .d-block:nth-child(4)", "targets": [ - ["css=.py-2:nth-child(2) > .d-flex:nth-child(1) > .text-truncate:nth-child(4)", "css:finder"], - ["xpath=//div/div[3]", "xpath:position"] + ["css=.py-2:nth-child(2) > .d-flex:nth-child(1) > .d-block:nth-child(4)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[5]/div[2]/div/span[3]", "xpath:idRelative"], + ["xpath=//div[5]/div[2]/div/span[3]", "xpath:position"] ], "value": "Test User" }, { @@ -2259,6 +2500,18 @@ ["xpath=//ol/li/a", "xpath:position"] ], "value": "" + }, { + "id": "011c8375-5973-4702-89e2-cacc9c4de9aa", + "comment": "", + "command": "waitForElementVisible", + "target": "linkText=Service Provider v2", + "targets": [ + ["css=td:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td", "xpath:idRelative"], + ["xpath=//td", "xpath:position"], + ["xpath=//td[contains(.,'Test Provider')]", "xpath:innerText"] + ], + "value": "30000" }, { "id": "dcee0b69-0da6-4434-b1b0-6917e6cfb4b0", "comment": "", @@ -2277,37 +2530,44 @@ "id": "8ff1a53e-948a-4732-8414-2f371e410c7d", "comment": "", "command": "click", - "target": "css=.mb-4:nth-child(2) .actions span", + "target": "css=.mb-4:nth-child(4) .edit-link", "targets": [ - ["css=.mb-4:nth-child(2) .actions span", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[2]/div/div/div/button/span", "xpath:idRelative"], - ["xpath=//section[2]/div/div/div/button/span", "xpath:position"] + ["css=.mb-4:nth-child(4) .edit-link", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[2]/div/div/div/button", "xpath:idRelative"], + ["xpath=//section[2]/div/div/div/button", "xpath:position"] ], "value": "" - }, { - "id": "e1748ca6-18b9-4195-8f09-5c18d317fc88", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" }, { "id": "3e8d20f4-879c-4105-8797-17afd60ba34b", "comment": "", "command": "waitForElementEditable", - "target": "id=/mdui/displayName", - "targets": [], + "target": "id=root_mdui_displayName", + "targets": [ + ["id=root_mdui_displayName", "id"], + ["css=#root_mdui_displayName", "css:finder"], + ["xpath=//input[@id='root_mdui_displayName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div[3]/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "30000" + }, { + "id": "b4ab191c-f637-4816-99fe-9781a9d4d773", + "comment": "", + "command": "type", + "target": "id=root_mdui_displayName", + "targets": [], + "value": "" }, { "id": "6f422a9d-6c2f-4200-bdd3-411ed44773a3", "comment": "", "command": "type", - "target": "id=/mdui/displayName", + "target": "id=root_mdui_displayName", "targets": [ - ["id=/mdui/displayName", "id"], - ["name=field111", "name"], - ["css=#\\/mdui\\/displayName", "css:finder"], - ["xpath=//input[@id='/mdui/displayName']", "xpath:attributes"], + ["id=root_mdui_displayName", "id"], + ["css=#root_mdui_displayName", "css:finder"], + ["xpath=//input[@id='root_mdui_displayName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div[3]/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "Display Name v3" @@ -2326,12 +2586,14 @@ "id": "f2e3d420-5cf5-4165-94da-41688839cf82", "comment": "", "command": "click", - "target": "css=.btn-link:nth-child(1)", + "target": "linkText=Version History", "targets": [ - ["css=.btn-link:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/a/translate-i18n", "xpath:idRelative"], - ["xpath=//div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Version History')]", "xpath:innerText"] + ["linkText=Version History", "linkText"], + ["css=div:nth-child(1) > .btn-link", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/source/18b88eef-18ea-4b30-9704-73194460c1f4/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] ], "value": "" }, { @@ -2367,42 +2629,61 @@ ], "value": "" }, { - "id": "98aafaee-a430-4a2d-9aa5-b4c9ce0c4908", + "id": "56094f6e-45b7-42f6-9102-e4e19673240d", "comment": "", - "command": "pause", - "target": "5000", - "targets": [], - "value": "" + "command": "waitForElementVisible", + "target": "css=.mb-4:nth-child(3) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", + "targets": [ + ["css=.mb-4:nth-child(3) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[2]/div/div[2]/div[2]/div/div/div/span[2]", "xpath:idRelative"], + ["xpath=//section[2]/div/div[2]/div[2]/div/div/div/span[2]", "xpath:position"] + ], + "value": "30000" }, { "id": "5a976e2c-dc5f-4021-9cc6-3cad12e771ea", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(2) primitive-property:nth-child(1) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(3) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(2) primitive-property:nth-child(1) .d-block:nth-child(2)", "css:finder"], - ["xpath=//section[2]/div/div[2]/object-property/object-property/primitive-property/div/span[2]", "xpath:position"], - ["xpath=//span[contains(.,'Display Name v3')]", "xpath:innerText"] + ["css=.mb-4:nth-child(3) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[2]/div/div[2]/div[2]/div/div/div/span[2]", "xpath:idRelative"], + ["xpath=//section[2]/div/div[2]/div[2]/div/div/div/span[2]", "xpath:position"] ], "value": "Display Name v3" + }, { + "id": "c2ebc46c-e443-47b9-b17b-0ac6d23b882c", + "comment": "", + "command": "waitForElementVisible", + "target": "css=.mb-4:nth-child(3) div:nth-child(1) > .d-flex > .d-block:nth-child(3)", + "targets": [ + ["css=.mb-4:nth-child(3) div:nth-child(1) > .d-flex > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[2]/div/div[2]/div[2]/div/div/div/span[3]", "xpath:idRelative"], + ["xpath=//section[2]/div/div[2]/div[2]/div/div/div/span[3]", "xpath:position"] + ], + "value": "30000" }, { "id": "72328587-fe8d-4dc8-bc3d-a163f91a1ad6", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(2) primitive-property:nth-child(1) .d-block:nth-child(3)", + "target": "css=.mb-4:nth-child(3) div:nth-child(1) > .d-flex > .d-block:nth-child(3)", "targets": [ - ["css=.mb-4:nth-child(2) primitive-property:nth-child(1) .d-block:nth-child(3)", "css:finder"], - ["xpath=//section[2]/div/div[2]/object-property/object-property/primitive-property/div/span[3]", "xpath:position"] + ["css=.mb-4:nth-child(3) div:nth-child(1) > .d-flex > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[2]/div/div[2]/div[2]/div/div/div/span[3]", "xpath:idRelative"], + ["xpath=//section[2]/div/div[2]/div[2]/div/div/div/span[3]", "xpath:position"] ], "value": "Display Name" }, { "id": "04275c4f-c243-46d4-8179-e6aa913ee5f7", "comment": "", "command": "click", - "target": "css=.btn-link", + "target": "linkText=Version History", "targets": [ - ["css=.btn-link > translate-i18n", "css:finder"], - ["xpath=//div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Version History')]", "xpath:innerText"] + ["linkText=Version History", "linkText"], + ["css=.btn-link", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/source/18b88eef-18ea-4b30-9704-73194460c1f4/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] ], "value": "" }, { @@ -2411,34 +2692,54 @@ "command": "click", "target": "css=tr:nth-child(2) .btn", "targets": [ + ["linkText=Restore", "linkText"], ["css=tr:nth-child(2) .btn", "css:finder"], - ["xpath=//td[4]/button", "xpath:position"], - ["xpath=//button[contains(.,'  Restore')]", "xpath:innerText"] + ["xpath=//div[@id='root']/div/main/div/section/div/div/table/tbody/tr[2]/td[4]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/source/18b88eef-18ea-4b30-9704-73194460c1f4/restore/160/common')]", "xpath:href"], + ["xpath=//td[4]/a", "xpath:position"], + ["xpath=//a[contains(.,' Restore')]", "xpath:innerText"] ], "value": "" }, { - "id": "1a4ed03b-cc8d-4bb2-9b4c-2152d7a577c0", + "id": "1acccf5f-2f4f-4317-9acc-d648f2b61ac6", "comment": "", "command": "click", - "target": "css=.btn-primary", + "target": "linkText=Restore", "targets": [ + ["linkText=Restore", "linkText"], ["css=.btn-primary", "css:finder"], - ["xpath=//button[2]", "xpath:position"], - ["xpath=//button[contains(.,'Restore')]", "xpath:innerText"] + ["xpath=//a[contains(text(),'Restore')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/div/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/source/2e6145fc-09ac-44b9-adcd-f331cc011055/restore/864/common/edit')]", "xpath:href"], + ["xpath=//section/div/div/div/div/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Restore')]", "xpath:innerText"] ], "value": "" }, { - "id": "0e3e455b-e44c-41ee-8b6e-b50df56e7946", + "id": "5bb3c6c8-4bb0-43b1-8b9f-f189ccb31f50", "comment": "", - "command": "pause", - "target": "5000", + "command": "waitForElementVisible", + "target": "id=root_serviceProviderName", + "targets": [ + ["id=root_serviceProviderName", "id"], + ["css=#root_serviceProviderName", "css:finder"], + ["xpath=//input[@id='root_serviceProviderName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "30000" + }, { + "id": "6307f710-1115-4b04-902a-b1ba14e1f877", + "comment": "", + "command": "type", + "target": "id=root_serviceProviderName", "targets": [], "value": "" }, { "id": "db39c891-73da-4ad9-9360-00dd8b845f60", "comment": "", "command": "type", - "target": "id=/serviceProviderName", + "target": "id=root_serviceProviderName", "targets": [ ["id=/serviceProviderName", "id"], ["name=field197", "name"], @@ -2511,54 +2812,72 @@ "target": "5000", "targets": [], "value": "" + }, { + "id": "bf094932-1233-48a0-a303-962d1dbd2fdb", + "comment": "", + "command": "waitForElementVisible", + "target": "css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(2)", + "targets": [ + ["css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], + ["xpath=//div/span[2]", "xpath:position"] + ], + "value": "30000" }, { "id": "18918b08-9ae1-4bc3-836c-73feb1812cde", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(2) .d-block:nth-child(2)", + "target": "css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=.d-block > primitive-property:nth-child(2) .d-block:nth-child(2)", "css:finder"], - ["xpath=//primitive-property[2]/div/span[2]", "xpath:position"] + ["css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], + ["xpath=//div/span[2]", "xpath:position"] ], "value": "Service Provider - Restored" + }, { + "id": "d8e9601b-8759-40ac-accd-dc317476f3f9", + "comment": "", + "command": "waitForElementVisible", + "target": "css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(3)", + "targets": [ + ["css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[3]", "xpath:idRelative"], + ["xpath=//span[3]", "xpath:position"] + ], + "value": "30000" }, { "id": "e3dc2662-98da-46ad-a25e-fc8f57d29983", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(2) .d-block:nth-child(3)", + "target": "css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(3)", "targets": [ - ["css=.d-block > primitive-property:nth-child(2) .d-block:nth-child(3)", "css:finder"], - ["xpath=//primitive-property[2]/div/span[3]", "xpath:position"], - ["xpath=//span[contains(.,'Service Provider v2')]", "xpath:innerText"] + ["css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[3]", "xpath:idRelative"], + ["xpath=//span[3]", "xpath:position"] ], "value": "Service Provider v2" }, { "id": "8bf73f7f-def2-4044-835d-695fb701de8d", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(2) primitive-property:nth-child(1) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(3) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(2) primitive-property:nth-child(1) .d-block:nth-child(2)", "css:finder"], - ["xpath=//section[2]/div/div[2]/object-property/object-property/primitive-property/div/span[2]", "xpath:position"] + ["css=.mb-4:nth-child(3) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[2]/div/div[2]/div[2]/div/div/div/span[2]", "xpath:idRelative"], + ["xpath=//section[2]/div/div[2]/div[2]/div/div/div/span[2]", "xpath:position"] ], "value": "Display Name" }, { "id": "50732e8a-e89d-447a-b9b2-96c218e7e284", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(2) primitive-property:nth-child(1) .d-block:nth-child(3)", + "target": "css=.mb-4:nth-child(3) div:nth-child(1) > .d-flex > .d-block:nth-child(3)", "targets": [ - ["css=.mb-4:nth-child(2) primitive-property:nth-child(1) .d-block:nth-child(3)", "css:finder"], - ["xpath=//section[2]/div/div[2]/object-property/object-property/primitive-property/div/span[3]", "xpath:position"] + ["css=.mb-4:nth-child(3) div:nth-child(1) > .d-flex > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[2]/div/div[2]/div[2]/div/div/div/span[3]", "xpath:idRelative"], + ["xpath=//section[2]/div/div[2]/div[2]/div/div/div/span[3]", "xpath:position"] ], "value": "Display Name" - }, { - "id": "dd9d3cb6-e895-4fcb-ae5e-c6da258a65a5", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1385-2.side b/backend/src/integration/resources/SHIBUI-1385-2.side index 549d6840d..ec627f3c6 100644 --- a/backend/src/integration/resources/SHIBUI-1385-2.side +++ b/backend/src/integration/resources/SHIBUI-1385-2.side @@ -49,40 +49,82 @@ ["xpath=//tr[2]/td[2]/input", "xpath:position"] ], "value": "${KEY_ENTER}" + }, { + "id": "c0a35781-0dbd-4905-8c25-61d7d497f968", + "comment": "", + "command": "waitForElementVisible", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "a81efadb-6076-4a3e-b7ab-0cc097fb0820", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "6beb290f-d295-44dc-818d-267bbcf58904", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "e3fac66a-0ae5-453f-bb14-55cb6c490a59", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "e7a98419-36c7-4b0f-a99d-087144f6a417", "comment": "", "command": "click", - "target": "css=.fa-plus-circle", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=.fa-plus-circle", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/i", "xpath:idRelative"], - ["xpath=//i", "xpath:position"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "74fef022-3979-4bed-9226-b25114514976", "comment": "", "command": "click", - "target": "linkText=Metadata Provider", + "target": "id=metadata-nav-dropdown-provider", "targets": [ - ["linkText=Metadata Provider", "linkText"], - ["css=.nav-link:nth-child(2)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a[2]", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[3]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"] + ["id=metadata-nav-dropdown-provider", "id"], + ["linkText=Add a new metadata provider", "linkText"], + ["css=#metadata-nav-dropdown-provider", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata provider')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-provider']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/new')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata provider')]", "xpath:innerText"] ], "value": "" + }, { + "id": "1857e64e-7acf-43a1-b708-462694baa051", + "comment": "", + "command": "waitForElementEditable", + "target": "name=name", + "targets": [], + "value": "30000" }, { "id": "b49d6ed7-75ea-4be8-9a79-c7fd83287aa0", "comment": "", "command": "click", - "target": "id=/name", + "target": "name=name", "targets": [ - ["id=/name", "id"], - ["name=field1", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -90,7 +132,7 @@ "id": "54dc29f7-bbe0-4c2b-a76e-e67a61f57a96", "comment": "", "command": "type", - "target": "id=/name", + "target": "name=name", "targets": [ ["id=/name", "id"], ["name=field1", "name"], @@ -99,16 +141,32 @@ ["xpath=//input", "xpath:position"] ], "value": "Test Metadata Provider" + }, { + "id": "93dd88c6-a2c1-44c6-a18c-90d2929b7530", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [ + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div[2]/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] + ], + "value": "30000" }, { "id": "add874d5-e3b2-4412-8039-2b9d2619ed19", "comment": "", "command": "select", - "target": "id=/type", + "target": "name=type", "targets": [ - ["css=select-component > .widget", "css:finder"], - ["xpath=//select-component/div", "xpath:position"] + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div[2]/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], - "value": "label=FileBackedHttpMetadataProvider" + "value": "label=FileBackedHttpMetadataResolver" }, { "id": "1cc352f4-0d71-4a3e-9399-1d9932816efc", "comment": "", @@ -123,19 +181,25 @@ "id": "d072327c-78b4-4bdb-8020-b825cd26592d", "comment": "", "command": "waitForElementVisible", - "target": "id=/xmlId", - "targets": [], + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "86262eda-4a44-41b0-b7aa-fa46406e2601", "comment": "", "command": "type", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ - ["id=field7", "id"], - ["name=field7", "name"], - ["css=#field7", "css:finder"], - ["xpath=//input[@id='field7']", "xpath:attributes"], + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "123" @@ -143,38 +207,39 @@ "id": "26cc765d-98c1-414c-97d8-4c7e5c6ab7e2", "comment": "", "command": "type", - "target": "id=/metadataURL", + "target": "id=root_metadataURL", "targets": [ - ["id=field8", "id"], - ["name=field8", "name"], - ["css=#field8", "css:finder"], - ["xpath=//input[@id='field8']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_metadataURL", "id"], + ["css=#root_metadataURL", "css:finder"], + ["xpath=//input[@id='root_metadataURL']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "https://idp.unicon.net/idp/shibboleth" }, { "id": "f0459917-b2a1-4e3c-8800-25273965129f", "comment": "", "command": "click", - "target": "id=/initializeFromBackupFile.false", + "target": "id=root_initializeFromBackupFile-No", "targets": [ - ["id=/initializeFromBackupFile.false", "id"], - ["css=#\\/initializeFromBackupFile\\.false", "css:finder"], - ["xpath=//input[@id='/initializeFromBackupFile.false']", "xpath:attributes"], - ["xpath=//div[2]/label/input", "xpath:position"] + ["id=root_initializeFromBackupFile-No", "id"], + ["css=#root_initializeFromBackupFile-No", "css:finder"], + ["xpath=//input[@id='root_initializeFromBackupFile-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[3]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] ], "value": "" }, { "id": "5b37cf08-77b9-4091-94f9-c0d539c9010d", "comment": "", "command": "type", - "target": "id=/backingFile", + "target": "id=root_backingFile", "targets": [ - ["id=/backingFile", "id"], - ["name=field10", "name"], - ["css=#\\/backingFile", "css:finder"], - ["xpath=//input[@id='/backingFile']", "xpath:attributes"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_backingFile", "id"], + ["css=#root_backingFile", "css:finder"], + ["xpath=//input[@id='root_backingFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] ], "value": "%{idp.home}/foo.txt" }, { @@ -188,11 +253,12 @@ "id": "203d0d3c-d866-422a-8b48-b50181db00e9", "comment": "", "command": "click", - "target": "css=.fa-caret-down", + "target": "css=.toggle-button", "targets": [ - ["css=.fa-caret-down", "css:finder"], - ["xpath=//div[@id='/backupFileInitNextRefreshDelay-container']/div/div/button/i", "xpath:idRelative"], - ["xpath=//div/button/i", "xpath:position"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[5]/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -206,62 +272,69 @@ "id": "5fc6a348-0533-4d94-bb76-ebb891a0db8f", "comment": "", "command": "click", - "target": "id=/backupFileInitNextRefreshDelay__option--1", + "target": "id=option-selector-root_backupFileInitNextRefreshDelay-item-1", "targets": [ - ["id=/backupFileInitNextRefreshDelay__option--1", "id"], - ["css=#\\/backupFileInitNextRefreshDelay__option--1", "css:finder"], - ["xpath=//li[@id='/backupFileInitNextRefreshDelay__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/backupFileInitNextRefreshDelay__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'PT30S')]", "xpath:innerText"] + ["id=option-selector-root_backupFileInitNextRefreshDelay-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_backupFileInitNextRefreshDelay-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_backupFileInitNextRefreshDelay-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_backupFileInitNextRefreshDelay']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { "id": "bf041d41-5d58-4f69-8fcc-49ec79e5547d", "comment": "", "command": "click", - "target": "id=/requireValidMetadata.false", + "target": "id=root_requireValidMetadata-No", "targets": [ - ["id=/requireValidMetadata.false", "id"], - ["css=#\\/requireValidMetadata\\.false", "css:finder"], - ["xpath=//input[@id='/requireValidMetadata.false']", "xpath:attributes"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_requireValidMetadata-No", "id"], + ["css=#root_requireValidMetadata-No", "css:finder"], + ["xpath=//input[@id='root_requireValidMetadata-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[6]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "fba85c75-e218-4deb-b5e1-888ff75b6a4e", "comment": "", "command": "click", - "target": "id=/failFastInitialization.false", + "target": "id=root_failFastInitialization-No", "targets": [ - ["id=/failFastInitialization.false", "id"], - ["css=#\\/failFastInitialization\\.false", "css:finder"], - ["xpath=//input[@id='/failFastInitialization.false']", "xpath:attributes"], - ["xpath=//div[7]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_failFastInitialization-No", "id"], + ["css=#root_failFastInitialization-No", "css:finder"], + ["xpath=//input[@id='root_failFastInitialization-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[7]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "375b8d6e-179b-4f14-8f00-d8a8cad29d7e", "comment": "", "command": "click", - "target": "id=/useDefaultPredicateRegistry.false", + "target": "id=root_useDefaultPredicateRegistry-No", "targets": [ - ["id=/useDefaultPredicateRegistry.false", "id"], - ["css=#\\/useDefaultPredicateRegistry\\.false", "css:finder"], - ["xpath=//input[@id='/useDefaultPredicateRegistry.false']", "xpath:attributes"], - ["xpath=//div[8]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_useDefaultPredicateRegistry-No", "id"], + ["css=#root_useDefaultPredicateRegistry-No", "css:finder"], + ["xpath=//input[@id='root_useDefaultPredicateRegistry-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[8]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[8]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "8b4bf341-62c0-491f-b775-d2faf55477bc", "comment": "", "command": "click", - "target": "id=/satisfyAnyPredicates.true", + "target": "id=root_satisfyAnyPredicates-Yes", "targets": [ - ["id=/satisfyAnyPredicates.true", "id"], - ["css=#\\/satisfyAnyPredicates\\.true", "css:finder"], - ["xpath=//input[@id='/satisfyAnyPredicates.true']", "xpath:attributes"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div/label/input", "xpath:position"] + ["id=root_satisfyAnyPredicates-Yes", "id"], + ["name=root_satisfyAnyPredicates", "name"], + ["css=#root_satisfyAnyPredicates-Yes", "css:finder"], + ["xpath=//input[@id='root_satisfyAnyPredicates-Yes']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[9]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/input", "xpath:position"] ], "value": "" }, { @@ -285,13 +358,12 @@ "id": "a188bc3e-fd98-4d49-ae35-a0b78a17607c", "comment": "", "command": "click", - "target": "css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", + "target": "css=.row:nth-child(1) > .col-12 .toggle-button", "targets": [ - ["css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/reloadableMetadataResolverAttributes/minRefreshDelay-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.row:nth-child(1) > .col-12 .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -305,14 +377,16 @@ "id": "a159e056-c870-4e02-a7e9-4b3a60d83718", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/minRefreshDelay__option--1", + "target": "id=option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "targets": [ - ["id=/reloadableMetadataResolverAttributes/minRefreshDelay__option--1", "id"], - ["css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay__option--1", "css:finder"], - ["xpath=//li[@id='/reloadableMetadataResolverAttributes/minRefreshDelay__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/reloadableMetadataResolverAttributes/minRefreshDelay__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'PT30S')]", "xpath:innerText"] + ["id=option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { @@ -326,11 +400,12 @@ "id": "7a72cf6a-c97a-49f6-83d0-cbe42f0fdb7d", "comment": "", "command": "click", - "target": "css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay-container .btn", + "target": "css=.row:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay-container .fa", "css:finder"], - ["xpath=//div[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay-container']/div/div/button/i", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button/i", "xpath:position"] + ["css=.row:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -344,26 +419,29 @@ "id": "820397f5-aabb-46f5-a65a-56747ce29091", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/maxRefreshDelay__option--3", + "target": "id=option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3", "targets": [ - ["id=/reloadableMetadataResolverAttributes/maxRefreshDelay__option--3", "id"], - ["css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay__option--3", "css:finder"], - ["xpath=//li[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3", "id"], + ["linkText=PT10M", "linkText"], + ["css=#option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'PT10M')]", "xpath:innerText"] ], "value": "" }, { "id": "b036a851-4ac9-43cb-8686-8e78ed940d72", "comment": "", "command": "type", - "target": "id=/reloadableMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "targets": [ - ["id=/reloadableMetadataResolverAttributes/refreshDelayFactor", "id"], - ["name=field20", "name"], - ["css=#\\/reloadableMetadataResolverAttributes\\/refreshDelayFactor", "css:finder"], - ["xpath=//input[@id='/reloadableMetadataResolverAttributes/refreshDelayFactor']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "id"], + ["css=#root_reloadableMetadataResolverAttributes_refreshDelayFactor", "css:finder"], + ["xpath=//input[@id='root_reloadableMetadataResolverAttributes_refreshDelayFactor']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "0.5" }, { @@ -387,13 +465,12 @@ "id": "232da257-962f-4a4b-8213-038ef90c96c3", "comment": "", "command": "click", - "target": "css=.btn-outline-secondary", + "target": "css=.toggle-button", "targets": [ - ["css=.btn-outline-secondary", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div/div/div/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -407,114 +484,120 @@ "id": "b8d999f1-0c59-4a9a-9991-91d222f52b8e", "comment": "", "command": "click", - "target": "id=/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1", + "target": "id=option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "targets": [ - ["id=/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1", "id"], - ["css=#\\/metadataFilters\\/RequiredValidUntil\\/maxValidityInterval__option--1", "css:finder"], - ["xpath=//li[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'P14D')]", "xpath:innerText"] + ["id=option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_metadataFilters_0_maxValidityInterval-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_metadataFilters_0_maxValidityInterval']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { "id": "8af1abb5-2c7a-4a4c-a8f7-0eb287100dde", "comment": "", "command": "click", - "target": "id=/metadataFilters/SignatureValidation/requireSignedRoot", + "target": "id=root_metadataFilters_1_requireSignedRoot", "targets": [ - ["css=div:nth-child(1) > sf-form-element > .has-success .custom-control-label", "css:finder"], - ["xpath=//div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Require Signed Root')]", "xpath:innerText"] + ["id=root_metadataFilters_1_requireSignedRoot", "id"], + ["css=#root_metadataFilters_1_requireSignedRoot", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_1_requireSignedRoot']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "323a2a02-9111-4064-8bb0-a3da34330e54", "comment": "", "command": "type", - "target": "id=/metadataFilters/SignatureValidation/certificateFile", - "targets": [], + "target": "id=root_metadataFilters_1_certificateFile", + "targets": [ + ["id=root_metadataFilters_1_certificateFile", "id"], + ["css=#root_metadataFilters_1_certificateFile", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_1_certificateFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] + ], "value": "%{idp.home}/foo.txt" }, { "id": "a125e601-f306-441d-9c8c-e97b95817b46", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//array-component/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "74d696db-3f3b-4ff3-a180-34baceb469a2", "comment": "", "command": "select", - "target": "id=/metadataFilters/EntityRoleWhiteList/retainedRoles/0", - "targets": [], - "value": "label=SPSSODescriptor" - }, { - "id": "532bf2e5-13fc-48d7-b01b-ff16207a554d", - "comment": "", - "command": "click", - "target": "css=option:nth-child(2)", + "target": "id=root_metadataFilters_2_retainedRoles_0", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: md:SPSSODescriptor']", "xpath:attributes"], - ["xpath=//select[@id='/metadataFilters/EntityRoleWhiteList/retainedRoles/0']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'SPSSODescriptor')]", "xpath:innerText"] + ["id=root_metadataFilters_2_retainedRoles_0", "id"], + ["css=#root_metadataFilters_2_retainedRoles_0", "css:finder"], + ["xpath=//select[@id='root_metadataFilters_2_retainedRoles_0']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], - "value": "" + "value": "label=SPSSODescriptor" }, { "id": "12cf80c9-594c-4c4d-bf26-aa36ba636220", "comment": "", "command": "click", - "target": "css=.fa-plus", + "target": "css=.array-add-button", "targets": [ - ["css=.fa-plus", "css:finder"], - ["xpath=//array-component/div/div/button/i", "xpath:position"] - ], - "value": "" - }, { - "id": "6cb9854b-293b-482d-8c07-4b7c638d79cb", - "comment": "", - "command": "click", - "target": "css=#\\/metadataFilters\\/EntityRoleWhiteList\\/retainedRoles\\/1 > option:nth-child(1)", - "targets": [ - ["css=#\\/metadataFilters\\/EntityRoleWhiteList\\/retainedRoles\\/1 > option:nth-child(1)", "css:finder"], - ["xpath=(//option[@value=''])[2]", "xpath:attributes"], - ["xpath=//select[@id='/metadataFilters/EntityRoleWhiteList/retainedRoles/1']/option", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/select-component/div/select/option", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "f366c86c-1420-4fb7-86c2-82c49d81208d", "comment": "", "command": "select", - "target": "id=/metadataFilters/EntityRoleWhiteList/retainedRoles/1", - "targets": [], + "target": "id=root_metadataFilters_2_retainedRoles_1", + "targets": [ + ["id=root_metadataFilters_2_retainedRoles_1", "id"], + ["css=#root_metadataFilters_2_retainedRoles_1", "css:finder"], + ["xpath=//select[@id='root_metadataFilters_2_retainedRoles_1']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div[2]/div[2]/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/select", "xpath:position"] + ], "value": "label=AttributeAuthorityDescriptor" }, { "id": "5dfac033-ecfd-42e8-aa6f-931d5acd4d89", "comment": "", "command": "click", - "target": "css=div:nth-child(2) > sf-form-element > .has-success > sf-widget-chooser > checkbox-component .custom-control-label", + "target": "id=root_metadataFilters_2_removeRolelessEntityDescriptors", "targets": [ - ["css=div:nth-child(2) > sf-form-element > .has-success > sf-widget-chooser > checkbox-component .custom-control-label", "css:finder"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Remove Roleless Entity Descriptors?')]", "xpath:innerText"] + ["id=root_metadataFilters_2_removeRolelessEntityDescriptors", "id"], + ["css=#root_metadataFilters_2_removeRolelessEntityDescriptors", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_2_removeRolelessEntityDescriptors']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[3]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "9d5934f0-fe10-4539-9d71-80b454fc8612", "comment": "", "command": "click", - "target": "css=div:nth-child(3) > sf-form-element > .has-success > sf-widget-chooser > checkbox-component .custom-control-label", + "target": "id=root_metadataFilters_2_removeEmptyEntitiesDescriptors", "targets": [ - ["css=div:nth-child(3) > sf-form-element > .has-success > sf-widget-chooser > checkbox-component .custom-control-label", "css:finder"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Remove Empty Entities Descriptors?')]", "xpath:innerText"] + ["id=root_metadataFilters_2_removeEmptyEntitiesDescriptors", "id"], + ["css=#root_metadataFilters_2_removeEmptyEntitiesDescriptors", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_2_removeEmptyEntitiesDescriptors']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[4]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { @@ -527,21 +610,14 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "79b96f40-2677-438a-9564-62df0ea2c116", - "comment": "", - "command": "click", - "target": "css=.custom-control-label", - "targets": [], - "value": "" }, { "id": "52f5680c-c63d-411e-8332-52901f12ea3b", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(1) primitive-property:nth-child(1) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(1) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(1) primitive-property:nth-child(1) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], + ["css=.mb-4:nth-child(1) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], ["xpath=//div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'Test Metadata Provider')]", "xpath:innerText"] ], @@ -550,11 +626,11 @@ "id": "67ff44aa-1efd-4b13-a0e9-3648a09911dd", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(2) primitive-property:nth-child(1) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(2) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(2) primitive-property:nth-child(1) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[2]/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], - ["xpath=//section[2]/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:position"], + ["css=.mb-4:nth-child(2) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[2]/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], + ["xpath=//section[2]/div/div[2]/div[2]/div/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'123')]", "xpath:innerText"] ], "value": "123" @@ -568,93 +644,107 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "c5371051-48e0-4afd-9661-2db2ad0b22f0", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" }, { "id": "1067b0b4-8aff-4972-b6f5-e4479eca9150", "comment": "", "command": "waitForElementPresent", - "target": "css=.d-block > primitive-property:nth-child(1) .text-truncate", + "target": "css=.align-middle:nth-child(2)", "targets": [ - ["css=.d-block > primitive-property:nth-child(1) .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], - ["xpath=//div/span[2]", "xpath:position"] + ["css=.align-middle:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]", "xpath:idRelative"], + ["xpath=//td[2]", "xpath:position"], + ["xpath=//td[contains(.,'Test Metadata Provider')]", "xpath:innerText"] ], "value": "10000" }, { "id": "f48dd1b5-607a-485b-b1d5-03301f99b9ce", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(1) .text-truncate", + "target": "css=.align-middle:nth-child(2)", "targets": [ - ["linkText=Test Metadata Provider", "linkText"], - ["css=td > a", "css:finder"], - ["xpath=//a[contains(text(),'Test Metadata Provider')]", "xpath:link"], - ["xpath=//a[contains(@href, '/metadata/provider/4cc9924f-fd9e-4ef3-bf57-3b24eec9f27f/configuration/options')]", "xpath:href"], - ["xpath=//td[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Test Metadata Provider')]", "xpath:innerText"] + ["css=.align-middle:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]", "xpath:idRelative"], + ["xpath=//td[2]", "xpath:position"], + ["xpath=//td[contains(.,'Test Metadata Provider')]", "xpath:innerText"] ], "value": "Test Metadata Provider" }, { "id": "5eccd4e9-a451-4ec8-a9e1-1e1f8e771677", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(2) .text-truncate", + "target": "css=.align-middle:nth-child(3)", "targets": [ - ["css=.d-block > primitive-property:nth-child(2) .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property[2]/div/div/span[2]", "xpath:idRelative"], - ["xpath=//primitive-property[2]/div/div/span[2]", "xpath:position"], - ["xpath=//span[contains(.,'FileBackedHttpMetadataResolver')]", "xpath:innerText"] + ["css=.align-middle:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[3]", "xpath:idRelative"], + ["xpath=//td[3]", "xpath:position"], + ["xpath=//td[contains(.,'FileBackedHttpMetadataResolver')]", "xpath:innerText"] ], "value": "FileBackedHttpMetadataResolver" - }, { - "id": "67beda7f-7568-443b-9a60-03face9d936b", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" }, { "id": "c768c2c1-09d4-46fe-8007-42fb4b3f4aaa", "comment": "", "command": "assertText", - "target": "css=.author", + "target": "css=.align-middle:nth-child(4)", "targets": [ - ["css=.author", "css:finder"], - ["xpath=//div[@id='header']/metadata-header/div/div/h5/span[2]", "xpath:idRelative"], - ["xpath=//span[2]", "xpath:position"], - ["xpath=//span[contains(.,'admin')]", "xpath:innerText"] + ["css=.align-middle:nth-child(4)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[4]", "xpath:idRelative"], + ["xpath=//td[4]", "xpath:position"], + ["xpath=//td[contains(.,'admin')]", "xpath:innerText"] ], "value": "admin" }, { "id": "67578648-0800-4716-8c0c-27741770249a", "comment": "", "command": "click", - "target": "css=.mb-4:nth-child(1) .actions span", + "target": "linkText=Test Metadata Provider", + "targets": [ + ["linkText=Test Metadata Provider", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'Test Metadata Provider')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/595c1bdf-dd64-46ef-b731-46af5f704ef6/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Test Metadata Provider')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "5f96ff8c-2ff5-4736-9248-e9e7e948e1eb", + "comment": "", + "command": "click", + "target": "css=.mb-4:nth-child(3) .edit-link", "targets": [ - ["css=.mb-4:nth-child(1) .actions span", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div/div/button/span", "xpath:idRelative"], - ["xpath=//div/button/span", "xpath:position"], - ["xpath=//span[contains(.,'Edit')]", "xpath:innerText"] + ["css=.mb-4:nth-child(3) .edit-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div/div/button", "xpath:idRelative"], + ["xpath=//section/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Edit')]", "xpath:innerText"] ], "value": "" }, { "id": "5636ef67-71fb-4bca-ba58-7ecf926c7bf0", "comment": "", - "command": "pause", - "target": "5000", + "command": "waitForElementVisible", + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/input", "xpath:position"] + ], + "value": "30000" + }, { + "id": "b08acf09-9f27-48da-8fc8-d9a66935f627", + "comment": "", + "command": "type", + "target": "id=root_xmlId", "targets": [], "value": "" }, { "id": "7d641e58-47ce-4d20-908c-e0002ff73cfa", "comment": "", "command": "type", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ ["id=/xmlId", "id"], ["name=field38", "name"], @@ -663,23 +753,17 @@ ["xpath=//custom-string/div/input", "xpath:position"] ], "value": "123 version 2" - }, { - "id": "b78c81e9-41ac-41db-837a-0db6bd4f77eb", - "comment": "", - "command": "pause", - "target": "5000", - "targets": [], - "value": "" }, { "id": "247b04c1-e690-42bc-ae15-dfbedb44d2e9", "comment": "", "command": "click", - "target": "id=/satisfyAnyPredicates.false", + "target": "id=root_satisfyAnyPredicates-No", "targets": [ - ["id=/satisfyAnyPredicates.false", "id"], - ["css=#\\/satisfyAnyPredicates\\.false", "css:finder"], - ["xpath=//input[@id='/satisfyAnyPredicates.false']", "xpath:attributes"], - ["xpath=//div[10]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_satisfyAnyPredicates-No", "id"], + ["css=#root_satisfyAnyPredicates-No", "css:finder"], + ["xpath=//input[@id='root_satisfyAnyPredicates-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div[3]/div[9]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { @@ -696,20 +780,29 @@ }, { "id": "eb08417b-b8f0-46dc-9e32-e8daf3bc205d", "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" + "command": "waitForElementVisible", + "target": "linkText=Version History", + "targets": [ + ["linkText=Version History", "linkText"], + ["css=div:nth-child(1) > .btn-link:nth-child(1)", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/595c1bdf-dd64-46ef-b731-46af5f704ef6/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] + ], + "value": "30000" }, { "id": "ea880e6a-498a-427a-bc08-8058137d62e0", "comment": "", "command": "click", - "target": "css=.btn-link:nth-child(1)", + "target": "linkText=Version History", "targets": [ - ["css=.btn-link:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/a/translate-i18n", "xpath:idRelative"], - ["xpath=//div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Version History')]", "xpath:innerText"] + ["linkText=Version History", "linkText"], + ["css=div:nth-child(1) > .btn-link:nth-child(1)", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/595c1bdf-dd64-46ef-b731-46af5f704ef6/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] ], "value": "" }, { @@ -748,48 +841,69 @@ "id": "ce328b6a-f6ee-45e9-975c-5a5608f373dc", "comment": "", "command": "waitForElementVisible", - "target": "css=.d-block > primitive-property:nth-child(2) .d-block:nth-child(2)", - "targets": [], + "target": "css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", + "targets": [ + ["css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[3]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'123 version 2')]", "xpath:innerText"] + ], "value": "10000" }, { "id": "68103f0e-e3f1-419b-903d-5d8c30bc6700", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(4) .d-block:nth-child(2)", + "target": "css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", "targets": [ - ["css=.d-block > primitive-property:nth-child(4) .d-block:nth-child(2)", "css:finder"], - ["xpath=//primitive-property[4]/div/span[2]", "xpath:position"], + ["css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[3]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'123 version 2')]", "xpath:innerText"] ], "value": "123 version 2" + }, { + "id": "7c42f2aa-9628-43e0-8eda-92105288270c", + "comment": "", + "command": "waitForElementVisible", + "target": "css=div:nth-child(3) > .bg-diff > .d-block:nth-child(3)", + "targets": [ + ["css=div:nth-child(3) > .bg-diff > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[3]/div/span[3]", "xpath:idRelative"], + ["xpath=//div[3]/div/span[3]", "xpath:position"] + ], + "value": "30000" }, { "id": "a13198b9-7827-47e2-ade3-143b981d34ee", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(4) .d-block:nth-child(3)", + "target": "css=div:nth-child(3) > .bg-diff > .d-block:nth-child(3)", "targets": [ - ["css=.d-block > primitive-property:nth-child(4) .d-block:nth-child(3)", "css:finder"], - ["xpath=//primitive-property[4]/div/span[3]", "xpath:position"] + ["css=div:nth-child(3) > .bg-diff > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[3]/div/span[3]", "xpath:idRelative"], + ["xpath=//div[3]/div/span[3]", "xpath:position"] ], "value": "123" }, { "id": "3d83741c-299e-4fcb-9ce6-4b7291c423a4", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(12) .d-block:nth-child(2)", + "target": "css=div:nth-child(11) > .bg-diff > .d-block:nth-child(2)", "targets": [ - ["css=.d-block > primitive-property:nth-child(12) .d-block:nth-child(2)", "css:finder"], - ["xpath=//primitive-property[12]/div/span[2]", "xpath:position"] + ["css=div:nth-child(11) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[11]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[11]/div/span[2]", "xpath:position"] ], "value": "false" }, { "id": "190cc157-d427-4046-aff2-180392395ad3", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(12) .d-block:nth-child(3)", + "target": "css=div:nth-child(11) > .bg-diff > .d-block:nth-child(3)", "targets": [ - ["css=.d-block > primitive-property:nth-child(12) .d-block:nth-child(3)", "css:finder"], - ["xpath=//primitive-property[12]/div/span[3]", "xpath:position"] + ["css=div:nth-child(11) > .bg-diff > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[11]/div/span[3]", "xpath:idRelative"], + ["xpath=//div[11]/div/span[3]", "xpath:position"], + ["xpath=//span[contains(.,'true')]", "xpath:innerText"] ], "value": "true" }, { @@ -818,6 +932,13 @@ ["xpath=//a[contains(.,'Metadata Providers')]", "xpath:innerText"] ], "value": "" + }, { + "id": "d0be2c9b-8162-4315-bcfe-230d914b9748", + "comment": "", + "command": "waitForElementPresent", + "target": "linkText=Test Metadata Provider", + "targets": [], + "value": "30000" }, { "id": "5dd3952e-d716-4d63-8a08-23be4983da23", "comment": "", @@ -832,15 +953,23 @@ ["xpath=//a[contains(.,'Test Metadata Provider')]", "xpath:innerText"] ], "value": "" + }, { + "id": "5fd53667-6f71-4305-9b54-2eb00407ad82", + "comment": "", + "command": "waitForElementPresent", + "target": "css=.mb-4:nth-child(6) .edit-link", + "targets": [], + "value": "30000" }, { "id": "c9341f6f-4d13-4378-bb5c-0079e7535008", "comment": "", "command": "click", - "target": "css=.mb-4:nth-child(4) .actions span", + "target": "css=.mb-4:nth-child(6) .edit-link", "targets": [ - ["css=.mb-4:nth-child(4) .actions span", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[4]/div/div/div/button/span", "xpath:idRelative"], - ["xpath=//section[4]/div/div/div/button/span", "xpath:position"] + ["css=.mb-4:nth-child(6) .edit-link", "css:finder"], + ["xpath=(//button[@type='button'])[8]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[4]/div/div/div/button", "xpath:idRelative"], + ["xpath=//section[4]/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -854,11 +983,13 @@ "id": "1cde012c-d521-4fd5-a7d5-7a680bba0e7b", "comment": "", "command": "click", - "target": "css=.slider", + "target": "id=custom-switch", "targets": [ - ["css=.slider", "css:finder"], - ["xpath=//toggle-switch[@id='toggle']/label/span", "xpath:idRelative"], - ["xpath=//label/span", "xpath:position"] + ["id=custom-switch", "id"], + ["css=#custom-switch", "css:finder"], + ["xpath=//input[@id='custom-switch']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { @@ -872,13 +1003,12 @@ "id": "78967fb5-8f61-46ce-9c14-9b6ceb12b03a", "comment": "", "command": "click", - "target": "css=#\\/httpMetadataResolverAttributes\\/connectionRequestTimeout-container .btn", + "target": "css=.form-group:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/httpMetadataResolverAttributes\\/connectionRequestTimeout-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/httpMetadataResolverAttributes/connectionRequestTimeout-container']/div/div/button", "xpath:idRelative"], - ["xpath=//auto-complete/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.form-group:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div[2]/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -892,14 +1022,16 @@ "id": "8ba62572-354d-47f4-bb72-f9309c1cb201", "comment": "", "command": "click", - "target": "id=/httpMetadataResolverAttributes/connectionRequestTimeout__option--1", + "target": "id=option-selector-root_httpMetadataResolverAttributes_connectionRequestTimeout-item-1", "targets": [ - ["id=/httpMetadataResolverAttributes/connectionRequestTimeout__option--1", "id"], - ["css=#\\/httpMetadataResolverAttributes\\/connectionRequestTimeout__option--1", "css:finder"], - ["xpath=//li[@id='/httpMetadataResolverAttributes/connectionRequestTimeout__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/httpMetadataResolverAttributes/connectionRequestTimeout__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'PT30S')]", "xpath:innerText"] + ["id=option-selector-root_httpMetadataResolverAttributes_connectionRequestTimeout-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_httpMetadataResolverAttributes_connectionRequestTimeout-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_httpMetadataResolverAttributes_connectionRequestTimeout-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_httpMetadataResolverAttributes_connectionRequestTimeout']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { @@ -913,12 +1045,12 @@ "id": "d7406190-0bb0-4df8-9c0b-7e393952b6a2", "comment": "", "command": "click", - "target": "css=#\\/httpMetadataResolverAttributes\\/connectionTimeout-container .btn", + "target": "css=.form-group:nth-child(3) .toggle-button", "targets": [ - ["css=#\\/httpMetadataResolverAttributes\\/connectionTimeout-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/httpMetadataResolverAttributes/connectionTimeout-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.form-group:nth-child(3) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[15]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div[2]/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div[2]/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -932,13 +1064,16 @@ "id": "337ac160-7990-425f-83da-2788d8a0985e", "comment": "", "command": "click", - "target": "id=/httpMetadataResolverAttributes/connectionTimeout__option--2", + "target": "id=option-selector-root_httpMetadataResolverAttributes_connectionTimeout-item-2", "targets": [ - ["id=/httpMetadataResolverAttributes/connectionTimeout__option--2", "id"], - ["css=#\\/httpMetadataResolverAttributes\\/connectionTimeout__option--2", "css:finder"], - ["xpath=//li[@id='/httpMetadataResolverAttributes/connectionTimeout__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/httpMetadataResolverAttributes/connectionTimeout__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_httpMetadataResolverAttributes_connectionTimeout-item-2", "id"], + ["linkText=PT1M", "linkText"], + ["css=#option-selector-root_httpMetadataResolverAttributes_connectionTimeout-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_httpMetadataResolverAttributes_connectionTimeout-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_httpMetadataResolverAttributes_connectionTimeout']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'PT1M')]", "xpath:innerText"] ], "value": "" }, { @@ -952,12 +1087,12 @@ "id": "19182110-0f86-4601-ae12-0b90967ef68a", "comment": "", "command": "click", - "target": "css=#\\/httpMetadataResolverAttributes\\/socketTimeout-container .btn", + "target": "css=.form-group:nth-child(4) .toggle-button", "targets": [ - ["css=#\\/httpMetadataResolverAttributes\\/socketTimeout-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], - ["xpath=//div[@id='/httpMetadataResolverAttributes/socketTimeout-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.form-group:nth-child(4) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[17]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div[2]/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div[3]/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -971,13 +1106,16 @@ "id": "34693225-4754-4b27-92ee-3e37304a8cd7", "comment": "", "command": "click", - "target": "id=/httpMetadataResolverAttributes/socketTimeout__option--3", + "target": "id=option-selector-root_httpMetadataResolverAttributes_socketTimeout-item-3", "targets": [ - ["id=/httpMetadataResolverAttributes/socketTimeout__option--3", "id"], - ["css=#\\/httpMetadataResolverAttributes\\/socketTimeout__option--3", "css:finder"], - ["xpath=//li[@id='/httpMetadataResolverAttributes/socketTimeout__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/httpMetadataResolverAttributes/socketTimeout__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_httpMetadataResolverAttributes_socketTimeout-item-3", "id"], + ["linkText=PT10M", "linkText"], + ["css=#option-selector-root_httpMetadataResolverAttributes_socketTimeout-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_httpMetadataResolverAttributes_socketTimeout-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_httpMetadataResolverAttributes_socketTimeout']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'PT10M')]", "xpath:innerText"] ], "value": "" }, { @@ -995,37 +1133,28 @@ "id": "c3ad6c24-736a-492a-8952-b368e123d8e1", "comment": "", "command": "waitForElementVisible", - "target": "css=.d-block > primitive-property:nth-child(1) .text-truncate", + "target": "linkText=Version History", "targets": [ - ["css=.d-block > primitive-property:nth-child(1) .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], - ["xpath=//div/span[2]", "xpath:position"] + ["linkText=Version History", "linkText"], + ["css=div:nth-child(1) > .btn-link:nth-child(1)", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/595c1bdf-dd64-46ef-b731-46af5f704ef6/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] ], "value": "10000" - }, { - "id": "8868c054-2e6a-403e-ba2b-499a56730d71", - "comment": "", - "command": "click", - "target": "css=.d-block > primitive-property:nth-child(1) .text-truncate", - "targets": [ - ["linkText=Test Metadata Provider", "linkText"], - ["css=td > a", "css:finder"], - ["xpath=//a[contains(text(),'Test Metadata Provider')]", "xpath:link"], - ["xpath=//a[contains(@href, '/metadata/provider/eb0ee617-33e2-4a31-83a5-7c42515c3b4f/configuration/options')]", "xpath:href"], - ["xpath=//td[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Test Metadata Provider')]", "xpath:innerText"] - ], - "value": "" }, { "id": "0092cd5c-a885-4a48-a233-b3af447b02bc", "comment": "", "command": "click", - "target": "css=.btn-link:nth-child(1)", + "target": "linkText=Version History", "targets": [ - ["css=.btn-link:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/a/translate-i18n", "xpath:idRelative"], - ["xpath=//div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Version History')]", "xpath:innerText"] + ["linkText=Version History", "linkText"], + ["css=div:nth-child(1) > .btn-link:nth-child(1)", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/595c1bdf-dd64-46ef-b731-46af5f704ef6/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] ], "value": "" }, { @@ -1064,27 +1193,33 @@ "id": "9f1380c3-2b99-4b7d-90b7-f20d4fe431d3", "comment": "", "command": "waitForElementVisible", - "target": "css=.mb-4:nth-child(4) primitive-property:nth-child(2) .d-block:nth-child(2)", - "targets": [], + "target": "css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", + "targets": [ + ["css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[4]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[4]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:position"] + ], "value": "10000" }, { "id": "8a2c6435-d77b-4c87-8e0e-e1ae6d4629b9", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(4) primitive-property:nth-child(2) .d-block:nth-child(2)", + "target": "css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(4) primitive-property:nth-child(2) .d-block:nth-child(2)", "css:finder"], - ["xpath=//section[4]/div/div[2]/object-property/object-property/primitive-property[2]/div/span[2]", "xpath:position"] + ["css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[4]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[4]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:position"] ], "value": "PT30S" }, { "id": "0687fe3f-c1af-4a5a-9708-09b7b92734bc", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(4) primitive-property:nth-child(3) .d-block:nth-child(2)", + "target": "css=div:nth-child(4) > .bg-diff > .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(4) primitive-property:nth-child(3) .d-block:nth-child(2)", "css:finder"], - ["xpath=//section[4]/div/div[2]/object-property/object-property/primitive-property[3]/div/span[2]", "xpath:position"], + ["css=div:nth-child(4) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[4]/div/div[2]/div[2]/div/div[4]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[4]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'PT1M')]", "xpath:innerText"] ], "value": "PT1M" @@ -1092,31 +1227,25 @@ "id": "a007794f-ab91-47b8-b470-e4294e47a2a7", "comment": "", "command": "assertText", - "target": "css=object-property:nth-child(1) > primitive-property:nth-child(4) .d-block:nth-child(2)", + "target": "css=div:nth-child(5) > .bg-diff > .d-block:nth-child(2)", "targets": [ - ["css=object-property:nth-child(1) > primitive-property:nth-child(4) .d-block:nth-child(2)", "css:finder"], - ["xpath=//object-property/object-property/primitive-property[4]/div/span[2]", "xpath:position"] + ["css=div:nth-child(5) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[4]/div/div[2]/div[2]/div/div[5]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[5]/div/span[2]", "xpath:position"] ], "value": "PT10M" - }, { - "id": "5279bf64-46c1-4376-a527-e19e217b42fa", - "comment": "", - "command": "assertText", - "target": "css=object-property:nth-child(1) > primitive-property:nth-child(5) .d-block:nth-child(2)", - "targets": [ - ["css=object-property:nth-child(1) > primitive-property:nth-child(5) .d-block:nth-child(2)", "css:finder"], - ["xpath=//object-property/object-property/primitive-property[5]/div/span[2]", "xpath:position"] - ], - "value": "false" }, { "id": "ce9e6e24-d05a-41ee-ba62-6b7199503a2e", "comment": "", "command": "click", - "target": "css=.btn-link", + "target": "linkText=Version History", "targets": [ - ["css=.btn-link > translate-i18n", "css:finder"], - ["xpath=//div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Version History')]", "xpath:innerText"] + ["linkText=Version History", "linkText"], + ["css=.btn-link", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/595c1bdf-dd64-46ef-b731-46af5f704ef6/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] ], "value": "" }, { @@ -1138,28 +1267,45 @@ ], "value": "" }, { - "id": "9d0c944b-99ac-44ed-b199-d859bfbe50bb", + "id": "37826edc-e582-4523-add3-e8d383b23ecd", "comment": "", "command": "click", - "target": "css=.btn-primary", + "target": "linkText=Restore", "targets": [ + ["linkText=Restore", "linkText"], ["css=.btn-primary", "css:finder"], - ["xpath=//button[2]", "xpath:position"], - ["xpath=//button[contains(.,'Restore')]", "xpath:innerText"] + ["xpath=//a[contains(text(),'Restore')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/div/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/8be54754-c2f4-4da8-989e-2f50acd53961/restore/1016/common/edit')]", "xpath:href"], + ["xpath=//section/div/div/div/div/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Restore')]", "xpath:innerText"] ], "value": "" }, { "id": "e58a9927-7292-4f25-97da-e478dd9bfc22", "comment": "", - "command": "pause", - "target": "3000", + "command": "waitForElementVisible", + "target": "id=root_name", + "targets": [ + ["id=root_name", "id"], + ["css=.mb-0 > #root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "30000" + }, { + "id": "5fb05087-2c4c-476d-b96b-243a12e9d2dd", + "comment": "", + "command": "type", + "target": "id=root_name", "targets": [], "value": "" }, { "id": "5cc819ab-5673-476a-9cc4-b0bfb95b5944", "comment": "", "command": "type", - "target": "id=/name", + "target": "id=root_name", "targets": [ ["id=/name", "id"], ["name=field144", "name"], @@ -1182,18 +1328,22 @@ }, { "id": "1efd6980-3e1c-4d9a-974e-d4e36cffbf73", "comment": "", - "command": "pause", - "target": "3000", - "targets": [], - "value": "" + "command": "waitForElementVisible", + "target": "css=div:nth-child(2) > div:nth-child(1) > .d-flex > .text-truncate", + "targets": [ + ["css=div:nth-child(2) > div:nth-child(1) > .d-flex > .text-truncate", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], + ["xpath=//div/span[2]", "xpath:position"] + ], + "value": "30000" }, { "id": "de88473e-4c7c-4769-80d8-8552562c47f2", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(1) .d-block:nth-child(2)", + "target": "css=div:nth-child(2) > div:nth-child(1) > .d-flex > .text-truncate", "targets": [ - ["css=.d-block > primitive-property:nth-child(1) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/span[2]", "xpath:idRelative"], + ["css=div:nth-child(2) > div:nth-child(1) > .d-flex > .text-truncate", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], ["xpath=//div/span[2]", "xpath:position"] ], "value": "Test Metadata Provider - Restored" @@ -1201,11 +1351,11 @@ "id": "30aae338-393c-4312-8ccc-f3fd8acb3aad", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(4) .d-block:nth-child(2)", + "target": "css=div:nth-child(2) > div:nth-child(3) .text-truncate", "targets": [ - ["css=.d-block > primitive-property:nth-child(4) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property[4]/div/span[2]", "xpath:idRelative"], - ["xpath=//primitive-property[4]/div/span[2]", "xpath:position"], + ["css=div:nth-child(2) > div:nth-child(3) .text-truncate", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[3]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'123 version 2')]", "xpath:innerText"] ], "value": "123 version 2" @@ -1213,12 +1363,14 @@ "id": "9a8a3d25-0adf-4e20-81fd-cbce85a5d3d5", "comment": "", "command": "click", - "target": "css=.btn-link:nth-child(1)", + "target": "linkText=Version History", "targets": [ - ["css=.btn-link:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/a/translate-i18n", "xpath:idRelative"], - ["xpath=//div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Version History')]", "xpath:innerText"] + ["linkText=Version History", "linkText"], + ["css=div:nth-child(1) > .btn-link:nth-child(1)", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/595c1bdf-dd64-46ef-b731-46af5f704ef6/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] ], "value": "" }, { @@ -1264,37 +1416,56 @@ "id": "20bfdc06-e12b-4287-ad14-3ca578d84de1", "comment": "", "command": "waitForElementVisible", - "target": "css=.d-block > primitive-property:nth-child(4) .d-block:nth-child(2)", - "targets": [], + "target": "css=div:nth-child(2) > div:nth-child(3) .d-block:nth-child(2)", + "targets": [ + ["css=div:nth-child(2) > div:nth-child(3) .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[3]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'123 version 2')]", "xpath:innerText"] + ], "value": "10000" }, { "id": "a6c78ab6-5584-490f-9bfd-b1eda70b864b", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(4) .d-block:nth-child(2)", + "target": "css=div:nth-child(2) > div:nth-child(3) .d-block:nth-child(2)", "targets": [ - ["css=.d-block > primitive-property:nth-child(4) .d-block:nth-child(2)", "css:finder"], - ["xpath=//primitive-property[4]/div/span[2]", "xpath:position"], + ["css=div:nth-child(2) > div:nth-child(3) .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[3]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'123 version 2')]", "xpath:innerText"] ], "value": "123 version 2" + }, { + "id": "e84a86f4-7ff4-423c-a941-52641274c276", + "comment": "", + "command": "waitForElementVisible", + "target": "css=div:nth-child(2) > div:nth-child(3) .d-block:nth-child(3)", + "targets": [ + ["css=div:nth-child(2) > div:nth-child(3) .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[3]/div/span[3]", "xpath:idRelative"], + ["xpath=//div[3]/div/span[3]", "xpath:position"] + ], + "value": "30000" }, { "id": "17832263-6fd7-4df8-86ba-f3e2fdc5d8ce", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(4) .d-block:nth-child(3)", + "target": "css=div:nth-child(2) > div:nth-child(3) .d-block:nth-child(3)", "targets": [ - ["css=.d-block > primitive-property:nth-child(4) .d-block:nth-child(3)", "css:finder"], - ["xpath=//primitive-property[4]/div/span[3]", "xpath:position"] + ["css=div:nth-child(2) > div:nth-child(3) .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[3]/div/span[3]", "xpath:idRelative"], + ["xpath=//div[3]/div/span[3]", "xpath:position"] ], "value": "123 version 2" }, { "id": "f0923b86-0cdd-44af-b24e-8d09a65710d6", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(1) .d-block:nth-child(2)", + "target": "css=.bg-diff > .d-block:nth-child(2)", "targets": [ - ["css=.d-block > primitive-property:nth-child(1) .d-block:nth-child(2)", "css:finder"], + ["css=.bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], ["xpath=//div/span[2]", "xpath:position"] ], "value": "Test Metadata Provider - Restored" @@ -1302,19 +1473,13 @@ "id": "aecb6372-976e-4a6e-ba97-88afc017db68", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(1) .d-block:nth-child(3)", + "target": "css=.bg-diff > .d-block:nth-child(3)", "targets": [ - ["css=.d-block > primitive-property:nth-child(1) .d-block:nth-child(3)", "css:finder"], + ["css=.bg-diff > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[3]", "xpath:idRelative"], ["xpath=//span[3]", "xpath:position"] ], "value": "Test Metadata Provider" - }, { - "id": "03d7493c-75c4-4923-8330-686b12ff7a5b", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1391.side b/backend/src/integration/resources/SHIBUI-1391.side index 77aef6107..d2c80fcac 100644 --- a/backend/src/integration/resources/SHIBUI-1391.side +++ b/backend/src/integration/resources/SHIBUI-1391.side @@ -41,51 +41,91 @@ "id": "358c31ea-fab8-4709-9b25-d9e5e82e123c", "comment": "", "command": "click", - "target": "name=submit", + "target": "css=.btn", "targets": [ - ["name=submit", "name"], - ["css=td:nth-child(1) > input", "css:finder"], - ["xpath=//input[@name='submit']", "xpath:attributes"], - ["xpath=//tr[3]/td/input", "xpath:position"] + ["css=.btn", "css:finder"], + ["xpath=//button[@type='submit']", "xpath:attributes"], + ["xpath=//button", "xpath:position"], + ["xpath=//button[contains(.,'Sign in')]", "xpath:innerText"] ], "value": "" + }, { + "id": "af27eb53-8a60-4d31-a7af-7d56e310c528", + "comment": "", + "command": "waitForElementVisible", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "4e6e0e31-5b73-4ff3-95fd-db29ee329512", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "73195747-e96c-4b7b-8969-de1036a4c023", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "1131a200-6ce5-41ea-9ed7-1509a7a84d46", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "fdea3214-f0e0-4f13-9d5d-e07ef92d71f1", "comment": "", "command": "click", - "target": "css=#addNewDropdown", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=#addNewDropdown > translate-i18n", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/translate-i18n", "xpath:idRelative"], - ["xpath=//translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Add New')]", "xpath:innerText"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "2c40ac99-5e92-4c1c-923a-5a6100cadf43", "comment": "", "command": "click", - "target": "linkText=Metadata Provider", + "target": "id=metadata-nav-dropdown-provider", "targets": [ - ["linkText=Metadata Provider", "linkText"], - ["css=.nav-link:nth-child(2)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a[2]", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[3]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"] + ["id=metadata-nav-dropdown-provider", "id"], + ["linkText=Add a new metadata provider", "linkText"], + ["css=#metadata-nav-dropdown-provider", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata provider')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-provider']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/new')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata provider')]", "xpath:innerText"] ], "value": "" }, { "id": "7a42de04-995f-45aa-ba3f-095900a564ec", "comment": "", "command": "waitForElementVisible", - "target": "id=/name", - "targets": [], + "target": "name=name", + "targets": [ + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "b2725ef6-b394-4f87-a2a5-031be085cedb", "comment": "", "command": "type", - "target": "id=/name", + "target": "name=name", "targets": [ ["id=/name", "id"], ["name=field4", "name"], @@ -94,19 +134,26 @@ ["xpath=//input", "xpath:position"] ], "value": "File Backed HTTP Metadata Provider" + }, { + "id": "cf0975b7-09f2-4c28-ae07-db63143e18ea", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" }, { "id": "ca36b018-a4df-43d1-9fbd-973d6653d3e0", "comment": "", "command": "select", - "target": "id=/type", + "target": "name=type", "targets": [ - ["id=/type", "id"], - ["name=field2", "name"], - ["css=#\\/type", "css:finder"], - ["xpath=//select[@id='/type']", "xpath:attributes"], + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div[2]/select", "xpath:idRelative"], ["xpath=//select", "xpath:position"] ], - "value": "label=FileBackedHttpMetadataProvider" + "value": "label=FileBackedHttpMetadataResolver" }, { "id": "e5d1d696-3029-4f9d-ad53-2e60b4789935", "comment": "", @@ -121,19 +168,25 @@ "id": "352f066f-c2af-4735-81b1-5440ba7a3432", "comment": "", "command": "waitForElementVisible", - "target": "id=/xmlId", - "targets": [], + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "e7462621-f4e4-4512-b200-20afa5685fc6", "comment": "", "command": "type", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ - ["id=/xmlId", "id"], - ["name=field7", "name"], - ["css=#\\/xmlId", "css:finder"], - ["xpath=//input[@id='/xmlId']", "xpath:attributes"], + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "12345" @@ -141,96 +194,94 @@ "id": "7bfaa2a7-c66d-4e36-b1f4-1de30b02ebd0", "comment": "", "command": "type", - "target": "id=/metadataURL", + "target": "id=root_metadataURL", "targets": [ - ["id=/metadataURL", "id"], - ["name=field8", "name"], - ["css=#\\/metadataURL", "css:finder"], - ["xpath=//input[@id='/metadataURL']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_metadataURL", "id"], + ["css=#root_metadataURL", "css:finder"], + ["xpath=//input[@id='root_metadataURL']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "https://idp.unicon.net/idp/shibboleth" }, { "id": "047e1ea4-e28c-4b1b-86fc-ff19a3c0efcc", "comment": "", "command": "click", - "target": "id=/initializeFromBackupFile.false", + "target": "id=root_initializeFromBackupFile-No", "targets": [ - ["id=/initializeFromBackupFile.false", "id"], - ["css=#\\/initializeFromBackupFile\\.false", "css:finder"], - ["xpath=//input[@id='/initializeFromBackupFile.false']", "xpath:attributes"], - ["xpath=//div[2]/label/input", "xpath:position"] + ["id=root_initializeFromBackupFile-No", "id"], + ["css=#root_initializeFromBackupFile-No", "css:finder"], + ["xpath=//input[@id='root_initializeFromBackupFile-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[3]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] ], "value": "" }, { "id": "34124b74-7b90-424a-9219-1f0bfbf06b70", "comment": "", "command": "type", - "target": "id=/backingFile", + "target": "id=root_backingFile", "targets": [ - ["id=/backingFile", "id"], - ["name=field10", "name"], - ["css=#\\/backingFile", "css:finder"], - ["xpath=//input[@id='/backingFile']", "xpath:attributes"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_backingFile", "id"], + ["css=#root_backingFile", "css:finder"], + ["xpath=//input[@id='root_backingFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] ], "value": "%{idp.home}/foo.txt" }, { "id": "0668032d-608b-4a01-9ac8-e4e2ac058294", "comment": "", "command": "click", - "target": "css=.btn-outline-secondary", + "target": "css=.toggle-button", "targets": [ - ["css=.btn-outline-secondary", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/backupFileInitNextRefreshDelay-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[5]/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/button", "xpath:position"] ], "value": "" - }, { - "id": "5aa1d849-42b9-45e8-ac74-d3df1f9458db", - "comment": "", - "command": "waitForElementVisible", - "target": "id=/backupFileInitNextRefreshDelay__option--1", - "targets": [], - "value": "10000" }, { "id": "35dfa0f8-c0f2-4356-a6b0-18b5dc35337b", "comment": "", "command": "click", - "target": "id=/backupFileInitNextRefreshDelay__option--1", + "target": "id=option-selector-root_backupFileInitNextRefreshDelay-item-1", "targets": [ - ["id=/backupFileInitNextRefreshDelay__option--1", "id"], - ["css=#\\/backupFileInitNextRefreshDelay__option--1", "css:finder"], - ["xpath=//li[@id='/backupFileInitNextRefreshDelay__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/backupFileInitNextRefreshDelay__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'PT30S')]", "xpath:innerText"] + ["id=option-selector-root_backupFileInitNextRefreshDelay-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_backupFileInitNextRefreshDelay-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_backupFileInitNextRefreshDelay-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_backupFileInitNextRefreshDelay']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { "id": "b4d0a551-3bc1-466f-b204-ec7164af44ec", "comment": "", "command": "click", - "target": "id=/failFastInitialization.false", + "target": "id=root_failFastInitialization-No", "targets": [ - ["id=/failFastInitialization.false", "id"], - ["css=#\\/failFastInitialization\\.false", "css:finder"], - ["xpath=//input[@id='/failFastInitialization.false']", "xpath:attributes"], - ["xpath=//div[7]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_failFastInitialization-No", "id"], + ["css=#root_failFastInitialization-No", "css:finder"], + ["xpath=//input[@id='root_failFastInitialization-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[7]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "bef80dbb-25a6-4381-8b0e-331faaeb4392", "comment": "", "command": "click", - "target": "id=/satisfyAnyPredicates.true", + "target": "id=root_satisfyAnyPredicates-Yes", "targets": [ - ["id=/satisfyAnyPredicates.true", "id"], - ["css=#\\/satisfyAnyPredicates\\.true", "css:finder"], - ["xpath=//input[@id='/satisfyAnyPredicates.true']", "xpath:attributes"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div/label/input", "xpath:position"] + ["id=root_satisfyAnyPredicates-Yes", "id"], + ["name=root_satisfyAnyPredicates", "name"], + ["css=#root_satisfyAnyPredicates-Yes", "css:finder"], + ["xpath=//input[@id='root_satisfyAnyPredicates-Yes']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[9]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/input", "xpath:position"] ], "value": "" }, { @@ -250,43 +301,6 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "44e705a1-f284-4303-a0b6-c4bc9896c78d", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "347b93b2-2fc6-43fb-b674-f3ef40d0adab", - "comment": "", - "command": "click", - "target": "css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", - "targets": [ - ["css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/reloadableMetadataResolverAttributes/minRefreshDelay-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "f78882a2-fd36-444f-b502-045b5ffb26e1", - "comment": "", - "command": "pause", - "target": "500", - "targets": [], - "value": "" - }, { - "id": "07b46683-5914-4795-9f2a-b8f5316858d7", - "comment": "", - "command": "click", - "target": "css=.section-body", - "targets": [ - ["css=.section-body", "css:finder"], - ["xpath=//section/div[2]", "xpath:position"] - ], - "value": "" }, { "id": "ab04d081-59ad-4dab-8af4-ff313def82c0", "comment": "", @@ -298,13 +312,12 @@ "id": "239b5688-ecdd-4530-ba5c-379ea7490f04", "comment": "", "command": "click", - "target": "css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", + "target": "css=.row:nth-child(1) > .col-12 .toggle-button", "targets": [ - ["css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/reloadableMetadataResolverAttributes/minRefreshDelay-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.row:nth-child(1) > .col-12 .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -318,14 +331,16 @@ "id": "d5bc189f-eb4f-4378-9507-c82d98d8ecb4", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/minRefreshDelay__option--0", + "target": "id=option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-0", "targets": [ - ["id=/reloadableMetadataResolverAttributes/minRefreshDelay__option--0", "id"], - ["css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay__option--0", "css:finder"], - ["xpath=//li[@id='/reloadableMetadataResolverAttributes/minRefreshDelay__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/reloadableMetadataResolverAttributes/minRefreshDelay__listbox']/li", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li", "xpath:position"], - ["xpath=//li[contains(.,'PT0S')]", "xpath:innerText"] + ["id=option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-0", "id"], + ["linkText=PT0S", "linkText"], + ["css=#option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'PT0S')]", "xpath:innerText"] ], "value": "" }, { @@ -339,12 +354,12 @@ "id": "618cc5f1-417b-4bc6-9388-3238f2304904", "comment": "", "command": "click", - "target": "css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay-container .btn", + "target": "css=.row:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.row:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -358,39 +373,42 @@ "id": "a89f1b4d-10bd-48f7-9b97-865710cfe01f", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/maxRefreshDelay__option--2", + "target": "id=option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-2", "targets": [ - ["id=/reloadableMetadataResolverAttributes/maxRefreshDelay__option--2", "id"], - ["css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay__option--2", "css:finder"], - ["xpath=//li[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-2", "id"], + ["linkText=PT1M", "linkText"], + ["css=#option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'PT1M')]", "xpath:innerText"] ], "value": "" }, { "id": "143b781c-56ae-48c6-a7f5-8c93953f6095", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "targets": [ - ["id=/reloadableMetadataResolverAttributes/refreshDelayFactor", "id"], - ["name=field20", "name"], - ["css=#\\/reloadableMetadataResolverAttributes\\/refreshDelayFactor", "css:finder"], - ["xpath=//input[@id='/reloadableMetadataResolverAttributes/refreshDelayFactor']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "id"], + ["css=#root_reloadableMetadataResolverAttributes_refreshDelayFactor", "css:finder"], + ["xpath=//input[@id='root_reloadableMetadataResolverAttributes_refreshDelayFactor']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "dcd01c7a-f733-4977-9cc2-e9084903e079", "comment": "", "command": "type", - "target": "id=/reloadableMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "targets": [ - ["id=/reloadableMetadataResolverAttributes/refreshDelayFactor", "id"], - ["name=field20", "name"], - ["css=#\\/reloadableMetadataResolverAttributes\\/refreshDelayFactor", "css:finder"], - ["xpath=//input[@id='/reloadableMetadataResolverAttributes/refreshDelayFactor']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "id"], + ["css=#root_reloadableMetadataResolverAttributes_refreshDelayFactor", "css:finder"], + ["xpath=//input[@id='root_reloadableMetadataResolverAttributes_refreshDelayFactor']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "0.5" }, { @@ -407,145 +425,132 @@ "id": "363af92e-0327-47b9-918c-1560adab40cc", "comment": "", "command": "click", - "target": "css=.btn-outline-secondary", + "target": "css=.toggle-button", "targets": [ - ["css=.btn-outline-secondary", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div/div/div/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" }, { "id": "a4470d6f-04a7-4c4b-8c1e-70cff2f35e8a", "comment": "", "command": "click", - "target": "id=/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1", + "target": "id=option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "targets": [ - ["id=/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1", "id"], - ["css=#\\/metadataFilters\\/RequiredValidUntil\\/maxValidityInterval__option--1", "css:finder"], - ["xpath=//li[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'P14D')]", "xpath:innerText"] + ["id=option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_metadataFilters_0_maxValidityInterval-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_metadataFilters_0_maxValidityInterval']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { "id": "4530c1b4-8f27-4272-9633-c792a3a54f90", "comment": "", "command": "click", - "target": "css=#\\/metadataFilters\\/SignatureValidation\\/requireSignedRoot\\.parent > .custom-control-label", + "target": "id=root_metadataFilters_1_requireSignedRoot", "targets": [ - ["css=#\\/metadataFilters\\/SignatureValidation\\/requireSignedRoot\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/metadataFilters/SignatureValidation/requireSignedRoot.parent']/label", "xpath:idRelative"], - ["xpath=//div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Require Signed Root')]", "xpath:innerText"] + ["id=root_metadataFilters_1_requireSignedRoot", "id"], + ["css=#root_metadataFilters_1_requireSignedRoot", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_1_requireSignedRoot']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "10cd8cee-fc6a-4e5b-a11b-a7b0a9338f5d", "comment": "", "command": "type", - "target": "id=/metadataFilters/SignatureValidation/certificateFile", + "target": "id=root_metadataFilters_1_certificateFile", "targets": [ - ["id=/metadataFilters/SignatureValidation/certificateFile", "id"], - ["name=field27", "name"], - ["css=#\\/metadataFilters\\/SignatureValidation\\/certificateFile", "css:finder"], - ["xpath=//input[@id='/metadataFilters/SignatureValidation/certificateFile']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_metadataFilters_1_certificateFile", "id"], + ["css=#root_metadataFilters_1_certificateFile", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_1_certificateFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "%{idp.home}/foo2.txt" - }, { - "id": "a3ce889f-0607-4071-bd39-25b169c30114", - "comment": "", - "command": "click", - "target": "css=div:nth-child(3) > sf-form-element .bg-light", - "targets": [ - ["css=div:nth-child(3) > sf-form-element .bg-light", "css:finder"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/fieldset-object/div/div/fieldset/div", "xpath:position"] - ], - "value": "" }, { "id": "f205ec23-b433-44bb-af80-e72330b4c7a3", "comment": "", "command": "click", - "target": "css=.fa-plus", + "target": "css=.array-add-button", "targets": [ - ["css=.fa-plus", "css:finder"], - ["xpath=//array-component/div/div/button/i", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "4dae6914-ae68-45e2-b332-cc4c1ac71e43", "comment": "", "command": "select", - "target": "id=/metadataFilters/EntityRoleWhiteList/retainedRoles/0", - "targets": [], - "value": "label=SPSSODescriptor" - }, { - "id": "4b257d69-1948-4c5f-a88d-b1bfa8f2ba72", - "comment": "", - "command": "click", - "target": "css=option:nth-child(2)", + "target": "id=root_metadataFilters_2_retainedRoles_0", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: md:SPSSODescriptor']", "xpath:attributes"], - ["xpath=//select[@id='/metadataFilters/EntityRoleWhiteList/retainedRoles/0']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'SPSSODescriptor')]", "xpath:innerText"] + ["id=root_metadataFilters_2_retainedRoles_0", "id"], + ["css=#root_metadataFilters_2_retainedRoles_0", "css:finder"], + ["xpath=//select[@id='root_metadataFilters_2_retainedRoles_0']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], - "value": "" + "value": "label=SPSSODescriptor" }, { "id": "d47fc8b5-4062-4813-90a8-cdc91b777f1d", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "442c5b8d-f108-488e-8779-06171f5081f6", "comment": "", "command": "select", - "target": "id=/metadataFilters/EntityRoleWhiteList/retainedRoles/1", - "targets": [], - "value": "label=AttributeAuthorityDescriptor" - }, { - "id": "42eddc22-9eed-41d1-aaee-2d4a1d933fa9", - "comment": "", - "command": "click", - "target": "css=#\\/metadataFilters\\/EntityRoleWhiteList\\/retainedRoles\\/1 > option:nth-child(3)", + "target": "id=root_metadataFilters_2_retainedRoles_1", "targets": [ - ["css=#\\/metadataFilters\\/EntityRoleWhiteList\\/retainedRoles\\/1 > option:nth-child(3)", "css:finder"], - ["xpath=(//option[@value='2: md:AttributeAuthorityDescriptor'])[2]", "xpath:attributes"], - ["xpath=//select[@id='/metadataFilters/EntityRoleWhiteList/retainedRoles/1']/option[3]", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/select-component/div/select/option[3]", "xpath:position"] + ["id=root_metadataFilters_2_retainedRoles_1", "id"], + ["css=#root_metadataFilters_2_retainedRoles_1", "css:finder"], + ["xpath=//select[@id='root_metadataFilters_2_retainedRoles_1']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div[2]/div[2]/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/select", "xpath:position"] ], - "value": "" + "value": "label=AttributeAuthorityDescriptor" }, { "id": "4ebbc08c-ee24-43d8-8c2d-b639a625189c", "comment": "", "command": "click", - "target": "css=#\\/metadataFilters\\/EntityRoleWhiteList\\/removeRolelessEntityDescriptors\\.parent > .custom-control-label", + "target": "id=root_metadataFilters_2_removeRolelessEntityDescriptors", "targets": [ - ["css=#\\/metadataFilters\\/EntityRoleWhiteList\\/removeRolelessEntityDescriptors\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/metadataFilters/EntityRoleWhiteList/removeRolelessEntityDescriptors.parent']/label", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Remove Roleless Entity Descriptors?')]", "xpath:innerText"] + ["id=root_metadataFilters_2_removeRolelessEntityDescriptors", "id"], + ["css=#root_metadataFilters_2_removeRolelessEntityDescriptors", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_2_removeRolelessEntityDescriptors']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[3]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "1c23c527-46e7-4fe6-8f60-37833af073c8", "comment": "", "command": "click", - "target": "css=#\\/metadataFilters\\/EntityRoleWhiteList\\/removeEmptyEntitiesDescriptors\\.parent > .custom-control-label", + "target": "id=root_metadataFilters_2_removeEmptyEntitiesDescriptors", "targets": [ - ["css=#\\/metadataFilters\\/EntityRoleWhiteList\\/removeEmptyEntitiesDescriptors\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/metadataFilters/EntityRoleWhiteList/removeEmptyEntitiesDescriptors.parent']/label", "xpath:idRelative"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Remove Empty Entities Descriptors?')]", "xpath:innerText"] + ["id=root_metadataFilters_2_removeEmptyEntitiesDescriptors", "id"], + ["css=#root_metadataFilters_2_removeEmptyEntitiesDescriptors", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_2_removeEmptyEntitiesDescriptors']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[4]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { @@ -558,18 +563,6 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "7cd861ea-d86c-4faa-a07b-c1508811b506", - "comment": "", - "command": "click", - "target": "css=.custom-control-label", - "targets": [ - ["css=.custom-control-label", "css:finder"], - ["xpath=//div[@id='/enabled.parent']/label", "xpath:idRelative"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Enable this service?')]", "xpath:innerText"] - ], - "value": "" }, { "id": "0c112a41-8feb-42da-a58b-8fc04e9a3bf6", "comment": "", @@ -584,24 +577,29 @@ "id": "daa2d46a-d238-4a48-aca7-0f34c9b93d5f", "comment": "", "command": "click", - "target": "css=.btn:nth-child(2) > translate-i18n", + "target": "linkText=File Backed HTTP Metadata Provider", "targets": [ - ["css=.btn:nth-child(2) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/button/translate-i18n", "xpath:idRelative"], - ["xpath=//div/button/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Filters')]", "xpath:innerText"] + ["linkText=File Backed HTTP Metadata Provider", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'File Backed HTTP Metadata Provider')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/74a8d3a0-6482-41c4-8f5a-8c00f5ce43d1/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'File Backed HTTP Metadata Provider')]", "xpath:innerText"] ], "value": "" }, { "id": "d86e9a98-a0a1-4696-b454-1bca1d01f9d0", "comment": "", "command": "click", - "target": "css=#filters .actions span", + "target": "linkText=Add Filter", "targets": [ - ["css=#filters .actions span", "css:finder"], - ["xpath=//div[@id='filters']/div/div/a/span", "xpath:idRelative"], - ["xpath=//div/a/span", "xpath:position"], - ["xpath=//span[contains(.,'Add Filter')]", "xpath:innerText"] + ["linkText=Add Filter", "linkText"], + ["css=#filters .btn", "css:finder"], + ["xpath=//div[@id='filters']/div/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/74a8d3a0-6482-41c4-8f5a-8c00f5ce43d1/filter/new')]", "xpath:href"], + ["xpath=//div[3]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Add Filter')]", "xpath:innerText"] ], "value": "" }, { @@ -609,37 +607,37 @@ "comment": "", "command": "select", "target": "name=type", - "targets": [], - "value": "label=EntityAttributes" - }, { - "id": "49fe7508-4f42-4eae-a47d-85a0983efb64", - "comment": "", - "command": "click", - "target": "css=option:nth-child(2)", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='EntityAttributes']", "xpath:attributes"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'EntityAttributes')]", "xpath:innerText"] + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/div/div/form/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], - "value": "" + "value": "label=EntityAttributes" }, { "id": "8a52ad88-b583-41b7-92a6-bdb185b03a06", "comment": "", "command": "waitForElementVisible", - "target": "id=/name", - "targets": [], + "target": "id=root_name", + "targets": [ + ["id=root_name", "id"], + ["css=#root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "b1c779b1-d3ed-47cc-bc88-e5c280161c32", "comment": "", "command": "type", - "target": "id=/name", + "target": "id=root_name", "targets": [ - ["id=/name", "id"], - ["name=field37", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], + ["id=root_name", "id"], + ["css=#root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "Entity Attributes Filter" @@ -654,13 +652,14 @@ "id": "a10a6faf-90cd-4713-8ea3-60c768ed935e", "comment": "", "command": "click", - "target": "id=/entityAttributesFilterTarget.valuedd", + "target": "id=dropdown-label.filter-target-type", "targets": [ - ["id=/entityAttributesFilterTarget.valuedd", "id"], - ["css=#\\/entityAttributesFilterTarget\\.valuedd", "css:finder"], - ["xpath=//button[@id='/entityAttributesFilterTarget.valuedd']", "xpath:attributes"], + ["id=dropdown-label.filter-target-type", "id"], + ["css=#dropdown-label\\.filter-target-type", "css:finder"], + ["xpath=//button[@id='dropdown-label.filter-target-type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[6]/div/div/div/fieldset/div/div/div/div/button", "xpath:idRelative"], ["xpath=//fieldset/div/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Entity ID')]", "xpath:innerText"] + ["xpath=//button[contains(.,'Entity ID ')]", "xpath:innerText"] ], "value": "" }, { @@ -674,14 +673,13 @@ "id": "1f2b93b8-23ae-4a9c-b015-96ca890ae150", "comment": "", "command": "click", - "target": "linkText=Regex", + "target": "css=.show > .dropdown-item:nth-child(2)", "targets": [ - ["linkText=Regex", "linkText"], - ["css=.dropdown-item:nth-child(2)", "css:finder"], - ["xpath=//a[contains(text(),'Regex')]", "xpath:link"], - ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], - ["xpath=//div/div/a[2]", "xpath:position"], - ["xpath=//a[contains(.,'Regex')]", "xpath:innerText"] + ["css=.show > .dropdown-item:nth-child(2)", "css:finder"], + ["xpath=(//button[@type='button'])[16]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[6]/div/div/div/fieldset/div/div/div/div/div/button[2]", "xpath:idRelative"], + ["xpath=//fieldset/div/div/div/div/div/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Regex')]", "xpath:innerText"] ], "value": "" }, { @@ -695,36 +693,39 @@ "id": "5c2ed93d-3630-408c-bb89-0b2baffb73c0", "comment": "", "command": "click", - "target": "id=/entityAttributesFilterTarget.target", + "target": "id=targetInput", "targets": [ - ["id=/entityAttributesFilterTarget.target", "id"], + ["id=targetInput", "id"], ["name=script", "name"], - ["css=#\\/entityAttributesFilterTarget\\.target", "css:finder"], - ["xpath=//input[@id='/entityAttributesFilterTarget.target']", "xpath:attributes"], - ["xpath=//div/div/input", "xpath:position"] + ["css=#targetInput", "css:finder"], + ["xpath=//input[@id='targetInput']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[6]/div/div/div/fieldset/div/div/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "" }, { "id": "66601358-e37c-417b-a174-827037d56969", "comment": "", "command": "type", - "target": "id=/entityAttributesFilterTarget.target", + "target": "id=targetInput", "targets": [ - ["id=/entityAttributesFilterTarget.target", "id"], + ["id=targetInput", "id"], ["name=script", "name"], - ["css=#\\/entityAttributesFilterTarget\\.target", "css:finder"], - ["xpath=//input[@id='/entityAttributesFilterTarget.target']", "xpath:attributes"], - ["xpath=//div/div/input", "xpath:position"] + ["css=#targetInput", "css:finder"], + ["xpath=//input[@id='targetInput']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[6]/div/div/div/fieldset/div/div/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "*" }, { "id": "f4a74feb-0372-4452-a085-64ae37a059cb", "comment": "", "command": "assertText", - "target": "css=.form-text:nth-child(2)", + "target": "css=.form-text", "targets": [ - ["css=.form-text:nth-child(2)", "css:finder"], - ["xpath=//div/div/small", "xpath:position"], + ["css=.form-text", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[6]/div/div/div/fieldset/div/div/div[2]/div/div/small", "xpath:idRelative"], + ["xpath=//div/small", "xpath:position"], ["xpath=//small[contains(.,'Invalid Regular Expression')]", "xpath:innerText"] ], "value": "Invalid Regular Expression" @@ -732,22 +733,16 @@ "id": "0280c7b8-5714-43b8-89cc-f1260037bd44", "comment": "", "command": "type", - "target": "id=/entityAttributesFilterTarget.target", + "target": "id=targetInput", "targets": [ - ["id=/entityAttributesFilterTarget.target", "id"], + ["id=targetInput", "id"], ["name=script", "name"], - ["css=#\\/entityAttributesFilterTarget\\.target", "css:finder"], - ["xpath=//input[@id='/entityAttributesFilterTarget.target']", "xpath:attributes"], - ["xpath=//div/div/input", "xpath:position"] + ["css=#targetInput", "css:finder"], + ["xpath=//input[@id='targetInput']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[6]/div/div/div/fieldset/div/div/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": ".*" - }, { - "id": "f9d3ccc6-65d1-46dd-9d05-2d1bd74cc89e", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1392.side b/backend/src/integration/resources/SHIBUI-1392.side index 0056a4dd6..70e057548 100644 --- a/backend/src/integration/resources/SHIBUI-1392.side +++ b/backend/src/integration/resources/SHIBUI-1392.side @@ -41,66 +41,119 @@ "id": "993b1b6d-5eac-426c-b6fe-89cef25ebc91", "comment": "", "command": "click", - "target": "name=submit", + "target": "css=.btn", "targets": [ - ["name=submit", "name"], - ["css=td:nth-child(1) > input", "css:finder"], - ["xpath=//input[@name='submit']", "xpath:attributes"], - ["xpath=//tr[3]/td/input", "xpath:position"] + ["css=.btn", "css:finder"], + ["xpath=//button[@type='submit']", "xpath:attributes"], + ["xpath=//button", "xpath:position"], + ["xpath=//button[contains(.,'Sign in')]", "xpath:innerText"] ], "value": "" + }, { + "id": "f92dd030-f326-4050-9234-97981211161f", + "comment": "", + "command": "waitForElementVisible", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "a16aa726-a8d3-488b-b1ce-7a3d33d4cfa5", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "dada3956-de82-4cdb-b3cc-68ac8025280c", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "ea85d06f-024a-4cae-bf06-1900a00b685e", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "db2bbd13-3808-4b40-a236-3fe82c1afece", "comment": "", "command": "click", - "target": "css=#addNewDropdown", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=#addNewDropdown > translate-i18n", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/translate-i18n", "xpath:idRelative"], - ["xpath=//translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Add New')]", "xpath:innerText"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "32133aaa-76a4-4dd4-8ee6-a9fc5af25ded", "comment": "", "command": "click", - "target": "linkText=Metadata Provider", - "targets": [ - ["linkText=Metadata Provider", "linkText"], - ["css=.nav-link:nth-child(2)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a[2]", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[3]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"] + "target": "id=metadata-nav-dropdown-provider", + "targets": [ + ["id=metadata-nav-dropdown-provider", "id"], + ["linkText=Add a new metadata provider", "linkText"], + ["css=#metadata-nav-dropdown-provider", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata provider')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-provider']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/new')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata provider')]", "xpath:innerText"] ], "value": "" }, { "id": "ea32c92b-9487-499a-8f7a-242ab6fd196f", "comment": "", "command": "waitForElementEditable", - "target": "id=/name", - "targets": [], + "target": "name=name", + "targets": [ + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "845b34e9-fd90-45de-a38a-469405915292", "comment": "", "command": "type", - "target": "id=/name", + "target": "name=name", "targets": [ - ["id=/name", "id"], - ["name=field1", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "Test Provider with Script Filter" + }, { + "id": "fbcb5ac5-c2a3-4db3-bb3a-06db665036ac", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" }, { "id": "6daa658d-2560-4448-a522-233ed88e1ad0", "comment": "", "command": "select", - "target": "id=/type", - "targets": [], - "value": "label=DynamicHttpMetadataProvider" + "target": "name=type", + "targets": [ + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div[2]/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] + ], + "value": "label=DynamicHttpMetadataResolver" }, { "id": "fb561471-270c-4633-8fe9-ad457ef38459", "comment": "", @@ -115,19 +168,25 @@ "id": "ba2c6633-3813-42e4-95fc-b1b22da875fa", "comment": "", "command": "waitForElementEditable", - "target": "id=/xmlId", - "targets": [], + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "09c4adf4-0142-4931-8ffc-ff6ff821e78e", "comment": "", "command": "type", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ - ["id=/xmlId", "id"], - ["name=field7", "name"], - ["css=#\\/xmlId", "css:finder"], - ["xpath=//input[@id='/xmlId']", "xpath:attributes"], + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "12345" @@ -135,68 +194,65 @@ "id": "b18627a3-0487-42c0-b3bb-44aa53da8ba3", "comment": "", "command": "select", - "target": "id=/metadataRequestURLConstructionScheme/type", - "targets": [], - "value": "label=MetadataQueryProtocol" - }, { - "id": "6548ef95-6862-49ce-82e0-024502aeb9eb", - "comment": "", - "command": "click", - "target": "css=option:nth-child(2)", + "target": "id=root_metadataRequestURLConstructionScheme_@type", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: MetadataQueryProtocol']", "xpath:attributes"], - ["xpath=//select[@id='/metadataRequestURLConstructionScheme/type']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'MetadataQueryProtocol')]", "xpath:innerText"] + ["id=root_metadataRequestURLConstructionScheme_@type", "id"], + ["css=#root_metadataRequestURLConstructionScheme_\\@type", "css:finder"], + ["xpath=//select[@id='root_metadataRequestURLConstructionScheme_@type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], - "value": "" + "value": "label=MetadataQueryProtocol" }, { "id": "33263ebe-368a-4804-acb5-8324b822f3ea", "comment": "", "command": "click", - "target": "id=/metadataRequestURLConstructionScheme/content", + "target": "id=root_metadataRequestURLConstructionScheme_content", "targets": [ - ["id=/metadataRequestURLConstructionScheme/content", "id"], - ["name=field10", "name"], - ["css=#\\/metadataRequestURLConstructionScheme\\/content", "css:finder"], - ["xpath=//input[@id='/metadataRequestURLConstructionScheme/content']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_metadataRequestURLConstructionScheme_content", "id"], + ["css=#root_metadataRequestURLConstructionScheme_content", "css:finder"], + ["xpath=//input[@id='root_metadataRequestURLConstructionScheme_content']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/div[2]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "99061d82-049c-40cc-a7d8-98d792061daf", "comment": "", "command": "type", - "target": "id=/metadataRequestURLConstructionScheme/content", + "target": "id=root_metadataRequestURLConstructionScheme_content", "targets": [ - ["id=/metadataRequestURLConstructionScheme/content", "id"], - ["name=field10", "name"], - ["css=#\\/metadataRequestURLConstructionScheme\\/content", "css:finder"], - ["xpath=//input[@id='/metadataRequestURLConstructionScheme/content']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_metadataRequestURLConstructionScheme_content", "id"], + ["css=#root_metadataRequestURLConstructionScheme_content", "css:finder"], + ["xpath=//input[@id='root_metadataRequestURLConstructionScheme_content']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/div[2]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/input", "xpath:position"] ], "value": "someString" }, { - "id": "e771b05f-e720-40e9-8c8c-c9f65725e34c", + "id": "c2af34fb-1edd-4824-bc7a-b0232dcbe841", "comment": "", "command": "click", - "target": "css=div:nth-child(4) .form-check:nth-child(4) > .control-label", + "target": "id=root_requireValidMetadata-No", "targets": [ - ["css=div:nth-child(4) .form-check:nth-child(4) > .control-label", "css:finder"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label", "xpath:position"] + ["id=root_requireValidMetadata-No", "id"], + ["css=#root_requireValidMetadata-No", "css:finder"], + ["xpath=//input[@id='root_requireValidMetadata-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[3]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] ], "value": "" }, { - "id": "c2af34fb-1edd-4824-bc7a-b0232dcbe841", + "id": "0e9378dc-c336-4c60-9b19-c523aee75b85", "comment": "", "command": "click", - "target": "id=/requireValidMetadata.false", + "target": "id=root_failFastInitialization-No", "targets": [ - ["id=/requireValidMetadata.false", "id"], - ["css=#\\/requireValidMetadata\\.false", "css:finder"], - ["xpath=//input[@id='/requireValidMetadata.false']", "xpath:attributes"], - ["xpath=//div[2]/label/input", "xpath:position"] + ["id=root_failFastInitialization-No", "id"], + ["css=#root_failFastInitialization-No", "css:finder"], + ["xpath=//input[@id='root_failFastInitialization-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[4]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { @@ -219,18 +275,6 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "e84a4b1e-9e16-4c0f-ba21-5edaac18011e", - "comment": "", - "command": "click", - "target": "css=#\\/metadataFilters\\/SignatureValidation\\/requireSignedRoot\\.parent > .custom-control-label", - "targets": [ - ["css=#\\/metadataFilters\\/SignatureValidation\\/requireSignedRoot\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/metadataFilters/SignatureValidation/requireSignedRoot.parent']/label", "xpath:idRelative"], - ["xpath=//div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Require Signed Root')]", "xpath:innerText"] - ], - "value": "" }, { "id": "45e080c0-8ea2-4641-951b-aa819d5b9d64", "comment": "", @@ -242,37 +286,42 @@ ], "value": "" }, { - "id": "cce4434c-9723-4ecb-832d-2e200aefe7e1", + "id": "542d9338-36f9-4922-89c2-7109c2d288e0", "comment": "", "command": "click", - "target": "css=.custom-control-label", + "target": "css=.save", "targets": [ - ["css=.custom-control-label", "css:finder"], - ["xpath=//div[@id='/enabled.parent']/label", "xpath:idRelative"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Metadata Provider?')]", "xpath:innerText"] + ["css=.save", "css:finder"], + ["xpath=//li[3]/button", "xpath:position"] ], "value": "" }, { - "id": "542d9338-36f9-4922-89c2-7109c2d288e0", + "id": "051b721c-2cb7-436c-a43a-bbcad50731ed", "comment": "", "command": "click", - "target": "css=.save", + "target": "linkText=Test Provider with Script Filter", "targets": [ - ["css=.save", "css:finder"], - ["xpath=//li[3]/button", "xpath:position"] + ["linkText=Test Provider with Script Filter", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'Test Provider with Script Filter')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/8965c3a3-3551-42f6-807e-c9177476f764/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Test Provider with Script Filter')]", "xpath:innerText"] ], "value": "" }, { "id": "3b38c153-5b8d-4a3c-a8c2-f089d86e2ae3", "comment": "", "command": "click", - "target": "css=#filters .actions span", + "target": "linkText=Add Filter", "targets": [ - ["css=#filters .actions span", "css:finder"], - ["xpath=//div[@id='filters']/div/div/a/span", "xpath:idRelative"], - ["xpath=//div/a/span", "xpath:position"], - ["xpath=//span[contains(.,'Add Filter')]", "xpath:innerText"] + ["linkText=Add Filter", "linkText"], + ["css=#filters .btn", "css:finder"], + ["xpath=//div[@id='filters']/div/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/8965c3a3-3551-42f6-807e-c9177476f764/filter/new')]", "xpath:href"], + ["xpath=//div[3]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Add Filter')]", "xpath:innerText"] ], "value": "" }, { @@ -280,18 +329,24 @@ "comment": "", "command": "select", "target": "name=type", - "targets": [], + "targets": [ + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/div/div/form/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] + ], "value": "label=NameIDFormat" }, { "id": "b32ea0ea-16ea-472a-bd28-09082ef35ca5", "comment": "", "command": "click", - "target": "id=/name", + "target": "id=root_name", "targets": [ - ["id=/name", "id"], - ["name=field38", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], + ["id=root_name", "id"], + ["css=#root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -299,12 +354,12 @@ "id": "62e1fdf7-cfb5-4175-8b75-6d2ca52e73f2", "comment": "", "command": "type", - "target": "id=/name", + "target": "id=root_name", "targets": [ - ["id=/name", "id"], - ["name=field38", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], + ["id=root_name", "id"], + ["css=#root_name", "css:finder"], + ["xpath=//input[@id='root_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "Filter with Script" @@ -319,13 +374,14 @@ "id": "c92e936c-d516-472f-9f28-36de89117e14", "comment": "", "command": "click", - "target": "id=/nameIdFormatFilterTarget.valuedd", + "target": "id=dropdown-label.filter-target-type", "targets": [ - ["id=/nameIdFormatFilterTarget.valuedd", "id"], - ["css=#\\/nameIdFormatFilterTarget\\.valuedd", "css:finder"], - ["xpath=//button[@id='/nameIdFormatFilterTarget.valuedd']", "xpath:attributes"], + ["id=dropdown-label.filter-target-type", "id"], + ["css=#dropdown-label\\.filter-target-type", "css:finder"], + ["xpath=//button[@id='dropdown-label.filter-target-type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[3]/div/div/div/fieldset/div/div/div/div/button", "xpath:idRelative"], ["xpath=//fieldset/div/div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Entity ID')]", "xpath:innerText"] + ["xpath=//button[contains(.,'Entity ID ')]", "xpath:innerText"] ], "value": "" }, { @@ -339,14 +395,13 @@ "id": "5699a5a2-d3df-4f99-b95d-f340f9156ffe", "comment": "", "command": "click", - "target": "linkText=Script", + "target": "css=.dropdown-item:nth-child(3)", "targets": [ - ["linkText=Script", "linkText"], ["css=.dropdown-item:nth-child(3)", "css:finder"], - ["xpath=//a[contains(text(),'Script')]", "xpath:link"], - ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], - ["xpath=//a[3]", "xpath:position"], - ["xpath=//a[contains(.,'Script')]", "xpath:innerText"] + ["xpath=(//button[@type='button'])[16]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[3]/div/div/div/fieldset/div/div/div/div/div/button[3]", "xpath:idRelative"], + ["xpath=//button[3]", "xpath:position"], + ["xpath=//button[contains(.,'Script')]", "xpath:innerText"] ], "value": "" }, { @@ -360,55 +415,32 @@ "id": "786cd3cb-46b2-4361-b449-8f679ff97135", "comment": "", "command": "waitForElementPresent", - "target": "id=/nameIdFormatFilterTarget.target", - "targets": [], - "value": "10000" - }, { - "id": "dcf31546-0976-44ae-9ffc-c29a5255d646", - "comment": "", - "command": "click", - "target": "id=/nameIdFormatFilterTarget.target", + "target": "css=.npm__react-simple-code-editor__textarea", "targets": [ - ["id=/nameIdFormatFilterTarget.target", "id"], - ["css=#\\/nameIdFormatFilterTarget\\.target", "css:finder"], - ["xpath=//p[@id='/nameIdFormatFilterTarget.target']", "xpath:attributes"], - ["xpath=//p", "xpath:position"] + ["css=.npm__react-simple-code-editor__textarea", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[3]/div/div/div/fieldset/div/div/div[2]/div/div/div/div/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] ], - "value": "" + "value": "10000" }, { - "id": "05870356-d3db-4540-bb3f-db34b1cf65f1", + "id": "dcf31546-0976-44ae-9ffc-c29a5255d646", "comment": "", - "command": "sendKeys", - "target": "id=/nameIdFormatFilterTarget.target", + "command": "type", + "target": "css=.npm__react-simple-code-editor__textarea", "targets": [], "value": "eval(true);" }, { - "id": "d7721254-68c9-4140-af2a-1757cce99da7", - "comment": "", - "command": "click", - "target": "css=.section-body", - "targets": [ - ["css=.section-body", "css:finder"], - ["xpath=//section/div[2]", "xpath:position"] - ], - "value": "" - }, { - "id": "ed6eb266-04f0-4517-b874-ea1d0ba68441", + "id": "8c7fd197-7b41-4d32-95d3-e5360af438dc", "comment": "", "command": "click", - "target": "css=#\\/filterEnabled\\.parent > .custom-control-label", - "targets": [ - ["css=#\\/filterEnabled\\.parent > .custom-control-label", "css:finder"], - ["xpath=//div[@id='/filterEnabled.parent']/label", "xpath:idRelative"], - ["xpath=//checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Enable Filter?')]", "xpath:innerText"] - ], + "target": "css=.npm__react-simple-code-editor__textarea", + "targets": [], "value": "" }, { "id": "07ddc80d-1df7-43d3-adf9-a75a2a1348bc", "comment": "", "command": "click", - "target": "css=.btn-primary", + "target": "css=.btn-info", "targets": [ ["css=.btn-primary", "css:finder"], ["xpath=//button[@type='submit']", "xpath:attributes"], @@ -475,13 +507,6 @@ ["xpath=//p[contains(.,'eval(true)')]", "xpath:innerText"] ], "value": "eval(true);" - }, { - "id": "29f454bc-2f1d-44b4-b9f9-fb390b2eddb2", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1407-1.side b/backend/src/integration/resources/SHIBUI-1407-1.side index fed3a2774..8a6f6aaab 100644 --- a/backend/src/integration/resources/SHIBUI-1407-1.side +++ b/backend/src/integration/resources/SHIBUI-1407-1.side @@ -49,48 +49,88 @@ ["xpath=//tr[2]/td[2]/input", "xpath:position"] ], "value": "${KEY_ENTER}" + }, { + "id": "cc9035b6-1e28-4b04-9a50-9ef0a77c1adf", + "comment": "", + "command": "waitForElementVisible", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "835bd37c-5d46-42e4-9dbb-ee00d29ccd6c", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "244080e1-7cc9-45e0-a5d8-2821047bc4a1", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "fe6548a8-7893-434b-bdd6-967e7ee32c96", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "ad3811ad-f95b-4cca-a5d9-63a10063a652", "comment": "", "command": "click", - "target": "css=#addNewDropdown > translate-i18n", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=#addNewDropdown > translate-i18n", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/translate-i18n", "xpath:idRelative"], - ["xpath=//translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Add New')]", "xpath:innerText"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "1caf8be6-a4d9-4b3b-ace1-0f76d3600d62", "comment": "", "command": "click", - "target": "linkText=Metadata Source", + "target": "id=metadata-nav-dropdown-source", "targets": [ - ["linkText=Metadata Source", "linkText"], - ["css=.dropdown-menu > .nav-link:nth-child(1)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[2]", "xpath:href"], - ["xpath=//div/a", "xpath:position"] + ["id=metadata-nav-dropdown-source", "id"], + ["linkText=Add a new metadata source", "linkText"], + ["css=#metadata-nav-dropdown-source", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata source')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-source']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/source/new')]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata source')]", "xpath:innerText"] ], "value": "" }, { "id": "295789cf-0603-4fd2-9971-c2ed21d2fc81", "comment": "", - "command": "pause", - "target": "5000", - "targets": [], - "value": "" + "command": "waitForElementVisible", + "target": "id=root_serviceProviderName", + "targets": [ + ["id=root_serviceProviderName", "id"], + ["css=#root_serviceProviderName", "css:finder"], + ["xpath=//input[@id='root_serviceProviderName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "30000" }, { "id": "218e51fd-49e6-400b-9d7f-61bcd8e0c074", "comment": "", "command": "click", - "target": "id=/serviceProviderName", + "target": "id=root_serviceProviderName", "targets": [ - ["id=/serviceProviderName", "id"], - ["name=field1", "name"], - ["css=#\\/serviceProviderName", "css:finder"], - ["xpath=//input[@id='/serviceProviderName']", "xpath:attributes"], + ["id=root_serviceProviderName", "id"], + ["css=#root_serviceProviderName", "css:finder"], + ["xpath=//input[@id='root_serviceProviderName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -98,12 +138,12 @@ "id": "9ee43e46-ab9e-46b1-8eb2-9718fb98bda2", "comment": "", "command": "type", - "target": "id=/serviceProviderName", + "target": "id=root_serviceProviderName", "targets": [ - ["id=field1", "id"], - ["name=field1", "name"], - ["css=#field1", "css:finder"], - ["xpath=//input[@id='field1']", "xpath:attributes"], + ["id=root_serviceProviderName", "id"], + ["css=#root_serviceProviderName", "css:finder"], + ["xpath=//input[@id='root_serviceProviderName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "Test Provider" @@ -111,13 +151,13 @@ "id": "7fe7298b-275c-4797-8d1b-f4547b63eb02", "comment": "", "command": "type", - "target": "id=/entityId", + "target": "id=root_entityId", "targets": [ - ["id=/entityId", "id"], - ["name=field2", "name"], - ["css=#\\/entityId", "css:finder"], - ["xpath=//input[@id='/entityId']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_entityId", "id"], + ["css=#root_entityId", "css:finder"], + ["xpath=//input[@id='root_entityId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/div/form/div/div/div/div/div/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "test-1234" }, { @@ -134,12 +174,12 @@ "id": "4d88e469-df2f-40ee-a557-b5eafbc24ef3", "comment": "", "command": "click", - "target": "id=/organization/name", + "target": "id=root_organization_name", "targets": [ - ["id=/organization/name", "id"], - ["name=field5", "name"], - ["css=#\\/organization\\/name", "css:finder"], - ["xpath=//input[@id='/organization/name']", "xpath:attributes"], + ["id=root_organization_name", "id"], + ["css=#root_organization_name", "css:finder"], + ["xpath=//input[@id='root_organization_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -147,12 +187,12 @@ "id": "e0168286-af90-4c0a-a0ba-0dd97d64849b", "comment": "", "command": "type", - "target": "id=/organization/name", + "target": "id=root_organization_name", "targets": [ - ["id=field5", "id"], - ["name=field5", "name"], - ["css=#field5", "css:finder"], - ["xpath=//input[@id='field5']", "xpath:attributes"], + ["id=root_organization_name", "id"], + ["css=#root_organization_name", "css:finder"], + ["xpath=//input[@id='root_organization_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "Test Org" @@ -160,75 +200,77 @@ "id": "8f6dcf95-41e4-446a-a7fb-a064d928e1bc", "comment": "", "command": "type", - "target": "id=/organization/displayName", + "target": "id=root_organization_displayName", "targets": [ - ["id=/organization/displayName", "id"], - ["name=field6", "name"], - ["css=#\\/organization\\/displayName", "css:finder"], - ["xpath=//input[@id='/organization/displayName']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_organization_displayName", "id"], + ["css=#root_organization_displayName", "css:finder"], + ["xpath=//input[@id='root_organization_displayName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/input", "xpath:position"] ], "value": "Test Org Name" }, { "id": "7cc2068e-3fa3-4f1c-ac97-c63e78911b9e", "comment": "", "command": "type", - "target": "id=/organization/url", + "target": "id=root_organization_url", "targets": [ - ["id=/organization/url", "id"], - ["name=field7", "name"], - ["css=#\\/organization\\/url", "css:finder"], - ["xpath=//input[@id='/organization/url']", "xpath:attributes"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_organization_url", "id"], + ["css=#root_organization_url", "css:finder"], + ["xpath=//input[@id='root_organization_url']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "http://test.org" }, { "id": "1da05567-4f8d-4fd8-957a-bfddb2380bfb", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "5379b245-cd77-43c1-b424-3b6595c74174", "comment": "", "command": "click", - "target": "id=/contacts/0/name", + "target": "id=root_contacts_0_name", "targets": [ - ["id=/contacts/0/name", "id"], - ["name=field10", "name"], - ["css=#\\/contacts\\/0\\/name", "css:finder"], - ["xpath=//input[@id='/contacts/0/name']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_0_name", "id"], + ["css=#root_contacts_0_name", "css:finder"], + ["xpath=//input[@id='root_contacts_0_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "b658cae2-ba5a-406b-a48c-87d110ff4ed0", "comment": "", "command": "type", - "target": "id=/contacts/0/name", + "target": "id=root_contacts_0_name", "targets": [ - ["id=field10", "id"], - ["name=field10", "name"], - ["css=#field10", "css:finder"], - ["xpath=//input[@id='field10']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_0_name", "id"], + ["css=#root_contacts_0_name", "css:finder"], + ["xpath=//input[@id='root_contacts_0_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "Test User" }, { "id": "3a2de62d-c1c1-43a7-a484-8a0d23bf301e", "comment": "", "command": "click", - "target": "id=/contacts/0/type", + "target": "id=root_contacts_0_type", "targets": [ - ["id=/contacts/0/type", "id"], - ["name=field11", "name"], - ["css=#\\/contacts\\/0\\/type", "css:finder"], - ["xpath=//select[@id='/contacts/0/type']", "xpath:attributes"], + ["id=root_contacts_0_type", "id"], + ["css=#root_contacts_0_type", "css:finder"], + ["xpath=//select[@id='root_contacts_0_type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], ["xpath=//select", "xpath:position"] ], "value": "" @@ -236,89 +278,98 @@ "id": "86e4e429-2a72-496a-add8-df2fc079d157", "comment": "", "command": "select", - "target": "id=/contacts/0/type", - "targets": [], - "value": "label=Technical" + "target": "id=root_contacts_0_type", + "targets": [ + ["id=root_contacts_0_type", "id"], + ["css=#root_contacts_0_type", "css:finder"], + ["xpath=//select[@id='root_contacts_0_type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] + ], + "value": "label=technical" }, { "id": "95531b0b-c084-422d-bac9-60ee7e7a9f16", "comment": "", "command": "click", - "target": "id=/contacts/0/emailAddress", + "target": "id=root_contacts_0_emailAddress", "targets": [ - ["id=/contacts/0/emailAddress", "id"], - ["name=field12", "name"], - ["css=#\\/contacts\\/0\\/emailAddress", "css:finder"], - ["xpath=//input[@id='/contacts/0/emailAddress']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[3]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_0_emailAddress", "id"], + ["css=#root_contacts_0_emailAddress", "css:finder"], + ["xpath=//input[@id='root_contacts_0_emailAddress']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "e5d6662e-38d4-479f-b76b-c0c05fcabe15", "comment": "", "command": "type", - "target": "id=/contacts/0/emailAddress", + "target": "id=root_contacts_0_emailAddress", "targets": [ - ["id=field12", "id"], - ["name=field12", "name"], - ["css=#field12", "css:finder"], - ["xpath=//input[@id='field12']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[3]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_0_emailAddress", "id"], + ["css=#root_contacts_0_emailAddress", "css:finder"], + ["xpath=//input[@id='root_contacts_0_emailAddress']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:position"] ], "value": "user@test.org" }, { "id": "b4e3ea55-b4c0-4585-99fe-ac1534efadd8", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "234de758-df6d-47d7-af74-83aee3fa1e72", "comment": "", "command": "click", - "target": "id=/contacts/1/name", + "target": "id=root_contacts_1_name", "targets": [ - ["id=/contacts/1/name", "id"], - ["name=field14", "name"], - ["css=#\\/contacts\\/1\\/name", "css:finder"], - ["xpath=//input[@id='/contacts/1/name']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_1_name", "id"], + ["css=#root_contacts_1_name", "css:finder"], + ["xpath=//input[@id='root_contacts_1_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "02819e27-7aed-4a1a-867f-f8131c3897d8", "comment": "", "command": "type", - "target": "id=/contacts/1/name", + "target": "id=root_contacts_1_name", "targets": [ - ["id=field14", "id"], - ["name=field14", "name"], - ["css=#field14", "css:finder"], - ["xpath=//input[@id='field14']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_1_name", "id"], + ["css=#root_contacts_1_name", "css:finder"], + ["xpath=//input[@id='root_contacts_1_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "Test User 2" }, { "id": "1d478856-8742-4627-acbe-daed2bb83abe", "comment": "", "command": "click", - "target": "id=/contacts/1/type", + "target": "id=root_contacts_1_type", "targets": [ - ["css=#field15 > option:nth-child(2)", "css:finder"], - ["xpath=(//option[@value='1: support'])[2]", "xpath:attributes"], - ["xpath=//select[@id='field15']/option[2]", "xpath:idRelative"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/select-component/div/select/option[2]", "xpath:position"] + ["id=root_contacts_1_type", "id"], + ["css=#root_contacts_1_type", "css:finder"], + ["xpath=//select[@id='root_contacts_1_type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:position"] ], "value": "" }, { "id": "9b4c76b4-3851-4aac-a9f5-67e20c36f174", "comment": "", "command": "select", - "target": "id=/contacts/1/type", + "target": "id=root_contacts_1_type", "targets": [ ["id=/contacts/1/type", "id"], ["name=field15", "name"], @@ -326,31 +377,31 @@ ["xpath=//select[@id='/contacts/1/type']", "xpath:attributes"], ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/select-component/div/select", "xpath:position"] ], - "value": "label=Support" + "value": "label=support" }, { "id": "5e3fddc1-786d-4040-8351-2f553e3c8811", "comment": "", "command": "click", - "target": "id=/contacts/1/emailAddress", + "target": "id=root_contacts_1_emailAddress", "targets": [ - ["id=/contacts/1/emailAddress", "id"], - ["name=field16", "name"], - ["css=#\\/contacts\\/1\\/emailAddress", "css:finder"], - ["xpath=//input[@id='/contacts/1/emailAddress']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[3]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_1_emailAddress", "id"], + ["css=#root_contacts_1_emailAddress", "css:finder"], + ["xpath=//input[@id='root_contacts_1_emailAddress']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "700d8907-6a65-43d5-aebf-60a392379534", "comment": "", "command": "type", - "target": "id=/contacts/1/emailAddress", + "target": "id=root_contacts_1_emailAddress", "targets": [ - ["id=field16", "id"], - ["name=field16", "name"], - ["css=#field16", "css:finder"], - ["xpath=//input[@id='field16']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[3]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_1_emailAddress", "id"], + ["css=#root_contacts_1_emailAddress", "css:finder"], + ["xpath=//input[@id='root_contacts_1_emailAddress']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/input", "xpath:position"] ], "value": "user2@test.org" }, { @@ -367,12 +418,12 @@ "id": "f38b7fca-0c0c-4658-9df6-10a26881c6a5", "comment": "", "command": "click", - "target": "id=/mdui/displayName", + "target": "id=root_mdui_displayName", "targets": [ - ["id=/mdui/displayName", "id"], - ["name=field19", "name"], - ["css=#\\/mdui\\/displayName", "css:finder"], - ["xpath=//input[@id='/mdui/displayName']", "xpath:attributes"], + ["id=root_mdui_displayName", "id"], + ["css=#root_mdui_displayName", "css:finder"], + ["xpath=//input[@id='root_mdui_displayName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -380,12 +431,12 @@ "id": "c03c4582-e1f1-449f-9a79-300d48ad69d8", "comment": "", "command": "type", - "target": "id=/mdui/displayName", + "target": "id=root_mdui_displayName", "targets": [ - ["id=field19", "id"], - ["name=field19", "name"], - ["css=#field19", "css:finder"], - ["xpath=//input[@id='field19']", "xpath:attributes"], + ["id=root_mdui_displayName", "id"], + ["css=#root_mdui_displayName", "css:finder"], + ["xpath=//input[@id='root_mdui_displayName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "Display Name" @@ -393,25 +444,25 @@ "id": "5098507c-fa51-4c13-b9a3-381034e0fa52", "comment": "", "command": "type", - "target": "id=/mdui/informationUrl", + "target": "id=root_mdui_informationUrl", "targets": [ - ["id=/mdui/informationUrl", "id"], - ["name=field20", "name"], - ["css=#\\/mdui\\/informationUrl", "css:finder"], - ["xpath=//input[@id='/mdui/informationUrl']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_mdui_informationUrl", "id"], + ["css=#root_mdui_informationUrl", "css:finder"], + ["xpath=//input[@id='root_mdui_informationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "http://test.org/info" }, { "id": "d5de3699-5a18-4abe-a2ea-0a2b7565c525", "comment": "", "command": "type", - "target": "id=/mdui/description", + "target": "id=root_mdui_description", "targets": [ - ["id=/mdui/description", "id"], - ["name=field21", "name"], - ["css=#\\/mdui\\/description", "css:finder"], - ["xpath=//textarea[@id='/mdui/description']", "xpath:attributes"], + ["id=root_mdui_description", "id"], + ["css=#root_mdui_description", "css:finder"], + ["xpath=//textarea[@id='root_mdui_description']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div[3]/div/div/textarea", "xpath:idRelative"], ["xpath=//textarea", "xpath:position"] ], "value": "This is a description." @@ -419,65 +470,65 @@ "id": "115bb9a9-e991-4cf0-8bcb-363d9dc3c269", "comment": "", "command": "click", - "target": "id=/mdui/privacyStatementUrl", + "target": "id=root_mdui_privacyStatementUrl", "targets": [ - ["id=/mdui/privacyStatementUrl", "id"], - ["name=field22", "name"], - ["css=#\\/mdui\\/privacyStatementUrl", "css:finder"], - ["xpath=//input[@id='/mdui/privacyStatementUrl']", "xpath:attributes"], - ["xpath=//fieldset[2]/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_mdui_privacyStatementUrl", "id"], + ["css=#root_mdui_privacyStatementUrl", "css:finder"], + ["xpath=//input[@id='root_mdui_privacyStatementUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "df623bef-a1fc-48ff-aa93-05e0da85ef51", "comment": "", "command": "type", - "target": "id=/mdui/privacyStatementUrl", + "target": "id=root_mdui_privacyStatementUrl", "targets": [ - ["id=field22", "id"], - ["name=field22", "name"], - ["css=#field22", "css:finder"], - ["xpath=//input[@id='field22']", "xpath:attributes"], - ["xpath=//fieldset[2]/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_mdui_privacyStatementUrl", "id"], + ["css=#root_mdui_privacyStatementUrl", "css:finder"], + ["xpath=//input[@id='root_mdui_privacyStatementUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/input", "xpath:position"] ], "value": "http://test.org/privacy" }, { "id": "ed17408b-a763-4e5d-86cd-efe575df8d08", "comment": "", "command": "type", - "target": "id=/mdui/logoUrl", + "target": "id=root_mdui_logoUrl", "targets": [ - ["id=/mdui/logoUrl", "id"], - ["name=field23", "name"], - ["css=#\\/mdui\\/logoUrl", "css:finder"], - ["xpath=//input[@id='/mdui/logoUrl']", "xpath:attributes"], - ["xpath=//fieldset[2]/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_mdui_logoUrl", "id"], + ["css=#root_mdui_logoUrl", "css:finder"], + ["xpath=//input[@id='root_mdui_logoUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div[2]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div/input", "xpath:position"] ], "value": "http://test.org/logo" }, { "id": "2946a968-7289-43e5-820d-b1aee442ce96", "comment": "", "command": "type", - "target": "id=/mdui/logoWidth", + "target": "id=root_mdui_logoWidth", "targets": [ - ["id=/mdui/logoWidth", "id"], - ["name=field24", "name"], - ["css=#\\/mdui\\/logoWidth", "css:finder"], - ["xpath=//input[@id='/mdui/logoWidth']", "xpath:attributes"], - ["xpath=//integer-component/div/input", "xpath:position"] + ["id=root_mdui_logoWidth", "id"], + ["css=#root_mdui_logoWidth", "css:finder"], + ["xpath=//input[@id='root_mdui_logoWidth']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div[2]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] ], "value": "200" }, { "id": "ceec5477-13d4-4ab4-944e-a2a34a9b4510", "comment": "", "command": "type", - "target": "id=/mdui/logoHeight", + "target": "id=root_mdui_logoHeight", "targets": [ - ["id=/mdui/logoHeight", "id"], - ["name=field25", "name"], - ["css=#\\/mdui\\/logoHeight", "css:finder"], - ["xpath=//input[@id='/mdui/logoHeight']", "xpath:attributes"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/integer-component/div/input", "xpath:position"] + ["id=root_mdui_logoHeight", "id"], + ["css=#root_mdui_logoHeight", "css:finder"], + ["xpath=//input[@id='root_mdui_logoHeight']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div[2]/div[3]/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/input", "xpath:position"] ], "value": "300" }, { @@ -494,20 +545,20 @@ "id": "88054c63-d468-4340-b4d3-c69fb6ed6f96", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/protocolSupportEnum", + "target": "id=root_serviceProviderSsoDescriptor_protocolSupportEnum", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: SAML 2']", "xpath:attributes"], - ["xpath=//select[@id='field28']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'SAML 2')]", "xpath:innerText"] + ["id=root_serviceProviderSsoDescriptor_protocolSupportEnum", "id"], + ["css=#root_serviceProviderSsoDescriptor_protocolSupportEnum", "css:finder"], + ["xpath=//select[@id='root_serviceProviderSsoDescriptor_protocolSupportEnum']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], "value": "" }, { "id": "c77b3648-fce1-46f9-aec9-ca88c90d4c92", "comment": "", "command": "select", - "target": "id=/serviceProviderSsoDescriptor/protocolSupportEnum", + "target": "id=root_serviceProviderSsoDescriptor_protocolSupportEnum", "targets": [ ["id=/serviceProviderSsoDescriptor/protocolSupportEnum", "id"], ["name=field28", "name"], @@ -520,11 +571,13 @@ "id": "aec93dce-3142-4df3-b09d-735c70d1197b", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -538,13 +591,12 @@ "id": "a0102f51-f1d8-4c38-9170-482022ea7397", "comment": "", "command": "click", - "target": "css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/0-container .btn", + "target": "css=.toggle-button", "targets": [ - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/0-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/serviceProviderSsoDescriptor/nameIdFormats/0-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -558,23 +610,29 @@ "id": "9033e5ad-4255-4aa7-a878-c7beab69ee8e", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/0__option--0", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0-item-0", "targets": [ - ["id=/serviceProviderSsoDescriptor/nameIdFormats/0__option--0", "id"], - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/0__option--0", "css:finder"], - ["xpath=//li[@id='/serviceProviderSsoDescriptor/nameIdFormats/0__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/serviceProviderSsoDescriptor/nameIdFormats/0__listbox']/li", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li", "xpath:position"] + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0-item-0", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_0']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified')]", "xpath:innerText"] ], "value": "" }, { "id": "c21b1d7a-9325-4d70-887d-387c7a042c08", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -588,12 +646,12 @@ "id": "c1534880-c4e5-4fbd-b200-c28f9f556ab9", "comment": "", "command": "click", - "target": "css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/1-container .btn", + "target": "css=.mt-2:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/1-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/serviceProviderSsoDescriptor/nameIdFormats/1-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -607,24 +665,29 @@ "id": "d07b2d83-3699-4f48-90e8-6fc883d3a02a", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/1__option--1", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1-item-1", "targets": [ - ["id=/serviceProviderSsoDescriptor/nameIdFormats/1__option--1", "id"], - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/1__option--1", "css:finder"], - ["xpath=//li[@id='/serviceProviderSsoDescriptor/nameIdFormats/1__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/serviceProviderSsoDescriptor/nameIdFormats/1__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[2]", "xpath:position"] + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1-item-1", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_1']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress')]", "xpath:innerText"] ], "value": "" }, { "id": "2c77ecbc-45cc-471c-9e39-f87ec06a9385", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -638,12 +701,12 @@ "id": "97a98737-862d-4567-8b20-c5c991444ed0", "comment": "", "command": "click", - "target": "css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/2-container .btn", + "target": "css=.mt-2:nth-child(3) .toggle-button", "targets": [ - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/2-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], - ["xpath=//div[@id='/serviceProviderSsoDescriptor/nameIdFormats/2-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(3) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -657,24 +720,29 @@ "id": "686e004c-2b0f-4308-8622-b04bc05a50a9", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/2__option--2", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2-item-2", "targets": [ - ["id=/serviceProviderSsoDescriptor/nameIdFormats/2__option--2", "id"], - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/2__option--2", "css:finder"], - ["xpath=//li[@id='/serviceProviderSsoDescriptor/nameIdFormats/2__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/serviceProviderSsoDescriptor/nameIdFormats/2__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2-item-2", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_2']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent')]", "xpath:innerText"] ], "value": "" }, { "id": "104367d3-f250-4439-8721-32dcf9f25e0c", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -688,12 +756,12 @@ "id": "e2e8d5d4-8b6a-42d5-9fe7-abb8a84216e3", "comment": "", "command": "click", - "target": "css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/3-container .btn", + "target": "css=.mt-2:nth-child(4) .toggle-button", "targets": [ - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/3-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], - ["xpath=//div[@id='/serviceProviderSsoDescriptor/nameIdFormats/3-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(4) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[15]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div[2]/div[4]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -707,30 +775,36 @@ "id": "b6ac5230-772b-44bc-b9d1-6ae8a58e0368", "comment": "", "command": "click", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/3__option--3", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3-item-3", "targets": [ - ["id=/serviceProviderSsoDescriptor/nameIdFormats/3__option--3", "id"], - ["css=#\\/serviceProviderSsoDescriptor\\/nameIdFormats\\/3__option--3", "css:finder"], - ["xpath=//li[@id='/serviceProviderSsoDescriptor/nameIdFormats/3__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/serviceProviderSsoDescriptor/nameIdFormats/3__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3-item-3", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:transient", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_3']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:transient')]", "xpath:innerText"] ], "value": "" }, { "id": "d135ef80-69d8-4cd1-b581-5e1973342082", "comment": "", "command": "click", - "target": "css=.btn-success > translate-i18n", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "23fd8856-32df-48ed-a198-a74e8ca71b10", "comment": "", "command": "type", - "target": "id=/serviceProviderSsoDescriptor/nameIdFormats/4", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[5]/div/div[1]/div/div[2]/div/div/div[1]/div/div/div[2]/div[5]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ ["id=field34", "id"], ["css=#field34", "css:finder"], @@ -739,6 +813,22 @@ ["xpath=//li[5]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] ], "value": "somethingElse" + }, { + "id": "ce53cbc9-f15b-416c-9201-a56366e1837f", + "comment": "", + "command": "click", + "target": "id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4-item-4", + "targets": [ + ["id=option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4-item-4", "id"], + ["linkText=somethingElse", "linkText"], + ["css=#option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4-item-4", "css:finder"], + ["xpath=//a[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4-item-4']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_serviceProviderSsoDescriptor_nameIdFormats_4']/a[5]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[5]", "xpath:href"], + ["xpath=//a[5]", "xpath:position"], + ["xpath=//a[contains(.,'somethingElse')]", "xpath:innerText"] + ], + "value": "" }, { "id": "4f61120b-7c6b-4f8e-8543-898298451a56", "comment": "", @@ -753,23 +843,25 @@ "id": "0de0345e-c9d2-4904-b797-a36965c5d82c", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "62ade28b-19d4-4c54-b179-0d36312c578f", "comment": "", "command": "click", - "target": "id=/logoutEndpoints/0/url", + "target": "id=root_logoutEndpoints_0_url", "targets": [ - ["id=/logoutEndpoints/0/url", "id"], - ["name=field38", "name"], - ["css=#\\/logoutEndpoints\\/0\\/url", "css:finder"], - ["xpath=//input[@id='/logoutEndpoints/0/url']", "xpath:attributes"], + ["id=root_logoutEndpoints_0_url", "id"], + ["css=#root_logoutEndpoints_0_url", "css:finder"], + ["xpath=//input[@id='root_logoutEndpoints_0_url']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -777,12 +869,12 @@ "id": "517e5991-197d-42fd-86ff-4da5fd04949b", "comment": "", "command": "type", - "target": "id=/logoutEndpoints/0/url", + "target": "id=root_logoutEndpoints_0_url", "targets": [ - ["id=field38", "id"], - ["name=field38", "name"], - ["css=#field38", "css:finder"], - ["xpath=//input[@id='field38']", "xpath:attributes"], + ["id=root_logoutEndpoints_0_url", "id"], + ["css=#root_logoutEndpoints_0_url", "css:finder"], + ["xpath=//input[@id='root_logoutEndpoints_0_url']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "http://test.org/logout" @@ -790,25 +882,25 @@ "id": "034f6a60-6b2d-42f1-adb4-515c8a750953", "comment": "", "command": "click", - "target": "id=/logoutEndpoints/0/bindingType", + "target": "id=root_logoutEndpoints_0_bindingType", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST']", "xpath:attributes"], - ["xpath=//select[@id='field39']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST')]", "xpath:innerText"] + ["id=root_logoutEndpoints_0_bindingType", "id"], + ["css=#root_logoutEndpoints_0_bindingType", "css:finder"], + ["xpath=//select[@id='root_logoutEndpoints_0_bindingType']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], "value": "" }, { "id": "6967d0bb-dbf7-4f57-9e55-6de71abd69c1", "comment": "", "command": "select", - "target": "id=/logoutEndpoints/0/bindingType", + "target": "id=root_logoutEndpoints_0_bindingType", "targets": [ - ["id=/logoutEndpoints/0/bindingType", "id"], - ["name=field39", "name"], - ["css=#\\/logoutEndpoints\\/0\\/bindingType", "css:finder"], - ["xpath=//select[@id='/logoutEndpoints/0/bindingType']", "xpath:attributes"], + ["id=root_logoutEndpoints_0_bindingType", "id"], + ["css=#root_logoutEndpoints_0_bindingType", "css:finder"], + ["xpath=//select[@id='root_logoutEndpoints_0_bindingType']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], ["xpath=//select", "xpath:position"] ], "value": "label=urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" @@ -816,61 +908,65 @@ "id": "542f9b37-a63d-4acb-ba3e-2ac3706b6667", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "39dedb16-bcd2-496a-af85-7d20a129593b", "comment": "", "command": "click", - "target": "id=/logoutEndpoints/1/url", + "target": "id=root_logoutEndpoints_1_url", "targets": [ - ["id=/logoutEndpoints/1/url", "id"], - ["name=field41", "name"], - ["css=#\\/logoutEndpoints\\/1\\/url", "css:finder"], - ["xpath=//input[@id='/logoutEndpoints/1/url']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_logoutEndpoints_1_url", "id"], + ["css=#root_logoutEndpoints_1_url", "css:finder"], + ["xpath=//input[@id='root_logoutEndpoints_1_url']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "d25f708c-f72a-4fb7-88c1-a25a61d9f72a", "comment": "", "command": "type", - "target": "id=/logoutEndpoints/1/url", + "target": "id=root_logoutEndpoints_1_url", "targets": [ - ["id=field41", "id"], - ["name=field41", "name"], - ["css=#field41", "css:finder"], - ["xpath=//input[@id='field41']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_logoutEndpoints_1_url", "id"], + ["css=#root_logoutEndpoints_1_url", "css:finder"], + ["xpath=//input[@id='root_logoutEndpoints_1_url']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "http://test.org/logout2" }, { "id": "bee9600e-b6db-484a-9b87-d7c657911108", "comment": "", "command": "click", - "target": "id=/logoutEndpoints/1/bindingType", + "target": "id=root_logoutEndpoints_1_bindingType", "targets": [ - ["css=#field42 > option:nth-child(3)", "css:finder"], - ["xpath=(//option[@value='2: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redir'])[2]", "xpath:attributes"], - ["xpath=//select[@id='field42']/option[3]", "xpath:idRelative"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/select-component/div/select/option[3]", "xpath:position"] + ["id=root_logoutEndpoints_1_bindingType", "id"], + ["css=#root_logoutEndpoints_1_bindingType", "css:finder"], + ["xpath=//select[@id='root_logoutEndpoints_1_bindingType']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:position"] ], "value": "" }, { "id": "e0e7ef9b-4ed1-4df2-b501-9cbb855baa7f", "comment": "", "command": "select", - "target": "id=/logoutEndpoints/1/bindingType", + "target": "id=root_logoutEndpoints_1_bindingType", "targets": [ - ["id=/logoutEndpoints/1/bindingType", "id"], - ["name=field42", "name"], - ["css=#\\/logoutEndpoints\\/1\\/bindingType", "css:finder"], - ["xpath=//select[@id='/logoutEndpoints/1/bindingType']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/select-component/div/select", "xpath:position"] + ["id=root_logoutEndpoints_1_bindingType", "id"], + ["css=#root_logoutEndpoints_1_bindingType", "css:finder"], + ["xpath=//select[@id='root_logoutEndpoints_1_bindingType']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[6]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:position"] ], "value": "label=urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" }, { @@ -883,91 +979,84 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "6c794e94-9c64-4683-816a-380432f2ed79", - "comment": "", - "command": "click", - "target": "id=/securityInfo/x509CertificateAvailable.true", - "targets": [ - ["id=/securityInfo/x509CertificateAvailable.true", "id"], - ["css=#\\/securityInfo\\/x509CertificateAvailable\\.true", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509CertificateAvailable.true']", "xpath:attributes"], - ["xpath=//input", "xpath:position"] - ], - "value": "" }, { "id": "f0ade90e-2c31-4a77-b936-3b2a00388477", "comment": "", "command": "click", - "target": "id=/securityInfo/authenticationRequestsSigned.true", + "target": "id=root_securityInfo_authenticationRequestsSigned-value.true", "targets": [ - ["id=/securityInfo/authenticationRequestsSigned.true", "id"], - ["css=#\\/securityInfo\\/authenticationRequestsSigned\\.true", "css:finder"], - ["xpath=//input[@id='/securityInfo/authenticationRequestsSigned.true']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div/label/input", "xpath:position"] + ["id=root_securityInfo_authenticationRequestsSigned-value.true", "id"], + ["name=root_securityInfo_authenticationRequestsSigned", "name"], + ["css=#root_securityInfo_authenticationRequestsSigned-value\\.true", "css:finder"], + ["xpath=//input[@id='root_securityInfo_authenticationRequestsSigned-value.true']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { "id": "e26eda6f-1897-42e2-9ea9-671b1ff88874", "comment": "", "command": "click", - "target": "id=/securityInfo/wantAssertionsSigned.true", + "target": "id=root_securityInfo_wantAssertionsSigned-value.true", "targets": [ - ["id=/securityInfo/wantAssertionsSigned.true", "id"], - ["css=#\\/securityInfo\\/wantAssertionsSigned\\.true", "css:finder"], - ["xpath=//input[@id='/securityInfo/wantAssertionsSigned.true']", "xpath:attributes"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div/label/input", "xpath:position"] + ["id=root_securityInfo_wantAssertionsSigned-value.true", "id"], + ["name=root_securityInfo_wantAssertionsSigned", "name"], + ["css=#root_securityInfo_wantAssertionsSigned-value\\.true", "css:finder"], + ["xpath=//input[@id='root_securityInfo_wantAssertionsSigned-value.true']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "3e11e54a-1b36-43ed-a8e5-d91f1fbed991", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/0/name", + "target": "id=root_securityInfo_x509Certificates_0_name", "targets": [ - ["id=/securityInfo/x509Certificates/0/name", "id"], - ["name=field50", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/0\\/name", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509Certificates/0/name']", "xpath:attributes"], - ["xpath=//div/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_0_name", "id"], + ["css=#root_securityInfo_x509Certificates_0_name", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_0_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "5acb8e19-16a3-4139-a961-1b58c11c4681", "comment": "", "command": "type", - "target": "id=/securityInfo/x509Certificates/0/name", + "target": "id=root_securityInfo_x509Certificates_0_name", "targets": [ - ["id=field50", "id"], - ["name=field50", "name"], - ["css=#field50", "css:finder"], - ["xpath=//input[@id='field50']", "xpath:attributes"], - ["xpath=//div/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_0_name", "id"], + ["css=#root_securityInfo_x509Certificates_0_name", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_0_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "Cert 1 Name" }, { "id": "23ff8b87-ac6c-4f82-a779-aa91be11f49c", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/0/type.0", + "target": "id=root_securityInfo_x509Certificates_0_type-signing", "targets": [ - ["id=/securityInfo/x509Certificates/0/type.0", "id"], - ["name=field55", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/0\\/type\\.0", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509Certificates/0/type.0']", "xpath:attributes"], - ["xpath=//div/div/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_0_type-signing", "id"], + ["name=root_securityInfo_x509Certificates_0_type", "name"], + ["css=#root_securityInfo_x509Certificates_0_type-signing", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_0_type-signing']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "dd15088c-ddc9-42fd-8f8d-f73338be71b6", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/0/value", + "target": "id=root_securityInfo_x509Certificates_0_value", "targets": [ - ["id=/securityInfo/x509Certificates/0/value", "id"], - ["name=field52", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/0\\/value", "css:finder"], - ["xpath=//textarea[@id='/securityInfo/x509Certificates/0/value']", "xpath:attributes"], + ["id=root_securityInfo_x509Certificates_0_value", "id"], + ["css=#root_securityInfo_x509Certificates_0_value", "css:finder"], + ["xpath=//textarea[@id='root_securityInfo_x509Certificates_0_value']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/textarea", "xpath:idRelative"], ["xpath=//textarea", "xpath:position"] ], "value": "" @@ -975,11 +1064,12 @@ "id": "813bf709-6c73-41ac-837a-5be076fa43c7", "comment": "", "command": "type", - "target": "id=/securityInfo/x509Certificates/0/value", + "target": "id=root_securityInfo_x509Certificates_0_value", "targets": [ - ["name=field52", "name"], - ["css=.text-widget", "css:finder"], - ["xpath=//textarea[@name='field52']", "xpath:attributes"], + ["id=root_securityInfo_x509Certificates_0_value", "id"], + ["css=#root_securityInfo_x509Certificates_0_value", "css:finder"], + ["xpath=//textarea[@id='root_securityInfo_x509Certificates_0_value']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/textarea", "xpath:idRelative"], ["xpath=//textarea", "xpath:position"] ], "value": "This is cert 1." @@ -987,73 +1077,78 @@ "id": "fcf4cc15-54f4-4add-a093-e7ba5f2dc556", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[8]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "cbe577f6-3d18-49d9-95ab-2e597e5308a6", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/1/name", + "target": "id=root_securityInfo_x509Certificates_1_name", "targets": [ - ["id=/securityInfo/x509Certificates/1/name", "id"], - ["name=field54", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/1\\/name", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509Certificates/1/name']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_0_name", "id"], + ["css=#root_securityInfo_x509Certificates_0_name", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_0_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "ae98e813-77f4-424e-9141-d48e6127d9b6", "comment": "", "command": "type", - "target": "id=/securityInfo/x509Certificates/1/name", + "target": "id=root_securityInfo_x509Certificates_1_name", "targets": [ - ["id=field54", "id"], - ["name=field54", "name"], - ["css=#field54", "css:finder"], - ["xpath=//input[@id='field54']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_0_name", "id"], + ["css=#root_securityInfo_x509Certificates_0_name", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_0_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "Cert 2 Name" }, { "id": "835ad053-0a10-4606-a148-c7ba36be316f", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/1/type.1", + "target": "id=root_securityInfo_x509Certificates_1_type-encryption", "targets": [ - ["id=/securityInfo/x509Certificates/1/type.1", "id"], - ["css=#\\/securityInfo\\/x509Certificates\\/1\\/type\\.1", "css:finder"], - ["xpath=//input[@id='/securityInfo/x509Certificates/1/type.1']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-radio-widget/div/div[2]/input", "xpath:position"] + ["id=root_securityInfo_x509Certificates_0_type-encryption", "id"], + ["css=#root_securityInfo_x509Certificates_0_type-encryption", "css:finder"], + ["xpath=//input[@id='root_securityInfo_x509Certificates_0_type-encryption']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "e272cafa-3aba-4aff-972e-b1d45e627b88", "comment": "", "command": "click", - "target": "id=/securityInfo/x509Certificates/1/value", + "target": "id=root_securityInfo_x509Certificates_1_value", "targets": [ - ["id=/securityInfo/x509Certificates/1/value", "id"], - ["name=field56", "name"], - ["css=#\\/securityInfo\\/x509Certificates\\/1\\/value", "css:finder"], - ["xpath=//textarea[@id='/securityInfo/x509Certificates/1/value']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[3]/sf-form-element/div/sf-widget-chooser/textarea-component/div/textarea", "xpath:position"] + ["id=root_securityInfo_x509Certificates_0_value", "id"], + ["css=#root_securityInfo_x509Certificates_0_value", "css:finder"], + ["xpath=//textarea[@id='root_securityInfo_x509Certificates_0_value']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] ], "value": "" }, { "id": "ae42d668-92ba-4cb8-9daf-a2a64ac18404", "comment": "", "command": "type", - "target": "id=/securityInfo/x509Certificates/1/value", + "target": "id=root_securityInfo_x509Certificates_1_value", "targets": [ - ["name=field56", "name"], - ["css=.ng-untouched:nth-child(3)", "css:finder"], - ["xpath=//textarea[@name='field56']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[3]/sf-form-element/div/sf-widget-chooser/textarea-component/div/textarea", "xpath:position"] + ["id=root_securityInfo_x509Certificates_0_value", "id"], + ["css=#root_securityInfo_x509Certificates_0_value", "css:finder"], + ["xpath=//textarea[@id='root_securityInfo_x509Certificates_0_value']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[7]/div/div/div/div/div/div[3]/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] ], "value": "This is cert 2." }, { @@ -1070,23 +1165,25 @@ "id": "573c9f4c-c677-4175-96c5-3aaaf86e5ac1", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "50c1a3a1-b51c-41f9-81ff-d3d2894861ad", "comment": "", "command": "click", - "target": "id=/assertionConsumerServices/0/locationUrl", + "target": "id=root_assertionConsumerServices_0_locationUrl", "targets": [ - ["id=/assertionConsumerServices/0/locationUrl", "id"], - ["name=field60", "name"], - ["css=#\\/assertionConsumerServices\\/0\\/locationUrl", "css:finder"], - ["xpath=//input[@id='/assertionConsumerServices/0/locationUrl']", "xpath:attributes"], + ["id=root_assertionConsumerServices_0_locationUrl", "id"], + ["css=#root_assertionConsumerServices_0_locationUrl", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_0_locationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" @@ -1094,12 +1191,12 @@ "id": "6ff4002a-1c57-4778-b402-f917efaa5194", "comment": "", "command": "type", - "target": "id=/assertionConsumerServices/0/locationUrl", + "target": "id=root_assertionConsumerServices_0_locationUrl", "targets": [ - ["id=field60", "id"], - ["name=field60", "name"], - ["css=#field60", "css:finder"], - ["xpath=//input[@id='field60']", "xpath:attributes"], + ["id=root_assertionConsumerServices_0_locationUrl", "id"], + ["css=#root_assertionConsumerServices_0_locationUrl", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_0_locationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "http://test.org/assert" @@ -1107,25 +1204,25 @@ "id": "e81c5045-98c3-499c-bff5-2645efa4c55d", "comment": "", "command": "click", - "target": "id=/assertionConsumerServices/0/binding", + "target": "id=root_assertionConsumerServices_0_binding", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST']", "xpath:attributes"], - ["xpath=//select[@id='field61']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST')]", "xpath:innerText"] + ["id=root_assertionConsumerServices_0_binding", "id"], + ["css=#root_assertionConsumerServices_0_binding", "css:finder"], + ["xpath=//select[@id='root_assertionConsumerServices_0_binding']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], "value": "" }, { "id": "24c810c8-747a-4ae2-91e5-16685d589f21", "comment": "", "command": "select", - "target": "id=/assertionConsumerServices/0/binding", + "target": "id=root_assertionConsumerServices_0_binding", "targets": [ - ["id=/assertionConsumerServices/0/binding", "id"], - ["name=field61", "name"], - ["css=#\\/assertionConsumerServices\\/0\\/binding", "css:finder"], - ["xpath=//select[@id='/assertionConsumerServices/0/binding']", "xpath:attributes"], + ["id=root_assertionConsumerServices_0_binding", "id"], + ["css=#root_assertionConsumerServices_0_binding", "css:finder"], + ["xpath=//select[@id='root_assertionConsumerServices_0_binding']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], ["xpath=//select", "xpath:position"] ], "value": "label=urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" @@ -1133,72 +1230,78 @@ "id": "c221b1f5-2961-4cbd-a545-1e34a09b8153", "comment": "", "command": "click", - "target": "css=.custom-control-label", + "target": "id=root_assertionConsumerServices_0_makeDefault", "targets": [ - ["css=.custom-control-label", "css:finder"], - ["xpath=//div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Mark as Default')]", "xpath:innerText"] + ["id=root_assertionConsumerServices_0_makeDefault", "id"], + ["css=#root_assertionConsumerServices_0_makeDefault", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_0_makeDefault']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div[3]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "cb058717-f20f-4a54-81e5-9a7dcf66ec0e", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "f9998203-830b-44d3-8392-45b737544177", "comment": "", "command": "click", - "target": "id=/assertionConsumerServices/1/locationUrl", + "target": "id=root_assertionConsumerServices_1_locationUrl", "targets": [ - ["id=/assertionConsumerServices/1/locationUrl", "id"], - ["name=field64", "name"], - ["css=#\\/assertionConsumerServices\\/1\\/locationUrl", "css:finder"], - ["xpath=//input[@id='/assertionConsumerServices/1/locationUrl']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_assertionConsumerServices_1_locationUrl", "id"], + ["css=#root_assertionConsumerServices_1_locationUrl", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_1_locationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "d5cbf5e8-7c5b-45f7-8645-dd9f9d39922e", "comment": "", "command": "type", - "target": "id=/assertionConsumerServices/1/locationUrl", + "target": "id=root_assertionConsumerServices_1_locationUrl", "targets": [ - ["id=field64", "id"], - ["name=field64", "name"], - ["css=#field64", "css:finder"], - ["xpath=//input[@id='field64']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_assertionConsumerServices_1_locationUrl", "id"], + ["css=#root_assertionConsumerServices_1_locationUrl", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_1_locationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "http://test.org/assert2" }, { "id": "74de4187-3d1e-4a4d-af8e-966f00649ab8", "comment": "", "command": "click", - "target": "id=/assertionConsumerServices/1/binding", + "target": "id=root_assertionConsumerServices_1_binding", "targets": [ - ["css=#field65 > option:nth-child(3)", "css:finder"], - ["xpath=(//option[@value='2: urn:oasis:names:tc:SAML:1.0:profiles:browser-po'])[2]", "xpath:attributes"], - ["xpath=//select[@id='field65']/option[3]", "xpath:idRelative"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/select-component/div/select/option[3]", "xpath:position"] + ["id=root_assertionConsumerServices_1_binding", "id"], + ["css=#root_assertionConsumerServices_1_binding", "css:finder"], + ["xpath=//select[@id='root_assertionConsumerServices_1_binding']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:position"] ], "value": "" }, { "id": "929c1047-f455-418b-b23e-a383d681f028", "comment": "", "command": "select", - "target": "id=/assertionConsumerServices/1/binding", + "target": "id=root_assertionConsumerServices_1_binding", "targets": [ - ["id=/assertionConsumerServices/1/binding", "id"], - ["name=field65", "name"], - ["css=#\\/assertionConsumerServices\\/1\\/binding", "css:finder"], - ["xpath=//select[@id='/assertionConsumerServices/1/binding']", "xpath:attributes"], - ["xpath=//li[2]/div/div/div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div[2]/sf-form-element/div/sf-widget-chooser/select-component/div/select", "xpath:position"] + ["id=root_assertionConsumerServices_1_binding", "id"], + ["css=#root_assertionConsumerServices_1_binding", "css:finder"], + ["xpath=//select[@id='root_assertionConsumerServices_1_binding']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div/select", "xpath:position"] ], "value": "label=urn:oasis:names:tc:SAML:1.0:profiles:browser-post" }, { @@ -1215,101 +1318,117 @@ "id": "134bf1f3-1e86-49e7-91de-185e513b02be", "comment": "", "command": "click", - "target": "css=div:nth-child(1) > sf-form-element > .has-success .custom-control-label", + "target": "id=root_relyingPartyOverrides_signAssertion", "targets": [ - ["css=div:nth-child(1) > sf-form-element > .has-success .custom-control-label", "css:finder"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Sign the Assertion?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_signAssertion", "id"], + ["css=#root_relyingPartyOverrides_signAssertion", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_signAssertion']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { "id": "5cd1ae5f-678a-4be8-a03f-b290006e52fe", "comment": "", "command": "click", - "target": "css=div:nth-child(2) > sf-form-element .custom-control-label", + "target": "id=root_relyingPartyOverrides_dontSignResponse", "targets": [ - ["css=div:nth-child(2) > sf-form-element .custom-control-label", "css:finder"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"] + ["id=root_relyingPartyOverrides_dontSignResponse", "id"], + ["css=#root_relyingPartyOverrides_dontSignResponse", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_dontSignResponse']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "5895d555-6ef5-4344-b177-00e905f9007c", "comment": "", "command": "click", - "target": "css=div:nth-child(3) > sf-form-element .custom-control-label", + "target": "id=root_relyingPartyOverrides_turnOffEncryption", "targets": [ - ["css=div:nth-child(3) > sf-form-element .custom-control-label", "css:finder"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Turn off Encryption of Response?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_turnOffEncryption", "id"], + ["css=#root_relyingPartyOverrides_turnOffEncryption", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_turnOffEncryption']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[3]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "8d834380-e312-494d-9b4b-c5b798cc9b15", "comment": "", "command": "click", - "target": "css=div:nth-child(4) .custom-control-label", + "target": "id=root_relyingPartyOverrides_useSha", "targets": [ - ["css=div:nth-child(4) .custom-control-label", "css:finder"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Use SHA1 Signing Algorithm?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_useSha", "id"], + ["css=#root_relyingPartyOverrides_useSha", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_useSha']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[4]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "bcf532a9-ba5a-4ca1-a342-dde53bc4a592", "comment": "", "command": "click", - "target": "css=div:nth-child(5) .custom-control-label", + "target": "id=root_relyingPartyOverrides_ignoreAuthenticationMethod", "targets": [ - ["css=div:nth-child(5) .custom-control-label", "css:finder"], - ["xpath=//div[5]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Ignore any SP-Requested Authentication Method?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_ignoreAuthenticationMethod", "id"], + ["css=#root_relyingPartyOverrides_ignoreAuthenticationMethod", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_ignoreAuthenticationMethod']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[5]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "45f3df44-1c34-4649-aedb-14207e9ce999", "comment": "", "command": "click", - "target": "css=div:nth-child(6) .custom-control-label", + "target": "id=root_relyingPartyOverrides_omitNotBefore", "targets": [ - ["css=div:nth-child(6) .custom-control-label", "css:finder"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Omit Not Before Condition?')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_omitNotBefore", "id"], + ["css=#root_relyingPartyOverrides_omitNotBefore", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_omitNotBefore']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[6]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "7ccb7d88-b113-4ee9-8582-b3d781fa8846", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/responderId", + "target": "id=root_relyingPartyOverrides_responderId", "targets": [ - ["id=/relyingPartyOverrides/responderId", "id"], - ["name=field121", "name"], - ["css=#\\/relyingPartyOverrides\\/responderId", "css:finder"], - ["xpath=//input[@id='/relyingPartyOverrides/responderId']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_relyingPartyOverrides_responderId", "id"], + ["css=#root_relyingPartyOverrides_responderId", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_responderId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[7]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "afe1b839-3421-4816-bf69-c804add681ba", "comment": "", "command": "type", - "target": "id=/relyingPartyOverrides/responderId", + "target": "id=root_relyingPartyOverrides_responderId", "targets": [ - ["id=field75", "id"], - ["name=field75", "name"], - ["css=#field75", "css:finder"], - ["xpath=//input[@id='field75']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_relyingPartyOverrides_responderId", "id"], + ["css=#root_relyingPartyOverrides_responderId", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_responderId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[7]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div/div/input", "xpath:position"] ], "value": "responder-id-123" }, { "id": "ba74d18d-0996-485f-8a9f-01a39428eb0c", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ - ["css=div:nth-child(8) .btn > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.row:nth-child(8) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -1323,13 +1442,12 @@ "id": "2a91666b-5453-4064-8923-c3384835b6fd", "comment": "", "command": "click", - "target": "css=.btn-outline-secondary", + "target": "css=.toggle-button", "targets": [ - ["css=.btn-outline-secondary", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/0-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[15]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div[2]/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1343,24 +1461,29 @@ "id": "6e8718ef-e053-48d8-91e5-f5128e371f56", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/0__option--0", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/0__option--0", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/0__option--0", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/0__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/0__listbox']/li", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_0-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_0']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified')]", "xpath:innerText"] ], "value": "" }, { "id": "ec3afb37-30b4-4d07-93a6-dcf022605532", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ - ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.row:nth-child(8) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -1374,12 +1497,9 @@ "id": "fd33610c-dbca-410d-b2a4-117a1b2b6a79", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/nameIdFormats\\/1-container .btn", + "target": "css=.mt-2:nth-child(2) .mr-2 .svg-inline--fa", "targets": [ - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/1-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[3]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/1-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(2) .mr-2 .svg-inline--fa", "css:finder"] ], "value": "" }, { @@ -1393,24 +1513,29 @@ "id": "3cd47415-5e57-4148-a40b-9571e6791f3f", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/1__option--1", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/1__option--1", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/1__option--1", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/1__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/1__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[2]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1", "id"], + ["linkText=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_1-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_1']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress')]", "xpath:innerText"] ], "value": "" }, { "id": "8b340d1f-4944-4d10-a4cd-5e79be6804ef", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ - ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.row:nth-child(8) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -1424,12 +1549,12 @@ "id": "208b33cf-f983-4a82-9b1b-19cdf2a937fc", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/nameIdFormats\\/2-container .btn", + "target": "css=.mt-2:nth-child(3) .toggle-button", "targets": [ - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/2-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/2-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(3) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[19]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1443,24 +1568,29 @@ "id": "b4beb2b3-8481-4431-9299-a39a4107f17f", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/2__option--2", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/2__option--2", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/2__option--2", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/2__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/2__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_2-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_2']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent')]", "xpath:innerText"] ], "value": "" }, { "id": "d6e7a640-a578-415b-9c1b-b2313b62ad46", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .d-flex > .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ - ["css=div:nth-child(8) .d-flex > .btn", "css:finder"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.row:nth-child(8) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { @@ -1474,12 +1604,12 @@ "id": "788a5b63-a75f-4aeb-9a5d-17c41e8f718e", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/nameIdFormats\\/3-container .btn", + "target": "css=.mt-2:nth-child(4) .toggle-button", "targets": [ - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/3-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], - ["xpath=//div[@id='/relyingPartyOverrides/nameIdFormats/3-container']/div/div/button", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button", "xpath:position"] + ["css=.mt-2:nth-child(4) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[21]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div[2]/div[4]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1493,30 +1623,36 @@ "id": "c82d6951-13e2-4d32-9e19-eac52bfdc188", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/3__option--3", + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3", "targets": [ - ["id=/relyingPartyOverrides/nameIdFormats/3__option--3", "id"], - ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/3__option--3", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/nameIdFormats/3__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/nameIdFormats/3__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:nameid-format:transient", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_3-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_3']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:nameid-format:transient')]", "xpath:innerText"] ], "value": "" }, { "id": "4c15be93-75be-4673-b703-07a705300d0f", "comment": "", "command": "click", - "target": "css=div:nth-child(8) .btn", + "target": "css=.row:nth-child(2) .array-add-button", "targets": [ - ["css=div:nth-child(8) .btn > translate-i18n", "css:finder"], - ["xpath=//div/button/translate-i18n", "xpath:position"] + ["css=.row:nth-child(8) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[8]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "1a1b509e-1768-4291-820d-26f4b73a9d71", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/nameIdFormats/4", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[2]/div/div/div[1]/div/div/div[2]/div[5]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ ["id=/relyingPartyOverrides/nameIdFormats/4", "id"], ["css=#\\/relyingPartyOverrides\\/nameIdFormats\\/4", "css:finder"], @@ -1529,7 +1665,7 @@ "id": "433d6e9d-9d03-4042-9ee0-6284570f8a3c", "comment": "", "command": "type", - "target": "id=/relyingPartyOverrides/nameIdFormats/4", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[2]/div/div/div[1]/div/div/div[2]/div[5]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ ["id=field83", "id"], ["css=#field83", "css:finder"], @@ -1542,8 +1678,17 @@ "id": "c8bb3bee-3d61-4324-a3aa-38b78232b969", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .btn", - "targets": [], + "target": "id=option-selector-root_relyingPartyOverrides_nameIdFormats_4-item-4", + "targets": [ + ["id=option-selector-root_relyingPartyOverrides_nameIdFormats_4-item-4", "id"], + ["linkText=somethingElse", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_nameIdFormats_4-item-4", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_4-item-4']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_nameIdFormats_4']/a[5]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[5]", "xpath:href"], + ["xpath=//a[5]", "xpath:position"], + ["xpath=//a[contains(.,'somethingElse')]", "xpath:innerText"] + ], "value": "" }, { "id": "0b950018-bd12-433a-b198-682d4ea55a90", @@ -1552,11 +1697,30 @@ "target": "500", "targets": [], "value": "" + }, { + "id": "a26984fc-83f5-41fc-ae39-8a0f1538f92f", + "comment": "", + "command": "click", + "target": "css=.row:nth-child(4) .array-add-button", + "targets": [ + ["css=.row:nth-child(9) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[25]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[9]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div/button", "xpath:position"] + ], + "value": "" + }, { + "id": "737d247b-346d-43e3-9df0-cb0b94a939b6", + "comment": "", + "command": "pause", + "target": "500", + "targets": [], + "value": "" }, { "id": "cbf15c4c-35d9-4f80-ba3d-bfe960048cd1", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/authenticationMethods\\/0-container .btn", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div/div/div[1]/div/div[1]/div/div/button", "targets": [ ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/0-container .btn", "css:finder"], ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], @@ -1575,23 +1739,28 @@ "id": "6c62d514-0143-49d9-97b3-6b7cb443df9d", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/0__option--0", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/0__option--0", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/0__option--0", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/authenticationMethods/0__option--0']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/authenticationMethods/0__listbox']/li", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0", "id"], + ["linkText=https://refeds.org/profile/mfa", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_0-item-0']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_0']/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#')]", "xpath:href"], + ["xpath=//div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'https://refeds.org/profile/mfa')]", "xpath:innerText"] ], "value": "" }, { "id": "ed769470-9c3f-4c23-bbed-85513dcea800", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .btn", + "target": "css=.row:nth-child(4) .array-add-button", "targets": [ - ["css=div:nth-child(9) .d-flex > .btn", "css:finder"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button", "xpath:position"] + ["css=.row:nth-child(9) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[25]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[9]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1605,7 +1774,7 @@ "id": "2b063eb8-f2d6-4a59-85bb-b04c467d9874", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/authenticationMethods\\/1-container .btn", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[2]/div/div[1]/div/div[1]/div/div/button", "targets": [ ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/1-container .btn", "css:finder"], ["xpath=(//button[@type='button'])[8]", "xpath:attributes"], @@ -1624,23 +1793,28 @@ "id": "5a32d59b-1ac3-4cd0-a2d8-0e934f8182fd", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/1__option--1", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/1__option--1", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/1__option--1", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/authenticationMethods/1__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/authenticationMethods/1__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[2]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[2]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_1-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_1']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken')]", "xpath:innerText"] ], "value": "" }, { "id": "892ddc96-970b-4dde-9189-0dc9ed197dab", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .btn", + "target": "css=.row:nth-child(4) .array-add-button", "targets": [ - ["css=div:nth-child(9) .d-flex > .btn", "css:finder"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button", "xpath:position"] + ["css=.row:nth-child(9) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[25]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[9]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -1654,7 +1828,7 @@ "id": "64e215d9-6e46-422f-882c-13b6fb102622", "comment": "", "command": "click", - "target": "css=#\\/relyingPartyOverrides\\/authenticationMethods\\/2-container .btn", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[3]/div/div[1]/div/div[1]/div/div/button", "targets": [ ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/2-container .btn", "css:finder"], ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], @@ -1673,30 +1847,35 @@ "id": "6a7bce1a-34be-4d4c-b732-d2f198e8b8a1", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/2__option--2", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2", "targets": [ - ["id=/relyingPartyOverrides/authenticationMethods/2__option--2", "id"], - ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/2__option--2", "css:finder"], - ["xpath=//li[@id='/relyingPartyOverrides/authenticationMethods/2__option--2']", "xpath:attributes"], - ["xpath=//ul[@id='/relyingPartyOverrides/authenticationMethods/2__listbox']/li[3]", "xpath:idRelative"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[3]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[3]", "xpath:position"] + ["id=option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2", "id"], + ["linkText=urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_2-item-2']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_2']/a[3]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[3]", "xpath:href"], + ["xpath=//a[3]", "xpath:position"], + ["xpath=//a[contains(.,'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport')]", "xpath:innerText"] ], "value": "" }, { "id": "f0dd4b79-eab5-4d4b-af2e-07ca661f8288", "comment": "", "command": "click", - "target": "css=div:nth-child(9) .btn", + "target": "css=.row:nth-child(4) .array-add-button", "targets": [ - ["css=div:nth-child(9) .btn > translate-i18n", "css:finder"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/div/button/translate-i18n", "xpath:position"] + ["css=.row:nth-child(9) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[25]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[9]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { "id": "dacd34b0-9e48-4838-b137-bf22dd027ed0", "comment": "", "command": "click", - "target": "id=/relyingPartyOverrides/authenticationMethods/3", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[4]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ ["id=/relyingPartyOverrides/authenticationMethods/3", "id"], ["css=#\\/relyingPartyOverrides\\/authenticationMethods\\/3", "css:finder"], @@ -1709,7 +1888,7 @@ "id": "cc9dd18b-ee87-4aa7-91f2-59f02834759b", "comment": "", "command": "type", - "target": "id=/relyingPartyOverrides/authenticationMethods/3", + "target": "xpath=//section/div[2]/div[2]/div/div/form/div/div[1]/div/div/div[9]/div/div[1]/div/div[4]/div/div/div[1]/div/div/div[2]/div[4]/div/div[1]/div/div[1]/div/div/div[1]/input[1]", "targets": [ ["id=field87", "id"], ["css=#field87", "css:finder"], @@ -1718,15 +1897,33 @@ ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/array-component/div/ul/li[4]/div/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/input", "xpath:position"] ], "value": "otherThings" + }, { + "id": "74827780-a9c2-49c6-a709-7578597bf20d", + "comment": "", + "command": "click", + "target": "id=option-selector-root_relyingPartyOverrides_authenticationMethods_3-item-3", + "targets": [ + ["id=option-selector-root_relyingPartyOverrides_authenticationMethods_3-item-3", "id"], + ["linkText=otherThings", "linkText"], + ["css=#option-selector-root_relyingPartyOverrides_authenticationMethods_3-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_3-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_relyingPartyOverrides_authenticationMethods_3']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'otherThings')]", "xpath:innerText"] + ], + "value": "" }, { "id": "7c85fe59-dc95-4328-a010-33d1a06a5ce5", "comment": "", "command": "click", - "target": "css=div:nth-child(10) .custom-control-label", + "target": "id=root_relyingPartyOverrides_forceAuthn", "targets": [ - ["css=div:nth-child(10) .custom-control-label", "css:finder"], - ["xpath=//div[10]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Force AuthN')]", "xpath:innerText"] + ["id=root_relyingPartyOverrides_forceAuthn", "id"], + ["css=#root_relyingPartyOverrides_forceAuthn", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_forceAuthn']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[9]/div/div/div/div[10]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[10]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { @@ -1739,15 +1936,22 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" + }, { + "id": "55520cbd-fef3-4286-b63c-63637afe5c71", + "comment": "", + "command": "waitForElementVisible", + "target": "css=.fa-check", + "targets": [ + ["css=.fa-check", "css:finder"] + ], + "value": "30000" }, { "id": "553dd570-b1bb-43bb-a469-63ee08a09794", "comment": "", "command": "click", "target": "css=.fa-check", "targets": [ - ["css=.fa-check", "css:finder"], - ["xpath=//button[@id='/attributeRelease.checkall']/i", "xpath:idRelative"], - ["xpath=//td[2]/button/i", "xpath:position"] + ["css=.fa-check", "css:finder"] ], "value": "" }, { @@ -1760,26 +1964,15 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "14ca713a-313d-4cda-82ca-a0b814ce81dc", - "comment": "", - "command": "click", - "target": "css=.custom-control-label", - "targets": [ - ["css=.custom-control-label", "css:finder"], - ["xpath=//label", "xpath:position"], - ["xpath=//label[contains(.,'Enable this service?')]", "xpath:innerText"] - ], - "value": "" }, { "id": "3baa7bd3-55c0-4d10-8aa3-c0daa63ec4d4", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(1) .text-truncate", + "target": "css=div:nth-child(2) > div:nth-child(2) > .d-flex > .text-truncate", "targets": [ - ["css=.d-block > primitive-property:nth-child(1) .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], - ["xpath=//div/span[2]", "xpath:position"], + ["css=div:nth-child(2) > div:nth-child(2) > .d-flex > .text-truncate", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section/div/div[2]/div[2]/div[2]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'test-1234')]", "xpath:innerText"] ], "value": "test-1234" @@ -1787,33 +1980,35 @@ "id": "0d355ff0-0449-49a7-ae75-14d7c405b97c", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(7) .py-2:nth-child(3) > .d-flex:nth-child(1) > .text-truncate", + "target": "css=.mb-4:nth-child(7) .py-2:nth-child(3) > .d-flex:nth-child(1) > .d-block", "targets": [ - ["css=.mb-4:nth-child(7) .py-2:nth-child(3) > .d-flex:nth-child(1) > .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[7]/div/div[2]/object-property/array-property/div/div[3]/div/div[2]", "xpath:idRelative"], - ["xpath=//section[7]/div/div[2]/object-property/array-property/div/div[3]/div/div[2]", "xpath:position"] + ["css=.mb-4:nth-child(7) .py-2:nth-child(3) > .d-flex:nth-child(1) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[7]/div/div[2]/div[2]/div/div[3]/div/span", "xpath:idRelative"], + ["xpath=//section[7]/div/div[2]/div[2]/div/div[3]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'http://test.org/assert2')]", "xpath:innerText"] ], "value": "http://test.org/assert2" }, { "id": "e53030b6-f344-4361-981d-b8303a721c5d", "comment": "", "command": "assertText", - "target": "css=array-property:nth-child(8) .border-0", + "target": "css=.mb-4:nth-child(4) .d-flex:nth-child(5) > .d-block", "targets": [ - ["css=array-property:nth-child(8) .border-0", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[8]/div/div[2]/object-property/object-property/array-property/div/ul/li[5]", "xpath:idRelative"], - ["xpath=//section[8]/div/div[2]/object-property/object-property/array-property/div/ul/li[5]", "xpath:position"] + ["css=.mb-4:nth-child(4) .d-flex:nth-child(5) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[4]/div/div[2]/div[2]/div/div[2]/ul/li[5]/span", "xpath:idRelative"], + ["xpath=//li[5]/span", "xpath:position"], + ["xpath=//span[contains(.,'somethingElse')]", "xpath:innerText"] ], "value": "somethingElse" }, { "id": "18636780-2feb-458f-97be-cf4a625b22e1", "comment": "", "command": "assertText", - "target": "css=.d-flex:nth-child(2) > .py-2 > span", + "target": "css=.justify-content-start:nth-child(2) > .py-2", "targets": [ - ["css=.d-flex:nth-child(2) > .py-2 > span", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[9]/div/div[2]/object-property/array-property/div/div[2]/div/span", "xpath:idRelative"], - ["xpath=//array-property/div/div[2]/div/span", "xpath:position"] + ["css=.justify-content-start:nth-child(2) > .py-2", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[9]/div/div[2]/div[2]/div[2]/div", "xpath:idRelative"], + ["xpath=//section[9]/div/div[2]/div[2]/div[2]/div", "xpath:position"] ], "value": "True" }, { @@ -1830,11 +2025,12 @@ "id": "4e0fa4f5-817f-41fb-9885-60f37b699436", "comment": "", "command": "waitForElementVisible", - "target": "css=tr > .text-right", + "target": "css=td:nth-child(1)", "targets": [ - ["css=tr > .text-right", "css:finder"], - ["xpath=//td[5]", "xpath:position"], - ["xpath=//td[contains(.,'Enabled')]", "xpath:innerText"] + ["css=td:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td", "xpath:idRelative"], + ["xpath=//td", "xpath:position"], + ["xpath=//td[contains(.,'Test Provider')]", "xpath:innerText"] ], "value": "10000" }, { @@ -1943,11 +2139,12 @@ "id": "01da89d4-e043-4f99-9d98-dcb42b9b4777", "comment": "", "command": "click", - "target": "css=.btn-link", + "target": "css=.px-3", "targets": [ - ["css=.btn-link", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div/button", "xpath:position"], + ["css=.px-3", "css:finder"], + ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/form/div/div/div/button", "xpath:idRelative"], + ["xpath=//form/div/div/div/button", "xpath:position"], ["xpath=//button[contains(.,'Clear')]", "xpath:innerText"] ], "value": "" @@ -1988,11 +2185,11 @@ "id": "16271513-203c-4528-870f-dcf73f4d81cb", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(1) .d-block:nth-child(2)", + "target": "css=div:nth-child(2) > div:nth-child(2) > .d-flex > .text-truncate", "targets": [ - ["css=.d-block > primitive-property:nth-child(1) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/span[2]", "xpath:idRelative"], - ["xpath=//div/span[2]", "xpath:position"], + ["css=div:nth-child(2) > div:nth-child(2) > .d-flex > .text-truncate", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[2]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'test-1234')]", "xpath:innerText"] ], "value": "test-1234" @@ -2000,22 +2197,23 @@ "id": "3f2c3eab-ecbf-45f3-bcdc-a5cad766b27c", "comment": "", "command": "assertText", - "target": "css=array-property:nth-child(5) .py-2:nth-child(2) > .d-flex:nth-child(3) > .text-truncate", + "target": "css=div:nth-child(2) > div:nth-child(4) > .py-2:nth-child(2) > .d-flex:nth-child(3) > .d-block", "targets": [ - ["css=array-property:nth-child(5) .py-2:nth-child(2) > .d-flex:nth-child(3) > .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/array-property/div/div[2]/div[3]/div[2]", "xpath:idRelative"], - ["xpath=//div[3]/div[2]", "xpath:position"] + ["css=div:nth-child(2) > div:nth-child(4) > .py-2:nth-child(2) > .d-flex:nth-child(3) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[4]/div[2]/div[3]/span", "xpath:idRelative"], + ["xpath=//div[3]/span", "xpath:position"], + ["xpath=//span[contains(.,'user@test.org')]", "xpath:innerText"] ], "value": "user@test.org" }, { "id": "467409c7-1007-4c45-80d2-0b4eea5199a0", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(2) primitive-property:nth-child(2) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(4) div:nth-child(2) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(2) primitive-property:nth-child(2) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[2]/div/div[2]/object-property/object-property/primitive-property[2]/div/span[2]", "xpath:idRelative"], - ["xpath=//section[2]/div/div[2]/object-property/object-property/primitive-property[2]/div/span[2]", "xpath:position"], + ["css=.mb-4:nth-child(4) div:nth-child(2) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[2]/div/div[2]/div[2]/div/div[2]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[2]/div/div[2]/div[2]/div/div[2]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'http://test.org/info')]", "xpath:innerText"] ], "value": "http://test.org/info" @@ -2023,63 +2221,58 @@ "id": "eaaf9d59-1466-4736-924c-56c9b3f7522f", "comment": "", "command": "assertText", - "target": "css=array-property:nth-child(2) .text-truncate:nth-child(2)", + "target": "css=.d-flex:nth-child(2) .d-flex:nth-child(2) > .d-block", "targets": [ - ["css=array-property:nth-child(2) .text-truncate:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[3]/div/div[2]/object-property/object-property/array-property/div/div/ul/li[2]", "xpath:idRelative"], - ["xpath=//div/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress')]", "xpath:innerText"] + ["css=.d-flex:nth-child(2) .d-flex:nth-child(2) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[3]/div/div[2]/div[2]/div/div[2]/ul/li[2]/span", "xpath:idRelative"], + ["xpath=//ul/li[2]/span", "xpath:position"], + ["xpath=//span[contains(.,'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress')]", "xpath:innerText"] ], "value": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" }, { "id": "2a23096f-d5cd-4727-af1b-130388117aa0", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(4) .py-2:nth-child(3) > .d-flex:nth-child(1) > .text-truncate", + "target": "css=.mb-4:nth-child(6) .py-2:nth-child(3) > .d-flex:nth-child(1) > .d-block", "targets": [ - ["css=.mb-4:nth-child(4) .py-2:nth-child(3) > .d-flex:nth-child(1) > .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[4]/div/div[2]/object-property/array-property/div/div[3]/div/div[2]", "xpath:idRelative"], - ["xpath=//section[4]/div/div[2]/object-property/array-property/div/div[3]/div/div[2]", "xpath:position"] + ["css=.mb-4:nth-child(6) .py-2:nth-child(3) > .d-flex:nth-child(1) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[4]/div/div[2]/div[2]/div/div[3]/div/span", "xpath:idRelative"], + ["xpath=//section[4]/div/div[2]/div[2]/div/div[3]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'http://test.org/logout2')]", "xpath:innerText"] ], "value": "http://test.org/logout2" - }, { - "id": "e1cba732-dd34-4c73-9d4c-89c440975dd8", - "comment": "", - "command": "runScript", - "target": "window.scrollTo(0,2060)", - "targets": [], - "value": "" }, { "id": "fe47ffd2-d2a0-4264-90fe-31b998f81ac2", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(5) primitive-property:nth-child(3) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(7) .p-2 > div > div > div:nth-child(3) .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(5) primitive-property:nth-child(3) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[5]/div/div[2]/object-property/object-property/primitive-property[3]/div/span[2]", "xpath:idRelative"], - ["xpath=//section[5]/div/div[2]/object-property/object-property/primitive-property[3]/div/span[2]", "xpath:position"] + ["css=.mb-4:nth-child(7) .p-2 > div > div > div:nth-child(3) .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[5]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[5]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:position"] ], "value": "true" }, { "id": "7300785c-b83e-49b8-97a6-d66516f6c133", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(6) .py-2:nth-child(2) > .d-flex:nth-child(1) > .text-truncate", + "target": "css=.mb-4:nth-child(8) .py-2:nth-child(2) > .d-flex:nth-child(1) > .d-block", "targets": [ - ["css=.mb-4:nth-child(6) .py-2:nth-child(2) > .d-flex:nth-child(1) > .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[6]/div/div[2]/object-property/array-property/div/div[2]/div/div[2]", "xpath:idRelative"], - ["xpath=//section[6]/div/div[2]/object-property/array-property/div/div[2]/div/div[2]", "xpath:position"] + ["css=.mb-4:nth-child(8) .py-2:nth-child(2) > .d-flex:nth-child(1) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[6]/div/div[2]/div[2]/div/div[2]/div/span", "xpath:idRelative"], + ["xpath=//section[6]/div/div[2]/div[2]/div/div[2]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'http://test.org/assert')]", "xpath:innerText"] ], "value": "http://test.org/assert" }, { "id": "951a21c9-4cd3-4989-8dc0-77760ca0dc95", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(7) primitive-property:nth-child(7) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(9) div:nth-child(3) .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(7) primitive-property:nth-child(7) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[7]/div/div[2]/object-property/object-property/primitive-property[7]/div/span[2]", "xpath:idRelative"], - ["xpath=//section[7]/div/div[2]/object-property/object-property/primitive-property[7]/div/span[2]", "xpath:position"], + ["css=.mb-4:nth-child(9) div:nth-child(3) .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[7]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[7]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'responder-id-123')]", "xpath:innerText"] ], "value": "responder-id-123" @@ -2087,63 +2280,77 @@ "id": "e8b794fc-20e2-4317-8bdd-73eee8e94951", "comment": "", "command": "assertText", - "target": "css=.d-flex:nth-child(3) > .py-2 > span", + "target": "css=.d-flex:nth-child(3) > .py-2", "targets": [ - ["css=.d-flex:nth-child(3) > .py-2 > span", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[8]/div/div[2]/object-property/array-property/div/div/div[3]/div/span", "xpath:idRelative"], - ["xpath=//section[8]/div/div[2]/object-property/array-property/div/div/div[3]/div/span", "xpath:position"] + ["css=.d-flex:nth-child(3) > .py-2", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[8]/div/div[2]/div[2]/div[3]/div", "xpath:idRelative"], + ["xpath=//section[8]/div/div[2]/div[2]/div[3]/div", "xpath:position"] ], "value": "True" }, { "id": "2c46cdcd-d5a5-47fe-aa7b-0120fd2fcfc9", "comment": "", "command": "click", - "target": "css=.mb-4:nth-child(1) .actions span", + "target": "css=.mb-4:nth-child(3) .edit-link", "targets": [ - ["css=.mb-4:nth-child(1) .actions span", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div/div/button/span", "xpath:idRelative"], - ["xpath=//div/button/span", "xpath:position"], - ["xpath=//span[contains(.,'Edit')]", "xpath:innerText"] + ["css=.mb-4:nth-child(3) .edit-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div/div/button", "xpath:idRelative"], + ["xpath=//section/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Edit')]", "xpath:innerText"] ], "value": "" - }, { - "id": "62348ea5-d2d9-426d-91ae-5e0f5871ad05", - "comment": "", - "command": "pause", - "target": "5000", - "targets": [], - "value": "" }, { "id": "c2fcb197-7e0d-4b64-82a5-ad24cf24126b", "comment": "", "command": "waitForElementEditable", - "target": "id=/serviceProviderName", - "targets": [], + "target": "id=root_serviceProviderName", + "targets": [ + ["id=root_serviceProviderName", "id"], + ["css=#root_serviceProviderName", "css:finder"], + ["xpath=//input[@id='root_serviceProviderName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "30000" + }, { + "id": "ca3cfb86-e43d-4540-8d37-b83ae95eee28", + "comment": "", + "command": "type", + "target": "id=root_serviceProviderName", + "targets": [], + "value": "" }, { "id": "99731068-2016-4a7f-8a38-febfb711d027", "comment": "", "command": "type", - "target": "id=/serviceProviderName", + "target": "id=root_serviceProviderName", "targets": [ - ["id=/serviceProviderName", "id"], - ["name=field93", "name"], - ["css=#\\/serviceProviderName", "css:finder"], - ["xpath=//input[@id='/serviceProviderName']", "xpath:attributes"], + ["id=root_serviceProviderName", "id"], + ["css=#root_serviceProviderName", "css:finder"], + ["xpath=//input[@id='root_serviceProviderName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "Service Provider v2" + }, { + "id": "1d5c5020-1ad9-4268-86de-8d1e4bf8ef66", + "comment": "", + "command": "type", + "target": "id=root_contacts_0_name", + "targets": [], + "value": "" }, { "id": "c6484ff1-8bf2-4442-8f73-13c7af38634a", "comment": "", "command": "type", - "target": "id=/contacts/0/name", + "target": "id=root_contacts_0_name", "targets": [ - ["id=/contacts/0/name", "id"], - ["name=field102", "name"], - ["css=#\\/contacts\\/0\\/name", "css:finder"], - ["xpath=//input[@id='/contacts/0/name']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-object/div/div/fieldset/div/div/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_contacts_0_name", "id"], + ["css=#root_contacts_0_name", "css:finder"], + ["xpath=//input[@id='root_contacts_0_name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div[2]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:position"] ], "value": "Test User v2" }, { @@ -2153,20 +2360,24 @@ "target": "css=.btn-info", "targets": [ ["css=.btn-info", "css:finder"], - ["xpath=//div[2]/button", "xpath:position"], - ["xpath=//button[contains(.,'Save')]", "xpath:innerText"] + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,' Save')]", "xpath:innerText"] ], "value": "" }, { "id": "c5985278-503e-4258-bba9-de7d2f157db0", "comment": "", "command": "click", - "target": "css=.btn-link:nth-child(1)", + "target": "linkText=Version History", "targets": [ - ["css=.btn-link:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/a/translate-i18n", "xpath:idRelative"], - ["xpath=//div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Version History')]", "xpath:innerText"] + ["linkText=Version History", "linkText"], + ["css=div:nth-child(1) > .btn-link", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/source/f99c17ec-8c9e-4da9-a11e-e5875156f819/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] ], "value": "" }, { @@ -2204,58 +2415,84 @@ }, { "id": "978829e9-fa70-4548-9a55-0e2ffa0df9a4", "comment": "", - "command": "pause", - "target": "5000", - "targets": [], - "value": "" + "command": "waitForElementVisible", + "target": "css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(2)", + "targets": [ + ["css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], + ["xpath=//div/span[2]", "xpath:position"] + ], + "value": "30000" }, { "id": "1c0b7514-92b7-4e07-b462-467113f4a8cd", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(2) .d-block:nth-child(2)", + "target": "css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=.d-block > primitive-property:nth-child(2) .d-block:nth-child(2)", "css:finder"], - ["xpath=//primitive-property[2]/div/span[2]", "xpath:position"] + ["css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], + ["xpath=//div/span[2]", "xpath:position"] ], "value": "Service Provider v2" + }, { + "id": "c3137509-6eb0-4ec9-bf04-b4a015f8f640", + "comment": "", + "command": "waitForElementVisible", + "target": "css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(3)", + "targets": [ + ["css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[3]", "xpath:idRelative"], + ["xpath=//span[3]", "xpath:position"] + ], + "value": "30000" }, { "id": "fc7c4e1e-03c7-4108-9a8d-f469e7679ae4", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(2) .d-block:nth-child(3)", + "target": "css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(3)", "targets": [ - ["css=.d-block > primitive-property:nth-child(2) .d-block:nth-child(3)", "css:finder"], - ["xpath=//primitive-property[2]/div/span[3]", "xpath:position"], - ["xpath=//span[contains(.,'Test Provider')]", "xpath:innerText"] + ["css=div:nth-child(2) > div:nth-child(1) > .d-flex > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/span[3]", "xpath:idRelative"], + ["xpath=//span[3]", "xpath:position"] ], "value": "Test Provider" }, { "id": "138ad58b-f0a2-436b-a8b0-43484f4180e6", "comment": "", "command": "assertText", - "target": "css=.bg-diff > .py-2:nth-child(2) > .d-flex:nth-child(1) > .text-truncate:nth-child(3)", + "target": "css=.bg-diff:nth-child(2) > .d-flex:nth-child(1) > .d-block:nth-child(3)", "targets": [ - ["css=.bg-diff > .py-2:nth-child(2) > .d-flex:nth-child(1) > .text-truncate:nth-child(3)", "css:finder"], - ["xpath=//div[2]/div/div[2]", "xpath:position"] + ["css=.bg-diff:nth-child(2) > .d-flex:nth-child(1) > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[5]/div[2]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[5]/div[2]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'Test User v2')]", "xpath:innerText"] ], "value": "Test User v2" }, { "id": "17049c95-4724-4521-ac47-6b64bde822aa", "comment": "", "command": "assertText", - "target": "css=.py-2:nth-child(2) > .d-flex:nth-child(1) > .text-truncate:nth-child(4)", + "target": "css=.py-2:nth-child(2) > .d-flex:nth-child(1) > .d-block:nth-child(4)", "targets": [ - ["css=.py-2:nth-child(2) > .d-flex:nth-child(1) > .text-truncate:nth-child(4)", "css:finder"], - ["xpath=//div/div[3]", "xpath:position"] + ["css=.py-2:nth-child(2) > .d-flex:nth-child(1) > .d-block:nth-child(4)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[5]/div[2]/div/span[3]", "xpath:idRelative"], + ["xpath=//div[5]/div[2]/div/span[3]", "xpath:position"] ], "value": "Test User" }, { "id": "17b17783-b35b-4724-805a-84c2f2727ae8", "comment": "", "command": "storeAttribute", - "target": "xpath=//metadata-comparison/div/metadata-configuration/div/section[1]/div/div[2]/object-property/primitive-property[2]/div/div@class", + "target": "xpath=//section[1]/div/div[2]/div[2]/div[1]/div@class", "targets": [], "value": "classes" + }, { + "id": "943bc68b-d8c3-4d18-9c32-b1d6b81095b9", + "comment": "", + "command": "echo", + "target": "${classes}", + "targets": [], + "value": "" }, { "id": "04c998e7-b872-406c-89e3-7d6fe43d8b7a", "comment": "", @@ -2274,14 +2511,14 @@ "id": "7a1a8ab1-8586-45db-b16c-b8cf0dd02443", "comment": "", "command": "storeAttribute", - "target": "xpath=//metadata-comparison/div/metadata-configuration/div/section[1]/div/div[2]/object-property/object-property/primitive-property[1]/div/div@class", + "target": "xpath=//section[1]/div/div[2]/div[2]/div[2]@class", "targets": [], "value": "classes" }, { "id": "2a5d487f-08e5-45ea-8f12-b6dcaec0aead", "comment": "", "command": "executeScript", - "target": "return ${classes}.includes('bg-diff')", + "target": "return ${classes} == undefined ? false : ${classes}.includes('bg-diff')", "targets": [], "value": "isPresent" }, { @@ -2295,7 +2532,7 @@ "id": "e9c047ad-fd1f-4ee8-bedb-3750f0c553e4", "comment": "", "command": "storeAttribute", - "target": "xpath=//metadata-comparison/div/metadata-configuration/div/section[1]/div/div[2]/object-property/array-property/div@class", + "target": "xpath=//section[1]/div/div[2]/div[2]/div[4]@class", "targets": [], "value": "classes" }, { @@ -2316,17 +2553,21 @@ "id": "29fe2264-3c1c-4d39-9788-523064f29e07", "comment": "", "command": "click", - "target": "css=.fa-lg", + "target": "id=toggleLimited", "targets": [ - ["css=.fa-lg", "css:finder"], - ["xpath=//div/button/i", "xpath:position"] + ["id=toggleLimited", "id"], + ["name=toggleLimited", "name"], + ["css=#toggleLimited", "css:finder"], + ["xpath=//input[@id='toggleLimited']", "xpath:attributes"], + ["xpath=//div[@id='navigation']/div[2]/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { "id": "81ba2389-bcb4-4de8-bcd5-d7a17200aedc", "comment": "", "command": "storeAttribute", - "target": "xpath=//metadata-comparison/div/metadata-configuration/div/section[1]/div/div[2]/object-property/primitive-property/div/div@class", + "target": "xpath=//section/div/div[2]/div[2]/div[1]/div@class", "targets": [], "value": "classes" }, { @@ -2347,7 +2588,7 @@ "id": "31ef48d0-3198-4ee1-8065-5bbf2b1349b8", "comment": "", "command": "storeAttribute", - "target": "xpath=//metadata-comparison/div/metadata-configuration/div/section[1]/div/div[2]/object-property/array-property/div@class", + "target": "xpath=//section/div/div[2]/div[2]/div[2]@class", "targets": [], "value": "classes" }, { @@ -2364,13 +2605,6 @@ "target": "isPresent", "targets": [], "value": "true" - }, { - "id": "e901a20e-75e9-4f0d-abfc-f1fe8cf453b8", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1407-2.side b/backend/src/integration/resources/SHIBUI-1407-2.side index 6e918da23..798c1e1a3 100644 --- a/backend/src/integration/resources/SHIBUI-1407-2.side +++ b/backend/src/integration/resources/SHIBUI-1407-2.side @@ -49,53 +49,108 @@ ["xpath=//tr[2]/td[2]/input", "xpath:position"] ], "value": "${KEY_ENTER}" + }, { + "id": "b837b89b-db9e-4cda-adda-476c8a28f31c", + "comment": "", + "command": "waitForElementVisible", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "51703e66-6615-4e51-97a3-2e791d3f8f8e", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "bb18631f-0d6f-41bd-80ff-cd5c78eaf547", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "94b111ef-0cad-49db-8876-f7a83eb3b9af", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "e7a98419-36c7-4b0f-a99d-087144f6a417", "comment": "", "command": "click", - "target": "css=.fa-plus-circle", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=.fa-plus-circle", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/i", "xpath:idRelative"], - ["xpath=//i", "xpath:position"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "74fef022-3979-4bed-9226-b25114514976", "comment": "", "command": "click", - "target": "linkText=Metadata Provider", + "target": "id=metadata-nav-dropdown-provider", "targets": [ - ["linkText=Metadata Provider", "linkText"], - ["css=.nav-link:nth-child(2)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a[2]", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[3]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"] + ["id=metadata-nav-dropdown-provider", "id"], + ["linkText=Add a new metadata provider", "linkText"], + ["css=#metadata-nav-dropdown-provider", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata provider')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-provider']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/new')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata provider')]", "xpath:innerText"] ], "value": "" + }, { + "id": "9c03253b-6f99-4f41-81bb-d2424ca31d91", + "comment": "", + "command": "waitForElementVisible", + "target": "name=name", + "targets": [ + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "30000" }, { "id": "b49d6ed7-75ea-4be8-9a79-c7fd83287aa0", "comment": "", "command": "click", - "target": "id=/name", + "target": "name=name", "targets": [ - ["id=/name", "id"], - ["name=field1", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "" + }, { + "id": "6856655c-a248-4afe-8892-3c6c5eebb40e", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" }, { "id": "54dc29f7-bbe0-4c2b-a76e-e67a61f57a96", "comment": "", "command": "type", - "target": "id=/name", + "target": "name=name", "targets": [ - ["id=/name", "id"], - ["name=field1", "name"], - ["css=#\\/name", "css:finder"], - ["xpath=//input[@id='/name']", "xpath:attributes"], + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "Test Metadata Provider" @@ -103,12 +158,15 @@ "id": "add874d5-e3b2-4412-8039-2b9d2619ed19", "comment": "", "command": "select", - "target": "id=/type", + "target": "name=type", "targets": [ - ["css=select-component > .widget", "css:finder"], - ["xpath=//select-component/div", "xpath:position"] + ["name=type", "name"], + ["css=.custom-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div[2]/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], - "value": "label=FileBackedHttpMetadataProvider" + "value": "label=FileBackedHttpMetadataResolver" }, { "id": "1cc352f4-0d71-4a3e-9399-1d9932816efc", "comment": "", @@ -123,19 +181,25 @@ "id": "d072327c-78b4-4bdb-8020-b825cd26592d", "comment": "", "command": "waitForElementVisible", - "target": "id=/xmlId", - "targets": [], + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], "value": "10000" }, { "id": "86262eda-4a44-41b0-b7aa-fa46406e2601", "comment": "", "command": "type", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ - ["id=field7", "id"], - ["name=field7", "name"], - ["css=#field7", "css:finder"], - ["xpath=//input[@id='field7']", "xpath:attributes"], + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], ["xpath=//input", "xpath:position"] ], "value": "123" @@ -143,38 +207,39 @@ "id": "26cc765d-98c1-414c-97d8-4c7e5c6ab7e2", "comment": "", "command": "type", - "target": "id=/metadataURL", + "target": "id=root_metadataURL", "targets": [ - ["id=field8", "id"], - ["name=field8", "name"], - ["css=#field8", "css:finder"], - ["xpath=//input[@id='field8']", "xpath:attributes"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_metadataURL", "id"], + ["css=#root_metadataURL", "css:finder"], + ["xpath=//input[@id='root_metadataURL']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] ], "value": "https://idp.unicon.net/idp/shibboleth" }, { "id": "f0459917-b2a1-4e3c-8800-25273965129f", "comment": "", "command": "click", - "target": "id=/initializeFromBackupFile.false", + "target": "id=root_initializeFromBackupFile-No", "targets": [ - ["id=/initializeFromBackupFile.false", "id"], - ["css=#\\/initializeFromBackupFile\\.false", "css:finder"], - ["xpath=//input[@id='/initializeFromBackupFile.false']", "xpath:attributes"], - ["xpath=//div[2]/label/input", "xpath:position"] + ["id=root_initializeFromBackupFile-No", "id"], + ["css=#root_initializeFromBackupFile-No", "css:finder"], + ["xpath=//input[@id='root_initializeFromBackupFile-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[3]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] ], "value": "" }, { "id": "5b37cf08-77b9-4091-94f9-c0d539c9010d", "comment": "", "command": "type", - "target": "id=/backingFile", + "target": "id=root_backingFile", "targets": [ - ["id=/backingFile", "id"], - ["name=field10", "name"], - ["css=#\\/backingFile", "css:finder"], - ["xpath=//input[@id='/backingFile']", "xpath:attributes"], - ["xpath=//div[4]/sf-form-element/div/sf-widget-chooser/custom-string/div/input", "xpath:position"] + ["id=root_backingFile", "id"], + ["css=#root_backingFile", "css:finder"], + ["xpath=//input[@id='root_backingFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] ], "value": "%{idp.home}/foo.txt" }, { @@ -188,11 +253,12 @@ "id": "203d0d3c-d866-422a-8b48-b50181db00e9", "comment": "", "command": "click", - "target": "css=.fa-caret-down", + "target": "css=.toggle-button", "targets": [ - ["css=.fa-caret-down", "css:finder"], - ["xpath=//div[@id='/backupFileInitNextRefreshDelay-container']/div/div/button/i", "xpath:idRelative"], - ["xpath=//div/button/i", "xpath:position"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[5]/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -206,62 +272,69 @@ "id": "5fc6a348-0533-4d94-bb76-ebb891a0db8f", "comment": "", "command": "click", - "target": "id=/backupFileInitNextRefreshDelay__option--1", + "target": "id=option-selector-root_backupFileInitNextRefreshDelay-item-1", "targets": [ - ["id=/backupFileInitNextRefreshDelay__option--1", "id"], - ["css=#\\/backupFileInitNextRefreshDelay__option--1", "css:finder"], - ["xpath=//li[@id='/backupFileInitNextRefreshDelay__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/backupFileInitNextRefreshDelay__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'PT30S')]", "xpath:innerText"] + ["id=option-selector-root_backupFileInitNextRefreshDelay-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_backupFileInitNextRefreshDelay-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_backupFileInitNextRefreshDelay-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_backupFileInitNextRefreshDelay']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { "id": "bf041d41-5d58-4f69-8fcc-49ec79e5547d", "comment": "", "command": "click", - "target": "id=/requireValidMetadata.false", + "target": "id=root_requireValidMetadata-No", "targets": [ - ["id=/requireValidMetadata.false", "id"], - ["css=#\\/requireValidMetadata\\.false", "css:finder"], - ["xpath=//input[@id='/requireValidMetadata.false']", "xpath:attributes"], - ["xpath=//div[6]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_requireValidMetadata-No", "id"], + ["css=#root_requireValidMetadata-No", "css:finder"], + ["xpath=//input[@id='root_requireValidMetadata-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[6]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "fba85c75-e218-4deb-b5e1-888ff75b6a4e", "comment": "", "command": "click", - "target": "id=/failFastInitialization.false", + "target": "id=root_failFastInitialization-No", "targets": [ - ["id=/failFastInitialization.false", "id"], - ["css=#\\/failFastInitialization\\.false", "css:finder"], - ["xpath=//input[@id='/failFastInitialization.false']", "xpath:attributes"], - ["xpath=//div[7]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_failFastInitialization-No", "id"], + ["css=#root_failFastInitialization-No", "css:finder"], + ["xpath=//input[@id='root_failFastInitialization-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[7]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "375b8d6e-179b-4f14-8f00-d8a8cad29d7e", "comment": "", "command": "click", - "target": "id=/useDefaultPredicateRegistry.false", + "target": "id=root_useDefaultPredicateRegistry-No", "targets": [ - ["id=/useDefaultPredicateRegistry.false", "id"], - ["css=#\\/useDefaultPredicateRegistry\\.false", "css:finder"], - ["xpath=//input[@id='/useDefaultPredicateRegistry.false']", "xpath:attributes"], - ["xpath=//div[8]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_useDefaultPredicateRegistry-No", "id"], + ["css=#root_useDefaultPredicateRegistry-No", "css:finder"], + ["xpath=//input[@id='root_useDefaultPredicateRegistry-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[8]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[8]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { "id": "8b4bf341-62c0-491f-b775-d2faf55477bc", "comment": "", "command": "click", - "target": "id=/satisfyAnyPredicates.true", + "target": "id=root_satisfyAnyPredicates-Yes", "targets": [ - ["id=/satisfyAnyPredicates.true", "id"], - ["css=#\\/satisfyAnyPredicates\\.true", "css:finder"], - ["xpath=//input[@id='/satisfyAnyPredicates.true']", "xpath:attributes"], - ["xpath=//div[9]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div/label/input", "xpath:position"] + ["id=root_satisfyAnyPredicates-Yes", "id"], + ["name=root_satisfyAnyPredicates", "name"], + ["css=#root_satisfyAnyPredicates-Yes", "css:finder"], + ["xpath=//input[@id='root_satisfyAnyPredicates-Yes']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[9]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/input", "xpath:position"] ], "value": "" }, { @@ -285,13 +358,12 @@ "id": "a188bc3e-fd98-4d49-ae35-a0b78a17607c", "comment": "", "command": "click", - "target": "css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", + "target": "css=.row:nth-child(1) > .col-12 .toggle-button", "targets": [ - ["css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay-container .btn", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/reloadableMetadataResolverAttributes/minRefreshDelay-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.row:nth-child(1) > .col-12 .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -305,14 +377,16 @@ "id": "a159e056-c870-4e02-a7e9-4b3a60d83718", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/minRefreshDelay__option--1", + "target": "id=option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "targets": [ - ["id=/reloadableMetadataResolverAttributes/minRefreshDelay__option--1", "id"], - ["css=#\\/reloadableMetadataResolverAttributes\\/minRefreshDelay__option--1", "css:finder"], - ["xpath=//li[@id='/reloadableMetadataResolverAttributes/minRefreshDelay__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/reloadableMetadataResolverAttributes/minRefreshDelay__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'PT30S')]", "xpath:innerText"] + ["id=option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_reloadableMetadataResolverAttributes_minRefreshDelay']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { @@ -326,11 +400,12 @@ "id": "7a72cf6a-c97a-49f6-83d0-cbe42f0fdb7d", "comment": "", "command": "click", - "target": "css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay-container .btn", + "target": "css=.row:nth-child(2) .toggle-button", "targets": [ - ["css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay-container .fa", "css:finder"], - ["xpath=//div[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay-container']/div/div/button/i", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/div/div/button/i", "xpath:position"] + ["css=.row:nth-child(2) .toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -344,28 +419,38 @@ "id": "820397f5-aabb-46f5-a65a-56747ce29091", "comment": "", "command": "click", - "target": "id=/reloadableMetadataResolverAttributes/maxRefreshDelay__option--3", + "target": "id=option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3", "targets": [ - ["id=/reloadableMetadataResolverAttributes/maxRefreshDelay__option--3", "id"], - ["css=#\\/reloadableMetadataResolverAttributes\\/maxRefreshDelay__option--3", "css:finder"], - ["xpath=//li[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay__option--3']", "xpath:attributes"], - ["xpath=//ul[@id='/reloadableMetadataResolverAttributes/maxRefreshDelay__listbox']/li[4]", "xpath:idRelative"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/datalist-component/div/auto-complete/div/ul/li[4]", "xpath:position"] + ["id=option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3", "id"], + ["linkText=PT10M", "linkText"], + ["css=#option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3", "css:finder"], + ["xpath=//a[@id='option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay-item-3']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_reloadableMetadataResolverAttributes_maxRefreshDelay']/a[4]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[4]", "xpath:href"], + ["xpath=//a[4]", "xpath:position"], + ["xpath=//a[contains(.,'PT10M')]", "xpath:innerText"] ], "value": "" }, { "id": "b036a851-4ac9-43cb-8686-8e78ed940d72", "comment": "", "command": "type", - "target": "id=/reloadableMetadataResolverAttributes/refreshDelayFactor", + "target": "id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "targets": [ - ["id=/reloadableMetadataResolverAttributes/refreshDelayFactor", "id"], - ["name=field20", "name"], - ["css=#\\/reloadableMetadataResolverAttributes\\/refreshDelayFactor", "css:finder"], - ["xpath=//input[@id='/reloadableMetadataResolverAttributes/refreshDelayFactor']", "xpath:attributes"], - ["xpath=//custom-string/div/input", "xpath:position"] + ["id=root_reloadableMetadataResolverAttributes_refreshDelayFactor", "id"], + ["css=#root_reloadableMetadataResolverAttributes_refreshDelayFactor", "css:finder"], + ["xpath=//input[@id='root_reloadableMetadataResolverAttributes_refreshDelayFactor']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[4]/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] ], "value": "0.5" + }, { + "id": "11b3029c-e7d6-46e7-a3f8-b873f4591d2e", + "comment": "", + "command": "click", + "target": "css=body", + "targets": [], + "value": "" }, { "id": "b48d48d8-2fec-4877-85ae-2f94f15e63eb", "comment": "", @@ -387,13 +472,12 @@ "id": "232da257-962f-4a4b-8213-038ef90c96c3", "comment": "", "command": "click", - "target": "css=.btn-outline-secondary", + "target": "css=.toggle-button", "targets": [ - ["css=.btn-outline-secondary", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval-container']/div/div/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Toggle Dropdown')]", "xpath:innerText"] + ["css=.toggle-button", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div/div/div/div/div/div/div[2]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"] ], "value": "" }, { @@ -407,114 +491,120 @@ "id": "b8d999f1-0c59-4a9a-9991-91d222f52b8e", "comment": "", "command": "click", - "target": "id=/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1", + "target": "id=option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "targets": [ - ["id=/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1", "id"], - ["css=#\\/metadataFilters\\/RequiredValidUntil\\/maxValidityInterval__option--1", "css:finder"], - ["xpath=//li[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval__option--1']", "xpath:attributes"], - ["xpath=//ul[@id='/metadataFilters/RequiredValidUntil/maxValidityInterval__listbox']/li[2]", "xpath:idRelative"], - ["xpath=//auto-complete/div/ul/li[2]", "xpath:position"], - ["xpath=//li[contains(.,'P14D')]", "xpath:innerText"] + ["id=option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "id"], + ["linkText=PT30S", "linkText"], + ["css=#option-selector-root_metadataFilters_0_maxValidityInterval-item-1", "css:finder"], + ["xpath=//a[@id='option-selector-root_metadataFilters_0_maxValidityInterval-item-1']", "xpath:attributes"], + ["xpath=//div[@id='option-selector-root_metadataFilters_0_maxValidityInterval']/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[2]", "xpath:href"], + ["xpath=//div[2]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'PT30S')]", "xpath:innerText"] ], "value": "" }, { "id": "8af1abb5-2c7a-4a4c-a8f7-0eb287100dde", "comment": "", "command": "click", - "target": "id=/metadataFilters/SignatureValidation/requireSignedRoot", + "target": "id=root_metadataFilters_1_requireSignedRoot", "targets": [ - ["css=div:nth-child(1) > sf-form-element > .has-success .custom-control-label", "css:finder"], - ["xpath=//div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Require Signed Root')]", "xpath:innerText"] + ["id=root_metadataFilters_1_requireSignedRoot", "id"], + ["css=#root_metadataFilters_1_requireSignedRoot", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_1_requireSignedRoot']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "323a2a02-9111-4064-8bb0-a3da34330e54", "comment": "", "command": "type", - "target": "id=/metadataFilters/SignatureValidation/certificateFile", - "targets": [], + "target": "id=root_metadataFilters_1_certificateFile", + "targets": [ + ["id=root_metadataFilters_1_certificateFile", "id"], + ["css=#root_metadataFilters_1_certificateFile", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_1_certificateFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[2]/div/div/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] + ], "value": "%{idp.home}/foo.txt" }, { "id": "a125e601-f306-441d-9c8c-e97b95817b46", "comment": "", "command": "click", - "target": "css=.btn-success", + "target": "css=.array-add-button", "targets": [ - ["css=.btn-success", "css:finder"], - ["xpath=//array-component/div/div/button", "xpath:position"], - ["xpath=//button[contains(.,'Add   ')]", "xpath:innerText"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "74d696db-3f3b-4ff3-a180-34baceb469a2", "comment": "", "command": "select", - "target": "id=/metadataFilters/EntityRoleWhiteList/retainedRoles/0", - "targets": [], - "value": "label=SPSSODescriptor" - }, { - "id": "532bf2e5-13fc-48d7-b01b-ff16207a554d", - "comment": "", - "command": "click", - "target": "css=option:nth-child(2)", + "target": "id=root_metadataFilters_2_retainedRoles_0", "targets": [ - ["css=option:nth-child(2)", "css:finder"], - ["xpath=//option[@value='1: md:SPSSODescriptor']", "xpath:attributes"], - ["xpath=//select[@id='/metadataFilters/EntityRoleWhiteList/retainedRoles/0']/option[2]", "xpath:idRelative"], - ["xpath=//option[2]", "xpath:position"], - ["xpath=//option[contains(.,'SPSSODescriptor')]", "xpath:innerText"] + ["id=root_metadataFilters_2_retainedRoles_0", "id"], + ["css=#root_metadataFilters_2_retainedRoles_0", "css:finder"], + ["xpath=//select[@id='root_metadataFilters_2_retainedRoles_0']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div[2]/div/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] ], - "value": "" + "value": "label=SPSSODescriptor" }, { "id": "12cf80c9-594c-4c4d-bf26-aa36ba636220", "comment": "", "command": "click", - "target": "css=.fa-plus", + "target": "css=.array-add-button", "targets": [ - ["css=.fa-plus", "css:finder"], - ["xpath=//array-component/div/div/button/i", "xpath:position"] - ], - "value": "" - }, { - "id": "6cb9854b-293b-482d-8c07-4b7c638d79cb", - "comment": "", - "command": "click", - "target": "css=#\\/metadataFilters\\/EntityRoleWhiteList\\/retainedRoles\\/1 > option:nth-child(1)", - "targets": [ - ["css=#\\/metadataFilters\\/EntityRoleWhiteList\\/retainedRoles\\/1 > option:nth-child(1)", "css:finder"], - ["xpath=(//option[@value=''])[2]", "xpath:attributes"], - ["xpath=//select[@id='/metadataFilters/EntityRoleWhiteList/retainedRoles/1']/option", "xpath:idRelative"], - ["xpath=//li[2]/div/sf-form-element/div/sf-widget-chooser/select-component/div/select/option", "xpath:position"] + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] ], "value": "" }, { "id": "f366c86c-1420-4fb7-86c2-82c49d81208d", "comment": "", "command": "select", - "target": "id=/metadataFilters/EntityRoleWhiteList/retainedRoles/1", - "targets": [], + "target": "id=root_metadataFilters_2_retainedRoles_1", + "targets": [ + ["id=root_metadataFilters_2_retainedRoles_1", "id"], + ["css=#root_metadataFilters_2_retainedRoles_1", "css:finder"], + ["xpath=//select[@id='root_metadataFilters_2_retainedRoles_1']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/div/div/div/div[2]/div[2]/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/select", "xpath:position"] + ], "value": "label=AttributeAuthorityDescriptor" }, { "id": "5dfac033-ecfd-42e8-aa6f-931d5acd4d89", "comment": "", "command": "click", - "target": "css=div:nth-child(2) > sf-form-element > .has-success > sf-widget-chooser > checkbox-component .custom-control-label", + "target": "id=root_metadataFilters_2_removeRolelessEntityDescriptors", "targets": [ - ["css=div:nth-child(2) > sf-form-element > .has-success > sf-widget-chooser > checkbox-component .custom-control-label", "css:finder"], - ["xpath=//div[2]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Remove Roleless Entity Descriptors?')]", "xpath:innerText"] + ["id=root_metadataFilters_2_removeRolelessEntityDescriptors", "id"], + ["css=#root_metadataFilters_2_removeRolelessEntityDescriptors", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_2_removeRolelessEntityDescriptors']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[3]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { "id": "9d5934f0-fe10-4539-9d71-80b454fc8612", "comment": "", "command": "click", - "target": "css=div:nth-child(3) > sf-form-element > .has-success > sf-widget-chooser > checkbox-component .custom-control-label", + "target": "id=root_metadataFilters_2_removeEmptyEntitiesDescriptors", "targets": [ - ["css=div:nth-child(3) > sf-form-element > .has-success > sf-widget-chooser > checkbox-component .custom-control-label", "css:finder"], - ["xpath=//div[3]/sf-form-element/div/sf-widget-chooser/checkbox-component/div/div/div/label", "xpath:position"], - ["xpath=//label[contains(.,'Remove Empty Entities Descriptors?')]", "xpath:innerText"] + ["id=root_metadataFilters_2_removeEmptyEntitiesDescriptors", "id"], + ["css=#root_metadataFilters_2_removeEmptyEntitiesDescriptors", "css:finder"], + ["xpath=//input[@id='root_metadataFilters_2_removeEmptyEntitiesDescriptors']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div[3]/div/div/div/div/div/div[4]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/div/input", "xpath:position"] ], "value": "" }, { @@ -527,21 +617,14 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "79b96f40-2677-438a-9564-62df0ea2c116", - "comment": "", - "command": "click", - "target": "css=.custom-control-label", - "targets": [], - "value": "" }, { "id": "52f5680c-c63d-411e-8332-52901f12ea3b", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(1) primitive-property:nth-child(1) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(1) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(1) primitive-property:nth-child(1) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], + ["css=.mb-4:nth-child(1) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], ["xpath=//div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'Test Metadata Provider')]", "xpath:innerText"] ], @@ -550,11 +633,11 @@ "id": "67ff44aa-1efd-4b13-a0e9-3648a09911dd", "comment": "", "command": "assertText", - "target": "css=.mb-4:nth-child(2) primitive-property:nth-child(1) .d-block:nth-child(2)", + "target": "css=.mb-4:nth-child(2) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "targets": [ - ["css=.mb-4:nth-child(2) primitive-property:nth-child(1) .d-block:nth-child(2)", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section[2]/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], - ["xpath=//section[2]/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:position"], + ["css=.mb-4:nth-child(2) div:nth-child(1) > .d-flex > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[2]/div/div[2]/div[2]/div/div/span[2]", "xpath:idRelative"], + ["xpath=//section[2]/div/div[2]/div[2]/div/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'123')]", "xpath:innerText"] ], "value": "123" @@ -568,93 +651,107 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" - }, { - "id": "89e87484-d5b5-4788-816d-9ca4d22f053a", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" }, { "id": "1067b0b4-8aff-4972-b6f5-e4479eca9150", "comment": "", "command": "waitForElementPresent", - "target": "css=.d-block > primitive-property:nth-child(1) .text-truncate", + "target": "css=.align-middle:nth-child(2)", "targets": [ - ["css=.d-block > primitive-property:nth-child(1) .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property/div/div/span[2]", "xpath:idRelative"], - ["xpath=//div/span[2]", "xpath:position"] + ["css=.align-middle:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]", "xpath:idRelative"], + ["xpath=//td[2]", "xpath:position"], + ["xpath=//td[contains(.,'Test Metadata Provider')]", "xpath:innerText"] ], "value": "10000" }, { "id": "f48dd1b5-607a-485b-b1d5-03301f99b9ce", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(1) .text-truncate", + "target": "css=.align-middle:nth-child(2)", "targets": [ - ["linkText=Test Metadata Provider", "linkText"], - ["css=td > a", "css:finder"], - ["xpath=//a[contains(text(),'Test Metadata Provider')]", "xpath:link"], - ["xpath=//a[contains(@href, '/metadata/provider/4cc9924f-fd9e-4ef3-bf57-3b24eec9f27f/configuration/options')]", "xpath:href"], - ["xpath=//td[2]/a", "xpath:position"], - ["xpath=//a[contains(.,'Test Metadata Provider')]", "xpath:innerText"] + ["css=.align-middle:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]", "xpath:idRelative"], + ["xpath=//td[2]", "xpath:position"], + ["xpath=//td[contains(.,'Test Metadata Provider')]", "xpath:innerText"] ], "value": "Test Metadata Provider" }, { "id": "5eccd4e9-a451-4ec8-a9e1-1e1f8e771677", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(2) .text-truncate", + "target": "css=.align-middle:nth-child(3)", "targets": [ - ["css=.d-block > primitive-property:nth-child(2) .text-truncate", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div[2]/object-property/primitive-property[2]/div/div/span[2]", "xpath:idRelative"], - ["xpath=//primitive-property[2]/div/div/span[2]", "xpath:position"], - ["xpath=//span[contains(.,'FileBackedHttpMetadataResolver')]", "xpath:innerText"] + ["css=.align-middle:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[3]", "xpath:idRelative"], + ["xpath=//td[3]", "xpath:position"], + ["xpath=//td[contains(.,'FileBackedHttpMetadataResolver')]", "xpath:innerText"] ], "value": "FileBackedHttpMetadataResolver" - }, { - "id": "77643669-03f5-4c28-9239-885bdd53749c", - "comment": "", - "command": "pause", - "target": "2000", - "targets": [], - "value": "" }, { "id": "c768c2c1-09d4-46fe-8007-42fb4b3f4aaa", "comment": "", "command": "assertText", - "target": "css=.author", + "target": "css=.align-middle:nth-child(4)", "targets": [ - ["css=.author", "css:finder"], - ["xpath=//div[@id='header']/metadata-header/div/div/h5/span[2]", "xpath:idRelative"], - ["xpath=//span[2]", "xpath:position"], - ["xpath=//span[contains(.,'admin')]", "xpath:innerText"] + ["css=.align-middle:nth-child(4)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[4]", "xpath:idRelative"], + ["xpath=//td[4]", "xpath:position"], + ["xpath=//td[contains(.,'admin')]", "xpath:innerText"] ], "value": "admin" }, { "id": "67578648-0800-4716-8c0c-27741770249a", "comment": "", "command": "click", - "target": "css=.mb-4:nth-child(1) .actions span", + "target": "linkText=Test Metadata Provider", "targets": [ - ["css=.mb-4:nth-child(1) .actions span", "css:finder"], - ["xpath=//metadata-configuration[@id='configuration']/div/section/div/div/div/button/span", "xpath:idRelative"], - ["xpath=//div/button/span", "xpath:position"], - ["xpath=//span[contains(.,'Edit')]", "xpath:innerText"] + ["linkText=Test Metadata Provider", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'Test Metadata Provider')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/278870de-ef9f-4fd5-a251-159c4fbb2767/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Test Metadata Provider')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "8cc53ffc-b630-4b2d-a1b8-7408c12fcc84", + "comment": "", + "command": "click", + "target": "css=.mb-4:nth-child(3) .edit-link", + "targets": [ + ["css=.mb-4:nth-child(3) .edit-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div/div/button", "xpath:idRelative"], + ["xpath=//section/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Edit')]", "xpath:innerText"] ], "value": "" }, { "id": "5636ef67-71fb-4bca-ba58-7ecf926c7bf0", "comment": "", - "command": "pause", - "target": "5000", + "command": "waitForElementVisible", + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/input", "xpath:position"] + ], + "value": "30000" + }, { + "id": "e8fc87c8-bc80-44bc-a153-1e2b1517da2f", + "comment": "", + "command": "type", + "target": "id=root_xmlId", "targets": [], "value": "" }, { "id": "7d641e58-47ce-4d20-908c-e0002ff73cfa", "comment": "", "command": "type", - "target": "id=/xmlId", + "target": "id=root_xmlId", "targets": [ ["id=/xmlId", "id"], ["name=field38", "name"], @@ -674,12 +771,13 @@ "id": "247b04c1-e690-42bc-ae15-dfbedb44d2e9", "comment": "", "command": "click", - "target": "id=/satisfyAnyPredicates.false", + "target": "id=root_satisfyAnyPredicates-No", "targets": [ - ["id=/satisfyAnyPredicates.false", "id"], - ["css=#\\/satisfyAnyPredicates\\.false", "css:finder"], - ["xpath=//input[@id='/satisfyAnyPredicates.false']", "xpath:attributes"], - ["xpath=//div[10]/sf-form-element/div/sf-widget-chooser/boolean-radio/div/div[2]/label/input", "xpath:position"] + ["id=root_satisfyAnyPredicates-No", "id"], + ["css=#root_satisfyAnyPredicates-No", "css:finder"], + ["xpath=//input[@id='root_satisfyAnyPredicates-No']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div[3]/div[9]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div[2]/input", "xpath:position"] ], "value": "" }, { @@ -704,12 +802,14 @@ "id": "ea880e6a-498a-427a-bc08-8058137d62e0", "comment": "", "command": "click", - "target": "css=.btn-link:nth-child(1)", + "target": "linkText=Version History", "targets": [ - ["css=.btn-link:nth-child(1) > translate-i18n", "css:finder"], - ["xpath=//div[@id='navigation']/div/a/translate-i18n", "xpath:idRelative"], - ["xpath=//div/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Version History')]", "xpath:innerText"] + ["linkText=Version History", "linkText"], + ["css=div:nth-child(1) > .btn-link:nth-child(1)", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/278870de-ef9f-4fd5-a251-159c4fbb2767/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] ], "value": "" }, { @@ -748,55 +848,76 @@ "id": "ce328b6a-f6ee-45e9-975c-5a5608f373dc", "comment": "", "command": "waitForElementVisible", - "target": "css=.d-block > primitive-property:nth-child(2) .d-block:nth-child(2)", - "targets": [], + "target": "css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", + "targets": [ + ["css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[3]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'123 version 2')]", "xpath:innerText"] + ], "value": "10000" }, { "id": "68103f0e-e3f1-419b-903d-5d8c30bc6700", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(4) .d-block:nth-child(2)", + "target": "css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", "targets": [ - ["css=.d-block > primitive-property:nth-child(4) .d-block:nth-child(2)", "css:finder"], - ["xpath=//primitive-property[4]/div/span[2]", "xpath:position"], + ["css=div:nth-child(3) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[3]/div/span[2]", "xpath:position"], ["xpath=//span[contains(.,'123 version 2')]", "xpath:innerText"] ], "value": "123 version 2" + }, { + "id": "135a8cb5-7454-46af-8fb7-5fc72e206237", + "comment": "", + "command": "waitForElementVisible", + "target": "css=div:nth-child(3) > .bg-diff > .d-block:nth-child(3)", + "targets": [ + ["css=div:nth-child(3) > .bg-diff > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[3]/div/span[3]", "xpath:idRelative"], + ["xpath=//div[3]/div/span[3]", "xpath:position"] + ], + "value": "30000" }, { "id": "a13198b9-7827-47e2-ade3-143b981d34ee", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(4) .d-block:nth-child(3)", + "target": "css=div:nth-child(3) > .bg-diff > .d-block:nth-child(3)", "targets": [ - ["css=.d-block > primitive-property:nth-child(4) .d-block:nth-child(3)", "css:finder"], - ["xpath=//primitive-property[4]/div/span[3]", "xpath:position"] + ["css=div:nth-child(3) > .bg-diff > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[3]/div/span[3]", "xpath:idRelative"], + ["xpath=//div[3]/div/span[3]", "xpath:position"] ], "value": "123" }, { "id": "3d83741c-299e-4fcb-9ce6-4b7291c423a4", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(12) .d-block:nth-child(2)", + "target": "css=div:nth-child(11) > .bg-diff > .d-block:nth-child(2)", "targets": [ - ["css=.d-block > primitive-property:nth-child(12) .d-block:nth-child(2)", "css:finder"], - ["xpath=//primitive-property[12]/div/span[2]", "xpath:position"] + ["css=div:nth-child(11) > .bg-diff > .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[11]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[11]/div/span[2]", "xpath:position"] ], "value": "false" }, { "id": "190cc157-d427-4046-aff2-180392395ad3", "comment": "", "command": "assertText", - "target": "css=.d-block > primitive-property:nth-child(12) .d-block:nth-child(3)", + "target": "css=div:nth-child(11) > .bg-diff > .d-block:nth-child(3)", "targets": [ - ["css=.d-block > primitive-property:nth-child(12) .d-block:nth-child(3)", "css:finder"], - ["xpath=//primitive-property[12]/div/span[3]", "xpath:position"] + ["css=div:nth-child(11) > .bg-diff > .d-block:nth-child(3)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[11]/div/span[3]", "xpath:idRelative"], + ["xpath=//div[11]/div/span[3]", "xpath:position"], + ["xpath=//span[contains(.,'true')]", "xpath:innerText"] ], "value": "true" }, { "id": "aa3e1818-24e5-420b-838e-0eb7d6b6d4e3", "comment": "", "command": "storeAttribute", - "target": "xpath=//metadata-comparison/div/metadata-configuration/div/section[1]/div/div[2]/object-property/primitive-property[4]/div/div@class", + "target": "xpath=//section[1]/div/div[2]/div[2]/div[3]/div@class", "targets": [], "value": "classes" }, { @@ -817,7 +938,7 @@ "id": "48cf0e77-ab88-4c9c-8952-7bbe102a0be2", "comment": "", "command": "storeAttribute", - "target": "xpath=//metadata-comparison/div/metadata-configuration/div/section[1]/div/div[2]/object-property/primitive-property[7]/div/div@class", + "target": "xpath=//section[1]/div/div[2]/div[2]/div[1]/div@class", "targets": [], "value": "classes" }, { @@ -838,7 +959,7 @@ "id": "d7e53d38-a2c1-4ae7-a481-2726000eb556", "comment": "", "command": "storeAttribute", - "target": "xpath=//metadata-comparison/div/metadata-configuration/div/section[1]/div/div[2]/object-property/primitive-property[12]/div/div@class", + "target": "xpath=//section[1]/div/div[2]/div[2]/div[11]/div@class", "targets": [], "value": "classes" }, { @@ -859,17 +980,21 @@ "id": "28eb98c2-85e2-4336-973e-7949e0e8f784", "comment": "", "command": "click", - "target": "css=.fa-lg", + "target": "id=toggleLimited", "targets": [ - ["css=.fa-lg", "css:finder"], - ["xpath=//div/button/i", "xpath:position"] + ["id=toggleLimited", "id"], + ["name=toggleLimited", "name"], + ["css=#toggleLimited", "css:finder"], + ["xpath=//input[@id='toggleLimited']", "xpath:attributes"], + ["xpath=//div[@id='navigation']/div[2]/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] ], "value": "" }, { "id": "a457a558-7771-420c-a3a8-5afac051efca", "comment": "", "command": "storeAttribute", - "target": "xpath=//metadata-comparison/div/metadata-configuration/div/section[1]/div/div[2]/object-property/primitive-property[1]/div/div@class", + "target": "xpath=//section[1]/div/div[2]/div[2]/div[1]/div@class", "targets": [], "value": "classes" }, { @@ -890,7 +1015,7 @@ "id": "8f43bfb4-fc38-4c74-ab8d-8065b9c9565a", "comment": "", "command": "storeAttribute", - "target": "xpath=//metadata-comparison/div/metadata-configuration/div/section[1]/div/div[2]/object-property/primitive-property[2]/div/div@class", + "target": "xpath=//section[1]/div/div[2]/div[2]/div[2]/div@class", "targets": [], "value": "classes" }, { @@ -907,13 +1032,6 @@ "target": "isDiff", "targets": [], "value": "true" - }, { - "id": "a0305827-1856-48c6-b02c-96c43da6241f", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1503-1.side b/backend/src/integration/resources/SHIBUI-1503-1.side index 2e1fd3127..e70c277bf 100644 --- a/backend/src/integration/resources/SHIBUI-1503-1.side +++ b/backend/src/integration/resources/SHIBUI-1503-1.side @@ -38,13 +38,14 @@ "id": "5a5d0684-7d38-4fde-8038-733fd8ffa232", "comment": "", "command": "waitForElementVisible", - "target": "id=dropdown-basic", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["id=dropdown-basic", "id"], - ["xpath=//button[@id='dropdown-basic']", "xpath:attributes"], - ["xpath=//div[@id='basic-nav-dropdown']/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Advanced')]", "xpath:innerText"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "30000" }, { @@ -68,18 +69,34 @@ "target": "/dashboard", "targets": [], "value": "" + }, { + "id": "d0ef9e1d-b756-4618-bb54-2d1212b95f81", + "comment": "", + "command": "click", + "target": "id=user-nav-dropdown-toggle", + "targets": [ + ["id=user-nav-dropdown-toggle", "id"], + ["css=#user-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='user-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[4]/button", "xpath:position"], + ["xpath=//button[contains(.,'Logged in as admin')]", "xpath:innerText"] + ], + "value": "" }, { "id": "01957ac4-2039-4331-80d3-c8ce382321b0", "comment": "", "command": "click", - "target": "linkText=Logout", + "target": "id=user-nav-dropdown-logout", "targets": [ + ["id=user-nav-dropdown-logout", "id"], ["linkText=Logout", "linkText"], - ["css=.nav-link:nth-child(4)", "css:finder"], + ["css=#user-nav-dropdown-logout", "css:finder"], ["xpath=//a[contains(text(),'Logout')]", "xpath:link"], - ["xpath=//div[@id='basic-navbar-nav']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[@id='user-nav-dropdown-logout']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/div/a", "xpath:idRelative"], ["xpath=//a[contains(@href, '/logout')]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"], + ["xpath=//div[4]/div/a", "xpath:position"], ["xpath=//a[contains(.,'Logout')]", "xpath:innerText"] ], "value": "" @@ -123,13 +140,13 @@ "id": "db912e0e-b9c9-4693-92cf-a43a9756d253", "comment": "", "command": "waitForElementVisible", - "target": "id=dropdown-basic", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["id=dropdown-basic", "id"], - ["css=#dropdown-basic", "css:finder"], - ["xpath=//button[@id='dropdown-basic']", "xpath:attributes"], - ["xpath=//div[@id='basic-nav-dropdown']/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "30000" @@ -137,26 +154,30 @@ "id": "fcb0a214-ead2-407e-b2b2-ddac954e1348", "comment": "", "command": "click", - "target": "id=dropdown-basic", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=#addNewDropdown > translate-i18n", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/translate-i18n", "xpath:idRelative"], - ["xpath=//translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Add New')]", "xpath:innerText"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "837ce33c-8787-4b31-9f8c-d250e5fae525", "comment": "", "command": "click", - "target": "linkText=Add a new metadata source", + "target": "id=metadata-nav-dropdown-source", "targets": [ + ["id=metadata-nav-dropdown-source", "id"], ["linkText=Add a new metadata source", "linkText"], - ["css=.text-primary", "css:finder"], + ["css=#metadata-nav-dropdown-source", "css:finder"], ["xpath=//a[contains(text(),'Add a new metadata source')]", "xpath:link"], - ["xpath=//div[@id='basic-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[@id='metadata-nav-dropdown-source']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a", "xpath:idRelative"], ["xpath=//a[contains(@href, '/metadata/source/new')]", "xpath:href"], - ["xpath=//div/a", "xpath:position"], + ["xpath=//div[2]/div/a", "xpath:position"], ["xpath=//a[contains(.,'Add a new metadata source')]", "xpath:innerText"] ], "value": "" @@ -359,18 +380,34 @@ "target": "5000", "targets": [], "value": "" + }, { + "id": "36d1a730-3d4f-4be4-a9b0-0ea6bc59114f", + "comment": "", + "command": "click", + "target": "id=user-nav-dropdown-toggle", + "targets": [ + ["id=user-nav-dropdown-toggle", "id"], + ["css=#user-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='user-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[3]/button", "xpath:position"], + ["xpath=//button[contains(.,'Logged in as nonadmin')]", "xpath:innerText"] + ], + "value": "" }, { "id": "e9a8182c-47d9-444c-8386-f84e1a7da38a", "comment": "", "command": "click", - "target": "linkText=Logout", + "target": "id=user-nav-dropdown-logout", "targets": [ + ["id=user-nav-dropdown-logout", "id"], ["linkText=Logout", "linkText"], - ["css=.nav-link:nth-child(3)", "css:finder"], + ["css=#user-nav-dropdown-logout", "css:finder"], ["xpath=//a[contains(text(),'Logout')]", "xpath:link"], - ["xpath=//div[@id='basic-navbar-nav']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[@id='user-nav-dropdown-logout']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/div/a", "xpath:idRelative"], ["xpath=//a[contains(@href, '/logout')]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"], + ["xpath=//div[3]/div/a", "xpath:position"], ["xpath=//a[contains(.,'Logout')]", "xpath:innerText"] ], "value": "" @@ -441,7 +478,7 @@ ["xpath=//li[4]/a/span", "xpath:position"], ["xpath=//span[contains(.,'2')]", "xpath:innerText"] ], - "value": "2" + "value": "3" }, { "id": "9be511e0-ed11-4707-8490-6fa248e4138e", "comment": "", @@ -532,7 +569,7 @@ ["xpath=//li[4]/a/span", "xpath:position"], ["xpath=//span[contains(.,'1')]", "xpath:innerText"] ], - "value": "1" + "value": "2" }, { "id": "3f92b1a1-9675-4da3-90d5-475a89a22913", "comment": "", @@ -561,13 +598,6 @@ "target": "xpath=//table/tbody/tr/td[5]/span/div/input", "targets": [], "value": "Enabled" - }, { - "id": "6b4905b8-2ae3-4682-ae52-0149c58eb7f4", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1503-2.side b/backend/src/integration/resources/SHIBUI-1503-2.side index 408f5648d..65ccf98a9 100644 --- a/backend/src/integration/resources/SHIBUI-1503-2.side +++ b/backend/src/integration/resources/SHIBUI-1503-2.side @@ -49,6 +49,39 @@ ["xpath=//button[contains(.,'Sign in')]", "xpath:innerText"] ], "value": "" + }, { + "id": "6410b0e4-ac64-42da-abd5-5f39364589ff", + "comment": "", + "command": "waitForElementVisible", + "target": "css=.nav-item > .d-flex", + "targets": [ + ["css=.nav-item > .d-flex", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/div[4]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/dashboard/admin/actions')]", "xpath:href"], + ["xpath=//div[4]/a", "xpath:position"] + ], + "value": "30000" + }, { + "id": "ba3c21fe-bd14-45c9-a77c-47db7f261e89", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "5486f406-5e1d-49e4-989b-58b164778110", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "c1397f74-17dd-4cf2-b49d-391b89c877a4", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "812843b9-c71a-4141-b204-3387f0fee39a", "comment": "", @@ -87,10 +120,61 @@ "target": "css=.modal-footer > .btn-danger", "targets": [ ["css=.modal-footer > .btn-danger", "css:finder"], - ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], - ["xpath=//div[3]/button", "xpath:position"] + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[5]/div/div/div[3]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "a024bec1-b14e-456a-9f59-3a08b49f463a", + "comment": "", + "command": "waitForElementVisible", + "target": "xpath=//div[@role=\"alert\" and contains(., \"User deleted.\")]", + "targets": [], + "value": "30000" + }, { + "id": "d995f269-813b-487d-98dc-e730911643c1", + "comment": "", + "command": "waitForElementNotPresent", + "target": "xpath=//div[@role=\"alert\" and contains(., \"User deleted.\")]", + "targets": [], + "value": "30000" + }, { + "id": "fc07efd6-4f50-42d1-88ac-538fb9a02ce4", + "comment": "", + "command": "click", + "target": "css=.btn > span", + "targets": [ + ["css=.btn > span", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section[2]/div/div[2]/div/div/div/div[2]/button/span", "xpath:idRelative"], + ["xpath=//div[2]/button/span", "xpath:position"], + ["xpath=//span[contains(.,'Delete Request')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "cd32d898-adab-4ac8-8cf6-cf1a3b970396", + "comment": "", + "command": "click", + "target": "css=.modal-footer > .btn-danger", + "targets": [ + ["css=.modal-footer > .btn-danger", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[5]/div/div/div[3]/button", "xpath:position"] ], "value": "" + }, { + "id": "43bd7acf-67cf-4b52-87f8-0c049f7ec707", + "comment": "", + "command": "waitForElementVisible", + "target": "xpath=//div[@role=\"alert\" and contains(., \"User deleted.\")]", + "targets": [], + "value": "30000" + }, { + "id": "617dd2b1-f8e4-4d8d-ad2c-ce2ec1b9ad13", + "comment": "", + "command": "waitForElementNotPresent", + "target": "xpath=//div[@role=\"alert\" and contains(., \"User deleted.\")]", + "targets": [], + "value": "30000" }, { "id": "2d8da370-0a5a-4048-a8bd-f68210a271c5", "comment": "", @@ -114,18 +198,34 @@ ["xpath=//p[contains(.,'There are no new user requests at this time.')]", "xpath:innerText"] ], "value": "There are no new user requests at this time." + }, { + "id": "e406c422-d086-43e8-9c31-1b83177368ac", + "comment": "", + "command": "click", + "target": "id=user-nav-dropdown-toggle", + "targets": [ + ["id=user-nav-dropdown-toggle", "id"], + ["css=#user-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='user-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[4]/button", "xpath:position"], + ["xpath=//button[contains(.,'Logged in as admin')]", "xpath:innerText"] + ], + "value": "" }, { "id": "e6d6cac9-cc9a-424d-b89e-90b9eb899b7a", "comment": "", "command": "click", - "target": "linkText=Logout", + "target": "id=user-nav-dropdown-logout", "targets": [ + ["id=user-nav-dropdown-logout", "id"], ["linkText=Logout", "linkText"], - ["css=.nav-link:nth-child(4)", "css:finder"], + ["css=#user-nav-dropdown-logout", "css:finder"], ["xpath=//a[contains(text(),'Logout')]", "xpath:link"], - ["xpath=//div[@id='basic-navbar-nav']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[@id='user-nav-dropdown-logout']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/div/a", "xpath:idRelative"], ["xpath=//a[contains(@href, '/logout')]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"], + ["xpath=//div[4]/div/a", "xpath:position"], ["xpath=//a[contains(.,'Logout')]", "xpath:innerText"] ], "value": "" @@ -189,13 +289,6 @@ ["xpath=//form/div", "xpath:position"] ], "value": "Bad credentials" - }, { - "id": "5b421e75-d5db-44ff-ac57-2fd8f91c2478", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1503-3.side b/backend/src/integration/resources/SHIBUI-1503-3.side index a7d913abd..25a91828f 100644 --- a/backend/src/integration/resources/SHIBUI-1503-3.side +++ b/backend/src/integration/resources/SHIBUI-1503-3.side @@ -41,7 +41,7 @@ "id": "fa54f4c6-f1b4-422c-be58-b6c1fef27a47", "comment": "", "command": "click", - "target": "name=submit", + "target": "css=.btn", "targets": [ ["name=submit", "name"], ["css=td:nth-child(1) > input", "css:finder"], @@ -49,6 +49,34 @@ ["xpath=//tr[3]/td/input", "xpath:position"] ], "value": "" + }, { + "id": "b774855b-f353-43ac-9114-3e1595ee49f8", + "comment": "", + "command": "waitForElementVisible", + "target": "linkText=Admin", + "targets": [], + "value": "30000" + }, { + "id": "b257e9f6-cf71-4d3c-a198-2f64a0f9dfe7", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "3b657df1-befd-4386-be27-0f84c6162ad6", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "33149d02-0782-4076-8fda-774d57c83487", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "fe445ea9-b8ac-4186-a814-4cda6968f6d7", "comment": "", @@ -74,36 +102,52 @@ "id": "659e4909-239b-4895-aa54-8bf3a6bd57cd", "comment": "", "command": "waitForElementVisible", - "target": "css=tr:nth-child(3) .form-control", + "target": "xpath=//table/tbody/tr[td[.='none2']]", "targets": [], "value": "30000" - }, { - "id": "1c973205-111b-4440-afef-bd0e7e13b18c", - "comment": "", - "command": "click", - "target": "css=tr:nth-child(3) .form-control", - "targets": [ - ["css=tr:nth-child(3) .form-control", "css:finder"], - ["xpath=//tr[3]/td[3]/select", "xpath:position"] - ], - "value": "" }, { "id": "dc06ff49-c076-4f60-95d1-a42514cc6038", "comment": "", "command": "select", - "target": "css=tr:nth-child(3) .form-control", + "target": "xpath=//table/tbody/tr[td[.='none2']]/td[4]/select", "targets": [], "value": "label=ROLE_USER" + }, { + "id": "b97f8d3e-d031-4a04-a6c9-f0804c077295", + "comment": "", + "command": "pause", + "target": "5000", + "targets": [], + "value": "" }, { "id": "fb78d880-ffb7-4477-b1af-f9a8593875de", "comment": "", "command": "click", - "target": "css=li:nth-child(3) > .nav-link > translate-i18n", + "target": "id=user-nav-dropdown-toggle", "targets": [ - ["css=li:nth-child(3) > .nav-link > translate-i18n", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li[3]/a/translate-i18n", "xpath:idRelative"], - ["xpath=//li[3]/a/translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Logout')]", "xpath:innerText"] + ["id=user-nav-dropdown-toggle", "id"], + ["css=#user-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='user-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[4]/button", "xpath:position"], + ["xpath=//button[contains(.,'Logged in as admin')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "c52df093-56f2-467c-ba0b-c9441a56e0c6", + "comment": "", + "command": "click", + "target": "id=user-nav-dropdown-logout", + "targets": [ + ["id=user-nav-dropdown-logout", "id"], + ["linkText=Logout", "linkText"], + ["css=#user-nav-dropdown-logout", "css:finder"], + ["xpath=//a[contains(text(),'Logout')]", "xpath:link"], + ["xpath=//a[@id='user-nav-dropdown-logout']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/logout')]", "xpath:href"], + ["xpath=//div[4]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Logout')]", "xpath:innerText"] ], "value": "" }, { @@ -124,7 +168,7 @@ ["xpath=//input[@name='username']", "xpath:attributes"], ["xpath=//input", "xpath:position"] ], - "value": "none" + "value": "none2" }, { "id": "c8bf8ea5-1f75-4a40-aca4-9dfa6a6056dc", "comment": "", @@ -136,12 +180,12 @@ ["xpath=//input[@name='password']", "xpath:attributes"], ["xpath=//tr[2]/td[2]/input", "xpath:position"] ], - "value": "nonepass" + "value": "none2pass" }, { "id": "ba66c45f-2436-4fe7-a5a9-31b55ffe8118", "comment": "", "command": "click", - "target": "name=submit", + "target": "css=.btn", "targets": [ ["name=submit", "name"], ["css=td:nth-child(1) > input", "css:finder"], @@ -170,13 +214,6 @@ ["xpath=//a[contains(.,'Metadata Sources')]", "xpath:innerText"] ], "value": "Metadata Sources" - }, { - "id": "5b9612bd-d0ea-439b-895f-3dc372023578", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1740-1.side b/backend/src/integration/resources/SHIBUI-1740-1.side index 40a5e54df..c3cc756ff 100644 --- a/backend/src/integration/resources/SHIBUI-1740-1.side +++ b/backend/src/integration/resources/SHIBUI-1740-1.side @@ -52,16 +52,24 @@ ["xpath=//p[2]/input", "xpath:position"] ], "value": "${KEY_ENTER}" + }, { + "id": "a95f9c87-d3fd-4114-b1e0-4164071c4381", + "comment": "", + "command": "waitForElementVisible", + "target": "id=advanced-nav-dropdown-toggle", + "targets": [], + "value": "30000" }, { "id": "0bdcd2aa-3e9e-41be-96d2-abf567538990", "comment": "", "command": "click", - "target": "id=dropdown-basic", + "target": "id=advanced-nav-dropdown-toggle", "targets": [ - ["id=dropdown-basic", "id"], - ["xpath=//button[@id='dropdown-basic']", "xpath:attributes"], - ["xpath=//div[@id='basic-nav-dropdown']/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], + ["id=advanced-nav-dropdown-toggle", "id"], + ["css=#advanced-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='advanced-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[3]/button", "xpath:position"], ["xpath=//button[contains(.,'Advanced')]", "xpath:innerText"] ], "value": "" @@ -69,12 +77,14 @@ "id": "13b8c74a-6466-4f17-823b-aa9e1e2c8559", "comment": "", "command": "click", - "target": "linkText=Groups", + "target": "id=advanced-nav-dropdown-groups", "targets": [ + ["id=advanced-nav-dropdown-groups", "id"], ["linkText=Groups", "linkText"], - ["css=.text-primary:nth-child(2)", "css:finder"], + ["css=#advanced-nav-dropdown-groups", "css:finder"], ["xpath=//a[contains(text(),'Groups')]", "xpath:link"], - ["xpath=//div[@id='basic-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[@id='advanced-nav-dropdown-groups']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/div/a[2]", "xpath:idRelative"], ["xpath=//a[contains(@href, '/groups')]", "xpath:href"], ["xpath=//a[2]", "xpath:position"], ["xpath=//a[contains(.,'Groups')]", "xpath:innerText"] diff --git a/backend/src/integration/resources/SHIBUI-1740-2.side b/backend/src/integration/resources/SHIBUI-1740-2.side index abe7b0709..ce06fa931 100644 --- a/backend/src/integration/resources/SHIBUI-1740-2.side +++ b/backend/src/integration/resources/SHIBUI-1740-2.side @@ -56,12 +56,13 @@ "id": "e522436b-e75f-451c-953c-28328dbc3511", "comment": "", "command": "click", - "target": "id=dropdown-basic", + "target": "id=advanced-nav-dropdown-toggle", "targets": [ - ["id=dropdown-basic", "id"], - ["xpath=//button[@id='dropdown-basic']", "xpath:attributes"], - ["xpath=//div[@id='basic-nav-dropdown']/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], + ["id=advanced-nav-dropdown-toggle", "id"], + ["css=#advanced-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='advanced-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[3]/button", "xpath:position"], ["xpath=//button[contains(.,'Advanced')]", "xpath:innerText"] ], "value": "" @@ -69,12 +70,14 @@ "id": "a2c27b66-4110-49bd-986c-d21611a39834", "comment": "", "command": "click", - "target": "linkText=Groups", + "target": "id=advanced-nav-dropdown-groups", "targets": [ + ["id=advanced-nav-dropdown-groups", "id"], ["linkText=Groups", "linkText"], - ["css=.text-primary:nth-child(2)", "css:finder"], + ["css=#advanced-nav-dropdown-groups", "css:finder"], ["xpath=//a[contains(text(),'Groups')]", "xpath:link"], - ["xpath=//div[@id='basic-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[@id='advanced-nav-dropdown-groups']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/div/a[2]", "xpath:idRelative"], ["xpath=//a[contains(@href, '/groups')]", "xpath:href"], ["xpath=//a[2]", "xpath:position"], ["xpath=//a[contains(.,'Groups')]", "xpath:innerText"] diff --git a/backend/src/integration/resources/SHIBUI-1740-3.side b/backend/src/integration/resources/SHIBUI-1740-3.side index 2a026c9b1..9c53b80e5 100644 --- a/backend/src/integration/resources/SHIBUI-1740-3.side +++ b/backend/src/integration/resources/SHIBUI-1740-3.side @@ -52,6 +52,13 @@ ["xpath=//p[2]/input", "xpath:position"] ], "value": "${KEY_ENTER}" + }, { + "id": "81262307-71de-4a6a-9087-6d5aeb1efb6c", + "comment": "", + "command": "waitForElementVisible", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" }, { "id": "b64a0533-2175-4578-baeb-7ca4e97e0e23", "comment": "", @@ -77,10 +84,12 @@ "id": "ed48c0d6-990b-45d2-92cb-f286817d673e", "comment": "", "command": "click", - "target": "xpath=(//button[@id='dropdown-basic'])[2]", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["xpath=(//button[@id='dropdown-basic'])[2]", "xpath:attributes"], - ["xpath=(//div[@id='basic-nav-dropdown']/button)[2]", "xpath:idRelative"], + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], ["xpath=//div[2]/button", "xpath:position"], ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], @@ -89,14 +98,16 @@ "id": "9e312878-820e-4eef-a70d-2225d68f9760", "comment": "", "command": "click", - "target": "linkText=Add a new metadata source", + "target": "id=metadata-nav-dropdown-source", "targets": [ + ["id=metadata-nav-dropdown-source", "id"], ["linkText=Add a new metadata source", "linkText"], - ["css=.text-primary:nth-child(1)", "css:finder"], + ["css=#metadata-nav-dropdown-source", "css:finder"], ["xpath=//a[contains(text(),'Add a new metadata source')]", "xpath:link"], - ["xpath=//div[@id='basic-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[@id='metadata-nav-dropdown-source']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a", "xpath:idRelative"], ["xpath=//a[contains(@href, '/metadata/source/new')]", "xpath:href"], - ["xpath=//div/a", "xpath:position"], + ["xpath=//div[2]/div/a", "xpath:position"], ["xpath=//a[contains(.,'Add a new metadata source')]", "xpath:innerText"] ], "value": "" @@ -293,14 +304,30 @@ "id": "74b9b96f-d3de-4b1f-b429-5ddc2415b0cf", "comment": "", "command": "click", - "target": "linkText=Logout", + "target": "id=user-nav-dropdown-toggle", + "targets": [ + ["id=user-nav-dropdown-toggle", "id"], + ["css=#user-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='user-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[4]/button", "xpath:position"], + ["xpath=//button[contains(.,'Logged in as admin')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "b1cdb40a-e36e-4280-bc02-a0a567dac6c0", + "comment": "", + "command": "click", + "target": "id=user-nav-dropdown-logout", "targets": [ + ["id=user-nav-dropdown-logout", "id"], ["linkText=Logout", "linkText"], - ["css=.nav-link:nth-child(4)", "css:finder"], + ["css=#user-nav-dropdown-logout", "css:finder"], ["xpath=//a[contains(text(),'Logout')]", "xpath:link"], - ["xpath=//div[@id='basic-navbar-nav']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[@id='user-nav-dropdown-logout']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/div/a", "xpath:idRelative"], ["xpath=//a[contains(@href, '/logout')]", "xpath:href"], - ["xpath=//nav/div/div/a[2]", "xpath:position"], + ["xpath=//div[4]/div/a", "xpath:position"], ["xpath=//a[contains(.,'Logout')]", "xpath:innerText"] ], "value": "" @@ -354,21 +381,6 @@ ["xpath=//div[2]/div/div/div", "xpath:position"] ], "value": "" - }, { - "id": "c1459507-5b54-4119-ac3f-753209282b9e", - "comment": "", - "command": "click", - "target": "linkText=Logout", - "targets": [ - ["linkText=Logout", "linkText"], - ["css=.nav-link:nth-child(3)", "css:finder"], - ["xpath=//a[contains(text(),'Logout')]", "xpath:link"], - ["xpath=//div[@id='basic-navbar-nav']/div/a[2]", "xpath:idRelative"], - ["xpath=//a[contains(@href, '/logout')]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"], - ["xpath=//a[contains(.,'Logout')]", "xpath:innerText"] - ], - "value": "" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1740-4.side b/backend/src/integration/resources/SHIBUI-1740-4.side index 9c2270371..77631079b 100644 --- a/backend/src/integration/resources/SHIBUI-1740-4.side +++ b/backend/src/integration/resources/SHIBUI-1740-4.side @@ -52,6 +52,13 @@ ["xpath=//p[2]/input", "xpath:position"] ], "value": "${KEY_ENTER}" + }, { + "id": "db17b393-73ca-473d-b3bf-c3d75cc82a13", + "comment": "", + "command": "waitForElementVisible", + "target": "id=user-nav-dropdown-toggle", + "targets": [], + "value": "30000" }, { "id": "76210fb2-ebed-430b-bc73-7c114fef2c34", "comment": "", @@ -73,18 +80,34 @@ "target": "/", "targets": [], "value": "" + }, { + "id": "76475106-daf4-413b-9462-c7da0c44b65f", + "comment": "", + "command": "click", + "target": "id=user-nav-dropdown-toggle", + "targets": [ + ["id=user-nav-dropdown-toggle", "id"], + ["css=#user-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='user-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[4]/button", "xpath:position"], + ["xpath=//button[contains(.,'Logged in as admin')]", "xpath:innerText"] + ], + "value": "" }, { "id": "15f111a8-69c3-48a1-921e-6f73d2bb5722", "comment": "", "command": "click", - "target": "linkText=Logout", + "target": "id=user-nav-dropdown-logout", "targets": [ + ["id=user-nav-dropdown-logout", "id"], ["linkText=Logout", "linkText"], - ["css=.nav-link:nth-child(3)", "css:finder"], + ["css=#user-nav-dropdown-logout", "css:finder"], ["xpath=//a[contains(text(),'Logout')]", "xpath:link"], - ["xpath=//div[@id='basic-navbar-nav']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[@id='user-nav-dropdown-logout']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/div/a", "xpath:idRelative"], ["xpath=//a[contains(@href, '/logout')]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"], + ["xpath=//div[4]/div/a", "xpath:position"], ["xpath=//a[contains(.,'Logout')]", "xpath:innerText"] ], "value": "" @@ -131,13 +154,13 @@ "id": "6fb9efa3-c73e-4d27-82e6-28b25bf4fb60", "comment": "", "command": "click", - "target": "id=dropdown-basic", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["id=dropdown-basic", "id"], - ["css=#dropdown-basic", "css:finder"], - ["xpath=//button[@id='dropdown-basic']", "xpath:attributes"], - ["xpath=//div[@id='basic-nav-dropdown']/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" @@ -145,14 +168,16 @@ "id": "ee100ee8-d619-4d23-8cbc-ef9fa0e4b974", "comment": "", "command": "click", - "target": "linkText=Add a new metadata source", + "target": "id=metadata-nav-dropdown-source", "targets": [ + ["id=metadata-nav-dropdown-source", "id"], ["linkText=Add a new metadata source", "linkText"], - ["css=.text-primary", "css:finder"], + ["css=#metadata-nav-dropdown-source", "css:finder"], ["xpath=//a[contains(text(),'Add a new metadata source')]", "xpath:link"], - ["xpath=//div[@id='basic-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[@id='metadata-nav-dropdown-source']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a", "xpath:idRelative"], ["xpath=//a[contains(@href, '/metadata/source/new')]", "xpath:href"], - ["xpath=//div/a", "xpath:position"], + ["xpath=//div[2]/div/a", "xpath:position"], ["xpath=//a[contains(.,'Add a new metadata source')]", "xpath:innerText"] ], "value": "" @@ -330,18 +355,34 @@ ["xpath=//a[contains(.,'Selenium Test')]", "xpath:innerText"] ], "value": "Selenium Test" + }, { + "id": "14005933-29c9-46fd-b874-9a7beabea242", + "comment": "", + "command": "click", + "target": "id=user-nav-dropdown-toggle", + "targets": [ + ["id=user-nav-dropdown-toggle", "id"], + ["css=#user-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='user-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[3]/button", "xpath:position"], + ["xpath=//button[contains(.,'Logged in as nonadmin')]", "xpath:innerText"] + ], + "value": "" }, { "id": "3e1f32d0-3d4d-4dac-95fd-765337b75e44", "comment": "", "command": "click", - "target": "linkText=Logout", + "target": "id=user-nav-dropdown-logout", "targets": [ + ["id=user-nav-dropdown-logout", "id"], ["linkText=Logout", "linkText"], - ["css=.nav-link:nth-child(3)", "css:finder"], + ["css=#user-nav-dropdown-logout", "css:finder"], ["xpath=//a[contains(text(),'Logout')]", "xpath:link"], - ["xpath=//div[@id='basic-navbar-nav']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[@id='user-nav-dropdown-logout']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/div/a", "xpath:idRelative"], ["xpath=//a[contains(@href, '/logout')]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"], + ["xpath=//div[3]/div/a", "xpath:position"], ["xpath=//a[contains(.,'Logout')]", "xpath:innerText"] ], "value": "" @@ -456,6 +497,13 @@ "target": "id=role-anonymousUser", "targets": [], "value": "label=ROLE_USER" + }, { + "id": "dd8ed48b-eb9d-4ee9-9188-2312f5ea964b", + "comment": "", + "command": "waitForElementNotVisible", + "target": "xpath=//div[@role=\"alert\"]", + "targets": [], + "value": "30000" }, { "id": "a001ad79-c8ef-4308-a0d7-73843385621d", "comment": "", @@ -477,18 +525,34 @@ "target": "id=group-anonymousUser", "targets": [], "value": "label=A1" + }, { + "id": "021cd81f-f249-4a21-a5f2-6291ef7affac", + "comment": "", + "command": "click", + "target": "id=user-nav-dropdown-toggle", + "targets": [ + ["id=user-nav-dropdown-toggle", "id"], + ["css=#user-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='user-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[4]/button", "xpath:position"], + ["xpath=//button[contains(.,'Logged in as admin')]", "xpath:innerText"] + ], + "value": "" }, { "id": "8913d9c6-7cca-42cc-abd5-bd1b014e1853", "comment": "", "command": "click", - "target": "linkText=Logout", + "target": "id=user-nav-dropdown-logout", "targets": [ + ["id=user-nav-dropdown-logout", "id"], ["linkText=Logout", "linkText"], - ["css=.nav-link:nth-child(4)", "css:finder"], + ["css=#user-nav-dropdown-logout", "css:finder"], ["xpath=//a[contains(text(),'Logout')]", "xpath:link"], - ["xpath=//div[@id='basic-navbar-nav']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[@id='user-nav-dropdown-logout']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/div/a", "xpath:idRelative"], ["xpath=//a[contains(@href, '/logout')]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"], + ["xpath=//div[4]/div/a", "xpath:position"], ["xpath=//a[contains(.,'Logout')]", "xpath:innerText"] ], "value": "" @@ -555,21 +619,6 @@ ["xpath=//div[2]/div/div/div", "xpath:position"] ], "value": "" - }, { - "id": "1f4dfb86-8969-4f2a-a8f1-0873a501f670", - "comment": "", - "command": "click", - "target": "linkText=Logout", - "targets": [ - ["linkText=Logout", "linkText"], - ["css=.nav-link:nth-child(3)", "css:finder"], - ["xpath=//a[contains(text(),'Logout')]", "xpath:link"], - ["xpath=//div[@id='basic-navbar-nav']/div/a[2]", "xpath:idRelative"], - ["xpath=//a[contains(@href, '/logout')]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"], - ["xpath=//a[contains(.,'Logout')]", "xpath:innerText"] - ], - "value": "" }] }], "suites": [{ diff --git a/backend/src/integration/resources/SHIBUI-1742-1.side b/backend/src/integration/resources/SHIBUI-1742-1.side index cc8b94078..3e60ce581 100644 --- a/backend/src/integration/resources/SHIBUI-1742-1.side +++ b/backend/src/integration/resources/SHIBUI-1742-1.side @@ -52,6 +52,13 @@ ["xpath=//p[2]/input", "xpath:position"] ], "value": "${KEY_ENTER}" + }, { + "id": "706b5765-d246-458f-9a72-be2a5dc59fbb", + "comment": "", + "command": "waitForElementVisible", + "target": "linkText=Admin", + "targets": [], + "value": "30000" }, { "id": "9572c7f3-5365-4864-a335-a0ed4c87ec7f", "comment": "", @@ -109,6 +116,13 @@ "target": "id=role-anonymousUser", "targets": [], "value": "label=ROLE_ENABLE" + }, { + "id": "21ab7479-9782-4b44-a169-732c957c6d01", + "comment": "", + "command": "waitForElementNotVisible", + "target": "xpath=//div[@role=\"alert\"]", + "targets": [], + "value": "30000" }, { "id": "58c0e31f-f73c-4b5c-82b2-7825dc5efa67", "comment": "", @@ -151,18 +165,34 @@ "target": "id=group-nonadmin", "targets": [], "value": "label=A1" + }, { + "id": "07b7cffd-e222-4250-b2b7-a6761ded58ce", + "comment": "", + "command": "click", + "target": "id=user-nav-dropdown-toggle", + "targets": [ + ["id=user-nav-dropdown-toggle", "id"], + ["css=#user-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='user-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[4]/button", "xpath:position"], + ["xpath=//button[contains(.,'Logged in as admin')]", "xpath:innerText"] + ], + "value": "" }, { "id": "7109b2ff-b84f-403f-afd0-9e260bc1fc81", "comment": "", "command": "click", - "target": "linkText=Logout", + "target": "id=user-nav-dropdown-logout", "targets": [ + ["id=user-nav-dropdown-logout", "id"], ["linkText=Logout", "linkText"], - ["css=.nav-link:nth-child(4)", "css:finder"], + ["css=#user-nav-dropdown-logout", "css:finder"], ["xpath=//a[contains(text(),'Logout')]", "xpath:link"], - ["xpath=//div[@id='basic-navbar-nav']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[@id='user-nav-dropdown-logout']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/div/a", "xpath:idRelative"], ["xpath=//a[contains(@href, '/logout')]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"], + ["xpath=//div[4]/div/a", "xpath:position"], ["xpath=//a[contains(.,'Logout')]", "xpath:innerText"] ], "value": "" @@ -209,13 +239,13 @@ "id": "bbbdc0b9-5e2d-4283-8cbf-7ccfa089d23d", "comment": "", "command": "click", - "target": "id=dropdown-basic", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["id=dropdown-basic", "id"], - ["css=#dropdown-basic", "css:finder"], - ["xpath=//button[@id='dropdown-basic']", "xpath:attributes"], - ["xpath=//div[@id='basic-nav-dropdown']/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" @@ -223,14 +253,16 @@ "id": "76fc5d62-a49c-4788-91cb-c285cb9456d5", "comment": "", "command": "click", - "target": "linkText=Add a new metadata source", + "target": "id=metadata-nav-dropdown-source", "targets": [ + ["id=metadata-nav-dropdown-source", "id"], ["linkText=Add a new metadata source", "linkText"], - ["css=.text-primary", "css:finder"], + ["css=#metadata-nav-dropdown-source", "css:finder"], ["xpath=//a[contains(text(),'Add a new metadata source')]", "xpath:link"], - ["xpath=//div[@id='basic-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[@id='metadata-nav-dropdown-source']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a", "xpath:idRelative"], ["xpath=//a[contains(@href, '/metadata/source/new')]", "xpath:href"], - ["xpath=//div/a", "xpath:position"], + ["xpath=//div[2]/div/a", "xpath:position"], ["xpath=//a[contains(.,'Add a new metadata source')]", "xpath:innerText"] ], "value": "" @@ -406,11 +438,25 @@ ["xpath=//li[3]/button", "xpath:position"] ], "value": "" + }, { + "id": "f4ebca18-6f1a-4638-87d8-d9398139ee4d", + "comment": "", + "command": "click", + "target": "id=user-nav-dropdown-toggle", + "targets": [ + ["id=user-nav-dropdown-toggle", "id"], + ["css=#user-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='user-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[3]/button", "xpath:position"], + ["xpath=//button[contains(.,'Logged in as nonadmin')]", "xpath:innerText"] + ], + "value": "" }, { "id": "7adae5ea-9424-4709-8472-54514cd189a5", "comment": "", "command": "click", - "target": "linkText=Logout", + "target": "id=user-nav-dropdown-logout", "targets": [ ["linkText=Logout", "linkText"], ["css=.nav-link:nth-child(3)", "css:finder"], @@ -471,18 +517,34 @@ ["xpath=//td[5]/span", "xpath:position"] ], "value": "" + }, { + "id": "d5f2304c-b1f4-470c-812a-42a75b92ad6a", + "comment": "", + "command": "click", + "target": "id=user-nav-dropdown-toggle", + "targets": [ + ["id=user-nav-dropdown-toggle", "id"], + ["css=#user-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='user-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[3]/button", "xpath:position"], + ["xpath=//button[contains(.,'Logged in as anonymousUser')]", "xpath:innerText"] + ], + "value": "" }, { "id": "0d322ab9-f8d7-4cc3-8b91-48c684955b1a", "comment": "", "command": "click", - "target": "linkText=Logout", + "target": "id=user-nav-dropdown-logout", "targets": [ + ["id=user-nav-dropdown-logout", "id"], ["linkText=Logout", "linkText"], - ["css=.nav-link:nth-child(3)", "css:finder"], + ["css=#user-nav-dropdown-logout", "css:finder"], ["xpath=//a[contains(text(),'Logout')]", "xpath:link"], - ["xpath=//div[@id='basic-navbar-nav']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[@id='user-nav-dropdown-logout']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/div/a", "xpath:idRelative"], ["xpath=//a[contains(@href, '/logout')]", "xpath:href"], - ["xpath=//a[2]", "xpath:position"], + ["xpath=//div[3]/div/a", "xpath:position"], ["xpath=//a[contains(.,'Logout')]", "xpath:innerText"] ], "value": "" @@ -525,6 +587,13 @@ ["xpath=//p[2]/input", "xpath:position"] ], "value": "${KEY_ENTER}" + }, { + "id": "4bdddea6-4e3d-4947-a1cc-b05a795d56c5", + "comment": "", + "command": "waitForElementVisible", + "target": "xpath=//table/tbody/tr/td[5]/span/div/input", + "targets": [], + "value": "3000" }, { "id": "79423a30-b82b-443f-b0ea-80370a6d397b", "comment": "", diff --git a/backend/src/integration/resources/SHIBUI-1742-2.side b/backend/src/integration/resources/SHIBUI-1742-2.side index a0684ca69..ba40df4c0 100644 --- a/backend/src/integration/resources/SHIBUI-1742-2.side +++ b/backend/src/integration/resources/SHIBUI-1742-2.side @@ -53,19 +53,19 @@ ], "value": "${KEY_ENTER}" }, { - "id": "53ffb74f-8635-453b-8b3e-22c0a11e0902", + "id": "eae646fb-6b90-42a0-92e0-bf44f1ee0a80", "comment": "", - "command": "pause", - "target": "5000", + "command": "waitForElementVisible", + "target": "xpath=//button[text()='Advanced']", "targets": [], - "value": "" + "value": "30000" }, { "id": "c820e378-569c-44ba-834a-c7d6203d3e12", "comment": "", "command": "click", "target": "xpath=//button[text()='Advanced']", "targets": [], - "value": "30000" + "value": "" }, { "id": "8f1af018-7f7f-441c-bb59-9591469cc0da", "comment": "", @@ -179,42 +179,6 @@ "target": "xpath=//div[@role=\"alert\" and contains(., \"Updated role successfully.\")]", "targets": [], "value": "" - }, { - "id": "2317a47a-e308-4c1f-bd08-50360950c082", - "comment": "", - "command": "click", - "target": "xpath=(//button[@id='dropdown-basic'])[2]", - "targets": [ - ["xpath=(//button[@id='dropdown-basic'])[2]", "xpath:attributes"], - ["xpath=(//div[@id='basic-nav-dropdown']/button)[2]", "xpath:idRelative"], - ["xpath=//div[2]/button", "xpath:position"], - ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "cfe9cc6f-d96a-48ad-a273-d03eba7cefce", - "comment": "", - "command": "click", - "target": "id=dropdown-basic", - "targets": [ - ["id=dropdown-basic", "id"], - ["xpath=//button[@id='dropdown-basic']", "xpath:attributes"], - ["xpath=//div[@id='basic-nav-dropdown']/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Advanced')]", "xpath:innerText"] - ], - "value": "" - }, { - "id": "231fa40a-bb22-4d83-99e2-9a5a9d3ff823", - "comment": "", - "command": "click", - "target": "css=.p-3 > .d-flex", - "targets": [ - ["css=.p-3 > .d-flex", "css:finder"], - ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div", "xpath:idRelative"], - ["xpath=//section/div/div[2]/div", "xpath:position"] - ], - "value": "" }, { "id": "e20c0727-c04f-465d-a7dc-7c7a9210c47b", "comment": "", @@ -277,12 +241,13 @@ "id": "e8bedd18-aafa-4bff-85a4-ba36d7685225", "comment": "", "command": "click", - "target": "id=dropdown-basic", + "target": "id=advanced-nav-dropdown-toggle", "targets": [ - ["id=dropdown-basic", "id"], - ["xpath=//button[@id='dropdown-basic']", "xpath:attributes"], - ["xpath=//div[@id='basic-nav-dropdown']/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], + ["id=advanced-nav-dropdown-toggle", "id"], + ["css=#advanced-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='advanced-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[3]/button", "xpath:position"], ["xpath=//button[contains(.,'Advanced')]", "xpath:innerText"] ], "value": "" @@ -305,7 +270,7 @@ "id": "a378e628-4227-451b-9fb6-ef9edb7fc4fa", "comment": "", "command": "click", - "target": "css=tr:nth-child(5) .text-danger path", + "target": "css=table > tbody > tr:nth-child(5) > td.text-right > button", "targets": [ ["css=tr:nth-child(5) .text-danger path", "css:finder"] ], @@ -328,19 +293,6 @@ "target": "xpath=//div[@role=\"alert\" and contains(., \"remove role from all users first\")]", "targets": [], "value": "" - }, { - "id": "e704f343-5942-4053-aed7-1fa94e13320c", - "comment": "", - "command": "click", - "target": "id=dropdown-basic", - "targets": [ - ["id=dropdown-basic", "id"], - ["xpath=//button[@id='dropdown-basic']", "xpath:attributes"], - ["xpath=//div[@id='basic-nav-dropdown']/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], - ["xpath=//button[contains(.,'Advanced')]", "xpath:innerText"] - ], - "value": "" }, { "id": "78b2edf1-a85d-4a0e-9880-33a2bdef7b68", "comment": "", @@ -396,12 +348,13 @@ "id": "2f499bda-2230-45d2-85c5-efee606c5121", "comment": "", "command": "click", - "target": "id=dropdown-basic", + "target": "id=advanced-nav-dropdown-toggle", "targets": [ - ["id=dropdown-basic", "id"], - ["xpath=//button[@id='dropdown-basic']", "xpath:attributes"], - ["xpath=//div[@id='basic-nav-dropdown']/button", "xpath:idRelative"], - ["xpath=//div/button", "xpath:position"], + ["id=advanced-nav-dropdown-toggle", "id"], + ["css=#advanced-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='advanced-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[3]/button", "xpath:position"], ["xpath=//button[contains(.,'Advanced')]", "xpath:innerText"] ], "value": "" @@ -424,9 +377,12 @@ "id": "f4201d01-e582-4071-921b-ede543ce181a", "comment": "", "command": "click", - "target": "css=tr:nth-child(5) .text-danger path", + "target": "css=table > tbody > tr:nth-child(5) > td.text-right > button", "targets": [ - ["css=tr:nth-child(5) .text-danger path", "css:finder"] + ["css=tr:nth-child(5) .text-danger", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div[2]/table/tbody/tr[5]/td[2]/button", "xpath:idRelative"], + ["xpath=//tr[5]/td[2]/button", "xpath:position"] ], "value": "" }, { diff --git a/backend/src/integration/resources/SHIBUI-1743-1.side b/backend/src/integration/resources/SHIBUI-1743-1.side new file mode 100644 index 000000000..76a1a3a75 --- /dev/null +++ b/backend/src/integration/resources/SHIBUI-1743-1.side @@ -0,0 +1,270 @@ +{ + "id": "3ac57a4d-2fe9-4904-b496-48105fcbf11e", + "version": "2.0", + "name": "SHIBUI-1743-1", + "url": "http://localhost:10101", + "tests": [{ + "id": "aea7965a-db5c-47ec-b902-87e1bd318290", + "name": "SHIBUI-1743-1", + "commands": [{ + "id": "035adf50-a869-4192-ad3d-435b6ca04ba1", + "comment": "", + "command": "open", + "target": "/login", + "targets": [], + "value": "" + }, { + "id": "ceb04e82-d01c-429e-b1ea-072acf584f09", + "comment": "", + "command": "type", + "target": "id=username", + "targets": [ + ["id=username", "id"], + ["name=username", "name"], + ["css=#username", "css:finder"], + ["xpath=//input[@id='username']", "xpath:attributes"], + ["xpath=//input", "xpath:position"] + ], + "value": "admin" + }, { + "id": "c0ddf5d2-56a4-4d09-b822-f13aa9032266", + "comment": "", + "command": "type", + "target": "id=password", + "targets": [ + ["id=password", "id"], + ["name=password", "name"], + ["css=#password", "css:finder"], + ["xpath=//input[@id='password']", "xpath:attributes"], + ["xpath=//p[2]/input", "xpath:position"] + ], + "value": "adminpass" + }, { + "id": "b2d4dcb0-95f2-480e-a8ba-6bcafc0e9414", + "comment": "", + "command": "sendKeys", + "target": "id=password", + "targets": [ + ["id=password", "id"], + ["name=password", "name"], + ["css=#password", "css:finder"], + ["xpath=//input[@id='password']", "xpath:attributes"], + ["xpath=//p[2]/input", "xpath:position"] + ], + "value": "${KEY_ENTER}" + }, { + "id": "938e82d0-6e75-428a-9415-d2aa38003793", + "comment": "", + "command": "waitForElementEditable", + "target": "xpath=//button[contains(.,'Advanced')]", + "targets": [], + "value": "30000" + }, { + "id": "b2cef5a2-f0e1-4ca6-9ce5-e4a26314b4cd", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "34c76d5c-89e1-4e62-a424-2b1c845a01db", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "07677e0d-e61d-4b65-ae09-9f3231532c72", + "comment": "", + "command": "open", + "target": "/dashboard", + "targets": [], + "value": "" + }, { + "id": "c3698856-333c-4ab9-b455-d72cb6d3dfe5", + "comment": "", + "command": "waitForElementEditable", + "target": "xpath=//button[contains(.,'Advanced')]", + "targets": [], + "value": "30000" + }, { + "id": "461caf72-51b6-44ff-a9f6-845c4f134f0d", + "comment": "", + "command": "click", + "target": "xpath=//button[contains(.,'Advanced')]", + "targets": [ + ["id=dropdown-basic", "id"], + ["xpath=//button[@id='dropdown-basic']", "xpath:attributes"], + ["xpath=//div[@id='basic-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div/button", "xpath:position"], + ["xpath=//button[contains(.,'Advanced')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "dc417d90-3574-460e-a8fc-1207e7824835", + "comment": "", + "command": "click", + "target": "linkText=Groups", + "targets": [ + ["linkText=Groups", "linkText"], + ["css=.text-primary:nth-child(2)", "css:finder"], + ["xpath=//a[contains(text(),'Groups')]", "xpath:link"], + ["xpath=//div[@id='basic-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/groups')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Groups')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "6e2a02bf-dcdb-4e00-ab4b-7a9d92ce5c7d", + "comment": "", + "command": "click", + "target": "css=tr:nth-child(2) .text-primary > .svg-inline--fa", + "targets": [ + ["css=tr:nth-child(1) .text-primary > .svg-inline--fa", "css:finder"] + ], + "value": "" + }, { + "id": "a9de6741-0c08-4eae-b2a4-e1cef4c1326b", + "comment": "", + "command": "type", + "target": "id=root_validationRegex", + "targets": [], + "value": "" + }, { + "id": "8ab0b37b-3584-4e37-9154-ed766fe6546b", + "comment": "", + "command": "type", + "target": "id=root_validationRegex", + "targets": [], + "value": "foo.*" + }, { + "id": "e207cc31-d81c-4128-b029-88c8539d914f", + "comment": "", + "command": "click", + "target": "css=.fa-save > path", + "targets": [ + ["css=.fa-save > path", "css:finder"] + ], + "value": "" + }, { + "id": "1d6fa603-2386-4c9d-86dd-66ed0b1b2727", + "comment": "", + "command": "click", + "target": "css=tr:nth-child(2) .text-primary path", + "targets": [ + ["css=tr:nth-child(1) .text-primary path", "css:finder"] + ], + "value": "" + }, { + "id": "6de5933b-41ca-4e77-bdc3-24ffb1d2c87a", + "comment": "", + "command": "assertValue", + "target": "id=root_validationRegex", + "targets": [], + "value": "foo.*" + }, { + "id": "d00f2c01-9fdf-4112-a476-2b09fcf44fe1", + "comment": "", + "command": "type", + "target": "id=root_validationRegex", + "targets": [], + "value": "" + }, { + "id": "18a4f992-4776-47b0-a1be-8b9eab4201d4", + "comment": "", + "command": "type", + "target": "id=root_validationRegex", + "targets": [], + "value": "foo.*bar" + }, { + "id": "c135922a-ba8e-49e3-9e3c-e5d8fe181f39", + "comment": "", + "command": "click", + "target": "css=.btn-info", + "targets": [ + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Save')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "5ceb11cd-a144-471f-b628-3c623876aac9", + "comment": "", + "command": "click", + "target": "css=tr:nth-child(2) .text-primary > .svg-inline--fa", + "targets": [ + ["css=tr:nth-child(1) .text-primary > .svg-inline--fa", "css:finder"] + ], + "value": "" + }, { + "id": "b35bf5fc-6e88-4594-a2be-410a8cffa5b7", + "comment": "", + "command": "assertValue", + "target": "id=root_validationRegex", + "targets": [], + "value": "foo.*bar" + }, { + "id": "8196a13f-c609-48e7-9bf7-cf82baa92de3", + "comment": "", + "command": "type", + "target": "id=root_validationRegex", + "targets": [], + "value": "" + }, { + "id": "104a4b2d-4d7e-49e7-880e-5d5a3a3d0c6c", + "comment": "", + "command": "type", + "target": "id=root_validationRegex", + "targets": [], + "value": " " + }, { + "id": "bf4306b6-8daa-44c8-918b-0308facb1168", + "comment": "", + "command": "click", + "target": "css=.btn-info", + "targets": [ + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Save')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "3cb986b0-40b0-4f40-a684-c1167c7f6165", + "comment": "", + "command": "click", + "target": "css=tr:nth-child(2) .text-primary > .svg-inline--fa", + "targets": [ + ["css=tr:nth-child(1) .text-primary > .svg-inline--fa", "css:finder"] + ], + "value": "" + }, { + "id": "967fef94-832c-493c-83a2-92b174b00567", + "comment": "", + "command": "assertValue", + "target": "id=root_validationRegex", + "targets": [ + ["id=root_validationRegex", "id"], + ["css=#root_validationRegex", "css:finder"], + ["xpath=//input[@id='root_validationRegex']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] + ], + "value": "" + }] + }], + "suites": [{ + "id": "c5aa01a8-f302-4538-85f8-2f57971ea640", + "name": "Default Suite", + "persistSession": false, + "parallel": false, + "timeout": 300, + "tests": ["aea7965a-db5c-47ec-b902-87e1bd318290"] + }], + "urls": ["http://localhost:10101/"], + "plugins": [] +} \ No newline at end of file diff --git a/backend/src/integration/resources/SHIBUI-1743-2.side b/backend/src/integration/resources/SHIBUI-1743-2.side new file mode 100644 index 000000000..3908e652d --- /dev/null +++ b/backend/src/integration/resources/SHIBUI-1743-2.side @@ -0,0 +1,612 @@ +{ + "id": "393f49cf-1aed-4071-aed8-65eaf66a8f78", + "version": "2.0", + "name": "SHIBUI-1743-2", + "url": "http://localhost:10101", + "tests": [{ + "id": "5d823c03-1448-4bd0-ad8f-41f0bfc365a7", + "name": "SHIBUI-1743-2", + "commands": [{ + "id": "c27e336d-8789-4da1-bf03-9a8e9b900cf2", + "comment": "", + "command": "open", + "target": "/login", + "targets": [], + "value": "" + }, { + "id": "22cded73-0131-439b-bad6-f87dd48d9233", + "comment": "", + "command": "type", + "target": "id=username", + "targets": [ + ["id=username", "id"], + ["name=username", "name"], + ["css=#username", "css:finder"], + ["xpath=//input[@id='username']", "xpath:attributes"], + ["xpath=//input", "xpath:position"] + ], + "value": "admin" + }, { + "id": "5808aa96-a5b4-4c13-83b4-6cb71565fbce", + "comment": "", + "command": "type", + "target": "id=password", + "targets": [ + ["id=password", "id"], + ["name=password", "name"], + ["css=#password", "css:finder"], + ["xpath=//input[@id='password']", "xpath:attributes"], + ["xpath=//p[2]/input", "xpath:position"] + ], + "value": "adminpass" + }, { + "id": "6f4a6682-64a3-4501-a24a-d5477e976e24", + "comment": "", + "command": "sendKeys", + "target": "id=password", + "targets": [ + ["id=password", "id"], + ["name=password", "name"], + ["css=#password", "css:finder"], + ["xpath=//input[@id='password']", "xpath:attributes"], + ["xpath=//p[2]/input", "xpath:position"] + ], + "value": "${KEY_ENTER}" + }, { + "id": "168a6d36-5eda-41a5-8b6e-59567648dd2c", + "comment": "", + "command": "waitForElementVisible", + "target": "id=advanced-nav-dropdown-toggle", + "targets": [ + ["id=advanced-nav-dropdown-toggle", "id"], + ["css=#advanced-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='advanced-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[3]/button", "xpath:position"], + ["xpath=//button[contains(.,'Advanced')]", "xpath:innerText"] + ], + "value": "30000" + }, { + "id": "803e22d7-949f-4fd0-97e6-d2a6b0be988b", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "05fa781a-7867-4b41-b9ee-8f69c67c8e51", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "c3f11028-c8de-4742-ab4d-121b72b51abe", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "fefc39c6-9484-4e28-b0ba-2cddbdab5c3d", + "comment": "", + "command": "waitForElementVisible", + "target": "id=advanced-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "acc47c80-37a0-493d-9ee7-4461999c2462", + "comment": "", + "command": "click", + "target": "id=advanced-nav-dropdown-toggle", + "targets": [ + ["id=dropdown-basic", "id"], + ["xpath=//button[@id='dropdown-basic']", "xpath:attributes"], + ["xpath=//div[@id='basic-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div/button", "xpath:position"], + ["xpath=//button[contains(.,'Advanced')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "0517a6a2-3a03-41cb-a762-9513436aeabd", + "comment": "", + "command": "click", + "target": "linkText=Groups", + "targets": [ + ["linkText=Groups", "linkText"], + ["css=.text-primary:nth-child(2)", "css:finder"], + ["xpath=//a[contains(text(),'Groups')]", "xpath:link"], + ["xpath=//div[@id='basic-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/groups')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Groups')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "a9865fff-afe0-4786-8a32-18eb1f920424", + "comment": "", + "command": "click", + "target": "css=tr:nth-child(4) .text-primary path", + "targets": [ + ["css=tr:nth-child(4) .text-primary path", "css:finder"] + ], + "value": "" + }, { + "id": "b8d76db3-6b4d-42ab-b672-12b645546725", + "comment": "", + "command": "type", + "target": "id=root_validationRegex", + "targets": [ + ["id=root_validationRegex", "id"], + ["css=#root_validationRegex", "css:finder"], + ["xpath=//input[@id='root_validationRegex']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] + ], + "value": "foo.*" + }, { + "id": "2d470f1a-bf0c-4e31-bd7b-24da8e214fc8", + "comment": "", + "command": "click", + "target": "css=.btn-info", + "targets": [ + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Save')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "3e012b4f-0c0f-4f58-89ff-f32b8d78f163", + "comment": "", + "command": "click", + "target": "id=user-nav-dropdown-toggle", + "targets": [ + ["id=user-nav-dropdown-toggle", "id"], + ["css=#user-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='user-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[4]/button", "xpath:position"], + ["xpath=//button[contains(.,'Logged in as admin')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "e2cc961b-051e-4ae5-b075-8215dfbefc1b", + "comment": "", + "command": "click", + "target": "id=user-nav-dropdown-logout", + "targets": [ + ["id=user-nav-dropdown-logout", "id"], + ["linkText=Logout", "linkText"], + ["css=#user-nav-dropdown-logout", "css:finder"], + ["xpath=//a[contains(text(),'Logout')]", "xpath:link"], + ["xpath=//a[@id='user-nav-dropdown-logout']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/logout')]", "xpath:href"], + ["xpath=//div[4]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Logout')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "2fc8aa68-5a28-41e3-8355-5948cf5564f0", + "comment": "", + "command": "type", + "target": "id=username", + "targets": [ + ["id=username", "id"], + ["name=username", "name"], + ["css=#username", "css:finder"], + ["xpath=//input[@id='username']", "xpath:attributes"], + ["xpath=//input", "xpath:position"] + ], + "value": "nonadmin" + }, { + "id": "b295f36e-7e11-42f6-970d-d93b3ccb5411", + "comment": "", + "command": "type", + "target": "id=password", + "targets": [ + ["id=password", "id"], + ["name=password", "name"], + ["css=#password", "css:finder"], + ["xpath=//input[@id='password']", "xpath:attributes"], + ["xpath=//p[2]/input", "xpath:position"] + ], + "value": "nonadminpass" + }, { + "id": "5508285d-34e4-40a2-8670-e520ac59ada6", + "comment": "", + "command": "click", + "target": "css=.btn", + "targets": [ + ["css=.btn", "css:finder"], + ["xpath=//button[@type='submit']", "xpath:attributes"], + ["xpath=//button", "xpath:position"], + ["xpath=//button[contains(.,'Sign in')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "cdfa1d56-26e2-4cfe-8985-ccd1b8af1ffe", + "comment": "", + "command": "click", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [ + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "61a52996-637f-4a17-bd83-1391da2a1582", + "comment": "", + "command": "click", + "target": "id=metadata-nav-dropdown-source", + "targets": [ + ["id=metadata-nav-dropdown-source", "id"], + ["linkText=Add a new metadata source", "linkText"], + ["css=#metadata-nav-dropdown-source", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata source')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-source']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/source/new')]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata source')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "6f43b33d-2def-4561-817f-1c929c084188", + "comment": "", + "command": "waitForElementEditable", + "target": "id=root_serviceProviderName", + "targets": [], + "value": "30000" + }, { + "id": "487281e7-a78e-4dbf-b1d6-291e044ff503", + "comment": "", + "command": "type", + "target": "id=root_serviceProviderName", + "targets": [ + ["id=root_serviceProviderName", "id"], + ["css=#root_serviceProviderName", "css:finder"], + ["xpath=//input[@id='root_serviceProviderName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "test" + }, { + "id": "e16eec26-1941-4386-8d56-6a95992c7bb2", + "comment": "", + "command": "type", + "target": "id=root_entityId", + "targets": [ + ["id=root_entityId", "id"], + ["css=#root_entityId", "css:finder"], + ["xpath=//input[@id='root_entityId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/div/form/div/div/div/div/div/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] + ], + "value": "bar" + }, { + "id": "9bb1915a-a238-463e-985a-b34e82eb65d7", + "comment": "", + "command": "click", + "target": "css=body", + "targets": [], + "value": "" + }, { + "id": "1a61840b-2ac7-4335-be8c-b1152de04316", + "comment": "", + "command": "assertText", + "target": "css=.border-0 > .m-0", + "targets": [ + ["css=.border-0 > .m-0", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/div/form/div/div/div/div/div/div[2]/div/div/ul/li/small", "xpath:idRelative"], + ["xpath=//small", "xpath:position"], + ["xpath=//small[contains(.,'Pattern must match group url validation pattern: foo.*')]", "xpath:innerText"] + ], + "value": "Pattern must match group url validation pattern: foo.*" + }, { + "id": "a59f7ca5-78bc-4c14-8631-2625030291b4", + "comment": "", + "command": "type", + "target": "id=root_entityId", + "targets": [], + "value": "" + }, { + "id": "858b0e07-544c-4a0f-bb98-2aca2df27cee", + "comment": "", + "command": "type", + "target": "id=root_entityId", + "targets": [ + ["id=root_entityId", "id"], + ["css=#root_entityId", "css:finder"], + ["xpath=//input[@id='root_entityId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/div/form/div/div/div/div/div/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] + ], + "value": "foobar" + }, { + "id": "cc3ac3a6-09da-4118-8cb3-76bea91ee72f", + "comment": "", + "command": "click", + "target": "css=.label", + "targets": [ + ["css=.label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/nav/ul/li[2]/button/span", "xpath:idRelative"], + ["xpath=//li[2]/button/span", "xpath:position"], + ["xpath=//span[contains(.,'2. Organization Information')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "70830668-455e-4300-9b1c-9d8533d154a6", + "comment": "", + "command": "click", + "target": "css=.label:nth-child(1)", + "targets": [ + ["css=.label:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button/span", "xpath:idRelative"], + ["xpath=//li[3]/button/span", "xpath:position"], + ["xpath=//span[contains(.,'3. User Interface / MDUI Information')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "df50b6ab-a87f-4127-ad7a-680c5d978d41", + "comment": "", + "command": "click", + "target": "css=.label:nth-child(1)", + "targets": [ + ["css=.label:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button/span", "xpath:idRelative"], + ["xpath=//li[3]/button/span", "xpath:position"], + ["xpath=//span[contains(.,'4. SP SSO Descriptor Information')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "d4fb5c40-7f38-46ff-b264-732dd10d6f80", + "comment": "", + "command": "click", + "target": "css=.label:nth-child(1)", + "targets": [ + ["css=.label:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button/span", "xpath:idRelative"], + ["xpath=//li[3]/button/span", "xpath:position"], + ["xpath=//span[contains(.,'5. Logout Endpoints')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "3b3497f1-4f3e-447d-a6d2-0bada12696e7", + "comment": "", + "command": "click", + "target": "css=.label:nth-child(1)", + "targets": [ + ["css=.label:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button/span", "xpath:idRelative"], + ["xpath=//li[3]/button/span", "xpath:position"], + ["xpath=//span[contains(.,'6. Security Information')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "4330cd77-3176-4486-b163-11a74ed5730e", + "comment": "", + "command": "click", + "target": "css=.label:nth-child(1)", + "targets": [ + ["css=.label:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button/span", "xpath:idRelative"], + ["xpath=//li[3]/button/span", "xpath:position"], + ["xpath=//span[contains(.,'7. Assertion Consumer Service')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "11cbd07a-2cc4-496a-8b78-5d3c335314bc", + "comment": "", + "command": "click", + "target": "css=.array-add-button", + "targets": [ + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "c1983487-c602-41b1-98a2-321beb58598b", + "comment": "", + "command": "click", + "target": "id=root_assertionConsumerServices_0_locationUrl", + "targets": [ + ["id=root_assertionConsumerServices_0_locationUrl", "id"], + ["css=#root_assertionConsumerServices_0_locationUrl", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_0_locationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "" + }, { + "id": "866ed333-fc97-4eef-934f-34d1300778ea", + "comment": "", + "command": "type", + "target": "id=root_assertionConsumerServices_0_locationUrl", + "targets": [ + ["id=root_assertionConsumerServices_0_locationUrl", "id"], + ["css=#root_assertionConsumerServices_0_locationUrl", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_0_locationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "bar" + }, { + "id": "0192730a-0697-464d-a457-0201a1422178", + "comment": "", + "command": "click", + "target": "css=body", + "targets": [], + "value": "" + }, { + "id": "2627de6e-206f-4825-9918-dc8df830b17a", + "comment": "", + "command": "assertText", + "target": "css=.mb-0 .border-0 > .m-0", + "targets": [ + ["css=.mb-0 .border-0 > .m-0", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/ul/li/small", "xpath:idRelative"], + ["xpath=//small", "xpath:position"], + ["xpath=//small[contains(.,'Pattern must match group url validation pattern: foo.*')]", "xpath:innerText"] + ], + "value": "Pattern must match group url validation pattern: foo.*" + }, { + "id": "d84cb246-00d8-486b-8d5f-db96a5771c33", + "comment": "", + "command": "type", + "target": "id=root_assertionConsumerServices_0_locationUrl", + "targets": [ + ["id=root_assertionConsumerServices_0_locationUrl", "id"], + ["css=#root_assertionConsumerServices_0_locationUrl", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_0_locationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "" + }, { + "id": "9ed5bbd2-416a-42cf-a12c-c99073f464eb", + "comment": "", + "command": "type", + "target": "id=root_assertionConsumerServices_0_locationUrl", + "targets": [ + ["id=root_assertionConsumerServices_0_locationUrl", "id"], + ["css=#root_assertionConsumerServices_0_locationUrl", "css:finder"], + ["xpath=//input[@id='root_assertionConsumerServices_0_locationUrl']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[8]/div/div/div/div/div[2]/div/div/div/div[2]/div/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "foobar" + }, { + "id": "fdad62d8-ee52-422f-b0f0-e60883135d28", + "comment": "", + "command": "select", + "target": "id=root_assertionConsumerServices_0_binding", + "targets": [], + "value": "label=urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" + }, { + "id": "62d7dc6d-1799-45ad-a43d-d1c92062b16c", + "comment": "", + "command": "click", + "target": "css=.label:nth-child(1)", + "targets": [ + ["css=.label:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button/span", "xpath:idRelative"], + ["xpath=//li[3]/button/span", "xpath:position"], + ["xpath=//span[contains(.,'8. Relying Party Overrides')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "16b9cdc0-d46c-4997-a233-bc316707bd01", + "comment": "", + "command": "click", + "target": "css=.label:nth-child(1)", + "targets": [ + ["css=.label:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button/span", "xpath:idRelative"], + ["xpath=//li[3]/button/span", "xpath:position"], + ["xpath=//span[contains(.,'9. Attribute Release')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "cf683aa0-c8ea-42c1-8ea4-85b6cb4b4f11", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button", "xpath:idRelative"], + ["xpath=//li[3]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "d302d27d-3729-441c-9292-0deae42296e9", + "comment": "", + "command": "mouseOver", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button", "xpath:idRelative"], + ["xpath=//li[3]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "56bd41ba-c79e-4c68-b1fd-c6f39ddcb54a", + "comment": "", + "command": "click", + "target": "css=.save", + "targets": [ + ["css=.save", "css:finder"], + ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button", "xpath:idRelative"], + ["xpath=//li[3]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "51032b88-b73e-4a16-8fe1-7286b25daaaf", + "comment": "", + "command": "click", + "target": "linkText=test", + "targets": [ + ["linkText=test", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'test')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/source/5710d5cd-9241-45dc-8ed6-abe9fd01c8c2/configuration/options')]", "xpath:href"], + ["xpath=//td/a", "xpath:position"], + ["xpath=//a[contains(.,'test')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "8553e5d5-449c-42b1-be8b-92d6d4895800", + "comment": "", + "command": "waitForElementVisible", + "target": "css=div:nth-child(2) > div:nth-child(2) > .d-flex > .text-truncate", + "targets": [], + "value": "30000" + }, { + "id": "93b99f62-f09e-4ac3-a69f-d3fc5d8576d7", + "comment": "", + "command": "assertText", + "target": "css=div:nth-child(2) > div:nth-child(2) > .d-flex > .text-truncate", + "targets": [ + ["css=div:nth-child(2) > div:nth-child(2) > .d-flex > .text-truncate", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div[2]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'foobar')]", "xpath:innerText"] + ], + "value": "foobar" + }, { + "id": "7036842f-1cd0-4ed5-a036-136943326c11", + "comment": "", + "command": "assertText", + "target": "css=.py-2:nth-child(1) > .d-block", + "targets": [ + ["css=.py-2:nth-child(1) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[6]/div/div[2]/div[2]/div/div[2]/div/span", "xpath:idRelative"], + ["xpath=//section[6]/div/div[2]/div[2]/div/div[2]/div/span", "xpath:position"] + ], + "value": "foobar" + }] + }], + "suites": [{ + "id": "c1770d48-99b6-4866-af1c-d4e485b851ab", + "name": "Default Suite", + "persistSession": false, + "parallel": false, + "timeout": 300, + "tests": ["5d823c03-1448-4bd0-ad8f-41f0bfc365a7"] + }], + "urls": ["http://localhost:10101/"], + "plugins": [] +} \ No newline at end of file diff --git a/backend/src/integration/resources/SHIBUI-1744-1.side b/backend/src/integration/resources/SHIBUI-1744-1.side index faaacee02..bbf69eeab 100644 --- a/backend/src/integration/resources/SHIBUI-1744-1.side +++ b/backend/src/integration/resources/SHIBUI-1744-1.side @@ -51,6 +51,13 @@ ["xpath=//button[contains(.,'Sign in')]", "xpath:innerText"] ], "value": "" + }, { + "id": "dd7a4d65-bc3c-4f00-9995-984b5e67cbc3", + "comment": "", + "command": "waitForElementVisible", + "target": "id=advanced-nav-dropdown-toggle", + "targets": [], + "value": "30000" }, { "id": "b88f58fc-bd07-4b76-9a8a-08e7a13030e8", "comment": "", diff --git a/backend/src/integration/resources/SHIBUI-1744-2.side b/backend/src/integration/resources/SHIBUI-1744-2.side index 9524fb82d..36ec5d6ee 100644 --- a/backend/src/integration/resources/SHIBUI-1744-2.side +++ b/backend/src/integration/resources/SHIBUI-1744-2.side @@ -51,6 +51,13 @@ ["xpath=//button[contains(.,'Sign in')]", "xpath:innerText"] ], "value": "" + }, { + "id": "e62af22d-1d27-45e1-85f5-0cb467e71df4", + "comment": "", + "command": "waitForElementVisible", + "target": "id=advanced-nav-dropdown-toggle", + "targets": [], + "value": "30000" }, { "id": "8096864b-f997-4d71-a579-d5170f27fdea", "comment": "", diff --git a/backend/src/integration/resources/SHIBUI-1744-3.side b/backend/src/integration/resources/SHIBUI-1744-3.side index 1ecfdfff5..bbdbf1a84 100644 --- a/backend/src/integration/resources/SHIBUI-1744-3.side +++ b/backend/src/integration/resources/SHIBUI-1744-3.side @@ -51,6 +51,13 @@ ["xpath=//button[contains(.,'Sign in')]", "xpath:innerText"] ], "value": "" + }, { + "id": "03e142bc-5e17-4af1-b2a2-694fd1f71604", + "comment": "", + "command": "waitForElementVisible", + "target": "id=advanced-nav-dropdown-toggle", + "targets": [], + "value": "30000" }, { "id": "8096864b-f997-4d71-a579-d5170f27fdea", "comment": "", diff --git a/backend/src/integration/resources/SHIBUI-2052.side b/backend/src/integration/resources/SHIBUI-2052.side new file mode 100644 index 000000000..4ddd7ba06 --- /dev/null +++ b/backend/src/integration/resources/SHIBUI-2052.side @@ -0,0 +1,221 @@ +{ + "id": "f016f673-461b-4032-ac88-31540ac74055", + "version": "2.0", + "name": "SHIBUI-2052", + "url": "http://localhost:10101", + "tests": [{ + "id": "1871e940-b18b-450a-850a-55b2ad6f34cb", + "name": "SHIBUI-2052", + "commands": [{ + "id": "9966d65e-c7c1-43e4-b835-850f2a4213bb", + "comment": "", + "command": "open", + "target": "/login", + "targets": [], + "value": "" + }, { + "id": "74f6b96c-9b43-4cb6-95cb-081846ca5c9f", + "comment": "", + "command": "type", + "target": "id=username", + "targets": [ + ["id=username", "id"], + ["name=username", "name"], + ["css=#username", "css:finder"], + ["xpath=//input[@id='username']", "xpath:attributes"], + ["xpath=//input", "xpath:position"] + ], + "value": "admin" + }, { + "id": "7d787e3f-fac4-4860-be6d-896f46b51cbf", + "comment": "", + "command": "type", + "target": "id=password", + "targets": [ + ["id=password", "id"], + ["name=password", "name"], + ["css=#password", "css:finder"], + ["xpath=//input[@id='password']", "xpath:attributes"], + ["xpath=//p[2]/input", "xpath:position"] + ], + "value": "adminpass" + }, { + "id": "05b6ddc5-613e-48c1-ac1d-8b2ffb72dd23", + "comment": "", + "command": "sendKeys", + "target": "id=password", + "targets": [ + ["id=password", "id"], + ["name=password", "name"], + ["css=#password", "css:finder"], + ["xpath=//input[@id='password']", "xpath:attributes"], + ["xpath=//p[2]/input", "xpath:position"] + ], + "value": "${KEY_ENTER}" + }, { + "id": "7024f1d8-e9d9-4acf-bd23-5733950fc95a", + "comment": "", + "command": "waitForElementVisible", + "target": "id=user-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "f5e43d25-4f27-42a6-9a63-711e25e21ead", + "comment": "", + "command": "assertText", + "target": "id=user-nav-dropdown-toggle", + "targets": [ + ["id=user-nav-dropdown-toggle", "id"], + ["css=#user-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='user-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[4]/button", "xpath:position"], + ["xpath=//button[contains(.,'Logged in as admin')]", "xpath:innerText"] + ], + "value": "Logged in as admin" + }, { + "id": "b728d87e-0419-4e84-ac83-61f8ba54e0ad", + "comment": "", + "command": "click", + "target": "id=user-nav-dropdown-toggle", + "targets": [ + ["id=user-nav-dropdown-toggle", "id"], + ["css=#user-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='user-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[4]/button", "xpath:position"], + ["xpath=//button[contains(.,'Logged in as admin')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "db70fa97-b235-4837-8c33-14f39441ec6d", + "comment": "", + "command": "assertText", + "target": "id=advanced-nav-dropdown-groups", + "targets": [ + ["id=advanced-nav-dropdown-groups", "id"], + ["css=#advanced-nav-dropdown-groups", "css:finder"], + ["xpath=//span[@id='advanced-nav-dropdown-groups']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/div/span", "xpath:idRelative"], + ["xpath=//div/span", "xpath:position"], + ["xpath=//span[contains(.,'admingroup')]", "xpath:innerText"] + ], + "value": "admingroup" + }, { + "id": "3ea1eebd-bb9d-4171-ac81-4ef47e2d9315", + "comment": "", + "command": "click", + "target": "id=user-nav-dropdown-logout", + "targets": [ + ["id=user-nav-dropdown-logout", "id"], + ["linkText=Logout", "linkText"], + ["css=#user-nav-dropdown-logout", "css:finder"], + ["xpath=//a[contains(text(),'Logout')]", "xpath:link"], + ["xpath=//a[@id='user-nav-dropdown-logout']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/logout')]", "xpath:href"], + ["xpath=//div[4]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Logout')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "34349d5b-953f-453b-a7c3-46f99b46f26b", + "comment": "", + "command": "type", + "target": "id=username", + "targets": [ + ["id=username", "id"], + ["name=username", "name"], + ["css=#username", "css:finder"], + ["xpath=//input[@id='username']", "xpath:attributes"], + ["xpath=//input", "xpath:position"] + ], + "value": "nonadmin" + }, { + "id": "fba54ff2-386e-4f9d-87fd-f26f379f1c0b", + "comment": "", + "command": "type", + "target": "id=password", + "targets": [ + ["id=password", "id"], + ["name=password", "name"], + ["css=#password", "css:finder"], + ["xpath=//input[@id='password']", "xpath:attributes"], + ["xpath=//p[2]/input", "xpath:position"] + ], + "value": "nonadminpass" + }, { + "id": "e580536b-7336-43c5-99b7-3f774b38ab82", + "comment": "", + "command": "sendKeys", + "target": "id=password", + "targets": [ + ["id=password", "id"], + ["name=password", "name"], + ["css=#password", "css:finder"], + ["xpath=//input[@id='password']", "xpath:attributes"], + ["xpath=//p[2]/input", "xpath:position"] + ], + "value": "${KEY_ENTER}" + }, { + "id": "fb7ef6b5-0c19-45a5-ba11-8c4bd13126e2", + "comment": "", + "command": "waitForElementVisible", + "target": "id=user-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "1f83e7af-4ad2-43b1-ac8f-47d388ecc976", + "comment": "", + "command": "assertText", + "target": "id=user-nav-dropdown-toggle", + "targets": [ + ["id=user-nav-dropdown-toggle", "id"], + ["css=#user-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='user-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[3]/button", "xpath:position"], + ["xpath=//button[contains(.,'Logged in as nonadmin')]", "xpath:innerText"] + ], + "value": "Logged in as nonadmin" + }, { + "id": "0c795e36-2273-46af-aad0-040f593fa4c2", + "comment": "", + "command": "click", + "target": "id=user-nav-dropdown-toggle", + "targets": [ + ["id=user-nav-dropdown-toggle", "id"], + ["css=#user-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='user-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[3]/button", "xpath:position"], + ["xpath=//button[contains(.,'Logged in as nonadmin')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "8f5f4a76-25cd-496b-8dd7-1795e6b347d1", + "comment": "", + "command": "assertText", + "target": "id=advanced-nav-dropdown-groups", + "targets": [ + ["id=advanced-nav-dropdown-groups", "id"], + ["css=#advanced-nav-dropdown-groups", "css:finder"], + ["xpath=//span[@id='advanced-nav-dropdown-groups']", "xpath:attributes"], + ["xpath=//div[@id='user-nav-dropdown']/div/span", "xpath:idRelative"], + ["xpath=//div/span", "xpath:position"], + ["xpath=//span[contains(.,'nonadmin')]", "xpath:innerText"] + ], + "value": "nonadmin" + }] + }], + "suites": [{ + "id": "c28e825e-e76e-4ff3-b9a8-1a7beacce942", + "name": "Default Suite", + "persistSession": false, + "parallel": false, + "timeout": 300, + "tests": ["1871e940-b18b-450a-850a-55b2ad6f34cb"] + }], + "urls": ["http://localhost:10101/"], + "plugins": [] +} \ No newline at end of file diff --git a/backend/src/integration/resources/SHIBUI-950.side b/backend/src/integration/resources/SHIBUI-950.side index 7eb184198..afe6b423e 100644 --- a/backend/src/integration/resources/SHIBUI-950.side +++ b/backend/src/integration/resources/SHIBUI-950.side @@ -49,31 +49,78 @@ ["xpath=//tr[2]/td[2]/input", "xpath:position"] ], "value": "${KEY_ENTER}" + }, { + "id": "6e9a1bd7-c8b4-40a5-b9e0-7e516dd77375", + "comment": "", + "command": "waitForElementVisible", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "6cfc4462-7d98-42ad-9503-1420238af405", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "563df7e6-3968-4107-a698-3fd7e52f18bc", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "78c92dcb-4104-482d-8997-3b33c29ec2cf", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" }, { "id": "694012a7-3480-4af9-9dbc-2879ffd4d8b1", "comment": "", "command": "click", - "target": "css=#addNewDropdown > translate-i18n", + "target": "id=metadata-nav-dropdown-toggle", "targets": [ - ["css=#addNewDropdown > translate-i18n", "css:finder"], - ["xpath=//button[@id='addNewDropdown']/translate-i18n", "xpath:idRelative"], - ["xpath=//translate-i18n", "xpath:position"], - ["xpath=//translate-i18n[contains(.,'Add New')]", "xpath:innerText"] + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] ], "value": "" }, { "id": "d000a81f-a776-44f6-80c4-dfb5ec892dc0", "comment": "", "command": "click", - "target": "linkText=Metadata Source", + "target": "id=metadata-nav-dropdown-source", "targets": [ - ["linkText=Metadata Source", "linkText"], - ["css=.dropdown-menu > .nav-link:nth-child(1)", "css:finder"], - ["xpath=//div[@id='navbar']/ul/li/div/a", "xpath:idRelative"], - ["xpath=(//a[contains(@href, '')])[2]", "xpath:href"], - ["xpath=//div/a", "xpath:position"] + ["id=metadata-nav-dropdown-source", "id"], + ["linkText=Add a new metadata source", "linkText"], + ["css=#metadata-nav-dropdown-source", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata source')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-source']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/source/new')]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata source')]", "xpath:innerText"] ], "value": "" + }, { + "id": "2a074ac0-d142-4124-83c1-792d5e744605", + "comment": "", + "command": "waitForElementVisible", + "target": "id=root_serviceProviderName", + "targets": [ + ["id=root_serviceProviderName", "id"], + ["css=#root_serviceProviderName", "css:finder"], + ["xpath=//input[@id='root_serviceProviderName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "30000" }, { "id": "1e8aba21-e7f4-45ef-b004-4aedcf2ab74e", "comment": "", @@ -86,6 +133,13 @@ ["xpath=//button[contains(.,'Upload/URL')]", "xpath:innerText"] ], "value": "" + }, { + "id": "c23d44f2-0896-4c5e-a574-3444c4c89e7e", + "comment": "", + "command": "waitForElementVisible", + "target": "id=serviceProviderName", + "targets": [], + "value": "30000" }, { "id": "d1ab5623-6daa-4ccb-bc06-e16a3f504e1d", "comment": "", @@ -114,7 +168,7 @@ "id": "e5d771f5-57e2-4f11-af50-124c2121d36b", "comment": "", "command": "attachFile", - "target": "id=fileInput", + "target": "id=custom-file", "targets": [], "value": "${SHIBUI950}" }, { @@ -131,11 +185,12 @@ "id": "cf4285d3-6f70-499e-ad3a-85278e27dbf0", "comment": "", "command": "waitForElementVisible", - "target": "css=tr > .text-right", + "target": "css=td:nth-child(1)", "targets": [ - ["css=tr > .text-right", "css:finder"], - ["xpath=//td[5]", "xpath:position"], - ["xpath=//td[contains(.,'Disabled')]", "xpath:innerText"] + ["css=td:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td", "xpath:idRelative"], + ["xpath=//td", "xpath:position"], + ["xpath=//td[contains(.,'File Upload Test')]", "xpath:innerText"] ], "value": "10000" }, { @@ -147,7 +202,8 @@ ["linkText=File Upload Test", "linkText"], ["css=td > a", "css:finder"], ["xpath=//a[contains(text(),'File Upload Test')]", "xpath:link"], - ["xpath=//a[contains(@href, '/metadata/resolver/144a49cd-37f1-4399-9a4a-7f820aab724b/configuration/options')]", "xpath:href"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/source/3d0fdd1b-e3b1-48d5-9e44-8fe84bd0c1dd/configuration/options')]", "xpath:href"], ["xpath=//td/a", "xpath:position"], ["xpath=//a[contains(.,'File Upload Test')]", "xpath:innerText"] ], @@ -159,17 +215,11 @@ "target": "css=td:nth-child(2)", "targets": [ ["css=td:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]", "xpath:idRelative"], ["xpath=//td[2]", "xpath:position"], ["xpath=//td[contains(.,'https://wiki.shibboleth.net/shibboleth')]", "xpath:innerText"] ], "value": "https://wiki.shibboleth.net/shibboleth" - }, { - "id": "c5bfb51f-fd8e-4518-880d-2735077baebb", - "comment": "", - "command": "close", - "target": "", - "targets": [], - "value": "" }] }], "suites": [{ diff --git a/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/configuration/DevConfig.groovy b/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/configuration/DevConfig.groovy index 62fda2ed9..a644a58a0 100644 --- a/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/configuration/DevConfig.groovy +++ b/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/configuration/DevConfig.groovy @@ -31,7 +31,7 @@ import org.springframework.transaction.annotation.Transactional import javax.annotation.PostConstruct @Component -@Profile('dev') +@Profile(['dev','very-dangerous']) class DevConfig { private final EntityDescriptorRepository entityDescriptorRepository private final GroupsRepository groupsRepository @@ -130,6 +130,14 @@ class DevConfig { emailAddress = 'badboy@institution.edu' roles.add(roleRepository.findByName('ROLE_NONE').get()) it + }, new User().with { + username = 'none2' + password = '{noop}none2pass' + firstName = 'Bad' + lastName = 'robot2' + emailAddress = 'badboy2@institution.edu' + roles.add(roleRepository.findByName('ROLE_NONE').get()) + it }, new User().with { // allow us to auto-login as an admin username = 'anonymousUser' password = '{noop}anonymous' diff --git a/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/DurationMetadataResolverValidator.groovy b/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/DurationMetadataResolverValidator.groovy similarity index 78% rename from backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/DurationMetadataResolverValidator.groovy rename to backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/DurationMetadataResolverValidator.groovy index 56a2ecd77..85dfc3845 100644 --- a/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/DurationMetadataResolverValidator.groovy +++ b/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/DurationMetadataResolverValidator.groovy @@ -1,8 +1,11 @@ -package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers +package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.DynamicMetadataResolverAttributes +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolver +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ReloadableMetadataResolverAttributes import edu.internet2.tier.shibboleth.admin.util.DurationUtility -class DurationMetadataResolverValidator implements MetadataResolverValidator { +class DurationMetadataResolverValidator implements IMetadataResolverValidator { boolean supports(MetadataResolver resolver) { return resolver.hasProperty('dynamicMetadataResolverAttributes') || resolver.hasProperty('reloadableMetadataResolverAttributes') } @@ -27,4 +30,4 @@ class DurationMetadataResolverValidator implements MetadataResolverValidator { } return new ValidationResult() } -} +} \ No newline at end of file diff --git a/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAMetadataResolverServiceImpl.groovy b/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAMetadataResolverServiceImpl.groovy index 03e041322..e9faeb69c 100644 --- a/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAMetadataResolverServiceImpl.groovy +++ b/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAMetadataResolverServiceImpl.groovy @@ -3,9 +3,22 @@ package edu.internet2.tier.shibboleth.admin.ui.service import com.google.common.base.Predicate import edu.internet2.tier.shibboleth.admin.ui.configuration.ShibUIConfiguration import edu.internet2.tier.shibboleth.admin.ui.domain.exceptions.MetadataFileNotFoundException -import edu.internet2.tier.shibboleth.admin.ui.domain.filters.* +import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilter +import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilterTarget +import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityRoleWhiteListFilter +import edu.internet2.tier.shibboleth.admin.ui.domain.filters.NameIdFormatFilter +import edu.internet2.tier.shibboleth.admin.ui.domain.filters.RequiredValidUntilFilter +import edu.internet2.tier.shibboleth.admin.ui.domain.filters.SignatureValidationFilter import edu.internet2.tier.shibboleth.admin.ui.domain.filters.opensaml.OpenSamlNameIdFormatFilter -import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.* +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.DynamicHttpMetadataResolver +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.FileBackedHttpMetadataResolver +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.FilesystemMetadataResolver +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.LocalDynamicMetadataResolver +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataQueryProtocolScheme +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataRequestURLConstructionScheme +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.RegexScheme +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ResourceBackedMetadataResolver +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.TemplateScheme import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.opensaml.OpenSamlChainingMetadataResolver import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.opensaml.Refilterable import edu.internet2.tier.shibboleth.admin.ui.exception.EntityNotFoundException @@ -32,7 +45,9 @@ import org.w3c.dom.Document import javax.annotation.Nonnull -import static edu.internet2.tier.shibboleth.admin.ui.domain.filters.NameIdFormatFilterTarget.NameIdFormatFilterTargetType.* +import static edu.internet2.tier.shibboleth.admin.ui.domain.filters.NameIdFormatFilterTarget.NameIdFormatFilterTargetType.CONDITION_SCRIPT +import static edu.internet2.tier.shibboleth.admin.ui.domain.filters.NameIdFormatFilterTarget.NameIdFormatFilterTargetType.ENTITY +import static edu.internet2.tier.shibboleth.admin.ui.domain.filters.NameIdFormatFilterTarget.NameIdFormatFilterTargetType.REGEX import static edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ResourceBackedMetadataResolver.ResourceType.CLASSPATH import static edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ResourceBackedMetadataResolver.ResourceType.SVN @@ -61,6 +76,7 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService { @Autowired private UserService userService + // TODO: enhance void constructXmlNodeForEntityAttributeNamespaceProtection(def markupBuilderDelegate) { markupBuilderDelegate.MetadataFilter('xsi:type': 'EntityAttributes') { AttributeFilterScript() { @@ -109,6 +125,7 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService { } } + // TODO: enhance void constructXmlNodeForFilter(EntityRoleWhiteListFilter filter, def markupBuilderDelegate) { if (!filter.retainedRoles?.isEmpty()) { markupBuilderDelegate.MetadataFilter( @@ -123,7 +140,6 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService { } } - void constructXmlNodeForFilter(NameIdFormatFilter filter, def markupBuilderDelegate) { def type = filter.nameIdFormatFilterTarget.nameIdFormatFilterTargetType markupBuilderDelegate.MetadataFilter( @@ -186,6 +202,7 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService { } } + void constructXmlNodeForResolver(DynamicHttpMetadataResolver resolver, def markupBuilderDelegate, Closure childNodes) { markupBuilderDelegate.MetadataProvider(id: resolver.xmlId, 'xsi:type': 'DynamicHTTPMetadataProvider', @@ -221,7 +238,7 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService { disregardTLSCertificate: resolver.httpMetadataResolverAttributes?.disregardTLSCertificate ?: null, httpClientSecurityParametersRef: resolver.httpMetadataResolverAttributes?.httpClientSecurityParametersRef, proxyHost: resolver.httpMetadataResolverAttributes?.proxyHost, - proxyPort: resolver.httpMetadataResolverAttributes?.proxyHost, + proxyPort: resolver.httpMetadataResolverAttributes?.proxyPort, proxyUser: resolver.httpMetadataResolverAttributes?.proxyUser, proxyPassword: resolver.httpMetadataResolverAttributes?.proxyPassword, httpCaching: resolver.httpMetadataResolverAttributes?.httpCaching, @@ -292,7 +309,7 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService { disregardTLSCertificate: resolver.httpMetadataResolverAttributes?.disregardTLSCertificate ?: null, httpClientSecurityParametersRef: resolver.httpMetadataResolverAttributes?.httpClientSecurityParametersRef, proxyHost: resolver.httpMetadataResolverAttributes?.proxyHost, - proxyPort: resolver.httpMetadataResolverAttributes?.proxyHost, + proxyPort: resolver.httpMetadataResolverAttributes?.proxyPort, proxyUser: resolver.httpMetadataResolverAttributes?.proxyUser, proxyPassword: resolver.httpMetadataResolverAttributes?.proxyPassword, httpCaching: resolver.httpMetadataResolverAttributes?.httpCaching, @@ -388,7 +405,7 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService { 'username': resolver.svnMetadataResource.username, 'password': resolver.svnMetadataResource.password, 'proxyHost': resolver.svnMetadataResource.proxyHost, - 'proxyPort': resolver.svnMetadataResource.proxyHost, + 'proxyPort': resolver.svnMetadataResource.proxyPort, 'proxyUserName': resolver.svnMetadataResource.proxyUserName, 'proxyPassword': resolver.svnMetadataResource.proxyPassword) @@ -525,7 +542,7 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService { if (metadataFilter instanceof NameIdFormatFilter) { NameIdFormatFilter nameIdFormatFilter = NameIdFormatFilter.cast(metadataFilter) NameIDFormatFilter openSamlTargetFilter = new OpenSamlNameIdFormatFilter() - openSamlTargetFilter.removeExistingFormats = nameIdFormatFilter.removeExistingFormats + openSamlTargetFilter.removeExistingFormats = nameIdFormatFilter.removeExistingFormats == null ? false : nameIdFormatFilter.removeExistingFormats Map, Collection> predicateRules = [:] def type = nameIdFormatFilter.nameIdFormatFilterTarget.nameIdFormatFilterTargetType def values = nameIdFormatFilter.nameIdFormatFilterTarget.value @@ -573,7 +590,7 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService { throw new MetadataFileNotFoundException("message.file-doesnt-exist") } try { - OpenSamlChainingMetadataResolverUtil.updateChainingMetadataResolver((OpenSamlChainingMetadataResolver) chainingMetadataResolver, openSamlRepresentation); + OpenSamlChainingMetadataResolverUtil.updateChainingMetadataResolver((OpenSamlChainingMetadataResolver) chainingMetadataResolver, openSamlRepresentation) } catch (Throwable e) { throw new InitializationException(e); diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/MetadataResolverConverterConfiguration.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/MetadataResolverConverterConfiguration.java new file mode 100644 index 000000000..6380e0018 --- /dev/null +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/MetadataResolverConverterConfiguration.java @@ -0,0 +1,17 @@ +package edu.internet2.tier.shibboleth.admin.ui.configuration; + +import edu.internet2.tier.shibboleth.admin.ui.service.MetadataResolverConverterService; +import edu.internet2.tier.shibboleth.admin.ui.service.MetadataResolverConverterServiceImpl; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @author Bill Smith (wsmith@unicon.net) + */ +@Configuration +public class MetadataResolverConverterConfiguration { + @Bean + public MetadataResolverConverterService metadataResolverConverterService() { + return new MetadataResolverConverterServiceImpl(); + } +} diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/MetadataResolverValidationConfiguration.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/MetadataResolverValidationConfiguration.java index 86d3f9f58..7e09c32e3 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/MetadataResolverValidationConfiguration.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/MetadataResolverValidationConfiguration.java @@ -1,9 +1,13 @@ package edu.internet2.tier.shibboleth.admin.ui.configuration; -import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.DurationMetadataResolverValidator; -import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolverValidationService; -import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolverValidator; -import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ResourceBackedMetadataResolverValidator; +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator.DurationMetadataResolverValidator; +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator.DynamicHttpMetadataResolverValidator; +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator.FileBackedHttpMetadataResolverValidator; +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator.IMetadataResolverValidator; +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator.MetadataResolverValidationService; +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator.ResourceBackedIMetadataResolverValidator; +import edu.internet2.tier.shibboleth.admin.ui.security.service.IGroupService; +import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -12,19 +16,26 @@ @Configuration public class MetadataResolverValidationConfiguration { + @Bean DurationMetadataResolverValidator durationMetadataResolverValidator() { + return new DurationMetadataResolverValidator(); + } + + @Bean DynamicHttpMetadataResolverValidator dynamicHttpMetadataResolverValidator(IGroupService groupService, UserService userService) { + return new DynamicHttpMetadataResolverValidator(groupService, userService); + } + @Bean - ResourceBackedMetadataResolverValidator resourceBackedMetadataResolverValidator() { - return new ResourceBackedMetadataResolverValidator(); + FileBackedHttpMetadataResolverValidator fileBackedHttpMetadataResolverValidator(IGroupService groupService, UserService userService) { + return new FileBackedHttpMetadataResolverValidator(groupService, userService); } @Bean @SuppressWarnings("Unchecked") - MetadataResolverValidationService metadataResolverValidationService(List metadataResolverValidators) { - return new MetadataResolverValidationService(metadataResolverValidators); + MetadataResolverValidationService metadataResolverValidationService(List IMetadataResolverValidators) { + return new MetadataResolverValidationService(IMetadataResolverValidators); } - @Bean - DurationMetadataResolverValidator durationMetadataResolverValidator() { - return new DurationMetadataResolverValidator(); + @Bean ResourceBackedIMetadataResolverValidator resourceBackedMetadataResolverValidator() { + return new ResourceBackedIMetadataResolverValidator(); } -} +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/auto/MigrationTasksContextLoadedListener.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/auto/MigrationTasksContextLoadedListener.java index 11ea80113..4dbe3656d 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/auto/MigrationTasksContextLoadedListener.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/auto/MigrationTasksContextLoadedListener.java @@ -1,5 +1,7 @@ package edu.internet2.tier.shibboleth.admin.ui.configuration.auto; +import edu.internet2.tier.shibboleth.admin.ui.exception.EntityNotFoundException; +import edu.internet2.tier.shibboleth.admin.ui.security.exception.InvalidGroupRegexException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationListener; import org.springframework.context.event.ContextRefreshedEvent; @@ -14,6 +16,8 @@ import edu.internet2.tier.shibboleth.admin.ui.security.service.IGroupService; import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService; +import java.util.List; + /** * After the context loads, do any needed migration tasks */ @@ -62,6 +66,5 @@ void doshibui_1740_migration() { userService.save(user); // this will ensure group is set as the default user group } }); - } } \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/DangerController.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/DangerController.java index 450e780a3..b2d291dd2 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/DangerController.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/DangerController.java @@ -1,11 +1,14 @@ package edu.internet2.tier.shibboleth.admin.ui.controller; +import edu.internet2.tier.shibboleth.admin.ui.configuration.DevConfig; import edu.internet2.tier.shibboleth.admin.ui.repository.AttributeBundleRepository; import edu.internet2.tier.shibboleth.admin.ui.repository.EntityDescriptorRepository; import edu.internet2.tier.shibboleth.admin.ui.repository.FilterRepository; import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolverRepository; import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolversPositionOrderContainerRepository; +import edu.internet2.tier.shibboleth.admin.ui.security.repository.GroupsRepository; import edu.internet2.tier.shibboleth.admin.ui.security.repository.OwnershipRepository; +import edu.internet2.tier.shibboleth.admin.ui.security.repository.UserRepository; import edu.internet2.tier.shibboleth.admin.ui.security.service.IGroupService; import edu.internet2.tier.shibboleth.admin.ui.service.EntityDescriptorService; import lombok.extern.slf4j.Slf4j; @@ -25,6 +28,9 @@ public class DangerController { @Autowired private AttributeBundleRepository attributeBundleRepository; + @Autowired + private DevConfig devConfig; + @Autowired private EntityDescriptorService entityDescriptorService; @@ -36,7 +42,10 @@ public class DangerController { @Autowired private IGroupService groupService; - + + @Autowired + private GroupsRepository groupRepository; + @Autowired private MetadataResolverRepository metadataResolverRepository; @@ -45,7 +54,10 @@ public class DangerController { @Autowired private OwnershipRepository ownershipRepository; - + + @Autowired + UserRepository userRepository; + @Transactional @GetMapping public ResponseEntity wipeOut() { @@ -64,6 +76,22 @@ public ResponseEntity wipeOut() { this.filterRepository.deleteAll(); this.metadataResolversPositionOrderContainerRepository.deleteAll(); this.attributeBundleRepository.deleteAll(); + + clearUsersAndGroups(); + return ResponseEntity.ok("yes, you did it"); } -} \ No newline at end of file + + private void clearUsersAndGroups() { + groupRepository.deleteAll(); + ownershipRepository.clearAllOwnedByGroup(); + userRepository.findAll().forEach(user -> { + ownershipRepository.deleteEntriesForOwnedObject(user); // Anything that owns the user that wasn't a group? + // users don't own things yet, so there isn't a method for deleting entries where they would, but may need that someday + userRepository.delete(user); + }); + + groupService.ensureAdminGroupExists(); + devConfig.createDevUsersAndGroups(); + } +} diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorController.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorController.java index 99eb079f6..3122eb90e 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorController.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorController.java @@ -2,14 +2,14 @@ import edu.internet2.tier.shibboleth.admin.ui.domain.EntityDescriptor; import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.EntityDescriptorRepresentation; -import edu.internet2.tier.shibboleth.admin.ui.exception.ObjectIdExistsException; import edu.internet2.tier.shibboleth.admin.ui.exception.EntityNotFoundException; import edu.internet2.tier.shibboleth.admin.ui.exception.ForbiddenException; +import edu.internet2.tier.shibboleth.admin.ui.exception.InvalidPatternMatchException; +import edu.internet2.tier.shibboleth.admin.ui.exception.ObjectIdExistsException; import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects; import edu.internet2.tier.shibboleth.admin.ui.service.EntityDescriptorService; import edu.internet2.tier.shibboleth.admin.ui.service.EntityDescriptorVersionService; import lombok.extern.slf4j.Slf4j; - import org.opensaml.core.xml.io.MarshallingException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.web.client.RestTemplateBuilder; @@ -29,7 +29,6 @@ import org.springframework.web.servlet.support.ServletUriComponentsBuilder; import javax.annotation.PostConstruct; - import java.net.URI; import java.util.ConcurrentModificationException; @@ -64,8 +63,8 @@ public EntityDescriptorController(EntityDescriptorVersionService versionService) @PostMapping("/EntityDescriptor") @Transactional - public ResponseEntity create(@RequestBody EntityDescriptorRepresentation edRepresentation) throws ForbiddenException, - ObjectIdExistsException { + public ResponseEntity create(@RequestBody EntityDescriptorRepresentation edRepresentation) + throws ForbiddenException, ObjectIdExistsException, InvalidPatternMatchException { EntityDescriptorRepresentation persistedEd = entityDescriptorService.createNew(edRepresentation); return ResponseEntity.created(getResourceUriFor(persistedEd.getId())).body(persistedEd); } @@ -115,11 +114,11 @@ public ResponseEntity getOneXml(@PathVariable String resourceId) throws Marsh } @GetMapping("/EntityDescriptor/{resourceId}/Versions/{versionId}") - @Transactional public ResponseEntity getSpecificVersion(@PathVariable String resourceId, @PathVariable String versionId) throws EntityNotFoundException, ForbiddenException { // this "get by resource id" verifies that both the ED exists and the user has proper access, so needs to remain EntityDescriptor ed = entityDescriptorService.getEntityDescriptorByResourceId(resourceId); - return ResponseEntity.ok(versionService.findSpecificVersionOfEntityDescriptor(ed.getResourceId(), versionId)); + EntityDescriptorRepresentation result = versionService.findSpecificVersionOfEntityDescriptor(ed.getResourceId(), versionId); + return ResponseEntity.ok(result); } private ResponseEntity handleUploadingEntityDescriptorXml(byte[] rawXmlBytes, String spName) throws Exception { @@ -137,7 +136,9 @@ public void initRestTemplate() { @PutMapping("/EntityDescriptor/{resourceId}") @Transactional - public ResponseEntity update(@RequestBody EntityDescriptorRepresentation edRepresentation, @PathVariable String resourceId) throws ForbiddenException, ConcurrentModificationException, EntityNotFoundException { + public ResponseEntity update(@RequestBody EntityDescriptorRepresentation edRepresentation, @PathVariable String resourceId) + throws ForbiddenException, ConcurrentModificationException, EntityNotFoundException, + InvalidPatternMatchException { edRepresentation.setId(resourceId); // This should be the same already, but just to be safe... EntityDescriptorRepresentation result = entityDescriptorService.update(edRepresentation); return ResponseEntity.ok().body(result); diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorControllerExceptionHandler.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorControllerExceptionHandler.java index fd48f68e6..32d3cd4be 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorControllerExceptionHandler.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorControllerExceptionHandler.java @@ -1,7 +1,9 @@ package edu.internet2.tier.shibboleth.admin.ui.controller; -import java.util.ConcurrentModificationException; - +import edu.internet2.tier.shibboleth.admin.ui.exception.EntityNotFoundException; +import edu.internet2.tier.shibboleth.admin.ui.exception.ForbiddenException; +import edu.internet2.tier.shibboleth.admin.ui.exception.InvalidPatternMatchException; +import edu.internet2.tier.shibboleth.admin.ui.exception.ObjectIdExistsException; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -10,9 +12,7 @@ import org.springframework.web.context.request.WebRequest; import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler; -import edu.internet2.tier.shibboleth.admin.ui.exception.ObjectIdExistsException; -import edu.internet2.tier.shibboleth.admin.ui.exception.EntityNotFoundException; -import edu.internet2.tier.shibboleth.admin.ui.exception.ForbiddenException; +import java.util.ConcurrentModificationException; @ControllerAdvice(assignableTypes = {EntityDescriptorController.class}) public class EntityDescriptorControllerExceptionHandler extends ResponseEntityExceptionHandler { @@ -21,17 +21,22 @@ public class EntityDescriptorControllerExceptionHandler extends ResponseEntityEx public ResponseEntity handleConcurrentModificationException(ConcurrentModificationException e, WebRequest request) { return ResponseEntity.status(HttpStatus.CONFLICT).body(new ErrorResponse(HttpStatus.CONFLICT, e.getMessage())); } - + @ExceptionHandler({ EntityNotFoundException.class }) public ResponseEntity handleEntityNotFoundException(EntityNotFoundException e, WebRequest request) { return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse(HttpStatus.NOT_FOUND, e.getMessage())); } - + @ExceptionHandler({ ForbiddenException.class }) public ResponseEntity handleForbiddenAccess(ForbiddenException e, WebRequest request) { return ResponseEntity.status(HttpStatus.FORBIDDEN).body(new ErrorResponse(HttpStatus.FORBIDDEN, e.getMessage())); } + @ExceptionHandler({ InvalidPatternMatchException.class }) + public ResponseEntity handleInvalidUrlMatchException(InvalidPatternMatchException e, WebRequest request) { + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ErrorResponse(HttpStatus.BAD_REQUEST, e.getMessage())); + } + @ExceptionHandler({ ObjectIdExistsException.class }) public ResponseEntity handleObjectIdExistsException(ObjectIdExistsException e, WebRequest request) { HttpHeaders headers = new HttpHeaders(); diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataFiltersController.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataFiltersController.java index 33d4458b5..a9191dffc 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataFiltersController.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataFiltersController.java @@ -1,18 +1,18 @@ package edu.internet2.tier.shibboleth.admin.ui.controller; -import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilter; -import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityRoleWhiteListFilter; +import edu.internet2.tier.shibboleth.admin.ui.domain.filters.ITargetable; import edu.internet2.tier.shibboleth.admin.ui.domain.filters.MetadataFilter; -import edu.internet2.tier.shibboleth.admin.ui.domain.filters.NameIdFormatFilter; -import edu.internet2.tier.shibboleth.admin.ui.domain.filters.RequiredValidUntilFilter; -import edu.internet2.tier.shibboleth.admin.ui.domain.filters.SignatureValidationFilter; import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolver; import edu.internet2.tier.shibboleth.admin.ui.repository.FilterRepository; import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolverRepository; +import edu.internet2.tier.shibboleth.admin.ui.security.service.IGroupService; +import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService; import edu.internet2.tier.shibboleth.admin.ui.service.MetadataResolverService; - +import static java.util.stream.Collectors.toList; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; +import static org.springframework.http.HttpStatus.BAD_REQUEST; +import static org.springframework.http.HttpStatus.NOT_FOUND; import org.springframework.http.ResponseEntity; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; @@ -36,53 +36,36 @@ import java.util.function.Supplier; import java.util.stream.Stream; -import static java.util.stream.Collectors.toList; -import static org.springframework.http.HttpStatus.NOT_FOUND; - @RestController @RequestMapping("/api/MetadataResolvers/{metadataResolverId}") public class MetadataFiltersController { + private static final Supplier HTTP_400_BAD_REQUEST_EXCEPTION = () -> new HttpClientErrorException(BAD_REQUEST); + private static final Supplier HTTP_404_CLIENT_ERROR_EXCEPTION = () -> new HttpClientErrorException(NOT_FOUND); @Autowired - private MetadataResolverRepository repository; - - @Autowired - private MetadataResolverService metadataResolverService; + org.opensaml.saml.metadata.resolver.MetadataResolver chainingMetadataResolver; @Autowired private FilterRepository filterRepository; @Autowired - org.opensaml.saml.metadata.resolver.MetadataResolver chainingMetadataResolver; - - private static final Supplier HTTP_404_CLIENT_ERROR_EXCEPTION = () -> new HttpClientErrorException(NOT_FOUND); + private IGroupService groupService; - @ExceptionHandler - public ResponseEntity notFoundHandler(HttpClientErrorException ex) { - if (ex.getStatusCode() == NOT_FOUND) { - return ResponseEntity.notFound().build(); - } - throw ex; - } + @Autowired + private MetadataResolverService metadataResolverService; - @GetMapping("/Filters") - @Transactional(readOnly = true) - public ResponseEntity getAll(@PathVariable String metadataResolverId) { - MetadataResolver resolver = findResolverOrThrowHttp404(metadataResolverId); - return ResponseEntity.ok(resolver.getMetadataFilters()); - } + @Autowired + private MetadataResolverRepository repository; - @GetMapping("/Filters/{resourceId}") - @Transactional(readOnly = true) - public ResponseEntity getOne(@PathVariable String metadataResolverId, @PathVariable String resourceId) { - MetadataResolver resolver = findResolverOrThrowHttp404(metadataResolverId); - return ResponseEntity.ok(findFilterOrThrowHttp404(resourceId)); - } + @Autowired + private UserService userService; @PostMapping("/Filters") @Transactional public ResponseEntity create(@PathVariable String metadataResolverId, @RequestBody MetadataFilter createdFilter) { MetadataResolver metadataResolver = findResolverOrThrowHttp404(metadataResolverId); + validateFilterOrThrowHttp400(createdFilter); + metadataResolver.addFilter(createdFilter); MetadataResolver persistedMr = repository.save(metadataResolver); @@ -92,57 +75,14 @@ public ResponseEntity create(@PathVariable String metadataResolverId, @Reques MetadataFilter persistedFilter = newlyPersistedFilter(persistedMr.getMetadataFilters().stream(), createdFilter.getResourceId()); return ResponseEntity - .created(getResourceUriFor(persistedMr, createdFilter.getResourceId())) - .body(persistedFilter); - } - - @PutMapping("/Filters/{resourceId}") - @Transactional - public ResponseEntity update(@PathVariable String metadataResolverId, - @PathVariable String resourceId, - @RequestBody MetadataFilter updatedFilter) { - - MetadataResolver metadataResolver = findResolverOrThrowHttp404(metadataResolverId); - - //Now we operate directly on the filter attached to MetadataResolver, - //Instead of fetching filter separately, to accommodate correct envers versioning with uni-directional one-to-many - Optional filterTobeUpdatedOptional = metadataResolver.getMetadataFilters() - .stream() - .filter(it -> it.getResourceId().equals(resourceId)) - .findFirst(); - if (!filterTobeUpdatedOptional.isPresent()) { - return ResponseEntity.notFound().build(); - } - MetadataFilter filterTobeUpdated = filterTobeUpdatedOptional.get(); - if (!resourceId.equals(updatedFilter.getResourceId())) { - return new ResponseEntity(HttpStatus.CONFLICT); - } - - // Verify we're the only one attempting to update the filter - if (updatedFilter.getVersion() != filterTobeUpdated.getVersion()) { - return new ResponseEntity(HttpStatus.CONFLICT); - } - - filterTobeUpdated.setName(updatedFilter.getName()); - filterTobeUpdated.setFilterEnabled(updatedFilter.isFilterEnabled()); - updatedFilter.updateConcreteFilterTypeData(filterTobeUpdated); - - MetadataFilter persistedFilter = filterRepository.save(filterTobeUpdated); - - //To support envers versioning from MetadataResolver side - metadataResolver.markAsModified(); - repository.save(metadataResolver); - - // TODO: do we need to reload filters here? - reloadFiltersAndHandleScriptException(metadataResolver.getResourceId()); - - return ResponseEntity.ok().body(persistedFilter); + .created(getResourceUriFor(persistedMr, createdFilter.getResourceId())) + .body(persistedFilter); } @DeleteMapping("/Filters/{resourceId}") @Transactional public ResponseEntity delete(@PathVariable String metadataResolverId, - @PathVariable String resourceId) { + @PathVariable String resourceId) { MetadataResolver resolver = findResolverOrThrowHttp404(metadataResolverId); MetadataFilter filterToDelete = findFilterOrThrowHttp404(resourceId); @@ -168,6 +108,66 @@ public ResponseEntity delete(@PathVariable String metadataResolverId, return ResponseEntity.noContent().build(); } + private MetadataFilter findFilterOrThrowHttp404(String filterResourceId) { + MetadataFilter filter = filterRepository.findByResourceId(filterResourceId); + if (filter == null) { + throw HTTP_404_CLIENT_ERROR_EXCEPTION.get(); + } + return filter; + } + + private MetadataResolver findResolverOrThrowHttp404(String resolverResourceId) { + MetadataResolver resolver = repository.findByResourceId(resolverResourceId); + if (resolver == null) { + throw HTTP_404_CLIENT_ERROR_EXCEPTION.get(); + } + return resolver; + } + + @GetMapping("/Filters") + @Transactional(readOnly = true) + public ResponseEntity getAll(@PathVariable String metadataResolverId) { + MetadataResolver resolver = findResolverOrThrowHttp404(metadataResolverId); + return ResponseEntity.ok(resolver.getMetadataFilters()); + } + + @GetMapping("/Filters/{resourceId}") + @Transactional(readOnly = true) + public ResponseEntity getOne(@PathVariable String metadataResolverId, @PathVariable String resourceId) { + findResolverOrThrowHttp404(metadataResolverId); + return ResponseEntity.ok(findFilterOrThrowHttp404(resourceId)); + } + + private static URI getResourceUriFor(MetadataResolver mr, String filterResourceId) { + return ServletUriComponentsBuilder + .fromCurrentServletMapping().path("/api/MetadataResolvers/") + .pathSegment(mr.getResourceId()) + .pathSegment("Filters") + .pathSegment(filterResourceId) + .build() + .toUri(); + } + + private MetadataFilter newlyPersistedFilter(Stream filters, final String filterResourceId) { + MetadataFilter persistedFilter = filters + .filter(f -> f.getResourceId().equals(filterResourceId)) + .collect(toList()).get(0); + + return persistedFilter; + } + + @ExceptionHandler + public ResponseEntity notFoundHandler(HttpClientErrorException ex) { + switch (ex.getStatusCode()) { + case NOT_FOUND: + return ResponseEntity.notFound().build(); + case BAD_REQUEST: + return ResponseEntity.badRequest().build(); + default: + throw ex; + } + } + private void reloadFiltersAndHandleScriptException(String resolverResourceId) { try { metadataResolverService.reloadFilters(resolverResourceId); @@ -182,37 +182,65 @@ private void reloadFiltersAndHandleScriptException(String resolverResourceId) { } } - private MetadataResolver findResolverOrThrowHttp404(String resolverResourceId) { - MetadataResolver resolver = repository.findByResourceId(resolverResourceId); - if (resolver == null) { - throw HTTP_404_CLIENT_ERROR_EXCEPTION.get(); + @PutMapping("/Filters/{resourceId}") + @Transactional + public ResponseEntity update(@PathVariable String metadataResolverId, + @PathVariable String resourceId, + @RequestBody MetadataFilter updatedFilter) { + + MetadataResolver metadataResolver = findResolverOrThrowHttp404(metadataResolverId); + + //Now we operate directly on the filter attached to MetadataResolver, + //Instead of fetching filter separately, to accommodate correct envers versioning with uni-directional one-to-many + Optional filterTobeUpdatedOptional = metadataResolver.getMetadataFilters() + .stream() + .filter(it -> it.getResourceId().equals(resourceId)) + .findFirst(); + if (filterTobeUpdatedOptional.isEmpty()) { + return ResponseEntity.notFound().build(); + } + MetadataFilter filterTobeUpdated = filterTobeUpdatedOptional.get(); + if (!resourceId.equals(updatedFilter.getResourceId())) { + return new ResponseEntity(HttpStatus.CONFLICT); } - return resolver; - } - private MetadataFilter findFilterOrThrowHttp404(String filterResourceId) { - MetadataFilter filter = filterRepository.findByResourceId(filterResourceId); - if (filter == null) { - throw HTTP_404_CLIENT_ERROR_EXCEPTION.get(); + // Verify we're the only one attempting to update the filter + if (updatedFilter.getVersion() != filterTobeUpdated.getVersion()) { + return new ResponseEntity(HttpStatus.CONFLICT); } - return filter; - } - private MetadataFilter newlyPersistedFilter(Stream filters, final String filterResourceId) { - MetadataFilter persistedFilter = filters - .filter(f -> f.getResourceId().equals(filterResourceId)) - .collect(toList()).get(0); + // perform validation if necessary on the entity ids (if the filter is the right configuration to need such a check) + validateFilterOrThrowHttp400(updatedFilter); - return persistedFilter; + filterTobeUpdated.setName(updatedFilter.getName()); + filterTobeUpdated.setFilterEnabled(updatedFilter.isFilterEnabled()); + updatedFilter.updateConcreteFilterTypeData(filterTobeUpdated); + + MetadataFilter persistedFilter = filterRepository.save(filterTobeUpdated); + + //To support envers versioning from MetadataResolver side + metadataResolver.markAsModified(); + repository.save(metadataResolver); + + // TODO: do we need to reload filters here? + reloadFiltersAndHandleScriptException(metadataResolver.getResourceId()); + + return ResponseEntity.ok().body(persistedFilter); } - private static URI getResourceUriFor(MetadataResolver mr, String filterResourceId) { - return ServletUriComponentsBuilder - .fromCurrentServletMapping().path("/api/MetadataResolvers/") - .pathSegment(mr.getResourceId()) - .pathSegment("Filters") - .pathSegment(filterResourceId) - .build() - .toUri(); + /** + * If the filter is "Targetable" AND the target is "ENTITY" THEN check each of the values (which are entityIds) + */ + private void validateFilterOrThrowHttp400(MetadataFilter createdFilter) { + if (createdFilter instanceof ITargetable){ + ITargetable filter = (ITargetable) createdFilter; + if (filter.getTarget() != null && "ENTITY".equals(filter.getTarget().getTargetTypeValue())) { + for (String entityId : filter.getTarget().getValue()) { + if (!groupService.doesStringMatchGroupPattern(userService.getCurrentUser().getGroupId(), entityId)) { + throw HTTP_400_BAD_REQUEST_EXCEPTION.get(); + } + } + } + } } -} +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataResolversController.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataResolversController.java index 6bce7af7b..d8e09ff56 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataResolversController.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataResolversController.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.databind.exc.InvalidTypeIdException; import edu.internet2.tier.shibboleth.admin.ui.domain.exceptions.MetadataFileNotFoundException; import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolver; -import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolverValidationService; +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator.MetadataResolverValidationService; import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.opensaml.OpenSamlChainingMetadataResolver; import edu.internet2.tier.shibboleth.admin.ui.domain.versioning.Version; import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolverRepository; @@ -43,7 +43,7 @@ import java.net.URI; import java.util.List; -import static edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolverValidator.ValidationResult; +import static edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator.IMetadataResolverValidator.ValidationResult; @RestController @RequestMapping("/api") @@ -151,7 +151,7 @@ public ResponseEntity update(@PathVariable String resourceId, @RequestBody Me MetadataResolver persistedResolver = resolverRepository.save(updatedResolver); doResolverInitialization(persistedResolver); - return ResponseEntity.ok(persistedResolver); + return ResponseEntity.ok(resolverRepository.findByResourceId(resourceId)); } //Versioning endpoints @@ -212,4 +212,4 @@ private void doResolverInitialization(MetadataResolver persistedResolver) throws OpenSamlChainingMetadataResolverUtil.updateChainingMetadataResolver((OpenSamlChainingMetadataResolver) chainingMetadataResolver, openSamlRepresentation); } } -} +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/EntityAttributesFilter.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/EntityAttributesFilter.java index 7643f483d..d80b68242 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/EntityAttributesFilter.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/EntityAttributesFilter.java @@ -2,6 +2,10 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import edu.internet2.tier.shibboleth.admin.ui.domain.Attribute; +import static edu.internet2.tier.shibboleth.admin.util.ModelRepresentationConversions.getAttributeListFromAttributeReleaseList; +import static edu.internet2.tier.shibboleth.admin.util.ModelRepresentationConversions.getAttributeListFromRelyingPartyOverridesRepresentation; +import static edu.internet2.tier.shibboleth.admin.util.ModelRepresentationConversions.getAttributeReleaseListFromAttributeList; +import static edu.internet2.tier.shibboleth.admin.util.ModelRepresentationConversions.getRelyingPartyOverridesRepresentationFromAttributeList; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; @@ -9,43 +13,27 @@ import org.hibernate.envers.Audited; import javax.persistence.CascadeType; -import javax.persistence.CollectionTable; -import javax.persistence.Column; import javax.persistence.Entity; -import javax.persistence.JoinColumn; +import javax.persistence.FetchType; import javax.persistence.OneToMany; import javax.persistence.OneToOne; import javax.persistence.OrderColumn; import javax.persistence.PostLoad; import javax.persistence.Transient; import java.util.ArrayList; -import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.Set; - -import static edu.internet2.tier.shibboleth.admin.util.ModelRepresentationConversions.getAttributeListFromAttributeReleaseList; -import static edu.internet2.tier.shibboleth.admin.util.ModelRepresentationConversions.getAttributeListFromRelyingPartyOverridesRepresentation; -import static edu.internet2.tier.shibboleth.admin.util.ModelRepresentationConversions.getAttributeReleaseListFromAttributeList; -import static edu.internet2.tier.shibboleth.admin.util.ModelRepresentationConversions.getRelyingPartyOverridesRepresentationFromAttributeList; @Entity -@EqualsAndHashCode(callSuper = true, exclude={"attributeRelease", "relyingPartyOverrides"}) +@EqualsAndHashCode(callSuper = true, exclude = { "attributeRelease", "relyingPartyOverrides" }) @Getter @Setter @ToString @Audited -public class EntityAttributesFilter extends MetadataFilter { +public class EntityAttributesFilter extends MetadataFilter implements ITargetable { private static final long serialVersionUID = 1L; - public EntityAttributesFilter() { - type = "EntityAttributes"; - } - - @OneToOne(cascade = CascadeType.ALL) - private EntityAttributesFilterTarget entityAttributesFilterTarget; - @OneToMany(cascade = CascadeType.ALL) @OrderColumn @JsonIgnore @@ -53,25 +41,21 @@ public EntityAttributesFilter() { @Transient private List attributeRelease = new ArrayList<>(); - - public void setAttributeRelease(List attributeRelease) { - this.attributeRelease = attributeRelease; - this.rebuildAttributes(); - } + + @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER) + private EntityAttributesFilterTarget entityAttributesFilterTarget; @Transient private Map relyingPartyOverrides; - public void setRelyingPartyOverrides(Map relyingPartyOverridesRepresentation) { - this.relyingPartyOverrides = relyingPartyOverridesRepresentation; - this.rebuildAttributes(); + public EntityAttributesFilter() { + type = "EntityAttributes"; } - //TODO: yeah, I'm not too happy, either - private void rebuildAttributes() { - this.attributes.clear(); - this.attributes.addAll((List) (List)getAttributeListFromAttributeReleaseList(this.attributeRelease)); - this.attributes.addAll((List) (List)getAttributeListFromRelyingPartyOverridesRepresentation(this.relyingPartyOverrides)); + @Override + @JsonIgnore + public IFilterTarget getTarget() { + return entityAttributesFilterTarget; } @PostLoad @@ -82,6 +66,23 @@ public void intoTransientRepresentation() { this.relyingPartyOverrides = getRelyingPartyOverridesRepresentationFromAttributeList(this.attributes); } + //TODO: yeah, I'm not too happy, either + private void rebuildAttributes() { + this.attributes.clear(); + this.attributes.addAll((List) (List) getAttributeListFromAttributeReleaseList(this.attributeRelease)); + this.attributes.addAll((List) (List) getAttributeListFromRelyingPartyOverridesRepresentation(this.relyingPartyOverrides)); + } + + public void setAttributeRelease(List attributeRelease) { + this.attributeRelease = attributeRelease; + this.rebuildAttributes(); + } + + public void setRelyingPartyOverrides(Map relyingPartyOverridesRepresentation) { + this.relyingPartyOverrides = relyingPartyOverridesRepresentation; + this.rebuildAttributes(); + } + private EntityAttributesFilter updateConcreteFilterTypeData(EntityAttributesFilter filterToBeUpdated) { filterToBeUpdated.setEntityAttributesFilterTarget(getEntityAttributesFilterTarget()); filterToBeUpdated.setRelyingPartyOverrides(getRelyingPartyOverrides()); @@ -89,8 +90,7 @@ private EntityAttributesFilter updateConcreteFilterTypeData(EntityAttributesFilt return filterToBeUpdated; } - @Override - public MetadataFilter updateConcreteFilterTypeData(MetadataFilter filterToBeUpdated) { + @Override public MetadataFilter updateConcreteFilterTypeData(MetadataFilter filterToBeUpdated) { return updateConcreteFilterTypeData((EntityAttributesFilter) filterToBeUpdated); } -} +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/EntityAttributesFilterTarget.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/EntityAttributesFilterTarget.java index 0a0da096f..a7959dbbf 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/EntityAttributesFilterTarget.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/EntityAttributesFilterTarget.java @@ -1,5 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.domain.filters; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import edu.internet2.tier.shibboleth.admin.ui.domain.AbstractAuditable; import lombok.EqualsAndHashCode; @@ -9,6 +10,7 @@ import javax.persistence.Column; import javax.persistence.ElementCollection; import javax.persistence.Entity; +import javax.persistence.FetchType; import javax.persistence.OrderColumn; import java.util.ArrayList; import java.util.List; @@ -18,14 +20,11 @@ @Audited @AuditOverride(forClass = AbstractAuditable.class) @JsonIgnoreProperties({"handler", "hibernateLazyInitializer"}) -public class EntityAttributesFilterTarget extends AbstractAuditable { - public enum EntityAttributesFilterTargetType { - ENTITY, CONDITION_SCRIPT, CONDITION_REF, REGEX - } +public class EntityAttributesFilterTarget extends AbstractAuditable implements IFilterTarget { private EntityAttributesFilterTargetType entityAttributesFilterTargetType; - @ElementCollection + @ElementCollection (fetch = FetchType.EAGER) @OrderColumn @Column(length = 760) private List value; @@ -34,12 +33,19 @@ public EntityAttributesFilterTargetType getEntityAttributesFilterTargetType() { return entityAttributesFilterTargetType; } - public void setEntityAttributesFilterTargetType(EntityAttributesFilterTargetType entityAttributesFilterTarget) { - this.entityAttributesFilterTargetType = entityAttributesFilterTarget; + @Override + @JsonIgnore + public String getTargetTypeValue() { + return entityAttributesFilterTargetType == null ? "NONE" : entityAttributesFilterTargetType.name(); } + @Override public List getValue() { - return value; + return value == null ? new ArrayList<>() : value; + } + + public void setEntityAttributesFilterTargetType(EntityAttributesFilterTargetType entityAttributesFilterTarget) { + this.entityAttributesFilterTargetType = entityAttributesFilterTarget; } public void setSingleValue(String value) { @@ -59,4 +65,8 @@ public String toString() { ", value=" + value + '}'; } -} + + public enum EntityAttributesFilterTargetType { + ENTITY, CONDITION_SCRIPT, CONDITION_REF, REGEX + } +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/IFilterTarget.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/IFilterTarget.java new file mode 100644 index 000000000..d0a2683b1 --- /dev/null +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/IFilterTarget.java @@ -0,0 +1,13 @@ +package edu.internet2.tier.shibboleth.admin.ui.domain.filters; + +import java.util.List; + +public interface IFilterTarget { + String getTargetTypeValue(); + + List getValue(); + + void setSingleValue(String value); + + void setValue(List value); +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/ITargetable.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/ITargetable.java new file mode 100644 index 000000000..c46ff1c7f --- /dev/null +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/ITargetable.java @@ -0,0 +1,5 @@ +package edu.internet2.tier.shibboleth.admin.ui.domain.filters; + +public interface ITargetable { + public IFilterTarget getTarget(); +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/NameIdFormatFilter.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/NameIdFormatFilter.java index 47bb0810b..76c3cebae 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/NameIdFormatFilter.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/NameIdFormatFilter.java @@ -1,19 +1,18 @@ package edu.internet2.tier.shibboleth.admin.ui.domain.filters; -import java.util.List; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import org.hibernate.envers.Audited; import javax.persistence.CascadeType; import javax.persistence.ElementCollection; import javax.persistence.Entity; import javax.persistence.OneToOne; import javax.persistence.OrderColumn; - -import org.hibernate.envers.Audited; - -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; +import java.util.List; @Entity @EqualsAndHashCode(callSuper = true) @@ -21,7 +20,7 @@ @Setter @ToString @Audited -public class NameIdFormatFilter extends MetadataFilter { +public class NameIdFormatFilter extends MetadataFilter implements ITargetable { public NameIdFormatFilter() { type = "NameIDFormat"; @@ -36,6 +35,12 @@ public NameIdFormatFilter() { @OneToOne(cascade = CascadeType.ALL) private NameIdFormatFilterTarget nameIdFormatFilterTarget; + @Override + @JsonIgnore + public IFilterTarget getTarget() { + return nameIdFormatFilterTarget; + } + private NameIdFormatFilter updateConcreteFilterTypeData(NameIdFormatFilter filterToBeUpdated) { filterToBeUpdated.setRemoveExistingFormats(getRemoveExistingFormats()); filterToBeUpdated.setFormats(getFormats()); @@ -47,5 +52,4 @@ private NameIdFormatFilter updateConcreteFilterTypeData(NameIdFormatFilter filte public MetadataFilter updateConcreteFilterTypeData(MetadataFilter filterToBeUpdated) { return updateConcreteFilterTypeData((NameIdFormatFilter) filterToBeUpdated); } - -} +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/NameIdFormatFilterTarget.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/NameIdFormatFilterTarget.java index eef906500..90445ff75 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/NameIdFormatFilterTarget.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/NameIdFormatFilterTarget.java @@ -1,5 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.domain.filters; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import edu.internet2.tier.shibboleth.admin.ui.domain.AbstractAuditable; import lombok.EqualsAndHashCode; @@ -10,6 +11,7 @@ import javax.persistence.ElementCollection; import javax.persistence.Entity; import javax.persistence.OrderColumn; +import javax.persistence.Transient; import java.util.ArrayList; import java.util.List; @@ -19,30 +21,32 @@ @Audited @AuditOverride(forClass = AbstractAuditable.class) @JsonIgnoreProperties({"handler", "hibernateLazyInitializer"}) -public class NameIdFormatFilterTarget extends AbstractAuditable { - - public enum NameIdFormatFilterTargetType { - ENTITY, CONDITION_SCRIPT, REGEX - } +public class NameIdFormatFilterTarget extends AbstractAuditable implements IFilterTarget { private NameIdFormatFilterTargetType nameIdFormatFilterTargetType; + @ElementCollection + @OrderColumn + private List value; + public NameIdFormatFilterTargetType getNameIdFormatFilterTargetType() { return nameIdFormatFilterTargetType; } - public void setNameIdFormatFilterTargetType(NameIdFormatFilterTargetType nameIdFormatFilterTargetType) { - this.nameIdFormatFilterTargetType = nameIdFormatFilterTargetType; + @Override + @JsonIgnore + public String getTargetTypeValue() { + return nameIdFormatFilterTargetType.name(); } - @ElementCollection - @OrderColumn - private List value; - public List getValue() { return value; } + public void setNameIdFormatFilterTargetType(NameIdFormatFilterTargetType nameIdFormatFilterTargetType) { + this.nameIdFormatFilterTargetType = nameIdFormatFilterTargetType; + } + public void setSingleValue(String value) { List values = new ArrayList<>(); values.add(value); @@ -53,5 +57,7 @@ public void setValue(List value) { this.value = value; } - -} + public enum NameIdFormatFilterTargetType { + ENTITY, CONDITION_SCRIPT, REGEX + } +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolver.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolver.java index 995fab868..63a04d764 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolver.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolver.java @@ -7,6 +7,7 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo; import edu.internet2.tier.shibboleth.admin.ui.domain.AbstractAuditable; import edu.internet2.tier.shibboleth.admin.ui.domain.ActivatableType; +import static edu.internet2.tier.shibboleth.admin.ui.domain.ActivatableType.METADATA_RESOLVER; import edu.internet2.tier.shibboleth.admin.ui.domain.IActivatable; import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilter; import edu.internet2.tier.shibboleth.admin.ui.domain.filters.MetadataFilter; @@ -30,8 +31,6 @@ import java.util.List; import java.util.UUID; -import static edu.internet2.tier.shibboleth.admin.ui.domain.ActivatableType.*; - @Entity @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) @EqualsAndHashCode(callSuper = true, exclude = {"version", "versionModifiedTimestamp"}) @@ -110,6 +109,10 @@ public ActivatableType getActivatableType() { return METADATA_RESOLVER; } + public Boolean getDoInitialization() { + return doInitialization == null ? false : doInitialization; + } + @JsonGetter("version") public int getVersion() { if (this.version != null && this.version != 0 ) { diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/SvnMetadataResource.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/SvnMetadataResource.java index 06f039bc6..7e34fe8c8 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/SvnMetadataResource.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/SvnMetadataResource.java @@ -16,19 +16,21 @@ @EqualsAndHashCode public class SvnMetadataResource { - private String repositoryURL; + private String password; - private String workingCopyDirectory; + private String proxyHost; - private String resourceFile; + private String proxyPassword; - private String username; + private String proxyPort; - private String password; + private String proxyUserName; - private String proxyHost; + private String repositoryURL; - private String proxyUserName; + private String resourceFile; - private String proxyPassword; -} + private String username; + + private String workingCopyDirectory; +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/DynamicHttpMetadataResolverValidator.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/DynamicHttpMetadataResolverValidator.java new file mode 100644 index 000000000..2b14ded1e --- /dev/null +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/DynamicHttpMetadataResolverValidator.java @@ -0,0 +1,33 @@ +package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator; + +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.DynamicHttpMetadataResolver; +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolver; +import edu.internet2.tier.shibboleth.admin.ui.security.service.IGroupService; +import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService; +import org.springframework.beans.factory.annotation.Autowired; + +public class DynamicHttpMetadataResolverValidator implements IMetadataResolverValidator { + @Autowired + private IGroupService groupService; + + @Autowired + private UserService userService; + + public DynamicHttpMetadataResolverValidator(IGroupService groupService, UserService userService) { + this.groupService = groupService; + this.userService = userService; + } + + @Override public boolean supports(MetadataResolver resolver) { return resolver instanceof DynamicHttpMetadataResolver; } + + @Override public ValidationResult validate(MetadataResolver resolver) { + DynamicHttpMetadataResolver dynamicResolver = (DynamicHttpMetadataResolver) resolver; + if ("MetadataQueryProtocol".equals(dynamicResolver.getMetadataRequestURLConstructionScheme().getType())) { + String url = dynamicResolver.getMetadataRequestURLConstructionScheme().getContent(); + if (!groupService.doesStringMatchGroupPattern(userService.getCurrentUser().getGroupId(), url)) { + return new ValidationResult("Metadata Query Protocol URL not acceptable for user's group"); + } + } + return new ValidationResult(); + } +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/FileBackedHttpMetadataResolverValidator.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/FileBackedHttpMetadataResolverValidator.java new file mode 100644 index 000000000..e387e9bea --- /dev/null +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/FileBackedHttpMetadataResolverValidator.java @@ -0,0 +1,31 @@ +package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator; + +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.FileBackedHttpMetadataResolver; +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolver; +import edu.internet2.tier.shibboleth.admin.ui.security.service.IGroupService; +import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService; +import org.springframework.beans.factory.annotation.Autowired; + +public class FileBackedHttpMetadataResolverValidator implements IMetadataResolverValidator { + @Autowired + private IGroupService groupService; + + @Autowired + private UserService userService; + + public FileBackedHttpMetadataResolverValidator(IGroupService groupService, UserService userService) { + this.groupService = groupService; + this.userService = userService; + } + + @Override public boolean supports(MetadataResolver resolver) { return resolver instanceof FileBackedHttpMetadataResolver; } + + @Override public ValidationResult validate(MetadataResolver resolver) { + FileBackedHttpMetadataResolver fbhmResolver = (FileBackedHttpMetadataResolver) resolver; + String url = fbhmResolver.getMetadataURL(); + if (!groupService.doesStringMatchGroupPattern(userService.getCurrentUser().getGroupId(), url)) { + return new ValidationResult("Metadata URL not acceptable for user's group"); + } + return new ValidationResult(); + } +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolverValidator.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/IMetadataResolverValidator.java similarity index 82% rename from backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolverValidator.java rename to backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/IMetadataResolverValidator.java index a57bc6f18..33ceefa00 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolverValidator.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/IMetadataResolverValidator.java @@ -1,4 +1,6 @@ -package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers; +package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator; + +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolver; import java.util.ArrayList; import java.util.List; @@ -12,7 +14,7 @@ * * @author Dmitriy Kopylenko */ -public interface MetadataResolverValidator { +public interface IMetadataResolverValidator { boolean supports(MetadataResolver resolver); @@ -38,4 +40,4 @@ public boolean isValid() { return this.errorMessages == null || this.errorMessages.isEmpty(); } } -} +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolverValidationService.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/MetadataResolverValidationService.java similarity index 59% rename from backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolverValidationService.java rename to backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/MetadataResolverValidationService.java index 676755b26..3e9e3df51 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolverValidationService.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/MetadataResolverValidationService.java @@ -1,13 +1,15 @@ -package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers; +package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator; -import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolverValidator.ValidationResult; +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolver; +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator.IMetadataResolverValidator; +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator.IMetadataResolverValidator.ValidationResult; import java.util.ArrayList; import java.util.List; /** - * A facade that aggregates {@link MetadataResolverValidator}s available to call just one of them supporting the type of a given resolver. - * If no {@link MetadataResolverValidator}s are configured, considers provided MetadataResolver as valid. + * A facade that aggregates {@link IMetadataResolverValidator}s available to call just one of them supporting the type of a given resolver. + * If no {@link IMetadataResolverValidator}s are configured, considers provided MetadataResolver as valid. *

* Uses chain-of-responsibility design pattern * @@ -15,9 +17,9 @@ */ public class MetadataResolverValidationService { - private List> validators; + List> validators; - public MetadataResolverValidationService(List> validators) { + public MetadataResolverValidationService(List> validators) { this.validators = validators != null ? validators : new ArrayList<>(); } @@ -36,4 +38,4 @@ public ValidationResult validateIfNecessary(T metadataResolver) { boolean noValidatorsConfigured() { return this.validators.size() == 0; } -} +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/ResourceBackedMetadataResolverValidator.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/ResourceBackedIMetadataResolverValidator.java similarity index 57% rename from backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/ResourceBackedMetadataResolverValidator.java rename to backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/ResourceBackedIMetadataResolverValidator.java index 480491465..6b4c7ba6d 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/ResourceBackedMetadataResolverValidator.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/ResourceBackedIMetadataResolverValidator.java @@ -1,6 +1,9 @@ -package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers; +package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator; -public class ResourceBackedMetadataResolverValidator implements MetadataResolverValidator { +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolver; +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ResourceBackedMetadataResolver; + +public class ResourceBackedIMetadataResolverValidator implements IMetadataResolverValidator { @Override public boolean supports(MetadataResolver resolver) { @@ -17,4 +20,4 @@ public ValidationResult validate(ResourceBackedMetadataResolver resolver) { } return new ValidationResult(); } -} +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/exception/InvalidPatternMatchException.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/exception/InvalidPatternMatchException.java new file mode 100644 index 000000000..57cdfcd42 --- /dev/null +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/exception/InvalidPatternMatchException.java @@ -0,0 +1,7 @@ +package edu.internet2.tier.shibboleth.admin.ui.exception; + +public class InvalidPatternMatchException extends Exception { + public InvalidPatternMatchException(String message) { + super(message); + } +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/controller/GroupController.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/controller/GroupController.java index c0fc0a8ea..bcb1b047c 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/controller/GroupController.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/controller/GroupController.java @@ -1,5 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.security.controller; +import edu.internet2.tier.shibboleth.admin.ui.security.exception.InvalidGroupRegexException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; @@ -32,7 +33,7 @@ public class GroupController { @Secured("ROLE_ADMIN") @PostMapping @Transactional - public ResponseEntity create(@RequestBody Group group) throws GroupExistsConflictException { + public ResponseEntity create(@RequestBody Group group) throws GroupExistsConflictException, InvalidGroupRegexException { Group result = groupService.createGroup(group); return ResponseEntity.status(HttpStatus.CREATED).body(result); } @@ -64,8 +65,8 @@ public ResponseEntity getOne(@PathVariable String resourceId) throws EntityNo @Secured("ROLE_ADMIN") @PutMapping @Transactional - public ResponseEntity update(@RequestBody Group group) throws EntityNotFoundException { + public ResponseEntity update(@RequestBody Group group) throws EntityNotFoundException, InvalidGroupRegexException { Group result = groupService.updateGroup(group); return ResponseEntity.ok(result); } -} +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/controller/GroupControllerExceptionHandler.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/controller/GroupControllerExceptionHandler.java index e8bb3b4af..39778e21a 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/controller/GroupControllerExceptionHandler.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/controller/GroupControllerExceptionHandler.java @@ -1,5 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.security.controller; +import edu.internet2.tier.shibboleth.admin.ui.security.exception.InvalidGroupRegexException; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -43,4 +44,14 @@ public ResponseEntity handleGroupExistsConflict(GroupExistsConflictException return ResponseEntity.status(HttpStatus.METHOD_NOT_ALLOWED).headers(headers) .body(new ErrorResponse(String.valueOf(HttpStatus.METHOD_NOT_ALLOWED.value()), e.getMessage())); } -} + + @ExceptionHandler({ InvalidGroupRegexException.class }) + public ResponseEntity handleInvalidGroupRegexException(InvalidGroupRegexException e, WebRequest request) { + HttpHeaders headers = new HttpHeaders(); + headers.setLocation(ServletUriComponentsBuilder.fromCurrentServletMapping().path("/api/admin/groups").build().toUri()); + + return ResponseEntity.status(HttpStatus.BAD_REQUEST).headers(headers) + .body(new ErrorResponse(String.valueOf(HttpStatus.BAD_REQUEST.value()), e.getMessage())); + } + +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/exception/InvalidGroupRegexException.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/exception/InvalidGroupRegexException.java new file mode 100644 index 000000000..ae9a034d1 --- /dev/null +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/exception/InvalidGroupRegexException.java @@ -0,0 +1,7 @@ +package edu.internet2.tier.shibboleth.admin.ui.security.exception; + +public class InvalidGroupRegexException extends Exception { + public InvalidGroupRegexException(String message) { + super(message); + } +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/model/Group.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/model/Group.java index aeded7229..c0d579c30 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/model/Group.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/model/Group.java @@ -23,6 +23,8 @@ @EntityListeners(GroupUpdatedEntityListener.class) @Entity(name = "user_groups") public class Group implements Owner { + public static final String DEFAULT_REGEX = "/(?!^()$)^(.*)$/"; //everything except an empty string + @Transient @JsonIgnore public static Group ADMIN_GROUP; @@ -46,6 +48,9 @@ public class Group implements Owner { @Column(name = "resource_id") private String resourceId = UUID.randomUUID().toString(); + @Column(name = "validation_regex") + private String validationRegex; + /** * Define a Group object based on the user */ diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/model/User.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/model/User.java index cb769c662..d96a18be8 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/model/User.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/model/User.java @@ -71,7 +71,6 @@ public class User extends AbstractAuditable implements Owner, Ownable { private Set roles = new HashSet<>(); @EqualsAndHashCode.Exclude - @JsonIgnore @Transient private Set userGroups = new HashSet<>(); @@ -82,12 +81,14 @@ public class User extends AbstractAuditable implements Owner, Ownable { * @return the initial implementation, while supporting a user having multiple groups in the db side, acts as if the * user can only belong to a single group */ - @JsonIgnore public Group getGroup() { return getUserGroups().isEmpty() ? null : (Group) userGroups.toArray()[0]; } public String getGroupId() { + if (getRole().equals("ROLE_ADMIN")) { + groupId = Group.ADMIN_GROUP.getResourceId(); + } if (groupId == null) { groupId = getUserGroups().isEmpty() ? null : getGroup().getResourceId(); } @@ -131,7 +132,8 @@ public Set getUserGroups() { } return userGroups; } - + + @JsonIgnore public void setGroup(Group g) { groupId = g.getResourceId(); userGroups.clear(); @@ -145,4 +147,4 @@ public void setGroups(Set groups) { public void registerLoader(ILazyLoaderHelper lazyLoaderHelper) { this.lazyLoaderHelper = lazyLoaderHelper; } -} +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/model/listener/GroupUpdatedEntityListener.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/model/listener/GroupUpdatedEntityListener.java index 515adface..d477ae78c 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/model/listener/GroupUpdatedEntityListener.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/model/listener/GroupUpdatedEntityListener.java @@ -1,31 +1,31 @@ package edu.internet2.tier.shibboleth.admin.ui.security.model.listener; -import java.util.Set; +import edu.internet2.tier.shibboleth.admin.ui.security.model.Group; +import edu.internet2.tier.shibboleth.admin.ui.security.model.Ownership; +import edu.internet2.tier.shibboleth.admin.ui.security.repository.OwnershipRepository; +import org.springframework.beans.factory.annotation.Autowired; import javax.persistence.PostLoad; import javax.persistence.PostPersist; +import javax.persistence.PostRemove; import javax.persistence.PostUpdate; - -import org.springframework.beans.factory.annotation.Autowired; - -import edu.internet2.tier.shibboleth.admin.ui.security.model.Group; -import edu.internet2.tier.shibboleth.admin.ui.security.model.Ownership; -import edu.internet2.tier.shibboleth.admin.ui.security.repository.OwnershipRepository; +import java.util.Set; public class GroupUpdatedEntityListener implements ILazyLoaderHelper { private static OwnershipRepository ownershipRepository; /** - * see https://stackoverflow.com/questions/12155632/injecting-a-spring-dependency-into-a-jpa-entitylistener + * @see https://stackoverflow.com/questions/12155632/injecting-a-spring-dependency-into-a-jpa-entitylistener */ @Autowired - public void init(OwnershipRepository repo) { + public static void init(OwnershipRepository repo) { GroupUpdatedEntityListener.ownershipRepository = repo; } @PostPersist @PostUpdate @PostLoad + @PostRemove public synchronized void groupSavedOrFetched(Group group) { // Because of the JPA spec, the listener can't do queries in the callback, so we force lazy loading through // another callback to this at the time that the owned items are needed @@ -34,9 +34,8 @@ public synchronized void groupSavedOrFetched(Group group) { @Override public void loadOwnedItems(Group group) { - group.registerLoader(null); // once loaded, remove the helper from the group Set ownedItems = ownershipRepository.findAllByOwner(group); - group.setOwnedItems(ownedItems); + group.setOwnedItems(ownedItems); } } \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/model/listener/UserUpdatedEntityListener.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/model/listener/UserUpdatedEntityListener.java index 2adbde700..9e01c41d9 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/model/listener/UserUpdatedEntityListener.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/model/listener/UserUpdatedEntityListener.java @@ -1,31 +1,28 @@ package edu.internet2.tier.shibboleth.admin.ui.security.model.listener; -import java.util.HashSet; -import java.util.Set; - -import javax.persistence.PostLoad; -import javax.persistence.PostPersist; -import javax.persistence.PostUpdate; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.transaction.annotation.Propagation; -import org.springframework.transaction.annotation.Transactional; - import edu.internet2.tier.shibboleth.admin.ui.security.model.Group; import edu.internet2.tier.shibboleth.admin.ui.security.model.Ownership; import edu.internet2.tier.shibboleth.admin.ui.security.model.User; import edu.internet2.tier.shibboleth.admin.ui.security.repository.GroupsRepository; import edu.internet2.tier.shibboleth.admin.ui.security.repository.OwnershipRepository; +import org.springframework.beans.factory.annotation.Autowired; + +import javax.persistence.PostLoad; +import javax.persistence.PostPersist; +import javax.persistence.PostRemove; +import javax.persistence.PostUpdate; +import java.util.HashSet; +import java.util.Set; public class UserUpdatedEntityListener implements ILazyLoaderHelper { private static GroupsRepository groupRepository; private static OwnershipRepository ownershipRepository; /** - * see https://stackoverflow.com/questions/12155632/injecting-a-spring-dependency-into-a-jpa-entitylistener + * @see https://stackoverflow.com/questions/12155632/injecting-a-spring-dependency-into-a-jpa-entitylistener */ @Autowired - public void init(OwnershipRepository repo, GroupsRepository groupRepo) { + public static void init(OwnershipRepository repo, GroupsRepository groupRepo) { UserUpdatedEntityListener.ownershipRepository = repo; UserUpdatedEntityListener.groupRepository = groupRepo; } @@ -33,18 +30,26 @@ public void init(OwnershipRepository repo, GroupsRepository groupRepo) { @PostPersist @PostUpdate @PostLoad - @Transactional(propagation = Propagation.REQUIRES_NEW) + @PostRemove public synchronized void userSavedOrFetched(User user) { // Because of the JPA spec, the listener can't do queries in the callback, so we force lazy loading through // another callback to this at the time that the groups are needed user.registerLoader(this); } - + + @Override public void loadGroups(User user) { - user.setLazyLoaderHelper(null); Set ownerships = ownershipRepository.findAllGroupsForUser(user.getUsername()); HashSet groups = new HashSet<>(); - ownerships.forEach(ownership -> groups.add(groupRepository.findByResourceId(ownership.getOwnerId()))); + final boolean isAdmin = user.getRole().equals("ROLE_ADMIN"); + + // if the user is an admin, clear out the regex value so it isn't sent out to the UI + ownerships.stream().map(ownership -> groupRepository.findByResourceId(ownership.getOwnerId())).forEach(userGroup -> { + if (isAdmin) { + userGroup.setValidationRegex(null); + } + groups.add(userGroup); + }); user.setGroups(groups); } } \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/service/GroupServiceImpl.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/service/GroupServiceImpl.java index 2501f007e..65ee10764 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/service/GroupServiceImpl.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/service/GroupServiceImpl.java @@ -1,28 +1,36 @@ package edu.internet2.tier.shibboleth.admin.ui.security.service; -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - import edu.internet2.tier.shibboleth.admin.ui.exception.EntityNotFoundException; import edu.internet2.tier.shibboleth.admin.ui.security.exception.GroupDeleteException; import edu.internet2.tier.shibboleth.admin.ui.security.exception.GroupExistsConflictException; +import edu.internet2.tier.shibboleth.admin.ui.security.exception.InvalidGroupRegexException; import edu.internet2.tier.shibboleth.admin.ui.security.model.Group; import edu.internet2.tier.shibboleth.admin.ui.security.repository.GroupsRepository; import edu.internet2.tier.shibboleth.admin.ui.security.repository.OwnershipRepository; import lombok.NoArgsConstructor; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.script.ScriptEngine; +import javax.script.ScriptEngineManager; +import javax.script.ScriptException; +import java.util.List; @Service @NoArgsConstructor public class GroupServiceImpl implements IGroupService { + private static final String CHECK_REGEX = "function isValid(exp){try{new RegExp(exp);return true;}catch(e){return false;}};isValid(rgx);"; + private static final String REGEX_MATCHER = "function validate(r, s){ return RegExp(r).test(s);};validate(rgx, str);"; + private final ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript"); + @Autowired protected GroupsRepository groupRepository; - + @Autowired protected OwnershipRepository ownershipRepository; - + public GroupServiceImpl(GroupsRepository repo, OwnershipRepository ownershipRepository) { this.groupRepository = repo; this.ownershipRepository = ownershipRepository; @@ -30,7 +38,7 @@ public GroupServiceImpl(GroupsRepository repo, OwnershipRepository ownershipRepo @Override @Transactional - public Group createGroup(Group group) throws GroupExistsConflictException { + public Group createGroup(Group group) throws GroupExistsConflictException, InvalidGroupRegexException { Group foundGroup = find(group.getResourceId()); // If already defined, we don't want to create a new one, nor do we want this call update the definition if (foundGroup != null) { @@ -38,6 +46,7 @@ public Group createGroup(Group group) throws GroupExistsConflictException { String.format("Call update (PUT) to modify the group with resource id: [%s] and name: [%s]", foundGroup.getResourceId(), foundGroup.getName())); } + validateGroupRegex(group); return groupRepository.save(group); } @@ -53,6 +62,34 @@ public void deleteDefinition(String resourceId) throws EntityNotFoundException, groupRepository.delete(group); } + /** + * Though the name URI is used here, any string value that we want to validate against the group's regex is accepted and checked. + * Designed usage is that this would be a URL or an entity Id (which is a URI that does not have to follow the URL conventions) + */ + @Override + public boolean doesStringMatchGroupPattern(String groupId, String uri) { + if (Group.ADMIN_GROUP.getResourceId().equals(groupId)) { + return true; + } + Group group = find(groupId); + + String regExp = group.getValidationRegex(); + if (StringUtils.isEmpty(regExp)) { + return true; + } + + engine.put("str", uri); + try { + engine.put("rgx", regExp ); + Object value = engine.eval(REGEX_MATCHER); + return Boolean.valueOf(value.toString()); + } + catch (ScriptException e) { + return false; + } + + } + @Override @Transactional public void ensureAdminGroupExists() { @@ -61,6 +98,7 @@ public void ensureAdminGroupExists() { g = new Group(); g.setName("ADMIN-GROUP"); g.setResourceId("admingroup"); + g.setValidationRegex(Group.DEFAULT_REGEX); g = groupRepository.save(g); } Group.ADMIN_GROUP = g; @@ -78,12 +116,32 @@ public List findAll() { } @Override - public Group updateGroup(Group group) throws EntityNotFoundException { + public Group updateGroup(Group group) throws EntityNotFoundException, InvalidGroupRegexException { Group g = find(group.getResourceId()); if (g == null) { throw new EntityNotFoundException(String.format("Unable to find group with resource id: [%s] and name: [%s]", group.getResourceId(), group.getName())); } + validateGroupRegex(group); return groupRepository.save(group); } + + /** + * If the regex is blank simply return + */ + private void validateGroupRegex(Group group) throws InvalidGroupRegexException { + if (StringUtils.isEmpty(group.getValidationRegex())) { + return; + } + try { + engine.put("rgx", group.getValidationRegex()); + Object value = engine.eval(CHECK_REGEX); + if (!Boolean.valueOf(value.toString())) { + throw new InvalidGroupRegexException("Invalid Regular Expression [ " + group.getValidationRegex() + " ]"); + } + } + catch (ScriptException e) { + throw new InvalidGroupRegexException("Invalid Regular Expression [ " + group.getValidationRegex() + " ]"); + } + } } \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/service/IGroupService.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/service/IGroupService.java index 1c4229d84..d6e44e5ec 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/service/IGroupService.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/service/IGroupService.java @@ -6,11 +6,12 @@ import edu.internet2.tier.shibboleth.admin.ui.exception.EntityNotFoundException; import edu.internet2.tier.shibboleth.admin.ui.security.exception.GroupDeleteException; import edu.internet2.tier.shibboleth.admin.ui.security.exception.GroupExistsConflictException; +import edu.internet2.tier.shibboleth.admin.ui.security.exception.InvalidGroupRegexException; import edu.internet2.tier.shibboleth.admin.ui.security.model.Group; public interface IGroupService { - Group createGroup(Group group) throws GroupExistsConflictException; + Group createGroup(Group group) throws GroupExistsConflictException, InvalidGroupRegexException; void deleteDefinition(String resourceId) throws EntityNotFoundException, GroupDeleteException; @@ -20,6 +21,7 @@ public interface IGroupService { List findAll(); - Group updateGroup(Group g) throws EntityNotFoundException; + Group updateGroup(Group g) throws EntityNotFoundException, InvalidGroupRegexException; -} + boolean doesStringMatchGroupPattern(String groupId, String uri); +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/service/UserService.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/service/UserService.java index 304b93028..df200f482 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/service/UserService.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/service/UserService.java @@ -4,6 +4,7 @@ import edu.internet2.tier.shibboleth.admin.ui.domain.IActivatable; import edu.internet2.tier.shibboleth.admin.ui.exception.EntityNotFoundException; import edu.internet2.tier.shibboleth.admin.ui.security.exception.GroupExistsConflictException; +import edu.internet2.tier.shibboleth.admin.ui.security.exception.InvalidGroupRegexException; import edu.internet2.tier.shibboleth.admin.ui.security.exception.OwnershipConflictException; import edu.internet2.tier.shibboleth.admin.ui.security.model.Group; import edu.internet2.tier.shibboleth.admin.ui.security.model.Ownable; @@ -179,7 +180,8 @@ public User save(User user) { try { g = groupService.createGroup(g); } - catch (GroupExistsConflictException e) { + catch (GroupExistsConflictException | InvalidGroupRegexException e) { + // Invalid shouldn't happen for a group created this way. g = groupService.find(user.getUsername()); } } else { @@ -197,8 +199,8 @@ public User save(User user) { ownershipRepository.saveAndFlush(new Ownership(newGroup, user)); g = groupService.createGroup(newGroup); } - catch (GroupExistsConflictException e) { - // we just checked, this shouldn't happen + catch (GroupExistsConflictException | InvalidGroupRegexException e) { + // this shouldn't happen g = ug; } } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/EntityDescriptorService.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/EntityDescriptorService.java index 50f29951c..b2bf96ac3 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/EntityDescriptorService.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/EntityDescriptorService.java @@ -3,9 +3,10 @@ import edu.internet2.tier.shibboleth.admin.ui.domain.Attribute; import edu.internet2.tier.shibboleth.admin.ui.domain.EntityDescriptor; import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.EntityDescriptorRepresentation; -import edu.internet2.tier.shibboleth.admin.ui.exception.ObjectIdExistsException; import edu.internet2.tier.shibboleth.admin.ui.exception.EntityNotFoundException; import edu.internet2.tier.shibboleth.admin.ui.exception.ForbiddenException; +import edu.internet2.tier.shibboleth.admin.ui.exception.InvalidPatternMatchException; +import edu.internet2.tier.shibboleth.admin.ui.exception.ObjectIdExistsException; import java.util.ConcurrentModificationException; import java.util.List; @@ -31,7 +32,8 @@ public interface EntityDescriptorService { * @throws ForbiddenException If user is unauthorized to perform this operation * @throws ObjectIdExistsException If any EntityDescriptor already exists with the same EntityId */ - EntityDescriptorRepresentation createNew(EntityDescriptor ed) throws ForbiddenException, ObjectIdExistsException; + EntityDescriptorRepresentation createNew(EntityDescriptor ed) + throws ForbiddenException, ObjectIdExistsException, InvalidPatternMatchException; /** * @param edRepresentation Incoming representation to save @@ -39,8 +41,8 @@ public interface EntityDescriptorService { * @throws ForbiddenException If user is unauthorized to perform this operation * @throws ObjectIdExistsException If the entity already exists */ - EntityDescriptorRepresentation createNew(EntityDescriptorRepresentation edRepresentation) throws ForbiddenException, - ObjectIdExistsException; + EntityDescriptorRepresentation createNew(EntityDescriptorRepresentation edRepresentation) + throws ForbiddenException, ObjectIdExistsException, InvalidPatternMatchException; /** * Map from opensaml implementation of entity descriptor model to front-end data representation of entity descriptor @@ -94,12 +96,14 @@ EntityDescriptorRepresentation createNew(EntityDescriptorRepresentation edRepres Map getRelyingPartyOverridesRepresentationFromAttributeList(List attributeList); /** - * @param edRepresentation Incoming representation to save - * @return EntityDescriptorRepresentation - * @throws ForbiddenException If user is unauthorized to perform this operation - * @throws ConcurrentModificationException If the entity was already modified by another user + * @throws ForbiddenException If the user is not permitted to perform the action + * @throws EntityNotFoundException If the entity doesn't already exist in the database + * @throws ConcurrentModificationException IF the entity is being modified in another session + * @throws InvalidPatternMatchException If the entity id or the ACS location urls don't match the supplied regex */ - EntityDescriptorRepresentation update(EntityDescriptorRepresentation edRepresentation) throws ForbiddenException, EntityNotFoundException, ConcurrentModificationException; + EntityDescriptorRepresentation update(EntityDescriptorRepresentation edRepresentation) + throws ForbiddenException, EntityNotFoundException, ConcurrentModificationException, + InvalidPatternMatchException; /** * Update an instance of entity descriptor with information from the front-end representation diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImpl.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImpl.java index 1b660ab9f..d1f1f0ccc 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImpl.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImpl.java @@ -1,33 +1,69 @@ package edu.internet2.tier.shibboleth.admin.ui.service; -import edu.internet2.tier.shibboleth.admin.ui.domain.*; -import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.*; -import edu.internet2.tier.shibboleth.admin.ui.exception.ObjectIdExistsException; +import edu.internet2.tier.shibboleth.admin.ui.domain.Attribute; +import edu.internet2.tier.shibboleth.admin.ui.domain.EntityAttributes; +import edu.internet2.tier.shibboleth.admin.ui.domain.EntityDescriptor; +import edu.internet2.tier.shibboleth.admin.ui.domain.IRelyingPartyOverrideProperty; +import edu.internet2.tier.shibboleth.admin.ui.domain.KeyDescriptor; +import edu.internet2.tier.shibboleth.admin.ui.domain.UIInfo; +import edu.internet2.tier.shibboleth.admin.ui.domain.XSBoolean; +import edu.internet2.tier.shibboleth.admin.ui.domain.XSInteger; +import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.AssertionConsumerServiceRepresentation; +import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.ContactRepresentation; +import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.EntityDescriptorRepresentation; +import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.LogoutEndpointRepresentation; +import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.MduiRepresentation; +import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.OrganizationRepresentation; +import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.SecurityInfoRepresentation; +import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.ServiceProviderSsoDescriptorRepresentation; import edu.internet2.tier.shibboleth.admin.ui.exception.EntityNotFoundException; import edu.internet2.tier.shibboleth.admin.ui.exception.ForbiddenException; +import edu.internet2.tier.shibboleth.admin.ui.exception.InvalidPatternMatchException; +import edu.internet2.tier.shibboleth.admin.ui.exception.ObjectIdExistsException; import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects; import edu.internet2.tier.shibboleth.admin.ui.repository.EntityDescriptorRepository; -import edu.internet2.tier.shibboleth.admin.ui.security.model.*; +import edu.internet2.tier.shibboleth.admin.ui.security.model.Group; +import edu.internet2.tier.shibboleth.admin.ui.security.model.Owner; +import edu.internet2.tier.shibboleth.admin.ui.security.model.OwnerType; +import edu.internet2.tier.shibboleth.admin.ui.security.model.Ownership; +import edu.internet2.tier.shibboleth.admin.ui.security.model.User; import edu.internet2.tier.shibboleth.admin.ui.security.repository.OwnershipRepository; +import edu.internet2.tier.shibboleth.admin.ui.security.service.IGroupService; import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService; +import static edu.internet2.tier.shibboleth.admin.util.EntityDescriptorConversionUtils.setupACSs; +import static edu.internet2.tier.shibboleth.admin.util.EntityDescriptorConversionUtils.setupContacts; +import static edu.internet2.tier.shibboleth.admin.util.EntityDescriptorConversionUtils.setupLogout; +import static edu.internet2.tier.shibboleth.admin.util.EntityDescriptorConversionUtils.setupOrganization; +import static edu.internet2.tier.shibboleth.admin.util.EntityDescriptorConversionUtils.setupRelyingPartyOverrides; +import static edu.internet2.tier.shibboleth.admin.util.EntityDescriptorConversionUtils.setupSPSSODescriptor; +import static edu.internet2.tier.shibboleth.admin.util.EntityDescriptorConversionUtils.setupSecurity; +import static edu.internet2.tier.shibboleth.admin.util.EntityDescriptorConversionUtils.setupUIInfo; import edu.internet2.tier.shibboleth.admin.util.MDDCConstants; import edu.internet2.tier.shibboleth.admin.util.ModelRepresentationConversions; +import static edu.internet2.tier.shibboleth.admin.util.ModelRepresentationConversions.getStringListOfAttributeValues; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.*; +import java.util.ArrayList; +import java.util.ConcurrentModificationException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; import java.util.stream.Collectors; -import static edu.internet2.tier.shibboleth.admin.util.EntityDescriptorConversionUtils.*; -import static edu.internet2.tier.shibboleth.admin.util.ModelRepresentationConversions.getStringListOfAttributeValues; - @Slf4j @Service public class JPAEntityDescriptorServiceImpl implements EntityDescriptorService { @Autowired private EntityDescriptorRepository entityDescriptorRepository; + @Autowired + IGroupService groupService; + @Autowired private OpenSamlObjects openSamlObjects; @@ -66,13 +102,14 @@ public EntityDescriptor createDescriptorFromRepresentation(final EntityDescripto } @Override - public EntityDescriptorRepresentation createNew(EntityDescriptor ed) throws ForbiddenException, ObjectIdExistsException { + public EntityDescriptorRepresentation createNew(EntityDescriptor ed) + throws ForbiddenException, ObjectIdExistsException, InvalidPatternMatchException { return createNew(createRepresentationFromDescriptor(ed)); } @Override - public EntityDescriptorRepresentation createNew(EntityDescriptorRepresentation edRep) throws ForbiddenException, - ObjectIdExistsException { + public EntityDescriptorRepresentation createNew(EntityDescriptorRepresentation edRep) + throws ForbiddenException, ObjectIdExistsException, InvalidPatternMatchException { if (edRep.isServiceEnabled() && !userService.currentUserIsAdmin()) { throw new ForbiddenException("You do not have the permissions necessary to enable this service."); } @@ -81,14 +118,18 @@ public EntityDescriptorRepresentation createNew(EntityDescriptorRepresentation e throw new ObjectIdExistsException(edRep.getEntityId()); } + // "Create new" will use the current user's group as the owner + String ownerId = userService.getCurrentUserGroup().getOwnerId(); + edRep.setIdOfOwner(ownerId); + validateEntityIdAndACSUrls(edRep); + EntityDescriptor ed = (EntityDescriptor) createDescriptorFromRepresentation(edRep); ed.setIdOfOwner(userService.getCurrentUserGroup().getOwnerId()); - ed = entityDescriptorRepository.save(ed); ownershipRepository.deleteEntriesForOwnedObject(ed); ownershipRepository.save(new Ownership(userService.getCurrentUserGroup(), ed)); - return createRepresentationFromDescriptor(ed); + return createRepresentationFromDescriptor(entityDescriptorRepository.save(ed)); } @Override @@ -338,6 +379,10 @@ public List getAllRepresentationsBasedOnUserAcce @Override public List getAttributeReleaseListFromAttributeList(List attributeList) { + if (attributeList == null) { + return new ArrayList<>(); + } + attributeList.removeIf(Objects::isNull); return ModelRepresentationConversions.getAttributeReleaseListFromAttributeList(attributeList); } @@ -359,7 +404,8 @@ public Map getRelyingPartyOverridesRepresentationFromAttributeLi } @Override - public EntityDescriptorRepresentation update(EntityDescriptorRepresentation edRep) throws ForbiddenException, EntityNotFoundException { + public EntityDescriptorRepresentation update(EntityDescriptorRepresentation edRep) + throws ForbiddenException, EntityNotFoundException, InvalidPatternMatchException { EntityDescriptor existingEd = entityDescriptorRepository.findByResourceId(edRep.getId()); if (existingEd == null) { throw new EntityNotFoundException(String.format("The entity descriptor with entity id [%s] was not found for update.", edRep.getId())); @@ -367,6 +413,9 @@ public EntityDescriptorRepresentation update(EntityDescriptorRepresentation edRe if (edRep.isServiceEnabled() && !userService.currentUserCanEnable(existingEd)) { throw new ForbiddenException("You do not have the permissions necessary to enable this service."); } + if (StringUtils.isEmpty(edRep.getIdOfOwner())) { + edRep.setIdOfOwner(StringUtils.isNotEmpty(existingEd.getIdOfOwner()) ? existingEd.getIdOfOwner() : userService.getCurrentUserGroup().getOwnerId()); + } if (!userService.isAuthorizedFor(existingEd)) { throw new ForbiddenException(); } @@ -374,6 +423,8 @@ public EntityDescriptorRepresentation update(EntityDescriptorRepresentation edRe if (edRep.getVersion() != existingEd.hashCode()) { throw new ConcurrentModificationException(String.format("A concurrent modification has occured on entity descriptor with entity id [%s]. Please refresh and try again", edRep.getId())); } + + validateEntityIdAndACSUrls(edRep); updateDescriptorFromRepresentation(existingEd, edRep); existingEd = entityDescriptorRepository.save(existingEd); ownershipRepository.deleteEntriesForOwnedObject(existingEd); @@ -406,4 +457,21 @@ public EntityDescriptorRepresentation updateEntityDescriptorEnabledStatus(String ed = entityDescriptorRepository.save(ed); return createRepresentationFromDescriptor(ed); } + + private void validateEntityIdAndACSUrls(EntityDescriptorRepresentation edRep) throws InvalidPatternMatchException { + // Check the entity id first + if (!groupService.doesStringMatchGroupPattern(edRep.getIdOfOwner(), edRep.getEntityId())) { + throw new InvalidPatternMatchException("EntityId is not a pattern match to the group"); + } + + // Check the ACS locations + if (edRep.getAssertionConsumerServices() != null && edRep.getAssertionConsumerServices().size() > 0) { + for (AssertionConsumerServiceRepresentation acs : edRep.getAssertionConsumerServices()) { + if (!groupService.doesStringMatchGroupPattern(edRep.getIdOfOwner(), acs.getLocationUrl())) { + throw new InvalidPatternMatchException( + "ACS location [ " + acs.getLocationUrl() + " ] is not a pattern match to the group"); + } + } + } + } } \ No newline at end of file diff --git a/backend/src/main/resources/i18n/messages.properties b/backend/src/main/resources/i18n/messages.properties index 3eba5b3c2..4c22a97ff 100644 --- a/backend/src/main/resources/i18n/messages.properties +++ b/backend/src/main/resources/i18n/messages.properties @@ -179,6 +179,7 @@ label.default-value=Default Value label.groups-management=Groups Management label.new-group=New Group label.new-attribute=New Custom Entity Attribute +label.edit-group=Edit Group label.metadata-source=Metadata Source label.metadata-sources=Metadata Sources @@ -494,6 +495,9 @@ label.by=By label.source=Metadata Source label.provider=Metadata Provider +label.url-validation-regex=URL validation regular expression +tooltip.url-validation-regex=URL validation regular expression + label.bundle-name=Bundle name label.bundle-disp=Bundle - {name} action.add-new-bundle=Add bundle @@ -526,6 +530,8 @@ message.delete-group-body=You are requesting to delete a group. If you complete message.delete-attribute-title=Delete Attribute? message.delete-attribute-body=You are requesting to delete a custom attribute. If you complete this process the attribute will be removed. This cannot be undone. Do you wish to continue? +message.group-pattern-fail=Pattern must match group url validation pattern: {regex} + message.must-be-unique=Must be unique. message.must-be-number=Must be a number. message.name-must-be-unique=Name must be unique. diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/AbstractBaseDataJpaTest.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/AbstractBaseDataJpaTest.groovy new file mode 100644 index 000000000..da12d8bc2 --- /dev/null +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/AbstractBaseDataJpaTest.groovy @@ -0,0 +1,102 @@ +package edu.internet2.tier.shibboleth.admin.ui + +import edu.internet2.tier.shibboleth.admin.ui.security.model.Role +import edu.internet2.tier.shibboleth.admin.ui.security.model.User +import edu.internet2.tier.shibboleth.admin.ui.security.model.listener.GroupUpdatedEntityListener +import edu.internet2.tier.shibboleth.admin.ui.security.model.listener.UserUpdatedEntityListener +import edu.internet2.tier.shibboleth.admin.ui.security.repository.GroupsRepository +import edu.internet2.tier.shibboleth.admin.ui.security.repository.OwnershipRepository +import edu.internet2.tier.shibboleth.admin.ui.security.repository.RoleRepository +import edu.internet2.tier.shibboleth.admin.ui.security.repository.UserRepository +import edu.internet2.tier.shibboleth.admin.ui.security.service.GroupServiceForTesting +import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.boot.autoconfigure.domain.EntityScan +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest +import org.springframework.data.jpa.repository.config.EnableJpaRepositories +import org.springframework.test.context.ContextConfiguration +import org.springframework.transaction.annotation.Transactional +import spock.lang.Specification + +import javax.persistence.EntityManager + +// The commented out lines show how to run the JPA tests using a file back h2 db - typically you'd switch if you want +// to access the db during testing to see what is happening in the db. Additionally, you have to use the file version of h2 +// if you want to use the reset, as the in mem version won't allow multiple different access connections to be created. +//@DataJpaTest (properties = ["spring.datasource.url=jdbc:h2:file:/tmp/myApplicationDb;AUTO_SERVER=TRUE", +// "spring.datasource.username=sa", +// "spring.datasource.password=", +// "spring.jpa.hibernate.ddl-auto=create-drop"]) +//@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) +@DataJpaTest +@ContextConfiguration(classes = [BaseDataJpaTestConfiguration]) +@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) +@EntityScan("edu.internet2.tier.shibboleth.admin.ui") +abstract class AbstractBaseDataJpaTest extends Specification implements ResetsDatabaseTrait { + @Autowired + EntityManager entityManager + + @Autowired + GroupsRepository groupRepository + + @Autowired + GroupServiceForTesting groupService + + @Autowired + OwnershipRepository ownershipRepository + + @Autowired + RoleRepository roleRepository + + @Autowired + UserRepository userRepository + + @Autowired + UserService userService + + // ensure roles are in a known good state and that we have an admin user and group + @Transactional + def setup() { +// dbsetup() + groupService.clearAllForTesting() + userRepository.deleteAll() + ownershipRepository.deleteAll() + roleRepository.deleteAll() + + def roles = [new Role().with { + name = 'ROLE_ADMIN' + it + }, new Role().with { + name = 'ROLE_USER' + it + }, new Role().with { + name = 'ROLE_ENABLE' + it + }, new Role().with { + name = 'ROLE_NONE' + it + }] + roles.each { + if (roleRepository.findByName(it.name).isEmpty()) { + roleRepository.save(it) + } + } + + createAdminUser() + GroupUpdatedEntityListener.init(ownershipRepository) + UserUpdatedEntityListener.init(ownershipRepository, groupRepository) + } + + def cleanup() { + entityManager.clear() +// dbcleanup() + } + + protected createAdminUser() { + if (userRepository.findByUsername("admin").isEmpty()) { + Optional adminRole = roleRepository.findByName("ROLE_ADMIN") + User adminUser = new User(username: "admin", roles: [adminRole.get()], password: "foo") + userService.save(adminUser) + } + } +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/BaseDataJpaTestConfiguration.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/BaseDataJpaTestConfiguration.groovy new file mode 100644 index 000000000..3ab919759 --- /dev/null +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/BaseDataJpaTestConfiguration.groovy @@ -0,0 +1,100 @@ +package edu.internet2.tier.shibboleth.admin.ui + +import com.fasterxml.jackson.databind.ObjectMapper +import com.fasterxml.jackson.databind.SerializationFeature +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule +import edu.internet2.tier.shibboleth.admin.ui.configuration.CustomPropertiesConfiguration +import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration +import edu.internet2.tier.shibboleth.admin.ui.configuration.ShibUIConfiguration +import edu.internet2.tier.shibboleth.admin.ui.configuration.StringTrimModule +import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects +import edu.internet2.tier.shibboleth.admin.ui.security.model.listener.GroupUpdatedEntityListener +import edu.internet2.tier.shibboleth.admin.ui.security.model.listener.UserUpdatedEntityListener +import edu.internet2.tier.shibboleth.admin.ui.security.repository.GroupsRepository +import edu.internet2.tier.shibboleth.admin.ui.security.repository.OwnershipRepository +import edu.internet2.tier.shibboleth.admin.ui.security.service.GroupServiceForTesting +import edu.internet2.tier.shibboleth.admin.ui.security.service.GroupServiceImpl +import edu.internet2.tier.shibboleth.admin.ui.service.JPAEntityServiceImpl +import edu.internet2.tier.shibboleth.admin.ui.util.TestObjectGenerator +import edu.internet2.tier.shibboleth.admin.util.AttributeUtility +import edu.internet2.tier.shibboleth.admin.util.ModelRepresentationConversions +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.ComponentScan +import org.springframework.context.annotation.Configuration +import org.springframework.context.annotation.Import +import org.springframework.context.annotation.Primary + +import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL + +@Configuration +@Import([ShibUIConfiguration.class, CustomPropertiesConfiguration.class, SearchConfiguration.class]) +@ComponentScan(basePackages=[ "edu.internet2.tier.shibboleth.admin.ui.service", "edu.internet2.tier.shibboleth.admin.ui.security.service", + "edu.internet2.tier.shibboleth.admin.ui.security.model.listener"]) +class BaseDataJpaTestConfiguration { + @Bean + AttributeUtility attributeUtility(OpenSamlObjects openSamlObjects) { + return new AttributeUtility(openSamlObjects) + } + + @Bean + @Primary + GroupServiceForTesting groupServiceForTesting(GroupsRepository groupRepo, OwnershipRepository ownershipRepository) { + GroupServiceForTesting result = new GroupServiceForTesting(new GroupServiceImpl().with { + it.groupRepository = groupRepo + it.ownershipRepository = ownershipRepository + return it + }) + result.ensureAdminGroupExists() + return result + } + + @Bean + GroupUpdatedEntityListener groupUpdatedEntityListener(OwnershipRepository ownershipRepository) { + GroupUpdatedEntityListener listener = new GroupUpdatedEntityListener() + listener.init(ownershipRepository) + return listener + } + + @Bean + JPAEntityServiceImpl jpaEntityService(OpenSamlObjects openSamlObjects, AttributeUtility attributeUtility, + CustomPropertiesConfiguration customPropertiesConfiguration) { + return new JPAEntityServiceImpl(openSamlObjects, attributeUtility, customPropertiesConfiguration) + } + + @Bean + ModelRepresentationConversions modelRepresentationConversions(CustomPropertiesConfiguration customPropertiesConfiguration) { + return new ModelRepresentationConversions(customPropertiesConfiguration) + } + + @Bean + ObjectMapper objectMapper() { + ObjectMapper mapper = new ObjectMapper() + mapper.enable(SerializationFeature.INDENT_OUTPUT) + mapper.setSerializationInclusion(NON_NULL) + mapper.registerModule(new JavaTimeModule()) + mapper.registerModule(new StringTrimModule()) + return mapper + } + + @Bean + @Primary + OpenSamlObjects openSamlObjects() { + OpenSamlObjects result = new OpenSamlObjects() + result.init() + return result + } + + @Bean + @Primary + TestObjectGenerator testObjectGenerator (AttributeUtility attributeUtility, CustomPropertiesConfiguration customPropertiesConfiguration) { + customPropertiesConfiguration.postConstruct() + return new TestObjectGenerator(attributeUtility, customPropertiesConfiguration) + } + + @Bean + UserUpdatedEntityListener userUpdatedEntityListener(OwnershipRepository ownershipRepository, GroupsRepository groupRepo) { + UserUpdatedEntityListener listener = new UserUpdatedEntityListener() + listener.init(ownershipRepository, groupRepo) + return listener + } +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/ResetsDatabaseTrait.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/ResetsDatabaseTrait.groovy new file mode 100644 index 000000000..d99fb85e7 --- /dev/null +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/ResetsDatabaseTrait.groovy @@ -0,0 +1,34 @@ +package edu.internet2.tier.shibboleth.admin.ui + +import groovy.sql.Sql + +trait ResetsDatabaseTrait { + static final String H2_BACKUP_LOCATION = '/tmp/h2backup.sql' + + void dbsetup() { + if (new File(H2_BACKUP_LOCATION).exists()) { + print "Previous test was interrupted and did not clean up after itself. " + loadH2FromBackup() + } + else { + Sql sql = connectToSql() + sql.execute("SCRIPT TO ?", [H2_BACKUP_LOCATION]) + } + } + + void dbcleanup() { + loadH2FromBackup() + new File(H2_BACKUP_LOCATION).delete() + } + + private void loadH2FromBackup() { + println "Restoring H2 from backup location." + Sql sql = connectToSql() + sql.execute("DROP ALL OBJECTS") + sql.execute("RUNSCRIPT FROM ?", [H2_BACKUP_LOCATION]) + } + + private Sql connectToSql() { + Sql.newInstance('jdbc:h2:file:/tmp/myApplicationDb;AUTO_SERVER=TRUE', 'sa', '', 'org.h2.Driver') + } +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/configuration/CustomPropertiesConfigurationTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/configuration/CustomPropertiesConfigurationTests.groovy index 74ecb9796..4113b372c 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/configuration/CustomPropertiesConfigurationTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/configuration/CustomPropertiesConfigurationTests.groovy @@ -1,54 +1,24 @@ package edu.internet2.tier.shibboleth.admin.ui.configuration -import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import edu.internet2.tier.shibboleth.admin.ui.domain.CustomEntityAttributeDefinition -import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects import edu.internet2.tier.shibboleth.admin.ui.repository.CustomEntityAttributeDefinitionRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.RoleRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.UserRepository import edu.internet2.tier.shibboleth.admin.ui.service.CustomEntityAttributesDefinitionService -import edu.internet2.tier.shibboleth.admin.ui.service.CustomEntityAttributesDefinitionServiceImpl - -import javax.persistence.EntityManager - -import org.opensaml.saml.metadata.resolver.MetadataResolver import org.springframework.beans.factory.annotation.Autowired -import org.springframework.beans.factory.annotation.Qualifier -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest -import org.springframework.boot.test.context.SpringBootTest -import org.springframework.boot.test.context.TestConfiguration -import org.springframework.context.annotation.Bean -import org.springframework.data.jpa.repository.config.EnableJpaRepositories -import org.springframework.security.core.userdetails.UsernameNotFoundException -import org.springframework.test.context.ActiveProfiles -import org.springframework.test.context.ContextConfiguration - -import spock.lang.Specification /** * Tests for edu.internet2.tier.shibboleth.admin.ui.configuration.CustomPropertiesConfiguration */ -@DataJpaTest -@ContextConfiguration(classes=[CoreShibUiConfiguration, InternationalizationConfiguration, SearchConfiguration, edu.internet2.tier.shibboleth.admin.ui.configuration.TestConfiguration]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan("edu.internet2.tier.shibboleth.admin.ui") -class CustomPropertiesConfigurationTests extends Specification { +class CustomPropertiesConfigurationTests extends AbstractBaseDataJpaTest { @Autowired - @Qualifier(value="customPropertiesConfiguration") CustomPropertiesConfiguration configUnderTest @Autowired CustomEntityAttributesDefinitionService ceadService @Autowired - CustomEntityAttributeDefinitionRepository repository; - - @Autowired - EntityManager entityManager + CustomEntityAttributeDefinitionRepository repository def "Updating Custom Entity Attribute Definitions will update the CustomPropertiesConfiguration automatically"() { given: 'Test defaults loaded (ie no CEADs in DB)' @@ -89,4 +59,4 @@ class CustomPropertiesConfigurationTests extends Specification { ceadService.getAllDefinitions().size() == 1 configUnderTest.getOverrides().size() == 11 } -} +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/configuration/TestMetadataResolverValidationConfiguration.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/configuration/TestMetadataResolverValidationConfiguration.groovy index d5c2f4f29..5ccf3efea 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/configuration/TestMetadataResolverValidationConfiguration.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/configuration/TestMetadataResolverValidationConfiguration.groovy @@ -1,19 +1,16 @@ package edu.internet2.tier.shibboleth.admin.ui.configuration -import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolverValidationService -import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolverValidator -import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ResourceBackedMetadataResolverValidator - +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator.IMetadataResolverValidator +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator.MetadataResolverValidationService +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator.ResourceBackedIMetadataResolverValidator import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration - @Configuration class TestMetadataResolverValidationConfiguration { - @Bean - ResourceBackedMetadataResolverValidator resourceBackedMetadataResolverValidator() { - new ResourceBackedMetadataResolverValidator() + ResourceBackedIMetadataResolverValidator resourceBackedMetadataResolverValidator() { + new ResourceBackedIMetadataResolverValidator() } @Bean @@ -22,8 +19,8 @@ class TestMetadataResolverValidationConfiguration { } @Bean - MetadataResolverValidationService metadataResolverValidationServiceOneValidator(List metadataResolverValidators) { + MetadataResolverValidationService metadataResolverValidationService(List metadataResolverValidators) { new MetadataResolverValidationService(metadataResolverValidators) } -} +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/EntitiesControllerTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/EntitiesControllerTests.groovy index 5affa3e26..0261fceb5 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/EntitiesControllerTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/EntitiesControllerTests.groovy @@ -1,50 +1,35 @@ package edu.internet2.tier.shibboleth.admin.ui.controller -import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.TestConfiguration +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects import edu.internet2.tier.shibboleth.admin.ui.repository.EntityDescriptorRepository -import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService import edu.internet2.tier.shibboleth.admin.ui.service.JPAEntityDescriptorServiceImpl -import edu.internet2.tier.shibboleth.admin.ui.service.JPAEntityServiceImpl import net.shibboleth.ext.spring.resource.ResourceHelper import net.shibboleth.utilities.java.support.resolver.CriteriaSet - import org.opensaml.core.criterion.EntityIdCriterion import org.opensaml.saml.metadata.resolver.impl.ResourceBackedMetadataResolver import org.spockframework.spring.SpringBean import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest import org.springframework.core.io.ClassPathResource -import org.springframework.data.jpa.repository.config.EnableJpaRepositories import org.springframework.http.HttpHeaders import org.springframework.http.MediaType -import org.springframework.test.context.ContextConfiguration import org.springframework.test.web.servlet.setup.MockMvcBuilders -import spock.lang.Specification import spock.lang.Subject import static org.hamcrest.Matchers.is import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.* +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.header +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status -@DataJpaTest -@ContextConfiguration(classes=[CoreShibUiConfiguration, SearchConfiguration, TestConfiguration, InternationalizationConfiguration]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan("edu.internet2.tier.shibboleth.admin.ui") -class EntitiesControllerTests extends Specification { +class EntitiesControllerTests extends AbstractBaseDataJpaTest { @Autowired JPAEntityDescriptorServiceImpl serviceImpl - - @Autowired - UserService userService - - def openSamlObjects = new OpenSamlObjects().with { - init() + + // Yeah, the setup here is dumb, but the order here is important and we don't need to repeat it, so leave all this alone + OpenSamlObjects openSamlObjects = new OpenSamlObjects().with { + it.init() it } @@ -56,7 +41,7 @@ class EntitiesControllerTests extends Specification { initialize() it } - + // This stub will spit out the results from the resolver instead of actually finding them in the DB @SpringBean EntityDescriptorRepository edr = Stub(EntityDescriptorRepository) { @@ -66,7 +51,7 @@ class EntitiesControllerTests extends Specification { @Subject def controller - def mockMvc + def mockMvc def setup() { controller = new EntitiesController() diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorControllerTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorControllerTests.groovy index 74ca259a0..5f14adf1c 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorControllerTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorControllerTests.groovy @@ -1,51 +1,33 @@ package edu.internet2.tier.shibboleth.admin.ui.controller import com.fasterxml.jackson.databind.ObjectMapper -import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.TestConfiguration +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import edu.internet2.tier.shibboleth.admin.ui.domain.EntityDescriptor -import edu.internet2.tier.shibboleth.admin.ui.exception.ObjectIdExistsException +import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.AssertionConsumerServiceRepresentation +import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.EntityDescriptorRepresentation import edu.internet2.tier.shibboleth.admin.ui.exception.EntityNotFoundException import edu.internet2.tier.shibboleth.admin.ui.exception.ForbiddenException +import edu.internet2.tier.shibboleth.admin.ui.exception.InvalidPatternMatchException +import edu.internet2.tier.shibboleth.admin.ui.exception.ObjectIdExistsException import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects import edu.internet2.tier.shibboleth.admin.ui.repository.EntityDescriptorRepository import edu.internet2.tier.shibboleth.admin.ui.security.model.Group import edu.internet2.tier.shibboleth.admin.ui.security.model.Ownership import edu.internet2.tier.shibboleth.admin.ui.security.model.Role import edu.internet2.tier.shibboleth.admin.ui.security.model.User -import edu.internet2.tier.shibboleth.admin.ui.security.repository.GroupsRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.OwnershipRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.RoleRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.UserRepository -import edu.internet2.tier.shibboleth.admin.ui.security.service.GroupServiceForTesting -import edu.internet2.tier.shibboleth.admin.ui.security.service.GroupServiceImpl -import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService import edu.internet2.tier.shibboleth.admin.ui.service.EntityDescriptorVersionService import edu.internet2.tier.shibboleth.admin.ui.service.EntityService import edu.internet2.tier.shibboleth.admin.ui.service.JPAEntityDescriptorServiceImpl import edu.internet2.tier.shibboleth.admin.ui.util.RandomGenerator import edu.internet2.tier.shibboleth.admin.ui.util.TestObjectGenerator +import edu.internet2.tier.shibboleth.admin.ui.util.WithMockAdmin import edu.internet2.tier.shibboleth.admin.util.EntityDescriptorConversionUtils import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest -import org.springframework.context.annotation.Bean -import org.springframework.context.annotation.Profile -import org.springframework.data.jpa.repository.config.EnableJpaRepositories -import org.springframework.security.core.Authentication -import org.springframework.security.core.context.SecurityContext -import org.springframework.security.core.context.SecurityContextHolder import org.springframework.security.test.context.support.WithMockUser -import org.springframework.test.annotation.DirtiesContext -import org.springframework.test.annotation.Rollback -import org.springframework.test.context.ActiveProfiles -import org.springframework.test.context.ContextConfiguration import org.springframework.test.web.servlet.setup.MockMvcBuilders import org.springframework.transaction.annotation.Transactional import org.springframework.web.client.RestTemplate -import spock.lang.Specification +import org.springframework.web.util.NestedServletException import spock.lang.Subject import javax.persistence.EntityManager @@ -53,140 +35,98 @@ import javax.persistence.EntityManager import static org.hamcrest.CoreMatchers.containsString import static org.springframework.http.MediaType.APPLICATION_JSON import static org.springframework.http.MediaType.APPLICATION_XML -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.* -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.* - -@DataJpaTest -@ContextConfiguration(classes=[CoreShibUiConfiguration, SearchConfiguration, TestConfiguration, InternationalizationConfiguration, LocalConfig]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan("edu.internet2.tier.shibboleth.admin.ui") -@DirtiesContext -@ActiveProfiles(["local"]) -class EntityDescriptorControllerTests extends Specification { +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.header +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status + +class EntityDescriptorControllerTests extends AbstractBaseDataJpaTest { @Autowired EntityDescriptorRepository entityDescriptorRepository @Autowired EntityManager entityManager - + @Autowired EntityService entityService - - @Autowired - GroupServiceForTesting groupService - - @Autowired - OwnershipRepository ownershipRepository - + @Autowired - RoleRepository roleRepository + TestObjectGenerator generator @Autowired - JPAEntityDescriptorServiceImpl service - + ObjectMapper mapper + @Autowired - UserRepository userRepository - + OpenSamlObjects openSamlObjects + @Autowired - UserService userService - - RandomGenerator randomGenerator - TestObjectGenerator generator + JPAEntityDescriptorServiceImpl jpaEntityDescriptorService - def mapper - + RandomGenerator randomGenerator def mockRestTemplate = Mock(RestTemplate) - - def openSamlObjects = new OpenSamlObjects().with { - init() - it - } - def mockMvc @Subject def controller - Authentication authentication = Mock() - SecurityContext securityContext = Mock() EntityDescriptorVersionService versionService = Mock() @Transactional def setup() { - groupService.ensureAdminGroupExists() - generator = new TestObjectGenerator() - randomGenerator = new RandomGenerator() - mapper = new ObjectMapper() + openSamlObjects.init() - service.userService = userService + Group gb = new Group() + gb.setResourceId("testingGroupBBB") + gb.setName("Group BBB") + gb.setValidationRegex("^(?:https?:\\/\\/)?(?:[^.]+\\.)?shib\\.org(\\/.*)?\$") + gb = groupService.createGroup(gb) + + randomGenerator = new RandomGenerator() controller = new EntityDescriptorController(versionService) controller.openSamlObjects = openSamlObjects - controller.entityDescriptorService = service + controller.entityDescriptorService = jpaEntityDescriptorService controller.restTemplate = mockRestTemplate mockMvc = MockMvcBuilders.standaloneSetup(controller).build() - - securityContext.getAuthentication() >> authentication - SecurityContextHolder.setContext(securityContext) - - if (roleRepository.count() == 0) { - def roles = [new Role().with { - name = 'ROLE_ADMIN' - it - }, new Role().with { - name = 'ROLE_USER' - it - }, new Role().with { - name = 'ROLE_NONE' - it - }] - roles.each { - roleRepository.save(it) - } - } - - Optional adminRole = roleRepository.findByName("ROLE_ADMIN") - User adminUser = new User(username: "admin", roles: [adminRole.get()], password: "foo") - userService.save(adminUser) - + Optional userRole = roleRepository.findByName("ROLE_USER") User user = new User(username: "someUser", roles:[userRole.get()], password: "foo") + user.setGroup(gb) userService.save(user) EntityDescriptorConversionUtils.setOpenSamlObjects(openSamlObjects) EntityDescriptorConversionUtils.setEntityService(entityService) } - @Rollback - @WithMockUser(value = "admin", roles = ["ADMIN"]) + @WithMockAdmin def 'DELETE as admin'() { given: - authentication.getName() >> 'admin' def entityDescriptor = new EntityDescriptor(resourceId: 'uuid-1', entityID: 'eid1', serviceProviderName: 'sp1', serviceEnabled: false) entityDescriptorRepository.save(entityDescriptor) - + when: 'pre-check' entityManager.flush() - + then: entityDescriptorRepository.findAll().size() == 1 - + when: def result = mockMvc.perform(delete("/api/EntityDescriptor/uuid-1")) - + then: result.andExpect(status().isNoContent()) entityDescriptorRepository.findByResourceId("uuid-1") == null entityDescriptorRepository.findAll().size() == 0 } - - @Rollback - @WithMockUser(value = "admin", roles = ["ADMIN"]) + + @WithMockAdmin def 'GET /EntityDescriptors with empty repository as admin'() { given: - authentication.getName() >> 'admin' - def expectedEmptyListResponseBody = '[]' def expectedResponseContentType = APPLICATION_JSON def expectedHttpResponseStatus = status().isOk() @@ -200,42 +140,35 @@ class EntityDescriptorControllerTests extends Specification { .andExpect(content().json(expectedEmptyListResponseBody)) } - @Rollback - @WithMockUser(value = "admin", roles = ["ADMIN"]) + @WithMockAdmin def 'GET /EntityDescriptors with 1 record in repository as admin'() { given: - authentication.getName() >> 'admin' - - def entityDescriptor = new EntityDescriptor(resourceId: 'uuid-1', entityID: 'eid1', serviceProviderName: 'sp1', serviceEnabled: true, idOfOwner: "admingroup") + def entityDescriptor = new EntityDescriptor(resourceId: 'uuid-1', entityID: 'eid1', serviceProviderName: 'sp1', serviceEnabled: true, idOfOwner: "admingroup") entityDescriptorRepository.saveAndFlush(entityDescriptor) - + def expectedResponseContentType = APPLICATION_JSON def expectedHttpResponseStatus = status().isOk() - when: + when: def result = mockMvc.perform(get('/api/EntityDescriptors')) - then: + then: result.andExpect(expectedHttpResponseStatus).andExpect(content().contentType(expectedResponseContentType)) - .andExpect(jsonPath("\$.[0].id").value("uuid-1")) - .andExpect(jsonPath("\$.[0].entityId").value("eid1")) - .andExpect(jsonPath("\$.[0].serviceEnabled").value(true)) - .andExpect(jsonPath("\$.[0].idOfOwner").value("admingroup")) + .andExpect(jsonPath("\$.[0].id").value("uuid-1")) + .andExpect(jsonPath("\$.[0].entityId").value("eid1")) + .andExpect(jsonPath("\$.[0].serviceEnabled").value(true)) + .andExpect(jsonPath("\$.[0].idOfOwner").value("admingroup")) } - @Rollback - @WithMockUser(value = "admin", roles = ["ADMIN"]) + @WithMockAdmin def 'GET /EntityDescriptors with 2 records in repository as admin'() { given: - authentication.getName() >> 'admin' - - def entityDescriptorOne = new EntityDescriptor(resourceId: 'uuid-1', entityID: 'eid1', serviceProviderName: 'sp1', serviceEnabled: true, idOfOwner: "admingroup") def entityDescriptorTwo = new EntityDescriptor(resourceId: 'uuid-2', entityID: 'eid2', serviceProviderName: 'sp2', serviceEnabled: false, idOfOwner: "admingroup") - + entityDescriptorRepository.saveAndFlush(entityDescriptorOne) entityDescriptorRepository.saveAndFlush(entityDescriptorTwo) - + def expectedResponseContentType = APPLICATION_JSON def expectedHttpResponseStatus = status().isOk() @@ -253,20 +186,86 @@ class EntityDescriptorControllerTests extends Specification { .andExpect(jsonPath("\$.[1].entityId").value("eid2")) .andExpect(jsonPath("\$.[1].serviceEnabled").value(false)) .andExpect(jsonPath("\$.[1].idOfOwner").value("admingroup")) - } - - @Rollback - @WithMockUser(value = "admin", roles = ["ADMIN"]) + } + + @WithMockUser(value = "someUser", roles = ["USER"]) + def 'POST create new - entity id does not match pattern'() { + when: + def expectedEntityId = 'https://google.com/blah/blah' + EntityDescriptorRepresentation edRep = new EntityDescriptorRepresentation() + edRep.setEntityId(expectedEntityId) + edRep.setServiceProviderName("spName") + + def edRepJson = mapper.writeValueAsString(edRep) + + then: + try { + mockMvc.perform(post('/api/EntityDescriptor').contentType(APPLICATION_JSON).content(edRepJson)) + false + } catch (NestedServletException expected) { + expected.getCause() instanceof InvalidPatternMatchException + } + } + + @WithMockUser(value = "someUser", roles = ["USER"]) + def 'POST create new - verifying validation on entityID and ACS locations'() { + given: + def expectedEntityId = 'https://shib.org/blah/blah' + EntityDescriptorRepresentation edRep = new EntityDescriptorRepresentation() + edRep.setEntityId(expectedEntityId) + edRep.setServiceProviderName("spName") + + def acsList = new ArrayList() + AssertionConsumerServiceRepresentation acsRep = new AssertionConsumerServiceRepresentation() + acsRep.setIndex(0) + acsRep.setLocationUrl("http://logout.shib.org/dologout") + acsList.add(acsRep) + edRep.setAssertionConsumerServices(acsList) + + def edRepJson = mapper.writeValueAsString(edRep) + + when: + def result = mockMvc.perform(post('/api/EntityDescriptor').contentType(APPLICATION_JSON).content(edRepJson)) + + then: + result.andExpect(status().isCreated()) + .andExpect(content().contentType(APPLICATION_JSON)) + .andExpect(jsonPath("\$.entityId").value("https://shib.org/blah/blah")) + .andExpect(jsonPath("\$.serviceEnabled").value(false)) + .andExpect(jsonPath("\$.idOfOwner").value("testingGroupBBB")) + + when: "ACS url is bad" + expectedEntityId = 'https://shib.org/blah/blah/again' + edRep = new EntityDescriptorRepresentation() + edRep.setEntityId(expectedEntityId) + edRep.setServiceProviderName("spName") + + acsList = new ArrayList() + acsRep = new AssertionConsumerServiceRepresentation() + acsRep.setIndex(0) + acsRep.setLocationUrl("http://shib.com/dologout") + acsList.add(acsRep) + edRep.setAssertionConsumerServices(acsList) + edRepJson = mapper.writeValueAsString(edRep) + + then: + try { + mockMvc.perform(post('/api/EntityDescriptor').contentType(APPLICATION_JSON).content(edRepJson)) + false + } catch (NestedServletException expected) { + expected.getCause() instanceof InvalidPatternMatchException + } + } + + @WithMockAdmin def 'POST /EntityDescriptor and successfully create new record'() { given: - authentication.getName() >> 'admin' - def expectedEntityId = 'https://shib' def expectedSpName = 'sp1' def expectedResponseHeader = 'Location' def expectedResponseHeaderValue = "/api/EntityDescriptor/" - def postedJsonBody = """ + def postedJsonBody = """ { "serviceProviderName": "$expectedSpName", "entityId": "$expectedEntityId", @@ -280,7 +279,7 @@ class EntityDescriptorControllerTests extends Specification { "securityInfo": null, "assertionConsumerServices": null, "current": false - } + } """ when: @@ -294,18 +293,15 @@ class EntityDescriptorControllerTests extends Specification { .andExpect(jsonPath("\$.idOfOwner").value("admingroup")) } - @Rollback @WithMockUser(value = "someUser", roles = ["USER"]) def 'POST /EntityDescriptor as user disallows enabling'() { given: - authentication.getName() >> 'someUser' - def expectedEntityId = 'https://shib' def expectedSpName = 'sp1' when: def postedJsonBody = """ - { + { "serviceProviderName": "$expectedSpName", "entityId": "$expectedEntityId", "organization": null, @@ -321,9 +317,9 @@ class EntityDescriptorControllerTests extends Specification { "assertionConsumerServices": null, "relyingPartyOverrides": null, "attributeRelease": null - } + } """ - + then: try { mockMvc.perform(post('/api/EntityDescriptor').contentType(APPLICATION_JSON).content(postedJsonBody)) @@ -333,13 +329,10 @@ class EntityDescriptorControllerTests extends Specification { } } - @Rollback - @WithMockUser(value = "admin", roles = ["ADMIN"]) + @WithMockAdmin def 'POST /EntityDescriptor record already exists'() { given: - authentication.getName() >> 'admin' - - def postedJsonBody = """ + def postedJsonBody = """ { "serviceProviderName": "sp1", "entityId": "eid1", @@ -356,17 +349,17 @@ class EntityDescriptorControllerTests extends Specification { "assertionConsumerServices": null, "relyingPartyOverrides": null, "attributeRelease": null - } + } """ when: def entityDescriptorOne = new EntityDescriptor(resourceId: 'uuid-1', entityID: 'eid1', serviceProviderName: 'sp1', serviceEnabled: true) def entityDescriptorTwo = new EntityDescriptor(resourceId: 'uuid-2', entityID: 'eid2', serviceProviderName: 'sp2', serviceEnabled: false) - + entityDescriptorRepository.save(entityDescriptorOne) entityDescriptorRepository.save(entityDescriptorTwo) entityManager.flush() - + then: try { mockMvc.perform(post('/api/EntityDescriptor').contentType(APPLICATION_JSON).content(postedJsonBody)) @@ -375,14 +368,10 @@ class EntityDescriptorControllerTests extends Specification { e instanceof ObjectIdExistsException } } - - @Rollback - @WithMockUser(value = "admin", roles = ["ADMIN"]) - def 'GET /EntityDescriptor/{resourceId} non-existent'() { - when: - authentication.getName() >> 'admin' - then: + @WithMockAdmin + def 'GET /EntityDescriptor/{resourceId} non-existent'() { + expect: try { mockMvc.perform(get("/api/EntityDescriptor/uuid-1")) } @@ -390,19 +379,17 @@ class EntityDescriptorControllerTests extends Specification { e instanceof EntityNotFoundException } } - - @Rollback - @WithMockUser(value = "admin", roles = ["ADMIN"]) + + @WithMockAdmin def 'GET /EntityDescriptor/{resourceId} existing'() { given: - authentication.getName() >> 'admin' def entityDescriptorOne = new EntityDescriptor(resourceId: 'uuid-1', entityID: 'eid1', serviceProviderName: 'sp1', serviceEnabled: true, idOfOwner: "admingroup") entityDescriptorRepository.save(entityDescriptorOne) entityManager.flush() - + when: - def result = mockMvc.perform(get("/api/EntityDescriptor/uuid-1")) - + def result = mockMvc.perform(get("/api/EntityDescriptor/uuid-1")) + then: result.andExpect(status().isOk()) .andExpect(jsonPath("\$.entityId").value("eid1")) @@ -411,23 +398,20 @@ class EntityDescriptorControllerTests extends Specification { .andExpect(jsonPath("\$.idOfOwner").value("admingroup")) } - @Rollback @WithMockUser(value = "someUser", roles = ["USER"]) def 'GET /EntityDescriptor/{resourceId} existing, validate group access'() { given: - authentication.getName() >> 'someUser' Group g = userService.getCurrentUserGroup() - + def entityDescriptorOne = new EntityDescriptor(resourceId: 'uuid-1', entityID: 'eid1', serviceProviderName: 'sp1', serviceEnabled: true, idOfOwner: "someUser") def entityDescriptorTwo = new EntityDescriptor(resourceId: 'uuid-2', entityID: 'eid2', serviceProviderName: 'sp2', serviceEnabled: false, idOfOwner: Group.ADMIN_GROUP.getOwnerId()) - + entityDescriptorRepository.saveAndFlush(entityDescriptorOne) entityDescriptorRepository.saveAndFlush(entityDescriptorTwo) - + ownershipRepository.saveAndFlush(new Ownership(g, entityDescriptorOne)) ownershipRepository.saveAndFlush(new Ownership(Group.ADMIN_GROUP, entityDescriptorTwo)) - - + when: def result = mockMvc.perform(get("/api/EntityDescriptor/uuid-1")) @@ -439,19 +423,17 @@ class EntityDescriptorControllerTests extends Specification { .andExpect(jsonPath("\$.idOfOwner").value("someUser")) } - @Rollback @WithMockUser(value = "someUser", roles = ["USER"]) def 'GET /EntityDescriptor/{resourceId} existing, owned by some other user'() { when: - authentication.getName() >> 'someUser' Group g = userService.getCurrentUserGroup() - + def entityDescriptorOne = new EntityDescriptor(resourceId: 'uuid-1', entityID: 'eid1', serviceProviderName: 'sp1', serviceEnabled: true, idOfOwner: g.getOwnerId()) def entityDescriptorTwo = new EntityDescriptor(resourceId: 'uuid-2', entityID: 'eid2', serviceProviderName: 'sp2', serviceEnabled: false, idOfOwner: Group.ADMIN_GROUP.getOwnerId()) - + entityDescriptorRepository.saveAndFlush(entityDescriptorOne) entityDescriptorRepository.saveAndFlush(entityDescriptorTwo) - + ownershipRepository.saveAndFlush(new Ownership(g, entityDescriptorOne)) ownershipRepository.saveAndFlush(new Ownership(Group.ADMIN_GROUP, entityDescriptorTwo)) @@ -461,15 +443,13 @@ class EntityDescriptorControllerTests extends Specification { } catch (Exception e) { e instanceof ForbiddenException - } + } } - @Rollback - @WithMockUser(value = "admin", roles = ["ADMIN"]) + @WithMockAdmin def 'GET /EntityDescriptor/{resourceId} existing (xml)'() { given: - authentication.getName() >> 'admin' - def entityDescriptorOne = new EntityDescriptor(resourceId: 'uuid-1', entityID: 'eid1', serviceProviderName: 'sp1', serviceEnabled: true) + def entityDescriptorOne = new EntityDescriptor(resourceId: 'uuid-1', entityID: 'eid1', serviceProviderName: 'sp1', serviceEnabled: true) entityDescriptorOne.setElementLocalName("EntityDescriptor") entityDescriptorOne.setNamespacePrefix("md") entityDescriptorOne.setNamespaceURI("urn:oasis:names:tc:SAML:2.0:metadata") @@ -487,13 +467,11 @@ class EntityDescriptorControllerTests extends Specification { result.andExpect(status().isOk()).andExpect(content().xml(expectedXML)) } - @Rollback @WithMockUser(value = "someUser", roles = ["USER"]) def 'GET /EntityDescriptor/{resourceId} existing (xml), user-owned'() { given: - authentication.getName() >> 'someUser' Group g = userService.getCurrentUserGroup() - + def entityDescriptorOne = new EntityDescriptor(resourceId: 'uuid-1', entityID: 'eid1', serviceProviderName: 'sp1', serviceEnabled: true, idOfOwner: g.getOwnerId()) entityDescriptorOne.setElementLocalName("EntityDescriptor") entityDescriptorOne.setNamespacePrefix("md") @@ -512,20 +490,18 @@ class EntityDescriptorControllerTests extends Specification { result.andExpect(status().isOk()).andExpect(content().xml(expectedXML)) } - @Rollback @WithMockUser(value = "someUser", roles = ["USER"]) def 'GET /EntityDescriptor/{resourceId} existing (xml), other user-owned'() { when: - authentication.getName() >> 'someUser' Group g = Group.ADMIN_GROUP - + def entityDescriptorOne = new EntityDescriptor(resourceId: 'uuid-1', entityID: 'eid1', serviceProviderName: 'sp1', serviceEnabled: true, idOfOwner: g.getOwnerId()) entityDescriptorOne.setElementLocalName("EntityDescriptor") entityDescriptorOne.setNamespacePrefix("md") entityDescriptorOne.setNamespaceURI("urn:oasis:names:tc:SAML:2.0:metadata") entityDescriptorRepository.save(entityDescriptorOne) entityManager.flush() - + then: try { mockMvc.perform(get("/api/EntityDescriptor/$providedResourceId").accept(APPLICATION_XML)) @@ -535,12 +511,9 @@ class EntityDescriptorControllerTests extends Specification { } } - @Rollback - @WithMockUser(value = "admin", roles = ["ADMIN"]) + @WithMockAdmin def "POST /EntityDescriptor handles XML happily"() { given: - authentication.getName() >> 'admin' - def postedBody = ''' @@ -574,18 +547,16 @@ class EntityDescriptorControllerTests extends Specification { .andExpect(jsonPath("\$.serviceEnabled").value(false)) .andExpect(jsonPath("\$.idOfOwner").value("admingroup")) .andExpect(jsonPath("\$.serviceProviderSsoDescriptor.protocolSupportEnum").value("SAML 2")) - .andExpect(jsonPath("\$.serviceProviderSsoDescriptor.nameIdFormats[0]").value("urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified")) + .andExpect(jsonPath("\$.serviceProviderSsoDescriptor.nameIdFormats[0]").value("urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified")) .andExpect(jsonPath("\$.assertionConsumerServices[0].binding").value("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST")) .andExpect(jsonPath("\$.assertionConsumerServices[0].makeDefault").value(false)) .andExpect(jsonPath("\$.assertionConsumerServices[0].locationUrl").value("https://test.scaldingspoon.org/test1/acs")) } - @Rollback - @WithMockUser(value = "admin", roles = ["ADMIN"]) + @WithMockAdmin def "POST /EntityDescriptor returns error for duplicate entity id"() { when: - authentication.getName() >> 'admin' def postedBody = ''' @@ -608,11 +579,11 @@ class EntityDescriptorControllerTests extends Specification { def spName = randomGenerator.randomString() def entityDescriptorOne = new EntityDescriptor(resourceId: 'uuid-1', entityID: 'eid1', serviceProviderName: 'sp1', serviceEnabled: true) def entityDescriptorTwo = new EntityDescriptor(resourceId: 'uuid-2', entityID: 'http://test.scaldingspoon.org/test1', serviceProviderName: 'sp2', serviceEnabled: false) - + entityDescriptorRepository.save(entityDescriptorOne) entityDescriptorRepository.save(entityDescriptorTwo) entityManager.flush() - + then: try { mockMvc.perform(post("/api/EntityDescriptor").contentType(APPLICATION_XML).content(postedBody).param("spName", spName)) @@ -622,22 +593,19 @@ class EntityDescriptorControllerTests extends Specification { } } - @Rollback - @WithMockUser(value = "admin", roles = ["ADMIN"]) + @WithMockAdmin def "PUT /EntityDescriptor updates entity descriptors properly as admin"() { given: - authentication.getName() >> 'admin' - def entityDescriptorTwo = new EntityDescriptor(resourceId: 'uuid-2', entityID: 'eid2', serviceProviderName: 'sp2', serviceEnabled: false, idOfOwner: Group.ADMIN_GROUP.getOwnerId()) - + entityDescriptorTwo = entityDescriptorRepository.save(entityDescriptorTwo) entityManager.flush() entityManager.clear() - def updatedEntityDescriptorRepresentation = service.createRepresentationFromDescriptor(entityDescriptorTwo) + def updatedEntityDescriptorRepresentation = jpaEntityDescriptorService.createRepresentationFromDescriptor(entityDescriptorTwo) updatedEntityDescriptorRepresentation.setServiceProviderName("newName") def postedJsonBody = mapper.writeValueAsString(updatedEntityDescriptorRepresentation) - + when: def result = mockMvc.perform(put("/api/EntityDescriptor/uuid-2").contentType(APPLICATION_JSON).content(postedJsonBody)) @@ -649,21 +617,19 @@ class EntityDescriptorControllerTests extends Specification { .andExpect(jsonPath("\$.serviceProviderName").value("newName")) } - @Rollback @WithMockUser(value = "someUser", roles = ["USER"]) - def "PUT /EntityDescriptor disallows non-admin user from enabling"() { + def "PUT /EntityDescriptor disallows non-admin user from enabling"() { given: - authentication.getName() >> 'someUser' Group g = userService.getCurrentUserGroup() - - def entityDescriptorOne = new EntityDescriptor(resourceId: 'uuid-1', entityID: 'eid1', serviceProviderName: 'sp1', serviceEnabled: false, idOfOwner: g.getOwnerId()) + + def entityDescriptorOne = new EntityDescriptor(resourceId: 'uuid-1', entityID: 'eid1', serviceProviderName: 'sp1', serviceEnabled: false, idOfOwner: g.getOwnerId()) entityDescriptorOne = entityDescriptorRepository.save(entityDescriptorOne) entityManager.flush() when: entityDescriptorOne.serviceEnabled = true entityDescriptorOne.resourceId = 'uuid-1' - def updatedEntityDescriptorRepresentation = service.createRepresentationFromDescriptor(entityDescriptorOne) + def updatedEntityDescriptorRepresentation = jpaEntityDescriptorService.createRepresentationFromDescriptor(entityDescriptorOne) updatedEntityDescriptorRepresentation.version = entityDescriptorOne.hashCode() def postedJsonBody = mapper.writeValueAsString(updatedEntityDescriptorRepresentation) @@ -676,21 +642,19 @@ class EntityDescriptorControllerTests extends Specification { } } - @Rollback @WithMockUser(value = "someUser", roles = ["USER"]) - def "PUT /EntityDescriptor denies the request if the PUTing user is not an ADMIN and not the createdBy user"() { + def "PUT /EntityDescriptor denies the request if the PUTing user is not an ADMIN and not the createdBy user"() { given: - authentication.getName() >> 'someUser' Group g = userService.getCurrentUserGroup() - - def entityDescriptorOne = new EntityDescriptor(resourceId: 'uuid-1', entityID: 'eid1', serviceProviderName: 'sp1', serviceEnabled: true, idOfOwner: g.getOwnerId()) + + def entityDescriptorOne = new EntityDescriptor(resourceId: 'uuid-1', entityID: 'eid1', serviceProviderName: 'sp1', serviceEnabled: true, idOfOwner: g.getOwnerId()) entityDescriptorOne = entityDescriptorRepository.save(entityDescriptorOne) entityManager.flush() when: entityDescriptorOne.serviceProviderName = 'foo' entityDescriptorOne.resourceId = 'uuid-1' - def updatedEntityDescriptorRepresentation = service.createRepresentationFromDescriptor(entityDescriptorOne) + def updatedEntityDescriptorRepresentation = jpaEntityDescriptorService.createRepresentationFromDescriptor(entityDescriptorOne) updatedEntityDescriptorRepresentation.version = entityDescriptorOne.hashCode() def postedJsonBody = mapper.writeValueAsString(updatedEntityDescriptorRepresentation) @@ -703,21 +667,18 @@ class EntityDescriptorControllerTests extends Specification { } } - @Rollback - @WithMockUser(value = "admin", roles = ["ADMIN"]) + @WithMockAdmin def "PUT /EntityDescriptor throws a concurrent mod exception if the version numbers don't match"() { - given: - authentication.getName() >> 'admin' - - def entityDescriptorOne = new EntityDescriptor(resourceId: 'uuid-1', entityID: 'eid1', serviceProviderName: 'sp1', serviceEnabled: true, idOfOwner: Group.ADMIN_GROUP.getOwnerId()) + given: + def entityDescriptorOne = new EntityDescriptor(resourceId: 'uuid-1', entityID: 'eid1', serviceProviderName: 'sp1', serviceEnabled: true, idOfOwner: Group.ADMIN_GROUP.getOwnerId()) entityDescriptorOne = entityDescriptorRepository.save(entityDescriptorOne) entityManager.flush() when: entityDescriptorOne.serviceProviderName = 'foo' entityDescriptorOne.resourceId = 'uuid-1' - def updatedEntityDescriptorRepresentation = service.createRepresentationFromDescriptor(entityDescriptorOne) - + def updatedEntityDescriptorRepresentation = jpaEntityDescriptorService.createRepresentationFromDescriptor(entityDescriptorOne) + def postedJsonBody = mapper.writeValueAsString(updatedEntityDescriptorRepresentation) then: @@ -725,22 +686,7 @@ class EntityDescriptorControllerTests extends Specification { mockMvc.perform(put("/api/EntityDescriptor/$resourceId").contentType(APPLICATION_JSON).content(postedJsonBody)) } catch (Exception e) { - e instanceof ConcurrentModificationException - } - } - - @org.springframework.boot.test.context.TestConfiguration - @Profile(value = "local") - static class LocalConfig { - @Bean - GroupServiceForTesting groupServiceForTesting(GroupsRepository repo, OwnershipRepository ownershipRepository) { - GroupServiceForTesting result = new GroupServiceForTesting(new GroupServiceImpl().with { - it.groupRepository = repo - it.ownershipRepository = ownershipRepository - return it - }) - result.ensureAdminGroupExists() - return result + e instanceof ConcurrentModificationException } } } \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorOwnershipIntegrationTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorOwnershipIntegrationTests.groovy index 59510ac27..6462482d0 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorOwnershipIntegrationTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorOwnershipIntegrationTests.groovy @@ -3,10 +3,12 @@ package edu.internet2.tier.shibboleth.admin.ui.controller import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.databind.SerializationFeature import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration import edu.internet2.tier.shibboleth.admin.ui.configuration.TestConfiguration +import edu.internet2.tier.shibboleth.admin.ui.domain.EntityDescriptor import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.EntityDescriptorRepresentation import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects import edu.internet2.tier.shibboleth.admin.ui.repository.EntityDescriptorRepository @@ -23,6 +25,7 @@ import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService import edu.internet2.tier.shibboleth.admin.ui.service.EntityDescriptorVersionService import edu.internet2.tier.shibboleth.admin.ui.service.EntityService import edu.internet2.tier.shibboleth.admin.ui.service.JPAEntityDescriptorServiceImpl +import edu.internet2.tier.shibboleth.admin.ui.util.WithMockAdmin import edu.internet2.tier.shibboleth.admin.util.EntityDescriptorConversionUtils import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.autoconfigure.domain.EntityScan @@ -51,47 +54,22 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. /** * Test to recreate an issue discovered while trying to validate fixes for other bugs - SHIBUI-2033 */ -@DataJpaTest -@ContextConfiguration(classes=[CoreShibUiConfiguration, SearchConfiguration, TestConfiguration, InternationalizationConfiguration, LocalConfig]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan("edu.internet2.tier.shibboleth.admin.ui") -@ActiveProfiles(["edoi-test"]) @Stepwise -class EntityDescriptorOwnershipIntegrationTests extends Specification { +class EntityDescriptorOwnershipIntegrationTests extends AbstractBaseDataJpaTest { @Autowired EntityDescriptorRepository entityDescriptorRepository - @Autowired - EntityManager entityManager - @Autowired EntityService entityService - - @Autowired - GroupServiceForTesting groupService - - @Autowired - OwnershipRepository ownershipRepository - + @Autowired - RoleRepository roleRepository + OpenSamlObjects openSamlObjects @Autowired JPAEntityDescriptorServiceImpl service - - @Autowired - UserRepository userRepository - - @Autowired - UserService userService def mockRestTemplate = Mock(RestTemplate) - def openSamlObjects = new OpenSamlObjects().with { - init() - it - } - Group cuGroup = new Group().with { it.name = "College Users" it.resourceId = "cu-group" @@ -105,8 +83,6 @@ class EntityDescriptorOwnershipIntegrationTests extends Specification { @Transactional def setup() { - groupService.clearAllForTesting() - EntityDescriptorVersionService versionService = Mock() controller = new EntityDescriptorController(versionService) controller.openSamlObjects = openSamlObjects @@ -115,26 +91,6 @@ class EntityDescriptorOwnershipIntegrationTests extends Specification { mockMvc = MockMvcBuilders.standaloneSetup(controller).build() - if (roleRepository.count() == 0) { - def roles = [new Role().with { - name = 'ROLE_ADMIN' - it - }, new Role().with { - name = 'ROLE_USER' - it - }, new Role().with { - name = 'ROLE_ENABLE' - it - }] - roles.each { - roleRepository.save(it) - } - } - - Optional adminRole = roleRepository.findByName("ROLE_ADMIN") - User adminUser = new User(username: "admin", roles: [adminRole.get()], password: "foo") - userService.save(adminUser) - Optional userRole = roleRepository.findByName("ROLE_USER") User user = new User(username: "someUser", roles:[userRole.get()], password: "foo") userService.save(user) @@ -143,7 +99,7 @@ class EntityDescriptorOwnershipIntegrationTests extends Specification { EntityDescriptorConversionUtils.setEntityService(entityService) } - @WithMockUser(value = "admin", roles = ["ADMIN"]) + @WithMockAdmin def "The test scenario"() { when:"step 1 - create new group" cuGroup = groupService.createGroup(cuGroup) @@ -185,11 +141,8 @@ class EntityDescriptorOwnershipIntegrationTests extends Specification { ownershipRepository.findAllByOwner(Group.ADMIN_GROUP).size() == 2 // admin user + entity descriptor when: "step 4 - change ownership of the ED" - String contentAsString = result.andReturn().getResponse().getContentAsString() - def mapper = new ObjectMapper() - mapper.enable(SerializationFeature.INDENT_OUTPUT) - mapper.registerModule(new JavaTimeModule()) - EntityDescriptorRepresentation edRep = mapper.readValue(contentAsString, EntityDescriptorRepresentation.class) + EntityDescriptor ed = entityDescriptorRepository.findByEntityID(expectedEntityId) + EntityDescriptorRepresentation edRep = service.createRepresentationFromDescriptor(ed) edRep.setIdOfOwner(cuGroup.getOwnerId()) service.update(edRep) @@ -197,20 +150,4 @@ class EntityDescriptorOwnershipIntegrationTests extends Specification { ownershipRepository.findAllByOwner(cuGroup).size() == 2 // someUser + entity descriptor ownershipRepository.findAllByOwner(Group.ADMIN_GROUP).size() == 1 // admin user } - - @org.springframework.boot.test.context.TestConfiguration - @Profile(value = "edoi-test") - static class LocalConfig { - @Bean - @Primary - GroupServiceForTesting groupServiceForTesting(GroupsRepository repo, OwnershipRepository ownershipRepository) { - GroupServiceForTesting result = new GroupServiceForTesting(new GroupServiceImpl().with { - it.groupRepository = repo - it.ownershipRepository = ownershipRepository - return it - }) - result.ensureAdminGroupExists() - return result - } - } } \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorVersionControllerTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorVersionControllerTests.groovy new file mode 100644 index 000000000..f5714441d --- /dev/null +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorVersionControllerTests.groovy @@ -0,0 +1,168 @@ +package edu.internet2.tier.shibboleth.admin.ui.controller + +import com.fasterxml.jackson.databind.ObjectMapper +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest +import edu.internet2.tier.shibboleth.admin.ui.domain.EntityDescriptor +import edu.internet2.tier.shibboleth.admin.ui.domain.Organization +import edu.internet2.tier.shibboleth.admin.ui.domain.OrganizationDisplayName +import edu.internet2.tier.shibboleth.admin.ui.domain.OrganizationName +import edu.internet2.tier.shibboleth.admin.ui.domain.OrganizationURL +import edu.internet2.tier.shibboleth.admin.ui.envers.EnversVersionServiceSupport +import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects +import edu.internet2.tier.shibboleth.admin.ui.repository.EntityDescriptorRepository +import edu.internet2.tier.shibboleth.admin.ui.security.model.Group +import edu.internet2.tier.shibboleth.admin.ui.security.model.Role +import edu.internet2.tier.shibboleth.admin.ui.security.model.User +import edu.internet2.tier.shibboleth.admin.ui.service.EntityDescriptorService +import edu.internet2.tier.shibboleth.admin.ui.service.EntityDescriptorVersionService +import edu.internet2.tier.shibboleth.admin.ui.service.EntityService +import edu.internet2.tier.shibboleth.admin.ui.service.EnversEntityDescriptorVersionService +import edu.internet2.tier.shibboleth.admin.ui.service.EnversMetadataResolverVersionService +import edu.internet2.tier.shibboleth.admin.ui.service.JPAEntityDescriptorServiceImpl +import edu.internet2.tier.shibboleth.admin.ui.service.MetadataResolverVersionService +import edu.internet2.tier.shibboleth.admin.ui.util.WithMockAdmin +import edu.internet2.tier.shibboleth.admin.util.EntityDescriptorConversionUtils +import groovy.json.JsonOutput +import groovy.json.JsonSlurper +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager +import org.springframework.boot.test.context.TestConfiguration +import org.springframework.context.annotation.Bean +import org.springframework.test.context.ContextConfiguration +import org.springframework.test.web.servlet.setup.MockMvcBuilders +import org.springframework.transaction.annotation.Transactional +import org.springframework.web.client.RestTemplate +import spock.lang.Subject + +import javax.persistence.EntityManager + +import static org.springframework.http.MediaType.APPLICATION_JSON +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status + +@ContextConfiguration(classes=[EDCLocalConfig]) +class EntityDescriptorVersionControllerTests extends AbstractBaseDataJpaTest { + @Autowired + EntityDescriptorRepository entityDescriptorRepository + + @Autowired + private TestEntityManager testEntityManager + + @Autowired + EntityService entityService + + @Autowired + JPAEntityDescriptorServiceImpl jpaEntityDescriptorService + + @Autowired + ObjectMapper mapper + + @Autowired + OpenSamlObjects openSamlObjects + + @Autowired + EntityDescriptorVersionService versionService + + def mockMvc + def mockRestTemplate = Mock(RestTemplate) + def resId + + @Subject + def controller + + @Transactional + def setup() { + openSamlObjects.init() + + Group gb = new Group() + gb.setResourceId("testingGroupBBB") + gb.setName("Group BBB") + gb.setValidationRegex("/^(?:https?:\\/\\/)?(?:[^.]+\\.)?shib\\.org(\\/.*)?\$/") + gb = groupService.createGroup(gb) + + controller = new EntityDescriptorController(versionService) + controller.openSamlObjects = openSamlObjects + controller.entityDescriptorService = jpaEntityDescriptorService + controller.restTemplate = mockRestTemplate + + mockMvc = MockMvcBuilders.standaloneSetup(controller).build() + + Optional userRole = roleRepository.findByName("ROLE_USER") + User user = new User(username: "someUser", roles:[userRole.get()], password: "foo") + user.setGroup(gb) + userService.save(user) + + EntityDescriptorConversionUtils.setOpenSamlObjects(openSamlObjects) + EntityDescriptorConversionUtils.setEntityService(entityService) + + // Because the audit is done with hibernate envers (which is done by a listener after a transaction commit), we have to jump + // through some hoops to get this to work like it should in this DataJPATest + // Use the TestEntityManager to get the versions saved to the db + EntityDescriptor ed = new EntityDescriptor(entityID: 'testme', serviceProviderName: 'testme').with { + entityDescriptorRepository.saveAndFlush(it) + } + testEntityManager.getEntityManager().getTransaction().commit() // get envers to write version + resId = ed.resourceId + ed = entityDescriptorRepository.findByResourceId(resId) + + testEntityManager.getEntityManager().getTransaction().begin() + ed.setOrganization(new Organization().with { + it.organizationNames = [new OrganizationName(value: 'testme', XMLLang: 'en')] + it.organizationDisplayNames = [new OrganizationDisplayName(value: 'testme', XMLLang: 'en')] + it.organizationURLs = [new OrganizationURL(value: 'http://testme.org', XMLLang: 'en')] + it + }) + entityDescriptorRepository.saveAndFlush(ed) + testEntityManager.getEntityManager().getTransaction().commit() // get envers to write version + } + + /** + * + * - No @Transactional on the method + * - + */ + @WithMockAdmin + @Transactional + def 'SHIBUI-1414'() { + when: + def result = mockMvc.perform(get("/api/EntityDescriptor/" + resId + "/Versions")) + def allVersions = mapper.readValue(result.andReturn().getResponse().getContentAsString(), List.class) + + String edv1 = mockMvc.perform(get("/api/EntityDescriptor/" + resId + "/Versions/" + allVersions.get(0).id)).andReturn().getResponse().getContentAsString() + String edv2 = mockMvc.perform(get("/api/EntityDescriptor/" + resId + "/Versions/" + allVersions.get(1).id)).andReturn().getResponse().getContentAsString() + + def v2Version = new JsonSlurper().parseText(edv2).get("version") + def aedv1 = new JsonSlurper().parseText(edv1).with { + it.put('version', v2Version) + it + }.with { + JsonOutput.toJson(it) + } + testEntityManager.getEntityManager().getTransaction().begin() + def response = mockMvc.perform(put("/api/EntityDescriptor/" + resId).contentType(APPLICATION_JSON).content(aedv1)) + testEntityManager.getEntityManager().getTransaction().commit() + + then: + response.andExpect(status().isOk()) + noExceptionThrown() + } + + @TestConfiguration + private static class EDCLocalConfig { + @Bean + EntityDescriptorVersionService entityDescriptorVersionService(EnversVersionServiceSupport support, EntityDescriptorService entityDescriptorService) { + return new EnversEntityDescriptorVersionService(support, entityDescriptorService) + } + + @Bean + MetadataResolverVersionService metadataResolverVersionService(EnversVersionServiceSupport support) { + return new EnversMetadataResolverVersionService(support) + } + + @Bean + EnversVersionServiceSupport enversVersionServiceSupport(EntityManager entityManager) { + return new EnversVersionServiceSupport(entityManager) + } + } +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataFiltersControllerIntegrationTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataFiltersControllerIntegrationTests.groovy index e223e0012..41ed176ad 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataFiltersControllerIntegrationTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataFiltersControllerIntegrationTests.groovy @@ -20,6 +20,7 @@ import org.springframework.boot.test.context.SpringBootTest import org.springframework.boot.test.context.TestConfiguration import org.springframework.boot.test.web.client.TestRestTemplate import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Profile import org.springframework.http.HttpEntity import org.springframework.http.HttpHeaders import org.springframework.test.context.ActiveProfiles @@ -32,7 +33,7 @@ import static org.springframework.http.HttpMethod.PUT * @author Dmitriy Kopylenko */ @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) -@ActiveProfiles("no-auth") +@ActiveProfiles(["no-auth", "mfci-test"]) class MetadataFiltersControllerIntegrationTests extends Specification { @Autowired @@ -249,7 +250,8 @@ class MetadataFiltersControllerIntegrationTests extends Specification { } @TestConfiguration - static class Config { + @Profile("mfci-test") + static class LocalConfig { @Bean MetadataResolver metadataResolver() { new OpenSamlChainingMetadataResolver().with { @@ -259,4 +261,4 @@ class MetadataFiltersControllerIntegrationTests extends Specification { } } } -} +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataFiltersControllerTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataFiltersControllerTests.groovy index b915d6fac..c0a7d0e68 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataFiltersControllerTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataFiltersControllerTests.groovy @@ -2,51 +2,47 @@ package edu.internet2.tier.shibboleth.admin.ui.controller import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.databind.SerializationFeature +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import edu.internet2.tier.shibboleth.admin.ui.configuration.CustomPropertiesConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.TestConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration import edu.internet2.tier.shibboleth.admin.ui.domain.exceptions.MetadataFileNotFoundException -import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilter import edu.internet2.tier.shibboleth.admin.ui.domain.filters.MetadataFilter import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolver import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.opensaml.OpenSamlChainingMetadataResolver import edu.internet2.tier.shibboleth.admin.ui.exception.EntityNotFoundException import edu.internet2.tier.shibboleth.admin.ui.exception.ForbiddenException import edu.internet2.tier.shibboleth.admin.ui.exception.InitializationException +import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects import edu.internet2.tier.shibboleth.admin.ui.repository.FilterRepository import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolverRepository import edu.internet2.tier.shibboleth.admin.ui.service.FilterService +import edu.internet2.tier.shibboleth.admin.ui.service.JPAEntityServiceImpl import edu.internet2.tier.shibboleth.admin.ui.service.MetadataResolverService import edu.internet2.tier.shibboleth.admin.ui.util.RandomGenerator import edu.internet2.tier.shibboleth.admin.ui.util.TestObjectGenerator +import edu.internet2.tier.shibboleth.admin.ui.util.WithMockAdmin import edu.internet2.tier.shibboleth.admin.util.AttributeUtility import groovy.json.JsonOutput import groovy.json.JsonSlurper import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest -import org.springframework.data.jpa.repository.config.EnableJpaRepositories +import org.springframework.boot.test.context.TestConfiguration +import org.springframework.context.annotation.Bean import org.springframework.test.context.ContextConfiguration import org.springframework.test.web.servlet.setup.MockMvcBuilders +import org.springframework.transaction.annotation.Transactional import org.w3c.dom.Document -import spock.lang.Specification import spock.lang.Unroll import static org.hamcrest.CoreMatchers.containsString import static org.springframework.http.MediaType.APPLICATION_JSON -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.* -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.* - -/** - * @author Bill Smith (wsmith@unicon.net) - */ -@DataJpaTest -@ContextConfiguration(classes=[CoreShibUiConfiguration, SearchConfiguration, TestConfiguration, InternationalizationConfiguration]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan("edu.internet2.tier.shibboleth.admin.ui") -class MetadataFiltersControllerTests extends Specification { +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.header +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status + +@ContextConfiguration(classes=[ MFCLocalConfig ]) +class MetadataFiltersControllerTests extends AbstractBaseDataJpaTest { @Autowired AttributeUtility attributeUtility @@ -71,6 +67,7 @@ class MetadataFiltersControllerTests extends Specification { static BASE_URI = '/api/MetadataResolvers' + @Transactional def setup() { randomGenerator = new RandomGenerator() testObjectGenerator = new TestObjectGenerator(attributeUtility, customPropertiesConfiguration) @@ -80,6 +77,8 @@ class MetadataFiltersControllerTests extends Specification { controller = new MetadataFiltersController ( repository: metadataResolverRepository, filterRepository: metadataFilterRepository, + groupService: groupService, + userService: userService, metadataResolverService: new MetadataResolverService() { @Override void reloadFilters(String metadataResolverName) { @@ -90,15 +89,15 @@ class MetadataFiltersControllerTests extends Specification { Document generateConfiguration() { return null } - + @Override - public MetadataResolver updateMetadataResolverEnabledStatus(MetadataResolver existingResolver) throws ForbiddenException, MetadataFileNotFoundException, InitializationException { + MetadataResolver updateMetadataResolverEnabledStatus(MetadataResolver existingResolver) throws ForbiddenException, MetadataFileNotFoundException, InitializationException { // This won't get called return null } - + @Override - public MetadataResolver findByResourceId(String resourceId) throws EntityNotFoundException { + MetadataResolver findByResourceId(String resourceId) throws EntityNotFoundException { // This won't get called return null } @@ -110,10 +109,10 @@ class MetadataFiltersControllerTests extends Specification { it } ) - mockMvc = MockMvcBuilders.standaloneSetup(controller).build() } + @WithMockAdmin def "FilterController.getAll gets all available types of filters"() { given: def metadataResolver = new MetadataResolver() @@ -133,6 +132,7 @@ class MetadataFiltersControllerTests extends Specification { .andExpect(content().json(mapper.writeValueAsString(expectedContent))) } + @WithMockAdmin def "FilterController.getOne gets the desired filter"() { given: def metadataResolver = new MetadataResolver() @@ -155,6 +155,7 @@ class MetadataFiltersControllerTests extends Specification { } @Unroll + @WithMockAdmin def "FilterController.create creates the desired filter (filterType: #filterType)"(String filterType) { given: def randomFilter = testObjectGenerator.buildRandomFilterOfType(filterType) @@ -177,10 +178,9 @@ class MetadataFiltersControllerTests extends Specification { def postedJsonBody = expectedJsonBody - ~/"id":.*?,/ // remove the "id:," when: - def result = mockMvc.perform( - post("$BASE_URI/foo/Filters") - .contentType(APPLICATION_JSON) - .content(postedJsonBody)) + def result = mockMvc.perform(post("$BASE_URI/foo/Filters") + .contentType(APPLICATION_JSON) + .content(postedJsonBody)) then: println postedJsonBody @@ -198,13 +198,14 @@ class MetadataFiltersControllerTests extends Specification { } @Unroll + @WithMockAdmin def "FilterController.update updates the target #filterType filter as desired"(String filterType) { given: def originalFilter = testObjectGenerator.buildRandomFilterOfType(filterType) def updatedFilter = testObjectGenerator.copyOf(originalFilter) updatedFilter.name = 'Updated Filter' updatedFilter.version = originalFilter.hashCode() - def postedJsonBody = mapper.writeValueAsString(updatedFilter) + def updatedFilterJson = mapper.writeValueAsString(updatedFilter) def originalMetadataResolver = new MetadataResolver() originalMetadataResolver.setResourceId('foo') @@ -222,13 +223,11 @@ class MetadataFiltersControllerTests extends Specification { def filterUUID = updatedFilter.getResourceId() when: - def result = mockMvc.perform( - put("$BASE_URI/foo/Filters/$filterUUID") - .contentType(APPLICATION_JSON) - .content(postedJsonBody)) + def result = mockMvc.perform(put("$BASE_URI/foo/Filters/$filterUUID") + .contentType(APPLICATION_JSON).content(updatedFilterJson)) then: - def expectedJson = new JsonSlurper().parseText(postedJsonBody) + def expectedJson = new JsonSlurper().parseText(updatedFilterJson) expectedJson << [version: updatedFilter.getVersion()] result.andExpect(status().isOk()) .andExpect(content().json(JsonOutput.toJson(expectedJson), true)) @@ -242,6 +241,7 @@ class MetadataFiltersControllerTests extends Specification { 'nameIdFormat' | _ } + @WithMockAdmin def "FilterController.update filter 409's if the version numbers don't match"() { given: def randomFilter = testObjectGenerator.entityAttributesFilter() @@ -267,4 +267,13 @@ class MetadataFiltersControllerTests extends Specification { then: result.andExpect(status().is(409)) } -} + + @TestConfiguration + private static class MFCLocalConfig { + @Bean + JPAEntityServiceImpl jpaEntityService(OpenSamlObjects openSamlObjects, AttributeUtility attributeUtility, + CustomPropertiesConfiguration customPropertiesConfiguration) { + return new JPAEntityServiceImpl(openSamlObjects, attributeUtility, customPropertiesConfiguration) + } + } +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataResolversControllerIntegrationTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataResolversControllerIntegrationTests.groovy index 05f6b62c8..90c70f38e 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataResolversControllerIntegrationTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataResolversControllerIntegrationTests.groovy @@ -3,86 +3,106 @@ package edu.internet2.tier.shibboleth.admin.ui.controller import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.databind.SerializationFeature import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import edu.internet2.tier.shibboleth.admin.ui.configuration.CustomPropertiesConfiguration +import edu.internet2.tier.shibboleth.admin.ui.configuration.EntitiesVersioningConfiguration +import edu.internet2.tier.shibboleth.admin.ui.configuration.MetadataResolverConfiguration +import edu.internet2.tier.shibboleth.admin.ui.configuration.MetadataResolverConverterConfiguration +import edu.internet2.tier.shibboleth.admin.ui.configuration.MetadataResolverValidationConfiguration +import edu.internet2.tier.shibboleth.admin.ui.configuration.PlaceholderResolverComponentsConfiguration +import edu.internet2.tier.shibboleth.admin.ui.configuration.ShibUIConfiguration import edu.internet2.tier.shibboleth.admin.ui.configuration.StringTrimModule import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilter import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.DynamicHttpMetadataResolver import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.FileBackedHttpMetadataResolver import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.LocalDynamicMetadataResolver import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataQueryProtocolScheme -import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.opensaml.OpenSamlChainingMetadataResolver +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator.MetadataResolverValidationService +import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolverRepository +import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolversPositionOrderContainerRepository +import edu.internet2.tier.shibboleth.admin.ui.service.DefaultMetadataResolversPositionOrderContainerService +import edu.internet2.tier.shibboleth.admin.ui.service.DirectoryService +import edu.internet2.tier.shibboleth.admin.ui.service.DirectoryServiceImpl +import edu.internet2.tier.shibboleth.admin.ui.service.IndexWriterService +import edu.internet2.tier.shibboleth.admin.ui.service.JPAMetadataResolverServiceImpl +import edu.internet2.tier.shibboleth.admin.ui.service.MetadataResolverConverterService +import edu.internet2.tier.shibboleth.admin.ui.service.MetadataResolverService +import edu.internet2.tier.shibboleth.admin.ui.service.MetadataResolverVersionService +import edu.internet2.tier.shibboleth.admin.ui.service.MetadataResolversPositionOrderContainerService import edu.internet2.tier.shibboleth.admin.ui.util.TestObjectGenerator +import edu.internet2.tier.shibboleth.admin.ui.util.WithMockAdmin import edu.internet2.tier.shibboleth.admin.util.AttributeUtility -import groovy.json.JsonOutput import groovy.json.JsonSlurper import org.opensaml.saml.metadata.resolver.MetadataResolver import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.test.context.SpringBootTest import org.springframework.boot.test.context.TestConfiguration -import org.springframework.boot.test.web.client.TestRestTemplate import org.springframework.context.annotation.Bean -import org.springframework.context.annotation.Profile -import org.springframework.http.HttpEntity -import org.springframework.http.HttpHeaders -import org.springframework.test.annotation.DirtiesContext -import org.springframework.test.context.ActiveProfiles -import spock.lang.Specification +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter +import org.springframework.test.context.ContextConfiguration +import org.springframework.test.web.servlet.MockMvc +import org.springframework.test.web.servlet.MvcResult +import org.springframework.test.web.servlet.setup.MockMvcBuilders +import org.springframework.transaction.annotation.Transactional import spock.lang.Unroll -import static com.fasterxml.jackson.annotation.JsonInclude.Include.* -import static org.springframework.http.HttpMethod.PUT - -/** - * @author Dmitriy Kopylenko - */ -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) -@ActiveProfiles("no-auth") -class MetadataResolversControllerIntegrationTests extends Specification { +import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL +import static org.springframework.http.MediaType.APPLICATION_JSON +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status + +@ContextConfiguration(classes=[MetadataResolverValidationConfiguration, MetadataResolverConverterConfiguration, + MetadataResolverConfiguration, EntitiesVersioningConfiguration, + edu.internet2.tier.shibboleth.admin.ui.configuration.TestConfiguration, + PlaceholderResolverComponentsConfiguration, MRCILocalConfig]) +class MetadataResolversControllerIntegrationTests extends AbstractBaseDataJpaTest { + @Autowired + AttributeUtility attributeUtility @Autowired - private TestRestTemplate restTemplate + MetadataResolversController controller @Autowired - MetadataResolverRepository metadataResolverRepository + CustomPropertiesConfiguration customPropertiesConfiguration @Autowired - AttributeUtility attributeUtility + ObjectMapper mapper @Autowired - CustomPropertiesConfiguration customPropertiesConfiguration + MetadataResolverRepository metadataResolverRepository - ObjectMapper mapper TestObjectGenerator generator + MockMvc mockMvc - JsonSlurper jsonSlurper = new JsonSlurper() - - static BASE_URI = '/api/MetadataResolvers' + static String BASE_URI = '/api/MetadataResolvers' + @Transactional def setup() { generator = new TestObjectGenerator(attributeUtility, customPropertiesConfiguration) - mapper = new ObjectMapper() - mapper.enable(SerializationFeature.INDENT_OUTPUT) - mapper.setSerializationInclusion(NON_NULL) - mapper.registerModule(new JavaTimeModule()) - mapper.registerModule(new StringTrimModule()) metadataResolverRepository.deleteAll() + + mockMvc = MockMvcBuilders.standaloneSetup(controller).setMessageConverters(new MappingJackson2HttpMessageConverter(mapper)).build() } def cleanup() { metadataResolverRepository.deleteAll() } + @WithMockAdmin def "GET empty -> /api/MetadataResolvers"() { when: 'No resolvers are available in data store' - def result = this.restTemplate.getForEntity(BASE_URI, String) - def returnedResolvers = jsonSlurper.parseText(result.body) + def result = mockMvc.perform(get(BASE_URI)) then: - result.statusCodeValue == 200 - returnedResolvers.size() == 0 + result.andExpect(status().isOk()).andExpect(content().contentType(APPLICATION_JSON)) + .andExpect(jsonPath("\$").isEmpty()) } + @WithMockAdmin def "GET one available MetadataResolver -> /api/MetadataResolvers"() { given: 'One resolver is available in data store' def resolver = new DynamicHttpMetadataResolver().with { @@ -92,17 +112,16 @@ class MetadataResolversControllerIntegrationTests extends Specification { metadataResolverRepository.save(resolver) when: 'GET request is made' - def result = this.restTemplate.getForEntity(BASE_URI, String) - def returnedResolvers = jsonSlurper.parseText(result.body) + def result = mockMvc.perform(get(BASE_URI)) then: - result.statusCodeValue == 200 - returnedResolvers.size() == 1 - returnedResolvers[0]['@type'] == 'DynamicHttpMetadataResolver' - returnedResolvers[0].name == 'Test DynamicHttpMetadataResolver' + result.andExpect(status().isOk()).andExpect(content().contentType(APPLICATION_JSON)) + .andExpect(jsonPath("\$.[0].name").value("Test DynamicHttpMetadataResolver")) + .andExpect(jsonPath("\$.[0].['@type']").value("DynamicHttpMetadataResolver")) } + @WithMockAdmin def "GET multiple available MetadataResolvers -> /api/MetadataResolvers"() { given: 'Two resolvers are available in data store' def resolvers = [ @@ -120,19 +139,17 @@ class MetadataResolversControllerIntegrationTests extends Specification { } when: 'GET request is made' - def result = this.restTemplate.getForEntity(BASE_URI, String) - def returnedResolvers = jsonSlurper.parseText(result.body) + def result = mockMvc.perform(get(BASE_URI)) then: - result.statusCodeValue == 200 - returnedResolvers.size() == 2 - returnedResolvers[0]['@type'] == 'DynamicHttpMetadataResolver' - returnedResolvers[0].name == 'Test DynamicHttpMetadataResolver' - returnedResolvers[1]['@type'] == 'FileBackedHttpMetadataResolver' - returnedResolvers[1].name == 'Test FileBackedHttpMetadataResolver' - + result.andExpect(status().isOk()).andExpect(content().contentType(APPLICATION_JSON)) + .andExpect(jsonPath("\$.[0].name").value("Test DynamicHttpMetadataResolver")) + .andExpect(jsonPath("\$.[0].['@type']").value("DynamicHttpMetadataResolver")) + .andExpect(jsonPath("\$.[1].name").value("Test FileBackedHttpMetadataResolver")) + .andExpect(jsonPath("\$.[1].['@type']").value("FileBackedHttpMetadataResolver")) } + @WithMockAdmin def "GET concrete MetadataResolver -> /api/MetadataResolvers/{resourceId}"() { given: 'One resolver is available in data store' def resolver = new DynamicHttpMetadataResolver().with { @@ -143,25 +160,25 @@ class MetadataResolversControllerIntegrationTests extends Specification { metadataResolverRepository.save(resolver) when: 'GET request is made with resource Id matching the existing resolver' - def result = this.restTemplate.getForEntity("$BASE_URI/$resolverResourceId", String) - def returnedResolver = jsonSlurper.parseText(result.body) + def result = mockMvc.perform(get("$BASE_URI/$resolverResourceId")) then: - result.statusCodeValue == 200 - returnedResolver['@type'] == 'DynamicHttpMetadataResolver' - returnedResolver.name == 'Test DynamicHttpMetadataResolver' + result.andExpect(status().isOk()).andExpect(content().contentType(APPLICATION_JSON)) + .andExpect(jsonPath("\$.name").value("Test DynamicHttpMetadataResolver")) + .andExpect(jsonPath("\$.['@type']").value("DynamicHttpMetadataResolver")) } + @WithMockAdmin def "GET non-existent MetadataResolver -> /api/MetadataResolvers/{resourceId}"() { when: 'GET request is made with resource Id not matching any resolvers' - def result = this.restTemplate.getForEntity("$BASE_URI/bogus-resource-id", String) + def result = mockMvc.perform(get("$BASE_URI/bogus-resource-id")) then: - result.statusCodeValue == 404 + result.andExpect(status().isNotFound()) } - @DirtiesContext + @WithMockAdmin def "SHIBUI-839 - POST resolver with spaces in the provider name results in trimmed name"() { given: def resolver = generator.buildRandomMetadataResolverOfType('DynamicHttp') @@ -169,29 +186,29 @@ class MetadataResolversControllerIntegrationTests extends Specification { def expectedName = 'This name has spaces' when: - def result = this.restTemplate.postForEntity(BASE_URI, createRequestHttpEntityFor { mapper.writeValueAsString(resolver) }, String) + def result = mockMvc.perform(post(BASE_URI).contentType(APPLICATION_JSON).content(mapper.writeValueAsString(resolver))) then: - def metadataResolverMap = new JsonSlurper().parseText(result.body) - metadataResolverMap.name == expectedName + result.andExpect(status().isCreated()).andExpect(content().contentType(APPLICATION_JSON)) + .andExpect(jsonPath("\$.name").value(expectedName)) } + @WithMockAdmin @Unroll - @DirtiesContext def "POST new concrete MetadataResolver of type #resolverType -> /api/MetadataResolvers"(String resolverType) { given: 'New MetadataResolver JSON representation' def resolver = generator.buildRandomMetadataResolverOfType(resolverType) String sourceDirectory - if (resolverType.equals('LocalDynamic')) { + if (resolverType == 'LocalDynamic') { sourceDirectory = ((LocalDynamicMetadataResolver) resolver).sourceDirectory } - when: 'POST request is made with new DynamicHttpMetadataResolver JSON representation' - def result = this.restTemplate.postForEntity(BASE_URI, createRequestHttpEntityFor { mapper.writeValueAsString(resolver) }, String) + when: 'POST request is made with new Resolver JSON representation' + def result = mockMvc.perform(post(BASE_URI).contentType(APPLICATION_JSON).content(mapper.writeValueAsString(resolver))) then: - result.statusCodeValue == 201 - result.headers.Location[0].contains(BASE_URI) + result.andExpect(status().isCreated()).andExpect(content().contentType(APPLICATION_JSON)) + .andExpect(jsonPath("\$.['@type']").value(resolver.getType())) cleanup: if (sourceDirectory != null) { @@ -210,7 +227,7 @@ class MetadataResolversControllerIntegrationTests extends Specification { 'Filesystem' | _ } - @DirtiesContext + @WithMockAdmin def "SHIBUI-1992 - error creating FileBackedHTTPMetadata"() { def resolver = new FileBackedHttpMetadataResolver().with { it.name = 'FBHMR' @@ -223,42 +240,36 @@ class MetadataResolversControllerIntegrationTests extends Specification { } when: - def result = this.restTemplate.postForEntity(BASE_URI, createRequestHttpEntityFor { mapper.writeValueAsString(resolver) }, String) + def result = mockMvc.perform(post(BASE_URI).contentType(APPLICATION_JSON).content(mapper.writeValueAsString(resolver))) then: - result.statusCodeValue == 201 + result.andExpect(status().isCreated()) } + @WithMockAdmin @Unroll def "PUT concrete MetadataResolver of type #resolverType with updated changes -> /api/MetadataResolvers/{resourceId}"(String resolverType) { given: 'One resolver is available in data store' def resolver = generator.buildRandomMetadataResolverOfType(resolverType) String sourceDirectory - if (resolverType.equals('Localdynamic')) { + if (resolverType == 'Localdynamic') { sourceDirectory = ((LocalDynamicMetadataResolver) resolver).sourceDirectory } def resolverResourceId = resolver.resourceId metadataResolverRepository.save(resolver) when: 'GET request is made with resource Id matching the existing resolver' - def result = this.restTemplate.getForEntity("$BASE_URI/$resolverResourceId", String) + def result = mockMvc.perform(get("$BASE_URI/$resolverResourceId")).andReturn() and: 'Resolver data is updated and sent back to the server' - def metadataResolverMap = new JsonSlurper().parseText(result.body) - metadataResolverMap.name = 'Updated DynamicHttpMetadataResolver' - def updatedResult = this.restTemplate.exchange( - "$BASE_URI/${metadataResolverMap.resourceId}", - PUT, - createRequestHttpEntityFor { JsonOutput.toJson(metadataResolverMap) }, - String) - then: - updatedResult.statusCodeValue == 200 + def metadataResolverMap = new JsonSlurper().parseText(result.getResponse().getContentAsString()) - and: - def updatedResolverMap = new JsonSlurper().parseText(updatedResult.body) + metadataResolverMap.name = 'Updated Resolver Name' + def updatedResult = mockMvc.perform(put("$BASE_URI/${metadataResolverMap.resourceId}").contentType(APPLICATION_JSON).content(mapper.writeValueAsString(metadataResolverMap))) then: - updatedResolverMap.name == 'Updated DynamicHttpMetadataResolver' + updatedResult.andExpect(status().isOk()).andExpect(content().contentType(APPLICATION_JSON)) + .andExpect(jsonPath("\$.name").value('Updated Resolver Name')) cleanup: if (sourceDirectory != null) { @@ -277,6 +288,7 @@ class MetadataResolversControllerIntegrationTests extends Specification { 'Filesystem' | _ } + @WithMockAdmin def "PUT concrete MetadataResolver with version conflict -> /api/MetadataResolvers/{resourceId}"() { given: 'One resolver is available in data store' def resolver = new DynamicHttpMetadataResolver().with { @@ -293,44 +305,45 @@ class MetadataResolversControllerIntegrationTests extends Specification { def persistedResolver = metadataResolverRepository.save(resolver) when: 'GET request is made with resource Id matching the existing resolver' - def result = this.restTemplate.getForEntity("$BASE_URI/$resolverResourceId", String) + MvcResult result = mockMvc.perform(get("$BASE_URI/$resolverResourceId")).andReturn() and: 'Resolver data is updated and sent back to the server, but then original resolver is changed in data store' persistedResolver.name = 'Some other name' metadataResolverRepository.save(persistedResolver) - def metadataResolverMap = new JsonSlurper().parseText(result.body) + + def metadataResolverMap = mapper.readValue(result.getResponse().getContentAsString(), DynamicHttpMetadataResolver.class) metadataResolverMap.name = 'Updated DynamicHttpMetadataResolver' - def updatedResult = this.restTemplate.exchange( - "$BASE_URI/${metadataResolverMap.resourceId}", - PUT, - createRequestHttpEntityFor { JsonOutput.toJson(metadataResolverMap) }, - String) + def updatedResult = mockMvc.perform(put("$BASE_URI/${metadataResolverMap.resourceId}").contentType(APPLICATION_JSON).content(mapper.writeValueAsString(metadataResolverMap))) then: - updatedResult.statusCodeValue == 409 + updatedResult.andExpect(status().isConflict()) } + @WithMockAdmin def "POST new MetadataResolver with one EntityAttributesFilters attached -> /api/MetadataResolvers"() { given: 'New MetadataResolver with attached entity attributes filter JSON representation' def resolver = generator.buildRandomMetadataResolverOfType('FileBacked') resolver.metadataFilters << generator.entityAttributesFilter() when: 'POST request is made with new FileBackedMetadataResolver with EntityAttributesFilter JSON representation' - def result = this.restTemplate.postForEntity(BASE_URI, createRequestHttpEntityFor { mapper.writeValueAsString(resolver) }, String) + def result = mockMvc.perform(post(BASE_URI).contentType(APPLICATION_JSON).content(mapper.writeValueAsString(resolver))) then: - result.statusCodeValue == 201 - result.headers.Location[0].contains(BASE_URI) + def location = result.andExpect(status().isCreated()).andReturn().getResponse().getHeaderValue("Location") + + location.contains(BASE_URI) when: 'Query REST API for newly created resolver' - def createdResolverResult = this.restTemplate.getForEntity(result.headers.Location[0], String) - def createdResolver = mapper.readValue(createdResolverResult.body, edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolver) + def createdResolverResult = mockMvc.perform(get(location)).andReturn().getResponse().getContentAsString() + def createdResolver = mapper.readValue(createdResolverResult, edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolver) then: createdResolver.metadataFilters.size() == 1 createdResolver.metadataFilters[0] instanceof EntityAttributesFilter } + @WithMockAdmin + @Transactional def "PUT MetadataResolver with one EntityAttributesFilters attached and check version -> /api/MetadataResolvers"() { given: 'MetadataResolver with attached entity attributes is available in data store' def resolver = generator.buildRandomMetadataResolverOfType('FileBacked') @@ -339,34 +352,50 @@ class MetadataResolversControllerIntegrationTests extends Specification { metadataResolverRepository.save(resolver) when: 'GET request is made with resource Id matching the existing resolver' - def result = this.restTemplate.getForEntity("$BASE_URI/$resolverResourceId", String) - def existingMetadataResolverMap = new JsonSlurper().parseText(result.body) - def existingMetadataVersion = existingMetadataResolverMap.version + def result = mockMvc.perform(get("$BASE_URI/$resolverResourceId")).andReturn().getResponse().getContentAsString() + def existingMetadataResolverMap = new JsonSlurper().parseText(result) and: 'PUT call is made with' existingMetadataResolverMap.name = 'Updated' - def updatedResultFromPUT = this.restTemplate.exchange( - "$BASE_URI/${existingMetadataResolverMap.resourceId}", - PUT, - createRequestHttpEntityFor { JsonOutput.toJson(existingMetadataResolverMap) }, - String) - def updatedResultFromGET = this.restTemplate.getForEntity("$BASE_URI/$resolverResourceId", String) - def updatedVersionReturnedFromPUT = new JsonSlurper().parseText(updatedResultFromPUT.body).version - def updatedVersionReturnedFromGET = new JsonSlurper().parseText(updatedResultFromGET.body).version + def updatedResultFromPUT = mockMvc.perform(put("$BASE_URI/${existingMetadataResolverMap.resourceId}") + .contentType(APPLICATION_JSON).content(mapper.writeValueAsString(existingMetadataResolverMap))) + .andReturn().getResponse().getContentAsString() + def updatedResultFromGET = mockMvc.perform(get("$BASE_URI/$existingMetadataResolverMap.resourceId")).andReturn().getResponse().getContentAsString() then: - updatedVersionReturnedFromPUT == updatedVersionReturnedFromGET - } - - private HttpEntity createRequestHttpEntityFor(Closure jsonBodySupplier) { - new HttpEntity(jsonBodySupplier(), ['Content-Type': 'application/json'] as HttpHeaders) + updatedResultFromPUT == updatedResultFromGET } @TestConfiguration - static class LocalConfig { + private static class MRCILocalConfig { + @Bean + DirectoryService directoryService() { + return new DirectoryServiceImpl() + } + + @Bean + MetadataResolversController metadataResolversController(MetadataResolverRepository metadataResolverRepository, MetadataResolverValidationService metadataResolverValidationService, + MetadataResolverService metadataResolverService, MetadataResolversPositionOrderContainerService positionOrderContainerService, + IndexWriterService indexWriterService, MetadataResolver chainingMetadataResolver, + MetadataResolverConverterService metadataResolverConverterService, MetadataResolverVersionService versionService) { + MetadataResolversController mrc = new MetadataResolversController().with { + it.resolverRepository = metadataResolverRepository + it.metadataResolverValidationService = metadataResolverValidationService + it.metadataResolverService = metadataResolverService + it.positionOrderContainerService = positionOrderContainerService + it.indexWriterService = indexWriterService + it.chainingMetadataResolver = chainingMetadataResolver + it.metadataResolverConverterService = metadataResolverConverterService + it.versionService = versionService + it + } + return mrc + } + @Bean - MetadataResolver metadataResolver() { - new OpenSamlChainingMetadataResolver() + MetadataResolversPositionOrderContainerService metadataResolversPositionOrderContainerService(MetadataResolversPositionOrderContainerRepository positionOrderContainerRepository, + MetadataResolverRepository resolverRepository) { + return new DefaultMetadataResolversPositionOrderContainerService(positionOrderContainerRepository, resolverRepository) } } } \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/EntityDescriptorTest.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/EntityDescriptorTest.groovy index 0747b9d4c..8fc49acde 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/EntityDescriptorTest.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/EntityDescriptorTest.groovy @@ -1,18 +1,13 @@ package edu.internet2.tier.shibboleth.admin.ui.domain -import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import edu.internet2.tier.shibboleth.admin.ui.configuration.PlaceholderResolverComponentsConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.FileBackedHttpMetadataResolver import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.HttpMetadataResolverAttributes import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ReloadableMetadataResolverAttributes import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.opensaml.OpenSamlChainingMetadataResolver import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.opensaml.OpenSamlFileBackedHTTPMetadataResolver import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects -import edu.internet2.tier.shibboleth.admin.ui.security.repository.GroupsRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.OwnershipRepository -import edu.internet2.tier.shibboleth.admin.ui.security.service.GroupServiceImpl import edu.internet2.tier.shibboleth.admin.ui.service.IndexWriterService import edu.internet2.tier.shibboleth.admin.ui.util.RandomGenerator import edu.internet2.tier.shibboleth.admin.ui.util.TestObjectGenerator @@ -20,44 +15,26 @@ import org.opensaml.saml.metadata.resolver.ChainingMetadataResolver import org.opensaml.saml.metadata.resolver.MetadataResolver import org.opensaml.saml.metadata.resolver.RefreshableMetadataResolver import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest -import org.springframework.boot.test.context.SpringBootTest import org.springframework.boot.test.context.TestConfiguration import org.springframework.context.annotation.Bean -import org.springframework.context.annotation.Profile -import org.springframework.data.jpa.repository.config.EnableJpaRepositories -import org.springframework.test.annotation.DirtiesContext -import org.springframework.test.context.ActiveProfiles import org.springframework.test.context.ContextConfiguration -import spock.lang.Specification - -import java.nio.file.Files /** * @author Bill Smith (wsmith@unicon.net) */ -@DataJpaTest -@ContextConfiguration(classes=[CoreShibUiConfiguration, SearchConfiguration, InternationalizationConfiguration, MyConfig, PlaceholderResolverComponentsConfiguration, edu.internet2.tier.shibboleth.admin.ui.configuration.TestConfiguration]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan("edu.internet2.tier.shibboleth.admin.ui") -@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) -@ActiveProfiles(value="local") -class EntityDescriptorTest extends Specification { - - RandomGenerator randomGenerator - TestObjectGenerator generator +@ContextConfiguration(classes = [ EDLocalConfig, PlaceholderResolverComponentsConfiguration ]) +class EntityDescriptorTest extends AbstractBaseDataJpaTest { + @Autowired + IndexWriterService indexWriterService @Autowired MetadataResolver metadataResolver @Autowired - IndexWriterService indexWriterService + OpenSamlObjects openSamlObjects - def openSamlObjects = new OpenSamlObjects().with { - init() - it - } + RandomGenerator randomGenerator + TestObjectGenerator generator def setup() { generator = new TestObjectGenerator() @@ -90,8 +67,7 @@ class EntityDescriptorTest extends Specification { } @TestConfiguration - @Profile("local") - static class MyConfig { + private static class EDLocalConfig { @Bean MetadataResolver metadataResolver() { ChainingMetadataResolver metadataResolver = new OpenSamlChainingMetadataResolver() @@ -100,14 +76,5 @@ class EntityDescriptorTest extends Specification { metadataResolver.initialize() return metadataResolver } - - @Bean - GroupServiceImpl groupService(GroupsRepository repo, OwnershipRepository ownershipRepository) { - new GroupServiceImpl().with { - it.groupRepository = repo - it.ownershipRepository = ownershipRepository - return it - } - } } -} +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/filters/PolymorphicFiltersJacksonHandlingTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/filters/PolymorphicFiltersJacksonHandlingTests.groovy index 9c1ba5342..fa9239ec5 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/filters/PolymorphicFiltersJacksonHandlingTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/filters/PolymorphicFiltersJacksonHandlingTests.groovy @@ -2,37 +2,28 @@ package edu.internet2.tier.shibboleth.admin.ui.domain.filters import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.databind.SerializationFeature +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import edu.internet2.tier.shibboleth.admin.ui.configuration.CustomPropertiesConfiguration -import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects import edu.internet2.tier.shibboleth.admin.ui.util.TestObjectGenerator -import edu.internet2.tier.shibboleth.admin.util.AttributeUtility +import edu.internet2.tier.shibboleth.admin.ui.util.WithMockAdmin import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.test.context.SpringBootTest -import spock.lang.Specification -@SpringBootTest -class PolymorphicFiltersJacksonHandlingTests extends Specification { - - ObjectMapper mapper - - AttributeUtility attributeUtility +class PolymorphicFiltersJacksonHandlingTests extends AbstractBaseDataJpaTest { @Autowired CustomPropertiesConfiguration customPropertiesConfiguration + @Autowired + ObjectMapper mapper + + @Autowired TestObjectGenerator testObjectGenerator def setup() { - mapper = new ObjectMapper() - mapper.enable(SerializationFeature.INDENT_OUTPUT) - - attributeUtility = new AttributeUtility(new OpenSamlObjects().with { - it.init() - it - }) - testObjectGenerator = new TestObjectGenerator(attributeUtility, customPropertiesConfiguration) + customPropertiesConfiguration.postConstruct() } + @WithMockAdmin def "Correct polymorphic serialization of EntityRoleWhiteListFilter"() { given: def givenFilterJson = """ @@ -68,6 +59,7 @@ class PolymorphicFiltersJacksonHandlingTests extends Specification { roundTripFilter instanceof EntityRoleWhiteListFilter } + @WithMockAdmin def "Correct polymorphic serialization of EntityAttributesFilter"() { given: def simulatedPersistentFilter = testObjectGenerator.entityAttributesFilter() @@ -81,6 +73,7 @@ class PolymorphicFiltersJacksonHandlingTests extends Specification { simulatedPersistentFilter.attributes.size() == simulatedPrePersistentFilter.attributes.size() } + @WithMockAdmin def "Correct polymorphic serialization of RequiredValidUntilFilter"() { given: def givenFilterJson = """ @@ -113,6 +106,7 @@ class PolymorphicFiltersJacksonHandlingTests extends Specification { roundTripFilter instanceof RequiredValidUntilFilter } + @WithMockAdmin def "List of filters with correct types"() { given: def filters = testObjectGenerator.buildAllTypesOfFilterList() @@ -129,6 +123,7 @@ class PolymorphicFiltersJacksonHandlingTests extends Specification { } + @WithMockAdmin def "Deserialization of EntityAttributes filter"() { given: def filterJson = """ @@ -176,6 +171,7 @@ class PolymorphicFiltersJacksonHandlingTests extends Specification { EntityAttributesFilter.class.cast(filter).entityAttributesFilterTarget.value == ['GATCCLk32V'] } + @WithMockAdmin def "Correct polymorphic serialization of NameIdFormatFilter"() { given: def givenFilterJson = """ @@ -216,4 +212,4 @@ class PolymorphicFiltersJacksonHandlingTests extends Specification { deSerializedFilter instanceof NameIdFormatFilter roundTripFilter instanceof NameIdFormatFilter } -} +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/PolymorphicResolversJacksonHandlingTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/PolymorphicResolversJacksonHandlingTests.groovy index f22c875aa..d9a1ead3a 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/PolymorphicResolversJacksonHandlingTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/PolymorphicResolversJacksonHandlingTests.groovy @@ -2,37 +2,21 @@ package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.databind.SerializationFeature -import edu.internet2.tier.shibboleth.admin.ui.configuration.CustomPropertiesConfiguration +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilter import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityRoleWhiteListFilter -import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects import edu.internet2.tier.shibboleth.admin.ui.util.TestObjectGenerator -import edu.internet2.tier.shibboleth.admin.util.AttributeUtility import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.test.context.SpringBootTest -import spock.lang.Specification - -@SpringBootTest -class PolymorphicResolversJacksonHandlingTests extends Specification { - - ObjectMapper mapper - - AttributeUtility attributeUtility +class PolymorphicResolversJacksonHandlingTests extends AbstractBaseDataJpaTest { @Autowired - CustomPropertiesConfiguration customPropertiesConfiguration - TestObjectGenerator testObjectGenerator + ObjectMapper mapper + def setup() { mapper = new ObjectMapper() mapper.enable(SerializationFeature.INDENT_OUTPUT) - - attributeUtility = new AttributeUtility(new OpenSamlObjects().with { - it.init() - it - }) - testObjectGenerator = new TestObjectGenerator(attributeUtility, customPropertiesConfiguration) } def "Correct polymorphic serialization of LocalDynamicMetadataResolver"() { @@ -241,113 +225,12 @@ class PolymorphicResolversJacksonHandlingTests extends Specification { def "Correct polymorphic serialization of FileBackedHttpMetadataResolver"() { given: - MetadataResolver resolver = new FileBackedHttpMetadataResolver().with { - it.httpMetadataResolverAttributes = new HttpMetadataResolverAttributes() - it.reloadableMetadataResolverAttributes = new ReloadableMetadataResolverAttributes() - it.metadataFilters = [testObjectGenerator.entityAttributesFilter(), testObjectGenerator.entityRoleWhitelistFilter()] - it - } - def givenResolverJson = """ - { - "createdDate" : null, - "modifiedDate" : null, - "createdBy" : null, - "modifiedBy" : null, - "name" : null, - "resourceId" : "f3e615d5-960b-4fed-bff6-86fc4620be95", - "requireValidMetadata" : true, - "failFastInitialization" : true, - "sortKey" : null, - "criterionPredicateRegistryRef" : null, - "useDefaultPredicateRegistry" : true, - "satisfyAnyPredicates" : false, - "metadataFilters" : [ { - "createdDate" : null, - "modifiedDate" : null, - "createdBy" : null, - "modifiedBy" : null, - "name" : "EntityAttributes", - "resourceId" : "4149cc5f-137e-4045-9369-8fedafcdd8c8", - "filterEnabled" : false, - "version" : -1249726767, - "entityAttributesFilterTarget" : { - "createdDate" : null, - "modifiedDate" : null, - "createdBy" : null, - "modifiedBy" : null, - "entityAttributesFilterTargetType" : "CONDITION_SCRIPT", - "value" : [ "6EksoLF7Q0" ], - "audId" : null - }, - "attributeRelease" : [ ], - "relyingPartyOverrides" : { - "signAssertion" : false, - "dontSignResponse" : true, - "turnOffEncryption" : false, - "useSha" : false, - "ignoreAuthenticationMethod" : false, - "omitNotBefore" : false, - "responderId" : "3267361e-7d8c-45d2-92ce-7642dc3bb432", - "nameIdFormats" : [ "baHO7CzFHH" ], - "authenticationMethods" : [ ] - }, - "audId" : null, - "@type" : "EntityAttributes" - }, { - "createdDate" : null, - "modifiedDate" : null, - "createdBy" : null, - "modifiedBy" : null, - "name" : "EntityRoleWhiteList", - "resourceId" : "75117ec7-c74a-45cb-b216-cbbc9118fe70", - "filterEnabled" : false, - "version" : 0, - "removeRolelessEntityDescriptors" : true, - "removeEmptyEntitiesDescriptors" : true, - "retainedRoles" : [ "role1", "role2" ], - "audId" : null, - "@type" : "EntityRoleWhiteList" - } ], - "version" : 0, - "metadataURL" : null, - "backingFile" : null, - "initializeFromBackupFile" : true, - "backupFileInitNextRefreshDelay" : null, - "reloadableMetadataResolverAttributes" : { - "parserPoolRef" : null, - "taskTimerRef" : null, - "minRefreshDelay" : null, - "maxRefreshDelay" : null, - "refreshDelayFactor" : null, - "indexesRef" : null, - "resolveViaPredicatesOnly" : null, - "expirationWarningThreshold" : null - }, - "httpMetadataResolverAttributes" : { - "httpClientRef" : null, - "connectionRequestTimeout" : null, - "connectionTimeout" : null, - "socketTimeout" : null, - "disregardTLSCertificate" : false, - "tlsTrustEngineRef" : null, - "httpClientSecurityParametersRef" : null, - "proxyHost" : null, - "proxyPort" : null, - "proxyUser" : null, - "proxyPassword" : null, - "httpCaching" : null, - "httpCacheDirectory" : null, - "httpMaxCacheEntries" : null, - "httpMaxCacheEntrySize" : null - }, - "audId" : null, - "@type" : "FileBackedHttpMetadataResolver" - } - """ + MetadataResolver resolver = testObjectGenerator.buildFileBackedHttpMetadataResolver() + def resolverJson = mapper.writeValueAsString(resolver) when: //println mapper.writeValueAsString(resolver) - def deSerializedResolver = mapper.readValue(givenResolverJson, MetadataResolver) + def deSerializedResolver = mapper.readValue(resolverJson, MetadataResolver) def json = mapper.writeValueAsString(deSerializedResolver) println(json) def roundTripResolver = mapper.readValue(json, MetadataResolver) @@ -361,4 +244,4 @@ class PolymorphicResolversJacksonHandlingTests extends Specification { deSerializedResolver.metadataFilters[0] instanceof EntityAttributesFilter deSerializedResolver.metadataFilters[1] instanceof EntityRoleWhiteListFilter } -} +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/DynamicHttpMetadataResolverValidatorTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/DynamicHttpMetadataResolverValidatorTests.groovy new file mode 100644 index 000000000..21af72924 --- /dev/null +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/DynamicHttpMetadataResolverValidatorTests.groovy @@ -0,0 +1,59 @@ +package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator + +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest +import edu.internet2.tier.shibboleth.admin.ui.configuration.MetadataResolverValidationConfiguration +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.DynamicHttpMetadataResolver +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataQueryProtocolScheme +import edu.internet2.tier.shibboleth.admin.ui.security.model.Group +import edu.internet2.tier.shibboleth.admin.ui.security.model.Role +import edu.internet2.tier.shibboleth.admin.ui.security.model.User +import edu.internet2.tier.shibboleth.admin.ui.security.service.GroupServiceForTesting +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.security.test.context.support.WithMockUser +import org.springframework.test.context.ContextConfiguration +import org.springframework.transaction.annotation.Transactional + +@ContextConfiguration(classes = [MetadataResolverValidationConfiguration]) +class DynamicHttpMetadataResolverValidatorTests extends AbstractBaseDataJpaTest { + @Autowired + GroupServiceForTesting groupServiceForTesting + + @Autowired + MetadataResolverValidationService metadataResolverValidationService + + @Transactional + def setup() { + Group g = new Group() + g.setResourceId("shib") + g.setName("shib") + // This is valid for a url with "shib.org" in it + g.setValidationRegex("^(?:https?:\\/\\/)?(?:[^.]+\\.)?shib\\.org(\\/.*)?\$") + g = groupServiceForTesting.createGroup(g) + + Optional userRole = roleRepository.findByName("ROLE_USER") + User user = new User(username: "someUser", roles:[userRole.get()], password: "foo", group: g) + userService.save(user) + } + + @WithMockUser(value = "someUser", roles = ["USER"]) + def "test validation by service works properly"() { + given: + DynamicHttpMetadataResolver metadataResolver = new DynamicHttpMetadataResolver() + MetadataQueryProtocolScheme scheme = new MetadataQueryProtocolScheme() + scheme.setContent("http://foo.shib.org/bar") + metadataResolver.setMetadataRequestURLConstructionScheme(scheme) + + when: + IMetadataResolverValidator.ValidationResult result = metadataResolverValidationService.validateIfNecessary(metadataResolver) + + then: + result.isValid() + + when: "using a bad url (no match)" + metadataResolver.getMetadataRequestURLConstructionScheme().setContent("http://foo.shib.com/bar") + result = metadataResolverValidationService.validateIfNecessary(metadataResolver) + + then: + !result.isValid() + } +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/FileBackedHttpMetadataResolverValidatorTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/FileBackedHttpMetadataResolverValidatorTests.groovy new file mode 100644 index 000000000..c82f0aa18 --- /dev/null +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/FileBackedHttpMetadataResolverValidatorTests.groovy @@ -0,0 +1,52 @@ +package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator + +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest +import edu.internet2.tier.shibboleth.admin.ui.configuration.MetadataResolverValidationConfiguration +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.FileBackedHttpMetadataResolver +import edu.internet2.tier.shibboleth.admin.ui.security.model.Group +import edu.internet2.tier.shibboleth.admin.ui.security.model.Role +import edu.internet2.tier.shibboleth.admin.ui.security.model.User +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.security.test.context.support.WithMockUser +import org.springframework.test.context.ContextConfiguration +import org.springframework.transaction.annotation.Transactional + +@ContextConfiguration(classes = [MetadataResolverValidationConfiguration]) +class FileBackedHttpMetadataResolverValidatorTests extends AbstractBaseDataJpaTest { + @Autowired + MetadataResolverValidationService metadataResolverValidationService + + @Transactional + def setup() { + Group g = new Group() + g.setResourceId("shib") + g.setName("shib") + // This is valid for a url with "shib.org" in it + g.setValidationRegex("^(?:https?:\\/\\/)?(?:[^.]+\\.)?shib\\.org(\\/.*)?\$") + g = groupService.createGroup(g) + + Optional userRole = roleRepository.findByName("ROLE_USER") + User user = new User(username: "someUser", roles:[userRole.get()], password: "foo", group: g) + userService.save(user) + } + + @WithMockUser(value = "someUser", roles = ["USER"]) + def "test validation by service works properly"() { + given: + FileBackedHttpMetadataResolver metadataResolver = new FileBackedHttpMetadataResolver() + metadataResolver.setMetadataURL("http://foo.shib.org/bar") + + when: + IMetadataResolverValidator.ValidationResult result = metadataResolverValidationService.validateIfNecessary(metadataResolver) + + then: + result.isValid() + + when: "using a bad url (no match)" + metadataResolver.setMetadataURL("http://foo.shib.com/bar") + result = metadataResolverValidationService.validateIfNecessary(metadataResolver) + + then: + !result.isValid() + } +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolverValidationServiceConfigurationTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/MetadataResolverValidationServiceConfigurationTests.groovy similarity index 80% rename from backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolverValidationServiceConfigurationTests.groovy rename to backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/MetadataResolverValidationServiceConfigurationTests.groovy index 9007cb15e..f2834aa9c 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolverValidationServiceConfigurationTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/MetadataResolverValidationServiceConfigurationTests.groovy @@ -1,4 +1,4 @@ -package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers +package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator import edu.internet2.tier.shibboleth.admin.ui.configuration.TestMetadataResolverValidationConfiguration import org.springframework.beans.factory.annotation.Autowired @@ -11,14 +11,13 @@ import spock.lang.Specification */ @ContextConfiguration(classes=[TestMetadataResolverValidationConfiguration]) class MetadataResolverValidationServiceConfigurationTests extends Specification { - @Autowired @Qualifier("metadataResolverValidationServiceEmpty") MetadataResolverValidationService metadataResolverValidationServiceNoValidators @Autowired - @Qualifier("metadataResolverValidationServiceOneValidator") - MetadataResolverValidationService metadataResolverValidationServiceOneValidator + @Qualifier("metadataResolverValidationService") + MetadataResolverValidationService metadataResolverValidationService def "Validation service with no validators"() { expect: @@ -27,6 +26,6 @@ class MetadataResolverValidationServiceConfigurationTests extends Specification def "Validation service with one validator"() { expect: - !metadataResolverValidationServiceOneValidator.noValidatorsConfigured() + !metadataResolverValidationService.noValidatorsConfigured() } -} +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolverValidationServiceTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/MetadataResolverValidationServiceTests.groovy similarity index 86% rename from backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolverValidationServiceTests.groovy rename to backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/MetadataResolverValidationServiceTests.groovy index d62f07170..f0aaf8aa4 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolverValidationServiceTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/MetadataResolverValidationServiceTests.groovy @@ -1,9 +1,10 @@ -package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers +package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolver import spock.lang.Specification import spock.lang.Subject -import static edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolverValidator.* +import static edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator.IMetadataResolverValidator.* /** * @author Dmitriy Kopylenko @@ -26,7 +27,7 @@ class MetadataResolverValidationServiceTests extends Specification { def "Validation service with one validator not supporting the type of resolver returns default valid result"() { given: 'Sample metadata resolver and validation service with one validator not supporting that type' def resolver = Mock(MetadataResolver) - def validator = Mock(MetadataResolverValidator) + def validator = Mock(IMetadataResolverValidator) validator.supports(_) >> false @Subject def validationService = new MetadataResolverValidationService([validator]) @@ -41,7 +42,7 @@ class MetadataResolverValidationServiceTests extends Specification { def "Validation service with one validator supporting the type of resolver but fails its validation"() { given: 'Sample metadata resolver and validation service with one validator supporting that type' def resolver = Mock(MetadataResolver) - def validator = Mock(MetadataResolverValidator) + def validator = Mock(IMetadataResolverValidator) validator.supports(_) >> true validator.validate(_) >> new ValidationResult('Invalid') @Subject @@ -57,10 +58,10 @@ class MetadataResolverValidationServiceTests extends Specification { def "Validation service with with two validators supporting the type of resolver, first fails, second passes validation"() { given: 'Sample metadata resolver and validation service with two validators supporting that type' def resolver = Mock(MetadataResolver) - def validator1 = Mock(MetadataResolverValidator) + def validator1 = Mock(IMetadataResolverValidator) validator1.supports(_) >> true validator1.validate(_) >> new ValidationResult('Invalid') - def validator2 = Mock(MetadataResolverValidator) + def validator2 = Mock(IMetadataResolverValidator) validator2.supports(_) >> true validator2.validate(_) >> new ValidationResult(null) @Subject @@ -76,9 +77,9 @@ class MetadataResolverValidationServiceTests extends Specification { def "Validation service with with two validators, only one supporting the type of resolver, passes validation"() { given: 'Sample metadata resolver and validation service with two validators, with one supporting that type' def resolver = Mock(MetadataResolver) - def validator1 = Mock(MetadataResolverValidator) + def validator1 = Mock(IMetadataResolverValidator) validator1.supports(_) >> false - def validator2 = Mock(MetadataResolverValidator) + def validator2 = Mock(IMetadataResolverValidator) validator2.supports(_) >> true validator2.validate(_) >> new ValidationResult(null) @Subject @@ -90,4 +91,4 @@ class MetadataResolverValidationServiceTests extends Specification { then: validationResult.valid } -} +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/ResourceBackedMetadataValidatorTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/ResourceBackedMetadataValidatorTests.groovy similarity index 54% rename from backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/ResourceBackedMetadataValidatorTests.groovy rename to backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/ResourceBackedMetadataValidatorTests.groovy index 6447a7f1a..66102f4fe 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/ResourceBackedMetadataValidatorTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/validator/ResourceBackedMetadataValidatorTests.groovy @@ -1,12 +1,18 @@ -package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers - +package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator + +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ClasspathMetadataResource +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.FileBackedHttpMetadataResolver +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ResourceBackedMetadataResolver +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.SvnMetadataResource +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator.IMetadataResolverValidator +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.validator.ResourceBackedIMetadataResolverValidator import spock.lang.Specification class ResourceBackedMetadataValidatorTests extends Specification { def "Does not support foreign resolver type"() { given: - MetadataResolverValidator validator = new ResourceBackedMetadataResolverValidator() + IMetadataResolverValidator validator = new ResourceBackedIMetadataResolverValidator() FileBackedHttpMetadataResolver resolver = new FileBackedHttpMetadataResolver() expect: @@ -15,7 +21,7 @@ class ResourceBackedMetadataValidatorTests extends Specification { def "Passes validation"() { given: - MetadataResolverValidator validator = new ResourceBackedMetadataResolverValidator() + IMetadataResolverValidator validator = new ResourceBackedIMetadataResolverValidator() ResourceBackedMetadataResolver resolver = new ResourceBackedMetadataResolver().with { it.classpathMetadataResource = new ClasspathMetadataResource() it @@ -28,7 +34,7 @@ class ResourceBackedMetadataValidatorTests extends Specification { def "Does not pass validation with both resource types missing"() { given: - MetadataResolverValidator validator = new ResourceBackedMetadataResolverValidator() + IMetadataResolverValidator validator = new ResourceBackedIMetadataResolverValidator() ResourceBackedMetadataResolver resolver = new ResourceBackedMetadataResolver() expect: @@ -38,7 +44,7 @@ class ResourceBackedMetadataValidatorTests extends Specification { def "Does not pass validation with both resource types present"() { given: - MetadataResolverValidator validator = new ResourceBackedMetadataResolverValidator() + IMetadataResolverValidator validator = new ResourceBackedIMetadataResolverValidator() ResourceBackedMetadataResolver resolver = new ResourceBackedMetadataResolver().with { it.classpathMetadataResource = new ClasspathMetadataResource() it.svnMetadataResource = new SvnMetadataResource() @@ -49,4 +55,4 @@ class ResourceBackedMetadataValidatorTests extends Specification { validator.supports(resolver) !validator.validate(resolver).valid } -} +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/CustomEntityAttributeDefinitionRepositoryTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/CustomEntityAttributeDefinitionRepositoryTests.groovy index bfdc8f57a..828d82cbe 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/CustomEntityAttributeDefinitionRepositoryTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/CustomEntityAttributeDefinitionRepositoryTests.groovy @@ -1,29 +1,17 @@ package edu.internet2.tier.shibboleth.admin.ui.repository +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest +import edu.internet2.tier.shibboleth.admin.ui.domain.CustomEntityAttributeDefinition +import org.springframework.beans.factory.annotation.Autowired import org.springframework.dao.DataIntegrityViolationException import javax.persistence.EntityManager -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest -import org.springframework.data.jpa.repository.config.EnableJpaRepositories -import org.springframework.test.context.ContextConfiguration - -import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration -import edu.internet2.tier.shibboleth.admin.ui.domain.CustomEntityAttributeDefinition -import spock.lang.Specification - /** * Tests to validate the repo and model for custom entity attributes * @author chasegawa */ -@DataJpaTest -@ContextConfiguration(classes=[InternationalizationConfiguration]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan("edu.internet2.tier.shibboleth.admin.ui") -class CustomEntityAttributeDefinitionRepositoryTests extends Specification { - +class CustomEntityAttributeDefinitionRepositoryTests extends AbstractBaseDataJpaTest { @Autowired CustomEntityAttributeDefinitionRepository repo @@ -87,7 +75,7 @@ class CustomEntityAttributeDefinitionRepositoryTests extends Specification { then: // Missing non-nullable field should thrown error - final def exception = thrown(DataIntegrityViolationException) + thrown(DataIntegrityViolationException) } def "basic CRUD operations validated"() { @@ -118,7 +106,7 @@ class CustomEntityAttributeDefinitionRepositoryTests extends Specification { def cas = repo.findAll() cas.size() == 1 def caFromDb1 = cas.get(0).asType(CustomEntityAttributeDefinition) - caFromDb1.equals(ca) + caFromDb1 == ca // fetch checks repo.findByName("not a name") == null @@ -128,7 +116,7 @@ class CustomEntityAttributeDefinitionRepositoryTests extends Specification { caFromDb1.with { it.helpText = "some new text that wasn't there before" } - caFromDb1.equals(ca) == false + caFromDb1 != ca when: repo.save(caFromDb1) @@ -139,8 +127,8 @@ class CustomEntityAttributeDefinitionRepositoryTests extends Specification { def cas2 = repo.findAll() cas2.size() == 1 def caFromDb2 = cas2.get(0).asType(CustomEntityAttributeDefinition) - caFromDb2.equals(ca) == false - caFromDb2.equals(caFromDb1) + caFromDb2 != ca + caFromDb2 == caFromDb1 // delete tests when: @@ -173,7 +161,7 @@ class CustomEntityAttributeDefinitionRepositoryTests extends Specification { def cas = repo.findAll() cas.size() == 1 def ca3FromDb = cas.get(0).asType(CustomEntityAttributeDefinition) - ca3FromDb.equals(ca3) + ca3FromDb == ca3 // now update the attribute list items ca3FromDb.with { @@ -192,7 +180,7 @@ class CustomEntityAttributeDefinitionRepositoryTests extends Specification { it.resourceId = ca3FromDb.resourceId it } - caFromDb4.equals(ca4) + caFromDb4 == ca4 // now remove items ca3FromDb.with { diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/EntityDescriptorRepositoryTest.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/EntityDescriptorRepositoryTest.groovy index de4c0ac9e..f3e36f7dc 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/EntityDescriptorRepositoryTest.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/EntityDescriptorRepositoryTest.groovy @@ -1,76 +1,36 @@ package edu.internet2.tier.shibboleth.admin.ui.repository -import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import edu.internet2.tier.shibboleth.admin.ui.domain.EntityDescriptor import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.opensaml.OpenSamlChainingMetadataResolver import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects import edu.internet2.tier.shibboleth.admin.ui.security.model.Group -import edu.internet2.tier.shibboleth.admin.ui.security.repository.GroupsRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.OwnershipRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.RoleRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.UserRepository -import edu.internet2.tier.shibboleth.admin.ui.security.service.GroupServiceImpl -import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService import edu.internet2.tier.shibboleth.admin.ui.service.CustomEntityAttributesDefinitionServiceImpl import edu.internet2.tier.shibboleth.admin.ui.service.EntityDescriptorService -import edu.internet2.tier.shibboleth.admin.ui.service.JPAEntityDescriptorServiceImpl -import edu.internet2.tier.shibboleth.admin.ui.service.JPAEntityServiceImpl import org.apache.lucene.analysis.Analyzer import org.apache.lucene.analysis.en.EnglishAnalyzer import org.opensaml.saml.metadata.resolver.MetadataResolver import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest import org.springframework.boot.test.context.TestConfiguration import org.springframework.context.annotation.Bean -import org.springframework.context.annotation.ComponentScan -import org.springframework.context.annotation.Profile -import org.springframework.data.jpa.repository.config.EnableJpaRepositories -import org.springframework.test.annotation.DirtiesContext -import org.springframework.test.context.ActiveProfiles import org.springframework.test.context.ContextConfiguration -import spock.lang.Specification - -import java.util.stream.Stream import javax.persistence.EntityManager +import java.util.stream.Stream -/** - * A highly unnecessary test so that I can check to make sure that persistence is correct for the model - */ -@DataJpaTest -@ContextConfiguration(classes=[CoreShibUiConfiguration, InternationalizationConfiguration, LocalConfig]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan("edu.internet2.tier.shibboleth.admin.ui") -@DirtiesContext(methodMode = DirtiesContext.MethodMode.AFTER_METHOD) -@ActiveProfiles(value = "local") -class EntityDescriptorRepositoryTest extends Specification { +@ContextConfiguration(classes = [EDRLocalConfig]) +class EntityDescriptorRepositoryTest extends AbstractBaseDataJpaTest { @Autowired EntityDescriptorRepository entityDescriptorRepository @Autowired - private CustomEntityAttributeDefinitionRepository repository - - @Autowired - EntityManager entityManager - - @Autowired - RoleRepository roleRepository + EntityDescriptorService entityDescriptorService @Autowired - UserRepository userRepository - - @Autowired - GroupsRepository groupRepository - - OpenSamlObjects openSamlObjects = new OpenSamlObjects().with { - it.init() - it - } + EntityManager entityManager @Autowired - EntityDescriptorService service + OpenSamlObjects openSamlObjects def "SHIBUI-553.2"() { when: @@ -102,7 +62,7 @@ class EntityDescriptorRepositoryTest extends Specification { then: noExceptionThrown() } - + def "SHIBUI-1849 - extend data model for ownership"() { given: def group = new Group().with { @@ -110,39 +70,38 @@ class EntityDescriptorRepositoryTest extends Specification { it.description = "some description" it } - groupRepository.saveAndFlush(group) + group = groupService.createGroup(group) - def gList = groupRepository.findAll() + def gList = groupService.findAll() def groupFromDb = gList.get(0).asType(Group) - + def ed = openSamlObjects.unmarshalFromXml(this.class.getResource('/metadata/SHIBUI-553.2.xml').bytes) as EntityDescriptor ed.with { it.idOfOwner = groupFromDb.resourceId } entityDescriptorRepository.saveAndFlush(ed) - + when: def edStreamFromDb = entityDescriptorRepository.findAllStreamByIdOfOwner(null) - + then: - ((Stream)edStreamFromDb).count() == 0 - + ((Stream) edStreamFromDb).count() == 0 + when: def edStreamFromDb2 = entityDescriptorRepository.findAllStreamByIdOfOwner("random value") - + then: - ((Stream)edStreamFromDb2).count() == 0 - + ((Stream) edStreamFromDb2).count() == 0 + when: def edStreamFromDb3 = entityDescriptorRepository.findAllStreamByIdOfOwner(groupFromDb.resourceId) - + then: - ((Stream)edStreamFromDb3).count() == 1 + ((Stream) edStreamFromDb3).count() == 1 } @TestConfiguration - @Profile("local") - static class LocalConfig { + private static class EDRLocalConfig { @Bean MetadataResolver metadataResolver() { new OpenSamlChainingMetadataResolver().with { @@ -156,22 +115,13 @@ class EntityDescriptorRepositoryTest extends Specification { Analyzer analyzer() { return new EnglishAnalyzer() } - - @Bean - GroupServiceImpl groupService(GroupsRepository repo, OwnershipRepository ownershipRepository) { - new GroupServiceImpl().with { - it.groupRepository = repo - it.ownershipRepository = ownershipRepository - return it - } - } - + @Bean - CustomEntityAttributesDefinitionServiceImpl customEntityAttributesDefinitionServiceImpl() { + CustomEntityAttributesDefinitionServiceImpl customEntityAttributesDefinitionServiceImpl(EntityManager entityManager, CustomEntityAttributeDefinitionRepository customEntityAttributeDefinitionRepository) { new CustomEntityAttributesDefinitionServiceImpl().with { - it.entityManager = entityManager - it.repository = repository - return it + it.entityManager = entityManager + it.repository = customEntityAttributeDefinitionRepository + return it } } } diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/FilterRepositoryTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/FilterRepositoryTests.groovy index f233684fd..4041b9be1 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/FilterRepositoryTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/FilterRepositoryTests.groovy @@ -1,35 +1,25 @@ package edu.internet2.tier.shibboleth.admin.ui.repository -import javax.persistence.EntityManager - -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest -import org.springframework.data.jpa.repository.config.EnableJpaRepositories -import org.springframework.test.context.ContextConfiguration - import com.fasterxml.jackson.databind.ObjectMapper - -import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.TestConfiguration -import edu.internet2.tier.shibboleth.admin.ui.domain.CustomEntityAttributeDefinition +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilter import edu.internet2.tier.shibboleth.admin.ui.util.TestObjectGenerator -import spock.lang.Specification - -@DataJpaTest -@ContextConfiguration(classes=[CoreShibUiConfiguration, SearchConfiguration, TestConfiguration, InternationalizationConfiguration]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan("edu.internet2.tier.shibboleth.admin.ui") -class FilterRepositoryTests extends Specification { +import edu.internet2.tier.shibboleth.admin.ui.util.WithMockAdmin +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.transaction.annotation.Transactional +class FilterRepositoryTests extends AbstractBaseDataJpaTest { @Autowired - FilterRepository repositoryUnderTest - - @Autowired - EntityManager entityManager + FilterRepository filterRepository + + @Transactional + def setup() { + filterRepository.deleteAll() + } + + def cleanup() { + filterRepository.deleteAll() + } def "EntityAttributesFilter hashcode works as desired"() { given: @@ -64,26 +54,23 @@ class FilterRepositoryTests extends Specification { when: def filter = new ObjectMapper().readValue(entityAttributesFilterJson.bytes, EntityAttributesFilter) - def persistedFilter = repositoryUnderTest.save(filter) - entityManager.flush() + def persistedFilter = filterRepository.save(filter) + def item1 = filterRepository.findByResourceId("29a5d409-562a-41cd-acee-e9b3d7098d05") then: - def item1 = repositoryUnderTest.findByResourceId(persistedFilter.resourceId) - entityManager.clear() - def item2 = repositoryUnderTest.findByResourceId(persistedFilter.resourceId) - - item1.hashCode() == item2.hashCode() + item1.hashCode() == persistedFilter.hashCode() } + @WithMockAdmin def "NameIdFormatFilter is able to be persisted to RDBMS"() { given: def nameIdFormatFilter = TestObjectGenerator.nameIdFormatFilter() when: - def persistedFilter = repositoryUnderTest.save(nameIdFormatFilter) + def persistedFilter = filterRepository.save(nameIdFormatFilter) then: persistedFilter.audId > 0L persistedFilter.formats.size() == 1 } -} +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/MetadataResolverRepositoryTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/MetadataResolverRepositoryTests.groovy index 99ff22481..2030a25d6 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/MetadataResolverRepositoryTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/MetadataResolverRepositoryTests.groovy @@ -1,26 +1,15 @@ package edu.internet2.tier.shibboleth.admin.ui.repository -import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.TestConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilter import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilterTarget import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.DynamicHttpMetadataResolver import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.FileBackedHttpMetadataResolver import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.LocalDynamicMetadataResolver import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolver -import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService import edu.internet2.tier.shibboleth.admin.ui.service.EntityDescriptorService -import edu.internet2.tier.shibboleth.admin.ui.service.JPAEntityDescriptorServiceImpl -import edu.internet2.tier.shibboleth.admin.ui.service.JPAEntityServiceImpl import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest -import org.springframework.data.jpa.repository.config.EnableJpaRepositories -import org.springframework.test.annotation.DirtiesContext -import org.springframework.test.context.ContextConfiguration -import spock.lang.Specification +import org.springframework.test.annotation.Rollback import javax.persistence.EntityManager @@ -29,12 +18,8 @@ import static edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttrib /** * Testing persistence of the MetadataResolver models */ -@DataJpaTest -@ContextConfiguration(classes = [CoreShibUiConfiguration, SearchConfiguration, TestConfiguration, InternationalizationConfiguration]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan("edu.internet2.tier.shibboleth.admin.ui") -@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS) -class MetadataResolverRepositoryTests extends Specification { +@Rollback +class MetadataResolverRepositoryTests extends AbstractBaseDataJpaTest { @Autowired MetadataResolverRepository metadataResolverRepository @@ -245,4 +230,4 @@ class MetadataResolverRepositoryTests extends Specification { } resolver } -} +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/scheduled/EntityDescriptorFilesScheduledTasksTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/scheduled/EntityDescriptorFilesScheduledTasksTests.groovy index 41aa6a9cb..b9e9856dd 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/scheduled/EntityDescriptorFilesScheduledTasksTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/scheduled/EntityDescriptorFilesScheduledTasksTests.groovy @@ -1,42 +1,29 @@ package edu.internet2.tier.shibboleth.admin.ui.scheduled -import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.TestConfiguration +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.EntityDescriptorRepresentation import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.OrganizationRepresentation import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects import edu.internet2.tier.shibboleth.admin.ui.repository.EntityDescriptorRepository -import edu.internet2.tier.shibboleth.admin.ui.security.service.IGroupService import edu.internet2.tier.shibboleth.admin.ui.service.FileCheckingFileWritingService import edu.internet2.tier.shibboleth.admin.ui.service.JPAEntityDescriptorServiceImpl import edu.internet2.tier.shibboleth.admin.ui.util.RandomGenerator import edu.internet2.tier.shibboleth.admin.util.EntityDescriptorConversionUtils import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest -import org.springframework.data.jpa.repository.config.EnableJpaRepositories -import org.springframework.test.context.ContextConfiguration import org.xmlunit.builder.DiffBuilder import org.xmlunit.builder.Input -import spock.lang.Specification /** * @author Bill Smith (wsmith@unicon.net) */ -@DataJpaTest -@ContextConfiguration(classes=[CoreShibUiConfiguration, SearchConfiguration, TestConfiguration, InternationalizationConfiguration]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan("edu.internet2.tier.shibboleth.admin.ui") -class EntityDescriptorFilesScheduledTasksTests extends Specification { +class EntityDescriptorFilesScheduledTasksTests extends AbstractBaseDataJpaTest { @Autowired OpenSamlObjects openSamlObjects @Autowired - IGroupService groupService - + JPAEntityDescriptorServiceImpl service + def tempPath = "/tmp/shibui" def directory @@ -46,10 +33,7 @@ class EntityDescriptorFilesScheduledTasksTests extends Specification { def entityDescriptorFilesScheduledTasks def randomGenerator - - - def service - + def setup() { randomGenerator = new RandomGenerator() tempPath = tempPath + randomGenerator.randomRangeInt(10000, 20000) @@ -57,9 +41,10 @@ class EntityDescriptorFilesScheduledTasksTests extends Specification { entityDescriptorFilesScheduledTasks = new EntityDescriptorFilesScheduledTasks(tempPath, entityDescriptorRepository, openSamlObjects, new FileCheckingFileWritingService()) directory = new File(tempPath) directory.mkdir() - - service = new JPAEntityDescriptorServiceImpl() - service.openSamlObjects = openSamlObjects + } + + def cleanup() { + directory.deleteDir() } def "generateEntityDescriptorFiles properly generates a file from an Entity Descriptor"() { @@ -131,8 +116,4 @@ class EntityDescriptorFilesScheduledTasksTests extends Specification { def files = new File(tempPath, file) files.size() == 0 } - - def cleanup() { - directory.deleteDir() - } } \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/controller/GroupsControllerIntegrationTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/controller/GroupsControllerIntegrationTests.groovy index a19e4f807..c4a76e832 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/controller/GroupsControllerIntegrationTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/controller/GroupsControllerIntegrationTests.groovy @@ -1,27 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.security.controller -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.* -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.* - -import javax.persistence.EntityManager - -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest -import org.springframework.data.jpa.repository.config.EnableJpaRepositories -import org.springframework.http.HttpStatus -import org.springframework.http.MediaType -import org.springframework.security.test.context.support.WithMockUser -import org.springframework.test.annotation.DirtiesContext -import org.springframework.test.annotation.Rollback -import org.springframework.test.context.ContextConfiguration -import org.springframework.test.web.servlet.MockMvc -import org.springframework.test.web.servlet.setup.MockMvcBuilders - -import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.TestConfiguration +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import edu.internet2.tier.shibboleth.admin.ui.exception.EntityNotFoundException import edu.internet2.tier.shibboleth.admin.ui.security.exception.GroupDeleteException import edu.internet2.tier.shibboleth.admin.ui.security.exception.GroupExistsConflictException @@ -29,79 +8,44 @@ import edu.internet2.tier.shibboleth.admin.ui.security.model.Group import edu.internet2.tier.shibboleth.admin.ui.security.model.Role import edu.internet2.tier.shibboleth.admin.ui.security.model.User import edu.internet2.tier.shibboleth.admin.ui.security.repository.GroupsRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.RoleRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.UserRepository -import edu.internet2.tier.shibboleth.admin.ui.security.service.GroupServiceImpl -import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService +import edu.internet2.tier.shibboleth.admin.ui.security.service.IGroupService +import edu.internet2.tier.shibboleth.admin.ui.util.WithMockAdmin import groovy.json.JsonOutput -import spock.lang.Specification +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.http.MediaType +import org.springframework.test.annotation.Rollback +import org.springframework.test.web.servlet.MockMvc +import org.springframework.test.web.servlet.setup.MockMvcBuilders +import org.springframework.transaction.annotation.Transactional -@DataJpaTest -@ContextConfiguration(classes=[CoreShibUiConfiguration, TestConfiguration, InternationalizationConfiguration, SearchConfiguration]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan("edu.internet2.tier.shibboleth.admin.ui") -@DirtiesContext -class GroupsControllerIntegrationTests extends Specification { - @Autowired - EntityManager entityManager +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.* +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.* +@Rollback +class GroupsControllerIntegrationTests extends AbstractBaseDataJpaTest { @Autowired GroupsRepository groupsRepository - - @Autowired - GroupServiceImpl groupService - - @Autowired - RoleRepository roleRepository - - @Autowired - UserRepository userRepository - - @Autowired - UserService userService - + static RESOURCE_URI = '/api/admin/groups' MockMvc mockMvc - + + @Transactional def setup() { - groupService.ensureAdminGroupExists() - GroupController groupController = new GroupController().with ({ it.groupService = this.groupService it }) mockMvc = MockMvcBuilders.standaloneSetup(groupController).build() - - if (roleRepository.count() == 0) { - def roles = [new Role().with { - name = 'ROLE_ADMIN' - it - }, new Role().with { - name = 'ROLE_USER' - it - }, new Role().with { - name = 'ROLE_NONE' - it - }] - roles.each { - roleRepository.save(it) - } + + if (userRepository.findByUsername("someUser").isEmpty()) { + Optional userRole = roleRepository.findByName("ROLE_USER") + User user = new User(username: "someUser", roles: [userRole.get()], password: "foo") + userService.save(user) } - - Optional adminRole = roleRepository.findByName("ROLE_ADMIN") - User adminUser = new User(username: "admin", roles: [adminRole.get()], password: "foo") - userService.save(adminUser) - - Optional userRole = roleRepository.findByName("ROLE_USER") - User user = new User(username: "someUser", roles:[userRole.get()], password: "foo") - userService.save(user) - entityManager.flush() } - - @Rollback - @WithMockUser(value = "admin", roles = ["ADMIN"]) + @WithMockAdmin def 'POST new group persists properly'() { given: def newGroup = [name: 'Foo', @@ -130,14 +74,13 @@ class GroupsControllerIntegrationTests extends Specification { mockMvc.perform(post(RESOURCE_URI).contentType(MediaType.APPLICATION_JSON) .content(JsonOutput.toJson(newGroup)) .accept(MediaType.APPLICATION_JSON)) - 1 == 2 + false } catch (Throwable expected) { expected instanceof GroupExistsConflictException } } - @Rollback - @WithMockUser(value = "admin", roles = ["ADMIN"]) + @WithMockAdmin def 'PUT (update) existing group persists properly'() { given: groupsRepository.deleteByResourceId("AAA") @@ -172,14 +115,13 @@ class GroupsControllerIntegrationTests extends Specification { mockMvc.perform(put(RESOURCE_URI).contentType(MediaType.APPLICATION_JSON) .content(JsonOutput.toJson(newGroup)) .accept(MediaType.APPLICATION_JSON)) - 1 == 2 + false } catch (Throwable expected) { expected instanceof EntityNotFoundException } } - @Rollback - @WithMockUser(value = "admin", roles = ["ADMIN"]) + @WithMockAdmin def 'GET checks for groups (when there are existing groups)'() { given: groupsRepository.deleteByResourceId("AAA") @@ -214,26 +156,22 @@ class GroupsControllerIntegrationTests extends Specification { // 'GET request for a single non-existent group in a system that has groups' try { mockMvc.perform(get("$RESOURCE_URI/CCC")) - 1 == 2 + false } catch (Throwable expected) { expected instanceof EntityNotFoundException } } - @Rollback - @WithMockUser(value = "admin", roles = ["ADMIN"]) + @WithMockAdmin def 'DELETE performs correctly when group attached to a user'() { // When the user is created in the setup method above, a new group "someUser" is created to be associated with that user // User user = new User(username: "someUser", roles:[userRole.get()], password: "foo") // userService.save(user) - - when: 'try to delete group that is attached to a user' - def nothingtodo - - then: + + expect: try { mockMvc.perform(delete("$RESOURCE_URI/someUser")) - 1 == 2 + false } catch(Throwable expected) { expected instanceof GroupDeleteException } @@ -254,4 +192,32 @@ class GroupsControllerIntegrationTests extends Specification { then: mockMvc.perform(delete("$RESOURCE_URI/someUser")) } + + def 'group regex checks'() { + given: + groupsRepository.deleteByResourceId("AAA") + Group groupAAA = new Group().with({ + it.name = "AAA" + it.description = "AAA" + it.resourceId = "AAA" + it.validationRegex = "/foo.*/" + it + }) + + when: + def result = mockMvc.perform(post(RESOURCE_URI).contentType(MediaType.APPLICATION_JSON) + .content(JsonOutput.toJson(groupAAA)).accept(MediaType.APPLICATION_JSON)) + + then: + result.andExpect(status().isCreated()) + .andExpect(content().contentType(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("\$.name").value("AAA")) + .andExpect(jsonPath("\$.resourceId").value("AAA")) + .andExpect(jsonPath("\$.description").value("AAA")) + .andExpect(jsonPath("\$.validationRegex").value("/foo.*/")) + + !groupService.doesStringMatchGroupPattern("AAA", "foobar") + !groupService.doesStringMatchGroupPattern("AAA", "something") + groupService.doesStringMatchGroupPattern("AAA", "/foobar/") + } } \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/controller/UsersControllerIntegrationTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/controller/UsersControllerIntegrationTests.groovy index f1bd5a591..84f6cb33c 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/controller/UsersControllerIntegrationTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/controller/UsersControllerIntegrationTests.groovy @@ -1,86 +1,50 @@ package edu.internet2.tier.shibboleth.admin.ui.security.controller -import java.time.LocalDateTime -import java.time.format.DateTimeFormatter - +import com.fasterxml.jackson.databind.ObjectMapper +import com.fasterxml.jackson.databind.SerializationFeature +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest +import edu.internet2.tier.shibboleth.admin.ui.controller.support.RestControllersSupport +import edu.internet2.tier.shibboleth.admin.ui.security.model.Group +import edu.internet2.tier.shibboleth.admin.ui.security.model.User +import edu.internet2.tier.shibboleth.admin.ui.util.WithMockAdmin +import groovy.json.JsonOutput import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest +import org.springframework.boot.test.context.TestConfiguration import org.springframework.context.annotation.Bean -import org.springframework.context.annotation.ComponentScan -import org.springframework.context.annotation.Profile -import org.springframework.data.jpa.repository.config.EnableJpaRepositories import org.springframework.http.MediaType import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder -import org.springframework.security.test.context.support.WithMockUser -import org.springframework.test.annotation.DirtiesContext import org.springframework.test.annotation.Rollback -import org.springframework.test.context.ActiveProfiles import org.springframework.test.context.ContextConfiguration import org.springframework.test.web.servlet.MockMvc import org.springframework.test.web.servlet.setup.MockMvcBuilders import org.springframework.transaction.annotation.Transactional +import org.springframework.web.client.HttpClientErrorException +import org.springframework.web.util.NestedServletException -import com.fasterxml.jackson.databind.ObjectMapper -import com.fasterxml.jackson.databind.SerializationFeature -import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule -import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer +import java.time.LocalDateTime +import java.time.format.DateTimeFormatter -import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.TestConfiguration -import edu.internet2.tier.shibboleth.admin.ui.controller.support.RestControllersSupport -import edu.internet2.tier.shibboleth.admin.ui.security.model.Group -import edu.internet2.tier.shibboleth.admin.ui.security.model.Role -import edu.internet2.tier.shibboleth.admin.ui.security.model.User -import edu.internet2.tier.shibboleth.admin.ui.security.repository.GroupsRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.OwnershipRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.RoleRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.UserRepository -import edu.internet2.tier.shibboleth.admin.ui.security.service.GroupServiceForTesting -import edu.internet2.tier.shibboleth.admin.ui.security.service.GroupServiceImpl -import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService -import groovy.json.JsonOutput -import spock.lang.Specification - -import static org.springframework.http.MediaType.* -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.* -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.* - -@DataJpaTest -@ContextConfiguration(classes=[CoreShibUiConfiguration, TestConfiguration, InternationalizationConfiguration, SearchConfiguration, LocalConfig]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan("edu.internet2.tier.shibboleth.admin.ui") -@DirtiesContext -@ActiveProfiles(["no-auth", "local"]) -@ComponentScan(basePackages="{ edu.internet2.tier.shibboleth.admin.ui.configuration }") -class UsersControllerIntegrationTests extends Specification { - @Autowired - GroupsRepository groupsRepository - - @Autowired - GroupServiceForTesting groupService - - @Autowired - def ObjectMapper mapper - - @Autowired - OwnershipRepository ownershipRepository - - @Autowired - RoleRepository roleRepository - - @Autowired - UserRepository userRepository - +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.patch +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status + +@ContextConfiguration(classes=[UCILocalConfig]) +@Rollback +class UsersControllerIntegrationTests extends AbstractBaseDataJpaTest { @Autowired - UserService userService + ObjectMapper mapper - def MockMvc mockMvc + MockMvc mockMvc def users static RESOURCE_URI = '/api/admin/users' + static VALIDATION_REGEX = "/^(?:https?:\\/\\/)?(?:[^.]+\\.)?shib\\.org(\\/.*)?\$/" def setup() { def controller = new UsersController(userRepository, userService) @@ -95,48 +59,30 @@ class UsersControllerIntegrationTests extends Specification { } userRepository.flush() - roleRepository.deleteAll() - roleRepository.flush() - groupService.clearAllForTesting() //leaves us just the admingroup - def groups = [ new Group().with { it.name = "A1" it.description = "AAA Group" it.resourceId = "AAA" + it.validationRegex = VALIDATION_REGEX it }, new Group().with { it.name = "B1" it.description = "BBB Group" it.resourceId = "BBB" + it.validationRegex = VALIDATION_REGEX it }] groups.each { try { - groupsRepository.save(it) + groupRepository.save(it) } catch (Throwable e) { - // Must already exist (from a unit test) + // ??? } } - groupsRepository.flush() + groupRepository.flush() - if (roleRepository.count() == 0) { - def roles = [new Role().with { - name = 'ROLE_ADMIN' - it - }, new Role().with { - name = 'ROLE_USER' - it - }, new Role().with { - name = 'ROLE_NONE' - it - }] - roles.each { - roleRepository.save(it) - } - } - roleRepository.flush() if (userRepository.count() == 0) { users = [new User().with { username = 'admin' @@ -172,12 +118,12 @@ class UsersControllerIntegrationTests extends Specification { it }] users.each { - it = userService.save(it) + userService.save(it) } } } - @WithMockUser(value = "admin", roles = ["ADMIN"]) + @WithMockAdmin def 'GET ALL users (when there are existing users)'() { // given: users created in setup @@ -190,21 +136,25 @@ class UsersControllerIntegrationTests extends Specification { .andExpect(jsonPath("\$.[0].emailAddress").value("joe@institution.edu")) .andExpect(jsonPath("\$.[0].role").value("ROLE_ADMIN")) .andExpect(jsonPath("\$.[0].groupId").value("admingroup")) + .andExpect(jsonPath("\$.[0].userGroups.[0].validationRegex").isEmpty()) .andExpect(jsonPath("\$.[1].username").value("nonadmin")) .andExpect(jsonPath("\$.[1].emailAddress").value("peter@institution.edu")) .andExpect(jsonPath("\$.[1].role").value("ROLE_USER")) - .andExpect(jsonPath("\$.[1].groupId").value("nonadmin")) + .andExpect(jsonPath("\$.[1].groupId").value("nonadmin")) + .andExpect(jsonPath("\$.[1].userGroups.[0].validationRegex").value(null)) .andExpect(jsonPath("\$.[2].username").value("none")) .andExpect(jsonPath("\$.[2].emailAddress").value("badboy@institution.edu")) .andExpect(jsonPath("\$.[2].role").value("ROLE_NONE")) - .andExpect(jsonPath("\$.[2].groupId").value("none")) + .andExpect(jsonPath("\$.[2].groupId").value("none")) + .andExpect(jsonPath("\$.[2].userGroups.[0].validationRegex").value(null)) .andExpect(jsonPath("\$.[3].username").value("anonymousUser")) .andExpect(jsonPath("\$.[3].emailAddress").value("anon@institution.edu")) .andExpect(jsonPath("\$.[3].role").value("ROLE_ADMIN")) .andExpect(jsonPath("\$.[3].groupId").value("admingroup")) + .andExpect(jsonPath("\$.[3].userGroups.[0].validationRegex").isEmpty()) } - @WithMockUser(value = "admin", roles = ["ADMIN"]) + @WithMockAdmin def 'GET ONE existing user'() { when: 'GET request is made for one existing user' def result = mockMvc.perform(get("$RESOURCE_URI/admin")) @@ -216,9 +166,10 @@ class UsersControllerIntegrationTests extends Specification { .andExpect(jsonPath("\$.emailAddress").value("joe@institution.edu")) .andExpect(jsonPath("\$.role").value("ROLE_ADMIN")) .andExpect(jsonPath("\$.groupId").value("admingroup")) + .andExpect(jsonPath("\$.userGroups.[0].validationRegex").isEmpty()) } - @WithMockUser(value = "admin", roles = ["ADMIN"]) + @WithMockAdmin def 'GET ONE NON-existing user'() { when: 'GET request is made for one NON-existing user' def result = mockMvc.perform(get("$RESOURCE_URI/bogus")) @@ -227,8 +178,7 @@ class UsersControllerIntegrationTests extends Specification { result.andExpect(status().isNotFound()) } - @Rollback - @WithMockUser(value = "admin", roles = ["ADMIN"]) + @WithMockAdmin def 'DELETE ONE existing user'() { when: 'GET request is made for one existing user' def result = mockMvc.perform(get("$RESOURCE_URI/nonadmin")) @@ -244,16 +194,15 @@ class UsersControllerIntegrationTests extends Specification { // 'GET request is made for the deleted user' try { - result = mockMvc.perform(get("$RESOURCE_URI/nonadmin")) + mockMvc.perform(get("$RESOURCE_URI/nonadmin")) false } - catch (org.springframework.web.util.NestedServletException expectedResult) { - expectedResult.getCause() instanceof org.springframework.web.client.HttpClientErrorException + catch (NestedServletException expectedResult) { + expectedResult.getCause() instanceof HttpClientErrorException } } - @Rollback - @WithMockUser(value = "admin", roles = ["ADMIN"]) + @WithMockAdmin def 'POST new user persists properly'() { given: def newUser = [firstName: 'Foo', @@ -273,8 +222,7 @@ class UsersControllerIntegrationTests extends Specification { result.andExpect(status().isOk()) } - @Rollback - @WithMockUser(value = "admin", roles = ["ADMIN"]) + @WithMockAdmin def 'POST new duplicate username returns 409'() { given: def newUser = [firstName: 'Foo', @@ -298,14 +246,13 @@ class UsersControllerIntegrationTests extends Specification { result.andExpect(status().isConflict()) } - @Rollback - @WithMockUser(value = "admin", roles = ["ADMIN"]) + @WithMockAdmin def 'PATCH updates user properly'() { given: - def String userString = mockMvc.perform(get("$RESOURCE_URI/none")).andReturn().getResponse().getContentAsString() - def User user = mapper.readValue(userString, User.class); + String userString = mockMvc.perform(get("$RESOURCE_URI/none")).andReturn().getResponse().getContentAsString() + User user = mapper.readValue(userString, User.class) user.setFirstName("somethingnew") - + when: def result = mockMvc.perform(patch("$RESOURCE_URI/$user.username") .contentType(MediaType.APPLICATION_JSON) @@ -314,37 +261,39 @@ class UsersControllerIntegrationTests extends Specification { then: result.andExpect(status().isOk()) - + when: user.setGroupId("AAA") def resultNewGroup = mockMvc.perform(patch("$RESOURCE_URI/$user.username").contentType(MediaType.APPLICATION_JSON) .content(mapper.writeValueAsString(user)).accept(MediaType.APPLICATION_JSON)) - + then: resultNewGroup.andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON)) .andExpect(jsonPath("\$.groupId").value("AAA")) - - def groups = ownershipRepository.findAllGroupsForUser(user.username) + .andExpect(jsonPath("\$.userGroups.[0].validationRegex").value(VALIDATION_REGEX)) + + def groups = ownershipRepository.findAllGroupsForUser(user.username) groups.size() == 1 - + when: 'Updating user role to admin puts the user in the admin group' user.setRole("ROLE_ADMIN") user.setGroupId("AAA") // Dont care that this is different, ROLE_ADMIN should take precedence def resultUserNewRole = mockMvc.perform(patch("$RESOURCE_URI/$user.username").contentType(MediaType.APPLICATION_JSON) .content(mapper.writeValueAsString(user)).accept(MediaType.APPLICATION_JSON)) - + then: resultUserNewRole.andExpect(status().isOk()) - .andExpect(content().contentType(MediaType.APPLICATION_JSON)) - .andExpect(jsonPath("\$.groupId").value("admingroup")) - + .andExpect(content().contentType(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("\$.groupId").value("admingroup")) + .andExpect(jsonPath("\$.userGroups.[0].validationRegex").isEmpty()) + def groupsCheck = ownershipRepository.findAllGroupsForUser(user.username) groupsCheck.size() == 1 - + } - @WithMockUser(value = "admin", roles = ["ADMIN"]) + @WithMockAdmin def 'PATCH detects unknown username'() { given: def newUser = [firstName: 'Foo', @@ -362,28 +311,16 @@ class UsersControllerIntegrationTests extends Specification { then: result.andExpect(status().isNotFound()) } - - @org.springframework.boot.test.context.TestConfiguration - @Profile(value = "local") - static class LocalConfig { - @Bean - GroupServiceForTesting groupServiceForTesting(GroupsRepository repo, OwnershipRepository ownershipRepository) { - GroupServiceForTesting result = new GroupServiceForTesting(new GroupServiceImpl().with { - it.groupRepository = repo - it.ownershipRepository = ownershipRepository - return it - }) - result.ensureAdminGroupExists() - return result - } - + + @TestConfiguration + private static class UCILocalConfig { @Bean ObjectMapper objectMapper() { JavaTimeModule module = new JavaTimeModule() LocalDateTimeDeserializer localDateTimeDeserializer = new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSS")) module.addDeserializer(LocalDateTime.class, localDateTimeDeserializer) - + return Jackson2ObjectMapperBuilder.json().modules(module).featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS).build() } } -} \ No newline at end of file +} diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/repository/GroupsRepositoryTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/repository/GroupsRepositoryTests.groovy index b2d079dfc..a81443166 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/repository/GroupsRepositoryTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/repository/GroupsRepositoryTests.groovy @@ -1,43 +1,24 @@ package edu.internet2.tier.shibboleth.admin.ui.security.repository -import org.springframework.boot.test.context.TestConfiguration -import org.springframework.context.annotation.Profile -import org.springframework.dao.DataIntegrityViolationException - -import javax.persistence.EntityManager -import javax.transaction.Transactional - +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest +import edu.internet2.tier.shibboleth.admin.ui.security.model.Group +import edu.internet2.tier.shibboleth.admin.ui.security.model.Ownership import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest -import org.springframework.context.annotation.Bean -import org.springframework.data.jpa.repository.config.EnableJpaRepositories +import org.springframework.dao.DataIntegrityViolationException import org.springframework.test.annotation.Rollback -import org.springframework.test.context.ActiveProfiles -import org.springframework.test.context.ContextConfiguration +import org.springframework.transaction.annotation.Transactional -import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration -import edu.internet2.tier.shibboleth.admin.ui.security.model.Group -import edu.internet2.tier.shibboleth.admin.ui.security.model.Ownership -import edu.internet2.tier.shibboleth.admin.ui.security.model.listener.GroupUpdatedEntityListener -import spock.lang.Specification +import javax.persistence.EntityManager /** * Tests to validate the repo and model for groups * @author chasegawa */ -@DataJpaTest -@ContextConfiguration(classes=[InternationalizationConfiguration, LocalConfig]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan("edu.internet2.tier.shibboleth.admin.ui") -@ActiveProfiles(["test","local"]) -class GroupsRepositoryTests extends Specification { +@Rollback +class GroupsRepositoryTests extends AbstractBaseDataJpaTest { @Autowired GroupsRepository groupsRepo - - @Autowired - OwnershipRepository ownershipRepository - + @Transactional def setup() { groupsRepo.deleteAll() @@ -90,7 +71,7 @@ class GroupsRepositoryTests extends Specification { ownershipRepository.save(it) } } - + def "group ownership tests"() { when: "Simple create test" def group = new Group().with { @@ -99,18 +80,20 @@ class GroupsRepositoryTests extends Specification { it.resourceId = "g1" it } - Group savedGroup = groupsRepo.saveAndFlush(group) - Collection all = ownershipRepository.findAllByOwner(savedGroup) + groupsRepo.saveAndFlush(group) + entityManager.clear() + Group groupFromDb = groupsRepo.findByResourceId("g1") + groupFromDb.getOwnedItems() + Collection groupOwnedItems = ownershipRepository.findAllByOwner(groupFromDb) then: - all.size() == 3 - savedGroup.ownedItems.size() == 3 - all.each { - savedGroup.ownedItems.contains(it) + groupOwnedItems.size() == 3 + groupFromDb.getOwnedItems().size() == 3 + groupOwnedItems.each { + groupFromDb.ownedItems.contains(it) } } - @Rollback def "simple create test"() { given: def group = new Group().with { @@ -134,12 +117,12 @@ class GroupsRepositoryTests extends Specification { // save check def gList = groupsRepo.findAll() gList.size() == 1 - def groupFromDb = gList.get(0).asType(Group) - groupFromDb.equals(group) + def groupFromDb = gList.get(0) as Group + groupFromDb == group // fetch checks groupsRepo.findByResourceId("not an id") == null - groupsRepo.findByResourceId(groupFromDb.resourceId).equals(group) + groupsRepo.findByResourceId(groupFromDb.resourceId) == group } def "expected error"() { @@ -154,7 +137,7 @@ class GroupsRepositoryTests extends Specification { def gList = groupsRepo.findAll() then: - gList.size() == 0 + gList.isEmpty() // save check when: @@ -163,9 +146,10 @@ class GroupsRepositoryTests extends Specification { then: // Missing non-nullable field (name) should thrown error thrown(DataIntegrityViolationException) + entityManager.clear() + groupsRepo.findAll().isEmpty() } - @Rollback def "basic CRUD operations validated"() { given: def group = new Group().with { @@ -189,8 +173,8 @@ class GroupsRepositoryTests extends Specification { // save check def gList = groupsRepo.findAll() gList.size() == 1 - def groupFromDb = gList.get(0).asType(Group) - groupFromDb.equals(group) + def groupFromDb = gList.get(0) as Group + groupFromDb == group // update check groupFromDb.with { @@ -204,16 +188,16 @@ class GroupsRepositoryTests extends Specification { then: def gList2 = groupsRepo.findAll() gList2.size() == 1 - def groupFromDb2 = gList2.get(0).asType(Group) + def groupFromDb2 = gList2.get(0) as Group groupFromDb2.equals(group) == false - groupFromDb2.equals(groupFromDb) + groupFromDb2 == groupFromDb // delete tests when: groupsRepo.delete(groupFromDb2) then: - groupsRepo.findAll().size() == 0 + groupsRepo.findAll().isEmpty() when: def nothingThere = groupsRepo.findByResourceId(null) @@ -221,15 +205,4 @@ class GroupsRepositoryTests extends Specification { then: nothingThere == null } - - @TestConfiguration - @Profile("local") - static class LocalConfig { - @Bean - GroupUpdatedEntityListener groupUpdatedEntityListener(OwnershipRepository repo) { - GroupUpdatedEntityListener result = new GroupUpdatedEntityListener() - result.init(repo) - return result - } - } } \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/repository/OwnershipRepositoryTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/repository/OwnershipRepositoryTests.groovy index 5e36f19ce..7da58882b 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/repository/OwnershipRepositoryTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/repository/OwnershipRepositoryTests.groovy @@ -1,36 +1,20 @@ package edu.internet2.tier.shibboleth.admin.ui.security.repository -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest -import org.springframework.data.jpa.repository.config.EnableJpaRepositories -import org.springframework.test.annotation.Rollback -import org.springframework.test.context.ContextConfiguration -import org.springframework.transaction.annotation.Transactional - -import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import edu.internet2.tier.shibboleth.admin.ui.security.model.Ownable import edu.internet2.tier.shibboleth.admin.ui.security.model.OwnableType import edu.internet2.tier.shibboleth.admin.ui.security.model.Owner import edu.internet2.tier.shibboleth.admin.ui.security.model.OwnerType import edu.internet2.tier.shibboleth.admin.ui.security.model.Ownership -import spock.lang.Specification +import org.springframework.transaction.annotation.Transactional /** * Tests to validate the repo and model for groups * @author chasegawa */ -@DataJpaTest -@ContextConfiguration(classes=[InternationalizationConfiguration]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan("edu.internet2.tier.shibboleth.admin.ui") -class OwnershipRepositoryTests extends Specification { - @Autowired - OwnershipRepository repo - +class OwnershipRepositoryTests extends AbstractBaseDataJpaTest { @Transactional def setup() { - repo.deleteAll() def ownerships = [ new Ownership().with { it.ownedId = "aaa" @@ -76,21 +60,20 @@ class OwnershipRepositoryTests extends Specification { } ] ownerships.each { - repo.save(it) + ownershipRepository.save(it) } } - - @Rollback + def "test clearUsersGroups"() { when: "remove entries where the user is the owned object of a group" - repo.clearUsersGroups("aaa") - def result = repo.findAllGroupsForUser("aaa") + ownershipRepository.clearUsersGroups("aaa") + def result = ownershipRepository.findAllGroupsForUser("aaa") then: result.size() == 0 when: "find objects owned by user aaa has not changed" - result = repo.findOwnedByUser("aaa") + result = ownershipRepository.findOwnedByUser("aaa") then: result.size() == 1 @@ -102,28 +85,26 @@ class OwnershipRepositoryTests extends Specification { } when: "remove entries where the user is the owned object of groups" - repo.clearUsersGroups("ccc") - result = repo.findAllGroupsForUser("ccc") + ownershipRepository.clearUsersGroups("ccc") + result = ownershipRepository.findAllGroupsForUser("ccc") then: result.size() == 0 } - @Rollback def "test deleteEntriesForOwnedObject"() { when: "remove entries where the user is the owned object of a group" - repo.deleteEntriesForOwnedObject(new Ownable() { + ownershipRepository.deleteEntriesForOwnedObject(new Ownable() { String getObjectId() { return "aaa" } - OwnableType getOwnableType() { OwnableType.USER } }) - def result = repo.findAllGroupsForUser("aaa") + def result = ownershipRepository.findAllGroupsForUser("aaa") then: result.size() == 0 when: "find objects owned by user aaa has not changed" - result = repo.findOwnedByUser("aaa") + result = ownershipRepository.findOwnedByUser("aaa") then: result.size() == 1 @@ -135,12 +116,11 @@ class OwnershipRepositoryTests extends Specification { } when: "remove entries where the user is the owned object of groups" - repo.deleteEntriesForOwnedObject(new Ownable() { + ownershipRepository.deleteEntriesForOwnedObject(new Ownable() { String getObjectId() { return "ccc" } - OwnableType getOwnableType() { OwnableType.USER } }) - result = repo.findAllGroupsForUser("ccc") + result = ownershipRepository.findAllGroupsForUser("ccc") then: result.size() == 0 @@ -152,9 +132,8 @@ class OwnershipRepositoryTests extends Specification { userIds.add("aaa") userIds.add("bbb") userIds.add("ccc") - def result = repo.findUsersByOwner(new Owner() { + def result = ownershipRepository.findUsersByOwner(new Owner() { String getOwnerId() { return "g1" } - OwnerType getOwnerType() { OwnerType.GROUP } }) @@ -166,9 +145,8 @@ class OwnershipRepositoryTests extends Specification { } when: - result = repo.findUsersByOwner(new Owner() { + result = ownershipRepository.findUsersByOwner(new Owner() { String getOwnerId() { return "aaa" } - OwnerType getOwnerType() { return OwnerType.USER } }) @@ -178,7 +156,7 @@ class OwnershipRepositoryTests extends Specification { def "test findOwnedByUser"() { when: "find objects owned by user" - def result = repo.findOwnedByUser("aaa") + def result = ownershipRepository.findOwnedByUser("aaa") then: result.size() == 1 @@ -195,7 +173,7 @@ class OwnershipRepositoryTests extends Specification { ArrayList groupIds = new ArrayList<>() groupIds.add("g1") groupIds.add("g2") - def result = repo.findOwnableObjectOwners(new Ownable() { + def result = ownershipRepository.findOwnableObjectOwners(new Ownable() { String getObjectId() { return "ccc" } OwnableType getOwnableType() { return OwnableType.USER } }) @@ -211,7 +189,7 @@ class OwnershipRepositoryTests extends Specification { def "test findAllGroupsForUser"() { when: "find all groups for user aaa" - def result = repo.findAllGroupsForUser("aaa") + def result = ownershipRepository.findAllGroupsForUser("aaa") then: result.size() == 1 @@ -224,7 +202,7 @@ class OwnershipRepositoryTests extends Specification { ArrayList groupIds = new ArrayList<>() groupIds.add("g1") groupIds.add("g2") - result = repo.findAllGroupsForUser("ccc") + result = ownershipRepository.findAllGroupsForUser("ccc") then: result.size() == 2 @@ -241,9 +219,8 @@ class OwnershipRepositoryTests extends Specification { userIds.add("aaa") userIds.add("bbb") userIds.add("ccc") - def result = repo.findAllByOwner(new Owner() { + def result = ownershipRepository.findAllByOwner(new Owner() { String getOwnerId() { return "g1" } - OwnerType getOwnerType() { return OwnerType.GROUP } }) @@ -255,9 +232,8 @@ class OwnershipRepositoryTests extends Specification { } when: "Find all items owned by user aaa" - result = repo.findAllByOwner(new Owner() { + result = ownershipRepository.findAllByOwner(new Owner() { String getOwnerId() { return "aaa" } - OwnerType getOwnerType() { return OwnerType.USER } }) diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/service/GroupServiceTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/service/GroupServiceTests.groovy new file mode 100644 index 000000000..c88838875 --- /dev/null +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/service/GroupServiceTests.groovy @@ -0,0 +1,83 @@ +package edu.internet2.tier.shibboleth.admin.ui.security.service + +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest +import edu.internet2.tier.shibboleth.admin.ui.security.exception.InvalidGroupRegexException +import edu.internet2.tier.shibboleth.admin.ui.security.model.Group +import org.springframework.test.annotation.Rollback + +@Rollback +class GroupServiceTests extends AbstractBaseDataJpaTest { + def "Test setting group regex works"() { + given: + Group g = new Group() + g.setResourceId("twitter") + g.setName("twitter") + g.setValidationRegex(null) + + when: + try { + g = groupService.createGroup(g) + } catch (Exception shouldNotOccur) { + false + } + + then: + g.getValidationRegex() == null + + when: + g.setValidationRegex("/\\w\\b\\w/") + try { + g = groupService.updateGroup(g) + } catch (Exception shouldNotOccur) { + false + } + + then: + g.getValidationRegex() == "/\\w\\b\\w/" + + when: + g.setValidationRegex("/^(?:https?:\\/\\/)?(?:[^.]+\\.)?shib\\.org(\\/.*)?\$/") + try { + g = groupService.updateGroup(g) + } catch (Exception shouldNotOccur) { + false + } + + then: + g.getValidationRegex() == "/^(?:https?:\\/\\/)?(?:[^.]+\\.)?shib\\.org(\\/.*)?\$/" + + when: + g.setValidationRegex("*") + + then: + try { + groupService.updateGroup(g) + false + } catch (InvalidGroupRegexException shouldOccur) { + true + } + } + + def "Group regex evaluates properly" () { + when: + Group g = new Group() + g.setResourceId("AAA") + g.setName("AAA") + g.setValidationRegex("/foo.*/") + groupRepository.saveAndFlush(g) + + then: + !groupService.doesStringMatchGroupPattern("AAA", "foobar") + !groupService.doesStringMatchGroupPattern("AAA", "something") + groupService.doesStringMatchGroupPattern("AAA", "/foobar/") + + when: + g.setValidationRegex("foo.*") + groupRepository.saveAndFlush(g) + + then: + groupService.doesStringMatchGroupPattern("AAA", "foobar") + !groupService.doesStringMatchGroupPattern("AAA", "something") + groupService.doesStringMatchGroupPattern("AAA", "/foobar/") + } +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/service/UserServiceTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/service/UserServiceTests.groovy index 80ce68ab9..73c56aa91 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/service/UserServiceTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/service/UserServiceTests.groovy @@ -1,326 +1,50 @@ package edu.internet2.tier.shibboleth.admin.ui.security.service -import com.fasterxml.jackson.databind.ObjectMapper -import com.fasterxml.jackson.databind.SerializationFeature -import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule -import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer -import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.CustomPropertiesConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.ShibUIConfiguration -import edu.internet2.tier.shibboleth.admin.ui.domain.ActivatableType -import edu.internet2.tier.shibboleth.admin.ui.domain.EntityDescriptor -import edu.internet2.tier.shibboleth.admin.ui.domain.IActivatable -import edu.internet2.tier.shibboleth.admin.ui.security.model.* -import edu.internet2.tier.shibboleth.admin.ui.security.repository.GroupsRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.OwnershipRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.RoleRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.UserRepository -import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest -import org.springframework.boot.test.context.TestConfiguration -import org.springframework.context.annotation.Bean -import org.springframework.context.annotation.ComponentScan -import org.springframework.context.annotation.Profile -import org.springframework.data.jpa.repository.config.EnableJpaRepositories -import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder -import org.springframework.security.test.context.support.WithMockUser -import org.springframework.test.annotation.DirtiesContext -import org.springframework.test.annotation.Rollback -import org.springframework.test.context.ActiveProfiles -import org.springframework.test.context.ContextConfiguration -import org.springframework.transaction.annotation.Transactional -import spock.lang.Specification - -import javax.persistence.EntityManager -import java.time.LocalDateTime -import java.time.format.DateTimeFormatter - -@DataJpaTest -@ContextConfiguration(classes=[CoreShibUiConfiguration, CustomPropertiesConfiguration, LocalConfig]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan("edu.internet2.tier.shibboleth.admin.ui") -@DirtiesContext -@ActiveProfiles(["test", "local"]) -@ComponentScan(basePackages="{ edu.internet2.tier.shibboleth.admin.ui.configuration }") -class UserServiceTests extends Specification { - - @Autowired - EntityManager entityManager - - @Autowired - GroupServiceForTesting groupService - - @Autowired - OwnershipRepository ownershipRepository - - @Autowired - RoleRepository roleRepository - - @Autowired - ShibUIConfiguration shibUIConfiguration - - @Autowired - UserRepository userRepository - - @Autowired - UserService userService - - def users - - @Transactional - def setup() { - userRepository.findAll().forEach { - userService.delete(it.getUsername()) - } - userRepository.flush() - - roleRepository.deleteAll() - roleRepository.flush() - groupService.clearAllForTesting() //leaves us just the admingroup - - shibUIConfiguration.roles.each { it -> - def role = new Role(name: it) - roleRepository.saveAndFlush(role) - } - - if (userRepository.count() == 0) { - users = [new User().with { - username = 'admin' - password = '{noop}adminpass' - firstName = 'Joe' - lastName = 'Doe' - emailAddress = 'joe@institution.edu' - roles.add(roleRepository.findByName('ROLE_ADMIN').get()) - it - }, new User().with { - username = 'nonadmin' - password = '{noop}nonadminpass' - firstName = 'Peter' - lastName = 'Vandelay' - emailAddress = 'peter@institution.edu' - roles.add(roleRepository.findByName('ROLE_USER').get()) - it - }, new User().with { - username = 'robot' - password = '{noop}nonepass' - firstName = 'Bad' - lastName = 'robot' - emailAddress = 'badboy@institution.edu' - roles.add(roleRepository.findByName('ROLE_ENABLE').get()) - it - }, new User().with { - username = 'robot2' - password = '{noop}nonepass' - firstName = 'Bad2' - lastName = 'robot2' - emailAddress = 'badboy2@institution.edu' - roles.add(roleRepository.findByName('ROLE_ENABLE').get()) - it - }] - users.each { - it = userService.save(it) - } - } - } - - @WithMockUser(value = "admin", roles = ["ADMIN"]) - def "Validate isAuthorizedFor with admin user (always auth)"() { - when: "the object doesn't matter if user is admin" - def isAuth = userService.isAuthorizedFor(new Ownable(){ - String getObjectId() { return null } - OwnableType getOwnableType() { return null } - }); - - then: - isAuth - } - - @WithMockUser(value = "admin", roles = ["ADMIN"]) - def "Admin can activate"() { - when: "the object doesn't matter if user is admin" - def canEnable = userService.currentUserCanEnable(new IActivatable() { - ActivatableType getActivatableType() { return ActivatableType.ENTITY_DESCRIPTOR } - void setEnabled(Boolean enabled) { } - }); - - then: - canEnable - - when: "the object doesn't matter if user is admin" - canEnable = userService.currentUserCanEnable(new IActivatable() { - ActivatableType getActivatableType() { return ActivatableType.FILTER } - void setEnabled(Boolean enabled) { } - }); - - then: - canEnable - - when: "the object doesn't matter if user is admin" - canEnable = userService.currentUserCanEnable(new IActivatable() { - ActivatableType getActivatableType() { return ActivatableType.METADATA_RESOLVER } - void setEnabled(Boolean enabled) { } - }); - - then: - canEnable - } - - @WithMockUser(value = "nonadmin", roles = ["USER"]) - def "nonadmin cannot activate without enable role"() { - when: - def canEnable = userService.currentUserCanEnable(new IActivatable() { - ActivatableType getActivatableType() { return ActivatableType.ENTITY_DESCRIPTOR } - void setEnabled(Boolean enabled) { } - }); - - then: - !canEnable - - when: - canEnable = userService.currentUserCanEnable(new IActivatable() { - ActivatableType getActivatableType() { return ActivatableType.FILTER } - void setEnabled(Boolean enabled) { } - }); - - then: - !canEnable - - when: - canEnable = userService.currentUserCanEnable(new IActivatable() { - ActivatableType getActivatableType() { return ActivatableType.METADATA_RESOLVER } - void setEnabled(Boolean enabled) { } - }); +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest +import edu.internet2.tier.shibboleth.admin.ui.security.model.Group +import edu.internet2.tier.shibboleth.admin.ui.security.model.Ownership +import edu.internet2.tier.shibboleth.admin.ui.security.model.Role +import edu.internet2.tier.shibboleth.admin.ui.security.model.User - then: - !canEnable - } - - @WithMockUser(value = "robot", roles = ["ENABLE"]) - def "nonadmin can activate with enable role"() { - given: - def ed = new EntityDescriptor().with { - it.idOfOwner = 'robot' - it - } - when: - def canEnable = userService.currentUserCanEnable(ed); - - then: - canEnable +class UserServiceTests extends AbstractBaseDataJpaTest { + Role userRole - when: - canEnable = userService.currentUserCanEnable(new IActivatable() { - ActivatableType getActivatableType() { return ActivatableType.FILTER } - void setEnabled(Boolean enabled) { } - }); - - then: - canEnable - - when: - canEnable = userService.currentUserCanEnable(new IActivatable() { - ActivatableType getActivatableType() { return ActivatableType.METADATA_RESOLVER } - void setEnabled(Boolean enabled) { } - }); - - then: - canEnable - } - - @WithMockUser(value = "robot2", roles = ["ENABLE"]) - def "nonadmin cannot activate entity descriptor with enable role"() { - given: - def ed = new EntityDescriptor().with { - it.idOfOwner = 'robot' - it - } - when: - def canEnable = userService.currentUserCanEnable(ed); - - then: - !canEnable - - when: - canEnable = userService.currentUserCanEnable(new IActivatable() { - ActivatableType getActivatableType() { return ActivatableType.FILTER } - void setEnabled(Boolean enabled) { } - }); - - then: - canEnable - - when: - canEnable = userService.currentUserCanEnable(new IActivatable() { - ActivatableType getActivatableType() { return ActivatableType.METADATA_RESOLVER } - void setEnabled(Boolean enabled) { } - }); - - then: - canEnable - } - - @WithMockUser(value = "nonadmin", roles = ["USER"]) - @Rollback - def "Validate isAuthorizedFor with non-admin user"() { - given: - ownershipRepository.saveAndFlush(new Ownership(new Owner() { - String getOwnerId() { return "nonadmin" } - OwnerType getOwnerType() { return OwnerType.GROUP } - }, new Ownable() { - String getObjectId() { return "foothing" } - OwnableType getOwnableType() { return OwnableType.ENTITY_DESCRIPTOR } - })) - when: - def isAuth = userService.isAuthorizedFor(new Ownable(){ - String getObjectId() { return "foothing" } - OwnableType getOwnableType() { return OwnableType.ENTITY_DESCRIPTOR } - }); - - then: - isAuth + def setup() { + userRole = roleRepository.findByName("ROLE_USER").get() } - def "Double Check that shibUIConfiguration includes the enable role"() { - when: - def Optional role = roleRepository.findByName("ROLE_ENABLE") - - then: - role.isPresent() + protected createAdminUser() { + // don't create the admin user } - @Rollback def "When creating user, user is set to the correct group"() { given: - Group gb = new Group(); + Group gb = new Group() gb.setResourceId("testingGroupBBB") gb.setName("Group BBB") gb = groupService.createGroup(gb) - Optional userRole = roleRepository.findByName("ROLE_USER") - def User user = new User(username: "someUser", roles:[userRole.get()], password: "foo") + User user = new User(username: "someUser", roles:[userRole], password: "foo") user.setGroup(gb) when: - def User result = userService.save(user) + User result = userService.save(user) then: result.groupId == "testingGroupBBB" result.username == "someUser" - result.userGroups.size() == 1 + result.getUserGroups().size() == 1 // Raw check that the DB is correct for ownership - def Set users = ownershipRepository.findUsersByOwner(gb) + Set users = ownershipRepository.findUsersByOwner(gb) users.size() == 1 - users.getAt(0).ownedId == "someUser" + users[0].ownedId == "someUser" // Validate that loading the group has the correct list as well - Group g = groupService.find("testingGroupBBB"); + Group g = groupService.find("testingGroupBBB") g.ownedItems.size() == 1 } - @Rollback def "When updating user, user is set to the correct group"() { given: Group ga = new Group() @@ -328,43 +52,41 @@ class UserServiceTests extends Specification { ga.setName("Group A") ga = groupService.createGroup(ga) - Group gb = new Group(); + Group gb = new Group() gb.setResourceId("testingGroupBBB") gb.setName("Group BBB") gb = groupService.createGroup(gb) - Optional userRole = roleRepository.findByName("ROLE_USER") - def User user = new User(username: "someUser", roles:[userRole.get()], password: "foo") + User user = new User(username: "someUser", roles:[userRole], password: "foo") user.setGroup(gb) - def User userInB = userService.save(user) + User userInB = userService.save(user) when: userInB.setGroupId("testingGroup") // changing groups will happen by updating the user's groupid (from the ui) - def User result = userService.save(userInB) + User result = userService.save(userInB) then: result.groupId == "testingGroup" result.username == "someUser" - result.userGroups.size() == 1 + result.getUserGroups().size() == 1 // Raw check that the DB is correct for ownership - def Set users = ownershipRepository.findUsersByOwner(ga) + Set users = ownershipRepository.findUsersByOwner(ga) users.size() == 1 - users.getAt(0).ownedId == "someUser" + users[0].ownedId == "someUser" // check db is correct for the previous group as well - def Set users2 = ownershipRepository.findUsersByOwner(gb) + Set users2 = ownershipRepository.findUsersByOwner(gb) users2.size() == 0 // Validate that loading the group has the correct list as well - Group g = groupService.find("testingGroup"); + Group g = groupService.find("testingGroup") g.ownedItems.size() == 1 - Group g2 = groupService.find("testingGroupBBB"); + Group g2 = groupService.find("testingGroupBBB") g2.ownedItems.size() == 0 } - @Rollback def "logically try to match user controller test causing headaches"() { given: Group ga = new Group() @@ -372,26 +94,24 @@ class UserServiceTests extends Specification { ga.setName("Group A") ga = groupService.createGroup(ga) - Optional userRole = roleRepository.findByName("ROLE_USER") - def User user = new User(username: "someUser", firstName: "Fred", lastName: "Flintstone", roles:[userRole.get()], password: "foo") + User user = new User(username: "someUser", firstName: "Fred", lastName: "Flintstone", roles:[userRole], password: "foo") user.setGroup(ga) userService.save(user) when: - def User flintstoneUser = userRepository.findByUsername("someUser").get() + User flintstoneUser = userRepository.findByUsername("someUser").get() flintstoneUser.setFirstName("Wilma") flintstoneUser.setGroupId("testingGroup") - def User result = userService.save(flintstoneUser) + User result = userService.save(flintstoneUser) then: result.groupId == "testingGroup" result.username == "someUser" - result.userGroups.size() == 1 + result.getUserGroups().size() == 1 result.firstName == "Wilma" } - @Rollback def "When creating user, user with multiple groups is saved correctly"() { given: Group ga = new Group() @@ -399,15 +119,14 @@ class UserServiceTests extends Specification { ga.setName("Group A") ga = groupService.createGroup(ga) - Group gb = new Group(); + Group gb = new Group() gb.setResourceId("testingGroupBBB") gb.setName("Group BBB") gb = groupService.createGroup(gb) - Optional userRole = roleRepository.findByName("ROLE_USER") User user = new User().with( { it.username = "someUser" - it.roles = [userRole.get()] + it.roles = [userRole] it.password = "foo" it }) @@ -421,19 +140,19 @@ class UserServiceTests extends Specification { def result = userService.save(user) then: - result.userGroups.size() == 2 + result.getUserGroups().size() == 2 // Raw check that the DB is correct for ownership - def Set users = ownershipRepository.findUsersByOwner(ga) + Set users = ownershipRepository.findUsersByOwner(ga) users.size() == 1 - users.getAt(0).ownedId == "someUser" + users[0].ownedId == "someUser" - def Set users2 = ownershipRepository.findUsersByOwner(gb) + Set users2 = ownershipRepository.findUsersByOwner(gb) users2.size() == 1 - users2.getAt(0).ownedId == "someUser" + users2[0].ownedId == "someUser" when: - def userFromDb = userRepository.findById(result.id).get(); + def userFromDb = userRepository.findById(result.id).get() then: userFromDb.getUserGroups().size() == 2 @@ -444,27 +163,4 @@ class UserServiceTests extends Specification { then: gbUpdated.ownedItems.size() == 1 } - - @TestConfiguration - @Profile("local") - static class LocalConfig { - @Bean - GroupServiceForTesting groupServiceForTesting(GroupsRepository repo, OwnershipRepository ownershipRepository) { - GroupServiceForTesting result = new GroupServiceForTesting(new GroupServiceImpl().with { - it.groupRepository = repo - it.ownershipRepository = ownershipRepository - return it - }) - result.ensureAdminGroupExists() - return result - } - - @Bean - ObjectMapper objectMapper() { - JavaTimeModule module = new JavaTimeModule() - LocalDateTimeDeserializer localDateTimeDeserializer = new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSS")) - module.addDeserializer(LocalDateTime.class, localDateTimeDeserializer) - return Jackson2ObjectMapperBuilder.json().modules(module).featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS).build() - } - } } \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/springsecurity/AdminUserServiceTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/springsecurity/AdminUserServiceTests.groovy index 6ceae1eef..3f72adf98 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/springsecurity/AdminUserServiceTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/security/springsecurity/AdminUserServiceTests.groovy @@ -1,25 +1,41 @@ package edu.internet2.tier.shibboleth.admin.ui.security.springsecurity +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest +import edu.internet2.tier.shibboleth.admin.ui.configuration.DevConfig +import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects +import edu.internet2.tier.shibboleth.admin.ui.repository.EntityDescriptorRepository +import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolverRepository +import edu.internet2.tier.shibboleth.admin.ui.security.repository.GroupsRepository import edu.internet2.tier.shibboleth.admin.ui.security.repository.RoleRepository import edu.internet2.tier.shibboleth.admin.ui.security.repository.UserRepository +import edu.internet2.tier.shibboleth.admin.ui.security.service.IGroupService +import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.test.context.SpringBootTest +import org.springframework.boot.test.context.TestConfiguration +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.ComponentScan import org.springframework.security.core.userdetails.UsernameNotFoundException import org.springframework.test.context.ActiveProfiles -import spock.lang.Specification +import org.springframework.test.context.ContextConfiguration /** * Tests for AdminUserService (well, really it tests that the DevConfig worked as much as anything) * * @author Dmitriy Kopylenko */ -@SpringBootTest -@ActiveProfiles('dev') -class AdminUserServiceTests extends Specification { - +@ContextConfiguration(classes=[AUSLocalConfig]) +class AdminUserServiceTests extends AbstractBaseDataJpaTest { @Autowired AdminUserService adminUserService + @Autowired + DevConfig devConfig + + def setup() { + // db is cleaned by test setup, so we have to re-run before each test + devConfig.createDevUsersAndGroups() + } + def "Loading existing admin user with admin role"() { given: 'Valid user with admin role is available (loaded by Spring Boot Listener in dev profile)' def user = adminUserService.loadUserByUsername('admin') @@ -41,4 +57,30 @@ class AdminUserServiceTests extends Specification { then: thrown UsernameNotFoundException } -} + + @Override + protected createAdminUser() { + // Do nothing so that the dev config will create the admin user rather than the test setup + } + + @TestConfiguration + private static class AUSLocalConfig { + @Bean + AdminUserService adminUserService(UserRepository userRepository) { + return new AdminUserService(userRepository) + } + + // Rather than having a specific dev context needed, we just stand up the needed bean. + @Bean + DevConfig devConfig(UserRepository adminUserRepository, GroupsRepository groupsRepository, IGroupService groupService, + MetadataResolverRepository metadataResolverRepository, OpenSamlObjects openSamlObjects, UserService userService, + RoleRepository roleRepository, EntityDescriptorRepository entityDescriptorRepository) { + DevConfig dc = new DevConfig( adminUserRepository, groupsRepository, metadataResolverRepository, roleRepository, + entityDescriptorRepository, openSamlObjects, groupService).with { + it.userService = userService + it + } + return dc + } + } +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/IncommonJPAMetadataResolverServiceImplTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/IncommonJPAMetadataResolverServiceImplTests.groovy index 3733a5fe1..a44b4beed 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/IncommonJPAMetadataResolverServiceImplTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/IncommonJPAMetadataResolverServiceImplTests.groovy @@ -1,54 +1,36 @@ package edu.internet2.tier.shibboleth.admin.ui.service -import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import edu.internet2.tier.shibboleth.admin.ui.domain.XSString import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilter import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilterTarget import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityRoleWhiteListFilter import edu.internet2.tier.shibboleth.admin.ui.domain.filters.RequiredValidUntilFilter import edu.internet2.tier.shibboleth.admin.ui.domain.filters.SignatureValidationFilter -import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolverRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.GroupsRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.OwnershipRepository -import edu.internet2.tier.shibboleth.admin.ui.security.service.GroupServiceImpl +import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolversPositionOrderContainerRepository import edu.internet2.tier.shibboleth.admin.ui.util.TestObjectGenerator import edu.internet2.tier.shibboleth.admin.util.AttributeUtility -import groovy.xml.XmlUtil import org.opensaml.saml.metadata.resolver.ChainingMetadataResolver import org.opensaml.saml.metadata.resolver.MetadataResolver import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest -import org.springframework.boot.test.context.SpringBootTest import org.springframework.boot.test.context.TestConfiguration import org.springframework.context.annotation.Bean -import org.springframework.context.annotation.Profile -import org.springframework.data.jpa.repository.config.EnableJpaRepositories -import org.springframework.test.context.ActiveProfiles import org.springframework.test.context.ContextConfiguration -import spock.lang.Specification +import static edu.internet2.tier.shibboleth.admin.ui.util.TestHelpers.generatedXmlIsTheSameAsExpectedXml -import static edu.internet2.tier.shibboleth.admin.ui.util.TestHelpers.* +@ContextConfiguration(classes = [IJPAMRSILocalConfig]) +class IncommonJPAMetadataResolverServiceImplTests extends AbstractBaseDataJpaTest { + @Autowired + AttributeUtility attributeUtility -@DataJpaTest -@ContextConfiguration(classes = [CoreShibUiConfiguration, SearchConfiguration, InternationalizationConfiguration, edu.internet2.tier.shibboleth.admin.ui.configuration.TestConfiguration ,LocalConfig]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan("edu.internet2.tier.shibboleth.admin.ui") -@ActiveProfiles(value = "local") -class IncommonJPAMetadataResolverServiceImplTests extends Specification { @Autowired MetadataResolverService metadataResolverService @Autowired MetadataResolverRepository metadataResolverRepository - @Autowired - AttributeUtility attributeUtility - def cleanup() { metadataResolverRepository.deleteAll() } @@ -111,19 +93,9 @@ class IncommonJPAMetadataResolverServiceImplTests extends Specification { } @TestConfiguration - @Profile("local") - static class LocalConfig { - @Autowired - OpenSamlObjects openSamlObjects - - @Autowired - MetadataResolverRepository metadataResolverRepository - - @Autowired - AttributeUtility attributeUtility - + private static class IJPAMRSILocalConfig { @Bean - MetadataResolver metadataResolver() { + MetadataResolver metadataResolver(AttributeUtility attributeUtility, MetadataResolverRepository metadataResolverRepository) { def resolver = new ChainingMetadataResolver().with { it.id = 'chain' @@ -155,12 +127,9 @@ class IncommonJPAMetadataResolverServiceImplTests extends Specification { } @Bean - GroupServiceImpl groupService(GroupsRepository repo, OwnershipRepository ownershipRepository) { - new GroupServiceImpl().with { - it.groupRepository = repo - it.ownershipRepository = ownershipRepository - return it - } + MetadataResolversPositionOrderContainerService metadataResolversPositionOrderContainerService(MetadataResolversPositionOrderContainerRepository positionOrderContainerRepository, + MetadataResolverRepository resolverRepository) { + return new DefaultMetadataResolversPositionOrderContainerService(positionOrderContainerRepository, resolverRepository) } } } \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/IndexWriterServiceTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/IndexWriterServiceTests.groovy index 65ec74bc1..bb79bf48a 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/IndexWriterServiceTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/IndexWriterServiceTests.groovy @@ -1,25 +1,12 @@ package edu.internet2.tier.shibboleth.admin.ui.service -import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.TestConfiguration +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest -import org.springframework.data.jpa.repository.config.EnableJpaRepositories -import org.springframework.test.context.ContextConfiguration -import spock.lang.Specification /** * @author Bill Smith (wsmith@unicon.net) */ -@DataJpaTest -@ContextConfiguration(classes=[CoreShibUiConfiguration, SearchConfiguration, TestConfiguration, InternationalizationConfiguration]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan("edu.internet2.tier.shibboleth.admin.ui") -class IndexWriterServiceTests extends Specification { - +class IndexWriterServiceTests extends AbstractBaseDataJpaTest { @Autowired IndexWriterService service @@ -34,4 +21,4 @@ class IndexWriterServiceTests extends Specification { then: firstIndexWriter == secondIndexWriter } -} +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImplTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImplTests.groovy index 63a5a133b..e9a9aa217 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImplTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImplTests.groovy @@ -1,16 +1,8 @@ package edu.internet2.tier.shibboleth.admin.ui.service import com.fasterxml.jackson.databind.ObjectMapper -import edu.internet2.tier.shibboleth.admin.ui.ShibbolethUiApplication -import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.CustomPropertiesConfiguration -import edu.internet2.tier.shibboleth.admin.ui.domain.Attribute +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import edu.internet2.tier.shibboleth.admin.ui.domain.EntityDescriptor -import edu.internet2.tier.shibboleth.admin.ui.domain.XSAny -import edu.internet2.tier.shibboleth.admin.ui.domain.XSAnyBuilder -import edu.internet2.tier.shibboleth.admin.ui.domain.XSBoolean -import edu.internet2.tier.shibboleth.admin.ui.domain.XSBooleanBuilder -import edu.internet2.tier.shibboleth.admin.ui.domain.XSStringBuilder import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.AssertionConsumerServiceRepresentation import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.ContactRepresentation import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.EntityDescriptorRepresentation @@ -20,58 +12,45 @@ import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.OrganizationRepres import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.SecurityInfoRepresentation import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.ServiceProviderSsoDescriptorRepresentation import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects -import edu.internet2.tier.shibboleth.admin.ui.security.repository.RoleRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.UserRepository -import edu.internet2.tier.shibboleth.admin.ui.security.service.IGroupService -import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService import edu.internet2.tier.shibboleth.admin.ui.util.RandomGenerator import edu.internet2.tier.shibboleth.admin.ui.util.TestObjectGenerator -import edu.internet2.tier.shibboleth.admin.util.AttributeUtility import edu.internet2.tier.shibboleth.admin.util.EntityDescriptorConversionUtils - -import org.opensaml.saml.ext.saml2mdattr.EntityAttributes import org.skyscreamer.jsonassert.JSONAssert import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.test.context.SpringBootTest import org.springframework.boot.test.json.JacksonTester import org.springframework.context.annotation.PropertySource -import org.springframework.test.annotation.DirtiesContext -import org.springframework.test.context.ContextConfiguration import org.xmlunit.builder.DiffBuilder import org.xmlunit.builder.Input import org.xmlunit.diff.DefaultNodeMatcher import org.xmlunit.diff.ElementSelectors -import spock.lang.Specification +import spock.lang.Ignore -@ContextConfiguration(classes=[CoreShibUiConfiguration, CustomPropertiesConfiguration]) -@SpringBootTest(classes = ShibbolethUiApplication.class, webEnvironment = SpringBootTest.WebEnvironment.NONE) @PropertySource("classpath:application.yml") -@DirtiesContext -class JPAEntityDescriptorServiceImplTests extends Specification { +class JPAEntityDescriptorServiceImplTests extends AbstractBaseDataJpaTest { + @Autowired + EntityService entityService + @Autowired - EntityService entityService; - + ObjectMapper mapper + + @Autowired + OpenSamlObjects openSamlObjects + @Autowired JPAEntityDescriptorServiceImpl service - def testObjectGenerator - - OpenSamlObjects openSamlObjects = new OpenSamlObjects().with { - init() - it - } - - JacksonTester jacksonTester - ObjectMapper mapper + @Autowired + TestObjectGenerator testObjectGenerator + RandomGenerator generator - + JacksonTester jacksonTester + def setup() { - mapper = new ObjectMapper() JacksonTester.initFields(this, mapper) generator = new RandomGenerator() - testObjectGenerator = new TestObjectGenerator() EntityDescriptorConversionUtils.openSamlObjects = openSamlObjects EntityDescriptorConversionUtils.entityService = entityService + openSamlObjects.init() } def "simple Entity Descriptor"() { @@ -627,7 +606,7 @@ class JPAEntityDescriptorServiceImplTests extends Specification { def output = service.createRepresentationFromDescriptor(service.createDescriptorFromRepresentation(representation)) then: - assert output.securityInfo?.authenticationRequestsSigned == true + assert output.securityInfo?.authenticationRequestsSigned } def "SHIBUI-219-3"() { @@ -651,6 +630,7 @@ class JPAEntityDescriptorServiceImplTests extends Specification { assert output.assertionConsumerServices[0].binding == 'urn:oasis:names:tc:SAML:1.0:profiles:browser-post' } + @Ignore def "payload mapping round trip: JSON->FrontendModel->BackendModel->FrontendModel->JSON"() { when: EntityDescriptorRepresentation inputRepresentation = jacksonTester.readObject('/json/SHIBUI-219-3.json') @@ -783,4 +763,4 @@ class JPAEntityDescriptorServiceImplTests extends Specification { return ed } -} +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImplTests2.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImplTests2.groovy index 11d870149..22e90bf14 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImplTests2.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImplTests2.groovy @@ -1,129 +1,52 @@ package edu.internet2.tier.shibboleth.admin.ui.service -import edu.internet2.tier.shibboleth.admin.ui.ShibbolethUiApplication -import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.CustomPropertiesConfiguration +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import edu.internet2.tier.shibboleth.admin.ui.domain.EntityDescriptor import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.EntityDescriptorRepresentation +import edu.internet2.tier.shibboleth.admin.ui.repository.EntityDescriptorRepository import edu.internet2.tier.shibboleth.admin.ui.security.model.Group import edu.internet2.tier.shibboleth.admin.ui.security.model.Role import edu.internet2.tier.shibboleth.admin.ui.security.model.User -import edu.internet2.tier.shibboleth.admin.ui.security.repository.GroupsRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.OwnershipRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.RoleRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.UserRepository -import edu.internet2.tier.shibboleth.admin.ui.security.service.GroupServiceForTesting -import edu.internet2.tier.shibboleth.admin.ui.security.service.GroupServiceImpl -import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.test.context.SpringBootTest -import org.springframework.boot.test.context.TestConfiguration -import org.springframework.context.annotation.Bean -import org.springframework.context.annotation.Primary -import org.springframework.context.annotation.Profile -import org.springframework.context.annotation.PropertySource import org.springframework.security.test.context.support.WithMockUser -import org.springframework.test.annotation.DirtiesContext -import org.springframework.test.annotation.Rollback -import org.springframework.test.context.ActiveProfiles -import org.springframework.test.context.ContextConfiguration import org.springframework.transaction.annotation.Transactional -import spock.lang.Specification -@ContextConfiguration(classes=[CoreShibUiConfiguration, CustomPropertiesConfiguration, LocalConfig]) -@SpringBootTest(classes = ShibbolethUiApplication.class, webEnvironment = SpringBootTest.WebEnvironment.NONE) -@PropertySource("classpath:application.yml") -@DirtiesContext -@ActiveProfiles(value="jpaeds2-test") -class JPAEntityDescriptorServiceImplTests2 extends Specification { - +class JPAEntityDescriptorServiceImplTests2 extends AbstractBaseDataJpaTest { @Autowired - GroupServiceForTesting groupService + EntityDescriptorRepository entityDescriptorRepository - @Autowired - RoleRepository roleRepository - @Autowired JPAEntityDescriptorServiceImpl entityDescriptorService - - @Autowired - UserRepository userRepository - @Autowired - UserService userService - @Transactional def setup() { - // ensure we start fresh with only expected users and roles and groups - userRepository.deleteAll() - roleRepository.deleteAll() - groupService.clearAllForTesting() - - Group ga = new Group() - ga.setResourceId("testingGroup") - ga.setName("Group A") - groupService.createGroup(ga) - Group gb = new Group() gb.setResourceId("testingGroupBBB") gb.setName("Group BBB") - groupService.createGroup(gb) - - def roles = [new Role().with { - name = 'ROLE_ADMIN' - it - }, new Role().with { - name = 'ROLE_USER' - it - }, new Role().with { - name = 'ROLE_NONE' - it - }] - roles.each { - roleRepository.save(it) - } - - Optional adminRole = roleRepository.findByName("ROLE_ADMIN") - User adminUser = new User(username: "admin", roles: [adminRole.get()], password: "foo") - userService.save(adminUser) - + gb.setValidationRegex("^(?:https?:\\/\\/)?(?:[^.]+\\.)?shib\\.org(\\/.*)?\$") + gb = groupService.createGroup(gb) + Optional userRole = roleRepository.findByName("ROLE_USER") - User user = new User(username: "someUser", roles:[userRole.get()], password: "foo", group: gb) + User user = new User(username: "someUser", roles: [userRole.get()], password: "foo", group: gb) userService.save(user) + + entityDescriptorRepository.deleteAll() } @WithMockUser(value = "someUser", roles = ["USER"]) - @Rollback - @Transactional def "When creating Entity Descriptor, ED is assigned to the user's group"() { given: User current = userService.getCurrentUser() - current.setGroupId("testingGroupBBB") - def expectedEntityId = 'https://shib' + def expectedEntityId = 'https://shib.org/groupsomething' def expectedSpName = 'sp1' def expectedUUID = 'uuid-1' def entityDescriptor = new EntityDescriptor(resourceId: expectedUUID, entityID: expectedEntityId, serviceProviderName: expectedSpName, serviceEnabled: false) - + when: def result = entityDescriptorService.createNew(entityDescriptor) - + then: - ((EntityDescriptorRepresentation)result).getIdOfOwner() == "testingGroupBBB" - } - - @TestConfiguration - @Profile("jpaeds2-test") - static class LocalConfig { - @Bean - @Primary - GroupServiceForTesting groupServiceForTesting(GroupsRepository repo, OwnershipRepository ownershipRepository) { - GroupServiceForTesting result = new GroupServiceForTesting(new GroupServiceImpl().with { - it.groupRepository = repo - it.ownershipRepository = ownershipRepository - return it - }) - return result - } + ((EntityDescriptorRepresentation) result).getIdOfOwner() == "testingGroupBBB" } } \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityServiceImplTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityServiceImplTests.groovy index df888a972..d60792b22 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityServiceImplTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityServiceImplTests.groovy @@ -1,10 +1,7 @@ package edu.internet2.tier.shibboleth.admin.ui.service +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import edu.internet2.tier.shibboleth.admin.ui.configuration.CustomPropertiesConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.TestConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.EntityDescriptorRepresentation import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects import edu.internet2.tier.shibboleth.admin.ui.util.RandomGenerator @@ -13,41 +10,22 @@ import edu.internet2.tier.shibboleth.admin.ui.util.TestObjectGenerator import edu.internet2.tier.shibboleth.admin.util.AttributeUtility import edu.internet2.tier.shibboleth.admin.util.MDDCConstants import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest -import org.springframework.data.jpa.repository.config.EnableJpaRepositories +import org.springframework.boot.test.context.TestConfiguration +import org.springframework.context.annotation.Bean import org.springframework.test.context.ContextConfiguration -import spock.lang.Specification /** * @author Bill Smith (wsmith@unicon.net) */ -@DataJpaTest -@ContextConfiguration(classes=[CoreShibUiConfiguration, SearchConfiguration, TestConfiguration, InternationalizationConfiguration]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan("edu.internet2.tier.shibboleth.admin.ui") -class JPAEntityServiceImplTests extends Specification { - - @Autowired - OpenSamlObjects openSamlObjects - +@ContextConfiguration(classes=[JPAESILocalConfig]) +class JPAEntityServiceImplTests extends AbstractBaseDataJpaTest { @Autowired - AttributeUtility attributeUtility + EntityService service @Autowired - CustomPropertiesConfiguration customPropertiesConfiguration - - def randomGenerator - def testObjectGenerator - - def service + TestObjectGenerator testObjectGenerator - def setup() { - service = new JPAEntityServiceImpl(openSamlObjects, attributeUtility, customPropertiesConfiguration) - - randomGenerator = new RandomGenerator() - testObjectGenerator = new TestObjectGenerator(attributeUtility, customPropertiesConfiguration) - } + def randomGenerator = new RandomGenerator() def "getAttributeListFromEntityRepresentation builds an appropriate attribute list"() { given: @@ -91,4 +69,12 @@ class JPAEntityServiceImplTests extends Specification { it.schemaTypeNamespacePrefix == expectedSchemaTypeNamespacePrefix } } -} + + @TestConfiguration + private static class JPAESILocalConfig { + @Bean + TestObjectGenerator testObjectGenerator(AttributeUtility attributeUtility, CustomPropertiesConfiguration customPropertiesConfiguration) { + return new TestObjectGenerator(attributeUtility,customPropertiesConfiguration) + } + } +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterServiceImplTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterServiceImplTests.groovy index 25dd61fa5..68ca161c1 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterServiceImplTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterServiceImplTests.groovy @@ -1,45 +1,30 @@ package edu.internet2.tier.shibboleth.admin.ui.service -import edu.internet2.tier.shibboleth.admin.ui.configuration.CustomPropertiesConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.TestConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import edu.internet2.tier.shibboleth.admin.ui.util.RandomGenerator import edu.internet2.tier.shibboleth.admin.ui.util.TestHelpers import edu.internet2.tier.shibboleth.admin.ui.util.TestObjectGenerator -import edu.internet2.tier.shibboleth.admin.util.AttributeUtility import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest -import org.springframework.data.jpa.repository.config.EnableJpaRepositories +import org.springframework.boot.test.context.TestConfiguration +import org.springframework.context.annotation.Bean import org.springframework.test.context.ContextConfiguration -import spock.lang.Specification /** * @author Bill Smith (wsmith@unicon.net) */ -@DataJpaTest -@ContextConfiguration(classes=[CoreShibUiConfiguration, SearchConfiguration, TestConfiguration, InternationalizationConfiguration]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan("edu.internet2.tier.shibboleth.admin.ui") -class JPAFilterServiceImplTests extends Specification { - - RandomGenerator randomGenerator - TestObjectGenerator testObjectGenerator +@ContextConfiguration(classes = [ JPAFSIConfig ]) +class JPAFilterServiceImplTests extends AbstractBaseDataJpaTest { @Autowired - JPAFilterServiceImpl service + JPAFilterServiceImpl filterService @Autowired - AttributeUtility attributeUtility + TestObjectGenerator testObjectGenerator - @Autowired - CustomPropertiesConfiguration customPropertiesConfiguration + RandomGenerator randomGenerator def setup() { randomGenerator = new RandomGenerator() - testObjectGenerator = new TestObjectGenerator(attributeUtility, customPropertiesConfiguration) } def "createFilterFromRepresentation properly creates a filter from a representation"() { @@ -47,7 +32,7 @@ class JPAFilterServiceImplTests extends Specification { def representation = testObjectGenerator.buildFilterRepresentation() when: - def result = service.createFilterFromRepresentation(representation) + def result = filterService.createFilterFromRepresentation(representation) then: result.name == representation.filterName @@ -71,7 +56,7 @@ class JPAFilterServiceImplTests extends Specification { def filter = testObjectGenerator.buildFilter { testObjectGenerator.entityAttributesFilter() } when: - def result = service.createRepresentationFromFilter(filter) + def result = filterService.createRepresentationFromFilter(filter) then: result.id == filter.resourceId @@ -87,4 +72,12 @@ class JPAFilterServiceImplTests extends Specification { result.filterTarget.type == filter.entityAttributesFilterTarget.entityAttributesFilterTargetType.toString() result.filterTarget.value == filter.entityAttributesFilterTarget.value } -} + + @TestConfiguration + private static class JPAFSIConfig { + @Bean + JPAFilterTargetServiceImpl jpaFilterTargetService() { + return new JPAFilterTargetServiceImpl() + } + } +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterTargetServiceImplTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterTargetServiceImplTests.groovy index 0ceaaa82e..376e23732 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterTargetServiceImplTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterTargetServiceImplTests.groovy @@ -1,22 +1,23 @@ package edu.internet2.tier.shibboleth.admin.ui.service +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import edu.internet2.tier.shibboleth.admin.ui.util.RandomGenerator import edu.internet2.tier.shibboleth.admin.ui.util.TestObjectGenerator +import org.springframework.beans.factory.annotation.Autowired import spock.lang.Specification /** * @author Bill Smith (wsmith@unicon.net) */ -class JPAFilterTargetServiceImplTests extends Specification { - - RandomGenerator randomGenerator +class JPAFilterTargetServiceImplTests extends AbstractBaseDataJpaTest { + @Autowired TestObjectGenerator testObjectGenerator + RandomGenerator randomGenerator JPAFilterTargetServiceImpl service def setup() { randomGenerator = new RandomGenerator() - testObjectGenerator = new TestObjectGenerator() service = new JPAFilterTargetServiceImpl() } @@ -44,4 +45,4 @@ class JPAFilterTargetServiceImplTests extends Specification { results.type == filterTarget.entityAttributesFilterTargetType.toString() results.version == filterTarget.hashCode() } -} +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAMetadataResolverServiceImplTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAMetadataResolverServiceImplTests.groovy index 20b4abcde..f61d647fe 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAMetadataResolverServiceImplTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAMetadataResolverServiceImplTests.groovy @@ -1,9 +1,7 @@ package edu.internet2.tier.shibboleth.admin.ui.service -import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import edu.internet2.tier.shibboleth.admin.ui.configuration.PlaceholderResolverComponentsConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration import edu.internet2.tier.shibboleth.admin.ui.configuration.ShibUIConfiguration import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilter import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilterTarget @@ -11,7 +9,6 @@ import edu.internet2.tier.shibboleth.admin.ui.domain.filters.MetadataFilter import edu.internet2.tier.shibboleth.admin.ui.domain.filters.RequiredValidUntilFilter import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ClasspathMetadataResource import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.DynamicHttpMetadataResolver -import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.FilesystemMetadataResolver import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.LocalDynamicMetadataResolver import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataQueryProtocolScheme import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.RegexScheme @@ -20,12 +17,7 @@ import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.TemplateScheme import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.opensaml.OpenSamlChainingMetadataResolver import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolverRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.GroupsRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.OwnershipRepository -import edu.internet2.tier.shibboleth.admin.ui.security.service.GroupServiceImpl import edu.internet2.tier.shibboleth.admin.ui.util.TestObjectGenerator -import edu.internet2.tier.shibboleth.admin.util.AttributeUtility -import edu.internet2.tier.shibboleth.admin.util.TokenPlaceholderResolvers import groovy.xml.DOMBuilder import groovy.xml.MarkupBuilder import net.shibboleth.ext.spring.resource.ResourceHelper @@ -36,67 +28,49 @@ import org.opensaml.saml.metadata.resolver.MetadataResolver import org.opensaml.saml.metadata.resolver.filter.MetadataFilterChain import org.opensaml.saml.metadata.resolver.impl.ResourceBackedMetadataResolver import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest import org.springframework.boot.test.context.TestConfiguration import org.springframework.context.annotation.Bean -import org.springframework.context.annotation.Profile import org.springframework.core.io.ClassPathResource -import org.springframework.data.jpa.repository.config.EnableJpaRepositories -import org.springframework.test.annotation.DirtiesContext -import org.springframework.test.context.ActiveProfiles import org.springframework.test.context.ContextConfiguration import org.xmlunit.builder.DiffBuilder import org.xmlunit.builder.Input import spock.lang.Ignore -import spock.lang.Specification import spock.lang.Unroll import static edu.internet2.tier.shibboleth.admin.ui.util.TestHelpers.generatedXmlIsTheSameAsExpectedXml -@DataJpaTest -@ContextConfiguration(classes=[CoreShibUiConfiguration, SearchConfiguration, InternationalizationConfiguration, PlaceholderResolverComponentsConfiguration, edu.internet2.tier.shibboleth.admin.ui.configuration.TestConfiguration , LocalConfig]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan("edu.internet2.tier.shibboleth.admin.ui") -@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS) -@ActiveProfiles(value = "local") -class JPAMetadataResolverServiceImplTests extends Specification { - @Autowired - MetadataResolverRepository metadataResolverRepository +@ContextConfiguration(classes=[ JPAMRSIConfig, PlaceholderResolverComponentsConfiguration ]) +class JPAMetadataResolverServiceImplTests extends AbstractBaseDataJpaTest { @Autowired - MetadataResolverService metadataResolverService + EntityService entityService @Autowired MetadataResolver metadataResolver @Autowired - EntityService entityService + MetadataResolverRepository metadataResolverRepository @Autowired - OpenSamlObjects openSamlObjects + MetadataResolverConverterService mdrConverterService @Autowired - AttributeUtility attributeUtility + MetadataResolverService metadataResolverService @Autowired - MetadataResolverConverterService mdrConverterService + OpenSamlObjects openSamlObjects @Autowired ShibUIConfiguration shibUIConfiguration + @Autowired TestObjectGenerator testObjectGenerator - DOMBuilder domBuilder - - StringWriter writer - + DOMBuilder domBuilder = DOMBuilder.newInstance() + StringWriter writer = new StringWriter() MarkupBuilder markupBuilder def setup() { - testObjectGenerator = new TestObjectGenerator(attributeUtility) - domBuilder = DOMBuilder.newInstance() - writer = new StringWriter() markupBuilder = new MarkupBuilder(writer) markupBuilder.omitNullAttributes = true markupBuilder.omitEmptyAttributes = true @@ -392,7 +366,6 @@ class JPAMetadataResolverServiceImplTests extends Specification { } @Unroll - @DirtiesContext(methodMode = DirtiesContext.MethodMode.AFTER_METHOD) def 'test namespace protection [#namespaces]'() { setup: shibUIConfiguration.protectedAttributeNamespaces = namespaces @@ -416,7 +389,6 @@ class JPAMetadataResolverServiceImplTests extends Specification { ['http://shibboleth.net/ns/profiles', 'http://scaldingspoon.com/iam'] | '/conf/984-2.xml' } - @DirtiesContext(methodMode = DirtiesContext.MethodMode.AFTER_METHOD) def 'test namespace protection in nonURL resolver with resolver setting enabled=true'() { setup: shibUIConfiguration.protectedAttributeNamespaces = ['http://shibboleth.net/ns/profiles'] @@ -434,7 +406,6 @@ class JPAMetadataResolverServiceImplTests extends Specification { generatedXmlIsTheSameAsExpectedXml('/conf/1059-enabled.xml', metadataResolverService.generateConfiguration()) } - @DirtiesContext(methodMode = DirtiesContext.MethodMode.AFTER_METHOD) def 'test namespace protection in nonURL resolver with resolver setting enabled not set'() { setup: shibUIConfiguration.protectedAttributeNamespaces = ['http://shibboleth.net/ns/profiles'] @@ -484,15 +455,10 @@ class JPAMetadataResolverServiceImplTests extends Specification { } @TestConfiguration - @Profile("local") - static class LocalConfig { - @Autowired - OpenSamlObjects openSamlObjects - + private static class JPAMRSIConfig { @Bean - MetadataResolver metadataResolver(TokenPlaceholderResolvers tokenPlaceholderResolvers) { - def resource = ResourceHelper.of(new ClassPathResource("/metadata/aggregate.xml")) - def aggregate = new ResourceBackedMetadataResolver(resource){ + MetadataResolver metadataResolver(OpenSamlObjects openSamlObjects) { + def aggregate = new ResourceBackedMetadataResolver(ResourceHelper.of(new ClassPathResource("/metadata/aggregate.xml"))){ @Override DateTime getLastRefresh() { return null @@ -509,19 +475,17 @@ class JPAMetadataResolverServiceImplTests extends Specification { return new OpenSamlChainingMetadataResolver().with { it.id = 'chain' - //it.resolvers = [aggregate] -// it.resolvers = [] it.initialize() it } } @Bean - GroupServiceImpl groupService(GroupsRepository repo, OwnershipRepository ownershipRepository) { - new GroupServiceImpl().with { - it.groupRepository = repo - it.ownershipRepository = ownershipRepository - return it + MetadataResolverConverterServiceImpl metadataResolverConverterServiceImpl(IndexWriterService indexWriterService, OpenSamlObjects openSamlObjects) { + return new MetadataResolverConverterServiceImpl().with { + it.indexWriterService = indexWriterService + it.openSamlObjects = openSamlObjects + it } } } diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/MetadataResolverConverterServiceImplTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/MetadataResolverConverterServiceImplTests.groovy index f5d0f72e3..363dec3ad 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/MetadataResolverConverterServiceImplTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/MetadataResolverConverterServiceImplTests.groovy @@ -1,18 +1,17 @@ package edu.internet2.tier.shibboleth.admin.ui.service -import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest +import edu.internet2.tier.shibboleth.admin.ui.configuration.PlaceholderResolverComponentsConfiguration import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.DynamicMetadataResolverAttributes import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.LocalDynamicMetadataResolver +import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.test.context.SpringBootTest +import org.springframework.boot.test.context.TestConfiguration +import org.springframework.context.annotation.Bean import org.springframework.test.context.ContextConfiguration -import spock.lang.Specification - -@SpringBootTest -class MetadataResolverConverterServiceImplTests extends Specification { - +@ContextConfiguration(classes=[MRCSILocalConfig, PlaceholderResolverComponentsConfiguration]) +class MetadataResolverConverterServiceImplTests extends AbstractBaseDataJpaTest { @Autowired MetadataResolverConverterService mrConverterServiceUnderTest @@ -30,4 +29,21 @@ class MetadataResolverConverterServiceImplTests extends Specification { then: noExceptionThrown() } -} + + @TestConfiguration + private static class MRCSILocalConfig { + @Bean + DirectoryService directoryService() { + return new DirectoryServiceImpl() + } + + @Bean + MetadataResolverConverterServiceImpl metadataResolverConverterServiceImpl(IndexWriterService indexWriterService, OpenSamlObjects openSamlObjects) { + return new MetadataResolverConverterServiceImpl().with { + it.indexWriterService = indexWriterService + it.openSamlObjects = openSamlObjects + it + } + } + } +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/UserBootstrapTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/UserBootstrapTests.groovy index 0deb53e69..9c40b1035 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/UserBootstrapTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/UserBootstrapTests.groovy @@ -1,52 +1,25 @@ package edu.internet2.tier.shibboleth.admin.ui.service -import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration +import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest import edu.internet2.tier.shibboleth.admin.ui.configuration.ShibUIConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.TestConfiguration -import edu.internet2.tier.shibboleth.admin.ui.security.repository.RoleRepository -import edu.internet2.tier.shibboleth.admin.ui.security.repository.UserRepository -import edu.internet2.tier.shibboleth.admin.ui.security.service.IGroupService -import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest import org.springframework.context.annotation.ComponentScan import org.springframework.context.annotation.FilterType import org.springframework.core.io.ClassPathResource -import org.springframework.data.jpa.repository.config.EnableJpaRepositories -import org.springframework.test.annotation.DirtiesContext -import org.springframework.test.context.ContextConfiguration -import spock.lang.Specification +import org.springframework.transaction.annotation.Transactional -@DataJpaTest -@ContextConfiguration(classes=[CoreShibUiConfiguration, SearchConfiguration, TestConfiguration, InternationalizationConfiguration, ShibUIConfiguration]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan(["edu.internet2.tier.shibboleth.admin.ui", "edu.internet2.tier.shibboleth.admin.ui.security.model"]) -@DirtiesContext(methodMode = DirtiesContext.MethodMode.AFTER_METHOD, classMode = DirtiesContext.ClassMode.BEFORE_CLASS) @ComponentScan(excludeFilters = [@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = [UserBootstrap])]) -class UserBootstrapTests extends Specification { +class UserBootstrapTests extends AbstractBaseDataJpaTest { @Autowired ShibUIConfiguration shibUIConfiguration - @Autowired - UserRepository userRepository - - @Autowired - RoleRepository roleRepository - - @Autowired - UserService userService - - @Autowired - IGroupService groupService - + @Transactional def setup() { - groupService.ensureAdminGroupExists() roleRepository.deleteAll() + userRepository.deleteAll() + entityManager.flush() } - + def "simple test"() { setup: shibUIConfiguration.roles = [] diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/EntityDescriptorConversionUtilsTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/EntityDescriptorConversionUtilsTests.groovy index 0b9a4e81c..321ef2b38 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/EntityDescriptorConversionUtilsTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/EntityDescriptorConversionUtilsTests.groovy @@ -1,7 +1,5 @@ package edu.internet2.tier.shibboleth.admin.ui.util -import org.opensaml.saml.common.xml.SAMLConstants -import org.opensaml.saml.saml2.metadata.ContactPersonTypeEnumeration import edu.internet2.tier.shibboleth.admin.ui.domain.ContactPerson import edu.internet2.tier.shibboleth.admin.ui.domain.Description @@ -26,12 +24,12 @@ import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.SecurityInfoRepres import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.ServiceProviderSsoDescriptorRepresentation import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects import edu.internet2.tier.shibboleth.admin.util.EntityDescriptorConversionUtils +import org.opensaml.saml.common.xml.SAMLConstants +import org.opensaml.saml.saml2.metadata.ContactPersonTypeEnumeration import spock.lang.Shared import spock.lang.Specification import spock.lang.Unroll -import static edu.internet2.tier.shibboleth.admin.util.EntityDescriptorConversionUtils.* - class EntityDescriptorConversionUtilsTests extends Specification { @Shared OpenSamlObjects openSAMLObjects @@ -61,7 +59,7 @@ class EntityDescriptorConversionUtilsTests extends Specification { expected.name = 'testName' when: - def keyDescriptor = createKeyDescriptor('testName', 'signing', 'testValue') + def keyDescriptor = EntityDescriptorConversionUtils.createKeyDescriptor('testName', 'signing', 'testValue') then: assert keyDescriptor == expected @@ -80,19 +78,18 @@ class EntityDescriptorConversionUtilsTests extends Specification { expected.name = 'testName' when: - def keyDescriptor = createKeyDescriptor('testName', 'both', 'testValue') - openSAMLObjects.marshalToXmlString(keyDescriptor) // not sure why we do this?? + def keyDescriptor = EntityDescriptorConversionUtils.createKeyDescriptor('testName', 'both', 'testValue') then: assert keyDescriptor == expected } def 'test createKeyDescriptor equality'() { when: - def key1 = createKeyDescriptor('test', 'signing', 'test') - def key2 = createKeyDescriptor('test', 'signing', 'test') + def key1 = EntityDescriptorConversionUtils.createKeyDescriptor('test', 'signing', 'test') + def key2 = EntityDescriptorConversionUtils.createKeyDescriptor('test', 'signing', 'test') then: - assert key1.equals(key2) + assert key1 == key2 } @Unroll @@ -608,7 +605,7 @@ class EntityDescriptorConversionUtilsTests extends Specification { it.getRoleDescriptors().add( openSAMLObjects.buildDefaultInstanceOfType(SPSSODescriptor.class).with { it.addKeyDescriptor( - createKeyDescriptor('test', 'signing', 'test')) + utilsUnderTest.createKeyDescriptor('test', 'signing', 'test')) it } ) @@ -632,7 +629,7 @@ class EntityDescriptorConversionUtilsTests extends Specification { starter: openSAMLObjects.buildDefaultInstanceOfType(EntityDescriptor.class).with { it.getRoleDescriptors().add( openSAMLObjects.buildDefaultInstanceOfType(SPSSODescriptor.class).with { - it.addKeyDescriptor(createKeyDescriptor('test', 'signing', 'test')) + it.addKeyDescriptor(utilsUnderTest.createKeyDescriptor('test', 'signing', 'test')) it } ) @@ -641,8 +638,8 @@ class EntityDescriptorConversionUtilsTests extends Specification { expected: openSAMLObjects.buildDefaultInstanceOfType(EntityDescriptor.class).with { it.getRoleDescriptors().add( openSAMLObjects.buildDefaultInstanceOfType(SPSSODescriptor.class).with { - it.addKeyDescriptor(createKeyDescriptor('test', 'signing', 'test')) - it.addKeyDescriptor(createKeyDescriptor('test2', 'encryption', 'test2')) + it.addKeyDescriptor(utilsUnderTest.createKeyDescriptor('test', 'signing', 'test')) + it.addKeyDescriptor(utilsUnderTest.createKeyDescriptor('test2', 'encryption', 'test2')) it } ) @@ -665,8 +662,8 @@ class EntityDescriptorConversionUtilsTests extends Specification { starter: openSAMLObjects.buildDefaultInstanceOfType(EntityDescriptor.class).with { it.getRoleDescriptors().add( openSAMLObjects.buildDefaultInstanceOfType(SPSSODescriptor.class).with { - it.addKeyDescriptor(createKeyDescriptor('test', 'signing', 'test')) - it.addKeyDescriptor(createKeyDescriptor('test2', 'encryption', 'test2')) + it.addKeyDescriptor(utilsUnderTest.createKeyDescriptor('test', 'signing', 'test')) + it.addKeyDescriptor(utilsUnderTest.createKeyDescriptor('test2', 'encryption', 'test2')) it } ) @@ -675,7 +672,7 @@ class EntityDescriptorConversionUtilsTests extends Specification { expected: openSAMLObjects.buildDefaultInstanceOfType(EntityDescriptor.class).with { it.getRoleDescriptors().add( openSAMLObjects.buildDefaultInstanceOfType(SPSSODescriptor.class).with { - it.addKeyDescriptor(createKeyDescriptor('test2', 'encryption', 'test2')) + it.addKeyDescriptor(utilsUnderTest.createKeyDescriptor('test2', 'encryption', 'test2')) it } ) @@ -695,8 +692,8 @@ class EntityDescriptorConversionUtilsTests extends Specification { starter: openSAMLObjects.buildDefaultInstanceOfType(EntityDescriptor.class).with { it.getRoleDescriptors().add( openSAMLObjects.buildDefaultInstanceOfType(SPSSODescriptor.class).with { - it.addKeyDescriptor(createKeyDescriptor('test', 'signing', 'test')) - it.addKeyDescriptor(createKeyDescriptor('test', 'encryption', 'test')) + it.addKeyDescriptor(utilsUnderTest.createKeyDescriptor('test', 'signing', 'test')) + it.addKeyDescriptor(utilsUnderTest.createKeyDescriptor('test', 'encryption', 'test')) it } ) @@ -716,8 +713,8 @@ class EntityDescriptorConversionUtilsTests extends Specification { starter: openSAMLObjects.buildDefaultInstanceOfType(EntityDescriptor.class).with { it.getRoleDescriptors().add( openSAMLObjects.buildDefaultInstanceOfType(SPSSODescriptor.class).with { - it.addKeyDescriptor(createKeyDescriptor('test', 'signing', 'test')) - it.addKeyDescriptor(createKeyDescriptor('test', 'encryption', 'test')) + it.addKeyDescriptor(utilsUnderTest.createKeyDescriptor('test', 'signing', 'test')) + it.addKeyDescriptor(utilsUnderTest.createKeyDescriptor('test', 'encryption', 'test')) it } ) diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestObjectGenerator.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestObjectGenerator.groovy index e28220cc6..7ed0709df 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestObjectGenerator.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestObjectGenerator.groovy @@ -1,12 +1,36 @@ package edu.internet2.tier.shibboleth.admin.ui.util import edu.internet2.tier.shibboleth.admin.ui.configuration.CustomPropertiesConfiguration -import edu.internet2.tier.shibboleth.admin.ui.domain.* -import edu.internet2.tier.shibboleth.admin.ui.domain.filters.* +import edu.internet2.tier.shibboleth.admin.ui.domain.Attribute +import edu.internet2.tier.shibboleth.admin.ui.domain.ContactPerson +import edu.internet2.tier.shibboleth.admin.ui.domain.EntityDescriptor +import edu.internet2.tier.shibboleth.admin.ui.domain.LocalizedName +import edu.internet2.tier.shibboleth.admin.ui.domain.OrganizationDisplayName +import edu.internet2.tier.shibboleth.admin.ui.domain.OrganizationName +import edu.internet2.tier.shibboleth.admin.ui.domain.OrganizationURL +import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilter +import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilterTarget import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilterTarget.EntityAttributesFilterTargetType +import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityRoleWhiteListFilter +import edu.internet2.tier.shibboleth.admin.ui.domain.filters.MetadataFilter +import edu.internet2.tier.shibboleth.admin.ui.domain.filters.NameIdFormatFilter +import edu.internet2.tier.shibboleth.admin.ui.domain.filters.NameIdFormatFilterTarget +import edu.internet2.tier.shibboleth.admin.ui.domain.filters.RequiredValidUntilFilter +import edu.internet2.tier.shibboleth.admin.ui.domain.filters.SignatureValidationFilter import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.FilterRepresentation import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.FilterTargetRepresentation -import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.* +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ClasspathMetadataResource +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.DynamicHttpMetadataResolver +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.DynamicMetadataResolverAttributes +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.FileBackedHttpMetadataResolver +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.FilesystemMetadataResolver +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.HttpMetadataResolverAttributes +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.LocalDynamicMetadataResolver +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataQueryProtocolScheme +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolver +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ReloadableMetadataResolverAttributes +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ResourceBackedMetadataResolver +import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.SvnMetadataResource import edu.internet2.tier.shibboleth.admin.util.AttributeUtility import edu.internet2.tier.shibboleth.admin.util.MDDCConstants import edu.internet2.tier.shibboleth.admin.util.ModelRepresentationConversions @@ -39,25 +63,25 @@ class TestObjectGenerator { this.customPropertiesConfiguration = customPropertiesConfiguration } - DynamicHttpMetadataResolver buildDynamicHttpMetadataResolver() { - def resolver = new DynamicHttpMetadataResolver().with { - it.dynamicMetadataResolverAttributes = buildDynamicMetadataResolverAttributes() - it.httpMetadataResolverAttributes = buildHttpMetadataResolverAttributes() - it.maxConnectionsPerRoute = generator.randomInt(1, 100) - it.maxConnectionsTotal = generator.randomInt(1, 100) - it.supportedContentTypes = generator.randomStringList() - it.name = generator.randomString(10) - it.requireValidMetadata = generator.randomBoolean() - it.failFastInitialization = generator.randomBoolean() - it.sortKey = generator.randomInt(1, 10) - it.criterionPredicateRegistryRef = generator.randomString(10) - it.useDefaultPredicateRegistry = generator.randomBoolean() - it.satisfyAnyPredicates = generator.randomBoolean() - it.metadataFilters = buildAllTypesOfFilterList() - it - } - return resolver - } +// DynamicHttpMetadataResolver buildDynamicHttpMetadataResolver() { +// def resolver = new DynamicHttpMetadataResolver().with { +// it.dynamicMetadataResolverAttributes = buildDynamicMetadataResolverAttributes() +// it.httpMetadataResolverAttributes = buildHttpMetadataResolverAttributes() +// it.maxConnectionsPerRoute = generator.randomInt(1, 100) +// it.maxConnectionsTotal = generator.randomInt(1, 100) +// it.supportedContentTypes = generator.randomStringList() +// it.name = generator.randomString(10) +// it.requireValidMetadata = generator.randomBoolean() +// it.failFastInitialization = generator.randomBoolean() +// it.sortKey = generator.randomInt(1, 10) +// it.criterionPredicateRegistryRef = generator.randomString(10) +// it.useDefaultPredicateRegistry = generator.randomBoolean() +// it.satisfyAnyPredicates = generator.randomBoolean() +// it.metadataFilters = buildAllTypesOfFilterList() +// it +// } +// return resolver +// } HttpMetadataResolverAttributes buildHttpMetadataResolverAttributes() { def attributes = new HttpMetadataResolverAttributes().with { @@ -85,24 +109,24 @@ class TestObjectGenerator { HttpMetadataResolverAttributes.HttpCachingType.values()[generator.randomInt(0, 2)] } - LocalDynamicMetadataResolver buildLocalDynamicMetadataResolver() { - def resolver = new LocalDynamicMetadataResolver().with { - it.dynamicMetadataResolverAttributes = buildDynamicMetadataResolverAttributes() - it.sourceDirectory = generator.randomString(10) - it.sourceKeyGeneratorRef = generator.randomString(10) - it.sourceManagerRef = generator.randomString(10) - it.failFastInitialization = generator.randomBoolean() - it.name = generator.randomString(10) - it.requireValidMetadata = generator.randomBoolean() - it.useDefaultPredicateRegistry = generator.randomBoolean() - it.criterionPredicateRegistryRef = generator.randomString(10) - it.satisfyAnyPredicates = generator.randomBoolean() - it.sortKey = generator.randomInt(1, 10) - it.metadataFilters = buildAllTypesOfFilterList() - it - } - return resolver - } +// LocalDynamicMetadataResolver buildLocalDynamicMetadataResolver() { +// def resolver = new LocalDynamicMetadataResolver().with { +// it.dynamicMetadataResolverAttributes = buildDynamicMetadataResolverAttributes() +// it.sourceDirectory = generator.randomString(10) +// it.sourceKeyGeneratorRef = generator.randomString(10) +// it.sourceManagerRef = generator.randomString(10) +// it.failFastInitialization = generator.randomBoolean() +// it.name = generator.randomString(10) +// it.requireValidMetadata = generator.randomBoolean() +// it.useDefaultPredicateRegistry = generator.randomBoolean() +// it.criterionPredicateRegistryRef = generator.randomString(10) +// it.satisfyAnyPredicates = generator.randomBoolean() +// it.sortKey = generator.randomInt(1, 10) +// it.metadataFilters = buildAllTypesOfFilterList() +// it +// } +// return resolver +// } DynamicMetadataResolverAttributes buildDynamicMetadataResolverAttributes() { def attributes = new DynamicMetadataResolverAttributes().with { @@ -127,13 +151,11 @@ class TestObjectGenerator { List buildAllTypesOfFilterList() { List filterList = new ArrayList<>() - (1..generator.randomInt(4, 10)).each { - filterList.add(buildFilter { entityAttributesFilter() }) - filterList.add(buildFilter { entityRoleWhitelistFilter() }) - filterList.add(buildFilter { signatureValidationFilter() }) - filterList.add(buildFilter { requiredValidUntilFilter() }) - filterList.add(buildFilter { nameIdFormatFilter() }) - } + filterList.add(buildFilter { entityAttributesFilter() }) + filterList.add(buildFilter { entityRoleWhitelistFilter() }) + filterList.add(buildFilter { signatureValidationFilter() }) + filterList.add(buildFilter { requiredValidUntilFilter() }) + filterList.add(buildFilter { nameIdFormatFilter() }) return filterList } @@ -156,7 +178,7 @@ class TestObjectGenerator { randomFilter = nameIdFormatFilter() break default: - throw new RuntimeException("Did you forget to create a TestObjectGenerator.copyOf method for filtertype: ${filterType} ?"); + throw new RuntimeException("Did you forget to create a TestObjectGenerator.copyOf method for filtertype: ${filterType} ?") } randomFilter } @@ -223,12 +245,7 @@ class TestObjectGenerator { return new NameIdFormatFilter().with { it.name = "NameIDFormat" it.formats = ['urn:oasis:names:tc:SAML:2.0:nameid-format:persistent'] - it.nameIdFormatFilterTarget = new NameIdFormatFilterTarget(nameIdFormatFilterTargetType: ENTITY, singleValue: 'https://sp1.example.org') - - /*it.name = "NameIDFormat" - it.formats = ['urn:oasis:names:tc:SAML:2.0:nameid-format:persistent', 'urn:oasis:names:tc:SAML:2.0:nameid-format:email'] - it.nameIdFormatFilterTarget = new NameIdFormatFilterTarget(nameIdFormatFilterTargetType: CONDITION_SCRIPT, singleValue: 'eval(true);')*/ - + it.setNameIdFormatFilterTarget(new NameIdFormatFilterTarget(nameIdFormatFilterTargetType: ENTITY, singleValue: 'https://sp1.example.org')) it } } @@ -285,6 +302,7 @@ class TestObjectGenerator { it.resourceId = nameIdFormatFilter.resourceId it.removeExistingFormats = nameIdFormatFilter.removeExistingFormats it.formats = nameIdFormatFilter.formats + it.nameIdFormatFilterTarget = nameIdFormatFilter.nameIdFormatFilterTarget it } } @@ -300,33 +318,27 @@ class TestObjectGenerator { List attributes = new ArrayList<>() customPropertiesConfiguration.getOverrides().each { override -> - if (generator.randomBoolean()) { - switch (ModelRepresentationConversions.AttributeTypes.valueOf(override.getDisplayType().toUpperCase())) { - case ModelRepresentationConversions.AttributeTypes.BOOLEAN: - if (override.getPersistType() != null && - override.getPersistType() != override.getDisplayType()) { - attributes.add(attributeUtility.createAttributeWithStringValues(override.getAttributeName(), override.getAttributeFriendlyName(), override.persistValue)) - } else { - attributes.add(attributeUtility.createAttributeWithBooleanValue(override.getAttributeName(), override.getAttributeFriendlyName(), Boolean.valueOf(override.invert) ^ true)) - } - break - case ModelRepresentationConversions.AttributeTypes.INTEGER: - attributes.add(attributeUtility.createAttributeWithIntegerValue(override.getAttributeName(), override.getAttributeFriendlyName(), generator.randomInt(0, 999999))) - break - case ModelRepresentationConversions.AttributeTypes.STRING: - attributes.add(attributeUtility.createAttributeWithStringValues(override.getAttributeName(), override.getAttributeFriendlyName(), generator.randomString(30))) - break - case ModelRepresentationConversions.AttributeTypes.SET: - case ModelRepresentationConversions.AttributeTypes.LIST: - attributes.add(attributeUtility.createAttributeWithStringValues(override.getAttributeName(), override.getAttributeFriendlyName(), generator.randomStringList())) - break - } + switch (ModelRepresentationConversions.AttributeTypes.valueOf(override.getDisplayType().toUpperCase())) { + case ModelRepresentationConversions.AttributeTypes.BOOLEAN: + if (override.getPersistType() != null && override.getPersistType() != override.getDisplayType()) { + attributes.add(attributeUtility.createAttributeWithStringValues(override.getAttributeName(), override.getAttributeFriendlyName(), override.persistValue)) + } else { + attributes.add(attributeUtility.createAttributeWithBooleanValue(override.getAttributeName(), override.getAttributeFriendlyName(), Boolean.valueOf(override.invert) ^ true)) + } + break + case ModelRepresentationConversions.AttributeTypes.INTEGER: + attributes.add(attributeUtility.createAttributeWithIntegerValue(override.getAttributeName(), override.getAttributeFriendlyName(), generator.randomInt(0, 999999))) + break + case ModelRepresentationConversions.AttributeTypes.STRING: + attributes.add(attributeUtility.createAttributeWithStringValues(override.getAttributeName(), override.getAttributeFriendlyName(), generator.randomString(30))) + break + case ModelRepresentationConversions.AttributeTypes.SET: + case ModelRepresentationConversions.AttributeTypes.LIST: + attributes.add(attributeUtility.createAttributeWithStringValues(override.getAttributeName(), override.getAttributeFriendlyName(), generator.randomStringList())) + break } } - if (generator.randomBoolean()) { - attributes.add(attributeUtility.createAttributeWithStringValues(MDDCConstants.RELEASE_ATTRIBUTES, generator.randomStringList())) - } - + attributes.add(attributeUtility.createAttributeWithStringValues(MDDCConstants.RELEASE_ATTRIBUTES, generator.randomStringList())) return attributes } @@ -383,11 +395,8 @@ class TestObjectGenerator { EntityAttributesFilterTarget buildEntityAttributesFilterTarget() { EntityAttributesFilterTarget entityAttributesFilterTarget = new EntityAttributesFilterTarget() - - entityAttributesFilterTarget.setEntityAttributesFilterTargetType(randomFilterTargetType()) - entityAttributesFilterTarget.setSingleValue( - buildEntityAttributesFilterTargetValueByType(entityAttributesFilterTarget.getEntityAttributesFilterTargetType())) - + entityAttributesFilterTarget.setEntityAttributesFilterTargetType(EntityAttributesFilterTargetType.ENTITY) + entityAttributesFilterTarget.setSingleValue(buildEntityAttributesFilterTargetValueByType(EntityAttributesFilterTargetType.ENTITY)) return entityAttributesFilterTarget } @@ -414,18 +423,12 @@ class TestObjectGenerator { FilterTargetRepresentation buildFilterTargetRepresentation() { FilterTargetRepresentation representation = new FilterTargetRepresentation() - representation.setType(randomFilterTargetType().toString()) - representation.setValue([ - buildEntityAttributesFilterTargetValueByType(EntityAttributesFilterTargetType.valueOf(representation.getType())) - ]) + representation.setType(EntityAttributesFilterTargetType.ENTITY.name()) + representation.setValue([ buildEntityAttributesFilterTargetValueByType(EntityAttributesFilterTargetType.ENTITY) ]) return representation } - EntityAttributesFilterTarget.EntityAttributesFilterTargetType randomFilterTargetType() { - EntityAttributesFilterTarget.EntityAttributesFilterTargetType.values()[generator.randomInt(0, 2)] - } - EntityDescriptor buildEntityDescriptor() { EntityDescriptor entityDescriptor = new EntityDescriptor() @@ -469,7 +472,7 @@ class TestObjectGenerator { } ContactPerson buildContactPerson() { - ContactPerson contactPerson = new ContactPerson(); + ContactPerson contactPerson = new ContactPerson() contactPerson.setNamespaceURI(generator.randomString(20)) contactPerson.setElementLocalName(generator.randomString(20)) @@ -495,9 +498,9 @@ class TestObjectGenerator { break case 'Filesystem': randomResolver = filesystemMetadataResolver() - break; + break default: - throw new RuntimeException("Did you forget to create a TestObjectGenerator.MetadataResolver method for resolverType: ${metadataResolverType} ?"); + throw new RuntimeException("Did you forget to create a TestObjectGenerator.MetadataResolver method for resolverType: ${metadataResolverType} ?") } randomResolver } @@ -570,25 +573,25 @@ class TestObjectGenerator { } } - ResourceBackedMetadataResolver resourceBackedMetadataResolverForSVN() { - new ResourceBackedMetadataResolver().with { - it.name = 'SVNResourceMetadata' - it.xmlId = 'SVNResourceMetadata' - it.svnMetadataResource = new SvnMetadataResource().with { - it.resourceFile = 'entity.xml' - it.repositoryURL = 'https://svn.example.org/repo/path/to.dir' - it.workingCopyDirectory = '%{idp.home}/metadata/svn' - it - } - it.reloadableMetadataResolverAttributes = new ReloadableMetadataResolverAttributes().with { - it - } - // Changes in MetadataResolver (removing defaults), so adding back those settings here. - it.enabled = Boolean.TRUE - it.doInitialization = Boolean.TRUE - it - } - } +// ResourceBackedMetadataResolver resourceBackedMetadataResolverForSVN() { +// new ResourceBackedMetadataResolver().with { +// it.name = 'SVNResourceMetadata' +// it.xmlId = 'SVNResourceMetadata' +// it.svnMetadataResource = new SvnMetadataResource().with { +// it.resourceFile = 'entity.xml' +// it.repositoryURL = 'https://svn.example.org/repo/path/to.dir' +// it.workingCopyDirectory = '%{idp.home}/metadata/svn' +// it +// } +// it.reloadableMetadataResolverAttributes = new ReloadableMetadataResolverAttributes().with { +// it +// } +// // Changes in MetadataResolver (removing defaults), so adding back those settings here. +// it.enabled = Boolean.TRUE +// it.doInitialization = Boolean.TRUE +// it +// } +// } ResourceBackedMetadataResolver resourceBackedMetadataResolverForClasspath() { new ResourceBackedMetadataResolver().with { @@ -618,7 +621,7 @@ class TestObjectGenerator { resolver.criterionPredicateRegistryRef = generator.randomString(10) resolver.useDefaultPredicateRegistry = generator.randomBoolean() resolver.satisfyAnyPredicates = generator.randomBoolean() - resolver.metadataFilters = [] + resolver.metadataFilters = [entityAttributesFilter(), entityRoleWhitelistFilter()] resolver.reloadableMetadataResolverAttributes = buildReloadableMetadataResolverAttributes() resolver.httpMetadataResolverAttributes = buildHttpMetadataResolverAttributes() return resolver @@ -659,4 +662,4 @@ class TestObjectGenerator { } return list } -} +} \ No newline at end of file diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/WithMockAdmin.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/WithMockAdmin.groovy new file mode 100644 index 000000000..9bd6f825a --- /dev/null +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/WithMockAdmin.groovy @@ -0,0 +1,11 @@ +package edu.internet2.tier.shibboleth.admin.ui.util + + +import org.springframework.security.test.context.support.WithMockUser + +import java.lang.annotation.Retention +import java.lang.annotation.RetentionPolicy + +@Retention(RetentionPolicy.RUNTIME) +@WithMockUser(value = "admin", roles = ["ADMIN"]) +@interface WithMockAdmin {} \ No newline at end of file diff --git a/pac4j-module/src/main/java/net/unicon/shibui/pac4j/AddNewUserFilter.java b/pac4j-module/src/main/java/net/unicon/shibui/pac4j/AddNewUserFilter.java index 548380712..5c99d27a7 100644 --- a/pac4j-module/src/main/java/net/unicon/shibui/pac4j/AddNewUserFilter.java +++ b/pac4j-module/src/main/java/net/unicon/shibui/pac4j/AddNewUserFilter.java @@ -1,6 +1,7 @@ package net.unicon.shibui.pac4j; import edu.internet2.tier.shibboleth.admin.ui.security.exception.GroupExistsConflictException; +import edu.internet2.tier.shibboleth.admin.ui.security.exception.InvalidGroupRegexException; import edu.internet2.tier.shibboleth.admin.ui.security.model.Group; import edu.internet2.tier.shibboleth.admin.ui.security.model.Role; import edu.internet2.tier.shibboleth.admin.ui.security.model.User; @@ -149,7 +150,7 @@ private Set findOrCreateGroups(ArrayList groupNames) { try { groupService.createGroup(g); } - catch (GroupExistsConflictException shouldntHappen) { + catch (GroupExistsConflictException | InvalidGroupRegexException shouldntHappen) { } } result.add(g); diff --git a/ui/package.json b/ui/package.json index af87df3d6..4b40ce671 100644 --- a/ui/package.json +++ b/ui/package.json @@ -2,6 +2,7 @@ "name": "ui", "version": "0.1.0", "private": true, + "homepage": ".", "dependencies": { "@fortawesome/fontawesome-free": "^5.15.3", "@fortawesome/fontawesome-svg-core": "^1.2.35", diff --git a/ui/public/assets/schema/groups/group.json b/ui/public/assets/schema/groups/group.json index 02bcb2dea..518293851 100644 --- a/ui/public/assets/schema/groups/group.json +++ b/ui/public/assets/schema/groups/group.json @@ -17,6 +17,11 @@ "type": "string", "minLength": 1, "maxLength": 255 + }, + "validationRegex": { + "title": "label.url-validation-regex", + "description": "tooltip.url-validation-regex", + "type": "string" } } } \ No newline at end of file diff --git a/ui/src/app/App.constant.js b/ui/src/app/App.constant.js index c08fda543..3b6af7f89 100644 --- a/ui/src/app/App.constant.js +++ b/ui/src/app/App.constant.js @@ -1,7 +1,13 @@ -export const API_BASE_PATH = 'api'; +export const getBasePath = () => { + const url = new URL(document.getElementsByTagName('base')[0].href); + return url.pathname?.replace(/^\/+/g, ''); -export const FILTER_PLUGIN_TYPES = ['RequiredValidUntil', 'SignatureValidation', 'EntityRoleWhiteList']; + //replace(/^\/|\/$/g, '') +}; +export const BASE_PATH = getBasePath(); +export const API_BASE_PATH = `${BASE_PATH}api`; +export const FILTER_PLUGIN_TYPES = ['RequiredValidUntil', 'SignatureValidation', 'EntityRoleWhiteList']; export default API_BASE_PATH; diff --git a/ui/src/app/App.js b/ui/src/app/App.js index e52a45f4a..ba9ced5f5 100644 --- a/ui/src/app/App.js +++ b/ui/src/app/App.js @@ -29,6 +29,7 @@ import { SessionModal } from './core/user/SessionModal'; import { Roles } from './admin/Roles'; import Button from 'react-bootstrap/Button'; import { Groups } from './admin/Groups'; +import { BASE_PATH } from './App.constant'; function App() { @@ -66,7 +67,7 @@ function App() { {(message, confirm, confirmCallback, setConfirm, getConfirmation) => - +

diff --git a/ui/src/app/App.test.js b/ui/src/app/App.test.js index 0b91c687f..3ee0682ba 100644 --- a/ui/src/app/App.test.js +++ b/ui/src/app/App.test.js @@ -2,6 +2,12 @@ import React from 'react'; import ReactDOM from 'react-dom'; import App from './App'; +jest.mock('./App.constant', () => ({ + get API_BASE_PATH() { + return '/'; + } +})); + it('renders without crashing', () => { const div = document.createElement('div'); ReactDOM.render(, div); diff --git a/ui/src/app/admin/component/GroupForm.js b/ui/src/app/admin/component/GroupForm.js index da8c5af8b..77ec82135 100644 --- a/ui/src/app/admin/component/GroupForm.js +++ b/ui/src/app/admin/component/GroupForm.js @@ -5,7 +5,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faSpinner, faSave } from '@fortawesome/free-solid-svg-icons'; import Translate from '../../i18n/components/translate'; -import { useGroupUiSchema } from '../hooks'; +import { useGroupUiSchema, useGroupUiValidator } from '../hooks'; import { fields, widgets } from '../../form/component'; import { templates } from '../../form/component'; import { FormContext, setFormDataAction, setFormErrorAction } from '../../form/FormManager'; @@ -23,6 +23,7 @@ export function GroupForm ({group = {}, errors = [], loading = false, schema, on }; const uiSchema = useGroupUiSchema(); + const validator = useGroupUiValidator(); return (<>
@@ -49,6 +50,7 @@ export function GroupForm ({group = {}, errors = [], loading = false, schema, on
onChange(form)} + validate={validator} schema={schema} uiSchema={uiSchema} FieldTemplate={templates.FieldTemplate} diff --git a/ui/src/app/admin/container/EditGroup.js b/ui/src/app/admin/container/EditGroup.js index 066350356..3edbac5ec 100644 --- a/ui/src/app/admin/container/EditGroup.js +++ b/ui/src/app/admin/container/EditGroup.js @@ -11,6 +11,7 @@ import { GroupForm } from '../component/GroupForm'; import { GroupProvider } from '../hoc/GroupProvider'; import { createNotificationAction, NotificationTypes, useNotificationDispatcher } from '../../notifications/hoc/Notifications'; import { useTranslator } from '../../i18n/hooks'; +import { BASE_PATH } from '../../App.constant'; export function EditGroup() { @@ -67,7 +68,7 @@ export function EditGroup() {
{(group) => - + {(schema) => <>{group && diff --git a/ui/src/app/admin/container/EditRole.js b/ui/src/app/admin/container/EditRole.js index 16b503aed..1181b8eac 100644 --- a/ui/src/app/admin/container/EditRole.js +++ b/ui/src/app/admin/container/EditRole.js @@ -11,6 +11,7 @@ import { RoleForm } from '../component/RoleForm'; import { RoleProvider } from '../hoc/RoleProvider'; import { createNotificationAction, NotificationTypes, useNotificationDispatcher } from '../../notifications/hoc/Notifications'; import { useTranslator } from '../../i18n/hooks'; +import { BASE_PATH } from '../../App.constant'; export function EditRole() { @@ -67,7 +68,7 @@ export function EditRole() {
{(role) => - + {(schema) => <>{role && diff --git a/ui/src/app/admin/container/NewGroup.js b/ui/src/app/admin/container/NewGroup.js index 28994abd0..dfa53bfc1 100644 --- a/ui/src/app/admin/container/NewGroup.js +++ b/ui/src/app/admin/container/NewGroup.js @@ -9,6 +9,7 @@ import { GroupForm } from '../component/GroupForm'; import { createNotificationAction, NotificationTypes, useNotificationDispatcher } from '../../notifications/hoc/Notifications'; import { useTranslator } from '../../i18n/hooks'; +import { BASE_PATH } from '../../App.constant'; export function NewGroup() { const history = useHistory(); @@ -59,7 +60,7 @@ export function NewGroup() {
- + {(schema) => {(data, errors) => diff --git a/ui/src/app/admin/container/NewRole.js b/ui/src/app/admin/container/NewRole.js index 6d1abfc56..fff718ea7 100644 --- a/ui/src/app/admin/container/NewRole.js +++ b/ui/src/app/admin/container/NewRole.js @@ -9,6 +9,7 @@ import { RoleForm } from '../component/RoleForm'; import { createNotificationAction, NotificationTypes, useNotificationDispatcher } from '../../notifications/hoc/Notifications'; import { useTranslator } from '../../i18n/hooks'; +import { BASE_PATH } from '../../App.constant'; export function NewRole() { const history = useHistory(); @@ -59,7 +60,7 @@ export function NewRole() {
- + {(schema) => {(data, errors) => diff --git a/ui/src/app/admin/hoc/RoleProvider.test.js b/ui/src/app/admin/hoc/RoleProvider.test.js index a7d3347b4..480118e94 100644 --- a/ui/src/app/admin/hoc/RoleProvider.test.js +++ b/ui/src/app/admin/hoc/RoleProvider.test.js @@ -5,6 +5,12 @@ import {RoleProvider} from './RoleProvider'; import {useRole} from '../hooks'; +jest.mock('../../App.constant', () => ({ + get API_BASE_PATH() { + return '/'; + } +})); + jest.mock('../hooks'); describe('RoleProvider component', () => { diff --git a/ui/src/app/admin/hoc/RolesProvider.test.js b/ui/src/app/admin/hoc/RolesProvider.test.js index 11c01481e..65cc3ee22 100644 --- a/ui/src/app/admin/hoc/RolesProvider.test.js +++ b/ui/src/app/admin/hoc/RolesProvider.test.js @@ -6,6 +6,12 @@ import { RolesProvider } from './RolesProvider'; import { useRoles } from '../hooks'; import { useNotificationDispatcher } from "../../notifications/hoc/Notifications"; +jest.mock('../../App.constant', () => ({ + get API_BASE_PATH() { + return '/'; + } +})); + jest.mock('../hooks'); jest.mock('../../notifications/hoc/Notifications'); diff --git a/ui/src/app/admin/hooks.js b/ui/src/app/admin/hooks.js index 772ea1ec0..66922a97c 100644 --- a/ui/src/app/admin/hooks.js +++ b/ui/src/app/admin/hooks.js @@ -1,4 +1,6 @@ import useFetch from 'use-http'; +import isNil from 'lodash/isNil'; +import {isValidRegex} from '../core/utility/is_valid_regex'; import API_BASE_PATH from '../App.constant'; export function useGroups (opts = { cachePolicy: 'no-cache' }) { @@ -29,6 +31,18 @@ export function useGroupUiSchema () { }; } +export function useGroupUiValidator() { + return (formData, errors) => { + if (!isNil(formData?.validationRegex)) { + const isValid = isValidRegex(formData.validationRegex); + if (!isValid) { + errors.validationRegex.addError('message.invalid-regex-pattern'); + } + } + return errors; + } +} + export function useRoleUiSchema() { return {}; } diff --git a/ui/src/app/admin/hooks.test.js b/ui/src/app/admin/hooks.test.js index d739c9aa1..10a102df3 100644 --- a/ui/src/app/admin/hooks.test.js +++ b/ui/src/app/admin/hooks.test.js @@ -1,4 +1,5 @@ import { + useGroupUiValidator, useRoles, useRole, } from './hooks'; @@ -6,8 +7,22 @@ import { import useFetch from 'use-http'; import API_BASE_PATH from '../App.constant'; +jest.mock('../App.constant', () => ({ + get API_BASE_PATH() { + return '/'; + } +})); + jest.mock('use-http'); +it('should validate against a regex', () => { + const validator = useGroupUiValidator(); + const addErrorSpy = jest.fn(); + const fail = validator({ validationRegex: '))(()' }, { validationRegex: { addError: addErrorSpy } }); + expect(addErrorSpy).toHaveBeenCalled(); + expect(validator({validationRegex: '/*'})).toBeUndefined(); +}); + describe('api hooks', () => { let mockPut; @@ -52,4 +67,4 @@ describe('api hooks', () => { expect(useFetch).toHaveBeenCalledWith(`${API_BASE_PATH}/admin/roles/foo`, opts) }); }); -}); \ No newline at end of file +}); diff --git a/ui/src/app/core/components/Footer.test.js b/ui/src/app/core/components/Footer.test.js index 8f9453338..63c89e9e1 100644 --- a/ui/src/app/core/components/Footer.test.js +++ b/ui/src/app/core/components/Footer.test.js @@ -2,6 +2,12 @@ import React from 'react'; import { render, screen } from '@testing-library/react'; import { Footer } from './Footer'; +jest.mock('../../App.constant', () => ({ + get API_BASE_PATH() { + return '/'; + } +})); + jest.mock('../../i18n/hooks', () => ({ useTranslation: (value) => value })); diff --git a/ui/src/app/core/components/Header.js b/ui/src/app/core/components/Header.js index 4847c83f5..7bb693b1e 100644 --- a/ui/src/app/core/components/Header.js +++ b/ui/src/app/core/components/Header.js @@ -14,6 +14,7 @@ import { useTranslator } from '../../i18n/hooks'; import { brand } from '../../app.brand'; import { useCurrentUser, useCurrentUserLoading, useIsAdmin } from '../user/UserContext'; +import { BASE_PATH } from '../../App.constant'; export function Header () { @@ -98,7 +99,7 @@ export function Header () { Groups {groupId} - Logout diff --git a/ui/src/app/core/components/Header.test.js b/ui/src/app/core/components/Header.test.js index 6b09a6b5c..70d186d91 100644 --- a/ui/src/app/core/components/Header.test.js +++ b/ui/src/app/core/components/Header.test.js @@ -3,6 +3,12 @@ import { render, screen } from '@testing-library/react'; import { BrowserRouter as Router } from 'react-router-dom'; import { Header } from './Header'; +jest.mock('../../App.constant', () => ({ + get API_BASE_PATH() { + return '/'; + } +})); + jest.mock('../../i18n/hooks', () => ({ useTranslator: () => (value) => value, useTranslation: (value) => value diff --git a/ui/src/app/core/components/VersionInfo.js b/ui/src/app/core/components/VersionInfo.js index ab1fff8d5..1c6badfc1 100644 --- a/ui/src/app/core/components/VersionInfo.js +++ b/ui/src/app/core/components/VersionInfo.js @@ -1,6 +1,7 @@ import React from 'react'; import useFetch from 'use-http'; +import { BASE_PATH } from '../../App.constant'; import Translate from '../../i18n/components/translate'; @@ -11,7 +12,7 @@ const params = { year }; export function VersionInfo () { - const { data = {} } = useFetch('/actuator/info', {}, []); + const { data = {} } = useFetch(`${BASE_PATH}actuator/info`, {}, []); const [ versionData, setVersionData ] = React.useState(''); diff --git a/ui/src/app/core/components/VersionInfo.test.js b/ui/src/app/core/components/VersionInfo.test.js index 28a8a6b47..8a14c3154 100644 --- a/ui/src/app/core/components/VersionInfo.test.js +++ b/ui/src/app/core/components/VersionInfo.test.js @@ -4,6 +4,12 @@ import { render, screen } from '@testing-library/react'; import { VersionInfo } from './VersionInfo'; +jest.mock('../../App.constant', () => ({ + get API_BASE_PATH() { + return '/'; + } +})); + const data = { "git": { "branch": "react", "commit": { "id": "634f1a4", "time": "2021-06-10T19:00:29Z" } }, "build": { "artifact": "shibui", "name": "backend", "time": "2021-06-10T19:26:14.478Z", "version": "2.0.0-SNAPSHOT", "group": "edu.internet2.tier.shibboleth.admin.ui" } }; jest.mock('../../i18n/components/translate', () => { diff --git a/ui/src/app/core/user/UserContext.js b/ui/src/app/core/user/UserContext.js index a3c1e073c..14666abe8 100644 --- a/ui/src/app/core/user/UserContext.js +++ b/ui/src/app/core/user/UserContext.js @@ -12,8 +12,7 @@ const path = '/admin/users/current'; function UserProvider({ children }) { const { get, response, loading } = useFetch(`${API_BASE_PATH}`, { - cacheLife: 10000, - cachePolicy: 'cache-first' + cachePolicy: 'no-cache' }); React.useEffect(() => { loadUser() }, []); @@ -71,4 +70,26 @@ function useCanEnable() { return isAdmin || isEnabler; } -export { UserContext, UserProvider, Consumer as UserConsumer, useCurrentUser, useIsAdmin, useIsAdminOrInGroup, useCanEnable, useCurrentUserLoading}; +function useUserGroup() { + const user = useCurrentUser(); + return user?.userGroups[0]; +} + +function useUserGroupRegexValidator () { + const user = useCurrentUser(); + return (user?.userGroups && user.userGroups.length > 0) ? user?.userGroups[0].validationRegex : null; +} + + +export { + UserContext, + UserProvider, + Consumer as UserConsumer, + useCurrentUser, + useIsAdmin, + useIsAdminOrInGroup, + useCanEnable, + useCurrentUserLoading, + useUserGroupRegexValidator, + useUserGroup +}; diff --git a/ui/src/app/core/user/UserContext.test.js b/ui/src/app/core/user/UserContext.test.js index d5e2ce1cb..9807981bf 100644 --- a/ui/src/app/core/user/UserContext.test.js +++ b/ui/src/app/core/user/UserContext.test.js @@ -2,6 +2,12 @@ import React from 'react'; import { render, screen, waitFor } from '@testing-library/react'; import { UserProvider, useIsAdmin } from './UserContext'; +jest.mock('../../App.constant', () => ({ + get API_BASE_PATH() { + return '/'; + } +})); + const getFn = jest.fn(); const okFn = jest.fn(); diff --git a/ui/src/app/form/component/fields/FilterTargetField.js b/ui/src/app/form/component/fields/FilterTargetField.js index 3bd6fb26a..b9d44c725 100644 --- a/ui/src/app/form/component/fields/FilterTargetField.js +++ b/ui/src/app/form/component/fields/FilterTargetField.js @@ -45,8 +45,13 @@ const FilterTargetField = ({ onChange, errorSchema, formData, + formContext, ...props }) => { + + const { group } = formContext; + const regex = new RegExp(group?.validationRegex || '/*'); + const typeFieldName = `${name}Type`; const type = schema.properties[typeFieldName]; @@ -59,6 +64,8 @@ const FilterTargetField = ({ const [selectedTarget, setSelectedTarget] = React.useState([...(formData.value && !isNil(formData.value) && !isNil(formData.value[0]) ? formData.value : [])]); const [term, setSearchTerm] = React.useState(''); + const [match, setMatch] = React.useState(true); + const [touched, setTouched] = React.useState(false); const [ids, setSearchIds] = React.useState([]); const { get, response } = useFetch(`${API_BASE_PATH}/EntityIds/search`, { @@ -113,6 +120,7 @@ const FilterTargetField = ({ const onEntityIdsChange = (value) => { setSearchTerm(value); + setMatch(regex ? regex.test(value) : true); }; const selectType = (option) => { @@ -172,19 +180,28 @@ const FilterTargetField = ({ onInputChange={onEntityIdsChange} selected={ [term] } onChange={ () => {} } + onBlur={() => setTouched(true)} onSearch={ (query) => setSearchTerm(query) } - renderMenuItemChildren={(option, { options, text }, index) => { - return {option}; - }}> + renderMenuItemChildren={(option, { options, text }, index) => + {option} + }> {({ isMenuShown, toggleMenu }) => ( toggleMenu()} disabled={disabled || readonly} /> )} - - - You must add at least one entity id target and they must each be unique. - - + {(!touched || match) ? + + + You must add at least one entity id target and they must each be unique. + + + : + + + Invalid URL + + + } } { targetType === 'CONDITION_SCRIPT' && @@ -210,6 +227,7 @@ const FilterTargetField = ({ className="form-control" type="text" name="script" + value={selectedTarget[0]} onChange={ ({target: { value }}) => handleTextChange(value) } /> {errorSchema?.value?.__errors ? @@ -232,7 +250,7 @@ const FilterTargetField = ({