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 319ff8b82..f3e51f28f 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 @@ -87,6 +87,7 @@ class SeleniumSIDETest extends Specification { def runner = new Runner() runner.varsMap.put('xmlUpload', Paths.get(this.class.getResource('/TestUpload.xml').toURI()).toString()) runner.varsMap.put('SHIBUI950', Paths.get(this.class.getResource('/SHIBUI-950.xml').toURI()).toString()) + runner.varsMap.put('driver', config.driver) main.setupRunner(runner, config, [] as String[]) expect: @@ -98,10 +99,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,25 +114,38 @@ 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' 'SHIBUI-1407: Metadata source comparison highlights' | '/SHIBUI-1407-1.side' - 'SHIBUI-1407: Metadata provider comparison highlights' | '/SHIBUI-1407-2.side'*/ + 'SHIBUI-1407: Metadata provider comparison highlights' | '/SHIBUI-1407-2.side' '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-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-2116: Verify entity attribute bundle highlights' | '/SHIBUI-2116.side' // Note that this script WILL NOT PASS in the Selenium IDE due to ${driver} not being set (it is provided by this groovy script). + 'SHIBUI-1732: Create, use, and delete CEA String' | '/SHIBUI-1732-1.side' + 'SHIBUI-1732: Create, use, and delete CEA Boolean' | '/SHIBUI-1732-2.side' + 'SHIBUI-1732: Create, use, and delete CEA List' | '/SHIBUI-1732-3.side' + 'SHIBUI-1732: Create, use, and delete CEA Long' | '/SHIBUI-1732-4.side' + 'SHIBUI-1732: Create, use, and delete CEA Double' | '/SHIBUI-1732-5.side' + 'SHIBUI-1732: Create, use, and delete CEA Duration' | '/SHIBUI-1732-6.side' + 'SHIBUI-1732: Create, use, and delete CEA Spring Bean' | '/SHIBUI-1732-7.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/groovy/jp/vmi/selenium/selenese/command/AttachFile.java b/backend/src/integration/groovy/jp/vmi/selenium/selenese/command/AttachFile.java new file mode 100644 index 000000000..02bf54d65 --- /dev/null +++ b/backend/src/integration/groovy/jp/vmi/selenium/selenese/command/AttachFile.java @@ -0,0 +1,112 @@ +// This code is based on: +// +// com.thoughtworks.selenium.webdriven.commands.AttachFile +// +// in Selenium WebDriver. +// +// The following copyright is copied from original. +// --- +// Licensed to the Software Freedom Conservancy (SFC) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The SFC licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package jp.vmi.selenium.selenese.command; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; + +import org.apache.commons.io.FilenameUtils; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.io.TemporaryFilesystem; + +import com.google.common.io.Resources; + +import jp.vmi.selenium.selenese.Context; +import jp.vmi.selenium.selenese.result.Error; +import jp.vmi.selenium.selenese.result.Result; +import jp.vmi.selenium.selenese.result.Warning; + +import static jp.vmi.selenium.selenese.command.ArgumentType.*; +import static jp.vmi.selenium.selenese.result.Success.*; + +/** + * Re-implementation of AttachFile. + */ +public class AttachFile extends AbstractCommand { + + private static final int ARG_LOCATOR = 0; + private static final int ARG_FILENAME = 1; + + AttachFile(int index, String name, String... args) { + super(index, name, args, LOCATOR, VALUE); + } + + @Override + protected Result executeImpl(Context context, String... curArgs) { + String name = curArgs[ARG_FILENAME]; + File outputTo = null; + if (name.contains("://")) { + // process (remote) url + URL url; + try { + url = new URL(name); + } catch (MalformedURLException e) { + return new Error("Malformed URL: " + name); + } + File dir = TemporaryFilesystem.getDefaultTmpFS().createTempDir("attachFile", "dir"); + outputTo = new File(dir, new File(url.getFile()).getName()); + FileOutputStream fos = null; + try { + fos = new FileOutputStream(outputTo); + Resources.copy(url, fos); + } catch (IOException e) { + return new Error("Can't access file to upload: " + url, e); + } finally { + try { + if (fos != null) { + fos.close(); + } + } catch (IOException e) { + return new Warning("Unable to close stream used for reading file: " + name, e); + } + } + } else { + // process file besides testcase file + // okay, let's fix some cases... + if (name.matches("([a-zA-Z]:)?\\\\.+")) { + // windows absolute path + outputTo = new File(name); + } else { + outputTo = new File(FilenameUtils.getPath(context.getCurrentTestCase().getFilename()), name); + } + if (!outputTo.exists()) { + return new Error("Can't access file: " + outputTo); + } + } + + WebElement element = context.findElement(curArgs[ARG_LOCATOR]); + try { + element.clear(); + } catch (Exception e) { + // ignore exceptions from some drivers when file-input cannot be cleared; + } + element.sendKeys(outputTo.getAbsolutePath()); + return SUCCESS; + } +} 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..9c8248bf9 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.false", "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" }, { @@ -1809,6 +1967,30 @@ ["xpath=//div/div[5]/div/span", "xpath:position"] ], "value": "True" + }, { + "id": "a1050ebe-55c5-4eac-8d12-615f3ff1cd72", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(6) .p-2 > div > div > div:nth-child(2) .d-block:nth-child(2)", + "targets": [ + ["css=.mb-4:nth-child(6) .p-2 > div > div > div:nth-child(2) .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[6]/div/div[2]/div[2]/div/div[2]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[6]/div/div[2]/div[2]/div/div[2]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'true')]", "xpath:innerText"] + ], + "value": "true" + }, { + "id": "43b130ff-e8a5-493d-a418-f1f8623f1de3", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(6) .p-2 > div > div > div:nth-child(3) .d-block:nth-child(2)", + "targets": [ + ["css=.mb-4:nth-child(6) .p-2 > div > div > div:nth-child(3) .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[6]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[6]/div/div[2]/div[2]/div/div[3]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'false')]", "xpath:innerText"] + ], + "value": "false" }, { "id": "1406d7e4-907d-4359-8de8-a40206f0993e", "comment": "", @@ -1948,11 +2130,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 +2176,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 +2188,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 +2212,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 +2224,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 +2282,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,32 +2298,86 @@ "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" + }, { + "id": "a33c9be0-5e42-4300-836b-b50e80d31161", + "comment": "", + "command": "click", + "target": "css=.nav-link:nth-child(5)", + "targets": [ + ["css=.nav-link:nth-child(5)", "css:finder"], + ["xpath=(//button[@type='button'])[12]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/nav/button[5]", "xpath:idRelative"], + ["xpath=//button[5]", "xpath:position"], + ["xpath=//button[contains(.,'Security Information')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "19ca1000-cbaa-4f6b-9239-e778866c0e34", + "comment": "", + "command": "click", + "target": "id=root_securityInfo_authenticationRequestsSigned-value.false", + "targets": [ + ["id=root_securityInfo_authenticationRequestsSigned-value.false", "id"], + ["css=#root_securityInfo_authenticationRequestsSigned-value\\.false", "css:finder"], + ["xpath=//input[@id='root_securityInfo_authenticationRequestsSigned-value.false']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div[6]/div/div/div/div/div/div/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "4ca0d918-791d-4a27-8c17-d031e8014dd7", + "comment": "", + "command": "click", + "target": "id=root_securityInfo_wantAssertionsSigned-value.true", + "targets": [ + ["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[2]/div/form/div/div/div/div/div[6]/div/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/input", "xpath:position"] + ], + "value": "" }, { "id": "d424ae83-f36b-41b4-8e08-79c452577d89", "comment": "", @@ -2144,20 +2385,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 +2433,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,54 +2443,111 @@ "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" + }, { + "id": "89945406-0c5f-4e3f-8bce-659f7f34cb3d", + "comment": "", + "command": "assertText", + "target": "css=div:nth-child(2) > .bg-diff > .d-block:nth-child(2)", + "targets": [ + ["css=div:nth-child(2) > .bg-diff > .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"], + ["xpath=//span[contains(.,'false')]", "xpath:innerText"] + ], + "value": "false" + }, { + "id": "39628eb7-55cb-41d0-827c-b5bd6e80b6bb", + "comment": "", + "command": "assertText", + "target": "css=div:nth-child(2) > .bg-diff > .d-block:nth-child(3)", + "targets": [ + ["css=div:nth-child(2) > .bg-diff > .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[2]/div/span[3]", "xpath:idRelative"], + ["xpath=//section[5]/div/div[2]/div[2]/div/div[2]/div/span[3]", "xpath:position"], + ["xpath=//span[contains(.,'true')]", "xpath:innerText"] + ], + "value": "true" + }, { + "id": "69242724-afc5-4036-8c73-937a8b66dc5e", + "comment": "", + "command": "assertText", + "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[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": "bc16d76e-e95a-4357-942c-f346831e42c1", + "comment": "", + "command": "assertText", + "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[5]/div/div[2]/div[2]/div/div[3]/div/span[3]", "xpath:idRelative"], + ["xpath=//section[5]/div/div[2]/div[2]/div/div[3]/div/span[3]", "xpath:position"] + ], + "value": "false" }, { "id": "4d1a88de-e41a-444b-b351-38febb7cbab3", "comment": "", @@ -2274,40 +2578,41 @@ "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": "e23ad673-a84c-4c28-a927-8baf21fe1f12", "comment": "", - "command": "pause", - "target": "5000", + "command": "waitForElementEditable", + "target": "id=root_mdui_displayName", + "targets": [], + "value": "30000" + }, { + "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" - }, { - "id": "77bfef92-d0e6-41eb-9cd1-c2ede0cb9144", - "comment": "", - "command": "pause", - "target": "5000", - "targets": [], - "value": "" }, { "id": "c2d29077-30c4-45cf-81c9-b5790294e11e", "comment": "", @@ -2320,35 +2625,46 @@ ], "value": "" }, { - "id": "f2e3d420-5cf5-4165-94da-41688839cf82", + "id": "5e9c3c7d-04ec-4dc1-b826-928e40b2fc62", + "comment": "", + "command": "waitForElementVisible", + "target": "linkText=Version History", + "targets": [], + "value": "30000" + }, { + "id": "68972f7d-8268-4701-865c-585a39987208", "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=#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": "d1389dc8-86b0-44df-a39e-0037bc695403", + "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 +2683,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 +2706,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-1732-1.side b/backend/src/integration/resources/SHIBUI-1732-1.side new file mode 100644 index 000000000..bd1d7cb7e --- /dev/null +++ b/backend/src/integration/resources/SHIBUI-1732-1.side @@ -0,0 +1,1032 @@ +{ + "id": "33610211-4c16-45ce-97a4-be5a2d07fbd1", + "version": "2.0", + "name": "SHIBUI-1732-1", + "url": "http://localhost:10101", + "tests": [{ + "id": "cf26eb5f-7a7e-4714-9b0c-9fb87e6932c6", + "name": "SHIBUI-1732-1", + "commands": [{ + "id": "f25d2952-1220-426a-8d43-67a442956d76", + "comment": "", + "command": "open", + "target": "/login", + "targets": [], + "value": "" + }, { + "id": "87f7d0f7-c026-4a78-8a4b-533835db340d", + "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": "65214d46-18ff-40da-b546-2dc98c6167b1", + "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": "5cf1d4c9-e5d0-493e-9dea-2d5e40da76c0", + "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": "9d97ac5e-01a6-46f9-b89b-140a2ef15de5", + "comment": "", + "command": "waitForElementEditable", + "target": "id=advanced-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "7fa2dae0-8538-4235-893f-0f94ced72439", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "6d1e3a09-ff22-44b3-9930-f0666a55319a", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "0c432041-e046-4437-bade-ed8bab0764e8", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "4855e695-a233-438c-bab1-a22e2c000d7b", + "comment": "", + "command": "click", + "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": "" + }, { + "id": "d883d703-1b61-4427-9a49-333e33670848", + "comment": "", + "command": "click", + "target": "id=advanced-nav-dropdown-attr", + "targets": [ + ["id=advanced-nav-dropdown-attr", "id"], + ["linkText=Custom entity attributes", "linkText"], + ["css=#advanced-nav-dropdown-attr", "css:finder"], + ["xpath=//a[contains(text(),'Custom entity attributes')]", "xpath:link"], + ["xpath=//a[@id='advanced-nav-dropdown-attr']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes')]", "xpath:href"], + ["xpath=//div[3]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Custom entity attributes')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "619d0ea1-8b76-4bbc-acea-05cfc536b5cf", + "comment": "", + "command": "click", + "target": "linkText=Add new attribute", + "targets": [ + ["linkText=Add new attribute", "linkText"], + ["css=.btn-success", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes/new')]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'  Add new attribute')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "641dffb9-09eb-4df5-ac60-bb3ad839a841", + "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/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "CustomString" + }, { + "id": "6a0a1bed-5e39-4681-908a-5d472758ba3b", + "comment": "", + "command": "select", + "target": "id=root_attributeType", + "targets": [], + "value": "label=String" + }, { + "id": "9d7df866-b2ca-4e49-9d1c-f2425d2d8b1b", + "comment": "", + "command": "type", + "target": "id=root_attributeFriendlyName", + "targets": [ + ["id=root_attributeFriendlyName", "id"], + ["css=#root_attributeFriendlyName", "css:finder"], + ["xpath=//input[@id='root_attributeFriendlyName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[3]/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/input", "xpath:position"] + ], + "value": "Custom String Friendly" + }, { + "id": "521dc1de-a239-4653-9dbd-070be886e521", + "comment": "", + "command": "type", + "target": "id=root_attributeName", + "targets": [ + ["id=root_attributeName", "id"], + ["css=#root_attributeName", "css:finder"], + ["xpath=//input[@id='root_attributeName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] + ], + "value": "Custom String Attribute" + }, { + "id": "9d1e9edd-125e-4798-beea-623ea68c7894", + "comment": "", + "command": "type", + "target": "id=root_displayName", + "targets": [ + ["id=root_displayName", "id"], + ["css=#root_displayName", "css:finder"], + ["xpath=//input[@id='root_displayName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[5]/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/input", "xpath:position"] + ], + "value": "Custom String Display" + }, { + "id": "13f96517-addf-4f90-bbde-6f7caeddae2c", + "comment": "", + "command": "type", + "target": "id=root_helpText", + "targets": [ + ["id=root_helpText", "id"], + ["css=#root_helpText", "css:finder"], + ["xpath=//input[@id='root_helpText']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[6]/div/div/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/input", "xpath:position"] + ], + "value": "Custom String Help" + }, { + "id": "c5ac0275-69ec-4b1c-aef8-7a2385359671", + "comment": "", + "command": "type", + "target": "id=root_defaultValue", + "targets": [ + ["id=root_defaultValue", "id"], + ["css=#root_defaultValue", "css:finder"], + ["xpath=//input[@id='root_defaultValue']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/input", "xpath:position"] + ], + "value": "Custom String Default" + }, { + "id": "69fccaf3-9fd2-48d2-99d1-e8cbf68127e1", + "comment": "", + "command": "click", + "target": "css=.btn-info", + "targets": [ + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "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": "1fa1d68e-4b44-4dc8-b648-3ec245d4321a", + "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": "68aa5967-2c0e-411f-b765-cae0293e9927", + "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": "eb489ded-700b-4ada-9b8c-c6f534315b21", + "comment": "", + "command": "waitForElementEditable", + "target": "id=root_serviceProviderName", + "targets": [], + "value": "30000" + }, { + "id": "1e35f48c-8a6a-4167-80f9-5c649fb4ea55", + "comment": "", + "command": "click", + "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": "" + }, { + "id": "70859a96-f31e-437f-aa04-077da53ad110", + "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": "3ab3b955-056d-4d2a-874e-24959a575144", + "comment": "", + "command": "click", + "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": "" + }, { + "id": "e53b6d49-8847-4c9a-b096-d833fe165181", + "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": "Test" + }, { + "id": "c8c880f1-0ba6-4263-88c5-85df93d52cad", + "comment": "", + "command": "click", + "target": "css=.nav-link", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/nav/ul/li[2]/button", "xpath:idRelative"], + ["xpath=//li[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "f8816f22-9925-4e6d-bf72-5759861b1135", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "f62a87ae-0bb3-4468-8a73-27574593f4db", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "c4220e3a-58d6-4b08-961b-89ceaf546427", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "677638f7-a62a-4da9-8a2d-09171d0fc8ff", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "c13329a9-5bd0-4698-a549-c5ced793de0e", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "2c76e323-0ce2-4fea-adac-69aeb546c50d", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "002e853c-ed14-430a-ba32-a3c59da26305", + "comment": "", + "command": "assertText", + "target": "css=.row:nth-child(7) span", + "targets": [ + ["css=.row:nth-child(7) span", "css:finder"], + ["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/label/span", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div/div/label/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom String Display')]", "xpath:innerText"] + ], + "value": "Custom String Display" + }, { + "id": "f0042162-66b3-466c-9525-b9df15dab57e", + "comment": "", + "command": "assertValue", + "target": "id=root_relyingPartyOverrides_CustomString", + "targets": [ + ["id=root_relyingPartyOverrides_CustomString", "id"], + ["css=#root_relyingPartyOverrides_CustomString", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomString']", "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": "Custom String Default" + }, { + "id": "9883d188-01b9-455e-99cd-f81c5b8fec6b", + "comment": "", + "command": "type", + "target": "id=root_relyingPartyOverrides_CustomString", + "targets": [ + ["id=root_relyingPartyOverrides_CustomString", "id"], + ["css=#root_relyingPartyOverrides_CustomString", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomString']", "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": "18d47b12-fb78-4a33-9838-23c8cd38bb31", + "comment": "", + "command": "type", + "target": "id=root_relyingPartyOverrides_CustomString", + "targets": [ + ["id=root_relyingPartyOverrides_CustomString", "id"], + ["css=#root_relyingPartyOverrides_CustomString", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomString']", "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": "Custom String Default Edited" + }, { + "id": "8e40dd0d-6a5c-45a3-aef4-4c271468c0b6", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "2f34963c-7900-43b1-a634-3d2f05ca6202", + "comment": "", + "command": "click", + "target": "css=.direction:nth-child(2)", + "targets": [ + ["css=.direction:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button/span[2]", "xpath:idRelative"], + ["xpath=//li[3]/button/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'Next')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "220200b4-4b3f-4c1b-9d89-e17a136fb4c1", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(8) div:nth-child(7) .d-block:nth-child(1)", + "targets": [ + ["css=.mb-4:nth-child(8) div:nth-child(7) .d-block:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[8]/div/div[2]/div[2]/div/div[7]/div/span", "xpath:idRelative"], + ["xpath=//section[8]/div/div[2]/div[2]/div/div[7]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom String Display')]", "xpath:innerText"] + ], + "value": "Custom String Display" + }, { + "id": "33312edd-a161-428c-9e5a-63d1d245b1c7", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(8) div:nth-child(7) .d-block:nth-child(2)", + "targets": [ + ["css=.mb-4:nth-child(8) div:nth-child(7) .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[8]/div/div[2]/div[2]/div/div[7]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[8]/div/div[2]/div[2]/div/div[7]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'Custom String Default Edited')]", "xpath:innerText"] + ], + "value": "Custom String Default Edited" + }, { + "id": "dfd0c28b-e997-400b-b84f-b06df3e6e73f", + "comment": "", + "command": "click", + "target": "css=.save", + "targets": [ + ["css=.save", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "f7ff143f-a77e-4c73-85de-262a0c9b00f6", + "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/703fdd0e-c971-4d78-9128-3a8d1f4f458d/configuration/options')]", "xpath:href"], + ["xpath=//td/a", "xpath:position"], + ["xpath=//a[contains(.,'Test')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "98fec20c-6391-479c-8340-fbe90488afbe", + "comment": "", + "command": "waitForElementVisible", + "target": "css=.mb-4:nth-child(9) div:nth-child(7) .d-block:nth-child(2)", + "targets": [], + "value": "30000" + }, { + "id": "77768da6-c87e-49c6-a2d1-322218196038", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(9) div:nth-child(7) .d-block:nth-child(2)", + "targets": [ + ["css=.mb-4:nth-child(9) div:nth-child(7) .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[7]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[7]/div/div[2]/div[2]/div/div[7]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'Custom String Default Edited')]", "xpath:innerText"] + ], + "value": "Custom String Default Edited" + }, { + "id": "edb8ae5b-b1d6-4078-b3d2-d41ece0bbd28", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(9) div:nth-child(7) .d-block:nth-child(1)", + "targets": [ + ["css=.mb-4:nth-child(9) div:nth-child(7) .d-block:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[7]/div/div[2]/div[2]/div/div[7]/div/span", "xpath:idRelative"], + ["xpath=//section[7]/div/div[2]/div[2]/div/div[7]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom String Display')]", "xpath:innerText"] + ], + "value": "Custom String Display" + }, { + "id": "0a3b27ae-3833-4790-8106-ca46efdc585b", + "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": "7d163610-1a3b-4b21-aedc-792c6f6b35fe", + "comment": "", + "command": "click", + "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": "c6e4f105-81ce-4132-b82b-d28d11f27746", + "comment": "", + "command": "type", + "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": "Test" + }, { + "id": "2c98e69c-d595-48a7-ac67-eca5d9f3a784", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=FileBackedHttpMetadataResolver" + }, { + "id": "9f71997a-16cf-4703-b0e9-57a179a535a1", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "14f9bdcf-a54a-4f3b-9c4a-e4e9e94647ba", + "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/div/form/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "1" + }, { + "id": "82f4bea2-911a-48c6-9828-a78dfc205ca8", + "comment": "", + "command": "type", + "target": "id=root_metadataURL", + "targets": [ + ["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[2]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] + ], + "value": "https://idp.unicon.net/idp/shibboleth" + }, { + "id": "0b4842ab-99d5-48aa-8154-04903b093184", + "comment": "", + "command": "click", + "target": "id=root_initializeFromBackupFile-No", + "targets": [ + ["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[2]/div[3]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "c8379569-bac3-4330-ac9c-b008df778ddc", + "comment": "", + "command": "type", + "target": "id=root_backingFile", + "targets": [ + ["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[2]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] + ], + "value": "%{idp.home}/foo" + }, { + "id": "0a66e428-5884-4dae-b7a9-0e3f65b7428f", + "comment": "", + "command": "click", + "target": "css=.rbt-input-main", + "targets": [ + ["css=.rbt-input-main", "css:finder"], + ["xpath=//input[@value='']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div[5]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "b1f14d82-d268-4c50-b1bc-dc33cf852d01", + "comment": "", + "command": "click", + "target": "id=option-selector-root_backupFileInitNextRefreshDelay-item-1", + "targets": [ + ["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": "3379faa0-519c-4b8f-a648-d3b48c6dafdd", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "74b99d1c-823d-45ad-a5e6-03fd69ac9755", + "comment": "", + "command": "click", + "target": "css=.next", + "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. Metadata Filter Plugins')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "98f58fa5-85de-4b1c-a564-ba10431ac999", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "b90e8182-d0d7-4dc0-8bf7-8095616d7b63", + "comment": "", + "command": "click", + "target": "css=.save", + "targets": [ + ["css=.save", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "5fb3d963-787a-4105-a6aa-a7e7aa1d0926", + "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[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/cf3ddc35-0526-4a54-a1b6-fa023ccd6b9d/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Test')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "f8ea5fbd-0899-4464-afeb-288ae427ae10", + "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/cf3ddc35-0526-4a54-a1b6-fa023ccd6b9d/filter/new')]", "xpath:href"], + ["xpath=//div[3]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Add Filter')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "c77586b9-2975-410f-81c7-8cf5a088eed0", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=EntityAttributes" + }, { + "id": "56914983-23a7-4e94-af7e-8a9387b246d2", + "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/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "Test Filter" + }, { + "id": "61a26546-bd4b-452f-add1-7640b993e116", + "comment": "", + "command": "click", + "target": "id=dropdown-label.filter-target-type", + "targets": [ + ["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"] + ], + "value": "" + }, { + "id": "ea91362a-0140-4883-8420-be858391f0d9", + "comment": "", + "command": "click", + "target": "css=.show > .dropdown-item:nth-child(3)", + "targets": [ + ["css=.show > .dropdown-item:nth-child(3)", "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/div/div/button[3]", "xpath:idRelative"], + ["xpath=//div/button[3]", "xpath:position"], + ["xpath=//button[contains(.,'Script')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "8a23d043-6701-4d53-968e-18409a8fc41b", + "comment": "", + "command": "type", + "target": "css=.npm__react-simple-code-editor__textarea", + "targets": [ + ["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[6]/div/div/div/fieldset/div/div/div[2]/div/div/div/div/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "eval(true);" + }, { + "id": "09314892-17c8-40a8-be29-42626663b257", + "comment": "", + "command": "click", + "target": "css=.nav-link:nth-child(2)", + "targets": [ + ["css=.nav-link:nth-child(2)", "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[2]", "xpath:idRelative"], + ["xpath=//nav/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Options')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "62aae077-0f97-48ec-97cb-2111ea9e3400", + "comment": "", + "command": "assertText", + "target": "css=.row:nth-child(7) > .col-12 > .form-group > div > .mb-0 span", + "targets": [ + ["css=.row:nth-child(7) > .col-12 > .form-group > div > .mb-0 span", "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[7]/div/div/div/div/div[7]/div/div/div/div/label/span", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div/div/label/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom String Display')]", "xpath:innerText"] + ], + "value": "Custom String Display" + }, { + "id": "2de49051-ce60-4f45-9cdc-740620f976ea", + "comment": "", + "command": "assertValue", + "target": "id=root_relyingPartyOverrides_CustomString", + "targets": [ + ["id=root_relyingPartyOverrides_CustomString", "id"], + ["css=#root_relyingPartyOverrides_CustomString", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomString']", "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": "Custom String Default" + }, { + "id": "2bd9c701-fad0-4bae-bbad-9206dc244bbc", + "comment": "", + "command": "type", + "target": "id=root_relyingPartyOverrides_CustomString", + "targets": [ + ["id=root_relyingPartyOverrides_CustomString", "id"], + ["css=#root_relyingPartyOverrides_CustomString", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomString']", "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": "4261bcf8-7c6b-41a9-8c5d-a63667c76b93", + "comment": "", + "command": "type", + "target": "id=root_relyingPartyOverrides_CustomString", + "targets": [ + ["id=root_relyingPartyOverrides_CustomString", "id"], + ["css=#root_relyingPartyOverrides_CustomString", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomString']", "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": "Custom String Default Edited" + }, { + "id": "8d5bcff3-ec07-420e-bdff-41d043cfb6ba", + "comment": "", + "command": "click", + "target": "css=.btn-info", + "targets": [ + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "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": "" + }, { + "id": "3c45f035-bfe7-425e-b46e-bf35b69e8e27", + "comment": "", + "command": "click", + "target": "css=.mx-4", + "targets": [ + ["css=.mx-4", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='filters']/ul/li/div/button", "xpath:idRelative"], + ["xpath=//li/div/button", "xpath:position"], + ["xpath=//button[contains(.,'test')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "848c273e-a5b1-4ff8-90e2-ee0ecbadff2d", + "comment": "", + "command": "assertText", + "target": "css=div:nth-child(1) > div:nth-child(7) .d-block:nth-child(1)", + "targets": [ + ["css=div:nth-child(1) > div:nth-child(7) .d-block:nth-child(1)", "css:finder"], + ["xpath=//div[@id='filters']/ul/li/div[2]/section[2]/div/div[2]/div[2]/div/div[7]/div/span", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[7]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom String Display')]", "xpath:innerText"] + ], + "value": "Custom String Display" + }, { + "id": "4524e88f-bbfc-4f4f-b72d-30cce97564da", + "comment": "", + "command": "assertText", + "target": "css=div:nth-child(1) > div:nth-child(7) .text-truncate", + "targets": [ + ["css=div:nth-child(1) > div:nth-child(7) .text-truncate", "css:finder"], + ["xpath=//div[@id='filters']/ul/li/div[2]/section[2]/div/div[2]/div[2]/div/div[7]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[7]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'Custom String Default')]", "xpath:innerText"] + ], + "value": "Custom String Default Edited" + }, { + "id": "c62392e1-3fc5-4266-857c-6839757b2f2f", + "comment": "", + "command": "click", + "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": "" + }, { + "id": "59102da0-eb09-492e-b5a7-bf9d4fe52ea1", + "comment": "", + "command": "click", + "target": "id=advanced-nav-dropdown-attr", + "targets": [ + ["id=advanced-nav-dropdown-attr", "id"], + ["linkText=Custom entity attributes", "linkText"], + ["css=#advanced-nav-dropdown-attr", "css:finder"], + ["xpath=//a[contains(text(),'Custom entity attributes')]", "xpath:link"], + ["xpath=//a[@id='advanced-nav-dropdown-attr']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes')]", "xpath:href"], + ["xpath=//div[3]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Custom entity attributes')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "1f30bf5d-72cb-42e9-b78c-f6950babafa2", + "comment": "", + "command": "click", + "target": "css=.fa-trash", + "targets": [ + ["css=.fa-trash", "css:finder"] + ], + "value": "" + }, { + "id": "10f39e34-44be-49f1-aaaa-d895277994e4", + "comment": "", + "command": "click", + "target": "css=.btn-danger", + "targets": [ + ["css=.btn-danger", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[3]/div/div/div[3]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "331c4ecd-f294-432b-97d0-ded4efdc6454", + "comment": "", + "command": "waitForElementVisible", + "target": "linkText=Add new attribute", + "targets": [ + ["linkText=Add new attribute", "linkText"], + ["css=.btn-success", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes/new')]", "xpath:href"], + ["xpath=//section/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'  Add new attribute')]", "xpath:innerText"] + ], + "value": "30000" + }, { + "id": "4d53dbf8-67de-4cce-be3a-748559187023", + "comment": "", + "command": "assertElementNotPresent", + "target": "css=table > tbody > tr", + "targets": [], + "value": "" + }] + }], + "suites": [{ + "id": "a9b788f1-5f67-4d2c-82a5-30dc53eb75e9", + "name": "Default Suite", + "persistSession": false, + "parallel": false, + "timeout": 300, + "tests": ["cf26eb5f-7a7e-4714-9b0c-9fb87e6932c6"] + }], + "urls": ["http://localhost:10101/"], + "plugins": [] +} \ No newline at end of file diff --git a/backend/src/integration/resources/SHIBUI-1732-2.side b/backend/src/integration/resources/SHIBUI-1732-2.side new file mode 100644 index 000000000..82bfdd00a --- /dev/null +++ b/backend/src/integration/resources/SHIBUI-1732-2.side @@ -0,0 +1,975 @@ +{ + "id": "aa9168a6-06a8-48f1-bbe1-93be329bbc3d", + "version": "2.0", + "name": "SHIBUI-1732-2", + "url": "http://localhost:10101", + "tests": [{ + "id": "1c2e8860-20d7-42d2-93aa-31bf5d845257", + "name": "SHIBUI-1732-2", + "commands": [{ + "id": "1c33433a-b200-47e9-8bbd-f927e80af670", + "comment": "", + "command": "open", + "target": "/login", + "targets": [], + "value": "" + }, { + "id": "54315958-12d7-4851-8257-29fb1cc88c57", + "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": "0df12db0-923a-43ce-af7b-ef4930a825a3", + "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": "47bd2f5b-6e4a-4630-bbd3-e54a7a3675ed", + "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": "f2163126-c0a8-40a0-8446-81a8c3ceb51f", + "comment": "", + "command": "waitForElementVisible", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "464e306a-d281-4805-b002-14348f444856", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "0cb7e597-d665-46ae-a45b-e7055510181e", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "eaa2c5e6-f91c-4127-800a-aaa74024b87d", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "e545904b-753b-405b-8979-fc887ad3dda9", + "comment": "", + "command": "click", + "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": "" + }, { + "id": "9a365129-81f8-44f9-ad35-5be2b6f2cf81", + "comment": "", + "command": "click", + "target": "id=advanced-nav-dropdown-attr", + "targets": [ + ["id=advanced-nav-dropdown-attr", "id"], + ["linkText=Custom entity attributes", "linkText"], + ["css=#advanced-nav-dropdown-attr", "css:finder"], + ["xpath=//a[contains(text(),'Custom entity attributes')]", "xpath:link"], + ["xpath=//a[@id='advanced-nav-dropdown-attr']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes')]", "xpath:href"], + ["xpath=//div[3]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Custom entity attributes')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "3811e53a-a4c9-4f5a-a0eb-25e14394cb98", + "comment": "", + "command": "click", + "target": "linkText=Add new attribute", + "targets": [ + ["linkText=Add new attribute", "linkText"], + ["css=.btn-success", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes/new')]", "xpath:href"], + ["xpath=//section/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'  Add new attribute')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "e31303fb-780e-461f-8ab9-8f1dacd68b60", + "comment": "", + "command": "select", + "target": "id=root_attributeType", + "targets": [], + "value": "label=Boolean" + }, { + "id": "412a1565-2229-4879-b7d5-ed2193320ab8", + "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/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "CustomBoolean" + }, { + "id": "45c3d4e9-10ef-4b8f-8e5b-277384386207", + "comment": "", + "command": "type", + "target": "id=root_attributeFriendlyName", + "targets": [ + ["id=root_attributeFriendlyName", "id"], + ["css=#root_attributeFriendlyName", "css:finder"], + ["xpath=//input[@id='root_attributeFriendlyName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[3]/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/input", "xpath:position"] + ], + "value": "Custom Boolean Friendly" + }, { + "id": "eae63294-c3f8-4e18-84dc-04c3775fa863", + "comment": "", + "command": "type", + "target": "id=root_attributeName", + "targets": [ + ["id=root_attributeName", "id"], + ["css=#root_attributeName", "css:finder"], + ["xpath=//input[@id='root_attributeName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] + ], + "value": "Custom Boolean Attribute" + }, { + "id": "28afd378-b30a-409c-8fa2-985bbef67192", + "comment": "", + "command": "type", + "target": "id=root_displayName", + "targets": [ + ["id=root_displayName", "id"], + ["css=#root_displayName", "css:finder"], + ["xpath=//input[@id='root_displayName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[5]/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/input", "xpath:position"] + ], + "value": "Custom Boolean Display" + }, { + "id": "44d18393-0805-4ce9-a784-1cbfd5ba9164", + "comment": "", + "command": "type", + "target": "id=root_helpText", + "targets": [ + ["id=root_helpText", "id"], + ["css=#root_helpText", "css:finder"], + ["xpath=//input[@id='root_helpText']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[6]/div/div/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/input", "xpath:position"] + ], + "value": "Custom Boolean Help" + }, { + "id": "1c1e0a14-a4be-406d-80c5-809de8704799", + "comment": "", + "command": "type", + "target": "id=root_persistValue", + "targets": [ + ["id=root_persistValue", "id"], + ["css=#root_persistValue", "css:finder"], + ["xpath=//input[@id='root_persistValue']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div[2]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] + ], + "value": "CustomBooleanPersist" + }, { + "id": "130b44b4-b1d8-49ef-b3c5-a1ae3174b53b", + "comment": "", + "command": "click", + "target": "css=.btn-info", + "targets": [ + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "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": "f25470c5-ab3e-4218-9b72-3f3faf124e41", + "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": "c34f5f32-2eaf-404a-8114-eeab0fed0979", + "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": "7a4c5749-6a9e-4628-9f01-876fd6fb71d4", + "comment": "", + "command": "waitForElementEditable", + "target": "id=root_serviceProviderName", + "targets": [], + "value": "30000" + }, { + "id": "184fd613-23f4-42c1-bbfc-8685803a7b6c", + "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": "fb769658-5c9c-47cf-a9cb-670a93d6a223", + "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": "Test" + }, { + "id": "8114f45f-fa25-4a56-9b9b-4482d724e1d5", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "dffdfe75-03bd-41aa-bf3a-c02a75a97ae9", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "8843724b-132b-4436-b28e-a261f9eeae8a", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "82d234b3-40ce-4898-8d9a-e1b56de5d6d2", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "d6fd7771-e8bb-4c9e-a8c7-63a95b3276f5", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "b45b1e34-686e-4115-bc37-0675438243f4", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "956c8eb3-df9e-4221-8065-ad51976717af", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "fb8782e1-3376-4c59-af8a-5cf383c78239", + "comment": "", + "command": "assertText", + "target": "css=.row:nth-child(6) .d-flex > span", + "targets": [ + ["css=.row:nth-child(6) .d-flex > span", "css:finder"], + ["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/label/span/span", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/div/label/span/span", "xpath:position"] + ], + "value": "Custom Boolean Display" + }, { + "id": "2b10ecc7-3e52-4a79-8d9c-a9305eae4cce", + "comment": "", + "command": "assertNotChecked", + "target": "id=root_relyingPartyOverrides_CustomBoolean", + "targets": [ + ["id=root_relyingPartyOverrides_CustomBoolean", "id"], + ["css=#root_relyingPartyOverrides_CustomBoolean", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomBoolean']", "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": "d7360ebc-7dc0-46d0-98f2-ac8ca1902c0e", + "comment": "", + "command": "click", + "target": "id=root_relyingPartyOverrides_CustomBoolean", + "targets": [ + ["id=root_relyingPartyOverrides_CustomBoolean", "id"], + ["css=#root_relyingPartyOverrides_CustomBoolean", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomBoolean']", "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": "b533b683-a670-41d5-aa69-4b654ebe1fbb", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "f26bf0d1-96d3-412f-920d-5d42452a88fe", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "a7db0511-2584-4cb0-bbaa-2341a705ef07", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(8) div:nth-child(6) .d-block:nth-child(1)", + "targets": [ + ["css=.mb-4:nth-child(8) div:nth-child(6) .d-block:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[8]/div/div[2]/div[2]/div/div[6]/div/span", "xpath:idRelative"], + ["xpath=//section[8]/div/div[2]/div[2]/div/div[6]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom Boolean Display')]", "xpath:innerText"] + ], + "value": "Custom Boolean Display" + }, { + "id": "771a8f70-ed99-486f-90f3-3401215d8743", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(8) div:nth-child(6) .d-block:nth-child(2)", + "targets": [ + ["css=.mb-4:nth-child(8) div:nth-child(6) .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[8]/div/div[2]/div[2]/div/div[6]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[8]/div/div[2]/div[2]/div/div[6]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'true')]", "xpath:innerText"] + ], + "value": "true" + }, { + "id": "459429bc-5f00-4ac5-9b43-3576ace9cd01", + "comment": "", + "command": "click", + "target": "css=.save", + "targets": [ + ["css=.save", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "55c7f3cb-feb6-47a2-b30f-7f642996fff4", + "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/e5a4c95b-b860-4006-af5c-53b48633e717/configuration/options')]", "xpath:href"], + ["xpath=//td/a", "xpath:position"], + ["xpath=//a[contains(.,'Test')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "90d005ef-dee5-46a6-8f80-fbc72b812eea", + "comment": "", + "command": "waitForElementVisible", + "target": "css=.mb-4:nth-child(9) div:nth-child(6) .d-block:nth-child(1)", + "targets": [], + "value": "30000" + }, { + "id": "4dc24329-7c83-43c9-86d6-95f9bf5da92d", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(9) div:nth-child(6) .d-block:nth-child(1)", + "targets": [ + ["css=.mb-4:nth-child(9) div:nth-child(6) .d-block:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[7]/div/div[2]/div[2]/div/div[6]/div/span", "xpath:idRelative"], + ["xpath=//section[7]/div/div[2]/div[2]/div/div[6]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom Boolean Display')]", "xpath:innerText"] + ], + "value": "Custom Boolean Display" + }, { + "id": "32f6aaa6-a256-4c36-932e-7c45b4045cba", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(9) div:nth-child(6) .d-block:nth-child(2)", + "targets": [ + ["css=.mb-4:nth-child(9) div:nth-child(6) .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[6]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[7]/div/div[2]/div[2]/div/div[6]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'true')]", "xpath:innerText"] + ], + "value": "true" + }, { + "id": "0fb6eb28-b554-4a12-9e9a-87d6219d681c", + "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": "de8f7afc-fb7f-4883-a22d-8df5309c4de0", + "comment": "", + "command": "click", + "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": "32d9424e-f20c-4fae-a671-f69a8e892837", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" + }, { + "id": "28e3357f-8561-4503-840a-699622386327", + "comment": "", + "command": "type", + "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": "Test" + }, { + "id": "7c10b23a-a427-4cc4-bae9-9e5606712b6e", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=FileBackedHttpMetadataResolver" + }, { + "id": "d2e08bc7-a77d-4794-b2c6-d97c5bb1baf0", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "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": "" + }, { + "id": "41989186-becb-41b1-8c8d-067421587617", + "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/div/form/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "1" + }, { + "id": "7cfa57b0-2074-4948-8633-ec40976b83df", + "comment": "", + "command": "type", + "target": "id=root_metadataURL", + "targets": [ + ["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[2]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] + ], + "value": "https://idp.unicon.net/idp/shibboleth" + }, { + "id": "ce621524-3048-4cac-9e0a-dc19eb409e9c", + "comment": "", + "command": "type", + "target": "id=root_backingFile", + "targets": [ + ["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[2]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] + ], + "value": "%{idp.home}/foo" + }, { + "id": "925edf68-26c9-4309-8739-6b08a8c04537", + "comment": "", + "command": "click", + "target": "css=.rbt-input-main", + "targets": [ + ["css=.rbt-input-main", "css:finder"], + ["xpath=//input[@value='']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div[5]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "0c0e50f7-3733-4404-ac57-94ebbfb6d0cd", + "comment": "", + "command": "click", + "target": "id=option-selector-root_backupFileInitNextRefreshDelay-item-1", + "targets": [ + ["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": "610609cc-d109-425a-bbb7-e1de4407352c", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "574ce5ed-446b-4070-94ae-5c35dc574b25", + "comment": "", + "command": "click", + "target": "css=.next", + "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. Metadata Filter Plugins')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "093e3bb3-be73-4584-822c-fec3046d5543", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "38a774d9-2fc3-4b3f-a7b1-6b61bd44ca0d", + "comment": "", + "command": "click", + "target": "css=.save", + "targets": [ + ["css=.save", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "38455734-1406-41f3-8d02-17cddaea140c", + "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[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/52364d49-e2b7-4cb5-b507-a73aaedf4998/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Test')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "122fbc81-89ff-4ae2-b03d-b245cc747ed3", + "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/52364d49-e2b7-4cb5-b507-a73aaedf4998/filter/new')]", "xpath:href"], + ["xpath=//div[3]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Add Filter')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "a41cc9f7-1b58-4ebb-977c-af0db91c8d52", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" + }, { + "id": "d117745a-9678-4cae-9179-f7ae32ce4579", + "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/div/div/form/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] + ], + "value": "" + }, { + "id": "107b35c6-2b55-4e13-8450-a9bc48175735", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=EntityAttributes" + }, { + "id": "c27ce717-8d01-4e19-9810-c90fc3ae8263", + "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/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "Test Filter" + }, { + "id": "b9e15f63-d5d9-4a0a-9d85-2907f97e45b9", + "comment": "", + "command": "click", + "target": "id=dropdown-label.filter-target-type", + "targets": [ + ["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"] + ], + "value": "" + }, { + "id": "d3f12408-7323-4b82-b402-13701efd8f85", + "comment": "", + "command": "click", + "target": "css=.show > .dropdown-item:nth-child(3)", + "targets": [ + ["css=.show > .dropdown-item:nth-child(3)", "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/div/div/button[3]", "xpath:idRelative"], + ["xpath=//div/button[3]", "xpath:position"], + ["xpath=//button[contains(.,'Script')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "09379d53-e8eb-4679-9b1c-2186b4019371", + "comment": "", + "command": "click", + "target": "css=.npm__react-simple-code-editor__textarea", + "targets": [ + ["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[6]/div/div/div/fieldset/div/div/div[2]/div/div/div/div/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "" + }, { + "id": "79e09c6d-cf83-4fbf-93c1-2791047e2b5b", + "comment": "", + "command": "type", + "target": "css=.npm__react-simple-code-editor__textarea", + "targets": [ + ["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[6]/div/div/div/fieldset/div/div/div[2]/div/div/div/div/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "eval(true);" + }, { + "id": "6190b2b4-4c9c-4ad2-b9d7-2473d3e0d41a", + "comment": "", + "command": "click", + "target": "css=.nav-link:nth-child(2)", + "targets": [ + ["css=.nav-link:nth-child(2)", "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[2]", "xpath:idRelative"], + ["xpath=//nav/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Options')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "73e0928e-a395-4cdd-b90c-229a01cbe7c4", + "comment": "", + "command": "assertText", + "target": "css=.row:nth-child(6) .d-flex > span", + "targets": [ + ["css=.row:nth-child(6) .d-flex > span", "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[7]/div/div/div/div/div[6]/div/div/div/div/div/label/span/span", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/div/label/span/span", "xpath:position"] + ], + "value": "Custom Boolean Display" + }, { + "id": "86d86094-13ee-47de-85e6-7346172d8c67", + "comment": "", + "command": "click", + "target": "id=root_relyingPartyOverrides_CustomBoolean", + "targets": [ + ["id=root_relyingPartyOverrides_CustomBoolean", "id"], + ["css=#root_relyingPartyOverrides_CustomBoolean", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomBoolean']", "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": "b67065c2-3953-4e91-ac7d-732f3802afa6", + "comment": "", + "command": "click", + "target": "css=.btn-info", + "targets": [ + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "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": "" + }, { + "id": "92fc6d10-d626-4384-8268-faae72946100", + "comment": "", + "command": "pause", + "target": "3000", + "targets": [], + "value": "" + }, { + "id": "2ffb3643-6816-4a65-a29b-f91c04c83c42", + "comment": "", + "command": "click", + "target": "css=.mx-4", + "targets": [ + ["css=.mx-4", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='filters']/ul/li/div/button", "xpath:idRelative"], + ["xpath=//li/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Test Filter')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "d445f01f-b936-4ebb-b011-8ce2f056e06c", + "comment": "", + "command": "assertText", + "target": "css=div:nth-child(1) > div:nth-child(6) > .d-flex > .d-block:nth-child(1)", + "targets": [ + ["css=div:nth-child(1) > div:nth-child(6) > .d-flex > .d-block:nth-child(1)", "css:finder"], + ["xpath=//div[@id='filters']/ul/li/div[2]/section[2]/div/div[2]/div[2]/div/div[6]/div/span", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[6]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom Boolean Display')]", "xpath:innerText"] + ], + "value": "Custom Boolean Display" + }, { + "id": "662f922e-4d41-4274-b7a3-aae312fe8c36", + "comment": "", + "command": "assertText", + "target": "css=div:nth-child(1) > div:nth-child(6) > .d-flex > .text-truncate", + "targets": [ + ["css=div:nth-child(1) > div:nth-child(6) > .d-flex > .text-truncate", "css:finder"], + ["xpath=//div[@id='filters']/ul/li/div[2]/section[2]/div/div[2]/div[2]/div/div[6]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[6]/div/span[2]", "xpath:position"] + ], + "value": "true" + }, { + "id": "6147ff08-6c93-42be-9dc5-3733eaf55d96", + "comment": "", + "command": "click", + "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": "" + }, { + "id": "8725a8a7-97f8-4ca2-a8bd-0ac9c542933d", + "comment": "", + "command": "click", + "target": "id=advanced-nav-dropdown-attr", + "targets": [ + ["id=advanced-nav-dropdown-attr", "id"], + ["linkText=Custom entity attributes", "linkText"], + ["css=#advanced-nav-dropdown-attr", "css:finder"], + ["xpath=//a[contains(text(),'Custom entity attributes')]", "xpath:link"], + ["xpath=//a[@id='advanced-nav-dropdown-attr']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes')]", "xpath:href"], + ["xpath=//div[3]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Custom entity attributes')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "a5fa0649-7780-4371-9292-470957d582bc", + "comment": "", + "command": "click", + "target": "css=.fa-trash > path", + "targets": [ + ["css=.fa-trash > path", "css:finder"] + ], + "value": "" + }, { + "id": "175b83c8-05b0-4045-b69a-502cb79c3a3c", + "comment": "", + "command": "click", + "target": "css=.btn-danger", + "targets": [ + ["css=.btn-danger", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[3]/div/div/div[3]/button", "xpath:position"] + ], + "value": "" + }] + }], + "suites": [{ + "id": "4c985215-babb-4f22-8422-505980ce939b", + "name": "Default Suite", + "persistSession": false, + "parallel": false, + "timeout": 300, + "tests": ["1c2e8860-20d7-42d2-93aa-31bf5d845257"] + }], + "urls": ["http://localhost:10101/"], + "plugins": [] +} \ No newline at end of file diff --git a/backend/src/integration/resources/SHIBUI-1732-3.side b/backend/src/integration/resources/SHIBUI-1732-3.side new file mode 100644 index 000000000..6a3927fda --- /dev/null +++ b/backend/src/integration/resources/SHIBUI-1732-3.side @@ -0,0 +1,1534 @@ +{ + "id": "3200c2aa-0382-48f4-a83d-5ecbc3ebdf29", + "version": "2.0", + "name": "SHIBUI-1732-3", + "url": "http://localhost:10101", + "tests": [{ + "id": "4827d8a8-0f07-40ad-aab3-b4858faf45a6", + "name": "SHIBUI-1732-3", + "commands": [{ + "id": "69a71870-d55c-42d1-80dd-493c28479b98", + "comment": "", + "command": "open", + "target": "/login", + "targets": [], + "value": "" + }, { + "id": "7962ad24-0a23-4693-b19c-1c8fd5f263ea", + "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": "03540e0d-6f3b-4ddc-9236-908402a9c23f", + "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": "473a14ad-593f-4d8f-b41f-7b1af3d7059d", + "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": "da7d071b-42d1-44eb-8937-916993bd1ba4", + "comment": "", + "command": "waitForElementVisible", + "target": "id=advanced-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "fe43133b-346d-4931-a8aa-5401b8bf90bb", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "dcc7311c-6448-4c6b-bd79-740b74082ef4", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "8cef2009-da1b-47d9-bd42-1802016e92bd", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "83d61f40-9fb9-49db-a15a-3cbd4c50187b", + "comment": "", + "command": "click", + "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": "" + }, { + "id": "b1ac8d53-da06-41c2-8235-65cf47a2de24", + "comment": "", + "command": "click", + "target": "id=advanced-nav-dropdown-attr", + "targets": [ + ["id=advanced-nav-dropdown-attr", "id"], + ["linkText=Custom entity attributes", "linkText"], + ["css=#advanced-nav-dropdown-attr", "css:finder"], + ["xpath=//a[contains(text(),'Custom entity attributes')]", "xpath:link"], + ["xpath=//a[@id='advanced-nav-dropdown-attr']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes')]", "xpath:href"], + ["xpath=//div[3]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Custom entity attributes')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "7043d404-beb5-4bb6-8650-827c9de14641", + "comment": "", + "command": "click", + "target": "linkText=Add new attribute", + "targets": [ + ["linkText=Add new attribute", "linkText"], + ["css=.btn-success", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes/new')]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'  Add new attribute')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "21003a02-13d3-4f42-a221-ce2e2fa1163d", + "comment": "", + "command": "select", + "target": "id=root_attributeType", + "targets": [], + "value": "label=List" + }, { + "id": "8e5ef6c4-105d-4d07-9b05-c538d4c4910a", + "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/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "CustomList" + }, { + "id": "7184884b-7e34-40e4-8506-064a06488730", + "comment": "", + "command": "type", + "target": "id=root_attributeFriendlyName", + "targets": [ + ["id=root_attributeFriendlyName", "id"], + ["css=#root_attributeFriendlyName", "css:finder"], + ["xpath=//input[@id='root_attributeFriendlyName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[3]/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/input", "xpath:position"] + ], + "value": "Custom List Friendly" + }, { + "id": "7b658849-d100-4a94-84af-df8edce46b06", + "comment": "", + "command": "type", + "target": "id=root_attributeName", + "targets": [ + ["id=root_attributeName", "id"], + ["css=#root_attributeName", "css:finder"], + ["xpath=//input[@id='root_attributeName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] + ], + "value": "Custom List Attribute" + }, { + "id": "f5a2227c-a7b3-4bb2-adc5-ce864c785c2e", + "comment": "", + "command": "type", + "target": "id=root_displayName", + "targets": [ + ["id=root_displayName", "id"], + ["css=#root_displayName", "css:finder"], + ["xpath=//input[@id='root_displayName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[5]/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/input", "xpath:position"] + ], + "value": "Custom List Display" + }, { + "id": "d4ad67eb-5c77-4a7c-aaff-eb54aaca0522", + "comment": "", + "command": "type", + "target": "id=root_helpText", + "targets": [ + ["id=root_helpText", "id"], + ["css=#root_helpText", "css:finder"], + ["xpath=//input[@id='root_helpText']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[6]/div/div/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/input", "xpath:position"] + ], + "value": "Custom List Help" + }, { + "id": "a87d69dc-79c7-45bc-8566-c5bbf0ccc3a6", + "comment": "", + "command": "click", + "target": "css=.array-add-button", + "targets": [ + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div[2]/div/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": "7fb1fd5a-3f7b-4261-b443-40fc11b3af65", + "comment": "", + "command": "type", + "target": "css=.flex-grow-1", + "targets": [ + ["css=.flex-grow-1", "css:finder"], + ["xpath=//input[@value='foo']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div[2]/div/div/div/div/div/div[2]/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/input", "xpath:position"] + ], + "value": "foo" + }, { + "id": "f9616d7a-c7fe-4e37-b3ae-68fe0af30158", + "comment": "", + "command": "click", + "target": "css=.array-add-button", + "targets": [ + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div[2]/div/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": "5cacd705-07f8-4aab-a4da-a5b4476ab08f", + "comment": "", + "command": "type", + "target": "css=.my-2:nth-child(2) > .flex-grow-1", + "targets": [ + ["css=.my-2:nth-child(2) > .flex-grow-1", "css:finder"], + ["xpath=//input[@value='bar']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div[2]/div/div/div/div/div/div[2]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] + ], + "value": "bar" + }, { + "id": "256a4457-67bf-4f07-9136-462101a9c096", + "comment": "", + "command": "click", + "target": "css=.array-add-button", + "targets": [ + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div[2]/div/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": "cabddc95-2fe0-4ff9-aa0c-73c51959bf7d", + "comment": "", + "command": "type", + "target": "css=.my-2:nth-child(3) > .flex-grow-1", + "targets": [ + ["css=.my-2:nth-child(3) > .flex-grow-1", "css:finder"], + ["xpath=//input[@value='baz']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div[2]/div/div/div/div/div/div[2]/div[3]/input", "xpath:idRelative"], + ["xpath=//div[3]/input", "xpath:position"] + ], + "value": "baz" + }, { + "id": "858e7ff4-41a9-41dd-a9c9-6b1cb4f1a38f", + "comment": "", + "command": "click", + "target": "name=default", + "targets": [ + ["name=default", "name"], + ["css=.my-2:nth-child(1) > .mx-4", "css:finder"], + ["xpath=//input[@name='default']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div[2]/div/div/div/div/div/div[2]/div/input[2]", "xpath:idRelative"], + ["xpath=//input[2]", "xpath:position"] + ], + "value": "" + }, { + "id": "cf66edf7-f4c4-4713-b1c0-fc6b13a3f41e", + "comment": "", + "command": "click", + "target": "css=.btn-info", + "targets": [ + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "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": "173ee4b7-8434-4d26-8de3-f9e4ec095c5a", + "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": "cc56d581-5a5e-41a4-9075-1ae1aa520859", + "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": "e47fc95e-bf53-4a58-83c0-bf781730728b", + "comment": "", + "command": "click", + "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": "" + }, { + "id": "97ca1d66-6fb6-4aca-9826-c27437910ad1", + "comment": "", + "command": "waitForElementEditable", + "target": "id=root_serviceProviderName", + "targets": [], + "value": "30000" + }, { + "id": "9b646bcd-4afb-48c8-88eb-a7620537ba79", + "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": "74eed91a-8e5f-4e98-9421-98d188278db2", + "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": "Test" + }, { + "id": "8c4bf41f-57c6-4c13-9b7c-8ca06a0c5873", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "8b5897b4-d602-441f-a202-ea93c986b83e", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "38421abc-b4bf-4dd4-8b89-157de3eaf27f", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "7ebea95c-76d0-4f89-8ea6-87fa1033f8bc", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "e3a54cd0-92db-4765-a599-fa4e9c184295", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "1db6d00a-62e9-4f69-9618-baa259877c00", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "b51e134c-bb10-4c6c-98c6-3e4028ae4df7", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "95c2701d-82d8-4d2d-b83e-82bb4bd2cf8c", + "comment": "", + "command": "assertText", + "target": "css=.row:nth-child(6) .control-label", + "targets": [ + ["css=.row:nth-child(6) .control-label", "css:finder"], + ["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/div/span", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/div/div/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom List Display')]", "xpath:innerText"] + ], + "value": "Custom List Display" + }, { + "id": "d6d968f3-a549-4e0b-8fe0-0ad37d80fea7", + "comment": "", + "command": "click", + "target": "css=.row:nth-child(6) .array-add-button", + "targets": [ + ["css=.row:nth-child(6) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[14]", "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/div/button", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/div/div/button", "xpath:position"] + ], + "value": "" + }, { + "id": "5d7489bb-db8f-4b5a-89e6-e3f6b3640f72", + "comment": "", + "command": "select", + "target": "id=root_relyingPartyOverrides_CustomList_0", + "targets": [], + "value": "label=bar" + }, { + "id": "01d8abc6-d8a5-46d2-9487-d5b02b95521c", + "comment": "", + "command": "click", + "target": "css=.row:nth-child(6) .array-add-button", + "targets": [ + ["css=.row:nth-child(6) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[14]", "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/div/button", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/div/div/button", "xpath:position"] + ], + "value": "" + }, { + "id": "ea1956c8-ead9-454d-8b00-2d555cbd4bfe", + "comment": "", + "command": "select", + "target": "id=root_relyingPartyOverrides_CustomList_1", + "targets": [], + "value": "label=baz" + }, { + "id": "649580d3-09c8-4365-9a8f-53291bdce884", + "comment": "", + "command": "click", + "target": "css=.mt-2:nth-child(2) .array-item-move-up > .svg-inline--fa", + "targets": [ + ["css=.mt-2:nth-child(2) .array-item-move-up > .svg-inline--fa", "css:finder"] + ], + "value": "" + }, { + "id": "b38da26c-687e-4870-b63c-daad4e8e8357", + "comment": "", + "command": "assertValue", + "target": "id=root_relyingPartyOverrides_CustomList_0", + "targets": [ + ["id=root_relyingPartyOverrides_CustomList_0", "id"], + ["css=#root_relyingPartyOverrides_CustomList_0", "css:finder"], + ["xpath=//select[@id='root_relyingPartyOverrides_CustomList_0']", "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/div[2]/div/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] + ], + "value": "baz" + }, { + "id": "692acf9b-8d50-463e-83ba-eeebfaddc6d7", + "comment": "", + "command": "assertValue", + "target": "id=root_relyingPartyOverrides_CustomList_1", + "targets": [ + ["id=root_relyingPartyOverrides_CustomList_1", "id"], + ["css=#root_relyingPartyOverrides_CustomList_1", "css:finder"], + ["xpath=//select[@id='root_relyingPartyOverrides_CustomList_1']", "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/div[2]/div[2]/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/select", "xpath:position"] + ], + "value": "bar" + }, { + "id": "fae2179c-2ee2-4597-aa4c-a6737b375e85", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "37f88d10-40dd-4f21-ac09-4a5a886c5a72", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "9ce37583-508a-4ed4-9027-3b7c1f408895", + "comment": "", + "command": "assertText", + "target": "css=.align-items-start:nth-child(6) > .p-2", + "targets": [ + ["css=.align-items-start:nth-child(6) > .p-2", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[8]/div/div[2]/div[2]/div/div[6]/span", "xpath:idRelative"], + ["xpath=//div[6]/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom List Display')]", "xpath:innerText"] + ], + "value": "Custom List Display" + }, { + "id": "3a2467ef-173f-49dc-8e96-3513b9f69956", + "comment": "", + "command": "assertText", + "target": "css=.align-items-center:nth-child(1) > .d-block", + "targets": [ + ["css=.align-items-center:nth-child(1) > .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[6]/ul/li/span", "xpath:idRelative"], + ["xpath=//li/span", "xpath:position"], + ["xpath=//span[contains(.,'baz')]", "xpath:innerText"] + ], + "value": "baz" + }, { + "id": "d5f0412c-349e-4430-93e9-051f29191a23", + "comment": "", + "command": "assertText", + "target": "css=.d-flex:nth-child(2) > .d-block", + "targets": [ + ["css=.d-flex:nth-child(2) > .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[6]/ul/li[2]/span", "xpath:idRelative"], + ["xpath=//li[2]/span", "xpath:position"], + ["xpath=//span[contains(.,'bar')]", "xpath:innerText"] + ], + "value": "bar" + }, { + "id": "47ac327f-83c0-4b22-a823-86aedc166fd0", + "comment": "", + "command": "click", + "target": "css=.save", + "targets": [ + ["css=.save", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "29c85451-5a38-4042-b2d0-64f6f701aa10", + "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/ca3367c6-f390-4a39-b7eb-6dd0cd5941ad/configuration/options')]", "xpath:href"], + ["xpath=//td/a", "xpath:position"], + ["xpath=//a[contains(.,'Test')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "63e0b87d-4da3-4fb8-aa9f-6412e0562709", + "comment": "", + "command": "waitForElementVisible", + "target": "css=main > div > section > div > div > section:nth-child(9) > div > div.p-2 > div:nth-child(2) > div > div:nth-child(6) > ul > li:nth-child(1) > span", + "targets": [], + "value": "30000" + }, { + "id": "bc1292d6-d326-4146-baa8-62d9f4e97cf0", + "comment": "", + "command": "assertText", + "target": "css=main > div > section > div > div > section:nth-child(9) > div > div.p-2 > div:nth-child(2) > div > div:nth-child(6) > span", + "targets": [ + ["css=.align-items-start:nth-child(6) > .p-2", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[7]/div/div[2]/div[2]/div/div[6]/span", "xpath:idRelative"], + ["xpath=//div[6]/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom List Display')]", "xpath:innerText"] + ], + "value": "Custom List Display" + }, { + "id": "296ea08c-0cb0-40a4-8111-3de97b28e099", + "comment": "", + "command": "assertText", + "target": "css=main > div > section > div > div > section:nth-child(9) > div > div.p-2 > div:nth-child(2) > div > div:nth-child(6) > ul > li:nth-child(1) > span", + "targets": [ + ["css=.align-items-center:nth-child(1) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[7]/div/div[2]/div[2]/div/div[6]/ul/li/span", "xpath:idRelative"], + ["xpath=//ul/li/span", "xpath:position"], + ["xpath=//span[contains(.,'baz')]", "xpath:innerText"] + ], + "value": "baz" + }, { + "id": "9b4d38f8-e630-463b-b7a6-1073f2092cda", + "comment": "", + "command": "assertText", + "target": "css=main > div > section > div > div > section:nth-child(9) > div > div.p-2 > div:nth-child(2) > div > div:nth-child(6) > ul > li:nth-child(2) > span", + "targets": [ + ["css=.d-flex:nth-child(2) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[7]/div/div[2]/div[2]/div/div[6]/ul/li[2]/span", "xpath:idRelative"], + ["xpath=//ul/li[2]/span", "xpath:position"], + ["xpath=//span[contains(.,'bar')]", "xpath:innerText"] + ], + "value": "bar" + }, { + "id": "638add8c-2d49-46e3-97a0-8c398bb24d35", + "comment": "", + "command": "click", + "target": "css=.mb-4:nth-child(9) .edit-link", + "targets": [ + ["css=.mb-4:nth-child(9) .edit-link", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[7]/div/div/div/button", "xpath:idRelative"], + ["xpath=//section[7]/div/div/div/button", "xpath:position"] + ], + "value": "" + }, { + "id": "e4abb650-c762-4060-bc81-428b4758f08e", + "comment": "", + "command": "select", + "target": "id=root_relyingPartyOverrides_CustomList_0", + "targets": [], + "value": "label=foo" + }, { + "id": "992e127d-5ac1-4796-b54f-f212683624ac", + "comment": "", + "command": "pause", + "target": "1000", + "targets": [], + "value": "" + }, { + "id": "a43164b4-fc9b-4a9e-b57b-d31b22b42a1d", + "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]/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,' Save')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "91bc50ad-6638-4fcf-bf69-538f1fb5f672", + "comment": "", + "command": "pause", + "target": "1000", + "targets": [], + "value": "" + }, { + "id": "5e82eb5e-ac64-4f01-8362-af72c19978b8", + "comment": "", + "command": "waitForElementVisible", + "target": "css=main > div > section > div > div > section:nth-child(9) > div > div.p-2 > div:nth-child(2) > div > div:nth-child(6) > ul > li:nth-child(1) > span", + "targets": [], + "value": "30000" + }, { + "id": "5e43fd63-8e71-4bf6-a7da-91ed55c202a2", + "comment": "", + "command": "assertText", + "target": "css=main > div > section > div > div > section:nth-child(9) > div > div.p-2 > div:nth-child(2) > div > div:nth-child(6) > ul > li:nth-child(1) > span", + "targets": [ + ["css=.align-items-center:nth-child(1) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[7]/div/div[2]/div[2]/div/div[6]/ul/li/span", "xpath:idRelative"], + ["xpath=//ul/li/span", "xpath:position"], + ["xpath=//span[contains(.,'foo')]", "xpath:innerText"] + ], + "value": "foo" + }, { + "id": "b023fa7f-ec8a-4bb7-84cd-c0fbcb721aac", + "comment": "", + "command": "assertText", + "target": "css=main > div > section > div > div > section:nth-child(9) > div > div.p-2 > div:nth-child(2) > div > div:nth-child(6) > ul > li:nth-child(2) > span", + "targets": [ + ["css=.d-flex:nth-child(2) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[7]/div/div[2]/div[2]/div/div[6]/ul/li[2]/span", "xpath:idRelative"], + ["xpath=//ul/li[2]/span", "xpath:position"], + ["xpath=//span[contains(.,'bar')]", "xpath:innerText"] + ], + "value": "bar" + }, { + "id": "8e376439-d2aa-43e7-b3bc-83ae9ccbe6a8", + "comment": "", + "command": "pause", + "target": "5000", + "targets": [], + "value": "" + }, { + "id": "3af18cc3-d25e-4a72-ace6-f9ef23818094", + "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": "e2d8fc10-f0cd-4910-930d-e750bd9f63b0", + "comment": "", + "command": "click", + "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": "72f41407-bc96-4530-a8b4-ee90a8f422c9", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" + }, { + "id": "86f59445-0baf-4882-8370-d3be742200c1", + "comment": "", + "command": "type", + "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": "Test" + }, { + "id": "3c298664-b8c4-40de-986e-a955c760ba3e", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=FileBackedHttpMetadataResolver" + }, { + "id": "4c95039c-f3b1-49b0-922c-72dbe623c994", + "comment": "", + "command": "click", + "target": "css=.nav-link", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "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": "" + }, { + "id": "3ea31ef0-b51d-4a72-83a0-fd63815ffa18", + "comment": "", + "command": "waitForElementEditable", + "target": "id=root_xmlId", + "targets": [], + "value": "30000" + }, { + "id": "f4b0cc0b-2e77-49f9-98ea-7f964becdf48", + "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/div/form/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "1" + }, { + "id": "65a308c0-0ad9-4084-a78c-ef58e9de1d8f", + "comment": "", + "command": "type", + "target": "id=root_metadataURL", + "targets": [ + ["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[2]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] + ], + "value": "https://idp.unicon.net/idp/shibboleth" + }, { + "id": "bcd51b67-ea27-41d8-8980-3d14167adbba", + "comment": "", + "command": "type", + "target": "id=root_backingFile", + "targets": [ + ["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[2]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] + ], + "value": "%{idp.home}/foo" + }, { + "id": "282dca1b-fad9-4d2d-ab6e-b92bf5334eb3", + "comment": "", + "command": "click", + "target": "css=.rbt-input-main", + "targets": [ + ["css=.rbt-input-main", "css:finder"], + ["xpath=//input[@value='']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div[5]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "74de5b81-69b2-446b-b4a7-0561676886be", + "comment": "", + "command": "click", + "target": "id=option-selector-root_backupFileInitNextRefreshDelay-item-1", + "targets": [ + ["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": "a6871370-3fdc-4e68-9e25-a6ad307ec384", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "a832e04b-45f7-4752-8b3e-2da244c77171", + "comment": "", + "command": "click", + "target": "css=.next", + "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. Metadata Filter Plugins')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "786a8033-d513-41c5-aee9-50207dd8f3b8", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "9e2a81e0-f9fc-4506-98e8-de7a1734ac59", + "comment": "", + "command": "click", + "target": "css=.save", + "targets": [ + ["css=.save", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "ed43f6ed-9abc-45f3-a595-43d82c39a370", + "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[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/01824aed-39bd-4e94-b1b0-45b65fd9050f/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Test')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "f5b96bec-46e8-48d3-a5af-919b152614ca", + "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/01824aed-39bd-4e94-b1b0-45b65fd9050f/filter/new')]", "xpath:href"], + ["xpath=//div[3]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Add Filter')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "5dd3526f-e1a5-4a98-b3c9-5781fba89b62", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=EntityAttributes" + }, { + "id": "b2196617-0455-4285-88aa-4a2f77a7faac", + "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/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "Test" + }, { + "id": "69495577-7459-4316-9ff7-5e3b7e2477d8", + "comment": "", + "command": "click", + "target": "id=dropdown-label.filter-target-type", + "targets": [ + ["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"] + ], + "value": "" + }, { + "id": "395b1419-eb1e-4698-99f5-04d8091d8ad1", + "comment": "", + "command": "click", + "target": "css=.show > .dropdown-item:nth-child(3)", + "targets": [ + ["css=.show > .dropdown-item:nth-child(3)", "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/div/div/button[3]", "xpath:idRelative"], + ["xpath=//div/button[3]", "xpath:position"], + ["xpath=//button[contains(.,'Script')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "0d432b54-2c3e-4088-9369-85ff72a988fa", + "comment": "", + "command": "type", + "target": "css=.npm__react-simple-code-editor__textarea", + "targets": [ + ["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[6]/div/div/div/fieldset/div/div/div[2]/div/div/div/div/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "eval(true);" + }, { + "id": "1b681669-02b0-47f4-a539-de9eef9e3b5a", + "comment": "", + "command": "click", + "target": "css=.nav-link:nth-child(2)", + "targets": [ + ["css=.nav-link:nth-child(2)", "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[2]", "xpath:idRelative"], + ["xpath=//nav/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Options')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "f4efaf0c-a75f-4016-8808-1db34e6c29f2", + "comment": "", + "command": "assertText", + "target": "css=.row:nth-child(6) .control-label", + "targets": [ + ["css=.row:nth-child(6) .control-label", "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[7]/div/div/div/div/div[6]/div/div/div/div/div/div/span", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/div/div/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom List Display')]", "xpath:innerText"] + ], + "value": "Custom List Display" + }, { + "id": "61f236f1-5170-4b98-ac5b-7262a65a7bb7", + "comment": "", + "command": "click", + "target": "css=.row:nth-child(6) .array-add-button", + "targets": [ + ["css=.row:nth-child(6) .array-add-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[7]/div/div/div/div/div[6]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/div/div/button", "xpath:position"] + ], + "value": "" + }, { + "id": "8a0afe65-03b5-403f-840f-b01861bc8507", + "comment": "", + "command": "assertValue", + "target": "id=root_relyingPartyOverrides_CustomList_0", + "targets": [ + ["id=root_relyingPartyOverrides_CustomList_0", "id"], + ["css=#root_relyingPartyOverrides_CustomList_0", "css:finder"], + ["xpath=//select[@id='root_relyingPartyOverrides_CustomList_0']", "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/div[2]/div/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//div/div/select", "xpath:position"] + ], + "value": "foo" + }, { + "id": "cc3e547c-fbe2-47e9-bb17-29faed190aff", + "comment": "", + "command": "select", + "target": "id=root_relyingPartyOverrides_CustomList_0", + "targets": [], + "value": "label=bar" + }, { + "id": "1690cd2a-caae-4e79-80e1-6c558683bdf2", + "comment": "", + "command": "click", + "target": "css=.fa-save > path", + "targets": [ + ["css=.fa-save > path", "css:finder"] + ], + "value": "" + }, { + "id": "b3c434f8-a819-475b-b916-ca2ed022d905", + "comment": "", + "command": "waitForElementVisible", + "target": "css=.mx-4", + "targets": [], + "value": "30000" + }, { + "id": "719b6916-36e1-4b78-9be3-4dbb5bdba7ba", + "comment": "", + "command": "click", + "target": "css=.mx-4", + "targets": [ + ["css=.mx-4", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='filters']/ul/li/div/button", "xpath:idRelative"], + ["xpath=//li/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Test')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "5d21315a-5180-4d09-9a02-a7739af2d452", + "comment": "", + "command": "assertText", + "target": "css=.align-items-start:nth-child(6) > .p-2", + "targets": [ + ["css=.align-items-start:nth-child(6) > .p-2", "css:finder"], + ["xpath=//div[@id='filters']/ul/li/div[2]/section[2]/div/div[2]/div[2]/div/div[6]/span", "xpath:idRelative"], + ["xpath=//div[6]/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom List Display')]", "xpath:innerText"] + ], + "value": "Custom List Display" + }, { + "id": "f357c4e6-acbb-4f90-ba48-18f6afec80f5", + "comment": "", + "command": "assertText", + "target": "css=.d-flex:nth-child(6) .d-block", + "targets": [ + ["css=.d-flex:nth-child(6) .d-block", "css:finder"], + ["xpath=//div[@id='filters']/ul/li/div[2]/section[2]/div/div[2]/div[2]/div/div[6]/ul/li/span", "xpath:idRelative"], + ["xpath=//div[6]/ul/li/span", "xpath:position"], + ["xpath=//span[contains(.,'bar')]", "xpath:innerText"] + ], + "value": "bar" + }, { + "id": "2b05d375-54e0-4d03-90f0-dd8550ab9d7e", + "comment": "", + "command": "click", + "target": "linkText=Edit", + "targets": [ + ["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/01824aed-39bd-4e94-b1b0-45b65fd9050f/filter/6ee8d8bd-e891-4bda-91b8-5f0917a1b2e9/edit/common')]", "xpath:href"], + ["xpath=//div[2]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Edit')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "041646e6-0c13-4992-8714-2e526980f82e", + "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[2]/div[2]/div/nav/button[2]", "xpath:idRelative"], + ["xpath=//nav/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Options')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "774df87c-643a-4c71-985c-f7920f956fb6", + "comment": "", + "command": "click", + "target": "css=.row:nth-child(6) .array-add-button", + "targets": [ + ["css=.row:nth-child(6) .array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[18]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div[2]/div/form/div/div/div/div[7]/div/div/div/div/div[6]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/div/div/button", "xpath:position"] + ], + "value": "" + }, { + "id": "548ee592-a61c-4aa1-b79d-a40b890aafc0", + "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[2]/div/div[2]/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Save')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "1029ff18-d8fd-4cc6-8228-e72e528356d2", + "comment": "", + "command": "waitForElementVisible", + "target": "css=.mx-4", + "targets": [], + "value": "30000" + }, { + "id": "1a9cc236-6bda-4e66-8d0e-4a497902da93", + "comment": "", + "command": "click", + "target": "css=.mx-4", + "targets": [ + ["css=.mx-4", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='filters']/ul/li/div/button", "xpath:idRelative"], + ["xpath=//li/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Test')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "83aa335b-5efb-4ca2-9e41-f06213cc68e2", + "comment": "", + "command": "assertText", + "target": "css=.d-flex:nth-child(6) .d-flex:nth-child(1) > .d-block", + "targets": [ + ["css=.d-flex:nth-child(6) .d-flex:nth-child(1) > .d-block", "css:finder"], + ["xpath=//div[@id='filters']/ul/li/div[2]/section[2]/div/div[2]/div[2]/div/div[6]/ul/li/span", "xpath:idRelative"], + ["xpath=//div[6]/ul/li/span", "xpath:position"], + ["xpath=//span[contains(.,'bar')]", "xpath:innerText"] + ], + "value": "bar" + }, { + "id": "b9bcb197-5e0d-4bfc-a5d0-c2c3e6277327", + "comment": "", + "command": "assertText", + "target": "css=.d-flex:nth-child(2) > .d-block", + "targets": [ + ["css=.d-flex:nth-child(2) > .d-block", "css:finder"], + ["xpath=//div[@id='filters']/ul/li/div[2]/section[2]/div/div[2]/div[2]/div/div[6]/ul/li[2]/span", "xpath:idRelative"], + ["xpath=//ul/li[2]/span", "xpath:position"] + ], + "value": "foo" + }, { + "id": "ea0439ef-4612-428f-a987-d911e5266c74", + "comment": "", + "command": "click", + "target": "linkText=Version History", + "targets": [ + ["linkText=Version History", "linkText"], + ["css=#navigation .btn:nth-child(1)", "css:finder"], + ["xpath=//div[@id='navigation']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/01824aed-39bd-4e94-b1b0-45b65fd9050f/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "1e0c2bac-86a7-4fb3-b2df-f40aa9ce4533", + "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": "4ac30888-7e50-4652-b1b4-2daaa75b628b", + "comment": "", + "command": "click", + "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": "" + }, { + "id": "3a37394c-32ac-4c03-9276-3a6c3648eb1c", + "comment": "", + "command": "click", + "target": "css=.btn-primary", + "targets": [ + ["css=.btn-primary", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "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": "2dd7992f-ee99-45a3-ad85-20488c4bd4b1", + "comment": "", + "command": "click", + "target": "css=.border-primary:nth-child(2) .svg-inline--fa", + "targets": [ + ["css=.border-primary:nth-child(2) .svg-inline--fa", "css:finder"] + ], + "value": "" + }, { + "id": "14014337-af0f-4668-888d-b4da2bc2041b", + "comment": "", + "command": "click", + "target": "css=.btn-primary", + "targets": [ + ["css=.btn-primary", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/div[5]/button", "xpath:idRelative"], + ["xpath=//div[5]/button", "xpath:position"], + ["xpath=//button[contains(.,'Compare Selected')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "1f51b140-8bd1-4647-b123-5c6956e7db9b", + "comment": "", + "command": "assertText", + "target": "css=.bg-diff > .p-2", + "targets": [ + ["css=.bg-diff > .p-2", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[6]/div/div[2]/div[2]/div/div[6]/span[2]", "xpath:idRelative"], + ["xpath=//div[6]/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'Custom List Display')]", "xpath:innerText"] + ], + "value": "Custom List Display" + }, { + "id": "60be08c4-004e-4a41-907c-e82fdbedddf2", + "comment": "", + "command": "assertText", + "target": "css=.d-flex:nth-child(6) > .list-unstyled:nth-child(3) > .d-flex:nth-child(1) > .d-block", + "targets": [ + ["css=.d-flex:nth-child(6) > .list-unstyled:nth-child(3) > .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[6]/ul/li/span", "xpath:idRelative"], + ["xpath=//div[6]/ul/li/span", "xpath:position"], + ["xpath=//span[contains(.,'bar')]", "xpath:innerText"] + ], + "value": "bar" + }, { + "id": "e424ea9f-2713-4be6-a641-f3aa8096b716", + "comment": "", + "command": "assertText", + "target": "css=.d-flex:nth-child(2) > .d-block", + "targets": [ + ["css=.d-flex:nth-child(2) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[6]/div/div[2]/div[2]/div/div[6]/ul/li[2]/span", "xpath:idRelative"], + ["xpath=//ul/li[2]/span", "xpath:position"] + ], + "value": "foo" + }, { + "id": "ea3ef869-346f-444e-b364-a79567e63afa", + "comment": "", + "command": "assertText", + "target": "css=.list-unstyled:nth-child(4) .d-block", + "targets": [ + ["css=.list-unstyled:nth-child(4) .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[6]/div/div[2]/div[2]/div/div[6]/ul[2]/li/span", "xpath:idRelative"], + ["xpath=//div[6]/ul[2]/li/span", "xpath:position"] + ], + "value": "bar" + }, { + "id": "ad4e8bc7-a18d-4559-82ff-147ced9752a1", + "comment": "", + "command": "click", + "target": "id=dashboard-nav", + "targets": [ + ["id=dashboard-nav", "id"], + ["linkText=Dashboard", "linkText"], + ["css=#dashboard-nav", "css:finder"], + ["xpath=//a[contains(text(),'Dashboard')]", "xpath:link"], + ["xpath=//a[@id='dashboard-nav']", "xpath:attributes"], + ["xpath=//div[@id='basic-navbar-nav']/div/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/dashboard')]", "xpath:href"], + ["xpath=//div/a", "xpath:position"], + ["xpath=//a[contains(.,'Dashboard')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "c217ac81-bf55-4b1b-8c0b-3f2f0a2118e0", + "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/ca3367c6-f390-4a39-b7eb-6dd0cd5941ad/configuration/options')]", "xpath:href"], + ["xpath=//td/a", "xpath:position"], + ["xpath=//a[contains(.,'Test')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "408c3ef5-80a2-4963-8f37-74bcc41d7601", + "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/ca3367c6-f390-4a39-b7eb-6dd0cd5941ad/configuration/history')]", "xpath:href"], + ["xpath=//section/div/div/div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Version History')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "01a91f93-5ada-4541-8210-4fc06dab7004", + "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": "3406bdf6-aa08-48f5-8be3-7559d4c1539e", + "comment": "", + "command": "click", + "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": "" + }, { + "id": "551a8025-b914-469e-818f-009785686c5d", + "comment": "", + "command": "click", + "target": "css=.btn-primary", + "targets": [ + ["css=.btn-primary", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "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": "8b8c15c3-d98e-4db2-8ba8-49fd638c621e", + "comment": "", + "command": "click", + "target": "xpath=//section/div/div/div/div[2]/input", + "targets": [ + ["css=.custom-control-label", "css:finder"], + ["xpath=//div[@id='navigation']/div[2]/label", "xpath:idRelative"], + ["xpath=//label", "xpath:position"], + ["xpath=//label[contains(.,'View Only Changes')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "8a792c2e-bfdd-49d8-b644-51e39a5ad019", + "comment": "", + "command": "waitForElementVisible", + "target": "css=section > div > div > section > div > div.p-2 > div:nth-child(2) > div > div > span.p-2", + "targets": [], + "value": "30000" + }, { + "id": "c09738c7-9495-44ee-90b7-1db736fc7991", + "comment": "", + "command": "assertText", + "target": "css=section > div > div > section > div > div.p-2 > div:nth-child(2) > div > div > span.p-2", + "targets": [ + ["css=.d-flex > .p-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"], + ["xpath=//span[contains(.,'Custom List Display')]", "xpath:innerText"] + ], + "value": "Custom List Display" + }, { + "id": "34714634-d050-4e65-9c51-02aaa0d6deaa", + "comment": "", + "command": "assertText", + "target": "css=.list-unstyled:nth-child(3) > .d-flex:nth-child(1) > .d-block", + "targets": [ + ["css=.list-unstyled:nth-child(3) > .d-flex:nth-child(1) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/ul/li/span", "xpath:idRelative"], + ["xpath=//ul/li/span", "xpath:position"], + ["xpath=//span[contains(.,'foo')]", "xpath:innerText"] + ], + "value": "foo" + }, { + "id": "cbab8fae-730b-44c7-bb04-22a6bae96ba0", + "comment": "", + "command": "assertText", + "target": "css=.list-unstyled:nth-child(3) > .d-flex:nth-child(2) > .d-block", + "targets": [ + ["css=.list-unstyled:nth-child(3) > .d-flex:nth-child(2) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/ul/li[2]/span", "xpath:idRelative"], + ["xpath=//ul/li[2]/span", "xpath:position"], + ["xpath=//span[contains(.,'bar')]", "xpath:innerText"] + ], + "value": "bar" + }, { + "id": "bd572c1f-74f9-4424-ac12-aeac568cf47f", + "comment": "", + "command": "assertText", + "target": "css=.list-unstyled:nth-child(4) > .d-flex:nth-child(1) > .d-block", + "targets": [ + ["css=.list-unstyled:nth-child(4) > .d-flex:nth-child(1) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/ul[2]/li/span", "xpath:idRelative"], + ["xpath=//ul[2]/li/span", "xpath:position"], + ["xpath=//span[contains(.,'baz')]", "xpath:innerText"] + ], + "value": "baz" + }, { + "id": "7a4c8770-0354-46fb-96d6-c4704cad4e3a", + "comment": "", + "command": "assertText", + "target": "css=.list-unstyled:nth-child(4) > .d-flex:nth-child(2) > .d-block", + "targets": [ + ["css=.list-unstyled:nth-child(4) > .d-flex:nth-child(2) > .d-block", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div[2]/div[2]/div/div/ul[2]/li[2]/span", "xpath:idRelative"], + ["xpath=//ul[2]/li[2]/span", "xpath:position"] + ], + "value": "bar" + }] + }], + "suites": [{ + "id": "575d414c-556d-45f7-b2f2-c9971ad51348", + "name": "Default Suite", + "persistSession": false, + "parallel": false, + "timeout": 300, + "tests": ["4827d8a8-0f07-40ad-aab3-b4858faf45a6"] + }], + "urls": ["http://localhost:10101/"], + "plugins": [] +} \ No newline at end of file diff --git a/backend/src/integration/resources/SHIBUI-1732-4.side b/backend/src/integration/resources/SHIBUI-1732-4.side new file mode 100644 index 000000000..0197187c0 --- /dev/null +++ b/backend/src/integration/resources/SHIBUI-1732-4.side @@ -0,0 +1,1007 @@ +{ + "id": "3200c2aa-0382-48f4-a83d-5ecbc3ebdf29", + "version": "2.0", + "name": "SHIBUI-1732-4", + "url": "http://localhost:10101", + "tests": [{ + "id": "4827d8a8-0f07-40ad-aab3-b4858faf45a6", + "name": "SHIBUI-1732-4", + "commands": [{ + "id": "69a71870-d55c-42d1-80dd-493c28479b98", + "comment": "", + "command": "open", + "target": "/login", + "targets": [], + "value": "" + }, { + "id": "7962ad24-0a23-4693-b19c-1c8fd5f263ea", + "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": "03540e0d-6f3b-4ddc-9236-908402a9c23f", + "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": "473a14ad-593f-4d8f-b41f-7b1af3d7059d", + "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": "da7d071b-42d1-44eb-8937-916993bd1ba4", + "comment": "", + "command": "waitForElementVisible", + "target": "id=advanced-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "fe43133b-346d-4931-a8aa-5401b8bf90bb", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "dcc7311c-6448-4c6b-bd79-740b74082ef4", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "8cef2009-da1b-47d9-bd42-1802016e92bd", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "83d61f40-9fb9-49db-a15a-3cbd4c50187b", + "comment": "", + "command": "click", + "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": "" + }, { + "id": "b1ac8d53-da06-41c2-8235-65cf47a2de24", + "comment": "", + "command": "click", + "target": "id=advanced-nav-dropdown-attr", + "targets": [ + ["id=advanced-nav-dropdown-attr", "id"], + ["linkText=Custom entity attributes", "linkText"], + ["css=#advanced-nav-dropdown-attr", "css:finder"], + ["xpath=//a[contains(text(),'Custom entity attributes')]", "xpath:link"], + ["xpath=//a[@id='advanced-nav-dropdown-attr']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes')]", "xpath:href"], + ["xpath=//div[3]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Custom entity attributes')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "7043d404-beb5-4bb6-8650-827c9de14641", + "comment": "", + "command": "click", + "target": "linkText=Add new attribute", + "targets": [ + ["linkText=Add new attribute", "linkText"], + ["css=.btn-success", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes/new')]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'  Add new attribute')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "47b39591-6031-492b-8a7a-2b97587c291d", + "comment": "", + "command": "select", + "target": "id=root_attributeType", + "targets": [], + "value": "label=Long" + }, { + "id": "a3d7d5ef-6764-42ba-ac4f-30ff68df47ac", + "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/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "CustomLong" + }, { + "id": "6df128d4-780f-4b48-b232-db1186f64cb8", + "comment": "", + "command": "type", + "target": "id=root_attributeFriendlyName", + "targets": [ + ["id=root_attributeFriendlyName", "id"], + ["css=#root_attributeFriendlyName", "css:finder"], + ["xpath=//input[@id='root_attributeFriendlyName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[3]/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/input", "xpath:position"] + ], + "value": "Custom Long Friendly" + }, { + "id": "522ab86b-e27b-4646-83d9-d6c62205ec95", + "comment": "", + "command": "type", + "target": "id=root_attributeName", + "targets": [ + ["id=root_attributeName", "id"], + ["css=#root_attributeName", "css:finder"], + ["xpath=//input[@id='root_attributeName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] + ], + "value": "Custom Long Attribute" + }, { + "id": "40c18d32-f864-4d9f-befc-ec4f774c12f5", + "comment": "", + "command": "type", + "target": "id=root_displayName", + "targets": [ + ["id=root_displayName", "id"], + ["css=#root_displayName", "css:finder"], + ["xpath=//input[@id='root_displayName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[5]/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/input", "xpath:position"] + ], + "value": "Custom Long Display" + }, { + "id": "1cf24f3d-5e28-4a8c-939b-e40bd61a8503", + "comment": "", + "command": "type", + "target": "id=root_helpText", + "targets": [ + ["id=root_helpText", "id"], + ["css=#root_helpText", "css:finder"], + ["xpath=//input[@id='root_helpText']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[6]/div/div/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/input", "xpath:position"] + ], + "value": "Custom Long Help" + }, { + "id": "53b069f7-b697-42b4-8b87-4e8dc5412171", + "comment": "", + "command": "type", + "target": "id=root_defaultValue", + "targets": [ + ["id=root_defaultValue", "id"], + ["css=#root_defaultValue", "css:finder"], + ["xpath=//input[@id='root_defaultValue']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/input", "xpath:position"] + ], + "value": "12345678901234567890" + }, { + "id": "a9073660-0640-4b37-aac6-3969b8f3c6d9", + "comment": "", + "command": "click", + "target": "css=.btn-info", + "targets": [ + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "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": "f2459db8-9fae-4fff-a7c3-ef1fc638e8b7", + "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": "681064f5-ed15-48f4-a6be-14214575e30f", + "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": "96bf3f34-f284-4d6a-bc28-9d0e1efaa711", + "comment": "", + "command": "waitForElementEditable", + "target": "id=root_serviceProviderName", + "targets": [], + "value": "30000" + }, { + "id": "f5035297-5049-4988-9350-8c20be3bed0a", + "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": "8b5f59b1-e619-495e-8920-405271485be9", + "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": "Test" + }, { + "id": "18b31cde-bdc5-45ab-99b7-48dd453e8db1", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "b2e1ab93-6618-4770-8a05-4546cb207829", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "6b5661ca-1ba3-4a47-ae8d-7cc4096ebe67", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "30199c57-a13d-4609-861c-8634feb76ef3", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "cdfee104-1d0f-4aca-a491-eeaa99836230", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "76b70a47-4037-481a-a4f5-f72d1e687992", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "a288cfbf-d4bd-439c-be5d-ee09d7599b8a", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "fc60ee8f-44fb-4e6a-b445-a7f78d13ee0b", + "comment": "", + "command": "assertText", + "target": "css=.row:nth-child(7) span", + "targets": [ + ["css=.row:nth-child(7) span", "css:finder"], + ["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/label/span", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div/div/label/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom Long Display')]", "xpath:innerText"] + ], + "value": "Custom Long Display" + }, { + "id": "ff067cbf-4a37-4e67-a206-0af4596259c6", + "comment": "", + "command": "assertValue", + "target": "id=root_relyingPartyOverrides_CustomLong", + "targets": [ + ["id=root_relyingPartyOverrides_CustomLong", "id"], + ["css=#root_relyingPartyOverrides_CustomLong", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomLong']", "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": "12345678901234567890" + }, { + "id": "57a651d0-fd91-4990-ac81-ebcb81da2ff3", + "comment": "", + "command": "type", + "target": "id=root_relyingPartyOverrides_CustomLong", + "targets": [ + ["id=root_relyingPartyOverrides_CustomLong", "id"], + ["css=#root_relyingPartyOverrides_CustomLong", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomLong']", "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": "caa1611f-b7aa-4457-bd3c-13988d3324a5", + "comment": "", + "command": "type", + "target": "id=root_relyingPartyOverrides_CustomLong", + "targets": [ + ["id=root_relyingPartyOverrides_CustomLong", "id"], + ["css=#root_relyingPartyOverrides_CustomLong", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomLong']", "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": "999999999999999999" + }, { + "id": "eb5543cd-fe91-4033-aff5-b460c9ab61e2", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "cc4d189d-6d85-4900-bdb0-e54431620600", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "7da12988-b453-4025-adba-cc1b9e916a2f", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(8) div:nth-child(7) .d-block:nth-child(1)", + "targets": [ + ["css=.mb-4:nth-child(8) div:nth-child(7) .d-block:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[8]/div/div[2]/div[2]/div/div[7]/div/span", "xpath:idRelative"], + ["xpath=//section[8]/div/div[2]/div[2]/div/div[7]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom Long Display')]", "xpath:innerText"] + ], + "value": "Custom Long Display" + }, { + "id": "ad3b6ecd-ad20-4a8e-be55-b9cda50e7091", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(8) div:nth-child(7) .d-block:nth-child(2)", + "targets": [ + ["css=.mb-4:nth-child(8) div:nth-child(7) .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[8]/div/div[2]/div[2]/div/div[7]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[8]/div/div[2]/div[2]/div/div[7]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'999999999999999999')]", "xpath:innerText"] + ], + "value": "999999999999999999" + }, { + "id": "87d0add8-0d03-476c-8eed-41a3a70c471d", + "comment": "", + "command": "click", + "target": "css=.save", + "targets": [ + ["css=.save", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "769f091e-f738-49b1-8a91-cf2a966caad9", + "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/716f4091-4256-44f4-87b3-eccc5d6b2744/configuration/options')]", "xpath:href"], + ["xpath=//td/a", "xpath:position"], + ["xpath=//a[contains(.,'Test')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "2b68bce2-618f-4ff8-b5e4-8c5625b5daf3", + "comment": "", + "command": "waitForElementVisible", + "target": "css=.mb-4:nth-child(9) div:nth-child(7) .d-block:nth-child(1)", + "targets": [], + "value": "Custom Long Display" + }, { + "id": "4f6f46bd-cbb0-4d04-a637-f6c33b394488", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(9) div:nth-child(7) .d-block:nth-child(1)", + "targets": [ + ["css=.mb-4:nth-child(9) div:nth-child(7) .d-block:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[7]/div/div[2]/div[2]/div/div[7]/div/span", "xpath:idRelative"], + ["xpath=//section[7]/div/div[2]/div[2]/div/div[7]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom Long Display')]", "xpath:innerText"] + ], + "value": "Custom Long Display" + }, { + "id": "ddc15b34-fa22-4a4a-a739-fab21337c82d", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(9) div:nth-child(7) .d-block:nth-child(2)", + "targets": [ + ["css=.mb-4:nth-child(9) div:nth-child(7) .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[7]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[7]/div/div[2]/div[2]/div/div[7]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'999999999999999999')]", "xpath:innerText"] + ], + "value": "999999999999999999" + }, { + "id": "6a64f274-1234-452f-926d-611af69667e0", + "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": "845b0d57-f68d-407b-9399-c333901358e2", + "comment": "", + "command": "click", + "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": "25ccbba5-008c-425e-8998-dc527c910e42", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" + }, { + "id": "e5b00815-951c-4002-8f17-90109c7d6ac6", + "comment": "", + "command": "type", + "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": "Test" + }, { + "id": "befba204-65a3-4a26-91ca-75141306ee8a", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=FileBackedHttpMetadataResolver" + }, { + "id": "1a8cc7c1-79ab-4cfd-bde5-d200b9e57bda", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "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": "" + }, { + "id": "3d086b27-a063-4c57-a954-e66ad6db09e2", + "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/div/form/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "1" + }, { + "id": "b2f58027-719a-43f4-bf2e-154135b9be3f", + "comment": "", + "command": "type", + "target": "id=root_metadataURL", + "targets": [ + ["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[2]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] + ], + "value": "https://idp.unicon.net/idp/shibboleth" + }, { + "id": "7fb6739a-201c-438d-b5c4-c7f1a413830e", + "comment": "", + "command": "type", + "target": "id=root_backingFile", + "targets": [ + ["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[2]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] + ], + "value": "%{idp.home}/foo" + }, { + "id": "53edb157-77c5-4902-bfc9-00575e745d8c", + "comment": "", + "command": "click", + "target": "css=.rbt-input-main", + "targets": [ + ["css=.rbt-input-main", "css:finder"], + ["xpath=//input[@value='']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div[5]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "1a74bc57-4d6a-427a-80a0-09fd35fa1eca", + "comment": "", + "command": "click", + "target": "id=option-selector-root_backupFileInitNextRefreshDelay-item-1", + "targets": [ + ["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": "7359700d-0857-471c-b161-97219f987ce0", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "0c05de36-753c-4932-94a1-2468c6837476", + "comment": "", + "command": "click", + "target": "css=.next", + "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. Metadata Filter Plugins')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "8e78a435-9f6c-49a6-8ddd-3f35f78f6ca7", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "e25d61fb-4e1a-4698-a853-c7b0f96105be", + "comment": "", + "command": "click", + "target": "css=.save", + "targets": [ + ["css=.save", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "85288668-651f-4a5b-94aa-0e8f5044d9e3", + "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[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/f99aa44d-49c1-4400-a87d-32b1616ea8d0/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Test')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "685f1c54-a454-4bdb-91fa-38735fea5785", + "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/f99aa44d-49c1-4400-a87d-32b1616ea8d0/filter/new')]", "xpath:href"], + ["xpath=//div[3]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Add Filter')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "5838cbef-0dc6-48af-bf20-35cf463cfbad", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" + }, { + "id": "7112fed7-d86f-4bd1-afa9-15c53c009d65", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=EntityAttributes" + }, { + "id": "067bb3fd-eaa4-47ad-bbdf-71ff7b5d4ac0", + "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/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "Test Filter" + }, { + "id": "1ffccd97-56fd-4d8d-8b70-54134fa3e51f", + "comment": "", + "command": "click", + "target": "id=dropdown-label.filter-target-type", + "targets": [ + ["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"] + ], + "value": "" + }, { + "id": "be038c64-d9f7-48b1-a18f-e89abb2cf99d", + "comment": "", + "command": "click", + "target": "css=.show > .dropdown-item:nth-child(3)", + "targets": [ + ["css=.show > .dropdown-item:nth-child(3)", "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/div/div/button[3]", "xpath:idRelative"], + ["xpath=//div/button[3]", "xpath:position"], + ["xpath=//button[contains(.,'Script')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "9d7468a7-3e02-4dc4-ac1f-469134929337", + "comment": "", + "command": "type", + "target": "css=.npm__react-simple-code-editor__textarea", + "targets": [ + ["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[6]/div/div/div/fieldset/div/div/div[2]/div/div/div/div/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "eval(true);" + }, { + "id": "64973959-e70a-4cc2-9048-8a7122c9643f", + "comment": "", + "command": "click", + "target": "css=.nav-link:nth-child(2)", + "targets": [ + ["css=.nav-link:nth-child(2)", "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[2]", "xpath:idRelative"], + ["xpath=//nav/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Options')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "af84ef03-8d0a-4201-b217-40926b723582", + "comment": "", + "command": "assertText", + "target": "css=.row:nth-child(7) > .col-12 > .form-group > div > .mb-0 span", + "targets": [ + ["css=.row:nth-child(7) > .col-12 > .form-group > div > .mb-0 span", "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[7]/div/div/div/div/div[7]/div/div/div/div/label/span", "xpath:idRelative"], + ["xpath=//div[7]/div/div/div/div/label/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom Long Display')]", "xpath:innerText"] + ], + "value": "Custom Long Display" + }, { + "id": "d0d9ee58-8c3f-4998-9e14-38ee8f0df117", + "comment": "", + "command": "assertValue", + "target": "id=root_relyingPartyOverrides_CustomLong", + "targets": [ + ["id=root_relyingPartyOverrides_CustomLong", "id"], + ["css=#root_relyingPartyOverrides_CustomLong", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomLong']", "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": "12345678901234567890" + }, { + "id": "ef6d3e38-3df4-403e-a99c-716d21f6cc14", + "comment": "", + "command": "type", + "target": "id=root_relyingPartyOverrides_CustomLong", + "targets": [ + ["id=root_relyingPartyOverrides_CustomLong", "id"], + ["css=#root_relyingPartyOverrides_CustomLong", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomLong']", "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": "16bd359e-a7c1-4362-897e-6e1e5702ddb0", + "comment": "", + "command": "type", + "target": "id=root_relyingPartyOverrides_CustomLong", + "targets": [ + ["id=root_relyingPartyOverrides_CustomLong", "id"], + ["css=#root_relyingPartyOverrides_CustomLong", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomLong']", "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": "999999999999999999" + }, { + "id": "37c4dbf2-ab50-4457-9815-66aecaf1fcc3", + "comment": "", + "command": "click", + "target": "css=.btn-info", + "targets": [ + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "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": "" + }, { + "id": "3efd1f38-d283-467f-ba12-6ca7b823cd82", + "comment": "", + "command": "waitForElementVisible", + "target": "css=.mx-4", + "targets": [], + "value": "30000" + }, { + "id": "2e53cc6a-1d1c-4fbf-8306-4f22a3592bb2", + "comment": "", + "command": "click", + "target": "css=.mx-4", + "targets": [ + ["css=.mx-4", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='filters']/ul/li/div/button", "xpath:idRelative"], + ["xpath=//li/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Test Filter')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "21365c88-4778-405a-94b9-527f706ca1bc", + "comment": "", + "command": "waitForElementVisible", + "target": "css=div:nth-child(1) > div:nth-child(7) .d-block:nth-child(1)", + "targets": [], + "value": "30000" + }, { + "id": "46402b0f-8b3c-459b-a325-665eafbb79f3", + "comment": "", + "command": "assertText", + "target": "css=div:nth-child(1) > div:nth-child(7) .d-block:nth-child(1)", + "targets": [ + ["css=div:nth-child(1) > div:nth-child(7) .d-block:nth-child(1)", "css:finder"], + ["xpath=//div[@id='filters']/ul/li/div[2]/section[2]/div/div[2]/div[2]/div/div[7]/div/span", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[7]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom Long Display')]", "xpath:innerText"] + ], + "value": "Custom Long Display" + }, { + "id": "3064a431-f448-44c2-bc90-1dc746bf0f83", + "comment": "", + "command": "assertText", + "target": "css=div:nth-child(1) > div:nth-child(7) .text-truncate", + "targets": [ + ["css=div:nth-child(1) > div:nth-child(7) .text-truncate", "css:finder"], + ["xpath=//div[@id='filters']/ul/li/div[2]/section[2]/div/div[2]/div[2]/div/div[7]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[7]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'999999999999999999')]", "xpath:innerText"] + ], + "value": "999999999999999999" + }, { + "id": "a59ca0ab-bc64-4b66-907f-7fcfe0941150", + "comment": "", + "command": "click", + "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": "" + }, { + "id": "fddd88ac-8224-4eeb-95c7-eedb3e2081d9", + "comment": "", + "command": "click", + "target": "id=advanced-nav-dropdown-attr", + "targets": [ + ["id=advanced-nav-dropdown-attr", "id"], + ["linkText=Custom entity attributes", "linkText"], + ["css=#advanced-nav-dropdown-attr", "css:finder"], + ["xpath=//a[contains(text(),'Custom entity attributes')]", "xpath:link"], + ["xpath=//a[@id='advanced-nav-dropdown-attr']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes')]", "xpath:href"], + ["xpath=//div[3]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Custom entity attributes')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "7ed7da2a-cd7a-481e-be05-2db15b6debc6", + "comment": "", + "command": "click", + "target": "css=.fa-trash > path", + "targets": [ + ["css=.fa-trash > path", "css:finder"] + ], + "value": "" + }, { + "id": "0fc0476f-24f1-4428-9bf0-f0937f018d89", + "comment": "", + "command": "click", + "target": "css=.btn-danger", + "targets": [ + ["css=.btn-danger", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[3]/div/div/div[3]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "e3892564-1a1b-4ee6-bbab-49d3cb3079d7", + "comment": "", + "command": "assertElementNotPresent", + "target": "css=table > tbody > tr", + "targets": [], + "value": "" + }] + }], + "suites": [{ + "id": "575d414c-556d-45f7-b2f2-c9971ad51348", + "name": "Default Suite", + "persistSession": false, + "parallel": false, + "timeout": 300, + "tests": ["4827d8a8-0f07-40ad-aab3-b4858faf45a6"] + }], + "urls": ["http://localhost:10101/"], + "plugins": [] +} \ No newline at end of file diff --git a/backend/src/integration/resources/SHIBUI-1732-5.side b/backend/src/integration/resources/SHIBUI-1732-5.side new file mode 100644 index 000000000..d63ab5568 --- /dev/null +++ b/backend/src/integration/resources/SHIBUI-1732-5.side @@ -0,0 +1,1014 @@ +{ + "id": "3200c2aa-0382-48f4-a83d-5ecbc3ebdf29", + "version": "2.0", + "name": "SHIBUI-1732-5", + "url": "http://localhost:10101", + "tests": [{ + "id": "4827d8a8-0f07-40ad-aab3-b4858faf45a6", + "name": "SHIBUI-1732-5", + "commands": [{ + "id": "69a71870-d55c-42d1-80dd-493c28479b98", + "comment": "", + "command": "open", + "target": "/login", + "targets": [], + "value": "" + }, { + "id": "7962ad24-0a23-4693-b19c-1c8fd5f263ea", + "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": "03540e0d-6f3b-4ddc-9236-908402a9c23f", + "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": "473a14ad-593f-4d8f-b41f-7b1af3d7059d", + "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": "da7d071b-42d1-44eb-8937-916993bd1ba4", + "comment": "", + "command": "waitForElementVisible", + "target": "id=advanced-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "fe43133b-346d-4931-a8aa-5401b8bf90bb", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "dcc7311c-6448-4c6b-bd79-740b74082ef4", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "8cef2009-da1b-47d9-bd42-1802016e92bd", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "83d61f40-9fb9-49db-a15a-3cbd4c50187b", + "comment": "", + "command": "click", + "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": "" + }, { + "id": "b1ac8d53-da06-41c2-8235-65cf47a2de24", + "comment": "", + "command": "click", + "target": "id=advanced-nav-dropdown-attr", + "targets": [ + ["id=advanced-nav-dropdown-attr", "id"], + ["linkText=Custom entity attributes", "linkText"], + ["css=#advanced-nav-dropdown-attr", "css:finder"], + ["xpath=//a[contains(text(),'Custom entity attributes')]", "xpath:link"], + ["xpath=//a[@id='advanced-nav-dropdown-attr']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes')]", "xpath:href"], + ["xpath=//div[3]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Custom entity attributes')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "81b10e17-3858-4b15-a9c0-18aa7a5e0002", + "comment": "", + "command": "click", + "target": "linkText=Add new attribute", + "targets": [ + ["linkText=Add new attribute", "linkText"], + ["css=.btn-success", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes/new')]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'  Add new attribute')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "96684889-dfd2-4176-8f9e-ecbda4462de4", + "comment": "", + "command": "select", + "target": "id=root_attributeType", + "targets": [], + "value": "label=Double" + }, { + "id": "6281e370-2afd-4d93-8a12-33c7013475d9", + "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/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "CustomDouble" + }, { + "id": "070a83fa-0af3-481a-9955-5781c8391273", + "comment": "", + "command": "type", + "target": "id=root_attributeFriendlyName", + "targets": [ + ["id=root_attributeFriendlyName", "id"], + ["css=#root_attributeFriendlyName", "css:finder"], + ["xpath=//input[@id='root_attributeFriendlyName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[3]/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/input", "xpath:position"] + ], + "value": "Custom Double Friendly" + }, { + "id": "edc665f4-f0df-474f-976d-57e146272cf4", + "comment": "", + "command": "type", + "target": "id=root_attributeName", + "targets": [ + ["id=root_attributeName", "id"], + ["css=#root_attributeName", "css:finder"], + ["xpath=//input[@id='root_attributeName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] + ], + "value": "Custom Double Attribute" + }, { + "id": "daa87f66-d15b-4fa1-9275-365685c44082", + "comment": "", + "command": "type", + "target": "id=root_displayName", + "targets": [ + ["id=root_displayName", "id"], + ["css=#root_displayName", "css:finder"], + ["xpath=//input[@id='root_displayName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[5]/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/input", "xpath:position"] + ], + "value": "Custom Double Display" + }, { + "id": "0a814c53-f0d0-4433-ad87-1a9b2adcfbda", + "comment": "", + "command": "type", + "target": "id=root_helpText", + "targets": [ + ["id=root_helpText", "id"], + ["css=#root_helpText", "css:finder"], + ["xpath=//input[@id='root_helpText']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[6]/div/div/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/input", "xpath:position"] + ], + "value": "Custom Double Help" + }, { + "id": "07ac5fde-f6f9-45a6-98dc-f4ccb3a6d760", + "comment": "", + "command": "type", + "target": "id=root_defaultValue", + "targets": [ + ["id=root_defaultValue", "id"], + ["css=#root_defaultValue", "css:finder"], + ["xpath=//input[@id='root_defaultValue']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/input", "xpath:position"] + ], + "value": "3.14159265359" + }, { + "id": "a862df2d-007e-43f8-bbc0-ab272d7a8c5d", + "comment": "", + "command": "click", + "target": "css=.btn-info", + "targets": [ + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "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": "f627b0cb-dc24-4b88-9751-184c938d7bbe", + "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": "53d7fe7d-74ac-4707-86e6-e6f78d3e8f0b", + "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": "75f7b792-9eae-4429-85de-d40a89f5f9c9", + "comment": "", + "command": "waitForElementEditable", + "target": "id=root_serviceProviderName", + "targets": [], + "value": "30000" + }, { + "id": "795905b8-3968-4aa6-a8a7-f5919812079e", + "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": "083df6fd-c48c-451d-abca-96427395d723", + "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": "Test" + }, { + "id": "65611032-3fa9-4a8f-9c31-80b26b3829cc", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "4b51cb3d-9345-4a00-a9d0-2c41ec7b2cfb", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "abf1cb0e-2295-4e8a-943d-944402fb9247", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "960b3089-99e7-44af-b296-75897ccc1658", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "70143276-7c73-4f48-b491-332cdbb1e13a", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "2ceeac93-2afd-466d-8e70-cc00434592d7", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "7b0a61bc-a6f9-4f1b-a27e-7995ca69fb56", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "7e4914a1-bd67-451b-8618-ec89fbbdc608", + "comment": "", + "command": "assertText", + "target": "css=.row:nth-child(6) span", + "targets": [ + ["css=.row:nth-child(6) span", "css:finder"], + ["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/label/span", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/label/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom Double Display')]", "xpath:innerText"] + ], + "value": "Custom Double Display" + }, { + "id": "1b92d3f5-b768-4ab7-9fff-9fa5751c2f1e", + "comment": "", + "command": "assertValue", + "target": "id=root_relyingPartyOverrides_CustomDouble", + "targets": [ + ["id=root_relyingPartyOverrides_CustomDouble", "id"], + ["css=#root_relyingPartyOverrides_CustomDouble", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomDouble']", "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/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/input", "xpath:position"] + ], + "value": "3.14159265359" + }, { + "id": "d2672d7e-4766-4a86-8d59-da2e209f80ae", + "comment": "", + "command": "type", + "target": "id=root_relyingPartyOverrides_CustomDouble", + "targets": [ + ["id=root_relyingPartyOverrides_CustomDouble", "id"], + ["css=#root_relyingPartyOverrides_CustomDouble", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomDouble']", "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/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "9057f67d-7fd4-4e43-bff3-93275af23a2c", + "comment": "", + "command": "type", + "target": "id=root_relyingPartyOverrides_CustomDouble", + "targets": [ + ["id=root_relyingPartyOverrides_CustomDouble", "id"], + ["css=#root_relyingPartyOverrides_CustomDouble", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomDouble']", "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/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/input", "xpath:position"] + ], + "value": "3.141592653589" + }, { + "id": "1a437ae4-8723-4257-83d5-893476bef87e", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "6f8fc7b3-a51a-4739-a204-22b0b4d15bed", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "6a2b0c7e-4629-4f02-9361-ef6afdb97227", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(8) div:nth-child(6) .d-block:nth-child(1)", + "targets": [ + ["css=.mb-4:nth-child(8) div:nth-child(6) .d-block:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[8]/div/div[2]/div[2]/div/div[6]/div/span", "xpath:idRelative"], + ["xpath=//section[8]/div/div[2]/div[2]/div/div[6]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom Double Display')]", "xpath:innerText"] + ], + "value": "Custom Double Display" + }, { + "id": "75f95b74-c4e5-49a3-858f-a516ca1ac57e", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(8) div:nth-child(6) .d-block:nth-child(2)", + "targets": [ + ["css=.mb-4:nth-child(8) div:nth-child(6) .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[8]/div/div[2]/div[2]/div/div[6]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[8]/div/div[2]/div[2]/div/div[6]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'3.141592653589')]", "xpath:innerText"] + ], + "value": "3.141592653589" + }, { + "id": "67fb1087-40ad-4d76-b8a2-bb072ccfbb37", + "comment": "", + "command": "click", + "target": "css=.save", + "targets": [ + ["css=.save", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "ae723523-eb16-4ffe-bfdb-f0cd9463d725", + "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/5f778247-65bc-47ca-a3bc-d5b21e03055f/configuration/options')]", "xpath:href"], + ["xpath=//td/a", "xpath:position"], + ["xpath=//a[contains(.,'Test')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "24edd27b-44c3-4705-ac8a-2773cd645464", + "comment": "", + "command": "waitForElementVisible", + "target": "css=.mb-4:nth-child(9) div:nth-child(6) .d-block:nth-child(1)", + "targets": [], + "value": "Custom Double Display" + }, { + "id": "bfe564c1-7a44-4e18-8e12-f9a2069ca022", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(9) div:nth-child(6) .d-block:nth-child(1)", + "targets": [ + ["css=.mb-4:nth-child(9) div:nth-child(6) .d-block:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[7]/div/div[2]/div[2]/div/div[6]/div/span", "xpath:idRelative"], + ["xpath=//section[7]/div/div[2]/div[2]/div/div[6]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom Double Display')]", "xpath:innerText"] + ], + "value": "Custom Double Display" + }, { + "id": "822de10a-24bc-45ca-a28c-242f880b7d11", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(9) div:nth-child(6) .d-block:nth-child(2)", + "targets": [ + ["css=.mb-4:nth-child(9) div:nth-child(6) .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[6]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[7]/div/div[2]/div[2]/div/div[6]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'3.141592653589')]", "xpath:innerText"] + ], + "value": "3.141592653589" + }, { + "id": "3fffd305-3e9f-4703-ab97-876a91ecafd4", + "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": "82e16795-bfc7-4934-aa44-80c1a9b80de3", + "comment": "", + "command": "click", + "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": "f1eb5d37-5ecf-4656-b388-4d68b7eac935", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" + }, { + "id": "de928b32-b59e-4837-adbd-13df2f59409e", + "comment": "", + "command": "type", + "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": "Test" + }, { + "id": "577b9b53-a904-419f-b0d8-4e899aaee297", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=FileBackedHttpMetadataResolver" + }, { + "id": "52fea50c-efa4-49c4-826b-5941886d770d", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "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": "" + }, { + "id": "9df67d22-0e6a-4005-903f-f447a3208526", + "comment": "", + "command": "waitForElementVisible", + "target": "id=root_xmlId", + "targets": [], + "value": "30000" + }, { + "id": "277d31f2-2ad0-4441-bc14-4d8a724ec465", + "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/div/form/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "1" + }, { + "id": "72d94954-4502-40d3-a183-baf62c233dbc", + "comment": "", + "command": "type", + "target": "id=root_metadataURL", + "targets": [ + ["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[2]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] + ], + "value": "https://idp.unicon.net/idp/shibboleth" + }, { + "id": "101c65ae-4cb4-4d1a-9304-32e69ac089bf", + "comment": "", + "command": "type", + "target": "id=root_backingFile", + "targets": [ + ["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[2]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] + ], + "value": "%{idp.home}/foo" + }, { + "id": "e7734f22-29c5-4e89-b9e8-1cccf5b43ffe", + "comment": "", + "command": "click", + "target": "css=.rbt-input-main", + "targets": [ + ["css=.rbt-input-main", "css:finder"], + ["xpath=//input[@value='']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div[5]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "ab704c2c-fbe5-47df-9308-bfaf6fbd1eb8", + "comment": "", + "command": "click", + "target": "id=option-selector-root_backupFileInitNextRefreshDelay-item-1", + "targets": [ + ["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": "993a07f1-e104-437b-ada5-d5132eebde1b", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "8b57c059-7124-4b65-9e8c-f9b7759efe35", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "dc2c6970-3fbd-49ad-8179-c284c3902bba", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "3097c3d8-23f8-49a8-a63f-4e71cac08541", + "comment": "", + "command": "click", + "target": "css=.save", + "targets": [ + ["css=.save", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "f375661d-be3d-451f-bb26-aa7698051c9e", + "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[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/f81901bc-a040-4b9c-afcf-85af6052dc71/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Test')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "886b9e51-b0e1-4b19-bb05-7d9b324355ef", + "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/f81901bc-a040-4b9c-afcf-85af6052dc71/filter/new')]", "xpath:href"], + ["xpath=//div[3]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Add Filter')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "a7e4f8eb-d205-417d-a172-efa3d1f1b467", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" + }, { + "id": "39db7f1a-7291-42a9-aba0-bd18e98fe676", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=EntityAttributes" + }, { + "id": "d19cb369-6c18-4a49-89c0-9b229cff7945", + "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/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "Test Filter" + }, { + "id": "90c22310-4ec3-4b9b-8de7-88be3c7ff90a", + "comment": "", + "command": "click", + "target": "id=dropdown-label.filter-target-type", + "targets": [ + ["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"] + ], + "value": "" + }, { + "id": "d4f0485a-50d2-4a08-8c15-dd4b6f82c753", + "comment": "", + "command": "click", + "target": "css=.show > .dropdown-item:nth-child(3)", + "targets": [ + ["css=.show > .dropdown-item:nth-child(3)", "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/div/div/button[3]", "xpath:idRelative"], + ["xpath=//div/button[3]", "xpath:position"], + ["xpath=//button[contains(.,'Script')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "840c2f9c-334b-4266-ace8-face5cbea382", + "comment": "", + "command": "type", + "target": "css=.npm__react-simple-code-editor__textarea", + "targets": [ + ["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[6]/div/div/div/fieldset/div/div/div[2]/div/div/div/div/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "eval(true);" + }, { + "id": "66949a0d-0a57-4723-9d17-2e10688c19bb", + "comment": "", + "command": "click", + "target": "css=.nav-link:nth-child(2)", + "targets": [ + ["css=.nav-link:nth-child(2)", "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[2]", "xpath:idRelative"], + ["xpath=//nav/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Options')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "302b95c3-ca6d-4f67-9553-d248544a121c", + "comment": "", + "command": "assertText", + "target": "css=.row:nth-child(6) span", + "targets": [ + ["css=.row:nth-child(6) span", "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[7]/div/div/div/div/div[6]/div/div/div/div/label/span", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/label/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom Double Display')]", "xpath:innerText"] + ], + "value": "Custom Double Display" + }, { + "id": "2e90554c-5f3e-42f1-a790-570adefaa4d3", + "comment": "", + "command": "assertValue", + "target": "id=root_relyingPartyOverrides_CustomDouble", + "targets": [ + ["id=root_relyingPartyOverrides_CustomDouble", "id"], + ["css=#root_relyingPartyOverrides_CustomDouble", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomDouble']", "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/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/input", "xpath:position"] + ], + "value": "3.14159265359" + }, { + "id": "a1af6029-accc-4ee7-afec-62701c42fdbe", + "comment": "", + "command": "type", + "target": "id=root_relyingPartyOverrides_CustomDouble", + "targets": [ + ["id=root_relyingPartyOverrides_CustomDouble", "id"], + ["css=#root_relyingPartyOverrides_CustomDouble", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomDouble']", "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/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "323a7b29-9328-4801-aaab-48e997163dfd", + "comment": "", + "command": "type", + "target": "id=root_relyingPartyOverrides_CustomDouble", + "targets": [ + ["id=root_relyingPartyOverrides_CustomDouble", "id"], + ["css=#root_relyingPartyOverrides_CustomDouble", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomDouble']", "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/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/div/div/input", "xpath:position"] + ], + "value": "3.141592653589" + }, { + "id": "10899fad-79d4-4114-baf5-a4461e0de78e", + "comment": "", + "command": "click", + "target": "css=.btn-info", + "targets": [ + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "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": "" + }, { + "id": "a49921eb-2666-4e50-9296-34e28b65b6f8", + "comment": "", + "command": "waitForElementVisible", + "target": "css=.mx-4", + "targets": [], + "value": "30000" + }, { + "id": "1cd7e523-3cc2-4c2f-903f-ae7ddd6cad74", + "comment": "", + "command": "click", + "target": "css=.mx-4", + "targets": [ + ["css=.mx-4", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='filters']/ul/li/div/button", "xpath:idRelative"], + ["xpath=//li/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Test Filter')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "dea11a0d-7078-437e-81db-4ceb1a61fb60", + "comment": "", + "command": "waitForElementVisible", + "target": "css=div:nth-child(1) > div:nth-child(6) > .d-flex > .d-block:nth-child(1)", + "targets": [], + "value": "30000" + }, { + "id": "692d0155-2e73-45da-ba35-180e2195045e", + "comment": "", + "command": "assertText", + "target": "css=div:nth-child(1) > div:nth-child(6) > .d-flex > .d-block:nth-child(1)", + "targets": [ + ["css=div:nth-child(1) > div:nth-child(6) > .d-flex > .d-block:nth-child(1)", "css:finder"], + ["xpath=//div[@id='filters']/ul/li/div[2]/section[2]/div/div[2]/div[2]/div/div[6]/div/span", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[6]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom Double Display')]", "xpath:innerText"] + ], + "value": "Custom Double Display" + }, { + "id": "fc1c7695-9b42-413f-9c17-a3fcce2be919", + "comment": "", + "command": "assertText", + "target": "css=div:nth-child(1) > div:nth-child(6) > .d-flex > .text-truncate", + "targets": [ + ["css=div:nth-child(1) > div:nth-child(6) > .d-flex > .text-truncate", "css:finder"], + ["xpath=//div[@id='filters']/ul/li/div[2]/section[2]/div/div[2]/div[2]/div/div[6]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[6]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'3.141592653589')]", "xpath:innerText"] + ], + "value": "3.141592653589" + }, { + "id": "a0adc0cc-1e51-46ec-b29a-652fe217933f", + "comment": "", + "command": "click", + "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": "" + }, { + "id": "56c05d81-f6d8-4665-8949-95c6ce03912d", + "comment": "", + "command": "click", + "target": "id=advanced-nav-dropdown-attr", + "targets": [ + ["id=advanced-nav-dropdown-attr", "id"], + ["linkText=Custom entity attributes", "linkText"], + ["css=#advanced-nav-dropdown-attr", "css:finder"], + ["xpath=//a[contains(text(),'Custom entity attributes')]", "xpath:link"], + ["xpath=//a[@id='advanced-nav-dropdown-attr']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes')]", "xpath:href"], + ["xpath=//div[3]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Custom entity attributes')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "fb3550b7-4deb-4119-98df-9b4b2dcd6052", + "comment": "", + "command": "click", + "target": "css=.fa-trash > path", + "targets": [ + ["css=.fa-trash > path", "css:finder"] + ], + "value": "" + }, { + "id": "ba77e20c-16e8-47cf-bc7b-b871693ebcbb", + "comment": "", + "command": "click", + "target": "css=.btn-danger", + "targets": [ + ["css=.btn-danger", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[3]/div/div/div[3]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "bea4e049-e01c-47a9-b23c-f7dd2da77d9c", + "comment": "", + "command": "assertElementNotPresent", + "target": "css=table > tbody > tr", + "targets": [], + "value": "" + }] + }], + "suites": [{ + "id": "575d414c-556d-45f7-b2f2-c9971ad51348", + "name": "Default Suite", + "persistSession": false, + "parallel": false, + "timeout": 300, + "tests": ["4827d8a8-0f07-40ad-aab3-b4858faf45a6"] + }], + "urls": ["http://localhost:10101/"], + "plugins": [] +} \ No newline at end of file diff --git a/backend/src/integration/resources/SHIBUI-1732-6.side b/backend/src/integration/resources/SHIBUI-1732-6.side new file mode 100644 index 000000000..07f534f37 --- /dev/null +++ b/backend/src/integration/resources/SHIBUI-1732-6.side @@ -0,0 +1,1025 @@ +{ + "id": "3200c2aa-0382-48f4-a83d-5ecbc3ebdf29", + "version": "2.0", + "name": "SHIBUI-1732-6", + "url": "http://localhost:10101", + "tests": [{ + "id": "4827d8a8-0f07-40ad-aab3-b4858faf45a6", + "name": "SHIBUI-1732-6", + "commands": [{ + "id": "69a71870-d55c-42d1-80dd-493c28479b98", + "comment": "", + "command": "open", + "target": "/login", + "targets": [], + "value": "" + }, { + "id": "7962ad24-0a23-4693-b19c-1c8fd5f263ea", + "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": "03540e0d-6f3b-4ddc-9236-908402a9c23f", + "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": "473a14ad-593f-4d8f-b41f-7b1af3d7059d", + "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": "da7d071b-42d1-44eb-8937-916993bd1ba4", + "comment": "", + "command": "waitForElementVisible", + "target": "id=advanced-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "fe43133b-346d-4931-a8aa-5401b8bf90bb", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "dcc7311c-6448-4c6b-bd79-740b74082ef4", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "8cef2009-da1b-47d9-bd42-1802016e92bd", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "83d61f40-9fb9-49db-a15a-3cbd4c50187b", + "comment": "", + "command": "click", + "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": "" + }, { + "id": "b1ac8d53-da06-41c2-8235-65cf47a2de24", + "comment": "", + "command": "click", + "target": "id=advanced-nav-dropdown-attr", + "targets": [ + ["id=advanced-nav-dropdown-attr", "id"], + ["linkText=Custom entity attributes", "linkText"], + ["css=#advanced-nav-dropdown-attr", "css:finder"], + ["xpath=//a[contains(text(),'Custom entity attributes')]", "xpath:link"], + ["xpath=//a[@id='advanced-nav-dropdown-attr']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes')]", "xpath:href"], + ["xpath=//div[3]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Custom entity attributes')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "81b10e17-3858-4b15-a9c0-18aa7a5e0002", + "comment": "", + "command": "click", + "target": "linkText=Add new attribute", + "targets": [ + ["linkText=Add new attribute", "linkText"], + ["css=.btn-success", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes/new')]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'  Add new attribute')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "ca42712a-bea1-43b1-a760-51758d3e59f1", + "comment": "", + "command": "select", + "target": "id=root_attributeType", + "targets": [], + "value": "label=Duration" + }, { + "id": "85d28144-e86f-4814-ae22-8cef5c0e06eb", + "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/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "CustomDuration" + }, { + "id": "c82a0d61-5cee-46c4-93ff-a8c5c01189e9", + "comment": "", + "command": "type", + "target": "id=root_attributeFriendlyName", + "targets": [ + ["id=root_attributeFriendlyName", "id"], + ["css=#root_attributeFriendlyName", "css:finder"], + ["xpath=//input[@id='root_attributeFriendlyName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[3]/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/input", "xpath:position"] + ], + "value": "Custom Duration Friendly" + }, { + "id": "ba6a3f8a-b287-4f49-90fd-e2f46a6725ae", + "comment": "", + "command": "type", + "target": "id=root_attributeName", + "targets": [ + ["id=root_attributeName", "id"], + ["css=#root_attributeName", "css:finder"], + ["xpath=//input[@id='root_attributeName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] + ], + "value": "Custom Duration Attribute" + }, { + "id": "69c03d13-96d8-4186-948a-6c42fb9885cf", + "comment": "", + "command": "type", + "target": "id=root_displayName", + "targets": [ + ["id=root_displayName", "id"], + ["css=#root_displayName", "css:finder"], + ["xpath=//input[@id='root_displayName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[5]/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/input", "xpath:position"] + ], + "value": "Custom Duration Display" + }, { + "id": "29110397-a39e-4fe7-a505-d871c464822d", + "comment": "", + "command": "type", + "target": "id=root_helpText", + "targets": [ + ["id=root_helpText", "id"], + ["css=#root_helpText", "css:finder"], + ["xpath=//input[@id='root_helpText']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[6]/div/div/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/input", "xpath:position"] + ], + "value": "Custom Duration Help" + }, { + "id": "d5f9526b-6349-41ce-b166-23254effca28", + "comment": "", + "command": "type", + "target": "id=root_defaultValue", + "targets": [ + ["id=root_defaultValue", "id"], + ["css=#root_defaultValue", "css:finder"], + ["xpath=//input[@id='root_defaultValue']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/input", "xpath:position"] + ], + "value": "P1D" + }, { + "id": "52aec06d-8979-4523-af62-b237f8d1c8fc", + "comment": "", + "command": "click", + "target": "css=.btn-info", + "targets": [ + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "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": "5064e1b2-e951-4c2c-bb23-ed41429900a0", + "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": "07a20868-9c29-4673-8185-6c1377bd9091", + "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": "f7484a9f-1528-4d71-b718-a30435f2d2ab", + "comment": "", + "command": "waitForElementEditable", + "target": "id=root_serviceProviderName", + "targets": [], + "value": "30000" + }, { + "id": "be76f509-4d80-4ac5-b557-3528b9a08faa", + "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": "ccad67d1-7302-474b-bf11-6025b96213c2", + "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": "Test" + }, { + "id": "a8117269-4297-4b2e-915d-4f00e7608044", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "c0f6ee20-b3b5-4187-9155-4bf647c31319", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "a969e2a4-2b9f-43c9-bd81-3d12df132420", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "91eedbe1-2692-4b29-b1a2-12a7f9bc5c09", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "9ea7808f-1884-48f1-befe-1c289cc1e646", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "4836fce5-8bf9-476e-b0e2-b3df5176d890", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "57954d29-9f05-436f-bc09-62559d5ac606", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "5879b13f-7e26-4d45-89a8-c5a39aaf594f", + "comment": "", + "command": "assertText", + "target": "css=.row:nth-child(4) span", + "targets": [ + ["css=.row:nth-child(4) span", "css:finder"], + ["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/label/span", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/label/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom Duration Display')]", "xpath:innerText"] + ], + "value": "Custom Duration Display" + }, { + "id": "153eb69e-0f43-42f1-aa47-27382770e4e6", + "comment": "", + "command": "assertValue", + "target": "id=root_relyingPartyOverrides_CustomDuration", + "targets": [ + ["id=root_relyingPartyOverrides_CustomDuration", "id"], + ["css=#root_relyingPartyOverrides_CustomDuration", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomDuration']", "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/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/input", "xpath:position"] + ], + "value": "P1D" + }, { + "id": "8061fb36-3323-4fa4-966f-12d6bfaa3db9", + "comment": "", + "command": "type", + "target": "id=root_relyingPartyOverrides_CustomDuration", + "targets": [ + ["id=root_relyingPartyOverrides_CustomDuration", "id"], + ["css=#root_relyingPartyOverrides_CustomDuration", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomDuration']", "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/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "76d95179-e15a-4eaa-9cfc-95930623be36", + "comment": "", + "command": "type", + "target": "id=root_relyingPartyOverrides_CustomDuration", + "targets": [ + ["id=root_relyingPartyOverrides_CustomDuration", "id"], + ["css=#root_relyingPartyOverrides_CustomDuration", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomDuration']", "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/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/input", "xpath:position"] + ], + "value": "PT30S" + }, { + "id": "9686d429-7233-4868-b1d7-1d8fa3e5fe5b", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "d3becf36-1705-4b26-950f-173194c6ae49", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "9dbbc2c1-3905-4f1b-9ccc-2fc90e706e7d", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(8) div:nth-child(4) .d-block:nth-child(1)", + "targets": [ + ["css=.mb-4:nth-child(8) div:nth-child(4) .d-block:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[8]/div/div[2]/div[2]/div/div[4]/div/span", "xpath:idRelative"], + ["xpath=//section[8]/div/div[2]/div[2]/div/div[4]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom Duration Display')]", "xpath:innerText"] + ], + "value": "Custom Duration Display" + }, { + "id": "e0fb62ed-3bc5-4877-a8b9-93efc2500cb1", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(8) div:nth-child(4) .d-block:nth-child(2)", + "targets": [ + ["css=.mb-4:nth-child(8) div:nth-child(4) .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/section[8]/div/div[2]/div[2]/div/div[4]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[8]/div/div[2]/div[2]/div/div[4]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'PT30S')]", "xpath:innerText"] + ], + "value": "PT30S" + }, { + "id": "628c8d11-580e-411b-99ed-c3c333446ff3", + "comment": "", + "command": "click", + "target": "css=.save", + "targets": [ + ["css=.save", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "2502dfa7-4dad-4cb6-8db7-8974d290753f", + "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/7265d6a2-1758-4adb-9b31-7dbc686f2230/configuration/options')]", "xpath:href"], + ["xpath=//td/a", "xpath:position"], + ["xpath=//a[contains(.,'Test')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "dbe93a59-b3ea-4fe9-a059-65161250cd42", + "comment": "", + "command": "waitForElementVisible", + "target": "css=.mb-4:nth-child(9) div:nth-child(4) .d-block:nth-child(1)", + "targets": [], + "value": "30000" + }, { + "id": "c3e9c974-dd0b-40a4-88a5-7349038b13e6", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(9) div:nth-child(4) .d-block:nth-child(1)", + "targets": [ + ["css=.mb-4:nth-child(9) div:nth-child(4) .d-block:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[7]/div/div[2]/div[2]/div/div[4]/div/span", "xpath:idRelative"], + ["xpath=//section[7]/div/div[2]/div[2]/div/div[4]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom Duration Display')]", "xpath:innerText"] + ], + "value": "Custom Duration Display" + }, { + "id": "3ae9d1b2-654a-4b73-b3d3-ce81420b860f", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(9) div:nth-child(4) .d-block:nth-child(2)", + "targets": [ + ["css=.mb-4:nth-child(9) div:nth-child(4) .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[4]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[7]/div/div[2]/div[2]/div/div[4]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'PT30S')]", "xpath:innerText"] + ], + "value": "PT30S" + }, { + "id": "7834b1f0-a5cd-413b-aad0-adc5fcfc550c", + "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": "51d55e91-1a62-4dd0-8782-09ff4b691669", + "comment": "", + "command": "click", + "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": "d21bf582-10de-4a42-8189-2470e14986a5", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" + }, { + "id": "ce7e67c9-e170-45d8-8288-4e822f77d760", + "comment": "", + "command": "type", + "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": "Test" + }, { + "id": "a26d50d7-f81f-4fbe-9942-804853b58f19", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=FileBackedHttpMetadataResolver" + }, { + "id": "d1c6cf0f-bde1-4be5-a5f1-4a6a2aa0e646", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "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": "" + }, { + "id": "036e17e5-0870-4bc5-b460-998d984a0a62", + "comment": "", + "command": "waitForElementEditable", + "target": "id=root_xmlId", + "targets": [], + "value": "30000" + }, { + "id": "0683c569-e682-436d-8dde-714972238368", + "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/div/form/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "1" + }, { + "id": "e490246d-ee50-42c8-9685-5294e3a4995c", + "comment": "", + "command": "type", + "target": "id=root_metadataURL", + "targets": [ + ["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[2]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] + ], + "value": "https://idp.unicon.net/idp/shibboleth" + }, { + "id": "dc3a02a1-269c-456c-b0ab-150107f256c1", + "comment": "", + "command": "type", + "target": "id=root_backingFile", + "targets": [ + ["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[2]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] + ], + "value": "%{idp.home}/foo" + }, { + "id": "f6fe409b-eb6d-4002-a605-65f3325fa3b7", + "comment": "", + "command": "click", + "target": "css=.rbt-input-main", + "targets": [ + ["css=.rbt-input-main", "css:finder"], + ["xpath=//input[@value='']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div[5]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "0134f9c2-3bd4-4343-980e-27086ff70e86", + "comment": "", + "command": "click", + "target": "id=option-selector-root_backupFileInitNextRefreshDelay-item-2", + "targets": [ + ["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=//div[2]/a[3]", "xpath:position"], + ["xpath=//a[contains(.,'PT1M')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "c28fa422-b6b7-4703-8b2c-1dcc96f3f761", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "3444f47a-9595-49ea-a229-25ac51087602", + "comment": "", + "command": "click", + "target": "css=.next", + "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. Metadata Filter Plugins')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "c5b7080a-2cd9-4cc6-a0ce-58b535557c99", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "fae2df12-8f1d-484a-afc1-c7de25f29c37", + "comment": "", + "command": "click", + "target": "css=.save", + "targets": [ + ["css=.save", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "82c2fb5e-2a37-454a-92a9-c8384d5404f2", + "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[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/9f14bae4-34ce-4c90-97dc-cdde858404d0/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Test')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "05b9aee1-8d93-455f-add3-af931dbf540f", + "comment": "", + "command": "waitForElementVisible", + "target": "linkText=Add Filter", + "targets": [], + "value": "30000" + }, { + "id": "db4b1d29-3ee5-44e7-8cad-a490590f9664", + "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/9f14bae4-34ce-4c90-97dc-cdde858404d0/filter/new')]", "xpath:href"], + ["xpath=//div[3]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Add Filter')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "579b994a-6366-4315-b333-f02eb99661d9", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" + }, { + "id": "2b6e0f41-63c0-417b-bf7d-0a087f6b9754", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=EntityAttributes" + }, { + "id": "02d8c072-7e8c-4b5c-beed-71d3f7bc1121", + "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/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "Test Filter" + }, { + "id": "0ac1b694-2555-479b-944c-8d0438334bf2", + "comment": "", + "command": "click", + "target": "id=dropdown-label.filter-target-type", + "targets": [ + ["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"] + ], + "value": "" + }, { + "id": "fa33520f-df7f-4874-ae59-71ecbdc38e2e", + "comment": "", + "command": "click", + "target": "css=.show > .dropdown-item:nth-child(3)", + "targets": [ + ["css=.show > .dropdown-item:nth-child(3)", "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/div/div/button[3]", "xpath:idRelative"], + ["xpath=//div/button[3]", "xpath:position"], + ["xpath=//button[contains(.,'Script')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "6ec2bce2-419a-4049-9e5b-278e30919830", + "comment": "", + "command": "type", + "target": "css=.npm__react-simple-code-editor__textarea", + "targets": [ + ["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[6]/div/div/div/fieldset/div/div/div[2]/div/div/div/div/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "eval(true);" + }, { + "id": "0be1df41-f67f-4227-b9d7-fad012cddb67", + "comment": "", + "command": "click", + "target": "css=.nav-link:nth-child(2)", + "targets": [ + ["css=.nav-link:nth-child(2)", "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[2]", "xpath:idRelative"], + ["xpath=//nav/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Options')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "90ae2137-9aa8-4084-873a-922a983becb8", + "comment": "", + "command": "assertText", + "target": "css=.row:nth-child(4) span", + "targets": [ + ["css=.row:nth-child(4) span", "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[7]/div/div/div/div/div[4]/div/div/div/div/label/span", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/label/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom Duration Display')]", "xpath:innerText"] + ], + "value": "Custom Duration Display" + }, { + "id": "13c43075-05ff-4a8d-9061-eec151898cc4", + "comment": "", + "command": "assertValue", + "target": "id=root_relyingPartyOverrides_CustomDuration", + "targets": [ + ["id=root_relyingPartyOverrides_CustomDuration", "id"], + ["css=#root_relyingPartyOverrides_CustomDuration", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomDuration']", "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/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/input", "xpath:position"] + ], + "value": "P1D" + }, { + "id": "f4b7ec03-73cb-4614-ac1f-3a6ee8518bea", + "comment": "", + "command": "type", + "target": "id=root_relyingPartyOverrides_CustomDuration", + "targets": [ + ["id=root_relyingPartyOverrides_CustomDuration", "id"], + ["css=#root_relyingPartyOverrides_CustomDuration", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomDuration']", "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/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "2bedae15-c9f2-48b2-8a9d-6bc88cdcb15d", + "comment": "", + "command": "type", + "target": "id=root_relyingPartyOverrides_CustomDuration", + "targets": [ + ["id=root_relyingPartyOverrides_CustomDuration", "id"], + ["css=#root_relyingPartyOverrides_CustomDuration", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomDuration']", "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/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/div/input", "xpath:position"] + ], + "value": "PT30S" + }, { + "id": "b9a5fbe0-af3e-46c6-afa5-514ba0c3b128", + "comment": "", + "command": "click", + "target": "css=.btn-info", + "targets": [ + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "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": "" + }, { + "id": "da319c81-0036-4558-8f23-02039e7ce7aa", + "comment": "", + "command": "waitForElementVisible", + "target": "css=.mx-4", + "targets": [], + "value": "30000" + }, { + "id": "f3aef07f-2809-4d29-bbea-f95fc728514d", + "comment": "", + "command": "click", + "target": "css=.mx-4", + "targets": [ + ["css=.mx-4", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='filters']/ul/li/div/button", "xpath:idRelative"], + ["xpath=//li/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Test Filter')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "4db073bd-d30e-4483-81b2-5c8565aec82a", + "comment": "", + "command": "waitForElementVisible", + "target": "css=.mb-4:nth-child(4) div:nth-child(4) .d-block:nth-child(1)", + "targets": [], + "value": "30000" + }, { + "id": "c0009b00-2d7d-419d-83e3-541e0406825a", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(4) div:nth-child(4) .d-block:nth-child(1)", + "targets": [ + ["css=.mb-4:nth-child(4) div:nth-child(4) .d-block:nth-child(1)", "css:finder"], + ["xpath=//div[@id='filters']/ul/li/div[2]/section[2]/div/div[2]/div[2]/div/div[4]/div/span", "xpath:idRelative"], + ["xpath=//section[2]/div/div[2]/div[2]/div/div[4]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom Duration Display')]", "xpath:innerText"] + ], + "value": "Custom Duration Display" + }, { + "id": "9a663199-4969-44fc-a876-bc38ff480a8a", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(4) div:nth-child(4) .d-block:nth-child(2)", + "targets": [ + ["css=.mb-4:nth-child(4) div:nth-child(4) .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='filters']/ul/li/div[2]/section[2]/div/div[2]/div[2]/div/div[4]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[2]/div/div[2]/div[2]/div/div[4]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'PT30S')]", "xpath:innerText"] + ], + "value": "PT30S" + }, { + "id": "759983ef-4f3b-435d-a33d-5eadd2a7a7ab", + "comment": "", + "command": "click", + "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": "" + }, { + "id": "85abec76-aea7-430f-bd58-bb5e2a721a0b", + "comment": "", + "command": "click", + "target": "id=advanced-nav-dropdown-attr", + "targets": [ + ["id=advanced-nav-dropdown-attr", "id"], + ["linkText=Custom entity attributes", "linkText"], + ["css=#advanced-nav-dropdown-attr", "css:finder"], + ["xpath=//a[contains(text(),'Custom entity attributes')]", "xpath:link"], + ["xpath=//a[@id='advanced-nav-dropdown-attr']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes')]", "xpath:href"], + ["xpath=//div[3]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Custom entity attributes')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "2671dbeb-99a3-4771-b924-34914700b451", + "comment": "", + "command": "click", + "target": "css=.text-danger", + "targets": [ + ["css=.text-danger", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div[2]/table/tbody/tr/td[5]/button", "xpath:idRelative"], + ["xpath=//td[5]/button", "xpath:position"], + ["xpath=//button[contains(.,'Delete')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "9065f099-3cc6-49ac-9f77-d1669c5fd827", + "comment": "", + "command": "click", + "target": "css=.btn-danger", + "targets": [ + ["css=.btn-danger", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[3]/div/div/div[3]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "ac50c63d-59fe-4027-9595-c23014779756", + "comment": "", + "command": "assertElementNotPresent", + "target": "css=table > tbody > tr", + "targets": [], + "value": "" + }] + }], + "suites": [{ + "id": "575d414c-556d-45f7-b2f2-c9971ad51348", + "name": "Default Suite", + "persistSession": false, + "parallel": false, + "timeout": 300, + "tests": ["4827d8a8-0f07-40ad-aab3-b4858faf45a6"] + }], + "urls": ["http://localhost:10101/"], + "plugins": [] +} \ No newline at end of file diff --git a/backend/src/integration/resources/SHIBUI-1732-7.side b/backend/src/integration/resources/SHIBUI-1732-7.side new file mode 100644 index 000000000..7a350de62 --- /dev/null +++ b/backend/src/integration/resources/SHIBUI-1732-7.side @@ -0,0 +1,990 @@ +{ + "id": "3200c2aa-0382-48f4-a83d-5ecbc3ebdf29", + "version": "2.0", + "name": "SHIBUI-1732-7", + "url": "http://localhost:10101", + "tests": [{ + "id": "4827d8a8-0f07-40ad-aab3-b4858faf45a6", + "name": "SHIBUI-1732-7", + "commands": [{ + "id": "69a71870-d55c-42d1-80dd-493c28479b98", + "comment": "", + "command": "open", + "target": "/login", + "targets": [], + "value": "" + }, { + "id": "7962ad24-0a23-4693-b19c-1c8fd5f263ea", + "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": "03540e0d-6f3b-4ddc-9236-908402a9c23f", + "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": "473a14ad-593f-4d8f-b41f-7b1af3d7059d", + "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": "da7d071b-42d1-44eb-8937-916993bd1ba4", + "comment": "", + "command": "waitForElementVisible", + "target": "id=advanced-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "fe43133b-346d-4931-a8aa-5401b8bf90bb", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "dcc7311c-6448-4c6b-bd79-740b74082ef4", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "8cef2009-da1b-47d9-bd42-1802016e92bd", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "83d61f40-9fb9-49db-a15a-3cbd4c50187b", + "comment": "", + "command": "click", + "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": "" + }, { + "id": "b1ac8d53-da06-41c2-8235-65cf47a2de24", + "comment": "", + "command": "click", + "target": "id=advanced-nav-dropdown-attr", + "targets": [ + ["id=advanced-nav-dropdown-attr", "id"], + ["linkText=Custom entity attributes", "linkText"], + ["css=#advanced-nav-dropdown-attr", "css:finder"], + ["xpath=//a[contains(text(),'Custom entity attributes')]", "xpath:link"], + ["xpath=//a[@id='advanced-nav-dropdown-attr']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes')]", "xpath:href"], + ["xpath=//div[3]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Custom entity attributes')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "81b10e17-3858-4b15-a9c0-18aa7a5e0002", + "comment": "", + "command": "click", + "target": "linkText=Add new attribute", + "targets": [ + ["linkText=Add new attribute", "linkText"], + ["css=.btn-success", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes/new')]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'  Add new attribute')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "4dc17d9e-3184-4fc2-9922-23f521771592", + "comment": "", + "command": "select", + "target": "id=root_attributeType", + "targets": [], + "value": "label=Spring Bean ID" + }, { + "id": "886a5a1b-8855-44f1-a09c-770682bc332d", + "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/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "CustomSpringBean" + }, { + "id": "292dd8e3-e3dc-4401-9a0d-61282ece3ded", + "comment": "", + "command": "type", + "target": "id=root_attributeFriendlyName", + "targets": [ + ["id=root_attributeFriendlyName", "id"], + ["css=#root_attributeFriendlyName", "css:finder"], + ["xpath=//input[@id='root_attributeFriendlyName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[3]/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/input", "xpath:position"] + ], + "value": "Custom Spring Friendly" + }, { + "id": "6954aa36-bbbe-490e-b4ed-9af78e77682a", + "comment": "", + "command": "type", + "target": "id=root_attributeName", + "targets": [ + ["id=root_attributeName", "id"], + ["css=#root_attributeName", "css:finder"], + ["xpath=//input[@id='root_attributeName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] + ], + "value": "Custom Spring Attribute" + }, { + "id": "e8767e38-8a5b-4e96-9105-94703247c7c6", + "comment": "", + "command": "type", + "target": "id=root_displayName", + "targets": [ + ["id=root_displayName", "id"], + ["css=#root_displayName", "css:finder"], + ["xpath=//input[@id='root_displayName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[5]/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/input", "xpath:position"] + ], + "value": "Custom Spring Display" + }, { + "id": "ff8d71a1-4247-4385-864f-a618a79da6aa", + "comment": "", + "command": "type", + "target": "id=root_helpText", + "targets": [ + ["id=root_helpText", "id"], + ["css=#root_helpText", "css:finder"], + ["xpath=//input[@id='root_helpText']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div[6]/div/div/input", "xpath:idRelative"], + ["xpath=//div[6]/div/div/input", "xpath:position"] + ], + "value": "Custom Spring Help" + }, { + "id": "fe67d60a-a1fd-4a8e-a154-6a145270107d", + "comment": "", + "command": "type", + "target": "id=root_defaultValue", + "targets": [ + ["id=root_defaultValue", "id"], + ["css=#root_defaultValue", "css:finder"], + ["xpath=//input[@id='root_defaultValue']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/input", "xpath:position"] + ], + "value": "Custom Spring Bean Default" + }, { + "id": "7b3dfd6a-3a83-448d-a20f-5c6bfa998f4b", + "comment": "", + "command": "click", + "target": "css=.btn-info", + "targets": [ + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "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": "5f50c31e-3cf0-4505-a131-fe161150d5dd", + "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": "6ac32c5e-e5c3-45da-9ab7-9fda9f1f8505", + "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": "7a7e99ff-3726-493d-8e86-a24329bcfffb", + "comment": "", + "command": "waitForElementEditable", + "target": "id=root_serviceProviderName", + "targets": [], + "value": "30000" + }, { + "id": "abe3a828-51a0-4fd7-b420-edb5448a702b", + "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": "7c009d51-1a67-46a6-90c6-a09483fd6976", + "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": "Test" + }, { + "id": "aecc893c-45c4-4851-866a-e73117647a4b", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "466814b6-64e3-4067-817c-e518a5da3cff", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "73e88153-982c-4332-a59e-34d72ed1cee5", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "fd470abf-cd53-4001-b973-e82e32063ad8", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "7141aa53-e57b-46ed-92d9-8cf5d12108dc", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "e8b45020-6fe3-464a-ad9a-28a35f177d25", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "f3106f77-bcee-4a96-853f-51ab8919cbf9", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "b5aaed88-02ef-49b7-93fb-55c179ae27c1", + "comment": "", + "command": "assertText", + "target": "css=.row:nth-child(9) span", + "targets": [ + ["css=.row:nth-child(9) span", "css:finder"], + ["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/label/span", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/label/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom Spring Display')]", "xpath:innerText"] + ], + "value": "Custom Spring Display" + }, { + "id": "d8566e2f-42a7-43dd-9436-0fd2a14d2fee", + "comment": "", + "command": "assertValue", + "target": "id=root_relyingPartyOverrides_CustomSpringBean", + "targets": [ + ["id=root_relyingPartyOverrides_CustomSpringBean", "id"], + ["css=#root_relyingPartyOverrides_CustomSpringBean", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomSpringBean']", "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/input", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/input", "xpath:position"] + ], + "value": "Custom Spring Bean Default" + }, { + "id": "db227cf5-2ff1-4d62-8628-af32947db88a", + "comment": "", + "command": "type", + "target": "id=root_relyingPartyOverrides_CustomSpringBean", + "targets": [ + ["id=root_relyingPartyOverrides_CustomSpringBean", "id"], + ["css=#root_relyingPartyOverrides_CustomSpringBean", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomSpringBean']", "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/input", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "62cb0e01-d483-47a7-bb25-efbc7d1c5b02", + "comment": "", + "command": "type", + "target": "id=root_relyingPartyOverrides_CustomSpringBean", + "targets": [ + ["id=root_relyingPartyOverrides_CustomSpringBean", "id"], + ["css=#root_relyingPartyOverrides_CustomSpringBean", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomSpringBean']", "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/input", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/input", "xpath:position"] + ], + "value": "Custom Spring Bean Default Edited" + }, { + "id": "bed27bec-590a-4b06-810d-16fd6d8ffcf4", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "e6ea5ba8-6e68-41e9-a347-9613fecc85a2", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "7ff95520-f777-425b-9887-bb7fd369ba3d", + "comment": "", + "command": "click", + "target": "css=.save", + "targets": [ + ["css=.save", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "ab0cc63c-2c42-4889-812a-5f0fa9794978", + "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/6701632b-6b28-4b80-a204-6a44bc03635b/configuration/options')]", "xpath:href"], + ["xpath=//td/a", "xpath:position"], + ["xpath=//a[contains(.,'Test')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "e888dee8-ae1c-4abe-884f-08829c3767b9", + "comment": "", + "command": "waitForElementVisible", + "target": "css=div:nth-child(9) .d-block:nth-child(1)", + "targets": [], + "value": "30000" + }, { + "id": "fe8b707d-37b1-4369-8f0f-574edbdec412", + "comment": "", + "command": "assertText", + "target": "css=div:nth-child(9) .d-block:nth-child(1)", + "targets": [ + ["css=div:nth-child(9) .d-block:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[7]/div/div[2]/div[2]/div/div[9]/div/span", "xpath:idRelative"], + ["xpath=//div[9]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom Spring Display')]", "xpath:innerText"] + ], + "value": "Custom Spring Display" + }, { + "id": "3846ad98-da0d-4b51-abda-4c06225033c2", + "comment": "", + "command": "assertText", + "target": "css=div:nth-child(9) .text-truncate", + "targets": [ + ["css=div:nth-child(9) .text-truncate", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[7]/div/div[2]/div[2]/div/div[9]/div/span[2]", "xpath:idRelative"], + ["xpath=//div[9]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'Custom Spring Bean Default Edited')]", "xpath:innerText"] + ], + "value": "Custom Spring Bean Default Edited" + }, { + "id": "fb34ed37-b110-4ea7-995c-8175ea338546", + "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": "f9ceeb40-0f28-48ed-ad34-9682af2ceae1", + "comment": "", + "command": "click", + "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": "7fe31c1d-c92f-4f9a-9f88-aa15dab8e55c", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" + }, { + "id": "86016caf-74c3-4134-8481-0388310aabcf", + "comment": "", + "command": "type", + "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": "Test" + }, { + "id": "f26372d3-0701-4cc3-9746-8f96175686e6", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=FileBackedHttpMetadataResolver" + }, { + "id": "792b87d7-44cb-4d46-ad30-ead07f1b2613", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "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": "" + }, { + "id": "a638959e-a5af-479b-a799-5f4d11ae922d", + "comment": "", + "command": "waitForElementEditable", + "target": "id=root_xmlId", + "targets": [], + "value": "30000" + }, { + "id": "549c5964-7180-485d-bbfe-773816aa84fc", + "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/div/form/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "1" + }, { + "id": "bdf100aa-ec80-45af-973d-a4d047b555a7", + "comment": "", + "command": "type", + "target": "id=root_metadataURL", + "targets": [ + ["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[2]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] + ], + "value": "https://idp.unicon.net/idp/shibboleth" + }, { + "id": "c6cbfc9c-0221-4735-b76b-14173b5bb89b", + "comment": "", + "command": "type", + "target": "id=root_backingFile", + "targets": [ + ["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[2]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] + ], + "value": "%{idp.home}/foo" + }, { + "id": "4818c54c-8d45-442b-9262-01310ba1272f", + "comment": "", + "command": "click", + "target": "css=.rbt-input-main", + "targets": [ + ["css=.rbt-input-main", "css:finder"], + ["xpath=//input[@value='']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div[5]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "67a3627d-6562-455b-aa32-b5fc8a71162e", + "comment": "", + "command": "click", + "target": "id=option-selector-root_backupFileInitNextRefreshDelay-item-1", + "targets": [ + ["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": "f9ffea74-5507-4a31-a571-6bd128d0576c", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "9c97dced-df49-4064-a180-f180795f570f", + "comment": "", + "command": "click", + "target": "css=.next", + "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. Metadata Filter Plugins')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "a9935afc-4756-4caf-91f3-211e5f5fe37b", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "e4c660f0-638a-46f7-a3a0-8cfe81944d1e", + "comment": "", + "command": "click", + "target": "css=.save", + "targets": [ + ["css=.save", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "a29860c0-7590-484d-b9f5-0ba20e3b9728", + "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[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/c0e72175-7e5c-44e4-9218-23743def626c/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Test')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "7e03a60c-9e63-43ba-8456-80b6e76f7d2b", + "comment": "", + "command": "waitForElementVisible", + "target": "linkText=Add Filter", + "targets": [], + "value": "30000" + }, { + "id": "72d7a5f0-9802-426a-bb15-6236f78d581b", + "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/c0e72175-7e5c-44e4-9218-23743def626c/filter/new')]", "xpath:href"], + ["xpath=//div[3]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Add Filter')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "69200518-82d3-42cb-9ade-dc2827c3db19", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" + }, { + "id": "f56a4688-be78-4eee-874c-54cd974beec7", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=EntityAttributes" + }, { + "id": "e0ee635a-1690-44d3-89e1-5494f8144e2c", + "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/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "Test Filter" + }, { + "id": "b19a550d-ba46-4f25-8b0e-d23c361839e3", + "comment": "", + "command": "click", + "target": "id=dropdown-label.filter-target-type", + "targets": [ + ["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"] + ], + "value": "" + }, { + "id": "96f88efb-2161-4169-a368-285fb45d9080", + "comment": "", + "command": "click", + "target": "css=.show > .dropdown-item:nth-child(3)", + "targets": [ + ["css=.show > .dropdown-item:nth-child(3)", "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/div/div/button[3]", "xpath:idRelative"], + ["xpath=//div/button[3]", "xpath:position"], + ["xpath=//button[contains(.,'Script')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "a52d428d-52d7-41af-a421-ad05fa0083a6", + "comment": "", + "command": "type", + "target": "css=.npm__react-simple-code-editor__textarea", + "targets": [ + ["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[6]/div/div/div/fieldset/div/div/div[2]/div/div/div/div/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "eval(true);" + }, { + "id": "f4a133b5-010b-4585-a549-8c048b6a5372", + "comment": "", + "command": "click", + "target": "css=.nav-link:nth-child(2)", + "targets": [ + ["css=.nav-link:nth-child(2)", "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[2]", "xpath:idRelative"], + ["xpath=//nav/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Options')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "fbef6ebb-1f20-4dcd-a907-735e4113c382", + "comment": "", + "command": "assertText", + "target": "css=.row:nth-child(9) span", + "targets": [ + ["css=.row:nth-child(9) span", "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[7]/div/div/div/div/div[9]/div/div/div/div/label/span", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/label/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom Spring Display')]", "xpath:innerText"] + ], + "value": "Custom Spring Display" + }, { + "id": "fa5519d9-8ffd-47d8-8800-f0c70e62981a", + "comment": "", + "command": "assertValue", + "target": "id=root_relyingPartyOverrides_CustomSpringBean", + "targets": [ + ["id=root_relyingPartyOverrides_CustomSpringBean", "id"], + ["css=#root_relyingPartyOverrides_CustomSpringBean", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomSpringBean']", "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/input", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/input", "xpath:position"] + ], + "value": "Custom Spring Bean Default" + }, { + "id": "7d8b2b42-ff07-478b-8a00-e330d96db885", + "comment": "", + "command": "type", + "target": "id=root_relyingPartyOverrides_CustomSpringBean", + "targets": [ + ["id=root_relyingPartyOverrides_CustomSpringBean", "id"], + ["css=#root_relyingPartyOverrides_CustomSpringBean", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomSpringBean']", "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/input", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "260e1a3a-a42f-4130-aff3-615fb0cb06b6", + "comment": "", + "command": "type", + "target": "id=root_relyingPartyOverrides_CustomSpringBean", + "targets": [ + ["id=root_relyingPartyOverrides_CustomSpringBean", "id"], + ["css=#root_relyingPartyOverrides_CustomSpringBean", "css:finder"], + ["xpath=//input[@id='root_relyingPartyOverrides_CustomSpringBean']", "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/input", "xpath:idRelative"], + ["xpath=//div[9]/div/div/div/div/input", "xpath:position"] + ], + "value": "Custom Spring Bean Default Edited" + }, { + "id": "4a64924e-3982-4b03-86ba-aa0bcd77b6da", + "comment": "", + "command": "click", + "target": "css=.btn-info", + "targets": [ + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "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": "" + }, { + "id": "aada51c6-40d9-434f-ad43-fbd05c31e901", + "comment": "", + "command": "waitForElementVisible", + "target": "css=.mx-4", + "targets": [], + "value": "30000" + }, { + "id": "cf60a164-174f-4319-9c28-7c48f5209649", + "comment": "", + "command": "click", + "target": "css=.mx-4", + "targets": [ + ["css=.mx-4", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='filters']/ul/li/div/button", "xpath:idRelative"], + ["xpath=//li/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Test Filter')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "47f8360f-1b8d-4e0f-9792-e51d34dbee95", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(4) div:nth-child(9) .d-block:nth-child(1)", + "targets": [ + ["css=.mb-4:nth-child(4) div:nth-child(9) .d-block:nth-child(1)", "css:finder"], + ["xpath=//div[@id='filters']/ul/li/div[2]/section[2]/div/div[2]/div[2]/div/div[9]/div/span", "xpath:idRelative"], + ["xpath=//section[2]/div/div[2]/div[2]/div/div[9]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'Custom Spring Display')]", "xpath:innerText"] + ], + "value": "Custom Spring Display" + }, { + "id": "93126f8b-823c-4b79-87c8-df32ece80ad6", + "comment": "", + "command": "assertText", + "target": "css=.mb-4:nth-child(4) div:nth-child(9) .d-block:nth-child(2)", + "targets": [ + ["css=.mb-4:nth-child(4) div:nth-child(9) .d-block:nth-child(2)", "css:finder"], + ["xpath=//div[@id='filters']/ul/li/div[2]/section[2]/div/div[2]/div[2]/div/div[9]/div/span[2]", "xpath:idRelative"], + ["xpath=//section[2]/div/div[2]/div[2]/div/div[9]/div/span[2]", "xpath:position"], + ["xpath=//span[contains(.,'Custom Spring Bean Default Edited')]", "xpath:innerText"] + ], + "value": "Custom Spring Bean Default Edited" + }, { + "id": "d0e47cad-e9f7-4045-9d1c-f12f89b8ef44", + "comment": "", + "command": "click", + "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": "" + }, { + "id": "8862f798-6226-4783-bbe6-c3f9d0fec3f0", + "comment": "", + "command": "click", + "target": "id=advanced-nav-dropdown-attr", + "targets": [ + ["id=advanced-nav-dropdown-attr", "id"], + ["linkText=Custom entity attributes", "linkText"], + ["css=#advanced-nav-dropdown-attr", "css:finder"], + ["xpath=//a[contains(text(),'Custom entity attributes')]", "xpath:link"], + ["xpath=//a[@id='advanced-nav-dropdown-attr']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes')]", "xpath:href"], + ["xpath=//div[3]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Custom entity attributes')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "b6af6247-04f0-4e68-a53f-77c314164a44", + "comment": "", + "command": "click", + "target": "css=.fa-trash > path", + "targets": [ + ["css=.fa-trash > path", "css:finder"] + ], + "value": "" + }, { + "id": "2b25e28a-c3cf-42c9-bae2-3820592a35cc", + "comment": "", + "command": "click", + "target": "css=.btn-danger", + "targets": [ + ["css=.btn-danger", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[3]/div/div/div[3]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "fafdd055-7481-446d-b101-9f3edcc4dce9", + "comment": "", + "command": "assertElementNotPresent", + "target": "css=table > tbody > tr", + "targets": [], + "value": "" + }] + }], + "suites": [{ + "id": "575d414c-556d-45f7-b2f2-c9971ad51348", + "name": "Default Suite", + "persistSession": false, + "parallel": false, + "timeout": 300, + "tests": ["4827d8a8-0f07-40ad-aab3-b4858faf45a6"] + }], + "urls": ["http://localhost:10101/"], + "plugins": [] +} \ No newline at end of file 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 new file mode 100644 index 000000000..bbf69eeab --- /dev/null +++ b/backend/src/integration/resources/SHIBUI-1744-1.side @@ -0,0 +1,484 @@ +{ + "id": "46b0fc77-1920-4123-93cc-f5a9f9c7f3ee", + "version": "2.0", + "name": "SHIBUI-1744-1", + "url": "http://localhost:10101", + "tests": [{ + "id": "6700238c-68c3-4875-aca6-5345b9035043", + "name": "SHIBUI-1744-1", + "commands": [{ + "id": "8e5baaed-149f-4825-87d1-b74ad5207af5", + "comment": "", + "command": "open", + "target": "/login", + "targets": [], + "value": "" + }, { + "id": "312af240-96f2-432e-9dd9-ad28dbacce9e", + "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": "225e1245-05be-479d-ae5a-47647f2423c7", + "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": "284ce82d-3b9e-4306-a8af-f6aa1f904677", + "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": "dd7a4d65-bc3c-4f00-9995-984b5e67cbc3", + "comment": "", + "command": "waitForElementVisible", + "target": "id=advanced-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "b88f58fc-bd07-4b76-9a8a-08e7a13030e8", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "8ac3a399-aae1-4d46-93d4-51944effada6", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "7f9552d9-47f0-470a-9ebb-0150ac230d85", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "81d8d630-f07c-4582-a5f6-f871d282ff8b", + "comment": "", + "command": "click", + "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": "" + }, { + "id": "8e03032c-223a-41be-add6-83e7f27d6f7c", + "comment": "", + "command": "click", + "target": "id=advanced-nav-dropdown-bundles", + "targets": [ + ["id=advanced-nav-dropdown-bundles", "id"], + ["linkText=Attribute bundles", "linkText"], + ["css=#advanced-nav-dropdown-bundles", "css:finder"], + ["xpath=//a[contains(text(),'Attribute bundles')]", "xpath:link"], + ["xpath=//a[@id='advanced-nav-dropdown-bundles']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes/bundles')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Attribute bundles')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "35fe0df3-3237-4e0c-b552-e3596dbb61b8", + "comment": "", + "command": "click", + "target": "linkText=Add bundle", + "targets": [ + ["linkText=Add bundle", "linkText"], + ["css=.btn-success", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes/bundles/new')]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'  Add bundle')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "f0ee699d-0fcd-499d-a05a-9a624e67180e", + "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/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "Bundle 1" + }, { + "id": "1d30d160-e4cd-43fc-ad02-97cff7e6f236", + "comment": "", + "command": "click", + "target": "css=#root_attributes_0", + "targets": [ + ["css=tr:nth-child(1) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "6b9f6181-15aa-4a27-937e-77924b9ca4d2", + "comment": "", + "command": "click", + "target": "css=#root_attributes_2", + "targets": [ + ["css=tr:nth-child(3) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[3]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[3]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "69d2c0f6-15b1-42c9-bbef-15c83e134131", + "comment": "", + "command": "click", + "target": "css=#root_attributes_4", + "targets": [ + ["css=tr:nth-child(5) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[5]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[5]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "88b8795d-d2a6-430d-83a8-ed469cd3db89", + "comment": "", + "command": "click", + "target": "css=#root_attributes_6", + "targets": [ + ["css=tr:nth-child(5) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[5]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[5]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "6877d801-df03-4bce-b41b-fde47fd8b7ea", + "comment": "", + "command": "click", + "target": "css=#root_attributes_8", + "targets": [ + ["css=tr:nth-child(9) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[9]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[9]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "16872e65-8f3a-4421-a32c-7737d83e7c16", + "comment": "", + "command": "click", + "target": "css=#root_attributes_10", + "targets": [ + ["css=tr:nth-child(11) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[11]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[11]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "2ecac668-119c-4708-a88f-999fdec36d73", + "comment": "", + "command": "click", + "target": "css=.btn-info", + "targets": [ + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/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": "d0959425-5169-4579-8d17-a22b2273d1ea", + "comment": "", + "command": "pause", + "target": "2000", + "targets": [], + "value": "" + }, { + "id": "6ad79c13-1e24-4a8e-a4d4-ca76b72c77a8", + "comment": "", + "command": "assertText", + "target": "css=td:nth-child(1)", + "targets": [ + ["css=td:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div/div[2]/div[2]/table/tbody/tr/td", "xpath:idRelative"], + ["xpath=//td", "xpath:position"], + ["xpath=//td[contains(.,'Bundle 1')]", "xpath:innerText"] + ], + "value": "Bundle 1" + }, { + "id": "a7cd7ab2-3309-4ca2-ae1b-0b566c161582", + "comment": "", + "command": "click", + "target": "css=.fa-edit", + "targets": [ + ["css=.fa-edit", "css:finder"] + ], + "value": "" + }, { + "id": "a225ba76-2795-4395-b004-27629b49ebff", + "comment": "", + "command": "assertChecked", + "target": "css=#root_attributes_0", + "targets": [], + "value": "" + }, { + "id": "93974fdc-1b6a-4c97-94df-6dc7fdcc8ed8", + "comment": "", + "command": "assertChecked", + "target": "css=#root_attributes_2", + "targets": [ + ["css=tr:nth-child(3) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[3]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[3]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "b874734d-53d7-449c-acd9-206c95665d40", + "comment": "", + "command": "assertChecked", + "target": "css=#root_attributes_4", + "targets": [ + ["css=tr:nth-child(3) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[3]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[3]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "bdf4b8a9-d7bb-4b1b-aa58-c2c85bbf869f", + "comment": "", + "command": "assertChecked", + "target": "css=#root_attributes_6", + "targets": [ + ["css=tr:nth-child(3) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[3]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[3]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "656b1af9-0356-401b-b0cf-a046b3121b09", + "comment": "", + "command": "assertChecked", + "target": "css=#root_attributes_8", + "targets": [ + ["css=tr:nth-child(3) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[3]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[3]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "34a9dc70-f8f2-4247-85b0-f2e8100c59df", + "comment": "", + "command": "assertChecked", + "target": "css=#root_attributes_10", + "targets": [ + ["css=tr:nth-child(3) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[3]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[3]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "789c4351-3989-4519-b45a-78fcf83bae74", + "comment": "", + "command": "type", + "target": "id=root_name", + "targets": [], + "value": "" + }, { + "id": "0c4dbdcd-2687-45c3-bf1f-3699b579ffe0", + "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/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "Bundle 1 Edited" + }, { + "id": "9abad691-e8cf-47d5-ba2a-99b0f654c0e0", + "comment": "", + "command": "click", + "target": "css=#root_attributes_2", + "targets": [ + ["css=tr:nth-child(3) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[3]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[3]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "d547bab8-df07-457b-aa7c-263ca89e714c", + "comment": "", + "command": "click", + "target": "css=#root_attributes_6", + "targets": [ + ["css=tr:nth-child(7) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[7]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[7]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "bc6858f6-01a3-497b-bb2c-8426534d776b", + "comment": "", + "command": "click", + "target": "css=#root_attributes_10", + "targets": [ + ["css=tr:nth-child(11) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[11]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[11]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "2c68f4dc-0040-4385-b960-934bc12c6806", + "comment": "", + "command": "click", + "target": "css=.btn-info", + "targets": [ + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/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": "9e6dbe30-d5d2-4f34-a78a-7c6eff257bd4", + "comment": "", + "command": "waitForElementVisible", + "target": "css=td:nth-child(1)", + "targets": [], + "value": "30000" + }, { + "id": "05fce0b8-196f-4cae-bd1b-ab15b885cbe2", + "comment": "", + "command": "assertText", + "target": "css=td:nth-child(1)", + "targets": [ + ["css=td:nth-child(1)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div/div[2]/div[2]/table/tbody/tr/td", "xpath:idRelative"], + ["xpath=//td", "xpath:position"], + ["xpath=//td[contains(.,'Bundle 1 Edited')]", "xpath:innerText"] + ], + "value": "Bundle 1 Edited" + }, { + "id": "8ea152c6-4509-4969-b499-95272cb6b92e", + "comment": "", + "command": "click", + "target": "css=.fa-edit", + "targets": [ + ["css=.fa-edit", "css:finder"] + ], + "value": "" + }, { + "id": "9152c2be-bf07-4807-a068-7e779abcf86d", + "comment": "", + "command": "assertChecked", + "target": "css=#root_attributes_0", + "targets": [], + "value": "" + }, { + "id": "042857bd-6b10-4ff3-9544-04465ae664ab", + "comment": "", + "command": "assertChecked", + "target": "css=#root_attributes_4", + "targets": [ + ["css=tr:nth-child(3) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[3]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[3]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "223e1893-0a61-440f-998e-80e8d299a7b1", + "comment": "", + "command": "assertChecked", + "target": "css=#root_attributes_8", + "targets": [ + ["css=tr:nth-child(3) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[3]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[3]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "d60b6a27-5aba-4a2e-8252-7ebe6eb4dc58", + "comment": "", + "command": "click", + "target": "css=.btn-secondary", + "targets": [ + ["css=.btn-secondary", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div/button[2]", "xpath:idRelative"], + ["xpath=//button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Cancel')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "f87e8057-b3c1-4d9a-92bd-1899680f4cbc", + "comment": "", + "command": "click", + "target": "css=.fa-trash > path", + "targets": [ + ["css=.fa-trash > path", "css:finder"] + ], + "value": "" + }, { + "id": "ad356bcf-d8d1-4668-bd7b-12b5d005d669", + "comment": "", + "command": "click", + "target": "css=.btn-danger", + "targets": [ + ["css=.btn-danger", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[3]/div/div/div[3]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "fa6844d2-358d-4142-a96b-9bf6c04858e9", + "comment": "", + "command": "verifyElementPresent", + "target": "xpath=//div[@role=\"alert\" and contains(., \"Bundle has been deleted.\")]", + "targets": [], + "value": "" + }] + }], + "suites": [{ + "id": "f081803d-04c9-4aea-bd5b-765885cb4739", + "name": "Default Suite", + "persistSession": false, + "parallel": false, + "timeout": 300, + "tests": ["6700238c-68c3-4875-aca6-5345b9035043"] + }], + "urls": ["http://localhost:10101/"], + "plugins": [] +} \ No newline at end of file diff --git a/backend/src/integration/resources/SHIBUI-1744-2.side b/backend/src/integration/resources/SHIBUI-1744-2.side new file mode 100644 index 000000000..2bc9dc4e1 --- /dev/null +++ b/backend/src/integration/resources/SHIBUI-1744-2.side @@ -0,0 +1,656 @@ +{ + "id": "3616248b-1c79-48db-8d12-c8fac193e50c", + "version": "2.0", + "name": "SHIBUI-1744-2", + "url": "http://localhost:10101", + "tests": [{ + "id": "d785839e-2982-4464-85ed-d529b3c0657a", + "name": "SHIBUI-1744-2", + "commands": [{ + "id": "bcf63821-1c37-41da-a412-70b3d3f6d7c3", + "comment": "", + "command": "open", + "target": "/login", + "targets": [], + "value": "" + }, { + "id": "1ab6b03b-557c-4f24-bd85-b73eb9c8b799", + "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": "284cb3be-f30b-4910-b9cd-37f32bec16b2", + "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": "d0ec187e-aa72-43d5-bb44-bbdb41337128", + "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": "e62af22d-1d27-45e1-85f5-0cb467e71df4", + "comment": "", + "command": "waitForElementVisible", + "target": "id=advanced-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "8096864b-f997-4d71-a579-d5170f27fdea", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "6033215d-28e8-4ce1-9558-8e42cef9b345", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "3429ed77-d2d9-4d10-af98-36f875be06ed", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "29540d39-cf80-4397-8db9-5405a543106e", + "comment": "", + "command": "click", + "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": "" + }, { + "id": "0a1d91f2-2265-4854-8bc9-329c6a65c0df", + "comment": "", + "command": "click", + "target": "id=advanced-nav-dropdown-bundles", + "targets": [ + ["id=advanced-nav-dropdown-bundles", "id"], + ["linkText=Attribute bundles", "linkText"], + ["css=#advanced-nav-dropdown-bundles", "css:finder"], + ["xpath=//a[contains(text(),'Attribute bundles')]", "xpath:link"], + ["xpath=//a[@id='advanced-nav-dropdown-bundles']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes/bundles')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Attribute bundles')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "1e764021-9ccf-46aa-b472-4ea81f22a68e", + "comment": "", + "command": "click", + "target": "linkText=Add bundle", + "targets": [ + ["linkText=Add bundle", "linkText"], + ["css=.btn-success", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes/bundles/new')]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'  Add bundle')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "65bd6d70-1232-497b-83c4-960910e8966f", + "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/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "" + }, { + "id": "1c563723-ad9a-4cd5-a4fa-7d291ed9edae", + "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/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "Test Bundle" + }, { + "id": "f72c10ce-2902-4dee-bb30-80f9f47ea44c", + "comment": "", + "command": "click", + "target": "css=#root_attributes_2", + "targets": [ + ["css=tr:nth-child(3) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[3]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[3]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "35263126-51a0-4d7e-80a4-b820da2936d7", + "comment": "", + "command": "click", + "target": "css=#root_attributes_3", + "targets": [ + ["css=tr:nth-child(4) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[4]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[4]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "e0349ad1-44e0-4674-ad46-5d41e0518314", + "comment": "", + "command": "click", + "target": "css=#root_attributes_4", + "targets": [ + ["css=tr:nth-child(5) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[5]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[5]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "1bc79128-62d6-43f9-8349-e27db62b3d87", + "comment": "", + "command": "click", + "target": "css=.btn-info", + "targets": [ + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/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": "4f0b2e6d-cb4f-4c1b-ae76-7b5e6bb2502c", + "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": "c1085b25-7f35-459e-9ff7-739159e425b3", + "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": "13dfe241-089e-4d46-a477-f90b0eefb77d", + "comment": "", + "command": "pause", + "target": "1000", + "targets": [], + "value": "" + }, { + "id": "4efe6339-8015-4dfb-896c-3613f6b7da60", + "comment": "", + "command": "waitForElementEditable", + "target": "id=root_serviceProviderName", + "targets": [], + "value": "30000" + }, { + "id": "6046353f-0e67-4de7-b4cd-7c4e86d6a7cf", + "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": "e6954887-26d0-4907-a05a-223e80e52100", + "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": "Test" + }, { + "id": "1f113531-653a-4c8d-b526-db39b4cd38d8", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "a7932ded-137d-49fa-995a-6f4c8660ce7d", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "9844cb75-96cb-45ec-af56-fbada6166651", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "2d7ab9d2-d434-418d-bd8c-bf2732fc0686", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "6d46d001-c986-4e7a-8578-54e8ace0011c", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "18c7bec1-def4-444c-957c-d6356d206f85", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "38549a11-2bbc-4c13-a2a5-4bbad1b5abf1", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "117ff672-cb22-47a5-9738-b95985efa774", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "c82be982-6551-4d50-af85-b9e87610e000", + "comment": "", + "command": "waitForElementVisible", + "target": "css=fieldset > div > button > strong", + "targets": [], + "value": "Bundle - Test Bundle" + }, { + "id": "e3b80e89-4278-4e2e-9aa4-d2cc03e86932", + "comment": "", + "command": "assertText", + "target": "css=fieldset > div > button > strong", + "targets": [ + ["css=strong", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[10]/div/div/fieldset/ul/li/strong", "xpath:idRelative"], + ["xpath=//strong", "xpath:position"], + ["xpath=//strong[contains(.,'Bundle - Test Bundle')]", "xpath:innerText"] + ], + "value": "Bundle - Test Bundle" + }, { + "id": "421fdaa5-e42b-4ba3-be22-c5697624ee34", + "comment": "", + "command": "click", + "target": "css=fieldset > div > button", + "targets": [ + ["css=.badge-light", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[10]/div/div/fieldset/div/button/span", "xpath:idRelative"], + ["xpath=//div/button/span", "xpath:position"], + ["xpath=//span[contains(.,'Select Bundle')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "6f00d279-5573-45e7-a618-35dde6433739", + "comment": "", + "command": "assertChecked", + "target": "css=#root_attributeRelease_2", + "targets": [ + ["css=tr:nth-child(3) .custom-control-label", "css:finder"], + ["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[3]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[3]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "3e4be95e-8bac-4b0f-bc52-7f76ae9e2018", + "comment": "", + "command": "assertChecked", + "target": "css=#root_attributeRelease_3", + "targets": [ + ["css=tr:nth-child(4) .custom-control-label", "css:finder"], + ["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[4]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[4]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "0515e864-1888-403c-a57d-497c778b02ef", + "comment": "", + "command": "assertChecked", + "target": "css=#root_attributeRelease_4", + "targets": [ + ["css=tr:nth-child(5) .custom-control-label", "css:finder"], + ["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[5]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[5]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "27846b08-eadf-49aa-9dab-4d421c3bbb84", + "comment": "", + "command": "assertNotChecked", + "target": "css=#root_attributeRelease_0", + "targets": [ + ["css=tr:nth-child(1) .custom-control-label", "css:finder"], + ["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/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//label", "xpath:position"] + ], + "value": "" + }, { + "id": "02cc0231-a293-4941-9a2a-56ad09989eda", + "comment": "", + "command": "assertNotChecked", + "target": "css=#root_attributeRelease_1", + "targets": [ + ["css=tr:nth-child(2) .custom-control-label", "css:finder"], + ["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[2]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[2]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "9fcfc15f-7891-4f80-8a44-1dff0f5ec9a4", + "comment": "", + "command": "assertNotChecked", + "target": "css=#root_attributeRelease_5", + "targets": [ + ["css=tr:nth-child(6) .custom-control-label", "css:finder"], + ["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[6]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[6]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "998081ad-f8d8-4060-bfc6-80e99cd40255", + "comment": "", + "command": "assertNotChecked", + "target": "css=#root_attributeRelease_6", + "targets": [ + ["css=tr:nth-child(7) .custom-control-label", "css:finder"], + ["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[7]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[7]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "92558421-b381-43fa-baac-e21c6e7520fe", + "comment": "", + "command": "assertNotChecked", + "target": "css=#root_attributeRelease_7", + "targets": [ + ["css=tr:nth-child(8) .custom-control-label", "css:finder"], + ["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[8]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[8]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "9b123534-035e-482e-9add-0db8161f6308", + "comment": "", + "command": "assertNotChecked", + "target": "css=#root_attributeRelease_8", + "targets": [ + ["css=tr:nth-child(9) .custom-control-label", "css:finder"], + ["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[9]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[9]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "c0b25e56-c086-4a55-b0ed-b92c3f299bb2", + "comment": "", + "command": "assertNotChecked", + "target": "css=#root_attributeRelease_9", + "targets": [ + ["css=tr:nth-child(10) .custom-control-label", "css:finder"], + ["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[10]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[10]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "d227964f-3876-4d60-a83b-0dc1b21727f4", + "comment": "", + "command": "assertNotChecked", + "target": "css=#root_attributeRelease_10", + "targets": [ + ["css=tr:nth-child(11) .custom-control-label", "css:finder"], + ["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[11]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[11]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "dc8a895a-d685-4d56-b273-690141abc2c7", + "comment": "", + "command": "assertNotChecked", + "target": "css=#root_attributeRelease_11", + "targets": [ + ["css=tr:nth-child(12) .custom-control-label", "css:finder"], + ["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[12]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[12]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "676f417c-a86f-461b-91f7-d5079e60dd65", + "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(.,'10. Finished!')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "65fa1a68-1f57-458a-8289-7cc50a8081ed", + "comment": "", + "command": "assertText", + "target": "css=.d-flex:nth-child(3) > .py-2 > span", + "targets": [ + ["css=.d-flex:nth-child(3) > .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[3]/div/span", "xpath:idRelative"], + ["xpath=//div[2]/div[3]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'True')]", "xpath:innerText"] + ], + "value": "True" + }, { + "id": "bfc6ef5f-aaf7-4945-bbc1-d89e95b8d3ac", + "comment": "", + "command": "assertText", + "target": "css=.d-flex:nth-child(4) > .py-2 > span", + "targets": [ + ["css=.d-flex:nth-child(4) > .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[4]/div/span", "xpath:idRelative"], + ["xpath=//div[2]/div[4]/div/span", "xpath:position"] + ], + "value": "True" + }, { + "id": "5225f1db-7bdc-432e-a422-c6684b9e8416", + "comment": "", + "command": "assertText", + "target": "css=.d-flex:nth-child(5) > .py-2 > span", + "targets": [ + ["css=.d-flex:nth-child(5) > .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[5]/div/span", "xpath:idRelative"], + ["xpath=//div[2]/div[5]/div/span", "xpath:position"] + ], + "value": "True" + }, { + "id": "2a14e2d4-31f1-4ae8-b977-b6edd94de02c", + "comment": "", + "command": "click", + "target": "css=.direction:nth-child(2)", + "targets": [ + ["css=.direction:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button/span[2]", "xpath:idRelative"], + ["xpath=//li[3]/button/span[2]", "xpath:position"] + ], + "value": "" + }, { + "id": "71ed9006-b0fe-4598-8f68-1548270dc686", + "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/a46bea29-0e2b-4aac-8f03-be7647c8c35c/configuration/options')]", "xpath:href"], + ["xpath=//td/a", "xpath:position"], + ["xpath=//a[contains(.,'Test')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "405fdd78-8a38-47d7-a123-97f6c3661ef3", + "comment": "", + "command": "waitForElementVisible", + "target": "css=.d-flex:nth-child(3) > .py-2 > span", + "targets": [], + "value": "30000" + }, { + "id": "24e0c8da-54fe-4755-964a-8ab93f1117ec", + "comment": "", + "command": "assertText", + "target": "css=.d-flex:nth-child(3) > .py-2 > span", + "targets": [ + ["css=.d-flex:nth-child(4) > .py-2 > span", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[8]/div/div[2]/div[2]/div[4]/div/span", "xpath:idRelative"], + ["xpath=//div[2]/div[4]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'True')]", "xpath:innerText"] + ], + "value": "True" + }, { + "id": "09fa0157-7e1a-4886-969e-fe9519974923", + "comment": "", + "command": "assertText", + "target": "css=.d-flex:nth-child(4) > .py-2 > span", + "targets": [ + ["css=.d-flex:nth-child(4) > .py-2 > span", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[8]/div/div[2]/div[2]/div[4]/div/span", "xpath:idRelative"], + ["xpath=//div[2]/div[4]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'True')]", "xpath:innerText"] + ], + "value": "True" + }, { + "id": "95dd6769-d8b6-4c1e-a799-fb4c083a1b43", + "comment": "", + "command": "assertText", + "target": "css=.d-flex:nth-child(5) > .py-2 > span", + "targets": [ + ["css=.d-flex:nth-child(4) > .py-2 > span", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section[8]/div/div[2]/div[2]/div[4]/div/span", "xpath:idRelative"], + ["xpath=//div[2]/div[4]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'True')]", "xpath:innerText"] + ], + "value": "True" + }] + }], + "suites": [{ + "id": "56040c8b-b45c-454e-b2ba-2a06056b397f", + "name": "Default Suite", + "persistSession": false, + "parallel": false, + "timeout": 300, + "tests": ["d785839e-2982-4464-85ed-d529b3c0657a"] + }], + "urls": ["http://localhost:10101/"], + "plugins": [] +} \ No newline at end of file diff --git a/backend/src/integration/resources/SHIBUI-1744-3.side b/backend/src/integration/resources/SHIBUI-1744-3.side new file mode 100644 index 000000000..96d28a5c4 --- /dev/null +++ b/backend/src/integration/resources/SHIBUI-1744-3.side @@ -0,0 +1,692 @@ +{ + "id": "3616248b-1c79-48db-8d12-c8fac193e50c", + "version": "2.0", + "name": "SHIBUI-1744-3", + "url": "http://localhost:10101", + "tests": [{ + "id": "d785839e-2982-4464-85ed-d529b3c0657a", + "name": "SHIBUI-1744-3", + "commands": [{ + "id": "bcf63821-1c37-41da-a412-70b3d3f6d7c3", + "comment": "", + "command": "open", + "target": "/login", + "targets": [], + "value": "" + }, { + "id": "1ab6b03b-557c-4f24-bd85-b73eb9c8b799", + "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": "284cb3be-f30b-4910-b9cd-37f32bec16b2", + "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": "d0ec187e-aa72-43d5-bb44-bbdb41337128", + "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": "03e142bc-5e17-4af1-b2a2-694fd1f71604", + "comment": "", + "command": "waitForElementVisible", + "target": "id=advanced-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "8096864b-f997-4d71-a579-d5170f27fdea", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "6033215d-28e8-4ce1-9558-8e42cef9b345", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "3429ed77-d2d9-4d10-af98-36f875be06ed", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "29540d39-cf80-4397-8db9-5405a543106e", + "comment": "", + "command": "click", + "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": "" + }, { + "id": "0a1d91f2-2265-4854-8bc9-329c6a65c0df", + "comment": "", + "command": "click", + "target": "id=advanced-nav-dropdown-bundles", + "targets": [ + ["id=advanced-nav-dropdown-bundles", "id"], + ["linkText=Attribute bundles", "linkText"], + ["css=#advanced-nav-dropdown-bundles", "css:finder"], + ["xpath=//a[contains(text(),'Attribute bundles')]", "xpath:link"], + ["xpath=//a[@id='advanced-nav-dropdown-bundles']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes/bundles')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Attribute bundles')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "1e764021-9ccf-46aa-b472-4ea81f22a68e", + "comment": "", + "command": "click", + "target": "linkText=Add bundle", + "targets": [ + ["linkText=Add bundle", "linkText"], + ["css=.btn-success", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes/bundles/new')]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'  Add bundle')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "65bd6d70-1232-497b-83c4-960910e8966f", + "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/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "" + }, { + "id": "1c563723-ad9a-4cd5-a4fa-7d291ed9edae", + "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/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "Test Bundle" + }, { + "id": "f72c10ce-2902-4dee-bb30-80f9f47ea44c", + "comment": "", + "command": "click", + "target": "css=#root_attributes_2", + "targets": [ + ["css=tr:nth-child(3) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[3]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[3]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "35263126-51a0-4d7e-80a4-b820da2936d7", + "comment": "", + "command": "click", + "target": "css=#root_attributes_3", + "targets": [ + ["css=tr:nth-child(4) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[4]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[4]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "e0349ad1-44e0-4674-ad46-5d41e0518314", + "comment": "", + "command": "click", + "target": "css=#root_attributes_4", + "targets": [ + ["css=tr:nth-child(5) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[5]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[5]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "1bc79128-62d6-43f9-8349-e27db62b3d87", + "comment": "", + "command": "click", + "target": "css=.btn-info", + "targets": [ + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/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": "4f0b2e6d-cb4f-4c1b-ae76-7b5e6bb2502c", + "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": "ddb94e33-dc34-4bc4-928f-919de2a5eca2", + "comment": "", + "command": "click", + "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": "2f9779e5-b611-4a59-859c-9a57772eacda", + "comment": "", + "command": "type", + "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": "Test" + }, { + "id": "5d7d9568-b7cc-4cec-b1cc-8df961abd76c", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=DynamicHttpMetadataResolver" + }, { + "id": "4a060cc6-b5c6-440d-9985-b25d92a8b3c6", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/nav/ul/li[2]/button/span", "xpath:idRelative"], + ["xpath=//li[2]/button/span", "xpath:position"], + ["xpath=//span[contains(.,'2. Common Attributes')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "7cfab6d3-3982-423f-a99c-488e1d41e40b", + "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/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "Test" + }, { + "id": "003b8bbb-597d-4c08-beb7-7bdc8d7a9470", + "comment": "", + "command": "select", + "target": "id=root_metadataRequestURLConstructionScheme_@type", + "targets": [], + "value": "label=MetadataQueryProtocol" + }, { + "id": "4b5c2806-b2ec-47ae-b3bc-86173faa6252", + "comment": "", + "command": "type", + "target": "id=root_metadataRequestURLConstructionScheme_content", + "targets": [ + ["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": "foo" + }, { + "id": "b7de5d35-d08e-4ffa-9a4f-2df1a69c0c3a", + "comment": "", + "command": "click", + "target": "css=.next", + "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. Dynamic Attributes')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "2d26ec0b-b770-4491-9e0d-ffeffb2e5a4e", + "comment": "", + "command": "click", + "target": "css=.next", + "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. Metadata Filter Plugins')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "104cb22a-0bb1-4fb0-839a-a8773448911e", + "comment": "", + "command": "click", + "target": "css=.next", + "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. Finished!')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "ebaf0dd5-13ca-4f71-b91e-b6f0d89b5634", + "comment": "", + "command": "click", + "target": "css=.save", + "targets": [ + ["css=.direction:nth-child(2)", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button/span[2]", "xpath:idRelative"], + ["xpath=//li[3]/button/span[2]", "xpath:position"] + ], + "value": "" + }, { + "id": "6d4af931-1e69-4c7d-b68c-6de43f30d6f5", + "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[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/7d626ff5-8bca-49ce-b4e5-6445ac1037bd/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Test')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "2415b904-780e-4fc4-80dc-b27167d60daf", + "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/7d626ff5-8bca-49ce-b4e5-6445ac1037bd/filter/new')]", "xpath:href"], + ["xpath=//div[3]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Add Filter')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "29c69cce-2560-45b6-aa03-1891d28b8b1f", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=EntityAttributes" + }, { + "id": "208a221d-db9c-4fa7-8116-24b5f425fc11", + "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/div[2]/div[2]/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "Test Filter" + }, { + "id": "147ba1a9-3655-4624-bbf7-0d68d6ff3870", + "comment": "", + "command": "click", + "target": "id=dropdown-label.filter-target-type", + "targets": [ + ["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"] + ], + "value": "" + }, { + "id": "2041d3fd-442d-44b4-ac7a-aac12cc8f9c0", + "comment": "", + "command": "click", + "target": "css=.show > .dropdown-item:nth-child(3)", + "targets": [ + ["css=.show > .dropdown-item:nth-child(3)", "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/div/div/button[3]", "xpath:idRelative"], + ["xpath=//div/button[3]", "xpath:position"], + ["xpath=//button[contains(.,'Script')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "189c2e41-87f3-49dd-b2e7-9e9fe69448e0", + "comment": "", + "command": "click", + "target": "css=.npm__react-simple-code-editor__textarea", + "targets": [ + ["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[6]/div/div/div/fieldset/div/div/div[2]/div/div/div/div/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "" + }, { + "id": "58dc0492-0777-4d33-a9a2-3f132becd2d0", + "comment": "", + "command": "type", + "target": "css=.npm__react-simple-code-editor__textarea", + "targets": [ + ["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[6]/div/div/div/fieldset/div/div/div[2]/div/div/div/div/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "true;" + }, { + "id": "9b993510-7e7e-40d6-b05c-38c274113e44", + "comment": "", + "command": "click", + "target": "css=.nav-link:nth-child(3)", + "targets": [ + ["css=.nav-link:nth-child(3)", "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/nav/button[3]", "xpath:idRelative"], + ["xpath=//button[3]", "xpath:position"], + ["xpath=//button[contains(.,'Attributes')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "e8a2f501-0efa-43a3-bbf2-b86e5ec8f6d1", + "comment": "", + "command": "waitForElementVisible", + "target": "css=fieldset > div > button > strong", + "targets": [], + "value": "30000" + }, { + "id": "cc36c580-3d53-483a-a813-2a6c8fb95792", + "comment": "", + "command": "assertText", + "target": "css=fieldset > div > button > strong", + "targets": [ + ["css=strong", "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[8]/div/div/div/fieldset/ul/li/strong", "xpath:idRelative"], + ["xpath=//strong", "xpath:position"], + ["xpath=//strong[contains(.,'Bundle - Test Bundle')]", "xpath:innerText"] + ], + "value": "Bundle - Test Bundle" + }, { + "id": "caabc3c1-7ac7-4251-9885-fe2e3b7c4c10", + "comment": "", + "command": "click", + "target": "css=fieldset > div > button", + "targets": [ + ["css=.fa-check:nth-child(2) > path", "css:finder"] + ], + "value": "" + }, { + "id": "5cd2df54-e975-4657-9d4b-390c87901f88", + "comment": "", + "command": "assertChecked", + "target": "css=#root_attributeRelease_2", + "targets": [ + ["css=tr:nth-child(3) .custom-control-label", "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[8]/div/div/div/fieldset/table/tbody/tr[3]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[3]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "c3e555b8-56f6-4f1c-a6ef-0df32ae8cdcb", + "comment": "", + "command": "assertChecked", + "target": "css=#root_attributeRelease_3", + "targets": [ + ["css=tr:nth-child(4) .custom-control-label", "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[8]/div/div/div/fieldset/table/tbody/tr[4]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[4]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "b5a8936b-61e6-4ff5-8487-1003968c56d5", + "comment": "", + "command": "assertChecked", + "target": "css=#root_attributeRelease_4", + "targets": [ + ["css=tr:nth-child(5) .custom-control-label", "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[8]/div/div/div/fieldset/table/tbody/tr[5]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[5]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "0aa952c1-249e-4a34-91fb-786dd3328d73", + "comment": "", + "command": "assertNotChecked", + "target": "css=#root_attributeRelease_0", + "targets": [ + ["css=tr:nth-child(1) .custom-control-label", "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[8]/div/div/div/fieldset/table/tbody/tr/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "0bee0fbb-3f64-4c62-a033-d3dfeaee0fb9", + "comment": "", + "command": "assertNotChecked", + "target": "css=#root_attributeRelease_1", + "targets": [ + ["css=tr:nth-child(1) .custom-control-label", "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[8]/div/div/div/fieldset/table/tbody/tr/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "755f8379-7abf-4a5a-b73a-44850fab0434", + "comment": "", + "command": "assertNotChecked", + "target": "css=#root_attributeRelease_5", + "targets": [ + ["css=tr:nth-child(1) .custom-control-label", "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[8]/div/div/div/fieldset/table/tbody/tr/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "5a0ddf98-cafc-447f-afd6-b34d74bf5b8c", + "comment": "", + "command": "assertNotChecked", + "target": "css=#root_attributeRelease_6", + "targets": [ + ["css=tr:nth-child(1) .custom-control-label", "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[8]/div/div/div/fieldset/table/tbody/tr/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "30838479-b577-47fa-ba03-a5e200910c31", + "comment": "", + "command": "assertNotChecked", + "target": "css=#root_attributeRelease_7", + "targets": [ + ["css=tr:nth-child(1) .custom-control-label", "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[8]/div/div/div/fieldset/table/tbody/tr/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "55593a0b-476b-4581-b98a-e5f971995867", + "comment": "", + "command": "assertNotChecked", + "target": "css=#root_attributeRelease_8", + "targets": [ + ["css=tr:nth-child(1) .custom-control-label", "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[8]/div/div/div/fieldset/table/tbody/tr/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "09c045f6-c682-4c9e-b56a-2cd34387a1fc", + "comment": "", + "command": "assertNotChecked", + "target": "css=#root_attributeRelease_9", + "targets": [ + ["css=tr:nth-child(1) .custom-control-label", "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[8]/div/div/div/fieldset/table/tbody/tr/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "84183a45-a032-4da5-a441-9992b84f30cf", + "comment": "", + "command": "assertNotChecked", + "target": "css=#root_attributeRelease_10", + "targets": [ + ["css=tr:nth-child(1) .custom-control-label", "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[8]/div/div/div/fieldset/table/tbody/tr/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "a23efede-f479-4a1c-b17d-82aef5ef1c6f", + "comment": "", + "command": "assertNotChecked", + "target": "css=#root_attributeRelease_11", + "targets": [ + ["css=tr:nth-child(12) .custom-control-label", "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[8]/div/div/div/fieldset/table/tbody/tr[12]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[12]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "d07498a3-8ac8-49dd-8034-258f4f1ec2fd", + "comment": "", + "command": "click", + "target": "css=.btn-info", + "targets": [ + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "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": "" + }, { + "id": "e54aff89-0f95-452f-92c0-42ca78188fc0", + "comment": "", + "command": "waitForElementVisible", + "target": "css=#filters > ul > li > div > button", + "targets": [], + "value": "30000" + }, { + "id": "d6a2d477-4b89-4cf5-a4a8-0f35afcdd5f8", + "comment": "", + "command": "click", + "target": "css=#filters > ul > li > div > button", + "targets": [ + ["css=.mx-4", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='filters']/ul/li/div/button", "xpath:idRelative"], + ["xpath=//li/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Test Filter')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "75411faa-5eac-4848-beb1-74dae71fbc7f", + "comment": "", + "command": "assertText", + "target": "css=.d-flex:nth-child(3) > .py-2 > span", + "targets": [ + ["css=.d-flex:nth-child(3) > .py-2 > span", "css:finder"], + ["xpath=//div[@id='filters']/ul/li/div[2]/section[3]/div/div[2]/div[2]/div[3]/div/span", "xpath:idRelative"], + ["xpath=//section[3]/div/div[2]/div[2]/div[3]/div/span", "xpath:position"], + ["xpath=//span[contains(.,'True')]", "xpath:innerText"] + ], + "value": "True" + }, { + "id": "64723648-aef5-4c50-8605-74c5992ac628", + "comment": "", + "command": "assertText", + "target": "css=.d-flex:nth-child(4) > .py-2 > span", + "targets": [ + ["css=.d-flex:nth-child(4) > .py-2 > span", "css:finder"], + ["xpath=//div[@id='filters']/ul/li/div[2]/section[3]/div/div[2]/div[2]/div[4]/div/span", "xpath:idRelative"], + ["xpath=//section[3]/div/div[2]/div[2]/div[4]/div/span", "xpath:position"] + ], + "value": "True" + }, { + "id": "509ee76e-7d39-453e-a5cc-cf7b3975b476", + "comment": "", + "command": "assertText", + "target": "css=.d-flex:nth-child(5) > .py-2 > span", + "targets": [ + ["css=.d-flex:nth-child(5) > .py-2 > span", "css:finder"], + ["xpath=//div[@id='filters']/ul/li/div[2]/section[3]/div/div[2]/div[2]/div[5]/div/span", "xpath:idRelative"], + ["xpath=//section[3]/div/div[2]/div[2]/div[5]/div/span", "xpath:position"] + ], + "value": "True" + }] + }], + "suites": [{ + "id": "56040c8b-b45c-454e-b2ba-2a06056b397f", + "name": "Default Suite", + "persistSession": false, + "parallel": false, + "timeout": 300, + "tests": ["d785839e-2982-4464-85ed-d529b3c0657a"] + }], + "urls": ["http://localhost:10101/"], + "plugins": [] +} \ No newline at end of file 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-2116.side b/backend/src/integration/resources/SHIBUI-2116.side new file mode 100644 index 000000000..b1a7bb553 --- /dev/null +++ b/backend/src/integration/resources/SHIBUI-2116.side @@ -0,0 +1,844 @@ +{ + "id": "f2e8e48e-149d-45ba-a73d-21185ce6511b", + "version": "2.0", + "name": "SHIBUI-2116", + "url": "http://localhost:10101", + "tests": [{ + "id": "0289b3ef-c3b6-48c9-9eea-bb337152c071", + "name": "SHIBU-2116", + "commands": [{ + "id": "558d31fd-4daf-40f3-ba0c-a5f6bb8669c9", + "comment": "", + "command": "open", + "target": "/login", + "targets": [], + "value": "" + }, { + "id": "8dd292d6-5e16-482e-8dad-1ce89421a269", + "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": "c31bb725-3a70-4f9c-8a8d-25622d1cc200", + "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": "7c8f07ba-b8d7-4c90-8386-7fcc8e5084d4", + "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": "8c690210-0764-4bb4-b062-c75dabb1f402", + "comment": "", + "command": "click", + "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": "" + }, { + "id": "7bfe19cb-1194-4d6d-adf4-54a270040f59", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "551843e9-bcb3-4df6-b05e-731a8c339c4f", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "b77cda90-0dc5-466f-b533-b11db210a976", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "d5af2429-6d72-4767-bb9b-3dfcb8bda12a", + "comment": "", + "command": "click", + "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": "" + }, { + "id": "640c5102-e73b-481a-bc34-1b93dffd2553", + "comment": "", + "command": "click", + "target": "id=advanced-nav-dropdown-bundles", + "targets": [ + ["id=advanced-nav-dropdown-bundles", "id"], + ["linkText=Attribute bundles", "linkText"], + ["css=#advanced-nav-dropdown-bundles", "css:finder"], + ["xpath=//a[contains(text(),'Attribute bundles')]", "xpath:link"], + ["xpath=//a[@id='advanced-nav-dropdown-bundles']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes/bundles')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Attribute bundles')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "0bc60715-03f7-40dd-b8a5-e00e96cadc41", + "comment": "", + "command": "click", + "target": "linkText=Add bundle", + "targets": [ + ["linkText=Add bundle", "linkText"], + ["css=.btn-success", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes/bundles/new')]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'  Add bundle')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "70e3b7c5-e320-4af6-a426-10a895d16ac3", + "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/div/section/div[2]/div/div[2]/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "Test" + }, { + "id": "03996de9-ff30-418e-ba87-b531fab4d1c9", + "comment": "", + "command": "click", + "target": "css=#root_attributes_1", + "targets": [ + ["css=tr:nth-child(2) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[2]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[2]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "17a575e1-8235-46f6-b541-af13fa6151d5", + "comment": "", + "command": "click", + "target": "css=#root_attributes_2", + "targets": [ + ["css=tr:nth-child(3) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[3]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[3]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "f8dce0fd-f034-4cfc-8b80-ea5a581168dd", + "comment": "", + "command": "click", + "target": "css=#root_attributes_3", + "targets": [ + ["css=tr:nth-child(4) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[4]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[4]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "3f6fc6b2-aaa5-4947-89d8-2837bfc1c958", + "comment": "", + "command": "click", + "target": "css=#root_attributes_4", + "targets": [ + ["css=tr:nth-child(5) .custom-control-label", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div[2]/div/div[2]/div/form/div/div/div/div[2]/div/div/div/fieldset/table/tbody/tr[5]/td[2]/fieldset/div/div/label", "xpath:idRelative"], + ["xpath=//tr[5]/td[2]/fieldset/div/div/label", "xpath:position"] + ], + "value": "" + }, { + "id": "489b6dce-12d8-4e7e-92fa-c69643242625", + "comment": "", + "command": "click", + "target": "css=.btn-info", + "targets": [ + ["css=.btn-info", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/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": "c3b00a64-0fdb-4a4d-9328-135d2a71b654", + "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": "ff70011c-1e0b-4508-8def-7b93b5b9d217", + "comment": "", + "command": "click", + "target": "id=metadata-nav-dropdown-source", + "targets": [], + "value": "" + }, { + "id": "cc3852db-11f4-431c-95ee-00ab2c2ad0fd", + "comment": "", + "command": "waitForElementEditable", + "target": "id=root_serviceProviderName", + "targets": [], + "value": "30000" + }, { + "id": "8087eaec-14a0-4c93-8602-1c2443c65ea2", + "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": "Highlight Test" + }, { + "id": "d0963162-1476-40e1-8d8b-01f5b7aac2a6", + "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": "Test" + }, { + "id": "26770e74-dfe8-4583-a6c9-1b71f92d94d6", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "cfbceb7a-448f-4c02-82bb-795f9684f98f", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "eef60aea-5847-414a-9ba5-283eb699bdaa", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "beeca02c-1dd8-4aee-aa9e-0edd44b2adcb", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "e3259171-e4ee-4347-8b4f-cf0742911256", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "2a0d845d-f33f-41d2-8b4b-06d12f65365c", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "18b003be-1998-4a6c-8829-3eaf171ddad3", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "f5edd7c4-416d-44c3-9d45-59b88b57ebf2", + "comment": "", + "command": "click", + "target": "css=.next", + "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": "5bfa76d3-b603-418c-b2e0-26d3101d84ea", + "comment": "", + "command": "if", + "target": "${driver} == 'chrome'", + "targets": [], + "value": "" + }, { + "id": "2088e506-ac24-47d3-a8e7-34da4dcd3fd3", + "comment": "", + "command": "mouseOut", + "target": "css=fieldset > div > button", + "targets": [], + "value": "" + }, { + "id": "7138f17d-51ce-44f6-ac6c-702db52c2d33", + "comment": "", + "command": "end", + "target": "true", + "targets": [], + "value": "" + }, { + "id": "13049b33-da9b-431e-88c0-f06b84e4a889", + "comment": "", + "command": "if", + "target": "${driver} != 'chrome'", + "targets": [], + "value": "" + }, { + "id": "b2eef91a-04b1-4173-9fb1-5c405fa952b1", + "comment": "", + "command": "mouseOver", + "target": "css=fieldset > div > button", + "targets": [], + "value": "" + }, { + "id": "f8101da9-8518-4d2f-a0ad-273d84393857", + "comment": "", + "command": "end", + "target": "", + "targets": [], + "value": "" + }, { + "id": "2e787e49-1a4d-4176-a5f7-7495a30803bd", + "comment": "", + "command": "assertElementPresent", + "target": "xpath=//tr[contains(., 'uid') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }, { + "id": "14cbff2c-5799-4a6d-9648-54e5b1cbef5a", + "comment": "", + "command": "assertElementPresent", + "target": "xpath=//tr[contains(., 'mail') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }, { + "id": "80067437-ad36-4cce-9ff9-8f320b83614d", + "comment": "", + "command": "assertElementPresent", + "target": "xpath=//tr[contains(., 'surname') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }, { + "id": "e7c8538d-97bd-490e-b3c5-f353038d210c", + "comment": "", + "command": "assertElementPresent", + "target": "xpath=//tr[contains(., 'givenName') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }, { + "id": "12f66a07-0902-4d46-a54f-0d4e40a0335d", + "comment": "", + "command": "assertElementNotPresent", + "target": "xpath=//tr[contains(., 'eduPersonPrincipalName (EPPN)') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }, { + "id": "a9bf47bd-459c-4876-8179-4dfd48eba767", + "comment": "", + "command": "assertElementNotPresent", + "target": "xpath=//tr[contains(., 'eduPersonAffiliation') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }, { + "id": "7ad705fd-0930-4352-9ac5-de880f6b10af", + "comment": "", + "command": "assertElementNotPresent", + "target": "xpath=//tr[contains(., 'eduPersonScopedAffiliation') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }, { + "id": "66c4c91c-f2ca-4e7d-a169-181b286f0f3c", + "comment": "", + "command": "assertElementNotPresent", + "target": "xpath=//tr[contains(., 'eduPersonPrimaryAffiliation') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }, { + "id": "130d20b7-32e9-4236-9568-47e2ad509337", + "comment": "", + "command": "assertElementNotPresent", + "target": "xpath=//tr[contains(., 'eduPersonEntitlement') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }, { + "id": "c97cc325-2a11-4736-8b8d-05114857bfab", + "comment": "", + "command": "assertElementNotPresent", + "target": "xpath=//tr[contains(., 'eduPersonAssurance') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }, { + "id": "cb0f99bc-f484-420a-a47a-d813a2d9b68b", + "comment": "", + "command": "assertElementNotPresent", + "target": "xpath=//tr[contains(., 'eduPersonUniqueId') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }, { + "id": "06c5db00-90cd-465c-bfbb-6aac85737095", + "comment": "", + "command": "assertElementNotPresent", + "target": "xpath=//tr[contains(., 'employeeNumber') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }, { + "id": "f386e535-635c-4918-a249-2405b742158a", + "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": "0edbd891-b017-4aba-b208-f930f464010d", + "comment": "", + "command": "click", + "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": "ab3f0a46-c48d-4521-b14a-c69bb30d781a", + "comment": "", + "command": "click", + "target": "css=.justify-content-start > .btn-primary", + "targets": [ + ["css=.justify-content-start > .btn-primary", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[5]/div/div/div[3]/button", "xpath:position"], + ["xpath=//button[contains(.,'Discard Changes')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "f098bb58-cc06-401a-b231-1eeb73d13e76", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" + }, { + "id": "08f7a660-cb23-4a24-8eac-9dbb90bd8b27", + "comment": "", + "command": "type", + "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": "Highlight Test" + }, { + "id": "1b6cc813-23cc-4455-b4c6-02f1a7c71130", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=DynamicHttpMetadataResolver" + }, { + "id": "e71e0b71-b493-49e9-a9cf-0ae3e0632254", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "c3b9236c-8133-4bf4-8cb9-b58cb74ab2c1", + "comment": "", + "command": "waitForElementEditable", + "target": "id=root_xmlId", + "targets": [], + "value": "30000" + }, { + "id": "db1651d4-f486-40ca-a134-0b81811d45bd", + "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/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "1" + }, { + "id": "53958ce6-b865-4492-b033-5e31d7b0103f", + "comment": "", + "command": "select", + "target": "id=root_metadataRequestURLConstructionScheme_@type", + "targets": [], + "value": "label=MetadataQueryProtocol" + }, { + "id": "3a49da05-0a3e-4816-bc7e-75131cff1f2f", + "comment": "", + "command": "type", + "target": "id=root_metadataRequestURLConstructionScheme_content", + "targets": [ + ["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": "foo" + }, { + "id": "ffa75d67-2675-4e7d-94ef-6228a7aab8d1", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "2f5d32d8-98e2-4a2d-ad07-2cbc2781b78e", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "ba3d7a46-ba15-4341-8384-e89bdd4a6112", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "03feb6ff-e56d-4c95-ad08-2652f7251be7", + "comment": "", + "command": "click", + "target": "css=.save", + "targets": [ + ["css=.save", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "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": "f5911a12-9d5f-4d30-b40e-79c80932f402", + "comment": "", + "command": "click", + "target": "linkText=Highlight Test", + "targets": [ + ["linkText=Highlight Test", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'Highlight Test')]", "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/b6dee359-43b7-4050-9bf0-e44181c73cb2/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'Highlight Test')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "c679effb-ab43-4749-85eb-78f4c57d023e", + "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/b6dee359-43b7-4050-9bf0-e44181c73cb2/filter/new')]", "xpath:href"], + ["xpath=//div[3]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Add Filter')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "8953375e-24df-47fe-93d5-c8447e261d00", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" + }, { + "id": "a94a026a-31f6-47d6-aa95-0e216dff0467", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=EntityAttributes" + }, { + "id": "7629ac84-3727-4a96-9ef4-9b4d8b2b88dc", + "comment": "", + "command": "click", + "target": "css=.nav-link:nth-child(3)", + "targets": [ + ["css=.nav-link:nth-child(3)", "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/nav/button[3]", "xpath:idRelative"], + ["xpath=//button[3]", "xpath:position"], + ["xpath=//button[contains(.,'Attributes')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "723e9116-2382-488d-8509-b475c0780c64", + "comment": "", + "command": "if", + "target": "${driver} == 'chrome'", + "targets": [], + "value": "" + }, { + "id": "013dc85d-6094-431c-ae93-9a9f280538ca", + "comment": "", + "command": "mouseOut", + "target": "css=fieldset > div > button", + "targets": [], + "value": "" + }, { + "id": "89df8f73-5d65-43c6-a47f-1af230da7efb", + "comment": "", + "command": "end", + "target": "", + "targets": [], + "value": "" + }, { + "id": "a50ebd12-488d-4c75-9121-cd905e8f8a27", + "comment": "", + "command": "if", + "target": "${driver} != 'chrome'", + "targets": [], + "value": "" + }, { + "id": "4b3bb7ee-c068-42d7-b593-f9712dc6d5e5", + "comment": "", + "command": "mouseOver", + "target": "css=fieldset > div > button", + "targets": [], + "value": "" + }, { + "id": "1e10f252-669c-48df-adc8-911447dc8894", + "comment": "", + "command": "end", + "target": "", + "targets": [], + "value": "" + }, { + "id": "4938719e-85f7-4f08-95bd-44a2202c4de4", + "comment": "", + "command": "assertElementPresent", + "target": "xpath=//tr[contains(., 'uid') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }, { + "id": "28e7c9b1-5d0c-49df-a821-a14af3c49c97", + "comment": "", + "command": "assertElementPresent", + "target": "xpath=//tr[contains(., 'mail') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }, { + "id": "a2fd29ec-aae6-4f22-b4fb-af95ab81d820", + "comment": "", + "command": "assertElementPresent", + "target": "xpath=//tr[contains(., 'surname') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }, { + "id": "11d2617e-f847-4fac-8ba9-ad303f6567cb", + "comment": "", + "command": "assertElementPresent", + "target": "xpath=//tr[contains(., 'givenName') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }, { + "id": "beb5b40a-ca61-4950-aeb5-9093721bde6f", + "comment": "", + "command": "assertElementNotPresent", + "target": "xpath=//tr[contains(., 'eduPersonPrincipalName (EPPN)') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }, { + "id": "47e2dddd-e637-4edf-8989-f4574a260b61", + "comment": "", + "command": "assertElementNotPresent", + "target": "xpath=//tr[contains(., 'eduPersonAffiliation') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }, { + "id": "1d863af7-0ce3-4a2a-a4ec-13b6a5c53545", + "comment": "", + "command": "assertElementNotPresent", + "target": "xpath=//tr[contains(., 'eduPersonScopedAffiliation') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }, { + "id": "10d2473f-c97f-4e12-b43b-934945a73e20", + "comment": "", + "command": "assertElementNotPresent", + "target": "xpath=//tr[contains(., 'eduPersonPrimaryAffiliation') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }, { + "id": "10a897a3-e8d4-449e-9e73-87e58074fa26", + "comment": "", + "command": "assertElementNotPresent", + "target": "xpath=//tr[contains(., 'eduPersonEntitlement') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }, { + "id": "9fb497d5-56be-40ea-a3fb-bd9cb97b4324", + "comment": "", + "command": "assertElementNotPresent", + "target": "xpath=//tr[contains(., 'eduPersonAssurance') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }, { + "id": "8d5522c5-5a72-4ff8-b51b-e60953be85cd", + "comment": "", + "command": "assertElementNotPresent", + "target": "xpath=//tr[contains(., 'eduPersonUniqueId') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }, { + "id": "205b6bf3-0916-401d-9188-9dcdb5c0994a", + "comment": "", + "command": "assertElementNotPresent", + "target": "xpath=//tr[contains(., 'employeeNumber') and contains(@class, 'text-light bg-info')]", + "targets": [], + "value": "" + }] + }], + "suites": [{ + "id": "a8b8a626-3d99-42d2-9cd7-c801006ce420", + "name": "Default Suite", + "persistSession": false, + "parallel": false, + "timeout": 300, + "tests": ["0289b3ef-c3b6-48c9-9eea-bb337152c071"] + }], + "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..049869b64 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 @@ -19,6 +32,7 @@ import groovy.util.logging.Slf4j import groovy.xml.DOMBuilder import groovy.xml.MarkupBuilder import net.shibboleth.utilities.java.support.scripting.EvaluableScript +import org.apache.commons.collections.CollectionUtils import org.opensaml.saml.common.profile.logic.EntityIdPredicate import org.opensaml.saml.metadata.resolver.MetadataResolver import org.opensaml.saml.metadata.resolver.filter.MetadataFilter @@ -32,7 +46,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 +77,7 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService { @Autowired private UserService userService + // TODO: enhance void constructXmlNodeForEntityAttributeNamespaceProtection(def markupBuilderDelegate) { markupBuilderDelegate.MetadataFilter('xsi:type': 'EntityAttributes') { AttributeFilterScript() { @@ -109,6 +126,7 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService { } } + // TODO: enhance void constructXmlNodeForFilter(EntityRoleWhiteListFilter filter, def markupBuilderDelegate) { if (!filter.retainedRoles?.isEmpty()) { markupBuilderDelegate.MetadataFilter( @@ -123,7 +141,6 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService { } } - void constructXmlNodeForFilter(NameIdFormatFilter filter, def markupBuilderDelegate) { def type = filter.nameIdFormatFilterTarget.nameIdFormatFilterTargetType markupBuilderDelegate.MetadataFilter( @@ -186,6 +203,7 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService { } } + void constructXmlNodeForResolver(DynamicHttpMetadataResolver resolver, def markupBuilderDelegate, Closure childNodes) { markupBuilderDelegate.MetadataProvider(id: resolver.xmlId, 'xsi:type': 'DynamicHTTPMetadataProvider', @@ -212,7 +230,7 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService { maxConnectionsTotal: resolver.maxConnectionsTotal, maxConnectionsPerRoute: resolver.maxConnectionsPerRoute, - supportedContentTypes: resolver.supportedContentTypes?.value, //not sure this is right. maybe take off the ?.value + supportedContentTypes: CollectionUtils.isEmpty(resolver.supportedContentTypes ) ? null : resolver.supportedContentTypes, httpClientRef: resolver.httpMetadataResolverAttributes?.httpClientRef, connectionRequestTimeout: resolver.httpMetadataResolverAttributes?.connectionRequestTimeout, @@ -221,7 +239,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, @@ -229,6 +247,7 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService { httpMaxCacheEntries: resolver.httpMetadataResolverAttributes?.httpMaxCacheEntries, httpMaxCacheEntrySize: resolver.httpMetadataResolverAttributes?.httpMaxCacheEntrySize) { + childNodes() switch (MetadataRequestURLConstructionScheme.SchemeType.get(resolver.metadataRequestURLConstructionScheme.type)) { case MetadataRequestURLConstructionScheme.SchemeType.METADATA_QUERY_PROTOCOL: MetadataQueryProtocolScheme scheme = (MetadataQueryProtocolScheme) resolver.metadataRequestURLConstructionScheme @@ -259,7 +278,6 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService { default: break } - childNodes() } } @@ -292,7 +310,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 +406,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) @@ -419,7 +437,7 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService { xml.omitEmptyAttributes = true xml.omitNullAttributes = true - xml.MetadataProvider(id: 'ShibbolethMetadata', + xml.MetadataProvider(id: 'ShibbolethIdPUIGeneratedMetadata', xmlns: 'urn:mace:shibboleth:2.0:metadata', 'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance', 'xsi:type': 'ChainingMetadataProvider', @@ -525,7 +543,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 +591,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/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JsonSchemaBuilderService.groovy b/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JsonSchemaBuilderService.groovy index 6ebdcf7be..dd8bf8954 100644 --- a/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JsonSchemaBuilderService.groovy +++ b/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JsonSchemaBuilderService.groovy @@ -1,29 +1,41 @@ package edu.internet2.tier.shibboleth.admin.ui.service import edu.internet2.tier.shibboleth.admin.ui.configuration.CustomPropertiesConfiguration +import edu.internet2.tier.shibboleth.admin.ui.domain.AttributeBundle import edu.internet2.tier.shibboleth.admin.ui.domain.IRelyingPartyOverrideProperty import edu.internet2.tier.shibboleth.admin.ui.security.model.User import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService +import lombok.NoArgsConstructor import org.springframework.beans.factory.annotation.Autowired /** * @author Bill Smith (wsmith@unicon.net) */ +@NoArgsConstructor class JsonSchemaBuilderService { + @Autowired + AttributeBundleService attributeBundleService @Autowired CustomPropertiesConfiguration customPropertiesConfiguration + @Autowired UserService userService - JsonSchemaBuilderService(UserService userService) { - this.userService = userService - } - void addReleaseAttributesToJson(Object json) { - json['enum'] = customPropertiesConfiguration.getAttributes().collect { + List result = new ArrayList<>() + List resultNames = new ArrayList<>() + attributeBundleService.findAll().forEach({ bundle -> + result.add(bundle.getAttributes()) + resultNames.add(bundle.getName()) + }) + + result.addAll(customPropertiesConfiguration.getAttributes().collect { it['name'] - } + }) + + json['enum'] = result + json['enumNames'] = resultNames } void addRelyingPartyOverridesToJson(Object json) { @@ -52,17 +64,17 @@ class JsonSchemaBuilderService { def definition = [title : it['displayName'], description: it['helpText'], type : 'array'] - if (it['displayType'] == 'set' || it['displayType'] == 'selection_list') { - definition['uniqueItems'] = true - } else if (it['displayType'] == 'list') { - definition['uniqueItems'] = false - } def items = [type : 'string', minLength: 1, // TODO: should this be configurable? maxLength: 255] //TODO: or this? - items.examples = it['examples'] + if (it['displayType'] == 'set' || it['displayType'] == 'list') { + definition['uniqueItems'] = true + items.examples = it['examples'] + } else if (it['displayType'] == 'selection_list') { + definition['uniqueItems'] = false + items.enum = it['examples'] + } items['default'] = it['defaultValue'] - definition['items'] = items json[(String) it['name']] = definition @@ -79,4 +91,4 @@ class JsonSchemaBuilderService { serviceEnabled.remove('description') } } -} +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/JsonSchemaComponentsConfiguration.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/JsonSchemaComponentsConfiguration.java index 97d88f5a7..d483319f3 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/JsonSchemaComponentsConfiguration.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/JsonSchemaComponentsConfiguration.java @@ -100,6 +100,6 @@ public JsonSchemaResourceLocationRegistry jsonSchemaResourceLocationRegistry(Res @Bean public JsonSchemaBuilderService jsonSchemaBuilderService(UserService userService) { - return new JsonSchemaBuilderService(userService); + return new JsonSchemaBuilderService(); } -} +} \ No newline at end of file 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/configuration/auto/WebSecurityConfig.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/auto/WebSecurityConfig.java index 8617bfa3b..8584ff303 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/auto/WebSecurityConfig.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/configuration/auto/WebSecurityConfig.java @@ -59,8 +59,8 @@ public class WebSecurityConfig { @Bean @Profile("!no-auth") - public AdminUserService adminUserService(UserRepository userRepository) { - return new AdminUserService(userRepository); + public AdminUserService adminUserService(UserService userService) { + return new AdminUserService(userService); } private HttpFirewall allowUrlEncodedSlashHttpFirewall() { @@ -128,7 +128,7 @@ protected void configure(AuthenticationManagerBuilder auth) throws Exception { .password(defaultPassword) .roles("ADMIN"); } - auth.userDetailsService(adminUserService(userRepository)).passwordEncoder(passwordEncoder); + auth.userDetailsService(adminUserService(userService)).passwordEncoder(passwordEncoder); } @Override diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/AttributeBundleController.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/AttributeBundleController.java new file mode 100644 index 000000000..1dbe5e026 --- /dev/null +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/AttributeBundleController.java @@ -0,0 +1,66 @@ +package edu.internet2.tier.shibboleth.admin.ui.controller; + +import edu.internet2.tier.shibboleth.admin.ui.domain.AttributeBundle; +import edu.internet2.tier.shibboleth.admin.ui.exception.EntityNotFoundException; +import edu.internet2.tier.shibboleth.admin.ui.exception.ObjectIdExistsException; +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.model.Group; +import edu.internet2.tier.shibboleth.admin.ui.service.AttributeBundleService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.annotation.Secured; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/api/custom/entity/bundles") +@Slf4j +public class AttributeBundleController { + @Autowired AttributeBundleService attributeBundleService; + + @Secured("ROLE_ADMIN") + @PostMapping + @Transactional + public ResponseEntity create(@RequestBody AttributeBundle bundle) throws ObjectIdExistsException { + AttributeBundle result = attributeBundleService.create(bundle); + return ResponseEntity.status(HttpStatus.CREATED).body(result); + } + + @Secured("ROLE_ADMIN") + @DeleteMapping("/{resourceId}") + @Transactional + public ResponseEntity delete(@PathVariable String resourceId) throws EntityNotFoundException { + attributeBundleService.deleteDefinition(resourceId); + return ResponseEntity.noContent().build(); + } + + @GetMapping + @Transactional(readOnly = true) + public ResponseEntity getAll() { + return ResponseEntity.ok(attributeBundleService.findAll()); + } + + @GetMapping("/{resourceId}") + @Transactional(readOnly = true) + public ResponseEntity getOne(@PathVariable String resourceId) throws EntityNotFoundException { + return ResponseEntity.ok(attributeBundleService.findByResourceId(resourceId)); + } + + @Secured("ROLE_ADMIN") + @PutMapping + @Transactional + public ResponseEntity update(@RequestBody AttributeBundle bundle) throws EntityNotFoundException { + AttributeBundle result = attributeBundleService.updateBundle(bundle); + return ResponseEntity.ok(result); + } +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/AttributeBundleExceptionHandler.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/AttributeBundleExceptionHandler.java new file mode 100644 index 000000000..9f5266c3c --- /dev/null +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/AttributeBundleExceptionHandler.java @@ -0,0 +1,29 @@ +package edu.internet2.tier.shibboleth.admin.ui.controller; + +import edu.internet2.tier.shibboleth.admin.ui.exception.EntityNotFoundException; +import edu.internet2.tier.shibboleth.admin.ui.exception.ObjectIdExistsException; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.context.request.WebRequest; +import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler; + +@ControllerAdvice(assignableTypes = {AttributeBundleController.class}) +public class AttributeBundleExceptionHandler extends ResponseEntityExceptionHandler { + @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({ ObjectIdExistsException.class }) + public ResponseEntity handleObjectIdExistsException(ObjectIdExistsException e, WebRequest request) { + HttpHeaders headers = new HttpHeaders(); + headers.setLocation(EntityDescriptorController.getResourceUriFor(e.getMessage())); + return ResponseEntity.status(HttpStatus.CONFLICT).headers(headers).body(new ErrorResponse( + String.valueOf(HttpStatus.CONFLICT.value()), + String.format("The attribute bundle with resource id [%s] already exists.", e.getMessage()))); + + } +} \ 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 532731bfc..2ab357a03 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,27 +1,40 @@ package edu.internet2.tier.shibboleth.admin.ui.controller; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Profile; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Controller; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; - +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.CustomEntityAttributeDefinitionRepository; 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; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Profile; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; @Controller @RequestMapping(value = "/api/heheheheheheheWipeout") @Profile("very-dangerous") @Slf4j public class DangerController { + @Autowired + private CustomEntityAttributeDefinitionRepository attributeRepository; + + @Autowired + private AttributeBundleRepository attributeBundleRepository; + + @Autowired + private DevConfig devConfig; + @Autowired private EntityDescriptorService entityDescriptorService; @@ -33,7 +46,10 @@ public class DangerController { @Autowired private IGroupService groupService; - + + @Autowired + private GroupsRepository groupRepository; + @Autowired private MetadataResolverRepository metadataResolverRepository; @@ -42,7 +58,10 @@ public class DangerController { @Autowired private OwnershipRepository ownershipRepository; - + + @Autowired + UserRepository userRepository; + @Transactional @GetMapping public ResponseEntity wipeOut() { @@ -60,6 +79,24 @@ public ResponseEntity wipeOut() { this.metadataResolverRepository.deleteAll(); this.filterRepository.deleteAll(); this.metadataResolversPositionOrderContainerRepository.deleteAll(); + this.attributeBundleRepository.deleteAll(); + this.attributeRepository.deleteAll(); + + clearUsersAndGroups(); + return ResponseEntity.ok("yes, you did it"); } + + 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 f8e28fc75..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,28 +2,21 @@ 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.domain.versioning.Version; -import edu.internet2.tier.shibboleth.admin.ui.exception.EntityIdExistsException; 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.User; -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.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; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.access.annotation.Secured; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -36,11 +29,8 @@ import org.springframework.web.servlet.support.ServletUriComponentsBuilder; import javax.annotation.PostConstruct; - import java.net.URI; import java.util.ConcurrentModificationException; -import java.util.List; -import java.util.stream.Collectors; @RestController @RequestMapping("/api") @@ -73,7 +63,8 @@ public EntityDescriptorController(EntityDescriptorVersionService versionService) @PostMapping("/EntityDescriptor") @Transactional - public ResponseEntity create(@RequestBody EntityDescriptorRepresentation edRepresentation) throws ForbiddenException, EntityIdExistsException { + public ResponseEntity create(@RequestBody EntityDescriptorRepresentation edRepresentation) + throws ForbiddenException, ObjectIdExistsException, InvalidPatternMatchException { EntityDescriptorRepresentation persistedEd = entityDescriptorService.createNew(edRepresentation); return ResponseEntity.created(getResourceUriFor(persistedEd.getId())).body(persistedEd); } @@ -123,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 { @@ -145,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); @@ -171,4 +164,4 @@ public ResponseEntity upload(@RequestParam String metadataUrl, @RequestParam .body(String.format("Error fetching XML metadata from the provided URL. Error: %s", e.getMessage())); } } -} +} \ No newline at end of file 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 d0b18f415..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.EntityIdExistsException; -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,7 @@ 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({ EntityIdExistsException.class }) - public ResponseEntity handleEntityExistsException(EntityIdExistsException e, WebRequest request) { - HttpHeaders headers = new HttpHeaders(); - headers.setLocation(EntityDescriptorController.getResourceUriFor(e.getMessage())); - return ResponseEntity.status(HttpStatus.CONFLICT).headers(headers).body(new ErrorResponse( - String.valueOf(HttpStatus.CONFLICT.value()), - String.format("The entity descriptor with entity id [%s] already exists.", 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())); @@ -41,4 +31,19 @@ public ResponseEntity handleEntityNotFoundException(EntityNotFoundException e 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(); + headers.setLocation(EntityDescriptorController.getResourceUriFor(e.getMessage())); + return ResponseEntity.status(HttpStatus.CONFLICT).headers(headers).body(new ErrorResponse( + String.valueOf(HttpStatus.CONFLICT.value()), + String.format("The entity descriptor with entity id [%s] already exists.", e.getMessage()))); + + } +} \ No newline at end of file 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/AbstractAuditable.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AbstractAuditable.java index 445d4cc92..89560f04f 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AbstractAuditable.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AbstractAuditable.java @@ -41,14 +41,14 @@ public abstract class AbstractAuditable implements Auditable { @CreationTimestamp @CreatedDate - @Column(nullable = false, updatable = false) - @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSSSS") + @Column(nullable = false, updatable = false, columnDefinition = "DATETIME(9)") + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS") private LocalDateTime createdDate; @UpdateTimestamp @LastModifiedDate - @Column(nullable = false) - @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSSSS") + @Column(nullable = false, columnDefinition = "DATETIME(9)") + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS") private LocalDateTime modifiedDate; @Column(name = "created_by") diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AttributeBundle.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AttributeBundle.java new file mode 100644 index 000000000..2df1132ac --- /dev/null +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AttributeBundle.java @@ -0,0 +1,31 @@ +package edu.internet2.tier.shibboleth.admin.ui.domain; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import lombok.Data; + +import javax.persistence.Column; +import javax.persistence.ElementCollection; +import javax.persistence.Entity; +import javax.persistence.Id; +import java.io.IOException; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + +@Entity(name = "attribute_bundle_definition") +@Data +public class AttributeBundle { + @Column(nullable = false) + @ElementCollection + Set attributes = new HashSet<>(); + + @Column(name = "name", nullable = true) + String name; + + @Id + @Column(name = "resource_id", nullable = false) + String resourceId = UUID.randomUUID().toString(); +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/BundleableAttributeType.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/BundleableAttributeType.java new file mode 100644 index 000000000..84a80fce4 --- /dev/null +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/BundleableAttributeType.java @@ -0,0 +1,40 @@ +package edu.internet2.tier.shibboleth.admin.ui.domain; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import edu.internet2.tier.shibboleth.admin.util.BundleableAttributeTypeValueSerializer; + +@JsonSerialize(using = BundleableAttributeTypeValueSerializer.class) +public enum BundleableAttributeType { + EDUPERSONPRINCIPALNAME("eduPersonPrincipalName"), + UID("uid"), + MAIL("mail"), + SURNAME("surname"), + GIVENNAME("givenName"), + EDUPERSONAFFILIATE("eduPersonAffiliation"), + EDUPERSONSCOPEDAFFILIATION("eduPersonScopedAffiliation"), + EDUPERSONPRIMARYAFFILIATION("eduPersonPrimaryAffiliation"), + EDUPERSONENTITLEMENT("eduPersonEntitlement"), + EDUPERSONASSURANCE("eduPersonAssurance"), + EDUPERSONUNIQUEID("eduPersonUniqueId"), + EMPLOYEENUMBER("employeeNumber"); + + String label; + + BundleableAttributeType(String val) { + label = val; + } + + public String label() {return label;} + + @JsonCreator + public static BundleableAttributeType valueOfLabel(String label) { + for (BundleableAttributeType e : values()) { + if (e.label.equals(label)) { + return e; + } + } + return null; + } + +} \ 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/frontend/EntityDescriptorRepresentation.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/frontend/EntityDescriptorRepresentation.java index 821d9817d..c662b1388 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/frontend/EntityDescriptorRepresentation.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/frontend/EntityDescriptorRepresentation.java @@ -10,12 +10,14 @@ import javax.validation.constraints.NotNull; import java.io.Serializable; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; import java.util.Map; public class EntityDescriptorRepresentation implements Serializable { private static final long serialVersionUID = 7753435553892353966L; + private DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS"); private List assertionConsumerServices; @@ -98,7 +100,7 @@ public String getCreatedBy() { } public String getCreatedDate() { - return createdDate != null ? createdDate.toString() : null; + return createdDate != null ? formatter.format(createdDate) : null; } public String getEntityId() { @@ -125,7 +127,7 @@ public MduiRepresentation getMdui() { } public String getModifiedDate() { - return modifiedDate != null ? modifiedDate.toString() : null; + return modifiedDate != null ? formatter.format(modifiedDate) : null; } @JsonIgnore @@ -134,7 +136,6 @@ public LocalDateTime getModifiedDateAsDate() { return modifiedDate != null ? modifiedDate : createdDate != null ? createdDate : LocalDateTime.now(); } - public OrganizationRepresentation getOrganization() { return organization; } @@ -245,4 +246,4 @@ public void setServiceProviderSsoDescriptor(ServiceProviderSsoDescriptorRepresen public void setVersion(int version) { this.version = version; } -} +} \ 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/opensaml/OpenSamlMetadataResolverConstructorHelper.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/opensaml/OpenSamlMetadataResolverConstructorHelper.java index 862624b05..cd7c564c7 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/opensaml/OpenSamlMetadataResolverConstructorHelper.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/opensaml/OpenSamlMetadataResolverConstructorHelper.java @@ -21,47 +21,49 @@ public static void updateOpenSamlMetadataResolverFromDynamicMetadataResolverAttr ParserPool parserPool) { AbstractDynamicMetadataResolver dynamicMetadataResolver = (AbstractDynamicMetadataResolver) metadataResolver; - if (attributes.getBackgroundInitializationFromCacheDelay() != null) { - dynamicMetadataResolver - .setBackgroundInitializationFromCacheDelay(toMillis(placeholderResolverService() - .resolveValueFromPossibleTokenPlaceholder(attributes.getBackgroundInitializationFromCacheDelay()))); - } + if (attributes != null) { + if (attributes.getBackgroundInitializationFromCacheDelay() != null) { + dynamicMetadataResolver + .setBackgroundInitializationFromCacheDelay(toMillis(placeholderResolverService() + .resolveValueFromPossibleTokenPlaceholder(attributes.getBackgroundInitializationFromCacheDelay()))); + } - if (attributes.getCleanupTaskInterval() != null) { - dynamicMetadataResolver.setCleanupTaskInterval(toMillis(placeholderResolverService() - .resolveValueFromPossibleTokenPlaceholder(attributes.getCleanupTaskInterval()))); - } + if (attributes.getCleanupTaskInterval() != null) { + dynamicMetadataResolver.setCleanupTaskInterval(toMillis(placeholderResolverService() + .resolveValueFromPossibleTokenPlaceholder(attributes.getCleanupTaskInterval()))); + } - if (attributes.getInitializeFromPersistentCacheInBackground()) { - dynamicMetadataResolver.setInitializeFromPersistentCacheInBackground(attributes.getInitializeFromPersistentCacheInBackground()); - } + if (attributes.getInitializeFromPersistentCacheInBackground()) { + dynamicMetadataResolver.setInitializeFromPersistentCacheInBackground(attributes.getInitializeFromPersistentCacheInBackground()); + } - if (attributes.getMaxCacheDuration() != null) { - dynamicMetadataResolver.setMaxCacheDuration(toMillis(placeholderResolverService() - .resolveValueFromPossibleTokenPlaceholder(attributes.getMaxCacheDuration()))); - } + if (attributes.getMaxCacheDuration() != null) { + dynamicMetadataResolver.setMaxCacheDuration(toMillis(placeholderResolverService() + .resolveValueFromPossibleTokenPlaceholder(attributes.getMaxCacheDuration()))); + } - if (attributes.getMaxIdleEntityData() != null) { - dynamicMetadataResolver.setMaxIdleEntityData(toMillis(placeholderResolverService() - .resolveValueFromPossibleTokenPlaceholder(attributes.getMaxIdleEntityData()))); - } + if (attributes.getMaxIdleEntityData() != null) { + dynamicMetadataResolver.setMaxIdleEntityData(toMillis(placeholderResolverService() + .resolveValueFromPossibleTokenPlaceholder(attributes.getMaxIdleEntityData()))); + } - if (attributes.getMinCacheDuration() != null) { - dynamicMetadataResolver.setMinCacheDuration(toMillis(placeholderResolverService() - .resolveValueFromPossibleTokenPlaceholder(attributes.getMinCacheDuration()))); - } + if (attributes.getMinCacheDuration() != null) { + dynamicMetadataResolver.setMinCacheDuration(toMillis(placeholderResolverService() + .resolveValueFromPossibleTokenPlaceholder(attributes.getMinCacheDuration()))); + } - if (attributes.getBackgroundInitializationFromCacheDelay() != null) { - dynamicMetadataResolver.setBackgroundInitializationFromCacheDelay(toMillis(placeholderResolverService() - .resolveValueFromPossibleTokenPlaceholder(attributes.getBackgroundInitializationFromCacheDelay()))); - } + if (attributes.getBackgroundInitializationFromCacheDelay() != null) { + dynamicMetadataResolver.setBackgroundInitializationFromCacheDelay(toMillis(placeholderResolverService() + .resolveValueFromPossibleTokenPlaceholder(attributes.getBackgroundInitializationFromCacheDelay()))); + } - if (attributes.getRefreshDelayFactor() != null) { - dynamicMetadataResolver.setRefreshDelayFactor(attributes.getRefreshDelayFactor()); - } + if (attributes.getRefreshDelayFactor() != null) { + dynamicMetadataResolver.setRefreshDelayFactor(attributes.getRefreshDelayFactor()); + } - if (attributes.getRemoveIdleEntityData() != null) { - dynamicMetadataResolver.setRemoveIdleEntityData(attributes.getRemoveIdleEntityData()); + if (attributes.getRemoveIdleEntityData() != null) { + dynamicMetadataResolver.setRemoveIdleEntityData(attributes.getRemoveIdleEntityData()); + } } //TODO: This takes a XMLObjectLoadSaveManager. Do we have what we need to create one? 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/EntityIdExistsException.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/exception/EntityIdExistsException.java deleted file mode 100644 index 990eab2c3..000000000 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/exception/EntityIdExistsException.java +++ /dev/null @@ -1,8 +0,0 @@ -package edu.internet2.tier.shibboleth.admin.ui.exception; - -public class EntityIdExistsException extends Exception { - public EntityIdExistsException(String entityId) { - super(entityId); - } - -} 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/exception/ObjectIdExistsException.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/exception/ObjectIdExistsException.java new file mode 100644 index 000000000..f2604acfe --- /dev/null +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/exception/ObjectIdExistsException.java @@ -0,0 +1,8 @@ +package edu.internet2.tier.shibboleth.admin.ui.exception; + +public class ObjectIdExistsException extends Exception { + public ObjectIdExistsException(String entityId) { + super(entityId); + } + +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/AttributeBundleRepository.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/AttributeBundleRepository.java new file mode 100644 index 000000000..0c9bc2aed --- /dev/null +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/AttributeBundleRepository.java @@ -0,0 +1,18 @@ +package edu.internet2.tier.shibboleth.admin.ui.repository; + +import edu.internet2.tier.shibboleth.admin.ui.domain.AttributeBundle; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; +import java.util.Optional; + +/** + * Repository to manage {@link edu.internet2.tier.shibboleth.admin.ui.domain.AttributeBundle} instances. + */ +public interface AttributeBundleRepository extends JpaRepository { + List findAll(); + + Optional findByResourceId(String resourceId); + + AttributeBundle save(AttributeBundle target); +} \ 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..5ca34b4e6 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(); } @@ -113,12 +114,15 @@ public String getOwnerId() { public OwnerType getOwnerType() { return OwnerType.USER; } - + + /** + * @return the FIRST role found for the user or an exception if the user has no roles + */ public String getRole() { if (StringUtils.isBlank(this.role)) { Set roles = this.getRoles(); - if (roles.size() != 1) { - throw new RuntimeException(String.format("User with username [%s] has no role or does not have exactly one role!", this.getUsername())); + if (roles.isEmpty()) { + throw new RuntimeException(String.format("User with username [%s] has no roles", this.getUsername())); } this.role = roles.iterator().next().getName(); } @@ -131,7 +135,8 @@ public Set getUserGroups() { } return userGroups; } - + + @JsonIgnore public void setGroup(Group g) { groupId = g.getResourceId(); userGroups.clear(); @@ -145,4 +150,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/IRolesService.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/service/IRolesService.java index 26653d241..ac30d986a 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/service/IRolesService.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/service/IRolesService.java @@ -1,6 +1,8 @@ package edu.internet2.tier.shibboleth.admin.ui.security.service; import java.util.List; +import java.util.Optional; +import java.util.Set; import edu.internet2.tier.shibboleth.admin.ui.exception.EntityNotFoundException; import edu.internet2.tier.shibboleth.admin.ui.security.exception.RoleDeleteException; @@ -11,12 +13,17 @@ public interface IRolesService { Role createRole(Role role) throws RoleExistsConflictException; - Role updateRole(Role role) throws EntityNotFoundException; - List findAll(); + Optional findByName(String roleNone); + Role findByResourceId(String resourceId) throws EntityNotFoundException; + Set getAndCreateAllRoles(Set roles); + void deleteDefinition(String resourceId) throws EntityNotFoundException, RoleDeleteException; -} + Role updateRole(Role role) throws EntityNotFoundException; + + void save(Role newUserRole); +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/service/RolesServiceImpl.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/service/RolesServiceImpl.java index cfbe57fb0..939be59d8 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/service/RolesServiceImpl.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/service/RolesServiceImpl.java @@ -1,7 +1,9 @@ package edu.internet2.tier.shibboleth.admin.ui.security.service; +import java.util.HashSet; import java.util.List; import java.util.Optional; +import java.util.Set; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -15,7 +17,7 @@ @Service public class RolesServiceImpl implements IRolesService { @Autowired - private RoleRepository roleRepository; + RoleRepository roleRepository; @Override public Role createRole(Role role) throws RoleExistsConflictException { @@ -42,6 +44,11 @@ public List findAll() { return roleRepository.findAll(); } + @Override + public Optional findByName(String roleName) { + return roleRepository.findByName(roleName); + } + @Override public Role findByResourceId(String resourceId) throws EntityNotFoundException { Optional found = roleRepository.findByResourceId(resourceId); @@ -51,6 +58,30 @@ public Role findByResourceId(String resourceId) throws EntityNotFoundException { return found.get(); } + @Override + public Set getAndCreateAllRoles(Set roleNames) { + HashSet result = new HashSet<>(); + if (roleNames == null || roleNames.isEmpty()) { + Role r = getRoleNone(); + result.add(r); + return result; + } + roleNames.forEach(roleName -> { + Optional role = roleRepository.findByName(roleName); + result.add(role.orElseGet(() -> roleRepository.save(new Role(roleName)))); + }); + return result; + } + + private Role getRoleNone() { + Optional noRole = roleRepository.findByName("ROLE_NONE"); + if (noRole.isEmpty()) { + Role newUserRole = new Role("ROLE_NONE"); + return roleRepository.save(newUserRole); + } + return noRole.get(); + } + @Override public Role updateRole(Role role) throws EntityNotFoundException { Optional found = roleRepository.findByName(role.getName()); @@ -59,4 +90,9 @@ public Role updateRole(Role role) throws EntityNotFoundException { } return roleRepository.save(role); } -} + + @Override + public void save(Role newUserRole) { + roleRepository.save(newUserRole); + } +} \ 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/security/springsecurity/AdminUserService.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/springsecurity/AdminUserService.java index a2cab06e2..8782362a4 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/springsecurity/AdminUserService.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/security/springsecurity/AdminUserService.java @@ -2,7 +2,7 @@ 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.UserRepository; +import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService; import lombok.RequiredArgsConstructor; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; @@ -22,12 +22,12 @@ @RequiredArgsConstructor public class AdminUserService implements UserDetailsService { - private final UserRepository userRepository; + private final UserService userService; @Override @Transactional(readOnly = true) public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { - User user = userRepository + User user = userService .findByUsername(username) .orElseThrow(() -> new UsernameNotFoundException(String.format("User [%s] is not found", username))); @@ -43,5 +43,4 @@ public UserDetails loadUserByUsername(String username) throws UsernameNotFoundEx return new org.springframework.security.core.userdetails.User(user.getUsername(), user.getPassword(), grantedAuthorities); } -} - +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/AttributeBundleService.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/AttributeBundleService.java new file mode 100644 index 000000000..916ea99b2 --- /dev/null +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/AttributeBundleService.java @@ -0,0 +1,54 @@ +package edu.internet2.tier.shibboleth.admin.ui.service; + +import edu.internet2.tier.shibboleth.admin.ui.domain.AttributeBundle; +import edu.internet2.tier.shibboleth.admin.ui.exception.EntityNotFoundException; +import edu.internet2.tier.shibboleth.admin.ui.exception.ObjectIdExistsException; +import edu.internet2.tier.shibboleth.admin.ui.repository.AttributeBundleRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Optional; + +@Service +public class AttributeBundleService { + @Autowired + AttributeBundleRepository attributeBundleRepository; + + public AttributeBundle create(AttributeBundle bundle) throws ObjectIdExistsException { + if (attributeBundleRepository.findByResourceId(bundle.getResourceId()).isPresent()) { + throw new ObjectIdExistsException(bundle.getResourceId()); + } + return attributeBundleRepository.save(bundle); + } + + public List findAll() { + return attributeBundleRepository.findAll(); + } + + public void deleteDefinition(String resourceId) throws EntityNotFoundException { + if (attributeBundleRepository.findByResourceId(resourceId).isEmpty()) { + throw new EntityNotFoundException(String.format("Unable to find attribute bundle with resource id: [%s] for deletion", resourceId)); + } + attributeBundleRepository.deleteById(resourceId); + } + + public AttributeBundle updateBundle(AttributeBundle bundle) throws EntityNotFoundException { + Optional dbBundle = attributeBundleRepository.findByResourceId(bundle.getResourceId()); + if (dbBundle.isEmpty()) { + throw new EntityNotFoundException(String.format("Unable to find attribute bundle with resource id: [%s] for update", bundle.getResourceId())); + } + AttributeBundle bundleToUpdate = dbBundle.get(); + bundleToUpdate.setName(bundle.getName()); + bundleToUpdate.setAttributes(bundle.getAttributes()); + return attributeBundleRepository.save(bundleToUpdate); + } + + public AttributeBundle findByResourceId(String resourceId) throws EntityNotFoundException { + Optional result = attributeBundleRepository.findByResourceId(resourceId); + if (result.isEmpty()) { + throw new EntityNotFoundException(String.format("Unable to find attribute bundle with resource id: [%s] for deletion", resourceId)); + } + return result.get(); + } +} \ No newline at end of file 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 c8c39bbb3..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.EntityIdExistsException; 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; @@ -29,17 +30,19 @@ public interface EntityDescriptorService { * @param ed - JPA EntityDescriptor to base creation on * @return EntityDescriptorRepresentation of the created object * @throws ForbiddenException If user is unauthorized to perform this operation - * @throws EntityIdExistsException If any EntityDescriptor already exists with the same EntityId + * @throws ObjectIdExistsException If any EntityDescriptor already exists with the same EntityId */ - EntityDescriptorRepresentation createNew(EntityDescriptor ed) throws ForbiddenException, EntityIdExistsException; + EntityDescriptorRepresentation createNew(EntityDescriptor ed) + throws ForbiddenException, ObjectIdExistsException, InvalidPatternMatchException; /** * @param edRepresentation Incoming representation to save * @return EntityDescriptorRepresentation * @throws ForbiddenException If user is unauthorized to perform this operation - * @throws EntityIdExistsException If the entity already exists + * @throws ObjectIdExistsException If the entity already exists */ - EntityDescriptorRepresentation createNew(EntityDescriptorRepresentation edRepresentation) throws ForbiddenException, EntityIdExistsException; + EntityDescriptorRepresentation createNew(EntityDescriptorRepresentation edRepresentation) + throws ForbiddenException, ObjectIdExistsException, InvalidPatternMatchException; /** * Map from opensaml implementation of entity descriptor model to front-end data representation of entity descriptor @@ -93,12 +96,14 @@ public interface EntityDescriptorService { 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 d23b16365..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.EntityIdExistsException; +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,28 +102,34 @@ public EntityDescriptor createDescriptorFromRepresentation(final EntityDescripto } @Override - public EntityDescriptorRepresentation createNew(EntityDescriptor ed) throws ForbiddenException, EntityIdExistsException { + public EntityDescriptorRepresentation createNew(EntityDescriptor ed) + throws ForbiddenException, ObjectIdExistsException, InvalidPatternMatchException { return createNew(createRepresentationFromDescriptor(ed)); } @Override - public EntityDescriptorRepresentation createNew(EntityDescriptorRepresentation edRep) throws ForbiddenException, EntityIdExistsException { + 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."); } if (entityDescriptorRepository.findByEntityID(edRep.getEntityId()) != null) { - throw new EntityIdExistsException(edRep.getEntityId()); + 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 @@ -337,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); } @@ -358,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())); @@ -366,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(); } @@ -373,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); @@ -405,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/java/edu/internet2/tier/shibboleth/admin/util/AttributeUtility.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/util/AttributeUtility.java index 7677c1b56..1b23fd9ec 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/util/AttributeUtility.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/util/AttributeUtility.java @@ -77,10 +77,10 @@ private edu.internet2.tier.shibboleth.admin.ui.domain.Attribute createNewAttribu edu.internet2.tier.shibboleth.admin.ui.domain.Attribute attribute = ((edu.internet2.tier.shibboleth.admin.ui.domain.AttributeBuilder) openSamlObjects.getBuilderFactory() .getBuilder(edu.internet2.tier.shibboleth.admin.ui.domain.Attribute.DEFAULT_ELEMENT_NAME)).buildObject(); attribute.setName(name); + attribute.setNameFormat(URI); // SHIBUI-2173 if (friendlyName != null) { attribute.setFriendlyName(friendlyName); - attribute.setNameFormat(URI); } return attribute; } -} +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/util/BundleableAttributeTypeValueSerializer.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/util/BundleableAttributeTypeValueSerializer.java new file mode 100644 index 000000000..55aa1ab44 --- /dev/null +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/util/BundleableAttributeTypeValueSerializer.java @@ -0,0 +1,28 @@ +package edu.internet2.tier.shibboleth.admin.util; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import edu.internet2.tier.shibboleth.admin.ui.domain.BundleableAttributeType; + +import java.io.IOException; + +/** + * This simplifies translation to the front end. We use the ENUM on the backend, but the BundleableAttributeType + * is tagged to serialize using this helper. + * Note: The deserialize is done by the setup of the ENUM itself + */ +public class BundleableAttributeTypeValueSerializer extends StdSerializer { + public BundleableAttributeTypeValueSerializer() { + this(null); + } + + public BundleableAttributeTypeValueSerializer(Class t) { + super(t); + } + + @Override + public void serialize(BundleableAttributeType value, JsonGenerator gen, SerializerProvider provider) throws IOException { + gen.writeString(value.label()); + } +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/util/EntityDescriptorConversionUtils.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/util/EntityDescriptorConversionUtils.java index 29e9a9336..8b4e7a71a 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/util/EntityDescriptorConversionUtils.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/util/EntityDescriptorConversionUtils.java @@ -247,9 +247,21 @@ public static void setupSecurity(EntityDescriptor ed, EntityDescriptorRepresenta SecurityInfoRepresentation securityInfoRepresentation = representation.getSecurityInfo(); if (securityInfoRepresentation.isAuthenticationRequestsSigned()) { getSPSSODescriptorFromEntityDescriptor(ed).setAuthnRequestsSigned(true); + } else { + // If false, only set if the spssodescriptor already exists and is true + SPSSODescriptor descriptor = ed.getSPSSODescriptor(""); + if (descriptor != null && descriptor.isAuthnRequestsSigned()) { + descriptor.setAuthnRequestsSigned((Boolean)null); + } } if (securityInfoRepresentation.isWantAssertionsSigned()) { getSPSSODescriptorFromEntityDescriptor(ed).setWantAssertionsSigned(true); + } else { + // If false, only set if the spssodescriptor already exists and is true + SPSSODescriptor descriptor = ed.getSPSSODescriptor(""); + if (descriptor != null && descriptor.getWantAssertionsSigned()) { + descriptor.setWantAssertionsSigned((Boolean)null); + } } // TODO: review if we need more than a naive implementation ed.getOptionalSPSSODescriptor().ifPresent( i -> i.getKeyDescriptors().clear()); @@ -375,4 +387,4 @@ public static void setupRelyingPartyOverrides(EntityDescriptor ed, EntityDescrip getOptionalEntityAttributes(ed).ifPresent(entityAttributes -> entityAttributes.getAttributes().clear()); } } -} +} \ No newline at end of file diff --git a/backend/src/main/resources/application.properties b/backend/src/main/resources/application.properties index 5b7b801f1..0556e5b45 100644 --- a/backend/src/main/resources/application.properties +++ b/backend/src/main/resources/application.properties @@ -24,6 +24,7 @@ spring.h2.console.settings.web-allow-others=true # spring.jackson.default-property-inclusion=non_absent spring.jackson.default-property-inclusion=NON_NULL +spring.jackson.mapper.accept-case-insensitive-enums=true # Database Configuration PostgreSQL #spring.datasource.url=jdbc:postgresql://localhost:5432/shibui diff --git a/backend/src/main/resources/application.yml b/backend/src/main/resources/application.yml index 74ae43689..671000aa6 100644 --- a/backend/src/main/resources/application.yml +++ b/backend/src/main/resources/application.yml @@ -14,11 +14,14 @@ # forceServiceProviderMetadataGeneration: false # callbackUrl: "https://localhost:8443/callback" # maximumAuthenticationLifetime: 3600000 +# requireAssertedRoleForNewUsers: false # saml2ProfileMapping: # username: urn:oid:0.9.2342.19200300.100.1.1 # firstname: urn:oid:2.5.4.42 # lastname: urn:oid:2.5.4.4 # email: urn:oid:0.9.2342.19200300.100.1.3 +# groups: urn:oid:1.3.6.1.4.1.5923.1.5.1.1 # attributeId - isMemberOf +# roles: --define name of the attribute containing the incoming user roles-- custom: attributes: diff --git a/backend/src/main/resources/bundle.schema.json b/backend/src/main/resources/bundle.schema.json new file mode 100644 index 000000000..3c5111e40 --- /dev/null +++ b/backend/src/main/resources/bundle.schema.json @@ -0,0 +1,38 @@ +{ + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "title": "label.bundle-name", + "description": "tooltip.bundle-name", + "minLength": 1, + "maxLength": 255 + }, + "attributes": { + "type": "array", + "title": "label.attributes", + "description": "Attribute table - select the attributes you want to bundle (default unchecked)", + "items": { + "type": "string", + "enum": [ + "eduPersonPrincipalName", + "uid", + "mail", + "surname", + "givenName", + "eduPersonAffiliation", + "eduPersonScopedAffiliation", + "eduPersonPrimaryAffiliation", + "eduPersonEntitlement", + "eduPersonAssurance", + "eduPersonUniqueId", + "employeeNumber" + ] + }, + "uniqueItems": true + } + } +} \ 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 2b3ca2ee8..4c22a97ff 100644 --- a/backend/src/main/resources/i18n/messages.properties +++ b/backend/src/main/resources/i18n/messages.properties @@ -11,6 +11,7 @@ action.dashboard=Dashboard action.logout=Logout +action.logged-in=Logged in as {username} action.add=Add action.add-new=Add New action.add-new-provider=Add a new metadata provider @@ -62,8 +63,8 @@ action.toggle-view=Toggle view action.advanced=Advanced action.add-new-attribute=Add new attribute action.add-new-group=Add new group -action.add-attribute=Add Attribute -action.custom-entity-attributes=Custom Entity Attributes +action.add-attribute=Add attribute +action.custom-entity-attributes=Custom entity attributes action.groups=Groups action.source-group=Group action.enable=Enable @@ -72,6 +73,7 @@ action.disable=Disable action.add-new-role=Add new role action.roles=Roles action.source-role=Role +action.select-bundle=Select Bundle value.enabled=Enabled value.disabled=Disabled @@ -177,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 @@ -492,8 +495,18 @@ 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 +tooltip.bundle-name=A user friendly name to identify the bundle +action.attribute-bundles=Attribute bundles +label.new-attribute-bundle=New attribute bundle +label.edit-attribute-bundle=Edit attribute bundle +label.bundled-attributes=Bundled Attributes +label.attribute-bundles=Attribute Bundles message.user-role-admin-group=Cannot change group for ROLE_ADMIN users. label.roles-management=Role Management @@ -517,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..fe62a5770 --- /dev/null +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/BaseDataJpaTestConfiguration.groovy @@ -0,0 +1,107 @@ +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 com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer +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 org.springframework.http.converter.json.Jackson2ObjectMapperBuilder + +import java.time.LocalDateTime +import java.time.format.DateTimeFormatter + +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() { + JavaTimeModule module = new JavaTimeModule() + LocalDateTimeDeserializer localDateTimeDeserializer = new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS")) + module.addDeserializer(LocalDateTime.class, localDateTimeDeserializer) + ObjectMapper mapper = Jackson2ObjectMapperBuilder.json().modules(module).featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS).build() + mapper.enable(SerializationFeature.INDENT_OUTPUT) + mapper.setSerializationInclusion(NON_NULL) + 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/AttributeBundleControllerTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/AttributeBundleControllerTests.groovy new file mode 100644 index 000000000..00e624b7e --- /dev/null +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/AttributeBundleControllerTests.groovy @@ -0,0 +1,225 @@ +package edu.internet2.tier.shibboleth.admin.ui.controller + +import com.fasterxml.jackson.databind.MapperFeature +import com.fasterxml.jackson.databind.ObjectMapper +import edu.internet2.tier.shibboleth.admin.ui.configuration.ShibUIConfiguration +import edu.internet2.tier.shibboleth.admin.ui.domain.AttributeBundle +import edu.internet2.tier.shibboleth.admin.ui.exception.EntityNotFoundException +import edu.internet2.tier.shibboleth.admin.ui.exception.ObjectIdExistsException +import edu.internet2.tier.shibboleth.admin.ui.repository.AttributeBundleRepository +import edu.internet2.tier.shibboleth.admin.ui.service.AttributeBundleService +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.data.jpa.repository.config.EnableJpaRepositories +import org.springframework.test.context.ContextConfiguration +import org.springframework.test.web.servlet.setup.MockMvcBuilders +import org.springframework.transaction.annotation.Transactional +import org.springframework.web.util.NestedServletException +import spock.lang.Specification + +import static org.hamcrest.Matchers.containsInAnyOrder +import static org.springframework.http.MediaType.APPLICATION_JSON +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.jsonPath +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status + +@DataJpaTest(properties = ["spring.jackson.mapper.accept-case-insensitive-enums=true"]) +@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) +@EntityScan("edu.internet2.tier.shibboleth.admin.ui") +@ContextConfiguration(classes = [ShibUIConfiguration, ABCTConfig]) +class AttributeBundleControllerTests extends Specification { + @Autowired + AttributeBundleController controller + + @Autowired + AttributeBundleRepository attributeBundleRepository + + ObjectMapper objectMapper = new ObjectMapper() + + def MockMvc + + @Transactional + def setup() { + mockMvc = MockMvcBuilders.standaloneSetup(controller).build() + attributeBundleRepository.deleteAll() + } + + def "GET checks" () { + expect: + attributeBundleRepository.findAll().isEmpty() + + when: "fetch for no bundles" + def result = mockMvc.perform(get('/api/custom/entity/bundles')) + + then: + result.andExpect(status().isOk()) + .andExpect(content().contentType(APPLICATION_JSON)) + .andExpect(content().json('[]')) + + when: "add a bundle" + def json = """ + { + "name": "bundleName", + "resourceId": "randomIDVal", + "attributes": ["eduPersonPrincipalName", "surname", "givenName"] + } + """ + + AttributeBundle bundle = objectMapper.readValue(json, AttributeBundle.class) + attributeBundleRepository.saveAndFlush(bundle) + result = mockMvc.perform(get('/api/custom/entity/bundles')) + + then: + result.andExpect(status().isOk()) + .andExpect(content().contentType(APPLICATION_JSON)) + .andExpect(jsonPath("\$.[0].name").value("bundleName")) + .andExpect(jsonPath("\$.[0].resourceId").value("randomIDVal")) + .andExpect(jsonPath("\$.[0].attributes", containsInAnyOrder("eduPersonPrincipalName", "surname", "givenName"))) + } + + def "CREATE checks" () { + expect: + attributeBundleRepository.findAll().isEmpty() + + when: "add a bundle" + def json = """ + { + "name": "bundleName", + "resourceId": "randomIDVal", + "attributes": ["eduPersonPrincipalName", "surname", "givenName"] + } + """ + AttributeBundle bundle = objectMapper.readValue(json, AttributeBundle.class) + attributeBundleRepository.saveAndFlush(bundle) + + then: "bundle already exists" + try { + mockMvc.perform(post('/api/custom/entity/bundles').contentType(APPLICATION_JSON).content(json)) + false + } catch (NestedServletException expected) { + expected.getCause() instanceof ObjectIdExistsException + } + + when: "new bundle" + json = """ + { + "name": "bundle2", + "resourceId": "differentResourceId", + "attributes": ["eduPersonPrincipalName", "surname", "givenName"] + } + """ + + def result = mockMvc.perform(post('/api/custom/entity/bundles').contentType(APPLICATION_JSON).content(json)) + then: + result.andExpect(status().isCreated()) + .andExpect(content().contentType(APPLICATION_JSON)) + .andExpect(jsonPath("\$.name").value("bundle2")) + .andExpect(jsonPath("\$.resourceId").value("differentResourceId")) + .andExpect(jsonPath("\$.attributes", containsInAnyOrder("eduPersonPrincipalName", "surname", "givenName"))) + } + + def "test delete" () { + expect: + attributeBundleRepository.findAll().isEmpty() + + when: + def json = """ + { + "name": "bundleName", + "resourceId": "randomIDVal", + "attributes": ["eduPersonPrincipalName", "surname", "givenName"] + } + """ + AttributeBundle bundle = objectMapper.readValue(json, AttributeBundle.class) + attributeBundleRepository.save(bundle) + + then: + attributeBundleRepository.findAll().size() == 1 + + // Delete something doesn't exist + try { + mockMvc.perform(delete("/api/custom/entity/bundles/randomIDValdoesntexist")) + false + } catch (NestedServletException expected) { + expected instanceof EntityNotFoundException + } + + when: "Delete what does exist" + def result = mockMvc.perform(delete("/api/custom/entity/bundles/randomIDVal")) + + then: + result.andExpect(status().isNoContent()) + attributeBundleRepository.findAll().isEmpty() + } + + def "Update checks" () { + expect: + attributeBundleRepository.findAll().isEmpty() + + when: "add a bundle" + def json = """ + { + "name": "bundleName", + "resourceId": "randomIDVal", + "attributes": ["eduPersonPrincipalName", "surname", "givenName"] + } + """ + AttributeBundle bundle = objectMapper.readValue(json, AttributeBundle.class) + attributeBundleRepository.saveAndFlush(bundle) + + then: "bundle doesn't exist" + bundle.setResourceId("foo") + try { + mockMvc.perform(put('/api/custom/entity/bundles').contentType(APPLICATION_JSON).content(objectMapper.writeValueAsString(bundle))) + false + } catch (NestedServletException expected) { + expected.getCause() instanceof EntityNotFoundException + } + + when: "update bundle" + json = """ + { + "name": "bundle2", + "resourceId": "randomIDVal", + "attributes": ["eduPersonUniqueId", "employeeNumber", "givenName"] + } + """ + + def result = mockMvc.perform(put('/api/custom/entity/bundles').contentType(APPLICATION_JSON).content(json)) + + then: + result.andExpect(status().isOk()) + .andExpect(content().contentType(APPLICATION_JSON)) + .andExpect(jsonPath("\$.name").value("bundle2")) + .andExpect(jsonPath("\$.resourceId").value("randomIDVal")) + .andExpect(jsonPath("\$.attributes", containsInAnyOrder("eduPersonUniqueId", "employeeNumber", "givenName"))) + } + + // can go away with merge to develop and this extends the base test class + @TestConfiguration + private static class ABCTConfig { + @Bean + AttributeBundleController attributeBundleController(AttributeBundleService attributeBundleService) { + new AttributeBundleController().with { + it.attributeBundleService = attributeBundleService + it + } + } + + @Bean + AttributeBundleService attributeBundleService(AttributeBundleRepository repo) { + new AttributeBundleService().with { + it.attributeBundleRepository = repo + it + } + } + + } +} \ 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 f7b44786a..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.EntityIdExistsException +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,33 +349,29 @@ 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)) } catch (Exception e) { - e instanceof EntityIdExistsException + 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,36 +579,33 @@ 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)) } catch (Exception e) { - e instanceof EntityIdExistsException + e instanceof ObjectIdExistsException } } - @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/opensaml/OpenSamlMetadataResolverConstructorHelperSpec.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/opensaml/OpenSamlMetadataResolverConstructorHelperSpec.groovy new file mode 100644 index 000000000..b4bf01305 --- /dev/null +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/opensaml/OpenSamlMetadataResolverConstructorHelperSpec.groovy @@ -0,0 +1,22 @@ +package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.opensaml + +import org.opensaml.saml.metadata.resolver.impl.AbstractDynamicMetadataResolver +import spock.lang.Specification + +//TODO: we need to fill this out +class OpenSamlMetadataResolverConstructorHelperSpec extends Specification { + def "SHIBUI-2163: make sure that we don't get a NPE if attributes are null"() { + given: + def x = Mock(AbstractDynamicMetadataResolver) + + when: + OpenSamlMetadataResolverConstructorHelper.updateOpenSamlMetadataResolverFromDynamicMetadataResolverAttributes( + x, + null, + null + ) + + then: + noExceptionThrown() + } +} 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/AttributeBundleRepositoryTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/AttributeBundleRepositoryTests.groovy new file mode 100644 index 000000000..0db6a9555 --- /dev/null +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/AttributeBundleRepositoryTests.groovy @@ -0,0 +1,42 @@ +package edu.internet2.tier.shibboleth.admin.ui.repository + +import com.fasterxml.jackson.databind.MapperFeature +import com.fasterxml.jackson.databind.ObjectMapper +import edu.internet2.tier.shibboleth.admin.ui.configuration.ShibUIConfiguration +import edu.internet2.tier.shibboleth.admin.ui.domain.AttributeBundle +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 + +@DataJpaTest +@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) +@EntityScan("edu.internet2.tier.shibboleth.admin.ui") +@ContextConfiguration(classes = [ShibUIConfiguration]) +class AttributeBundleRepositoryTests extends Specification { + @Autowired + AttributeBundleRepository attributeBundleRepository + + ObjectMapper objectMapper = new ObjectMapper() + + def "test create and fetch" () { + given: + def json = """ + { + "name": "bundleName", + "resourceId": "randomIDVal", + "attributes": ["eduPersonPrincipalName", "surname", "givenName"] + } + """ + + AttributeBundle bundle = objectMapper.readValue(json, AttributeBundle.class) + + when: + def result = attributeBundleRepository.save(bundle) + + then: + result == bundle + } +} \ 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..5473be2c2 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,39 @@ 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 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.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 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 + +@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 +48,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 +107,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 +125,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 +155,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 +167,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 +183,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 +211,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 +235,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 +250,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 +300,4 @@ 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 - } - - @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..d40e2bd1c 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(UserService userService) { + return new AdminUserService(userService) + } + + // 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..28ba48d30 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 @@ -120,7 +94,7 @@ class JPAMetadataResolverServiceImplTests extends Specification { givenName employeeNumber - + testme @@ -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/backend/src/test/resources/conf/1059-disabled.xml b/backend/src/test/resources/conf/1059-disabled.xml index 952c86ee6..c53ed9bb1 100644 --- a/backend/src/test/resources/conf/1059-disabled.xml +++ b/backend/src/test/resources/conf/1059-disabled.xml @@ -1,6 +1,6 @@ - - - - content + + @@ -12,10 +11,11 @@ md:SPSSODescriptor + content - + \ No newline at end of file diff --git a/backend/src/test/resources/conf/278.xml b/backend/src/test/resources/conf/278.xml index 0c1bfd794..918ffc0ae 100644 --- a/backend/src/test/resources/conf/278.xml +++ b/backend/src/test/resources/conf/278.xml @@ -1,15 +1,15 @@ - - - content + + md:SPSSODescriptor + content - + \ No newline at end of file diff --git a/backend/src/test/resources/conf/670.xml b/backend/src/test/resources/conf/670.xml index 952c86ee6..c53ed9bb1 100644 --- a/backend/src/test/resources/conf/670.xml +++ b/backend/src/test/resources/conf/670.xml @@ -1,6 +1,6 @@ - + - http://mdq-beta.incommon.org/global + http://mdq-beta.incommon.org/global - + \ No newline at end of file diff --git a/backend/src/test/resources/conf/984.xml b/backend/src/test/resources/conf/984.xml index a67eb1a93..ad76d7bbd 100644 --- a/backend/src/test/resources/conf/984.xml +++ b/backend/src/test/resources/conf/984.xml @@ -1,6 +1,5 @@ - + - http://mdq-beta.incommon.org/global + http://mdq-beta.incommon.org/global - + \ 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..c0c9048fa 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,11 +1,12 @@ 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; -import edu.internet2.tier.shibboleth.admin.ui.security.repository.RoleRepository; import edu.internet2.tier.shibboleth.admin.ui.security.service.IGroupService; +import edu.internet2.tier.shibboleth.admin.ui.security.service.IRolesService; import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService; import edu.internet2.tier.shibboleth.admin.ui.service.EmailService; import lombok.extern.slf4j.Slf4j; @@ -17,6 +18,7 @@ import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.crypto.bcrypt.BCrypt; +import org.springframework.transaction.annotation.Transactional; import javax.mail.MessagingException; import javax.servlet.Filter; @@ -27,7 +29,6 @@ import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.transaction.Transactional; import java.io.IOException; import java.util.ArrayList; import java.util.HashSet; @@ -43,13 +44,13 @@ public class AddNewUserFilter implements Filter { private IGroupService groupService; private Matcher matcher; private Pac4jConfigurationProperties pac4jConfigurationProperties; - private RoleRepository roleRepository; + private IRolesService rolesService; private Pac4jConfigurationProperties.SimpleProfileMapping simpleProfileMapping; private UserService userService; - public AddNewUserFilter(Pac4jConfigurationProperties pac4jConfigurationProperties, UserService userService, RoleRepository roleRepository, Matcher matcher, IGroupService groupService, Optional emailService) { + public AddNewUserFilter(Pac4jConfigurationProperties pac4jConfigurationProperties, UserService userService, IRolesService rolesService, Matcher matcher, IGroupService groupService, Optional emailService) { this.userService = userService; - this.roleRepository = roleRepository; + this.rolesService = rolesService; this.emailService = emailService; this.pac4jConfigurationProperties = pac4jConfigurationProperties; this.matcher = matcher; @@ -59,16 +60,10 @@ public AddNewUserFilter(Pac4jConfigurationProperties pac4jConfigurationPropertie @Transactional User buildAndPersistNewUserFromProfile(CommonProfile profile) { - Optional noRole = roleRepository.findByName(ROLE_NONE); - Role newUserRole; - if (noRole.isEmpty()) { - newUserRole = new Role(ROLE_NONE); - roleRepository.save(newUserRole); - } - newUserRole = noRole.get(); + Set userRoles = rolesService.getAndCreateAllRoles(profile.getRoles()); User user = new User(); - user.getRoles().add(newUserRole); + user.setRoles(userRoles); user.setUsername(profile.getUsername()); user.setPassword(BCrypt.hashpw(RandomStringUtils.randomAlphanumeric(20), BCrypt.gensalt())); user.setFirstName(profile.getFirstName()); @@ -77,6 +72,7 @@ User buildAndPersistNewUserFromProfile(CommonProfile profile) { // get profile attribute for groups Object obj = profile.getAttribute(simpleProfileMapping.getGroups()); + log.debug("User's incoming group from mapping: [{}]", obj); if (obj != null) { final ArrayList groupNames = new ArrayList<>(); if (obj instanceof String) { @@ -90,11 +86,15 @@ User buildAndPersistNewUserFromProfile(CommonProfile profile) { } } - User persistedUser = userService.save(user); + // Don't save the user if the role required flag is on and the user has the default none role + if (pac4jConfigurationProperties.isRequireAssertedRoleForNewUsers() && user.getRole().equals(ROLE_NONE)) { + return user; + } + user = userService.save(user); if (log.isDebugEnabled()) { log.debug("Persisted new user:\n" + user); } - return persistedUser; + return user; } @Override @@ -149,7 +149,7 @@ private Set findOrCreateGroups(ArrayList groupNames) { try { groupService.createGroup(g); } - catch (GroupExistsConflictException shouldntHappen) { + catch (GroupExistsConflictException | InvalidGroupRegexException shouldntHappen) { } } result.add(g); diff --git a/pac4j-module/src/main/java/net/unicon/shibui/pac4j/BetterSAML2Profile.java b/pac4j-module/src/main/java/net/unicon/shibui/pac4j/BetterSAML2Profile.java index f948304cf..1036781e0 100644 --- a/pac4j-module/src/main/java/net/unicon/shibui/pac4j/BetterSAML2Profile.java +++ b/pac4j-module/src/main/java/net/unicon/shibui/pac4j/BetterSAML2Profile.java @@ -5,6 +5,7 @@ import java.util.Collection; import java.util.List; +import java.util.Set; public class BetterSAML2Profile extends SAML2Profile { private SimpleProfileMapping profileMapping; @@ -39,6 +40,15 @@ public List getGroups() { return (List) getAttribute(profileMapping.getGroups()); } + public Set getRoles() { + Set result = super.getRoles(); + List assertedRoles = (List) getAttribute(profileMapping.getRoles()); + if (assertedRoles != null) { + result.addAll(assertedRoles); + } + return result; + } + @Override public String getUsername() { Object username = getAttribute(profileMapping.getUsername()); @@ -49,4 +59,4 @@ public String getUsername() { } } -} +} \ No newline at end of file diff --git a/pac4j-module/src/main/java/net/unicon/shibui/pac4j/Pac4jConfiguration.java b/pac4j-module/src/main/java/net/unicon/shibui/pac4j/Pac4jConfiguration.java index cda47108b..26d32708f 100644 --- a/pac4j-module/src/main/java/net/unicon/shibui/pac4j/Pac4jConfiguration.java +++ b/pac4j-module/src/main/java/net/unicon/shibui/pac4j/Pac4jConfiguration.java @@ -4,16 +4,11 @@ import edu.internet2.tier.shibboleth.admin.ui.security.repository.UserRepository; import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; +import net.unicon.shibui.pac4j.authenticator.ShibuiPac4JHeaderClientAuthenticator; +import net.unicon.shibui.pac4j.authenticator.ShibuiSAML2Authenticator; import org.pac4j.core.client.Clients; import org.pac4j.core.config.Config; -import org.pac4j.core.context.WebContext; -import org.pac4j.core.credentials.Credentials; -import org.pac4j.core.credentials.TokenCredentials; -import org.pac4j.core.credentials.authenticator.Authenticator; -import org.pac4j.core.exception.CredentialsException; import org.pac4j.core.matching.PathMatcher; -import org.pac4j.core.profile.CommonProfile; import org.pac4j.core.profile.definition.CommonProfileDefinition; import org.pac4j.http.client.direct.HeaderClient; import org.pac4j.saml.client.SAML2Client; @@ -66,29 +61,7 @@ public Config config(final Pac4jConfigurationProperties pac4jConfigProps, switch (pac4jConfigProps.getTypeOfAuth()) { case "HEADER": { log.info("**** Configuring PAC4J Header Client"); - HeaderClient headerClient = new HeaderClient(pac4jConfigProps.getAuthenticationHeader(), - new Authenticator() { - @Override - public void validate(Credentials credentials, WebContext context) { - { - if (credentials instanceof TokenCredentials) { - TokenCredentials creds = (TokenCredentials) credentials; - String token = creds.getToken(); - if (StringUtils.isAllBlank(token)) { - throw new CredentialsException("Supplied token value in header was missing or blank"); - } - } else { - throw new CredentialsException("Invalid Credentials object generated by HeaderClient"); - } - final CommonProfile profile = new CommonProfile(); - String token = ((TokenCredentials)credentials).getToken(); - profile.setId(token); - profile.addAttribute("username", token); - profile.setRoles(userService.getUserRoles(token)); - credentials.setUserProfile(profile); - } - } - }); + HeaderClient headerClient = new HeaderClient(pac4jConfigProps.getAuthenticationHeader(), new ShibuiPac4JHeaderClientAuthenticator(userService)); headerClient.setName(PAC4J_CLIENT_NAME); clients.setClients(headerClient); break; @@ -107,12 +80,10 @@ public void validate(Credentials credentials, WebContext context) { saml2Config.setForceServiceProviderMetadataGeneration(pac4jConfigProps.isForceServiceProviderMetadataGeneration()); saml2Config.setWantsAssertionsSigned(pac4jConfigProps.isWantAssertionsSigned()); saml2Config.setAttributeAsId(pac4jConfigProps.getSimpleProfileMapping().getUsername()); - //saml2Config.setPostLogoutURL(pac4jConfigProps.getPostLogoutURL()); // consideration needed? - //saml2Config.setSpLogoutRequestBindingType(pac4jConfigProps.getSpLogoutRequestBindingType()); final SAML2Client saml2Client = new SAML2Client(saml2Config); saml2Client.addAuthorizationGenerator(saml2ModelAuthorizationGenerator); - SAML2Authenticator saml2Authenticator = new SAML2Authenticator(saml2Config.getAttributeAsId(), saml2Config.getMappedAttributes()); + SAML2Authenticator saml2Authenticator = new ShibuiSAML2Authenticator(saml2Config.getAttributeAsId(), saml2Config.getMappedAttributes(), userService); saml2Authenticator.setProfileDefinition(new CommonProfileDefinition(p -> new BetterSAML2Profile(pac4jConfigProps.getSimpleProfileMapping()))); saml2Client.setAuthenticator(saml2Authenticator); diff --git a/pac4j-module/src/main/java/net/unicon/shibui/pac4j/Pac4jConfigurationProperties.java b/pac4j-module/src/main/java/net/unicon/shibui/pac4j/Pac4jConfigurationProperties.java index 41f65d43b..30311ba84 100644 --- a/pac4j-module/src/main/java/net/unicon/shibui/pac4j/Pac4jConfigurationProperties.java +++ b/pac4j-module/src/main/java/net/unicon/shibui/pac4j/Pac4jConfigurationProperties.java @@ -24,6 +24,7 @@ public class Pac4jConfigurationProperties { private String keystorePath = "/tmp/samlKeystore.jks"; private int maximumAuthenticationLifetime = 3600; private String privateKeyPassword = "changeit"; + private boolean requireAssertedRoleForNewUsers = false; private SimpleProfileMapping simpleProfileMapping; private String serviceProviderEntityId = "https://unicon.net/shibui"; private String serviceProviderMetadataPath = "/tmp/sp-metadata.xml"; @@ -37,6 +38,7 @@ public static class SimpleProfileMapping { private String email; private String firstName; private String groups; + private String roles; private String lastName; private String username; } diff --git a/pac4j-module/src/main/java/net/unicon/shibui/pac4j/WebSecurity.java b/pac4j-module/src/main/java/net/unicon/shibui/pac4j/WebSecurity.java index b9b14a168..17bc554ff 100644 --- a/pac4j-module/src/main/java/net/unicon/shibui/pac4j/WebSecurity.java +++ b/pac4j-module/src/main/java/net/unicon/shibui/pac4j/WebSecurity.java @@ -1,13 +1,12 @@ package net.unicon.shibui.pac4j; import edu.internet2.tier.shibboleth.admin.ui.configuration.auto.EmailConfiguration; -import edu.internet2.tier.shibboleth.admin.ui.security.repository.RoleRepository; import edu.internet2.tier.shibboleth.admin.ui.security.service.IGroupService; +import edu.internet2.tier.shibboleth.admin.ui.security.service.IRolesService; import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService; import edu.internet2.tier.shibboleth.admin.ui.service.EmailService; import static net.unicon.shibui.pac4j.Pac4jConfiguration.PAC4J_CLIENT_NAME; import org.pac4j.core.config.Config; - import org.pac4j.core.matching.Matcher; import org.pac4j.springframework.security.web.CallbackFilter; import org.pac4j.springframework.security.web.SecurityFilter; @@ -34,9 +33,9 @@ public class WebSecurity { @Bean("webSecurityConfig") public WebSecurityConfigurerAdapter webSecurityConfigurerAdapter(final Config config, UserService userService, - RoleRepository roleRepository, Optional emailService, + IRolesService rolesService, Optional emailService, Pac4jConfigurationProperties pac4jConfigurationProperties, IGroupService groupService) { - return new Pac4jWebSecurityConfigurerAdapter(config, userService, roleRepository, emailService, groupService, + return new Pac4jWebSecurityConfigurerAdapter(config, userService, rolesService, emailService, groupService, pac4jConfigurationProperties); } @@ -46,14 +45,14 @@ public static class Pac4jWebSecurityConfigurerAdapter extends WebSecurityConfigu private Optional emailService; private IGroupService groupService; private Pac4jConfigurationProperties pac4jConfigurationProperties; - private RoleRepository roleRepository; + private IRolesService rolesService; private UserService userService; - public Pac4jWebSecurityConfigurerAdapter(final Config config, UserService userService, RoleRepository roleRepository, + public Pac4jWebSecurityConfigurerAdapter(final Config config, UserService userService, IRolesService rolesService, Optional emailService, IGroupService groupService, Pac4jConfigurationProperties pac4jConfigurationProperties) { this.config = config; this.userService = userService; - this.roleRepository = roleRepository; + this.rolesService = rolesService; this.emailService = emailService; this.groupService = groupService; this.pac4jConfigurationProperties = pac4jConfigurationProperties; @@ -69,7 +68,7 @@ protected void configure(HttpSecurity http) throws Exception { http.antMatcher("/**").addFilterBefore(getFilter(config, pac4jConfigurationProperties.getTypeOfAuth()), BasicAuthenticationFilter.class); http.antMatcher("/**").addFilterBefore(securityFilter, BasicAuthenticationFilter.class); // add the new user filter - http.addFilterAfter(new AddNewUserFilter(pac4jConfigurationProperties, userService, roleRepository, getPathMatcher("exclude-paths-matcher"), groupService, emailService), SecurityFilter.class); + http.addFilterAfter(new AddNewUserFilter(pac4jConfigurationProperties, userService, rolesService, getPathMatcher("exclude-paths-matcher"), groupService, emailService), SecurityFilter.class); http.authorizeRequests().anyRequest().fullyAuthenticated(); diff --git a/pac4j-module/src/main/java/net/unicon/shibui/pac4j/authenticator/ShibuiPac4JHeaderClientAuthenticator.java b/pac4j-module/src/main/java/net/unicon/shibui/pac4j/authenticator/ShibuiPac4JHeaderClientAuthenticator.java new file mode 100644 index 000000000..1109b5d72 --- /dev/null +++ b/pac4j-module/src/main/java/net/unicon/shibui/pac4j/authenticator/ShibuiPac4JHeaderClientAuthenticator.java @@ -0,0 +1,40 @@ +package net.unicon.shibui.pac4j.authenticator; + +import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService; +import lombok.AllArgsConstructor; +import org.apache.commons.lang3.StringUtils; +import org.pac4j.core.context.WebContext; +import org.pac4j.core.credentials.Credentials; +import org.pac4j.core.credentials.TokenCredentials; +import org.pac4j.core.credentials.authenticator.Authenticator; +import org.pac4j.core.exception.CredentialsException; +import org.pac4j.core.profile.CommonProfile; + +/** + * Handles parsing the header tokens when using the Pac4J Header client + */ +@AllArgsConstructor +public class ShibuiPac4JHeaderClientAuthenticator implements Authenticator { + private UserService userService; + + @Override + public void validate(Credentials credentials, WebContext context) { + { + if (credentials instanceof TokenCredentials) { + TokenCredentials creds = (TokenCredentials) credentials; + String token = creds.getToken(); + if (StringUtils.isAllBlank(token)) { + throw new CredentialsException("Supplied token value in header was missing or blank"); + } + } else { + throw new CredentialsException("Invalid Credentials object generated by HeaderClient"); + } + final CommonProfile profile = new CommonProfile(); + String token = ((TokenCredentials) credentials).getToken(); + profile.setId(token); + profile.addAttribute("username", token); + profile.setRoles(userService.getUserRoles(token)); + credentials.setUserProfile(profile); + } + } +} \ No newline at end of file diff --git a/pac4j-module/src/main/java/net/unicon/shibui/pac4j/authenticator/ShibuiSAML2Authenticator.java b/pac4j-module/src/main/java/net/unicon/shibui/pac4j/authenticator/ShibuiSAML2Authenticator.java new file mode 100644 index 000000000..c5eb8f18b --- /dev/null +++ b/pac4j-module/src/main/java/net/unicon/shibui/pac4j/authenticator/ShibuiSAML2Authenticator.java @@ -0,0 +1,32 @@ +package net.unicon.shibui.pac4j.authenticator; + +import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService; +import lombok.AllArgsConstructor; +import org.pac4j.core.context.WebContext; +import org.pac4j.core.profile.CommonProfile; +import org.pac4j.saml.credentials.SAML2Credentials; +import org.pac4j.saml.credentials.authenticator.SAML2Authenticator; + +import java.util.Map; + +public class ShibuiSAML2Authenticator extends SAML2Authenticator { + private final UserService userService; + + public ShibuiSAML2Authenticator(final String attributeAsId, final Map mappedAttributes, UserService userService) { + super(attributeAsId, mappedAttributes); + this.userService = userService; + } + + /** + * After setting up the information for the user from the SAML, add user roles from the DB if they exist + * @param credentials + * @param context + */ + @Override + public void validate(final SAML2Credentials credentials, final WebContext context) { + super.validate(credentials, context); + CommonProfile profile = credentials.getUserProfile(); + profile.setRoles(userService.getUserRoles(profile.getUsername())); + credentials.setUserProfile(profile); + } +} \ No newline at end of file diff --git a/pac4j-module/src/main/resources/application.yml b/pac4j-module/src/main/resources/application.yml index 4dd28dc1f..ef1c5ee68 100644 --- a/pac4j-module/src/main/resources/application.yml +++ b/pac4j-module/src/main/resources/application.yml @@ -6,4 +6,30 @@ shibui: firstName: givenName lastName: sn email: mail - groups: urn:oid:1.3.6.1.4.1.5923.1.5.1.1 # attributeId - isMemberOf \ No newline at end of file + groups: urn:oid:1.3.6.1.4.1.5923.1.5.1.1 # attributeId - isMemberOf + roles: + +#shibui: +## Default password must be set for the default user to be configured and setup +# default-rootuser:root +## need to include the encoding for the password - be sure to quote the entire value as shown +# default-password: "{noop}foopassword" +# pac4j-enabled: true +# pac4j: +# keystorePath: "/etc/shibui/samlKeystore.jks" +# keystorePassword: "changeit" +# privateKeyPassword: "changeit" +# serviceProviderEntityId: "https://idp.example.com/shibui" +# serviceProviderMetadataPath: "/etc/shibui/sp-metadata.xml" +# identityProviderMetadataPath: "/etc/shibui/idp-metadata.xml" +# forceServiceProviderMetadataGeneration: false +# callbackUrl: "https://localhost:8443/callback" +# maximumAuthenticationLifetime: 3600000 +# requireAssertedRoleForNewUsers: false #default +# saml2ProfileMapping: +# username: urn:oid:0.9.2342.19200300.100.1.1 +# firstname: urn:oid:2.5.4.42 +# lastname: urn:oid:2.5.4.4 +# email: urn:oid:0.9.2342.19200300.100.1.3 +# groups: urn:oid:1.3.6.1.4.1.5923.1.5.1.1 # attributeId - isMemberOf +# roles: --define name of the attribute containing the incoming user roles-- \ No newline at end of file diff --git a/pac4j-module/src/test/groovy/net/unicon/shibui/pac4j/AddNewUserFilterMockTests.groovy b/pac4j-module/src/test/groovy/net/unicon/shibui/pac4j/AddNewUserFilterMockTests.groovy index f39a8b988..5c1e7450a 100644 --- a/pac4j-module/src/test/groovy/net/unicon/shibui/pac4j/AddNewUserFilterMockTests.groovy +++ b/pac4j-module/src/test/groovy/net/unicon/shibui/pac4j/AddNewUserFilterMockTests.groovy @@ -4,6 +4,7 @@ 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.RoleRepository import edu.internet2.tier.shibboleth.admin.ui.security.service.IGroupService +import edu.internet2.tier.shibboleth.admin.ui.security.service.RolesServiceImpl import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService import edu.internet2.tier.shibboleth.admin.ui.service.EmailService import org.pac4j.core.matching.PathMatcher @@ -28,58 +29,42 @@ import javax.servlet.http.HttpServletResponse @EnableConfigurationProperties([Pac4jConfigurationProperties]) class AddNewUserFilterMockTests extends Specification { - UserService userService = Mock() - RoleRepository roleRepository = Mock() + @Subject + AddNewUserFilter addNewUserFilter + + @Autowired + Pac4jConfigurationProperties pac4jConfigurationProperties + + Authentication authentication = Mock() + FilterChain chain = Mock() EmailService emailService = Mock() IGroupService groupService = Mock() - HttpServletRequest request = Mock() HttpServletResponse response = Mock() - FilterChain chain = Mock() - - SecurityContext securityContext = Mock() - Authentication authentication = Mock() + RoleRepository roleRepository = Mock() SAML2Profile saml2Profile = Mock() - - @Autowired - Pac4jConfigurationProperties pac4jConfigurationProperties + SecurityContext securityContext = Mock() + UserService userService = Mock() Pac4jConfigurationProperties.SimpleProfileMapping profileMapping - @Subject - AddNewUserFilter addNewUserFilter - def setup() { SecurityContextHolder.setContext(securityContext) securityContext.getAuthentication() >> authentication authentication.getPrincipal() >> saml2Profile - addNewUserFilter = new AddNewUserFilter(pac4jConfigurationProperties, userService, roleRepository, new PathMatcher(), groupService, Optional.of(emailService)) - profileMapping = pac4jConfigurationProperties.simpleProfileMapping - } - - def "new users are redirected"() { - given: - ['Username': 'newUser', - 'FirstName': 'New', - 'LastName': 'User', - 'Email': 'newuser@institution.edu'].each { key, value -> - saml2Profile.getAttribute(profileMapping."get${key}"()) >> [value] + RolesServiceImpl roleService = new RolesServiceImpl().with { + it.roleRepository = roleRepository + it } - saml2Profile.getUsername() >> "newUser" - userService.findByUsername('newUser') >> Optional.empty() - roleRepository.findByName('ROLE_NONE') >> Optional.of(new Role('ROLE_NONE')) - - when: - addNewUserFilter.doFilter(request, response, chain) - then: - 0 * roleRepository.save(_) - 1 * userService.save(_ as User) >> { User user -> user } - 1 * emailService.sendNewUserMail('newUser') - 1 * response.sendRedirect("/unsecured/error.html") + addNewUserFilter = new AddNewUserFilter(pac4jConfigurationProperties, userService, roleService, new PathMatcher(), groupService, Optional.of(emailService)) + profileMapping = pac4jConfigurationProperties.simpleProfileMapping } + // Checked in AddNewUserFilterTests + // def "new users are redirected"() + def "existing users are not redirected"() { given: saml2Profile.getUsername() >> "existingUser" diff --git a/pac4j-module/src/test/groovy/net/unicon/shibui/pac4j/AddNewUserFilterTests.groovy b/pac4j-module/src/test/groovy/net/unicon/shibui/pac4j/AddNewUserFilterTests.groovy index a7c63e1a0..26fe665fd 100644 --- a/pac4j-module/src/test/groovy/net/unicon/shibui/pac4j/AddNewUserFilterTests.groovy +++ b/pac4j-module/src/test/groovy/net/unicon/shibui/pac4j/AddNewUserFilterTests.groovy @@ -6,6 +6,8 @@ import edu.internet2.tier.shibboleth.admin.ui.security.repository.OwnershipRepos 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.IRolesService +import edu.internet2.tier.shibboleth.admin.ui.security.service.RolesServiceImpl import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService import org.pac4j.core.matching.PathMatcher import org.pac4j.saml.profile.SAML2Profile @@ -46,6 +48,9 @@ class AddNewUserFilterTests extends Specification { @Autowired RoleRepository roleRepository + @Autowired + RolesServiceImpl roleService + @Autowired Pac4jConfigurationProperties pac4jConfigurationProperties @@ -71,7 +76,7 @@ class AddNewUserFilterTests extends Specification { securityContext.getAuthentication() >> authentication authentication.getPrincipal() >> saml2Profile - addNewUserFilter = new AddNewUserFilter(pac4jConfigurationProperties, userService, roleRepository, new PathMatcher(), groupService, Optional.empty()) + addNewUserFilter = new AddNewUserFilter(pac4jConfigurationProperties, userService, roleService , new PathMatcher(), groupService, Optional.empty()) profileMapping = pac4jConfigurationProperties.simpleProfileMapping userRepository.findAll().forEach { diff --git a/pac4j-module/src/test/groovy/net/unicon/shibui/pac4j/Pac4JTestingConfig.groovy b/pac4j-module/src/test/groovy/net/unicon/shibui/pac4j/Pac4JTestingConfig.groovy index 552aaca04..c2eb94ca7 100644 --- a/pac4j-module/src/test/groovy/net/unicon/shibui/pac4j/Pac4JTestingConfig.groovy +++ b/pac4j-module/src/test/groovy/net/unicon/shibui/pac4j/Pac4JTestingConfig.groovy @@ -9,6 +9,7 @@ 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.IGroupService +import edu.internet2.tier.shibboleth.admin.ui.security.service.RolesServiceImpl import edu.internet2.tier.shibboleth.admin.ui.security.service.UserService import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration @@ -49,4 +50,12 @@ class Pac4JTestingConfig { UserService userService(IGroupService groupService, OwnershipRepository ownershipRepository, RoleRepository roleRepository, UserRepository userRepository) { return new UserService(groupService, ownershipRepository, roleRepository, userRepository) } + + @Bean + RolesServiceImpl rolesServiceImpl(RoleRepository roleRepository) { + new RolesServiceImpl().with { + it.roleRepository = roleRepository + it + } + } } \ No newline at end of file diff --git a/testbed/authentication/.env b/testbed/authentication/.env new file mode 100644 index 000000000..cda3f6268 --- /dev/null +++ b/testbed/authentication/.env @@ -0,0 +1 @@ +COMPOSE_PROJECT_NAME=shibui-test diff --git a/testbed/authentication/README.md b/testbed/authentication/README.md new file mode 100644 index 000000000..bf787dc8f --- /dev/null +++ b/testbed/authentication/README.md @@ -0,0 +1,10 @@ +1. add the following to `/etc/hosts`: + + ``` + 127.0.0.1 logs.unicon.local grouper-ui.unicon.local grouper-ws.unicon.local idp.unicon.local sp.unicon.local test-app.unicon.local cas.unicon.local shibui.unicon.local mailhog.unicon.local + 127.0.0.1 mq.unicon.local + ``` + +2. `docker compose up -d` to start, `docker compose logs -f` to follow logs. + +3. Access [https://shibui.unicon.local]. You'll need to accept the self signed certificate diff --git a/testbed/authentication/directory/certs/ca.crt b/testbed/authentication/directory/certs/ca.crt deleted file mode 100644 index 158140b15..000000000 --- a/testbed/authentication/directory/certs/ca.crt +++ /dev/null @@ -1,18 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIC0zCCAlmgAwIBAgIUCfQ+m0pgZ/BjYAJvxrn/bdGNZokwCgYIKoZIzj0EAwMw -gZYxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxBMUEgQ2FyIFdhc2gxJDAiBgNVBAsT -G0luZm9ybWF0aW9uIFRlY2hub2xvZ3kgRGVwLjEUMBIGA1UEBxMLQWxidXF1ZXJx -dWUxEzARBgNVBAgTCk5ldyBNZXhpY28xHzAdBgNVBAMTFmRvY2tlci1saWdodC1i -YXNlaW1hZ2UwHhcNMTUxMjIzMTM1MzAwWhcNMjAxMjIxMTM1MzAwWjCBljELMAkG -A1UEBhMCVVMxFTATBgNVBAoTDEExQSBDYXIgV2FzaDEkMCIGA1UECxMbSW5mb3Jt -YXRpb24gVGVjaG5vbG9neSBEZXAuMRQwEgYDVQQHEwtBbGJ1cXVlcnF1ZTETMBEG -A1UECBMKTmV3IE1leGljbzEfMB0GA1UEAxMWZG9ja2VyLWxpZ2h0LWJhc2VpbWFn -ZTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMZf/12pupAgl8Sm+j8GmjNeNbSFAZWW -oTmIvf2Mu4LWPHy4bTldkQgHUbBpT3xWz8f0lB/ru7596CHsGoL2A28hxuclq5hb -Ux1yrIt3bJIY3TuiX25HGTe6kGCJPB1aLaNmMGQwDgYDVR0PAQH/BAQDAgEGMBIG -A1UdEwEB/wQIMAYBAf8CAQIwHQYDVR0OBBYEFE+l6XolXDAYnGLTl4W6ULKHrm74 -MB8GA1UdIwQYMBaAFE+l6XolXDAYnGLTl4W6ULKHrm74MAoGCCqGSM49BAMDA2gA -MGUCMQCXLZj8okyxW6UTL7hribUUbu63PbjuwIXnwi420DdNsvA9A7fcQEXScWFL -XAGC8rkCMGcqwXZPSRfwuI9r+R11gTrP92hnaVxs9sjRikctpkQpOyNlIXFPopFK -8FdfWPypvA== ------END CERTIFICATE----- \ No newline at end of file diff --git a/testbed/authentication/directory/certs/dhparam.pem b/testbed/authentication/directory/certs/dhparam.pem deleted file mode 100644 index 73b8c1e61..000000000 --- a/testbed/authentication/directory/certs/dhparam.pem +++ /dev/null @@ -1,8 +0,0 @@ ------BEGIN DH PARAMETERS----- -MIIBCAKCAQEA7adhygsX/CvbcQBlSEKBmm0D0+hVfIttcftyFTuDPNok4yDJUBUF -zzc7X/i3PUMzANhShBrngBaXbOhVk3QcjMC623TPhFmILx0r236+aQEUGnlwN73M -RUFM6EblYgH4+E4nv+JLwzHdO72+qMAd92rtzVMiaDlCWghH6wdAFoasTsT6Posc -F5T8WCkzFAZeVhNGRKPP6k3l2BjvRJzkwYMMJrxaIYznMEK6H5CYIqZcpeAB3d2B -NaZXLxFCemLrSS16UHrH1modEe8yjrOaE5+ZesGAA9onsNRZkAJp0x/pRaO/+rHn -Q5QVCQCzxY16UsLzH0q/P80xPMU7BMoocwIBAg== ------END DH PARAMETERS----- diff --git a/testbed/authentication/directory/certs/ldap.crt b/testbed/authentication/directory/certs/ldap.crt deleted file mode 100644 index 1e6c74550..000000000 --- a/testbed/authentication/directory/certs/ldap.crt +++ /dev/null @@ -1,18 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIC+DCCAn2gAwIBAgIUUjr8VSD3Ze+xx2wTk+B7wb2AMhEwCgYIKoZIzj0EAwMw -gZYxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxBMUEgQ2FyIFdhc2gxJDAiBgNVBAsT -G0luZm9ybWF0aW9uIFRlY2hub2xvZ3kgRGVwLjEUMBIGA1UEBxMLQWxidXF1ZXJx -dWUxEzARBgNVBAgTCk5ldyBNZXhpY28xHzAdBgNVBAMTFmRvY2tlci1saWdodC1i -YXNlaW1hZ2UwHhcNMjAwOTE0MjAzODAwWhcNMjEwOTE0MjAzODAwWjCBiTELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCk5ldyBNZXhpY28xFDASBgNVBAcTC0FsYnVxdWVy -cXVlMRUwEwYDVQQKEwxBMUEgQ2FyIFdhc2gxJDAiBgNVBAsTG0luZm9ybWF0aW9u -IFRlY2hub2xvZ3kgRGVwLjESMBAGA1UEAxMJZGlyZWN0b3J5MHYwEAYHKoZIzj0C -AQYFK4EEACIDYgAES273bAjfhMOi5t6arQFMA80plxRnNx299spxYjVLxABp0JCZ -fNxwCOxVCB1uBeHUAeUNgrh7bl5DL9rn5jEFfNUvLufU0VGzvcbsUqmKw+vGJtc/ -7zm1WytGncb2Ldc4o4GWMIGTMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggr -BgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUhEBnUCZo -fZHO7R/hUHUgxEJgOOcwHwYDVR0jBBgwFoAUT6XpeiVcMBicYtOXhbpQsoeubvgw -FAYDVR0RBA0wC4IJZGlyZWN0b3J5MAoGCCqGSM49BAMDA2kAMGYCMQCOY/jUx+qB -kRQtDA+UF++/gI22HP8CVKrOA+9/xd68sowhlOoOK0MG22gc6gWVcicCMQCyRw8Z -ydB2NE11uJFrUOu2NYZnFwiYzCrTBuJccUYn/HROMdGFnxqvWfkU5lpQptY= ------END CERTIFICATE----- diff --git a/testbed/authentication/directory/certs/ldap.key b/testbed/authentication/directory/certs/ldap.key deleted file mode 100644 index 4c8d1130d..000000000 --- a/testbed/authentication/directory/certs/ldap.key +++ /dev/null @@ -1,6 +0,0 @@ ------BEGIN EC PRIVATE KEY----- -MIGkAgEBBDBXf/9AHrnYIt5+nudUpJ9wUb4zg15/ixrAUzZ2kj8uBf+qJBakq5hO -/V5/BV8AKAygBwYFK4EEACKhZANiAARLbvdsCN+Ew6Lm3pqtAUwDzSmXFGc3Hb32 -ynFiNUvEAGnQkJl83HAI7FUIHW4F4dQB5Q2CuHtuXkMv2ufmMQV81S8u59TRUbO9 -xuxSqYrD68Ym1z/vObVbK0adxvYt1zg= ------END EC PRIVATE KEY----- diff --git a/testbed/authentication/docker-compose.yml b/testbed/authentication/docker-compose.yml index 89881119f..884042c4a 100644 --- a/testbed/authentication/docker-compose.yml +++ b/testbed/authentication/docker-compose.yml @@ -20,18 +20,19 @@ services: - "8080:8080" - "443:443" - "8443:8443" +# - "8000:8000" volumes: - /var/run/docker.sock:/var/run/docker.sock - - ./reverse-proxy/:/configuration/ - - ./reverse-proxy/certs/:/certs/ + - ../reverse-proxy/:/configuration/ + - ../reverse-proxy/certs/:/certs/ directory: - build: ./directory + build: ../directory networks: - idp volumes: - directory_data:/var/lib/ldap - directory_config:/etc/ldap/slapd.d - - ./directory/certs:/container/service/slapd/assets/certs + - ../directory/certs:/container/service/slapd/assets/certs environment: LDAP_BASE_DN: "dc=unicon,dc=local" LDAP_DOMAIN: "unicon.local" @@ -52,7 +53,7 @@ services: - reverse-proxy - idp volumes: - - ./directory/certs/ca.crt:/opt/shibboleth-idp/credentials/ldap-server.crt + - ../directory/certs/ca.crt:/opt/shibboleth-idp/credentials/ldap-server.crt - ./shibboleth-idp/metadata/dynamic:/opt/shibboleth-idp/metadata/dynamic healthcheck: disable: true @@ -69,6 +70,9 @@ services: volumes: - ./shibui:/conf - ./shibui/application.yml:/application.yml + ports: + - "8000:8000" + entrypoint: ["/usr/bin/java", "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000", "-jar", "app.war"] networks: reverse-proxy: idp: @@ -76,4 +80,4 @@ volumes: directory_data: driver: local directory_config: - driver: local + driver: local \ No newline at end of file diff --git a/testbed/authentication/reverse-proxy/.gitkeep b/testbed/authentication/reverse-proxy/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/testbed/authentication/reverse-proxy/certs/.gitkeep b/testbed/authentication/reverse-proxy/certs/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/testbed/authentication/shibboleth-idp/config/shib-idp/conf/attribute-filter.xml b/testbed/authentication/shibboleth-idp/config/shib-idp/conf/attribute-filter.xml index d4d57250a..c394b76d3 100644 --- a/testbed/authentication/shibboleth-idp/config/shib-idp/conf/attribute-filter.xml +++ b/testbed/authentication/shibboleth-idp/config/shib-idp/conf/attribute-filter.xml @@ -129,6 +129,12 @@ + + + + + + diff --git a/testbed/authentication/shibboleth-idp/config/shib-idp/conf/attribute-resolver.xml b/testbed/authentication/shibboleth-idp/config/shib-idp/conf/attribute-resolver.xml index 135b4bc53..68ba7b6fe 100644 --- a/testbed/authentication/shibboleth-idp/config/shib-idp/conf/attribute-resolver.xml +++ b/testbed/authentication/shibboleth-idp/config/shib-idp/conf/attribute-resolver.xml @@ -124,6 +124,10 @@ + + + + diff --git a/testbed/authentication/shibboleth-idp/config/shib-idp/conf/attributes/inetOrgPerson.xml b/testbed/authentication/shibboleth-idp/config/shib-idp/conf/attributes/inetOrgPerson.xml new file mode 100644 index 000000000..65a422b92 --- /dev/null +++ b/testbed/authentication/shibboleth-idp/config/shib-idp/conf/attributes/inetOrgPerson.xml @@ -0,0 +1,523 @@ + + + + + + + + + + + + + cn + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.3 + urn:mace:dir:attribute-def:cn + Common name + Common name of a person + + + + + + + + departmentNumber + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.16.840.1.113730.3.1.2 + urn:mace:dir:attribute-def:departmentNumber + Department number + Abteilungsnummer + Department number + Nummer der Abteilung + + + + + + + + displayName + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.16.840.1.113730.3.1.241 + urn:mace:dir:attribute-def:displayName + Display name + Anzeigename + Nom + Nome + 表示名 + The name that should appear in white-pages-like applications for this person. + Anzeigename + Nom complet d'affichage + Nome + アプリケーションでの表示に用いられる英字氏名 + + + + + + + + employeeNumber + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.16.840.1.113730.3.1.3 + urn:mace:dir:attribute-def:employeeNumber + Employee number + Mitarbeiternummer + Numéro d'employé + Numero dell'utente + 従業員番号 + Identifies an employee within an organization + Identifiziert einen Mitarbeiter innerhalb der Organisation + Identifie un employé au sein de l'organisation + Identifica l' utente presso l'organizzazione + 所属機関における利用者の従業員番号 + + + + + + + + employeeType + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.16.840.1.113730.3.1.4 + urn:mace:dir:attribute-def:employeeType + Employee type + Employee type + + + + + + + + givenName + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.42 + urn:mace:dir:attribute-def:givenName + Given name + Vorname + Prénom + Nome + + Given name of a person + Vorname + Prénom de l'utilisateur + Nome + 氏名(名)の英語表記 + + + + + + + + homePhone + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:0.9.2342.19200300.100.1.20 + urn:mace:dir:attribute-def:homePhone + Private phone number + Telefon Privat + Teléphone personnel + Numero di telefono privato + 自宅電話番号 + Private phone number + Private Telefonnummer + Numéro de téléphone de domicile de la personne + Numero di telefono privato + 自宅の電話番号 + + + + + + + + homePostalAddress + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:0.9.2342.19200300.100.1.39 + urn:mace:dir:attribute-def:homePostalAddress + Home postal address + Heimatadresse + Heimadresse + Adresse personnelle + Indirizzo personale + 自宅住所 + Home postal address: Home address of the user + Heimatadresse + Heimadresse + Adresse postale de domicile de la personne + Indirizzo personale: indirizzo dove abita l'utente + 自宅の住所 + + + + + + + + initials + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.43 + urn:mace:dir:attribute-def:initials + Initials + Initialen + Initiales + イニシャル + Initials + Anfangsbuchstaben des Namens + Die Anfangsbuchstaben + L' initiales + イニシャル + + + + + + + + l + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.7 + urn:mace:dir:attribute-def:l + Locality name + Ort + Locality name + 場所(L) + Locality name + Ort + Nom de la localité où réside l'objet + 場所の名前 日本の場合は市区町村名 + + + + + + + + mail + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:0.9.2342.19200300.100.1.3 + urn:mace:dir:attribute-def:mail + E-mail + E-Mail + Email + E-mail + メールアドレス + E-Mail: Preferred address for e-mail to be sent to this person + E-Mail-Adresse + E-Mail Adresse + Adresse de courrier électronique + E-Mail: l'indirizzo e-mail preferito dall'utente + メールアドレス + + + + + + + + mobile + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:0.9.2342.19200300.100.1.41 + urn:mace:dir:attribute-def:mobile + Mobile phone number + Telefon Mobil + Numéro de mobile + Numero di cellulare + 携帯電話番号 + Mobile phone number + Mobile Telefonnummer + Numéro de teléphone mobile + Numero di cellulare + 携帯電話の電話番号 + + + + + + + + o + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.10 + urn:mace:dir:attribute-def:o + Organization name + Organisationsname + Nom de l'organisation + 所属機関名 + Organization name + Name der Organisation + Nom de l'organisation + 所属機関名称の英語表記 + + + + + + + + ou + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.11 + urn:mace:dir:attribute-def:ou + Organizational unit + Organisationseinheit + Unité organisationnelle + 機関内所属名 + Organizational unit + Name der Organisationseinheit + Nom de l'unité organisationnelle + 機関内所属名称の英語表記 + + + + + + + + pager + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:0.9.2342.19200300.100.1.42 + urn:mace:dir:attribute-def:pager + Pager number + Pager number + + + + + + + + postalAddress + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.16 + urn:mace:dir:attribute-def:postalAddress + Business postal address + Geschäftsadresse + Adresse professionnelle + Indirizzo professionale + 所属機関住所 + Business postal address: Campus or office address + Geschäftliche Adresse + Adresse am Arbeitsplatz + Adresse de l'institut, de l'université + Indirizzo professionale: indirizzo dell'istituto o dell'ufficio + 所属機関の住所 + + + + + + + + postalCode + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.17 + urn:mace:dir:attribute-def:postalCode + Postal code + ZIP code + Postleitzahl + Code postal + 郵便番号 + Postal code + ZIP code + Postleitzahl + Code postal + 郵便番号 + + + + + + + + postOfficeBox + SAML2StringTranscoder SAML1StringTranscoder + urn:mace:dir:attribute-def:postOfficeBox + urn:oid:2.5.4.18 + Postal box + Postfach + Boite postale + Case postale + 私書箱 + Postal box identifier + Postfach + Boite postale + Case postale + 私書箱 + + + + + + + + preferredLanguage + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.16.840.1.113730.3.1.39 + urn:mace:dir:attribute-def:preferredLanguage + Preferred Language + Bevorzugte Sprache + Langue préférée + Lingua preferita + 希望言語 + Preferred language: Users preferred language (see RFC1766) + Bevorzugte Sprache (siehe RFC1766) + Exemple: fr, de, it, en, ... (voir RFC1766) + Lingua preferita: la lingua preferita dall'utente (cfr. RFC1766) + 利用者が希望する言語(RFC1766 を参照) + + + + + + + + sn + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.4 + urn:mace:dir:attribute-def:sn + Surname + Nachname + Nom de famille + Cognome + + Surname or family name + Familienname + Nom de famille de l'utilisateur. + Cognome dell'utilizzatore + 氏名(姓)の英語表記 + + + + + + + + st + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.8 + urn:mace:dir:attribute-def:st + State or province name + 都道府県もしくは州や省(ST) + State or province name + 州名や省名 国によって異なり日本の場合は都道府県名 + + + + + + + + street + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.9 + urn:mace:dir:attribute-def:street + Street + Straße + Strasse + Rue + 通り + Street address + Name der Straße + Strassenadresse + Nom de rue + 通りおよび番地 + + + + + + + + + telephoneNumber + SAML2StringTranscoder SAML1StringTranscoder + urn:mace:dir:attribute-def:telephoneNumber + urn:oid:2.5.4.20 + Business phone number + Telefon Geschäft + Teléphone professionnel + Numero di telefono dell'ufficio + 所属機関内電話番号 + Business phone number: Office or campus phone number + Telefonnummer am Arbeitsplatz + Teléphone de l'institut, de l'université + Numero di telefono dell'ufficio + 所属機関での利用者の電話番号 + + + + + + + + title + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.12 + urn:mace:dir:attribute-def:title + Title + Titel + Title + 肩書き + Title of a person + Titel der Person + Titre de la personne + 利用者の肩書き + + + + + + + + uid + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:0.9.2342.19200300.100.1.1 + urn:mace:dir:attribute-def:uid + User ID + Benutzer-ID + ID utilisateur + ID dell'utente + ユーザID + A unique identifier for a person, mainly used for user identification within the user's home organization. + Eine eindeutige Nummer für eine Person, welche hauptsächlich zur Identifikation innerhalb der Organisation benutzt wird. + Identifiant de connexion d'une personnes sur les systèmes informatiques. + Identificativo unico della persona, usato per l'identificazione dell'utente all'interno della organizzazione di appartenenza. + 所属機関内で一意の利用者識別子 + + + + + + + + businessCategory + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.15 + urn:mace:dir:attribute-def:businessCategory + Business Category + Business Category + + + + + + + + + diff --git a/testbed/authentication/shibui/application.yml b/testbed/authentication/shibui/application.yml index c8e9ef8cc..14085a9b7 100644 --- a/testbed/authentication/shibui/application.yml +++ b/testbed/authentication/shibui/application.yml @@ -6,7 +6,7 @@ spring: include: shibui: user-bootstrap-resource: file:/conf/users.csv - roles: ROLE_ADMIN,ROLE_NONE,ROLE_USER,ROLE_PONY + roles: ROLE_ADMIN,ROLE_NONE,ROLE_USER,ROLE_ENABLE,ROLE_PONY pac4j-enabled: true pac4j: keystorePath: "/conf/samlKeystore.jks" @@ -23,3 +23,5 @@ shibui: firstName: urn:oid:2.5.4.42 lastName: urn:oid:2.5.4.4 email: urn:oid:0.9.2342.19200300.100.1.3 + groups: urn:oid:2.5.4.15 # businessCategory + roles: urn:oid:1.3.6.1.4.1.5923.1.1.1.7 # eduPersonEntitlement \ No newline at end of file diff --git a/testbed/authentication/directory/001_eduperson.ldif b/testbed/directory/001_eduperson.ldif similarity index 100% rename from testbed/authentication/directory/001_eduperson.ldif rename to testbed/directory/001_eduperson.ldif diff --git a/testbed/authentication/directory/999_users.ldif b/testbed/directory/999_users.ldif similarity index 91% rename from testbed/authentication/directory/999_users.ldif rename to testbed/directory/999_users.ldif index 2beedb37f..a3086787d 100644 --- a/testbed/authentication/directory/999_users.ldif +++ b/testbed/directory/999_users.ldif @@ -46,10 +46,11 @@ givenName: Karl cn: Karl White uid: kwhite mail: kwhite@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student +eduPersonEntitlement: ROLE_ADMIN dn: uid=whenderson,ou=People,dc=unicon,dc=local objectClass: organizationalPerson @@ -62,9 +63,10 @@ givenName: William cn: William Henderson uid: whenderson mail: whenderson@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: community +eduPersonEntitlement: ROLE_USER dn: uid=ddavis,ou=People,dc=unicon,dc=local objectClass: organizationalPerson @@ -77,7 +79,7 @@ givenName: David cn: David Davis uid: ddavis mail: ddavis@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: staff @@ -92,7 +94,7 @@ givenName: Colin cn: Colin Morrison uid: cmorrison mail: cmorrison@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: member eduPersonAffiliation: faculty @@ -108,7 +110,7 @@ givenName: Donna cn: Donna Anderson uid: danderson mail: danderson@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: member @@ -123,7 +125,7 @@ givenName: Ann cn: Ann Morrison uid: amorrison mail: amorrison@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: student eduPersonAffiliation: alum @@ -139,7 +141,7 @@ givenName: William cn: William Price uid: wprice mail: wprice@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: community @@ -154,7 +156,7 @@ givenName: Marie cn: Marie Roberts uid: mroberts mail: mroberts@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -170,7 +172,7 @@ givenName: Kiersten cn: Kiersten Johnson uid: kjohnson mail: kjohnson@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: faculty @@ -185,7 +187,7 @@ givenName: James cn: James Brown uid: jbrown mail: jbrown@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: staff @@ -201,7 +203,7 @@ givenName: Ann cn: Ann Gasper uid: agasper mail: agasper@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -217,7 +219,7 @@ givenName: Jennifer cn: Jennifer Scott uid: jscott mail: jscott@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: community eduPersonAffiliation: student @@ -233,7 +235,7 @@ givenName: Betty cn: Betty Butler uid: bbutler mail: bbutler@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: community eduPersonAffiliation: member @@ -249,7 +251,7 @@ givenName: Thomas cn: Thomas Morrison uid: tmorrison mail: tmorrison@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: student eduPersonAffiliation: staff @@ -265,7 +267,7 @@ givenName: Jennifer cn: Jennifer Brown uid: jbrown14 mail: jbrown14@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: member eduPersonAffiliation: staff @@ -281,7 +283,7 @@ givenName: Greg cn: Greg Johnson uid: gjohnson mail: gjohnson@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: community eduPersonAffiliation: alum @@ -297,7 +299,7 @@ givenName: Robert cn: Robert Martinez uid: rmartinez mail: rmartinez@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -313,7 +315,7 @@ givenName: Jo cn: Jo Lewis uid: jlewis mail: jlewis@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: community eduPersonAffiliation: student @@ -329,7 +331,7 @@ givenName: Mary cn: Mary Gasper uid: mgasper mail: mgasper@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: faculty @@ -344,7 +346,7 @@ givenName: Karoline cn: Karoline Vales uid: kvales mail: kvales@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: student eduPersonAffiliation: alum @@ -360,7 +362,7 @@ givenName: Thomas cn: Thomas Grady uid: tgrady mail: tgrady@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: alum @@ -375,7 +377,7 @@ givenName: Kiersten cn: Kiersten Morrison uid: kmorrison mail: kmorrison@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -391,7 +393,7 @@ givenName: David cn: David Grady uid: dgrady mail: dgrady@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: community @@ -406,7 +408,7 @@ givenName: Mary cn: Mary Thompson uid: mthompson mail: mthompson@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: student @@ -422,7 +424,7 @@ givenName: Bill cn: Bill Gasper uid: bgasper mail: bgasper@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: alum @@ -437,7 +439,7 @@ givenName: David cn: David Lopez uid: dlopez mail: dlopez@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -453,7 +455,7 @@ givenName: Heather cn: Heather White uid: hwhite mail: hwhite@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: staff @@ -468,7 +470,7 @@ givenName: Donna cn: Donna Davis uid: ddavis27 mail: ddavis27@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: community @@ -484,7 +486,7 @@ givenName: Bill cn: Bill Gasper uid: bgasper28 mail: bgasper28@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: faculty @@ -499,7 +501,7 @@ givenName: Jennifer cn: Jennifer Johnson uid: jjohnson mail: jjohnson@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: student eduPersonAffiliation: alum @@ -515,7 +517,7 @@ givenName: Ann cn: Ann Morrison uid: amorrison30 mail: amorrison30@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: alum @@ -530,7 +532,7 @@ givenName: Karl cn: Karl Martinez uid: kmartinez mail: kmartinez@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: student @@ -545,7 +547,7 @@ givenName: Ann cn: Ann Henderson uid: ahenderson mail: ahenderson@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student @@ -561,7 +563,7 @@ givenName: Ann cn: Ann Vales uid: avales mail: avales@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: student eduPersonAffiliation: alum @@ -577,7 +579,7 @@ givenName: Greg cn: Greg Gonazles uid: ggonazles mail: ggonazles@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: community @@ -592,7 +594,7 @@ givenName: Blake cn: Blake Doe uid: bdoe mail: bdoe@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: student @@ -607,7 +609,7 @@ givenName: Paul cn: Paul Langenberg uid: plangenberg mail: plangenberg@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: staff @@ -622,7 +624,7 @@ givenName: Greg cn: Greg Vales uid: gvales mail: gvales@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: community eduPersonAffiliation: member @@ -638,7 +640,7 @@ givenName: Nancy cn: Nancy Henderson uid: nhenderson mail: nhenderson@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: member @@ -653,7 +655,7 @@ givenName: William cn: William Thompson uid: wthompson mail: wthompson@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: staff @@ -668,7 +670,7 @@ givenName: Karl cn: Karl Vales uid: kvales40 mail: kvales40@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: community @@ -683,7 +685,7 @@ givenName: Bill cn: Bill Lee uid: blee mail: blee@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -699,7 +701,7 @@ givenName: Marie cn: Marie Lee uid: mlee mail: mlee@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: staff @@ -714,7 +716,7 @@ givenName: Kiersten cn: Kiersten Clark uid: kclark mail: kclark@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: staff @@ -729,7 +731,7 @@ givenName: William cn: William Scott uid: wscott mail: wscott@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: community @@ -744,7 +746,7 @@ givenName: Donna cn: Donna Butler uid: dbutler mail: dbutler@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: community @@ -759,7 +761,7 @@ givenName: Ann cn: Ann White uid: awhite mail: awhite@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: alum @@ -775,7 +777,7 @@ givenName: Heather cn: Heather Doe uid: hdoe mail: hdoe@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: community eduPersonAffiliation: alum @@ -791,7 +793,7 @@ givenName: David cn: David Langenberg uid: dlangenberg mail: dlangenberg@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: faculty @@ -807,7 +809,7 @@ givenName: Eric cn: Eric Thompson uid: ethompson mail: ethompson@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: member @@ -822,7 +824,7 @@ givenName: Jennifer cn: Jennifer Brown uid: jbrown50 mail: jbrown50@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: staff @@ -838,7 +840,7 @@ givenName: Michael cn: Michael Gonazles uid: mgonazles mail: mgonazles@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -854,7 +856,7 @@ givenName: Greg cn: Greg Butler uid: gbutler mail: gbutler@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: community eduPersonAffiliation: staff @@ -870,7 +872,7 @@ givenName: Mark cn: Mark Vales uid: mvales mail: mvales@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: student @@ -885,7 +887,7 @@ givenName: Michael cn: Michael Lewis uid: mlewis mail: mlewis@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: student @@ -900,7 +902,7 @@ givenName: Heather cn: Heather Vales uid: hvales mail: hvales@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: community @@ -915,7 +917,7 @@ givenName: Jo cn: Jo Scott uid: jscott56 mail: jscott56@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: alum @@ -931,7 +933,7 @@ givenName: Sarah cn: Sarah Doe uid: sdoe mail: sdoe@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student @@ -947,7 +949,7 @@ givenName: Sarah cn: Sarah Vales uid: svales mail: svales@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: student @@ -962,7 +964,7 @@ givenName: Heather cn: Heather Morrison uid: hmorrison mail: hmorrison@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: student @@ -978,7 +980,7 @@ givenName: Jennifer cn: Jennifer Lopez uid: jlopez mail: jlopez@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: faculty @@ -994,7 +996,7 @@ givenName: Donna cn: Donna Langenberg uid: dlangenberg61 mail: dlangenberg61@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: student eduPersonAffiliation: staff @@ -1010,7 +1012,7 @@ givenName: Betty cn: Betty Grady uid: bgrady mail: bgrady@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: alum @@ -1025,7 +1027,7 @@ givenName: Jennifer cn: Jennifer Morrison uid: jmorrison mail: jmorrison@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: staff @@ -1040,7 +1042,7 @@ givenName: William cn: William Vales uid: wvales mail: wvales@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: member @@ -1055,7 +1057,7 @@ givenName: Mark cn: Mark Martinez uid: mmartinez mail: mmartinez@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: alum @@ -1070,7 +1072,7 @@ givenName: Jennifer cn: Jennifer Martinez uid: jmartinez mail: jmartinez@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: community eduPersonAffiliation: member @@ -1086,7 +1088,7 @@ givenName: Mary cn: Mary Gasper uid: mgasper67 mail: mgasper67@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: staff @@ -1101,7 +1103,7 @@ givenName: David cn: David Peterson uid: dpeterson mail: dpeterson@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: student eduPersonAffiliation: alum @@ -1117,7 +1119,7 @@ givenName: Erik cn: Erik Price uid: eprice mail: eprice@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: alum @@ -1132,7 +1134,7 @@ givenName: James cn: James Gasper uid: jgasper mail: jgasper@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: alum @@ -1148,7 +1150,7 @@ givenName: Jennifer cn: Jennifer Clark uid: jclark mail: jclark@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: member @@ -1164,7 +1166,7 @@ givenName: Betty cn: Betty Peterson uid: bpeterson mail: bpeterson@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: community @@ -1180,7 +1182,7 @@ givenName: William cn: William Smith uid: wsmith mail: wsmith@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: faculty @@ -1195,7 +1197,7 @@ givenName: Lisa cn: Lisa Williams uid: lwilliams mail: lwilliams@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: faculty @@ -1210,7 +1212,7 @@ givenName: David cn: David Grady uid: dgrady76 mail: dgrady76@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: member @@ -1225,7 +1227,7 @@ givenName: Jo cn: Jo Martinez uid: jmartinez77 mail: jmartinez77@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: alum @@ -1241,7 +1243,7 @@ givenName: Donna cn: Donna Lewis uid: dlewis mail: dlewis@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: community eduPersonAffiliation: member @@ -1257,7 +1259,7 @@ givenName: William cn: William Scott uid: wscott79 mail: wscott79@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: staff @@ -1273,7 +1275,7 @@ givenName: Donna cn: Donna Doe uid: ddoe mail: ddoe@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -1289,7 +1291,7 @@ givenName: Greg cn: Greg Morrison uid: gmorrison mail: gmorrison@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -1305,7 +1307,7 @@ givenName: Kim cn: Kim Henderson uid: khenderson mail: khenderson@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -1321,7 +1323,7 @@ givenName: Karoline cn: Karoline Peterson uid: kpeterson mail: kpeterson@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: community @@ -1336,7 +1338,7 @@ givenName: Erik cn: Erik Price uid: eprice84 mail: eprice84@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: faculty @@ -1351,7 +1353,7 @@ givenName: Heather cn: Heather Smith uid: hsmith mail: hsmith@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: staff @@ -1367,7 +1369,7 @@ givenName: Donna cn: Donna Williams uid: dwilliams mail: dwilliams@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: staff @@ -1383,7 +1385,7 @@ givenName: Karl cn: Karl Lopez uid: klopez mail: klopez@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: community @@ -1399,7 +1401,7 @@ givenName: William cn: William Johnson uid: wjohnson mail: wjohnson@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: staff @@ -1414,7 +1416,7 @@ givenName: William cn: William Brown uid: wbrown mail: wbrown@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: member @@ -1429,7 +1431,7 @@ givenName: Heather cn: Heather Brown uid: hbrown mail: hbrown@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: faculty @@ -1444,7 +1446,7 @@ givenName: Kim cn: Kim Roberts uid: kroberts mail: kroberts@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: community @@ -1459,7 +1461,7 @@ givenName: Donna cn: Donna Walters uid: dwalters mail: dwalters@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: community @@ -1474,7 +1476,7 @@ givenName: Nancy cn: Nancy Lee uid: nlee mail: nlee@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: member @@ -1490,7 +1492,7 @@ givenName: Sarah cn: Sarah Gonazles uid: sgonazles mail: sgonazles@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: faculty @@ -1505,7 +1507,7 @@ givenName: Heather cn: Heather Anderson uid: handerson mail: handerson@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: member @@ -1520,7 +1522,7 @@ givenName: David cn: David Anderson uid: danderson96 mail: danderson96@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: alum @@ -1535,7 +1537,7 @@ givenName: David cn: David Grady uid: dgrady97 mail: dgrady97@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: community @@ -1550,7 +1552,7 @@ givenName: James cn: James Grady uid: jgrady mail: jgrady@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: student @@ -1565,7 +1567,7 @@ givenName: John cn: John Thompson uid: jthompson mail: jthompson@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: community @@ -1581,7 +1583,7 @@ givenName: Kiersten cn: Kiersten Thompson uid: kthompson mail: kthompson@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: member @@ -1597,7 +1599,7 @@ givenName: John cn: John Peterson uid: jpeterson mail: jpeterson@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: student @@ -1613,7 +1615,7 @@ givenName: Lisa cn: Lisa Morrison uid: lmorrison mail: lmorrison@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: staff @@ -1629,7 +1631,7 @@ givenName: Greg cn: Greg Lee uid: glee mail: glee@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -1645,7 +1647,7 @@ givenName: Lori cn: Lori Henderson uid: lhenderson mail: lhenderson@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: faculty @@ -1661,7 +1663,7 @@ givenName: Marie cn: Marie Scott uid: mscott mail: mscott@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: faculty @@ -1676,7 +1678,7 @@ givenName: Lori cn: Lori Davis uid: ldavis mail: ldavis@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: staff @@ -1691,7 +1693,7 @@ givenName: James cn: James Roberts uid: jroberts mail: jroberts@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -1707,7 +1709,7 @@ givenName: Ann cn: Ann Smith uid: asmith mail: asmith@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: student eduPersonAffiliation: staff @@ -1723,7 +1725,7 @@ givenName: Mark cn: Mark Brown uid: mbrown mail: mbrown@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: community @@ -1738,7 +1740,7 @@ givenName: Kim cn: Kim White uid: kwhite110 mail: kwhite110@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: student @@ -1754,7 +1756,7 @@ givenName: Mark cn: Mark Roberts uid: mroberts111 mail: mroberts111@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: faculty @@ -1769,7 +1771,7 @@ givenName: Mark cn: Mark White uid: mwhite mail: mwhite@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: staff @@ -1784,7 +1786,7 @@ givenName: Jim cn: Jim Price uid: jprice mail: jprice@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: staff @@ -1800,7 +1802,7 @@ givenName: Michael cn: Michael Smith uid: msmith mail: msmith@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: community @@ -1816,7 +1818,7 @@ givenName: Sarah cn: Sarah Clark uid: sclark mail: sclark@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: member eduPersonAffiliation: alum @@ -1832,7 +1834,7 @@ givenName: Donna cn: Donna Vales uid: dvales mail: dvales@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: community @@ -1847,7 +1849,7 @@ givenName: Kim cn: Kim Johnson uid: kjohnson117 mail: kjohnson117@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: student @@ -1863,7 +1865,7 @@ givenName: David cn: David Smith uid: dsmith mail: dsmith@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: staff @@ -1878,7 +1880,7 @@ givenName: Blake cn: Blake White uid: bwhite mail: bwhite@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: member @@ -1893,7 +1895,7 @@ givenName: Lori cn: Lori Doe uid: ldoe mail: ldoe@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: faculty @@ -1908,7 +1910,7 @@ givenName: David cn: David Langenberg uid: dlangenberg121 mail: dlangenberg121@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: community @@ -1923,7 +1925,7 @@ givenName: Greg cn: Greg Williams uid: gwilliams mail: gwilliams@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: faculty @@ -1938,7 +1940,7 @@ givenName: Karoline cn: Karoline Clark uid: kclark123 mail: kclark123@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: staff @@ -1953,7 +1955,7 @@ givenName: Eric cn: Eric Williams uid: ewilliams mail: ewilliams@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: faculty @@ -1968,7 +1970,7 @@ givenName: Eric cn: Eric Gonazles uid: egonazles mail: egonazles@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: alum @@ -1983,7 +1985,7 @@ givenName: Robert cn: Robert Price uid: rprice mail: rprice@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: student @@ -1998,7 +2000,7 @@ givenName: Erik cn: Erik Walters uid: ewalters mail: ewalters@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: student eduPersonAffiliation: staff @@ -2014,7 +2016,7 @@ givenName: Colin cn: Colin Langenberg uid: clangenberg mail: clangenberg@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: alum @@ -2029,7 +2031,7 @@ givenName: Colin cn: Colin Morrison uid: cmorrison129 mail: cmorrison129@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: community @@ -2044,7 +2046,7 @@ givenName: Mary cn: Mary Butler uid: mbutler mail: mbutler@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: alum @@ -2060,7 +2062,7 @@ givenName: Sarah cn: Sarah Martinez uid: smartinez mail: smartinez@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: student @@ -2075,7 +2077,7 @@ givenName: Karl cn: Karl Lewis uid: klewis mail: klewis@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -2091,7 +2093,7 @@ givenName: Marie cn: Marie Williams uid: mwilliams mail: mwilliams@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: faculty @@ -2106,7 +2108,7 @@ givenName: David cn: David Smith uid: dsmith134 mail: dsmith134@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: community @@ -2121,7 +2123,7 @@ givenName: Greg cn: Greg Peterson uid: gpeterson mail: gpeterson@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -2137,7 +2139,7 @@ givenName: Betty cn: Betty Grady uid: bgrady136 mail: bgrady136@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: student eduPersonAffiliation: member @@ -2153,7 +2155,7 @@ givenName: Mark cn: Mark Thompson uid: mthompson137 mail: mthompson137@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: faculty @@ -2168,7 +2170,7 @@ givenName: Mary cn: Mary Roberts uid: mroberts138 mail: mroberts138@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: member @@ -2184,7 +2186,7 @@ givenName: James cn: James Anderson uid: janderson mail: janderson@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: community @@ -2200,7 +2202,7 @@ givenName: Jo cn: Jo Scott uid: jscott140 mail: jscott140@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: community eduPersonAffiliation: faculty @@ -2216,7 +2218,7 @@ givenName: Donna cn: Donna Davis uid: ddavis141 mail: ddavis141@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: member eduPersonAffiliation: alum @@ -2232,7 +2234,7 @@ givenName: Jennifer cn: Jennifer Butler uid: jbutler mail: jbutler@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: member eduPersonAffiliation: alum @@ -2248,7 +2250,7 @@ givenName: Jo cn: Jo Lewis uid: jlewis143 mail: jlewis143@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: member @@ -2263,7 +2265,7 @@ givenName: John cn: John Anderson uid: janderson144 mail: janderson144@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: faculty @@ -2279,7 +2281,7 @@ givenName: Marie cn: Marie Langenberg uid: mlangenberg mail: mlangenberg@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: community eduPersonAffiliation: staff @@ -2295,7 +2297,7 @@ givenName: Jennifer cn: Jennifer Thompson uid: jthompson146 mail: jthompson146@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -2311,7 +2313,7 @@ givenName: Heather cn: Heather Vales uid: hvales147 mail: hvales147@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: staff @@ -2326,7 +2328,7 @@ givenName: John cn: John White uid: jwhite mail: jwhite@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: staff @@ -2341,7 +2343,7 @@ givenName: Thomas cn: Thomas Gasper uid: tgasper mail: tgasper@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: student @@ -2357,7 +2359,7 @@ givenName: Bill cn: Bill Johnson uid: bjohnson mail: bjohnson@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: alum @@ -2372,7 +2374,7 @@ givenName: Mark cn: Mark Roberts uid: mroberts151 mail: mroberts151@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: student @@ -2388,7 +2390,7 @@ givenName: William cn: William Thompson uid: wthompson152 mail: wthompson152@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: community eduPersonAffiliation: staff @@ -2404,7 +2406,7 @@ givenName: Michael cn: Michael Doe uid: mdoe mail: mdoe@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: staff @@ -2419,7 +2421,7 @@ givenName: Bill cn: Bill Gonazles uid: bgonazles mail: bgonazles@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: student @@ -2434,7 +2436,7 @@ givenName: Mark cn: Mark Thompson uid: mthompson155 mail: mthompson155@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: community @@ -2449,7 +2451,7 @@ givenName: David cn: David Lee uid: dlee mail: dlee@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -2465,7 +2467,7 @@ givenName: Bill cn: Bill Roberts uid: broberts mail: broberts@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: community @@ -2480,7 +2482,7 @@ givenName: John cn: John Vales uid: jvales mail: jvales@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: student @@ -2495,7 +2497,7 @@ givenName: William cn: William Williams uid: wwilliams mail: wwilliams@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: alum @@ -2511,7 +2513,7 @@ givenName: William cn: William Williams uid: wwilliams160 mail: wwilliams160@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -2527,7 +2529,7 @@ givenName: Greg cn: Greg Gasper uid: ggasper mail: ggasper@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: staff @@ -2542,7 +2544,7 @@ givenName: Robert cn: Robert Lopez uid: rlopez mail: rlopez@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: student @@ -2558,7 +2560,7 @@ givenName: Michael cn: Michael Grady uid: mgrady mail: mgrady@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: alum @@ -2573,7 +2575,7 @@ givenName: Lisa cn: Lisa Peterson uid: lpeterson mail: lpeterson@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: student @@ -2589,7 +2591,7 @@ givenName: Lori cn: Lori Johnson uid: ljohnson mail: ljohnson@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: member eduPersonAffiliation: alum @@ -2605,7 +2607,7 @@ givenName: Greg cn: Greg Scott uid: gscott mail: gscott@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: alum @@ -2621,7 +2623,7 @@ givenName: Marie cn: Marie Price uid: mprice mail: mprice@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: community @@ -2636,7 +2638,7 @@ givenName: Bill cn: Bill Price uid: bprice mail: bprice@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: member @@ -2651,7 +2653,7 @@ givenName: Ann cn: Ann Anderson uid: aanderson mail: aanderson@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: member @@ -2666,7 +2668,7 @@ givenName: Blake cn: Blake Price uid: bprice170 mail: bprice170@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: alum @@ -2681,7 +2683,7 @@ givenName: Heather cn: Heather Scott uid: hscott mail: hscott@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: member eduPersonAffiliation: alum @@ -2697,7 +2699,7 @@ givenName: Heather cn: Heather Thompson uid: hthompson mail: hthompson@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: student @@ -2713,7 +2715,7 @@ givenName: Jo cn: Jo Morrison uid: jmorrison173 mail: jmorrison173@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: alum @@ -2728,7 +2730,7 @@ givenName: Mary cn: Mary Price uid: mprice174 mail: mprice174@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: community @@ -2743,7 +2745,7 @@ givenName: Heather cn: Heather Price uid: hprice mail: hprice@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: member @@ -2758,7 +2760,7 @@ givenName: Karoline cn: Karoline Butler uid: kbutler mail: kbutler@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: community @@ -2773,7 +2775,7 @@ givenName: Blake cn: Blake Johnson uid: bjohnson177 mail: bjohnson177@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: member @@ -2789,7 +2791,7 @@ givenName: Jennifer cn: Jennifer Lee uid: jlee mail: jlee@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: faculty @@ -2805,7 +2807,7 @@ givenName: Robert cn: Robert Williams uid: rwilliams mail: rwilliams@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: member eduPersonAffiliation: alum @@ -2821,7 +2823,7 @@ givenName: Jo cn: Jo Price uid: jprice180 mail: jprice180@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: community @@ -2836,7 +2838,7 @@ givenName: Kim cn: Kim Gasper uid: kgasper mail: kgasper@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: community eduPersonAffiliation: student @@ -2852,7 +2854,7 @@ givenName: Colin cn: Colin Thompson uid: cthompson mail: cthompson@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -2868,7 +2870,7 @@ givenName: Eric cn: Eric Thompson uid: ethompson183 mail: ethompson183@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: member eduPersonAffiliation: alum @@ -2884,7 +2886,7 @@ givenName: Betty cn: Betty Clark uid: bclark mail: bclark@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: staff @@ -2900,7 +2902,7 @@ givenName: Lori cn: Lori Lee uid: llee mail: llee@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: alum @@ -2915,7 +2917,7 @@ givenName: Karl cn: Karl Peterson uid: kpeterson186 mail: kpeterson186@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: staff @@ -2930,7 +2932,7 @@ givenName: William cn: William Lee uid: wlee mail: wlee@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: community @@ -2945,7 +2947,7 @@ givenName: Greg cn: Greg Johnson uid: gjohnson188 mail: gjohnson188@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: member @@ -2961,7 +2963,7 @@ givenName: Michael cn: Michael Lopez uid: mlopez mail: mlopez@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: staff @@ -2976,7 +2978,7 @@ givenName: Sarah cn: Sarah Grady uid: sgrady mail: sgrady@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: faculty @@ -2991,7 +2993,7 @@ givenName: Paul cn: Paul Brown uid: pbrown mail: pbrown@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student @@ -3007,7 +3009,7 @@ givenName: Mary cn: Mary Williams uid: mwilliams192 mail: mwilliams192@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: student @@ -3022,7 +3024,7 @@ givenName: James cn: James Lewis uid: jlewis193 mail: jlewis193@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: student @@ -3038,7 +3040,7 @@ givenName: Nancy cn: Nancy Brown uid: nbrown mail: nbrown@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: faculty @@ -3054,7 +3056,7 @@ givenName: Jo cn: Jo Walters uid: jwalters mail: jwalters@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: staff @@ -3070,7 +3072,7 @@ givenName: Heather cn: Heather Doe uid: hdoe196 mail: hdoe196@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -3086,7 +3088,7 @@ givenName: Michael cn: Michael Lewis uid: mlewis197 mail: mlewis197@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: alum @@ -3101,7 +3103,7 @@ givenName: Bill cn: Bill Lewis uid: blewis mail: blewis@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: staff @@ -3116,7 +3118,7 @@ givenName: Michael cn: Michael Walters uid: mwalters mail: mwalters@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: student eduPersonAffiliation: alum @@ -3132,7 +3134,7 @@ givenName: Lisa cn: Lisa Lopez uid: llopez mail: llopez@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: community @@ -3147,7 +3149,7 @@ givenName: James cn: James Walters uid: jwalters201 mail: jwalters201@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: student @@ -3163,7 +3165,7 @@ givenName: Karoline cn: Karoline Morrison uid: kmorrison202 mail: kmorrison202@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: member @@ -3179,7 +3181,7 @@ givenName: Bill cn: Bill Grady uid: bgrady203 mail: bgrady203@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: staff @@ -3194,7 +3196,7 @@ givenName: Colin cn: Colin Lewis uid: clewis mail: clewis@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: faculty @@ -3209,7 +3211,7 @@ givenName: Heather cn: Heather White uid: hwhite205 mail: hwhite205@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student @@ -3225,7 +3227,7 @@ givenName: David cn: David Price uid: dprice mail: dprice@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -3241,7 +3243,7 @@ givenName: John cn: John Lee uid: jlee207 mail: jlee207@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: community @@ -3256,7 +3258,7 @@ givenName: John cn: John Butler uid: jbutler208 mail: jbutler208@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: member @@ -3271,7 +3273,7 @@ givenName: Betty cn: Betty Davis uid: bdavis mail: bdavis@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: alum @@ -3286,7 +3288,7 @@ givenName: Jennifer cn: Jennifer Roberts uid: jroberts210 mail: jroberts210@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: member @@ -3301,7 +3303,7 @@ givenName: Greg cn: Greg Johnson uid: gjohnson211 mail: gjohnson211@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: member @@ -3316,7 +3318,7 @@ givenName: Jennifer cn: Jennifer Langenberg uid: jlangenberg mail: jlangenberg@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: alum @@ -3332,7 +3334,7 @@ givenName: Donna cn: Donna Henderson uid: dhenderson mail: dhenderson@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: student @@ -3348,7 +3350,7 @@ givenName: Paul cn: Paul Martinez uid: pmartinez mail: pmartinez@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -3364,7 +3366,7 @@ givenName: Greg cn: Greg Anderson uid: ganderson mail: ganderson@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: member @@ -3380,7 +3382,7 @@ givenName: Mary cn: Mary Peterson uid: mpeterson mail: mpeterson@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: member @@ -3396,7 +3398,7 @@ givenName: Karoline cn: Karoline Lopez uid: klopez217 mail: klopez217@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: member @@ -3411,7 +3413,7 @@ givenName: Thomas cn: Thomas Gasper uid: tgasper218 mail: tgasper218@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: alum @@ -3426,7 +3428,7 @@ givenName: Lori cn: Lori Smith uid: lsmith mail: lsmith@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: member @@ -3441,7 +3443,7 @@ givenName: Eric cn: Eric Butler uid: ebutler mail: ebutler@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -3457,7 +3459,7 @@ givenName: Jim cn: Jim Vales uid: jvales221 mail: jvales221@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: staff @@ -3473,7 +3475,7 @@ givenName: James cn: James Vales uid: jvales222 mail: jvales222@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: community @@ -3488,7 +3490,7 @@ givenName: Karoline cn: Karoline Johnson uid: kjohnson223 mail: kjohnson223@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -3504,7 +3506,7 @@ givenName: Kiersten cn: Kiersten Scott uid: kscott mail: kscott@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: community @@ -3519,7 +3521,7 @@ givenName: David cn: David Williams uid: dwilliams225 mail: dwilliams225@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: staff @@ -3535,7 +3537,7 @@ givenName: Betty cn: Betty Clark uid: bclark226 mail: bclark226@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: member eduPersonAffiliation: faculty @@ -3551,7 +3553,7 @@ givenName: Marie cn: Marie White uid: mwhite227 mail: mwhite227@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: staff @@ -3566,7 +3568,7 @@ givenName: David cn: David Anderson uid: danderson228 mail: danderson228@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: staff @@ -3581,7 +3583,7 @@ givenName: David cn: David Grady uid: dgrady229 mail: dgrady229@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: student @@ -3597,7 +3599,7 @@ givenName: James cn: James Grady uid: jgrady230 mail: jgrady230@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: student @@ -3612,7 +3614,7 @@ givenName: James cn: James Doe uid: jdoe mail: jdoe@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: community @@ -3627,7 +3629,7 @@ givenName: David cn: David Morrison uid: dmorrison mail: dmorrison@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: community @@ -3642,7 +3644,7 @@ givenName: Marie cn: Marie Clark uid: mclark mail: mclark@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -3658,7 +3660,7 @@ givenName: Paul cn: Paul Lopez uid: plopez mail: plopez@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: alum @@ -3673,7 +3675,7 @@ givenName: Heather cn: Heather Lewis uid: hlewis mail: hlewis@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: faculty @@ -3688,7 +3690,7 @@ givenName: David cn: David Smith uid: dsmith236 mail: dsmith236@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: member @@ -3703,7 +3705,7 @@ givenName: Kiersten cn: Kiersten Butler uid: kbutler237 mail: kbutler237@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -3719,7 +3721,7 @@ givenName: Kim cn: Kim Davis uid: kdavis mail: kdavis@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: student @@ -3735,7 +3737,7 @@ givenName: Kiersten cn: Kiersten Doe uid: kdoe mail: kdoe@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: member @@ -3751,7 +3753,7 @@ givenName: Karl cn: Karl Grady uid: kgrady mail: kgrady@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: member @@ -3766,7 +3768,7 @@ givenName: James cn: James Price uid: jprice241 mail: jprice241@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: staff @@ -3781,7 +3783,7 @@ givenName: Sarah cn: Sarah Henderson uid: shenderson mail: shenderson@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: community @@ -3796,7 +3798,7 @@ givenName: Kiersten cn: Kiersten Morrison uid: kmorrison243 mail: kmorrison243@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: student eduPersonAffiliation: alum @@ -3812,7 +3814,7 @@ givenName: Mark cn: Mark Gonazles uid: mgonazles244 mail: mgonazles244@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -3828,7 +3830,7 @@ givenName: Ann cn: Ann Lewis uid: alewis mail: alewis@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: community @@ -3844,7 +3846,7 @@ givenName: Michael cn: Michael Davis uid: mdavis mail: mdavis@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -3860,7 +3862,7 @@ givenName: Marie cn: Marie Anderson uid: manderson mail: manderson@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: staff @@ -3875,7 +3877,7 @@ givenName: Blake cn: Blake Morrison uid: bmorrison mail: bmorrison@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: student @@ -3891,7 +3893,7 @@ givenName: Marie cn: Marie Smith uid: msmith249 mail: msmith249@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: member @@ -3907,7 +3909,7 @@ givenName: James cn: James Doe uid: jdoe250 mail: jdoe250@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: faculty @@ -3922,7 +3924,7 @@ givenName: James cn: James Gasper uid: jgasper251 mail: jgasper251@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: faculty @@ -3938,7 +3940,7 @@ givenName: Jo cn: Jo Scott uid: jscott252 mail: jscott252@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: member eduPersonAffiliation: alum @@ -3954,7 +3956,7 @@ givenName: Karoline cn: Karoline White uid: kwhite253 mail: kwhite253@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: faculty @@ -3969,7 +3971,7 @@ givenName: William cn: William Brown uid: wbrown254 mail: wbrown254@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: faculty @@ -3984,7 +3986,7 @@ givenName: Mark cn: Mark Peterson uid: mpeterson255 mail: mpeterson255@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: community eduPersonAffiliation: student @@ -4000,7 +4002,7 @@ givenName: Kiersten cn: Kiersten Thompson uid: kthompson256 mail: kthompson256@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: community eduPersonAffiliation: faculty @@ -4016,7 +4018,7 @@ givenName: Jo cn: Jo Scott uid: jscott257 mail: jscott257@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -4032,7 +4034,7 @@ givenName: Mary cn: Mary Langenberg uid: mlangenberg258 mail: mlangenberg258@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: student eduPersonAffiliation: alum @@ -4048,7 +4050,7 @@ givenName: Karoline cn: Karoline Henderson uid: khenderson259 mail: khenderson259@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: member @@ -4063,7 +4065,7 @@ givenName: Heather cn: Heather Butler uid: hbutler mail: hbutler@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: student eduPersonAffiliation: member @@ -4079,7 +4081,7 @@ givenName: Marie cn: Marie Butler uid: mbutler261 mail: mbutler261@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: faculty @@ -4094,7 +4096,7 @@ givenName: Jennifer cn: Jennifer Morrison uid: jmorrison262 mail: jmorrison262@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: member @@ -4109,7 +4111,7 @@ givenName: Robert cn: Robert Davis uid: rdavis mail: rdavis@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: member @@ -4125,7 +4127,7 @@ givenName: Kim cn: Kim Butler uid: kbutler264 mail: kbutler264@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: student @@ -4140,7 +4142,7 @@ givenName: James cn: James White uid: jwhite265 mail: jwhite265@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: community @@ -4156,7 +4158,7 @@ givenName: James cn: James Williams uid: jwilliams mail: jwilliams@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: member eduPersonAffiliation: alum @@ -4172,7 +4174,7 @@ givenName: Lisa cn: Lisa Langenberg uid: llangenberg mail: llangenberg@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: faculty @@ -4187,7 +4189,7 @@ givenName: John cn: John Henderson uid: jhenderson mail: jhenderson@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: community @@ -4203,7 +4205,7 @@ givenName: Jennifer cn: Jennifer Langenberg uid: jlangenberg269 mail: jlangenberg269@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: member @@ -4218,7 +4220,7 @@ givenName: Michael cn: Michael Doe uid: mdoe270 mail: mdoe270@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: member @@ -4234,7 +4236,7 @@ givenName: Mark cn: Mark Brown uid: mbrown271 mail: mbrown271@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: staff @@ -4249,7 +4251,7 @@ givenName: John cn: John Vales uid: jvales272 mail: jvales272@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: staff @@ -4265,7 +4267,7 @@ givenName: Thomas cn: Thomas Davis uid: tdavis mail: tdavis@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: student eduPersonAffiliation: member @@ -4281,7 +4283,7 @@ givenName: Eric cn: Eric Johnson uid: ejohnson mail: ejohnson@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: member @@ -4296,7 +4298,7 @@ givenName: John cn: John Peterson uid: jpeterson275 mail: jpeterson275@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: student @@ -4312,7 +4314,7 @@ givenName: Greg cn: Greg Smith uid: gsmith mail: gsmith@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: student eduPersonAffiliation: staff @@ -4328,7 +4330,7 @@ givenName: Kim cn: Kim Lopez uid: klopez278 mail: klopez278@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: member eduPersonAffiliation: staff @@ -4344,7 +4346,7 @@ givenName: Sarah cn: Sarah Clark uid: sclark279 mail: sclark279@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: community eduPersonAffiliation: alum @@ -4360,7 +4362,7 @@ givenName: Ann cn: Ann Brown uid: abrown mail: abrown@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: community @@ -4375,7 +4377,7 @@ givenName: Jim cn: Jim White uid: jwhite281 mail: jwhite281@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: student @@ -4390,7 +4392,7 @@ givenName: Heather cn: Heather Grady uid: hgrady mail: hgrady@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -4406,7 +4408,7 @@ givenName: Kim cn: Kim White uid: kwhite283 mail: kwhite283@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -4422,7 +4424,7 @@ givenName: Betty cn: Betty Smith uid: bsmith mail: bsmith@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: faculty @@ -4438,7 +4440,7 @@ givenName: Eric cn: Eric Lopez uid: elopez mail: elopez@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: member @@ -4454,7 +4456,7 @@ givenName: Paul cn: Paul Clark uid: pclark mail: pclark@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: student @@ -4469,7 +4471,7 @@ givenName: Greg cn: Greg Lee uid: glee287 mail: glee287@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: student @@ -4484,7 +4486,7 @@ givenName: Jennifer cn: Jennifer White uid: jwhite288 mail: jwhite288@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: member eduPersonAffiliation: faculty @@ -4500,7 +4502,7 @@ givenName: Robert cn: Robert Davis uid: rdavis289 mail: rdavis289@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: student @@ -4516,7 +4518,7 @@ givenName: James cn: James Gasper uid: jgasper290 mail: jgasper290@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: alum @@ -4531,7 +4533,7 @@ givenName: Nancy cn: Nancy White uid: nwhite mail: nwhite@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: staff @@ -4547,7 +4549,7 @@ givenName: Kiersten cn: Kiersten Peterson uid: kpeterson292 mail: kpeterson292@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: member @@ -4562,7 +4564,7 @@ givenName: Kiersten cn: Kiersten Lewis uid: klewis293 mail: klewis293@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -4578,7 +4580,7 @@ givenName: John cn: John Vales uid: jvales294 mail: jvales294@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student @@ -4594,7 +4596,7 @@ givenName: Robert cn: Robert Doe uid: rdoe mail: rdoe@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: community eduPersonAffiliation: alum @@ -4610,7 +4612,7 @@ givenName: Blake cn: Blake Brown uid: bbrown mail: bbrown@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: member @@ -4625,7 +4627,7 @@ givenName: Mark cn: Mark Langenberg uid: mlangenberg297 mail: mlangenberg297@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: community @@ -4641,7 +4643,7 @@ givenName: Bill cn: Bill Roberts uid: broberts298 mail: broberts298@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: staff @@ -4657,7 +4659,7 @@ givenName: Lori cn: Lori Doe uid: ldoe299 mail: ldoe299@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: student @@ -4673,7 +4675,7 @@ givenName: Greg cn: Greg Gasper uid: ggasper300 mail: ggasper300@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: student @@ -4688,7 +4690,7 @@ givenName: Lori cn: Lori Roberts uid: lroberts mail: lroberts@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: staff @@ -4703,7 +4705,7 @@ givenName: Kiersten cn: Kiersten White uid: kwhite302 mail: kwhite302@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: member @@ -4718,7 +4720,7 @@ givenName: David cn: David Williams uid: dwilliams303 mail: dwilliams303@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student @@ -4734,7 +4736,7 @@ givenName: Bill cn: Bill Peterson uid: bpeterson304 mail: bpeterson304@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: member @@ -4749,7 +4751,7 @@ givenName: Sarah cn: Sarah Walters uid: swalters mail: swalters@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: staff @@ -4764,7 +4766,7 @@ givenName: Eric cn: Eric Davis uid: edavis mail: edavis@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: faculty @@ -4779,7 +4781,7 @@ givenName: Blake cn: Blake Thompson uid: bthompson mail: bthompson@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: staff @@ -4795,7 +4797,7 @@ givenName: Sarah cn: Sarah Langenberg uid: slangenberg mail: slangenberg@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: community @@ -4811,7 +4813,7 @@ givenName: Donna cn: Donna Williams uid: dwilliams309 mail: dwilliams309@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: community @@ -4827,7 +4829,7 @@ givenName: Colin cn: Colin Peterson uid: cpeterson mail: cpeterson@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: community eduPersonAffiliation: member @@ -4843,7 +4845,7 @@ givenName: Mary cn: Mary Lee uid: mlee311 mail: mlee311@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: alum @@ -4858,7 +4860,7 @@ givenName: Eric cn: Eric Lopez uid: elopez312 mail: elopez312@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: alum @@ -4874,7 +4876,7 @@ givenName: Paul cn: Paul Martinez uid: pmartinez313 mail: pmartinez313@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: member eduPersonAffiliation: alum @@ -4890,7 +4892,7 @@ givenName: Lisa cn: Lisa Williams uid: lwilliams314 mail: lwilliams314@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: member eduPersonAffiliation: staff @@ -4906,7 +4908,7 @@ givenName: Kiersten cn: Kiersten Peterson uid: kpeterson315 mail: kpeterson315@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -4922,7 +4924,7 @@ givenName: Kiersten cn: Kiersten Vales uid: kvales316 mail: kvales316@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: student @@ -4937,7 +4939,7 @@ givenName: Heather cn: Heather Butler uid: hbutler317 mail: hbutler317@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: student eduPersonAffiliation: staff @@ -4953,7 +4955,7 @@ givenName: John cn: John Walters uid: jwalters318 mail: jwalters318@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: community eduPersonAffiliation: staff @@ -4969,7 +4971,7 @@ givenName: Kiersten cn: Kiersten Thompson uid: kthompson319 mail: kthompson319@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: student @@ -4984,7 +4986,7 @@ givenName: Mary cn: Mary Scott uid: mscott320 mail: mscott320@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: community @@ -4999,7 +5001,7 @@ givenName: Robert cn: Robert Butler uid: rbutler mail: rbutler@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: community eduPersonAffiliation: staff @@ -5015,7 +5017,7 @@ givenName: Mark cn: Mark Clark uid: mclark322 mail: mclark322@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: student eduPersonAffiliation: alum @@ -5031,7 +5033,7 @@ givenName: Heather cn: Heather Henderson uid: hhenderson mail: hhenderson@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: member @@ -5047,7 +5049,7 @@ givenName: Heather cn: Heather Doe uid: hdoe324 mail: hdoe324@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: staff @@ -5062,7 +5064,7 @@ givenName: Mark cn: Mark Doe uid: mdoe325 mail: mdoe325@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: staff @@ -5077,7 +5079,7 @@ givenName: Kiersten cn: Kiersten Lopez uid: klopez326 mail: klopez326@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: alum @@ -5092,7 +5094,7 @@ givenName: David cn: David Lewis uid: dlewis327 mail: dlewis327@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: member eduPersonAffiliation: faculty @@ -5108,7 +5110,7 @@ givenName: William cn: William Lee uid: wlee328 mail: wlee328@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: community @@ -5123,7 +5125,7 @@ givenName: Mary cn: Mary Thompson uid: mthompson329 mail: mthompson329@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: alum @@ -5138,7 +5140,7 @@ givenName: Greg cn: Greg Brown uid: gbrown mail: gbrown@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: alum @@ -5153,7 +5155,7 @@ givenName: Robert cn: Robert Martinez uid: rmartinez331 mail: rmartinez331@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: member @@ -5168,7 +5170,7 @@ givenName: Karl cn: Karl Lee uid: klee mail: klee@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: community @@ -5183,7 +5185,7 @@ givenName: Marie cn: Marie Johnson uid: mjohnson mail: mjohnson@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: faculty @@ -5198,7 +5200,7 @@ givenName: Lisa cn: Lisa Williams uid: lwilliams334 mail: lwilliams334@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: staff @@ -5213,7 +5215,7 @@ givenName: Thomas cn: Thomas Brown uid: tbrown mail: tbrown@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: alum @@ -5229,7 +5231,7 @@ givenName: James cn: James Walters uid: jwalters336 mail: jwalters336@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: alum @@ -5244,7 +5246,7 @@ givenName: Lisa cn: Lisa Butler uid: lbutler mail: lbutler@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: student @@ -5259,7 +5261,7 @@ givenName: Kiersten cn: Kiersten Brown uid: kbrown mail: kbrown@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -5275,7 +5277,7 @@ givenName: Paul cn: Paul Johnson uid: pjohnson mail: pjohnson@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: alum @@ -5290,7 +5292,7 @@ givenName: John cn: John Price uid: jprice340 mail: jprice340@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -5306,7 +5308,7 @@ givenName: Jim cn: Jim Price uid: jprice341 mail: jprice341@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -5322,7 +5324,7 @@ givenName: Lisa cn: Lisa Henderson uid: lhenderson342 mail: lhenderson342@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: member @@ -5338,7 +5340,7 @@ givenName: Kim cn: Kim White uid: kwhite343 mail: kwhite343@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: student @@ -5353,7 +5355,7 @@ givenName: Karl cn: Karl Lopez uid: klopez344 mail: klopez344@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: faculty @@ -5368,7 +5370,7 @@ givenName: Bill cn: Bill Gonazles uid: bgonazles345 mail: bgonazles345@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: student @@ -5384,7 +5386,7 @@ givenName: Ann cn: Ann Peterson uid: apeterson mail: apeterson@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: member @@ -5399,7 +5401,7 @@ givenName: David cn: David Butler uid: dbutler347 mail: dbutler347@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: faculty @@ -5414,7 +5416,7 @@ givenName: Sarah cn: Sarah Peterson uid: speterson mail: speterson@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -5430,7 +5432,7 @@ givenName: James cn: James Peterson uid: jpeterson349 mail: jpeterson349@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: student @@ -5445,7 +5447,7 @@ givenName: Greg cn: Greg Johnson uid: gjohnson350 mail: gjohnson350@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: alum @@ -5460,7 +5462,7 @@ givenName: Lisa cn: Lisa Thompson uid: lthompson mail: lthompson@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: staff @@ -5475,7 +5477,7 @@ givenName: Nancy cn: Nancy Clark uid: nclark mail: nclark@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: member @@ -5490,7 +5492,7 @@ givenName: Sarah cn: Sarah Williams uid: swilliams mail: swilliams@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: student @@ -5506,7 +5508,7 @@ givenName: Jennifer cn: Jennifer Price uid: jprice354 mail: jprice354@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: faculty @@ -5521,7 +5523,7 @@ givenName: Lori cn: Lori Clark uid: lclark mail: lclark@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: faculty @@ -5536,7 +5538,7 @@ givenName: Greg cn: Greg Henderson uid: ghenderson mail: ghenderson@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: student @@ -5551,7 +5553,7 @@ givenName: Eric cn: Eric Gonazles uid: egonazles357 mail: egonazles357@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: student @@ -5566,7 +5568,7 @@ givenName: Donna cn: Donna Langenberg uid: dlangenberg358 mail: dlangenberg358@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: staff @@ -5582,7 +5584,7 @@ givenName: Colin cn: Colin Brown uid: cbrown mail: cbrown@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: student @@ -5597,7 +5599,7 @@ givenName: Thomas cn: Thomas Walters uid: twalters mail: twalters@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: alum @@ -5612,7 +5614,7 @@ givenName: Sarah cn: Sarah White uid: swhite mail: swhite@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: community @@ -5627,7 +5629,7 @@ givenName: Robert cn: Robert Walters uid: rwalters mail: rwalters@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: community @@ -5642,7 +5644,7 @@ givenName: Erik cn: Erik Roberts uid: eroberts mail: eroberts@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: faculty @@ -5657,7 +5659,7 @@ givenName: Blake cn: Blake Vales uid: bvales mail: bvales@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: member @@ -5672,7 +5674,7 @@ givenName: Betty cn: Betty Doe uid: bdoe365 mail: bdoe365@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -5688,7 +5690,7 @@ givenName: Nancy cn: Nancy Lee uid: nlee366 mail: nlee366@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: staff @@ -5703,7 +5705,7 @@ givenName: Thomas cn: Thomas Morrison uid: tmorrison367 mail: tmorrison367@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: student @@ -5718,7 +5720,7 @@ givenName: Kiersten cn: Kiersten Butler uid: kbutler368 mail: kbutler368@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -5734,7 +5736,7 @@ givenName: Bill cn: Bill Davis uid: bdavis369 mail: bdavis369@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: faculty @@ -5749,7 +5751,7 @@ givenName: Kiersten cn: Kiersten Davis uid: kdavis370 mail: kdavis370@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -5765,7 +5767,7 @@ givenName: Lori cn: Lori Lewis uid: llewis mail: llewis@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: community @@ -5780,7 +5782,7 @@ givenName: Donna cn: Donna Johnson uid: djohnson mail: djohnson@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: student eduPersonAffiliation: alum @@ -5796,7 +5798,7 @@ givenName: James cn: James Langenberg uid: jlangenberg373 mail: jlangenberg373@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: student eduPersonAffiliation: member @@ -5812,7 +5814,7 @@ givenName: Karoline cn: Karoline Langenberg uid: klangenberg mail: klangenberg@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: staff @@ -5827,7 +5829,7 @@ givenName: John cn: John Thompson uid: jthompson375 mail: jthompson375@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: community eduPersonAffiliation: alum @@ -5843,7 +5845,7 @@ givenName: Jennifer cn: Jennifer Gonazles uid: jgonazles mail: jgonazles@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -5859,7 +5861,7 @@ givenName: Mark cn: Mark Scott uid: mscott377 mail: mscott377@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: community @@ -5875,7 +5877,7 @@ givenName: Jennifer cn: Jennifer Smith uid: jsmith378 mail: jsmith378@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: community @@ -5890,7 +5892,7 @@ givenName: Marie cn: Marie Roberts uid: mroberts379 mail: mroberts379@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: student eduPersonAffiliation: member @@ -5906,7 +5908,7 @@ givenName: Kiersten cn: Kiersten Price uid: kprice mail: kprice@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: alum @@ -5922,7 +5924,7 @@ givenName: Thomas cn: Thomas Clark uid: tclark mail: tclark@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: community @@ -5938,7 +5940,7 @@ givenName: Erik cn: Erik Gasper uid: egasper mail: egasper@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student @@ -5954,7 +5956,7 @@ givenName: James cn: James Johnson uid: jjohnson383 mail: jjohnson383@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: faculty @@ -5969,7 +5971,7 @@ givenName: Colin cn: Colin Davis uid: cdavis mail: cdavis@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: member @@ -5985,7 +5987,7 @@ givenName: Eric cn: Eric Scott uid: escott mail: escott@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: student eduPersonAffiliation: staff @@ -6001,7 +6003,7 @@ givenName: Karoline cn: Karoline Martinez uid: kmartinez386 mail: kmartinez386@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: member @@ -6016,7 +6018,7 @@ givenName: Lori cn: Lori Grady uid: lgrady mail: lgrady@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: student @@ -6031,7 +6033,7 @@ givenName: Jo cn: Jo Martinez uid: jmartinez388 mail: jmartinez388@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: faculty @@ -6046,7 +6048,7 @@ givenName: Ann cn: Ann Langenberg uid: alangenberg mail: alangenberg@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: staff @@ -6061,7 +6063,7 @@ givenName: Betty cn: Betty Lewis uid: blewis390 mail: blewis390@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: member @@ -6076,7 +6078,7 @@ givenName: Paul cn: Paul Johnson uid: pjohnson391 mail: pjohnson391@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: member @@ -6091,7 +6093,7 @@ givenName: Lori cn: Lori Lee uid: llee392 mail: llee392@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: community eduPersonAffiliation: staff @@ -6107,7 +6109,7 @@ givenName: Sarah cn: Sarah Lewis uid: slewis mail: slewis@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: student @@ -6123,7 +6125,7 @@ givenName: Nancy cn: Nancy Walters uid: nwalters mail: nwalters@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: member @@ -6138,7 +6140,7 @@ givenName: Heather cn: Heather Scott uid: hscott395 mail: hscott395@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: community @@ -6154,7 +6156,7 @@ givenName: Erik cn: Erik Davis uid: edavis396 mail: edavis396@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: community eduPersonAffiliation: faculty @@ -6170,7 +6172,7 @@ givenName: Donna cn: Donna Langenberg uid: dlangenberg397 mail: dlangenberg397@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: community @@ -6186,7 +6188,7 @@ givenName: Paul cn: Paul Langenberg uid: plangenberg398 mail: plangenberg398@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: student eduPersonAffiliation: member @@ -6202,7 +6204,7 @@ givenName: Michael cn: Michael Scott uid: mscott399 mail: mscott399@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: member @@ -6218,7 +6220,7 @@ givenName: Jo cn: Jo Gasper uid: jgasper400 mail: jgasper400@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: community eduPersonAffiliation: staff @@ -6234,7 +6236,7 @@ givenName: Karoline cn: Karoline Martinez uid: kmartinez401 mail: kmartinez401@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: community @@ -6250,7 +6252,7 @@ givenName: Colin cn: Colin Walters uid: cwalters mail: cwalters@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -6266,7 +6268,7 @@ givenName: Colin cn: Colin Gasper uid: cgasper mail: cgasper@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: community @@ -6282,7 +6284,7 @@ givenName: James cn: James Williams uid: jwilliams404 mail: jwilliams404@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: faculty @@ -6298,7 +6300,7 @@ givenName: Robert cn: Robert Walters uid: rwalters405 mail: rwalters405@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: student eduPersonAffiliation: alum @@ -6314,7 +6316,7 @@ givenName: Karl cn: Karl Vales uid: kvales406 mail: kvales406@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: member @@ -6329,7 +6331,7 @@ givenName: Bill cn: Bill Scott uid: bscott mail: bscott@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: community eduPersonAffiliation: alum @@ -6345,7 +6347,7 @@ givenName: Heather cn: Heather Morrison uid: hmorrison408 mail: hmorrison408@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: student @@ -6360,7 +6362,7 @@ givenName: Eric cn: Eric Anderson uid: eanderson mail: eanderson@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -6376,7 +6378,7 @@ givenName: Mark cn: Mark Langenberg uid: mlangenberg410 mail: mlangenberg410@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: member @@ -6391,7 +6393,7 @@ givenName: Mark cn: Mark Smith uid: msmith411 mail: msmith411@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: alum @@ -6407,7 +6409,7 @@ givenName: William cn: William Peterson uid: wpeterson mail: wpeterson@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: student @@ -6423,7 +6425,7 @@ givenName: Marie cn: Marie Gasper uid: mgasper413 mail: mgasper413@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: faculty @@ -6438,7 +6440,7 @@ givenName: Blake cn: Blake Vales uid: bvales414 mail: bvales414@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: student eduPersonAffiliation: member @@ -6454,7 +6456,7 @@ givenName: Blake cn: Blake Grady uid: bgrady415 mail: bgrady415@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: student @@ -6470,7 +6472,7 @@ givenName: Paul cn: Paul Lee uid: plee mail: plee@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: community @@ -6485,7 +6487,7 @@ givenName: Kim cn: Kim Williams uid: kwilliams mail: kwilliams@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: student @@ -6500,7 +6502,7 @@ givenName: William cn: William Williams uid: wwilliams418 mail: wwilliams418@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: community @@ -6515,7 +6517,7 @@ givenName: Jennifer cn: Jennifer Butler uid: jbutler419 mail: jbutler419@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: staff @@ -6530,7 +6532,7 @@ givenName: Heather cn: Heather Vales uid: hvales420 mail: hvales420@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: faculty @@ -6546,7 +6548,7 @@ givenName: Karl cn: Karl Roberts uid: kroberts421 mail: kroberts421@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: student @@ -6561,7 +6563,7 @@ givenName: Betty cn: Betty Doe uid: bdoe422 mail: bdoe422@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: alum @@ -6577,7 +6579,7 @@ givenName: David cn: David Clark uid: dclark mail: dclark@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: member @@ -6592,7 +6594,7 @@ givenName: Michael cn: Michael Henderson uid: mhenderson mail: mhenderson@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -6608,7 +6610,7 @@ givenName: David cn: David Henderson uid: dhenderson425 mail: dhenderson425@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: member @@ -6624,7 +6626,7 @@ givenName: David cn: David Gonazles uid: dgonazles mail: dgonazles@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: member @@ -6640,7 +6642,7 @@ givenName: David cn: David Grady uid: dgrady427 mail: dgrady427@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: community @@ -6655,7 +6657,7 @@ givenName: Jennifer cn: Jennifer Johnson uid: jjohnson428 mail: jjohnson428@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: student eduPersonAffiliation: staff @@ -6671,7 +6673,7 @@ givenName: Jennifer cn: Jennifer Lewis uid: jlewis429 mail: jlewis429@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: community @@ -6687,7 +6689,7 @@ givenName: Kim cn: Kim Langenberg uid: klangenberg430 mail: klangenberg430@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: staff @@ -6702,7 +6704,7 @@ givenName: David cn: David Doe uid: ddoe431 mail: ddoe431@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: member @@ -6717,7 +6719,7 @@ givenName: Eric cn: Eric Scott uid: escott432 mail: escott432@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: student @@ -6733,7 +6735,7 @@ givenName: Lisa cn: Lisa Walters uid: lwalters mail: lwalters@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: member @@ -6748,7 +6750,7 @@ givenName: Greg cn: Greg Smith uid: gsmith434 mail: gsmith434@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -6764,7 +6766,7 @@ givenName: Karl cn: Karl Walters uid: kwalters mail: kwalters@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: community @@ -6780,7 +6782,7 @@ givenName: Thomas cn: Thomas Morrison uid: tmorrison436 mail: tmorrison436@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: faculty @@ -6796,7 +6798,7 @@ givenName: Bill cn: Bill Butler uid: bbutler437 mail: bbutler437@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: alum @@ -6812,7 +6814,7 @@ givenName: Mark cn: Mark Gonazles uid: mgonazles438 mail: mgonazles438@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: community eduPersonAffiliation: faculty @@ -6828,7 +6830,7 @@ givenName: Robert cn: Robert Walters uid: rwalters439 mail: rwalters439@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: alum @@ -6843,7 +6845,7 @@ givenName: Karl cn: Karl Clark uid: kclark440 mail: kclark440@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: staff @@ -6858,7 +6860,7 @@ givenName: Nancy cn: Nancy Vales uid: nvales mail: nvales@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -6874,7 +6876,7 @@ givenName: James cn: James Walters uid: jwalters442 mail: jwalters442@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: community @@ -6889,7 +6891,7 @@ givenName: Bill cn: Bill Williams uid: bwilliams mail: bwilliams@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: student @@ -6904,7 +6906,7 @@ givenName: Jim cn: Jim Grady uid: jgrady444 mail: jgrady444@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: student @@ -6920,7 +6922,7 @@ givenName: Erik cn: Erik Scott uid: escott445 mail: escott445@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: student eduPersonAffiliation: member @@ -6936,7 +6938,7 @@ givenName: Bill cn: Bill Clark uid: bclark446 mail: bclark446@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: student eduPersonAffiliation: staff @@ -6952,7 +6954,7 @@ givenName: Kiersten cn: Kiersten Lopez uid: klopez447 mail: klopez447@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: faculty @@ -6967,7 +6969,7 @@ givenName: Sarah cn: Sarah Lee uid: slee mail: slee@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: community eduPersonAffiliation: student @@ -6983,7 +6985,7 @@ givenName: Donna cn: Donna Williams uid: dwilliams449 mail: dwilliams449@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: staff @@ -6999,7 +7001,7 @@ givenName: Kim cn: Kim Lewis uid: klewis450 mail: klewis450@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: faculty @@ -7015,7 +7017,7 @@ givenName: Eric cn: Eric Langenberg uid: elangenberg mail: elangenberg@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: staff @@ -7030,7 +7032,7 @@ givenName: Robert cn: Robert Vales uid: rvales mail: rvales@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: member eduPersonAffiliation: alum @@ -7046,7 +7048,7 @@ givenName: Jo cn: Jo Gasper uid: jgasper453 mail: jgasper453@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -7062,7 +7064,7 @@ givenName: Mark cn: Mark Gasper uid: mgasper454 mail: mgasper454@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: alum @@ -7078,7 +7080,7 @@ givenName: James cn: James Clark uid: jclark455 mail: jclark455@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: student @@ -7093,7 +7095,7 @@ givenName: Betty cn: Betty Gasper uid: bgasper456 mail: bgasper456@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -7109,7 +7111,7 @@ givenName: Blake cn: Blake Williams uid: bwilliams457 mail: bwilliams457@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: student @@ -7125,7 +7127,7 @@ givenName: Karl cn: Karl Price uid: kprice458 mail: kprice458@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: student @@ -7141,7 +7143,7 @@ givenName: Kiersten cn: Kiersten Smith uid: ksmith mail: ksmith@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: community @@ -7156,7 +7158,7 @@ givenName: Lori cn: Lori Butler uid: lbutler460 mail: lbutler460@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: student @@ -7171,7 +7173,7 @@ givenName: Mark cn: Mark Lewis uid: mlewis461 mail: mlewis461@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: member @@ -7186,7 +7188,7 @@ givenName: Jo cn: Jo Morrison uid: jmorrison462 mail: jmorrison462@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: staff @@ -7202,7 +7204,7 @@ givenName: Mary cn: Mary Smith uid: msmith463 mail: msmith463@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -7218,7 +7220,7 @@ givenName: Blake cn: Blake Lopez uid: blopez mail: blopez@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: community @@ -7233,7 +7235,7 @@ givenName: Heather cn: Heather Davis uid: hdavis mail: hdavis@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: community eduPersonAffiliation: student @@ -7249,7 +7251,7 @@ givenName: Betty cn: Betty Williams uid: bwilliams466 mail: bwilliams466@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: alum @@ -7264,7 +7266,7 @@ givenName: Greg cn: Greg Davis uid: gdavis mail: gdavis@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: faculty @@ -7279,7 +7281,7 @@ givenName: Michael cn: Michael Gonazles uid: mgonazles468 mail: mgonazles468@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: student @@ -7294,7 +7296,7 @@ givenName: Mary cn: Mary Lopez uid: mlopez469 mail: mlopez469@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: member @@ -7309,7 +7311,7 @@ givenName: Eric cn: Eric Roberts uid: eroberts470 mail: eroberts470@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: student eduPersonAffiliation: staff @@ -7325,7 +7327,7 @@ givenName: Blake cn: Blake Smith uid: bsmith471 mail: bsmith471@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: faculty @@ -7341,7 +7343,7 @@ givenName: Robert cn: Robert Williams uid: rwilliams472 mail: rwilliams472@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: alum @@ -7357,7 +7359,7 @@ givenName: Jennifer cn: Jennifer Davis uid: jdavis mail: jdavis@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: staff @@ -7372,7 +7374,7 @@ givenName: Erik cn: Erik Grady uid: egrady mail: egrady@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: student @@ -7387,7 +7389,7 @@ givenName: Donna cn: Donna Peterson uid: dpeterson475 mail: dpeterson475@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: staff @@ -7402,7 +7404,7 @@ givenName: Lisa cn: Lisa Williams uid: lwilliams476 mail: lwilliams476@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: student @@ -7417,7 +7419,7 @@ givenName: Erik cn: Erik Roberts uid: eroberts477 mail: eroberts477@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: student @@ -7433,7 +7435,7 @@ givenName: Paul cn: Paul Vales uid: pvales mail: pvales@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: student @@ -7449,7 +7451,7 @@ givenName: Jim cn: Jim Scott uid: jscott479 mail: jscott479@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: staff @@ -7465,7 +7467,7 @@ givenName: Betty cn: Betty Davis uid: bdavis480 mail: bdavis480@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: alum @@ -7480,7 +7482,7 @@ givenName: Jim cn: Jim Grady uid: jgrady481 mail: jgrady481@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: member @@ -7496,7 +7498,7 @@ givenName: Nancy cn: Nancy Brown uid: nbrown482 mail: nbrown482@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: community eduPersonAffiliation: faculty @@ -7512,7 +7514,7 @@ givenName: Betty cn: Betty Lee uid: blee483 mail: blee483@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: community @@ -7527,7 +7529,7 @@ givenName: Jim cn: Jim Clark uid: jclark484 mail: jclark484@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: community @@ -7542,7 +7544,7 @@ givenName: David cn: David Brown uid: dbrown mail: dbrown@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: community @@ -7557,7 +7559,7 @@ givenName: Paul cn: Paul Gonazles uid: pgonazles mail: pgonazles@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: alum @@ -7572,7 +7574,7 @@ givenName: Mark cn: Mark White uid: mwhite487 mail: mwhite487@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: alum @@ -7587,7 +7589,7 @@ givenName: Sarah cn: Sarah Vales uid: svales488 mail: svales488@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: community @@ -7602,7 +7604,7 @@ givenName: Eric cn: Eric Gasper uid: egasper489 mail: egasper489@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: community eduPersonAffiliation: staff @@ -7618,7 +7620,7 @@ givenName: Kim cn: Kim Doe uid: kdoe490 mail: kdoe490@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: community @@ -7633,7 +7635,7 @@ givenName: Bill cn: Bill Morrison uid: bmorrison491 mail: bmorrison491@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: member @@ -7648,7 +7650,7 @@ givenName: Lori cn: Lori Vales uid: lvales mail: lvales@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: community @@ -7664,7 +7666,7 @@ givenName: Heather cn: Heather Davis uid: hdavis493 mail: hdavis493@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: student @@ -7679,7 +7681,7 @@ givenName: James cn: James Thompson uid: jthompson494 mail: jthompson494@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: alum @@ -7694,7 +7696,7 @@ givenName: Karl cn: Karl Doe uid: kdoe495 mail: kdoe495@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: faculty @@ -7709,7 +7711,7 @@ givenName: Kim cn: Kim Williams uid: kwilliams496 mail: kwilliams496@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: alum @@ -7724,7 +7726,7 @@ givenName: Erik cn: Erik Gasper uid: egasper497 mail: egasper497@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: member @@ -7740,7 +7742,7 @@ givenName: Paul cn: Paul Vales uid: pvales498 mail: pvales498@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -7756,7 +7758,7 @@ givenName: Sarah cn: Sarah Scott uid: sscott mail: sscott@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: member @@ -7771,7 +7773,7 @@ givenName: Thomas cn: Thomas Martinez uid: tmartinez mail: tmartinez@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: community @@ -7786,7 +7788,7 @@ givenName: Marie cn: Marie Vales uid: mvales501 mail: mvales501@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: student eduPersonAffiliation: staff @@ -7802,7 +7804,7 @@ givenName: Mark cn: Mark Henderson uid: mhenderson502 mail: mhenderson502@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -7818,7 +7820,7 @@ givenName: Mark cn: Mark Davis uid: mdavis503 mail: mdavis503@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: member @@ -7834,7 +7836,7 @@ givenName: Mary cn: Mary Doe uid: mdoe504 mail: mdoe504@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: community eduPersonAffiliation: staff @@ -7850,7 +7852,7 @@ givenName: Betty cn: Betty Grady uid: bgrady505 mail: bgrady505@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: alum @@ -7865,7 +7867,7 @@ givenName: Michael cn: Michael Martinez uid: mmartinez506 mail: mmartinez506@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -7881,7 +7883,7 @@ givenName: Betty cn: Betty Walters uid: bwalters mail: bwalters@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: community eduPersonAffiliation: student @@ -7897,7 +7899,7 @@ givenName: Ann cn: Ann Vales uid: avales508 mail: avales508@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: alum @@ -7912,7 +7914,7 @@ givenName: David cn: David Langenberg uid: dlangenberg509 mail: dlangenberg509@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: member @@ -7927,7 +7929,7 @@ givenName: Thomas cn: Thomas Lopez uid: tlopez mail: tlopez@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -7943,7 +7945,7 @@ givenName: Lisa cn: Lisa Clark uid: lclark511 mail: lclark511@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: member @@ -7958,7 +7960,7 @@ givenName: Paul cn: Paul Anderson uid: panderson mail: panderson@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: alum @@ -7973,7 +7975,7 @@ givenName: Bill cn: Bill Johnson uid: bjohnson513 mail: bjohnson513@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: community eduPersonAffiliation: member @@ -7989,7 +7991,7 @@ givenName: William cn: William Lopez uid: wlopez mail: wlopez@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: faculty @@ -8004,7 +8006,7 @@ givenName: Thomas cn: Thomas Martinez uid: tmartinez515 mail: tmartinez515@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: member eduPersonAffiliation: alum @@ -8020,7 +8022,7 @@ givenName: William cn: William Clark uid: wclark mail: wclark@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: community @@ -8035,7 +8037,7 @@ givenName: Jim cn: Jim Williams uid: jwilliams517 mail: jwilliams517@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: member eduPersonAffiliation: staff @@ -8051,7 +8053,7 @@ givenName: Heather cn: Heather Williams uid: hwilliams mail: hwilliams@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: student eduPersonAffiliation: member @@ -8067,7 +8069,7 @@ givenName: Lori cn: Lori Lopez uid: llopez519 mail: llopez519@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: student @@ -8083,7 +8085,7 @@ givenName: Karoline cn: Karoline Lopez uid: klopez520 mail: klopez520@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: student @@ -8098,7 +8100,7 @@ givenName: Thomas cn: Thomas Lee uid: tlee mail: tlee@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: student @@ -8113,7 +8115,7 @@ givenName: Mary cn: Mary Scott uid: mscott522 mail: mscott522@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: member @@ -8128,7 +8130,7 @@ givenName: David cn: David Anderson uid: danderson523 mail: danderson523@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: faculty @@ -8143,7 +8145,7 @@ givenName: Jim cn: Jim Gonazles uid: jgonazles524 mail: jgonazles524@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: community @@ -8158,7 +8160,7 @@ givenName: Heather cn: Heather Gasper uid: hgasper mail: hgasper@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: member @@ -8174,7 +8176,7 @@ givenName: Eric cn: Eric Henderson uid: ehenderson mail: ehenderson@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: community eduPersonAffiliation: member @@ -8190,7 +8192,7 @@ givenName: Bill cn: Bill Scott uid: bscott527 mail: bscott527@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: member eduPersonAffiliation: alum @@ -8206,7 +8208,7 @@ givenName: Eric cn: Eric White uid: ewhite mail: ewhite@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: staff @@ -8221,7 +8223,7 @@ givenName: Sarah cn: Sarah Roberts uid: sroberts mail: sroberts@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: community @@ -8236,7 +8238,7 @@ givenName: Paul cn: Paul Butler uid: pbutler mail: pbutler@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: alum @@ -8251,7 +8253,7 @@ givenName: Greg cn: Greg Davis uid: gdavis531 mail: gdavis531@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: community eduPersonAffiliation: student @@ -8267,7 +8269,7 @@ givenName: William cn: William Johnson uid: wjohnson532 mail: wjohnson532@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: community eduPersonAffiliation: student @@ -8283,7 +8285,7 @@ givenName: Eric cn: Eric Scott uid: escott533 mail: escott533@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: alum @@ -8299,7 +8301,7 @@ givenName: Karl cn: Karl Martinez uid: kmartinez534 mail: kmartinez534@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: staff @@ -8314,7 +8316,7 @@ givenName: Kiersten cn: Kiersten Brown uid: kbrown535 mail: kbrown535@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: faculty @@ -8330,7 +8332,7 @@ givenName: John cn: John Langenberg uid: jlangenberg536 mail: jlangenberg536@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: alum @@ -8345,7 +8347,7 @@ givenName: Greg cn: Greg Davis uid: gdavis537 mail: gdavis537@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: member @@ -8360,7 +8362,7 @@ givenName: William cn: William Doe uid: wdoe mail: wdoe@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -8376,7 +8378,7 @@ givenName: Kiersten cn: Kiersten Thompson uid: kthompson539 mail: kthompson539@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: staff @@ -8392,7 +8394,7 @@ givenName: Lisa cn: Lisa Davis uid: ldavis540 mail: ldavis540@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: member @@ -8408,7 +8410,7 @@ givenName: Blake cn: Blake Martinez uid: bmartinez mail: bmartinez@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -8424,7 +8426,7 @@ givenName: Lisa cn: Lisa Roberts uid: lroberts542 mail: lroberts542@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: student eduPersonAffiliation: staff @@ -8440,7 +8442,7 @@ givenName: Karl cn: Karl Smith uid: ksmith543 mail: ksmith543@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: member eduPersonAffiliation: staff @@ -8456,7 +8458,7 @@ givenName: John cn: John Clark uid: jclark544 mail: jclark544@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: member @@ -8471,7 +8473,7 @@ givenName: Jennifer cn: Jennifer Butler uid: jbutler545 mail: jbutler545@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: alum @@ -8487,7 +8489,7 @@ givenName: John cn: John Grady uid: jgrady546 mail: jgrady546@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: community eduPersonAffiliation: student @@ -8503,7 +8505,7 @@ givenName: Jennifer cn: Jennifer Lee uid: jlee547 mail: jlee547@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: alum @@ -8518,7 +8520,7 @@ givenName: Colin cn: Colin Smith uid: csmith mail: csmith@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: staff @@ -8533,7 +8535,7 @@ givenName: Thomas cn: Thomas Peterson uid: tpeterson mail: tpeterson@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: community @@ -8548,7 +8550,7 @@ givenName: Marie cn: Marie Gonazles uid: mgonazles550 mail: mgonazles550@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: community @@ -8563,7 +8565,7 @@ givenName: Bill cn: Bill White uid: bwhite551 mail: bwhite551@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: member @@ -8578,7 +8580,7 @@ givenName: Nancy cn: Nancy Henderson uid: nhenderson552 mail: nhenderson552@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: alum @@ -8594,7 +8596,7 @@ givenName: Bill cn: Bill Lewis uid: blewis553 mail: blewis553@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: student @@ -8609,7 +8611,7 @@ givenName: Michael cn: Michael Johnson uid: mjohnson554 mail: mjohnson554@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: member @@ -8624,7 +8626,7 @@ givenName: Greg cn: Greg Anderson uid: ganderson555 mail: ganderson555@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: community eduPersonAffiliation: alum @@ -8640,7 +8642,7 @@ givenName: Sarah cn: Sarah Lewis uid: slewis556 mail: slewis556@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -8656,7 +8658,7 @@ givenName: Donna cn: Donna Vales uid: dvales557 mail: dvales557@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: alum @@ -8671,7 +8673,7 @@ givenName: John cn: John Lopez uid: jlopez558 mail: jlopez558@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: student @@ -8686,7 +8688,7 @@ givenName: Karl cn: Karl Martinez uid: kmartinez559 mail: kmartinez559@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: staff @@ -8701,7 +8703,7 @@ givenName: Karl cn: Karl Thompson uid: kthompson560 mail: kthompson560@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: faculty @@ -8716,7 +8718,7 @@ givenName: Karoline cn: Karoline Roberts uid: kroberts561 mail: kroberts561@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: member @@ -8732,7 +8734,7 @@ givenName: Mary cn: Mary Brown uid: mbrown562 mail: mbrown562@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: alum @@ -8747,7 +8749,7 @@ givenName: Betty cn: Betty Lopez uid: blopez563 mail: blopez563@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -8763,7 +8765,7 @@ givenName: Jo cn: Jo Roberts uid: jroberts564 mail: jroberts564@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: member @@ -8779,7 +8781,7 @@ givenName: Jennifer cn: Jennifer Lopez uid: jlopez565 mail: jlopez565@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -8795,7 +8797,7 @@ givenName: Blake cn: Blake Walters uid: bwalters566 mail: bwalters566@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: community @@ -8810,7 +8812,7 @@ givenName: Karoline cn: Karoline Vales uid: kvales567 mail: kvales567@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: member eduPersonAffiliation: alum @@ -8826,7 +8828,7 @@ givenName: Michael cn: Michael Lopez uid: mlopez568 mail: mlopez568@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: community @@ -8842,7 +8844,7 @@ givenName: Thomas cn: Thomas Morrison uid: tmorrison569 mail: tmorrison569@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -8858,7 +8860,7 @@ givenName: Blake cn: Blake Davis uid: bdavis570 mail: bdavis570@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: student @@ -8873,7 +8875,7 @@ givenName: Sarah cn: Sarah Davis uid: sdavis mail: sdavis@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -8889,7 +8891,7 @@ givenName: Blake cn: Blake Anderson uid: banderson572 mail: banderson572@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: community eduPersonAffiliation: alum @@ -8905,7 +8907,7 @@ givenName: William cn: William Anderson uid: wanderson mail: wanderson@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: community eduPersonAffiliation: member @@ -8921,7 +8923,7 @@ givenName: Bill cn: Bill Price uid: bprice574 mail: bprice574@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: staff @@ -8936,7 +8938,7 @@ givenName: Jennifer cn: Jennifer Butler uid: jbutler575 mail: jbutler575@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: community eduPersonAffiliation: student @@ -8952,7 +8954,7 @@ givenName: Jennifer cn: Jennifer Scott uid: jscott576 mail: jscott576@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: staff @@ -8967,7 +8969,7 @@ givenName: David cn: David Doe uid: ddoe577 mail: ddoe577@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: community eduPersonAffiliation: member @@ -8983,7 +8985,7 @@ givenName: Thomas cn: Thomas Davis uid: tdavis578 mail: tdavis578@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: community @@ -8999,7 +9001,7 @@ givenName: Sarah cn: Sarah Langenberg uid: slangenberg579 mail: slangenberg579@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: community @@ -9015,7 +9017,7 @@ givenName: Betty cn: Betty Vales uid: bvales580 mail: bvales580@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: staff @@ -9030,7 +9032,7 @@ givenName: Lori cn: Lori Peterson uid: lpeterson581 mail: lpeterson581@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: alum @@ -9045,7 +9047,7 @@ givenName: Blake cn: Blake Martinez uid: bmartinez582 mail: bmartinez582@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: alum @@ -9061,7 +9063,7 @@ givenName: Ann cn: Ann Smith uid: asmith583 mail: asmith583@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: faculty @@ -9076,7 +9078,7 @@ givenName: Ann cn: Ann Price uid: aprice mail: aprice@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: alum @@ -9092,7 +9094,7 @@ givenName: Eric cn: Eric Henderson uid: ehenderson585 mail: ehenderson585@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student @@ -9108,7 +9110,7 @@ givenName: Lisa cn: Lisa Morrison uid: lmorrison586 mail: lmorrison586@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: alum @@ -9123,7 +9125,7 @@ givenName: Colin cn: Colin Henderson uid: chenderson mail: chenderson@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: student eduPersonAffiliation: staff @@ -9139,7 +9141,7 @@ givenName: Lori cn: Lori Brown uid: lbrown mail: lbrown@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: staff @@ -9154,7 +9156,7 @@ givenName: Paul cn: Paul Smith uid: psmith mail: psmith@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -9170,7 +9172,7 @@ givenName: Karl cn: Karl Lee uid: klee590 mail: klee590@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: member eduPersonAffiliation: faculty @@ -9186,7 +9188,7 @@ givenName: Karl cn: Karl Doe uid: kdoe591 mail: kdoe591@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: community eduPersonAffiliation: student @@ -9202,7 +9204,7 @@ givenName: Lisa cn: Lisa Doe uid: ldoe592 mail: ldoe592@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: member @@ -9218,7 +9220,7 @@ givenName: Marie cn: Marie Vales uid: mvales593 mail: mvales593@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: student @@ -9233,7 +9235,7 @@ givenName: Ann cn: Ann Henderson uid: ahenderson594 mail: ahenderson594@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: alum @@ -9249,7 +9251,7 @@ givenName: Ann cn: Ann Roberts uid: aroberts mail: aroberts@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: community @@ -9264,7 +9266,7 @@ givenName: David cn: David Thompson uid: dthompson mail: dthompson@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: student @@ -9279,7 +9281,7 @@ givenName: Donna cn: Donna Brown uid: dbrown597 mail: dbrown597@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: faculty @@ -9294,7 +9296,7 @@ givenName: Thomas cn: Thomas Martinez uid: tmartinez598 mail: tmartinez598@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: student @@ -9309,7 +9311,7 @@ givenName: Karl cn: Karl Brown uid: kbrown599 mail: kbrown599@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: member @@ -9324,7 +9326,7 @@ givenName: Paul cn: Paul Clark uid: pclark600 mail: pclark600@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student @@ -9340,7 +9342,7 @@ givenName: Michael cn: Michael Price uid: mprice601 mail: mprice601@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: community eduPersonAffiliation: staff @@ -9356,7 +9358,7 @@ givenName: Lisa cn: Lisa Butler uid: lbutler602 mail: lbutler602@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: staff @@ -9371,7 +9373,7 @@ givenName: Jennifer cn: Jennifer Henderson uid: jhenderson603 mail: jhenderson603@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: faculty @@ -9386,7 +9388,7 @@ givenName: Karoline cn: Karoline Scott uid: kscott604 mail: kscott604@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: student @@ -9401,7 +9403,7 @@ givenName: David cn: David Doe uid: ddoe605 mail: ddoe605@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: alum @@ -9417,7 +9419,7 @@ givenName: David cn: David Johnson uid: djohnson606 mail: djohnson606@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: community eduPersonAffiliation: faculty @@ -9433,7 +9435,7 @@ givenName: Paul cn: Paul Butler uid: pbutler607 mail: pbutler607@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: member @@ -9448,7 +9450,7 @@ givenName: Jennifer cn: Jennifer Butler uid: jbutler608 mail: jbutler608@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: community eduPersonAffiliation: student @@ -9464,7 +9466,7 @@ givenName: Kim cn: Kim Smith uid: ksmith609 mail: ksmith609@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: member @@ -9479,7 +9481,7 @@ givenName: James cn: James Peterson uid: jpeterson610 mail: jpeterson610@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: community eduPersonAffiliation: faculty @@ -9495,7 +9497,7 @@ givenName: Karl cn: Karl Butler uid: kbutler611 mail: kbutler611@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student @@ -9511,7 +9513,7 @@ givenName: William cn: William White uid: wwhite mail: wwhite@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: staff @@ -9526,7 +9528,7 @@ givenName: David cn: David Peterson uid: dpeterson613 mail: dpeterson613@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: alum @@ -9542,7 +9544,7 @@ givenName: Karl cn: Karl Lopez uid: klopez614 mail: klopez614@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: member @@ -9557,7 +9559,7 @@ givenName: Thomas cn: Thomas Johnson uid: tjohnson mail: tjohnson@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: faculty @@ -9572,7 +9574,7 @@ givenName: Mark cn: Mark Lee uid: mlee616 mail: mlee616@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: community @@ -9587,7 +9589,7 @@ givenName: Jennifer cn: Jennifer Price uid: jprice617 mail: jprice617@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student @@ -9603,7 +9605,7 @@ givenName: Greg cn: Greg Henderson uid: ghenderson618 mail: ghenderson618@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: alum @@ -9618,7 +9620,7 @@ givenName: Robert cn: Robert Walters uid: rwalters619 mail: rwalters619@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: community @@ -9633,7 +9635,7 @@ givenName: Betty cn: Betty Morrison uid: bmorrison620 mail: bmorrison620@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: member @@ -9648,7 +9650,7 @@ givenName: Lisa cn: Lisa Anderson uid: landerson mail: landerson@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: member @@ -9664,7 +9666,7 @@ givenName: Lori cn: Lori Anderson uid: landerson622 mail: landerson622@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: community @@ -9679,7 +9681,7 @@ givenName: Paul cn: Paul Price uid: pprice mail: pprice@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: student @@ -9694,7 +9696,7 @@ givenName: Nancy cn: Nancy Smith uid: nsmith mail: nsmith@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: student eduPersonAffiliation: alum @@ -9710,7 +9712,7 @@ givenName: James cn: James Peterson uid: jpeterson625 mail: jpeterson625@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: community eduPersonAffiliation: faculty @@ -9726,7 +9728,7 @@ givenName: Mary cn: Mary Lopez uid: mlopez626 mail: mlopez626@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: community eduPersonAffiliation: alum @@ -9742,7 +9744,7 @@ givenName: Donna cn: Donna Vales uid: dvales627 mail: dvales627@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: community @@ -9757,7 +9759,7 @@ givenName: Erik cn: Erik Thompson uid: ethompson628 mail: ethompson628@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: member eduPersonAffiliation: alum @@ -9773,7 +9775,7 @@ givenName: Robert cn: Robert Doe uid: rdoe629 mail: rdoe629@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -9789,7 +9791,7 @@ givenName: Colin cn: Colin Johnson uid: cjohnson mail: cjohnson@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: community @@ -9804,7 +9806,7 @@ givenName: Michael cn: Michael Williams uid: mwilliams631 mail: mwilliams631@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: student @@ -9819,7 +9821,7 @@ givenName: John cn: John Peterson uid: jpeterson632 mail: jpeterson632@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: member @@ -9834,7 +9836,7 @@ givenName: Bill cn: Bill Gonazles uid: bgonazles633 mail: bgonazles633@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: faculty @@ -9849,7 +9851,7 @@ givenName: David cn: David Anderson uid: danderson634 mail: danderson634@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: community @@ -9865,7 +9867,7 @@ givenName: Kim cn: Kim Walters uid: kwalters635 mail: kwalters635@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: faculty @@ -9880,7 +9882,7 @@ givenName: Ann cn: Ann Doe uid: adoe mail: adoe@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: member @@ -9895,7 +9897,7 @@ givenName: Colin cn: Colin Doe uid: cdoe mail: cdoe@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: community @@ -9911,7 +9913,7 @@ givenName: David cn: David Doe uid: ddoe638 mail: ddoe638@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: faculty @@ -9926,7 +9928,7 @@ givenName: Erik cn: Erik Davis uid: edavis639 mail: edavis639@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: student eduPersonAffiliation: alum @@ -9942,7 +9944,7 @@ givenName: Heather cn: Heather White uid: hwhite640 mail: hwhite640@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: faculty @@ -9957,7 +9959,7 @@ givenName: David cn: David Price uid: dprice641 mail: dprice641@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: student @@ -9972,7 +9974,7 @@ givenName: Kim cn: Kim Lopez uid: klopez642 mail: klopez642@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: alum @@ -9987,7 +9989,7 @@ givenName: Ann cn: Ann Brown uid: abrown643 mail: abrown643@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: member @@ -10002,7 +10004,7 @@ givenName: Mary cn: Mary White uid: mwhite644 mail: mwhite644@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: student @@ -10018,7 +10020,7 @@ givenName: Kiersten cn: Kiersten White uid: kwhite645 mail: kwhite645@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: student @@ -10034,7 +10036,7 @@ givenName: Erik cn: Erik Doe uid: edoe mail: edoe@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: staff @@ -10049,7 +10051,7 @@ givenName: Mark cn: Mark Gonazles uid: mgonazles647 mail: mgonazles647@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: member @@ -10065,7 +10067,7 @@ givenName: James cn: James Henderson uid: jhenderson648 mail: jhenderson648@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: community @@ -10081,7 +10083,7 @@ givenName: Bill cn: Bill Smith uid: bsmith649 mail: bsmith649@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: member @@ -10096,7 +10098,7 @@ givenName: Lisa cn: Lisa Morrison uid: lmorrison650 mail: lmorrison650@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -10112,7 +10114,7 @@ givenName: Lori cn: Lori Langenberg uid: llangenberg651 mail: llangenberg651@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: student @@ -10128,7 +10130,7 @@ givenName: Jim cn: Jim Walters uid: jwalters652 mail: jwalters652@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: member @@ -10143,7 +10145,7 @@ givenName: Thomas cn: Thomas Johnson uid: tjohnson653 mail: tjohnson653@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: community eduPersonAffiliation: alum @@ -10159,7 +10161,7 @@ givenName: Jo cn: Jo Walters uid: jwalters654 mail: jwalters654@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: staff @@ -10175,7 +10177,7 @@ givenName: Betty cn: Betty Morrison uid: bmorrison655 mail: bmorrison655@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: student eduPersonAffiliation: member @@ -10191,7 +10193,7 @@ givenName: Michael cn: Michael Clark uid: mclark656 mail: mclark656@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -10207,7 +10209,7 @@ givenName: Erik cn: Erik Williams uid: ewilliams657 mail: ewilliams657@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: member @@ -10222,7 +10224,7 @@ givenName: John cn: John Lewis uid: jlewis658 mail: jlewis658@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -10238,7 +10240,7 @@ givenName: Kiersten cn: Kiersten Grady uid: kgrady659 mail: kgrady659@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: student @@ -10253,7 +10255,7 @@ givenName: William cn: William Martinez uid: wmartinez mail: wmartinez@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: community @@ -10268,7 +10270,7 @@ givenName: Paul cn: Paul Williams uid: pwilliams mail: pwilliams@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: community eduPersonAffiliation: student @@ -10284,7 +10286,7 @@ givenName: Kim cn: Kim Johnson uid: kjohnson662 mail: kjohnson662@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -10300,7 +10302,7 @@ givenName: Sarah cn: Sarah Martinez uid: smartinez663 mail: smartinez663@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: alum @@ -10316,7 +10318,7 @@ givenName: Marie cn: Marie Vales uid: mvales664 mail: mvales664@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: staff @@ -10331,7 +10333,7 @@ givenName: Karl cn: Karl Langenberg uid: klangenberg665 mail: klangenberg665@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: member @@ -10347,7 +10349,7 @@ givenName: Marie cn: Marie Smith uid: msmith666 mail: msmith666@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: student eduPersonAffiliation: alum @@ -10363,7 +10365,7 @@ givenName: Mark cn: Mark Vales uid: mvales667 mail: mvales667@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: community @@ -10379,7 +10381,7 @@ givenName: James cn: James Walters uid: jwalters668 mail: jwalters668@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: member @@ -10394,7 +10396,7 @@ givenName: Paul cn: Paul Gonazles uid: pgonazles669 mail: pgonazles669@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: member eduPersonAffiliation: alum @@ -10410,7 +10412,7 @@ givenName: Donna cn: Donna Vales uid: dvales670 mail: dvales670@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: student @@ -10425,7 +10427,7 @@ givenName: David cn: David Clark uid: dclark671 mail: dclark671@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: alum @@ -10441,7 +10443,7 @@ givenName: Betty cn: Betty Doe uid: bdoe672 mail: bdoe672@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student @@ -10457,7 +10459,7 @@ givenName: Mark cn: Mark Brown uid: mbrown673 mail: mbrown673@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: staff @@ -10472,7 +10474,7 @@ givenName: Karoline cn: Karoline Doe uid: kdoe674 mail: kdoe674@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: alum @@ -10487,7 +10489,7 @@ givenName: William cn: William Thompson uid: wthompson675 mail: wthompson675@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: alum @@ -10503,7 +10505,7 @@ givenName: David cn: David Morrison uid: dmorrison676 mail: dmorrison676@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -10519,7 +10521,7 @@ givenName: Erik cn: Erik Doe uid: edoe677 mail: edoe677@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: community @@ -10534,7 +10536,7 @@ givenName: Nancy cn: Nancy Langenberg uid: nlangenberg mail: nlangenberg@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: member @@ -10550,7 +10552,7 @@ givenName: Karl cn: Karl Peterson uid: kpeterson679 mail: kpeterson679@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: student @@ -10566,7 +10568,7 @@ givenName: Heather cn: Heather Gonazles uid: hgonazles mail: hgonazles@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: member @@ -10582,7 +10584,7 @@ givenName: Donna cn: Donna Roberts uid: droberts mail: droberts@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: staff @@ -10597,7 +10599,7 @@ givenName: David cn: David Gonazles uid: dgonazles682 mail: dgonazles682@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -10613,7 +10615,7 @@ givenName: Mark cn: Mark Morrison uid: mmorrison mail: mmorrison@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: staff @@ -10628,7 +10630,7 @@ givenName: Colin cn: Colin Morrison uid: cmorrison684 mail: cmorrison684@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: faculty @@ -10643,7 +10645,7 @@ givenName: Jim cn: Jim Lewis uid: jlewis685 mail: jlewis685@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: member @@ -10659,7 +10661,7 @@ givenName: Jennifer cn: Jennifer Johnson uid: jjohnson686 mail: jjohnson686@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: student @@ -10674,7 +10676,7 @@ givenName: Erik cn: Erik Lee uid: elee mail: elee@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: student eduPersonAffiliation: member @@ -10690,7 +10692,7 @@ givenName: Donna cn: Donna Doe uid: ddoe688 mail: ddoe688@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: student @@ -10705,7 +10707,7 @@ givenName: Donna cn: Donna Roberts uid: droberts689 mail: droberts689@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: community @@ -10720,7 +10722,7 @@ givenName: Mary cn: Mary Gonazles uid: mgonazles690 mail: mgonazles690@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student @@ -10736,7 +10738,7 @@ givenName: Ann cn: Ann Williams uid: awilliams mail: awilliams@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: staff @@ -10751,7 +10753,7 @@ givenName: Greg cn: Greg Walters uid: gwalters mail: gwalters@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: alum @@ -10767,7 +10769,7 @@ givenName: William cn: William Gonazles uid: wgonazles mail: wgonazles@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -10783,7 +10785,7 @@ givenName: Michael cn: Michael Lewis uid: mlewis694 mail: mlewis694@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: alum @@ -10798,7 +10800,7 @@ givenName: Ann cn: Ann Vales uid: avales695 mail: avales695@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: faculty @@ -10813,7 +10815,7 @@ givenName: Michael cn: Michael Johnson uid: mjohnson696 mail: mjohnson696@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: staff @@ -10828,7 +10830,7 @@ givenName: Kim cn: Kim Anderson uid: kanderson mail: kanderson@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: community eduPersonAffiliation: staff @@ -10844,7 +10846,7 @@ givenName: Thomas cn: Thomas Roberts uid: troberts mail: troberts@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: student @@ -10859,7 +10861,7 @@ givenName: David cn: David Lewis uid: dlewis699 mail: dlewis699@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: student eduPersonAffiliation: staff @@ -10875,7 +10877,7 @@ givenName: Donna cn: Donna Walters uid: dwalters700 mail: dwalters700@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: student eduPersonAffiliation: member @@ -10891,7 +10893,7 @@ givenName: Kim cn: Kim Brown uid: kbrown701 mail: kbrown701@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: student @@ -10906,7 +10908,7 @@ givenName: Erik cn: Erik White uid: ewhite702 mail: ewhite702@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: staff @@ -10921,7 +10923,7 @@ givenName: Lori cn: Lori Walters uid: lwalters703 mail: lwalters703@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: community @@ -10936,7 +10938,7 @@ givenName: Ann cn: Ann Langenberg uid: alangenberg704 mail: alangenberg704@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: staff @@ -10952,7 +10954,7 @@ givenName: Bill cn: Bill Brown uid: bbrown705 mail: bbrown705@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: community @@ -10967,7 +10969,7 @@ givenName: Blake cn: Blake Langenberg uid: blangenberg mail: blangenberg@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: staff @@ -10982,7 +10984,7 @@ givenName: Michael cn: Michael Lewis uid: mlewis707 mail: mlewis707@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: student @@ -10997,7 +10999,7 @@ givenName: Karl cn: Karl Smith uid: ksmith708 mail: ksmith708@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: student eduPersonAffiliation: alum @@ -11013,7 +11015,7 @@ givenName: Colin cn: Colin Lopez uid: clopez mail: clopez@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: member @@ -11029,7 +11031,7 @@ givenName: Mark cn: Mark Clark uid: mclark710 mail: mclark710@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -11045,7 +11047,7 @@ givenName: Thomas cn: Thomas Price uid: tprice mail: tprice@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: staff @@ -11060,7 +11062,7 @@ givenName: Karl cn: Karl Lewis uid: klewis712 mail: klewis712@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: alum @@ -11075,7 +11077,7 @@ givenName: Marie cn: Marie Butler uid: mbutler713 mail: mbutler713@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: member @@ -11090,7 +11092,7 @@ givenName: Mark cn: Mark Morrison uid: mmorrison714 mail: mmorrison714@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: community @@ -11105,7 +11107,7 @@ givenName: Greg cn: Greg Smith uid: gsmith715 mail: gsmith715@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: alum @@ -11120,7 +11122,7 @@ givenName: Robert cn: Robert Anderson uid: randerson mail: randerson@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: member @@ -11135,7 +11137,7 @@ givenName: Kiersten cn: Kiersten Langenberg uid: klangenberg717 mail: klangenberg717@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: community @@ -11150,7 +11152,7 @@ givenName: Mary cn: Mary Langenberg uid: mlangenberg718 mail: mlangenberg718@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: alum @@ -11165,7 +11167,7 @@ givenName: Paul cn: Paul Lee uid: plee719 mail: plee719@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: community @@ -11180,7 +11182,7 @@ givenName: Donna cn: Donna Clark uid: dclark720 mail: dclark720@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: student @@ -11195,7 +11197,7 @@ givenName: Blake cn: Blake Brown uid: bbrown721 mail: bbrown721@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -11211,7 +11213,7 @@ givenName: Blake cn: Blake Vales uid: bvales722 mail: bvales722@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: member @@ -11227,7 +11229,7 @@ givenName: Erik cn: Erik Martinez uid: emartinez mail: emartinez@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: faculty @@ -11242,7 +11244,7 @@ givenName: Karl cn: Karl Gonazles uid: kgonazles mail: kgonazles@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: community @@ -11257,7 +11259,7 @@ givenName: Lisa cn: Lisa Vales uid: lvales725 mail: lvales725@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: student @@ -11272,7 +11274,7 @@ givenName: Karl cn: Karl Grady uid: kgrady726 mail: kgrady726@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: community @@ -11287,7 +11289,7 @@ givenName: Ann cn: Ann Anderson uid: aanderson727 mail: aanderson727@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: staff @@ -11302,7 +11304,7 @@ givenName: Ann cn: Ann White uid: awhite728 mail: awhite728@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student @@ -11318,7 +11320,7 @@ givenName: Lori cn: Lori Williams uid: lwilliams729 mail: lwilliams729@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: community eduPersonAffiliation: member @@ -11334,7 +11336,7 @@ givenName: Bill cn: Bill Clark uid: bclark730 mail: bclark730@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: alum @@ -11349,7 +11351,7 @@ givenName: David cn: David Williams uid: dwilliams731 mail: dwilliams731@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: student @@ -11364,7 +11366,7 @@ givenName: David cn: David Williams uid: dwilliams732 mail: dwilliams732@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: faculty @@ -11379,7 +11381,7 @@ givenName: David cn: David Lewis uid: dlewis733 mail: dlewis733@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: student @@ -11394,7 +11396,7 @@ givenName: Nancy cn: Nancy Doe uid: ndoe mail: ndoe@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: student eduPersonAffiliation: alum @@ -11410,7 +11412,7 @@ givenName: Jennifer cn: Jennifer Johnson uid: jjohnson735 mail: jjohnson735@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: member @@ -11425,7 +11427,7 @@ givenName: Jennifer cn: Jennifer Gonazles uid: jgonazles736 mail: jgonazles736@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: community eduPersonAffiliation: alum @@ -11441,7 +11443,7 @@ givenName: Lisa cn: Lisa Price uid: lprice mail: lprice@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: community @@ -11456,7 +11458,7 @@ givenName: Robert cn: Robert Doe uid: rdoe738 mail: rdoe738@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: faculty @@ -11471,7 +11473,7 @@ givenName: David cn: David Brown uid: dbrown739 mail: dbrown739@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: member @@ -11487,7 +11489,7 @@ givenName: Heather cn: Heather Anderson uid: handerson740 mail: handerson740@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -11503,7 +11505,7 @@ givenName: Jo cn: Jo Martinez uid: jmartinez741 mail: jmartinez741@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: community @@ -11518,7 +11520,7 @@ givenName: Ann cn: Ann Gonazles uid: agonazles mail: agonazles@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: faculty @@ -11534,7 +11536,7 @@ givenName: Erik cn: Erik Davis uid: edavis743 mail: edavis743@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: student @@ -11549,7 +11551,7 @@ givenName: James cn: James Peterson uid: jpeterson744 mail: jpeterson744@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: community @@ -11564,7 +11566,7 @@ givenName: Betty cn: Betty Price uid: bprice745 mail: bprice745@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: community @@ -11579,7 +11581,7 @@ givenName: Jim cn: Jim Williams uid: jwilliams746 mail: jwilliams746@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -11595,7 +11597,7 @@ givenName: Robert cn: Robert Roberts uid: rroberts mail: rroberts@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: member @@ -11610,7 +11612,7 @@ givenName: Karl cn: Karl Roberts uid: kroberts748 mail: kroberts748@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -11626,7 +11628,7 @@ givenName: Jim cn: Jim Anderson uid: janderson749 mail: janderson749@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: student @@ -11641,7 +11643,7 @@ givenName: Bill cn: Bill Roberts uid: broberts750 mail: broberts750@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: member @@ -11656,7 +11658,7 @@ givenName: Erik cn: Erik Lopez uid: elopez751 mail: elopez751@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: community @@ -11671,7 +11673,7 @@ givenName: Michael cn: Michael Anderson uid: manderson752 mail: manderson752@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: community @@ -11686,7 +11688,7 @@ givenName: Karoline cn: Karoline Butler uid: kbutler753 mail: kbutler753@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: alum @@ -11701,7 +11703,7 @@ givenName: Greg cn: Greg Clark uid: gclark mail: gclark@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: student @@ -11716,7 +11718,7 @@ givenName: Jo cn: Jo Williams uid: jwilliams755 mail: jwilliams755@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: student @@ -11732,7 +11734,7 @@ givenName: Lori cn: Lori Lopez uid: llopez756 mail: llopez756@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: staff @@ -11747,7 +11749,7 @@ givenName: Kim cn: Kim Henderson uid: khenderson757 mail: khenderson757@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: staff @@ -11762,7 +11764,7 @@ givenName: Colin cn: Colin Johnson uid: cjohnson758 mail: cjohnson758@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -11778,7 +11780,7 @@ givenName: Kim cn: Kim Gasper uid: kgasper759 mail: kgasper759@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: community @@ -11793,7 +11795,7 @@ givenName: James cn: James Lewis uid: jlewis760 mail: jlewis760@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: staff @@ -11808,7 +11810,7 @@ givenName: Lori cn: Lori Lee uid: llee761 mail: llee761@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: member @@ -11824,7 +11826,7 @@ givenName: Robert cn: Robert Vales uid: rvales762 mail: rvales762@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: community @@ -11840,7 +11842,7 @@ givenName: John cn: John Gasper uid: jgasper763 mail: jgasper763@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student @@ -11856,7 +11858,7 @@ givenName: Marie cn: Marie Price uid: mprice764 mail: mprice764@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: member @@ -11871,7 +11873,7 @@ givenName: Ann cn: Ann Smith uid: asmith765 mail: asmith765@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: student @@ -11886,7 +11888,7 @@ givenName: Kiersten cn: Kiersten Anderson uid: kanderson766 mail: kanderson766@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: alum @@ -11901,7 +11903,7 @@ givenName: Thomas cn: Thomas Brown uid: tbrown767 mail: tbrown767@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: student eduPersonAffiliation: staff @@ -11917,7 +11919,7 @@ givenName: Karoline cn: Karoline Vales uid: kvales768 mail: kvales768@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: staff @@ -11932,7 +11934,7 @@ givenName: Jo cn: Jo Henderson uid: jhenderson769 mail: jhenderson769@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: staff @@ -11947,7 +11949,7 @@ givenName: James cn: James Johnson uid: jjohnson770 mail: jjohnson770@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: student @@ -11962,7 +11964,7 @@ givenName: William cn: William Roberts uid: wroberts mail: wroberts@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: student @@ -11977,7 +11979,7 @@ givenName: Colin cn: Colin Peterson uid: cpeterson772 mail: cpeterson772@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -11993,7 +11995,7 @@ givenName: Thomas cn: Thomas Doe uid: tdoe mail: tdoe@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: community eduPersonAffiliation: student @@ -12009,7 +12011,7 @@ givenName: Heather cn: Heather Roberts uid: hroberts mail: hroberts@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: community eduPersonAffiliation: staff @@ -12025,7 +12027,7 @@ givenName: Michael cn: Michael Price uid: mprice775 mail: mprice775@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student @@ -12041,7 +12043,7 @@ givenName: Lori cn: Lori Roberts uid: lroberts776 mail: lroberts776@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: faculty @@ -12056,7 +12058,7 @@ givenName: Marie cn: Marie Davis uid: mdavis777 mail: mdavis777@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -12072,7 +12074,7 @@ givenName: Karoline cn: Karoline Gonazles uid: kgonazles778 mail: kgonazles778@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -12088,7 +12090,7 @@ givenName: Mary cn: Mary Vales uid: mvales779 mail: mvales779@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: student eduPersonAffiliation: alum @@ -12104,7 +12106,7 @@ givenName: Jo cn: Jo Doe uid: jdoe780 mail: jdoe780@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: community eduPersonAffiliation: student @@ -12120,7 +12122,7 @@ givenName: David cn: David Martinez uid: dmartinez mail: dmartinez@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: member @@ -12135,7 +12137,7 @@ givenName: David cn: David Vales uid: dvales782 mail: dvales782@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: staff @@ -12150,7 +12152,7 @@ givenName: Thomas cn: Thomas Price uid: tprice783 mail: tprice783@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: faculty @@ -12165,7 +12167,7 @@ givenName: Donna cn: Donna Morrison uid: dmorrison784 mail: dmorrison784@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: faculty @@ -12181,7 +12183,7 @@ givenName: David cn: David Gonazles uid: dgonazles785 mail: dgonazles785@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: faculty @@ -12196,7 +12198,7 @@ givenName: Sarah cn: Sarah Walters uid: swalters786 mail: swalters786@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: alum @@ -12211,7 +12213,7 @@ givenName: Heather cn: Heather Peterson uid: hpeterson mail: hpeterson@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: student @@ -12227,7 +12229,7 @@ givenName: Jennifer cn: Jennifer Lee uid: jlee788 mail: jlee788@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -12243,7 +12245,7 @@ givenName: Nancy cn: Nancy Lopez uid: nlopez mail: nlopez@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: community eduPersonAffiliation: faculty @@ -12259,7 +12261,7 @@ givenName: Kim cn: Kim White uid: kwhite790 mail: kwhite790@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: student @@ -12274,7 +12276,7 @@ givenName: Nancy cn: Nancy Butler uid: nbutler mail: nbutler@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: member @@ -12290,7 +12292,7 @@ givenName: Jo cn: Jo Roberts uid: jroberts792 mail: jroberts792@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -12306,7 +12308,7 @@ givenName: Heather cn: Heather Clark uid: hclark mail: hclark@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: student @@ -12321,7 +12323,7 @@ givenName: Nancy cn: Nancy Clark uid: nclark794 mail: nclark794@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: alum @@ -12336,7 +12338,7 @@ givenName: David cn: David Peterson uid: dpeterson795 mail: dpeterson795@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: student @@ -12352,7 +12354,7 @@ givenName: Heather cn: Heather Brown uid: hbrown796 mail: hbrown796@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -12368,7 +12370,7 @@ givenName: Heather cn: Heather Lewis uid: hlewis797 mail: hlewis797@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: community eduPersonAffiliation: member @@ -12384,7 +12386,7 @@ givenName: Betty cn: Betty Lewis uid: blewis798 mail: blewis798@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: member eduPersonAffiliation: alum @@ -12400,7 +12402,7 @@ givenName: Sarah cn: Sarah Roberts uid: sroberts799 mail: sroberts799@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: student eduPersonAffiliation: alum @@ -12416,7 +12418,7 @@ givenName: Colin cn: Colin Lewis uid: clewis800 mail: clewis800@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: alum @@ -12431,7 +12433,7 @@ givenName: Jim cn: Jim Clark uid: jclark801 mail: jclark801@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: student @@ -12447,7 +12449,7 @@ givenName: Jim cn: Jim Vales uid: jvales802 mail: jvales802@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: student @@ -12462,7 +12464,7 @@ givenName: John cn: John Lewis uid: jlewis803 mail: jlewis803@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -12478,7 +12480,7 @@ givenName: John cn: John Gasper uid: jgasper804 mail: jgasper804@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: student eduPersonAffiliation: member @@ -12494,7 +12496,7 @@ givenName: Robert cn: Robert Davis uid: rdavis805 mail: rdavis805@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: community eduPersonAffiliation: faculty @@ -12510,7 +12512,7 @@ givenName: David cn: David Williams uid: dwilliams806 mail: dwilliams806@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: member @@ -12525,7 +12527,7 @@ givenName: Jennifer cn: Jennifer Scott uid: jscott807 mail: jscott807@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: community @@ -12540,7 +12542,7 @@ givenName: William cn: William Williams uid: wwilliams808 mail: wwilliams808@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: member eduPersonAffiliation: faculty @@ -12556,7 +12558,7 @@ givenName: Eric cn: Eric Davis uid: edavis809 mail: edavis809@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: alum @@ -12571,7 +12573,7 @@ givenName: Marie cn: Marie Price uid: mprice810 mail: mprice810@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: community @@ -12586,7 +12588,7 @@ givenName: Betty cn: Betty Henderson uid: bhenderson mail: bhenderson@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: alum @@ -12602,7 +12604,7 @@ givenName: Heather cn: Heather Henderson uid: hhenderson812 mail: hhenderson812@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student @@ -12618,7 +12620,7 @@ givenName: Karl cn: Karl Scott uid: kscott813 mail: kscott813@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: community @@ -12634,7 +12636,7 @@ givenName: David cn: David Doe uid: ddoe814 mail: ddoe814@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: student @@ -12649,7 +12651,7 @@ givenName: Erik cn: Erik Williams uid: ewilliams815 mail: ewilliams815@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: student @@ -12664,7 +12666,7 @@ givenName: Jo cn: Jo Smith uid: jsmith816 mail: jsmith816@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: community eduPersonAffiliation: faculty @@ -12680,7 +12682,7 @@ givenName: Lisa cn: Lisa Vales uid: lvales817 mail: lvales817@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: student @@ -12695,7 +12697,7 @@ givenName: Lori cn: Lori Peterson uid: lpeterson818 mail: lpeterson818@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: member @@ -12710,7 +12712,7 @@ givenName: David cn: David Gasper uid: dgasper mail: dgasper@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: member @@ -12725,7 +12727,7 @@ givenName: Nancy cn: Nancy Langenberg uid: nlangenberg820 mail: nlangenberg820@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: staff @@ -12741,7 +12743,7 @@ givenName: Jo cn: Jo Henderson uid: jhenderson821 mail: jhenderson821@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: community @@ -12757,7 +12759,7 @@ givenName: David cn: David Davis uid: ddavis822 mail: ddavis822@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: student @@ -12772,7 +12774,7 @@ givenName: Karl cn: Karl Gasper uid: kgasper823 mail: kgasper823@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: member @@ -12788,7 +12790,7 @@ givenName: John cn: John Price uid: jprice824 mail: jprice824@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: alum @@ -12803,7 +12805,7 @@ givenName: Ann cn: Ann Clark uid: aclark mail: aclark@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: member @@ -12819,7 +12821,7 @@ givenName: Jennifer cn: Jennifer Clark uid: jclark826 mail: jclark826@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: student @@ -12835,7 +12837,7 @@ givenName: Lori cn: Lori Martinez uid: lmartinez mail: lmartinez@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: alum @@ -12850,7 +12852,7 @@ givenName: Jim cn: Jim Peterson uid: jpeterson828 mail: jpeterson828@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: alum @@ -12865,7 +12867,7 @@ givenName: Jennifer cn: Jennifer Doe uid: jdoe829 mail: jdoe829@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -12881,7 +12883,7 @@ givenName: Nancy cn: Nancy Morrison uid: nmorrison mail: nmorrison@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student @@ -12897,7 +12899,7 @@ givenName: Eric cn: Eric Henderson uid: ehenderson831 mail: ehenderson831@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -12913,7 +12915,7 @@ givenName: Kiersten cn: Kiersten White uid: kwhite832 mail: kwhite832@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: member eduPersonAffiliation: alum @@ -12929,7 +12931,7 @@ givenName: Donna cn: Donna Henderson uid: dhenderson833 mail: dhenderson833@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: community @@ -12944,7 +12946,7 @@ givenName: Donna cn: Donna Brown uid: dbrown834 mail: dbrown834@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: community eduPersonAffiliation: staff @@ -12960,7 +12962,7 @@ givenName: Marie cn: Marie Anderson uid: manderson835 mail: manderson835@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: community eduPersonAffiliation: member @@ -12976,7 +12978,7 @@ givenName: Greg cn: Greg Gasper uid: ggasper836 mail: ggasper836@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: community eduPersonAffiliation: student @@ -12992,7 +12994,7 @@ givenName: Marie cn: Marie Lewis uid: mlewis837 mail: mlewis837@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: community eduPersonAffiliation: alum @@ -13008,7 +13010,7 @@ givenName: Karl cn: Karl Clark uid: kclark838 mail: kclark838@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: faculty @@ -13023,7 +13025,7 @@ givenName: David cn: David Clark uid: dclark839 mail: dclark839@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: staff @@ -13038,7 +13040,7 @@ givenName: Blake cn: Blake Lewis uid: blewis840 mail: blewis840@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: member @@ -13054,7 +13056,7 @@ givenName: William cn: William Lewis uid: wlewis mail: wlewis@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: community eduPersonAffiliation: student @@ -13070,7 +13072,7 @@ givenName: John cn: John Butler uid: jbutler842 mail: jbutler842@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: community @@ -13085,7 +13087,7 @@ givenName: Betty cn: Betty Butler uid: bbutler843 mail: bbutler843@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: student @@ -13100,7 +13102,7 @@ givenName: Greg cn: Greg Thompson uid: gthompson mail: gthompson@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: student eduPersonAffiliation: staff @@ -13116,7 +13118,7 @@ givenName: Greg cn: Greg Langenberg uid: glangenberg mail: glangenberg@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: community @@ -13131,7 +13133,7 @@ givenName: Ann cn: Ann Johnson uid: ajohnson mail: ajohnson@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: student @@ -13146,7 +13148,7 @@ givenName: Ann cn: Ann White uid: awhite847 mail: awhite847@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: faculty @@ -13161,7 +13163,7 @@ givenName: David cn: David Henderson uid: dhenderson848 mail: dhenderson848@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: faculty @@ -13176,7 +13178,7 @@ givenName: Mark cn: Mark Williams uid: mwilliams849 mail: mwilliams849@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: staff @@ -13191,7 +13193,7 @@ givenName: Nancy cn: Nancy Price uid: nprice mail: nprice@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -13207,7 +13209,7 @@ givenName: Donna cn: Donna Thompson uid: dthompson851 mail: dthompson851@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: member @@ -13222,7 +13224,7 @@ givenName: Erik cn: Erik Butler uid: ebutler852 mail: ebutler852@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: student eduPersonAffiliation: alum @@ -13238,7 +13240,7 @@ givenName: Kim cn: Kim Davis uid: kdavis853 mail: kdavis853@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -13254,7 +13256,7 @@ givenName: Thomas cn: Thomas Gasper uid: tgasper854 mail: tgasper854@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: student @@ -13270,7 +13272,7 @@ givenName: Ann cn: Ann Langenberg uid: alangenberg855 mail: alangenberg855@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: community @@ -13285,7 +13287,7 @@ givenName: Kim cn: Kim Clark uid: kclark856 mail: kclark856@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: community @@ -13301,7 +13303,7 @@ givenName: William cn: William Davis uid: wdavis mail: wdavis@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: student eduPersonAffiliation: member @@ -13317,7 +13319,7 @@ givenName: Karoline cn: Karoline Walters uid: kwalters858 mail: kwalters858@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: student @@ -13333,7 +13335,7 @@ givenName: Erik cn: Erik Price uid: eprice859 mail: eprice859@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: student @@ -13348,7 +13350,7 @@ givenName: Sarah cn: Sarah Lee uid: slee860 mail: slee860@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: faculty @@ -13363,7 +13365,7 @@ givenName: James cn: James Walters uid: jwalters861 mail: jwalters861@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: community @@ -13379,7 +13381,7 @@ givenName: Robert cn: Robert Price uid: rprice862 mail: rprice862@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: staff @@ -13394,7 +13396,7 @@ givenName: Thomas cn: Thomas Martinez uid: tmartinez863 mail: tmartinez863@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -13410,7 +13412,7 @@ givenName: Mary cn: Mary Clark uid: mclark864 mail: mclark864@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: community @@ -13425,7 +13427,7 @@ givenName: Lisa cn: Lisa Walters uid: lwalters865 mail: lwalters865@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: alum @@ -13440,7 +13442,7 @@ givenName: Heather cn: Heather Anderson uid: handerson866 mail: handerson866@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: staff @@ -13455,7 +13457,7 @@ givenName: David cn: David Henderson uid: dhenderson867 mail: dhenderson867@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: alum @@ -13471,7 +13473,7 @@ givenName: Lisa cn: Lisa Doe uid: ldoe868 mail: ldoe868@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -13487,7 +13489,7 @@ givenName: Greg cn: Greg Gonazles uid: ggonazles869 mail: ggonazles869@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: student @@ -13503,7 +13505,7 @@ givenName: Karoline cn: Karoline Anderson uid: kanderson870 mail: kanderson870@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: student @@ -13519,7 +13521,7 @@ givenName: Ann cn: Ann Johnson uid: ajohnson871 mail: ajohnson871@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: student eduPersonAffiliation: alum @@ -13535,7 +13537,7 @@ givenName: Betty cn: Betty Gasper uid: bgasper872 mail: bgasper872@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student @@ -13551,7 +13553,7 @@ givenName: John cn: John Lee uid: jlee873 mail: jlee873@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -13567,7 +13569,7 @@ givenName: Karoline cn: Karoline Henderson uid: khenderson874 mail: khenderson874@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: staff @@ -13582,7 +13584,7 @@ givenName: John cn: John Williams uid: jwilliams875 mail: jwilliams875@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -13598,7 +13600,7 @@ givenName: Nancy cn: Nancy Williams uid: nwilliams mail: nwilliams@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: faculty @@ -13613,7 +13615,7 @@ givenName: Karoline cn: Karoline Brown uid: kbrown877 mail: kbrown877@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student @@ -13629,7 +13631,7 @@ givenName: Blake cn: Blake Thompson uid: bthompson878 mail: bthompson878@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -13645,7 +13647,7 @@ givenName: Robert cn: Robert Davis uid: rdavis879 mail: rdavis879@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: staff @@ -13661,7 +13663,7 @@ givenName: Greg cn: Greg Thompson uid: gthompson880 mail: gthompson880@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: community @@ -13676,7 +13678,7 @@ givenName: Blake cn: Blake Peterson uid: bpeterson881 mail: bpeterson881@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: community eduPersonAffiliation: faculty @@ -13692,7 +13694,7 @@ givenName: Marie cn: Marie Brown uid: mbrown882 mail: mbrown882@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: staff @@ -13708,7 +13710,7 @@ givenName: James cn: James Martinez uid: jmartinez883 mail: jmartinez883@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: alum @@ -13723,7 +13725,7 @@ givenName: Heather cn: Heather White uid: hwhite884 mail: hwhite884@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: member @@ -13738,7 +13740,7 @@ givenName: Lisa cn: Lisa Henderson uid: lhenderson885 mail: lhenderson885@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: alum @@ -13753,7 +13755,7 @@ givenName: Thomas cn: Thomas Henderson uid: thenderson mail: thenderson@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: student @@ -13769,7 +13771,7 @@ givenName: Sarah cn: Sarah Davis uid: sdavis887 mail: sdavis887@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: community @@ -13785,7 +13787,7 @@ givenName: David cn: David Clark uid: dclark888 mail: dclark888@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: student eduPersonAffiliation: staff @@ -13801,7 +13803,7 @@ givenName: David cn: David Peterson uid: dpeterson889 mail: dpeterson889@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: community @@ -13817,7 +13819,7 @@ givenName: James cn: James Butler uid: jbutler890 mail: jbutler890@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: student eduPersonAffiliation: alum @@ -13833,7 +13835,7 @@ givenName: Kiersten cn: Kiersten Smith uid: ksmith891 mail: ksmith891@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: student eduPersonAffiliation: alum @@ -13849,7 +13851,7 @@ givenName: Robert cn: Robert Lopez uid: rlopez892 mail: rlopez892@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: community @@ -13864,7 +13866,7 @@ givenName: Kiersten cn: Kiersten Smith uid: ksmith893 mail: ksmith893@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -13880,7 +13882,7 @@ givenName: John cn: John Davis uid: jdavis894 mail: jdavis894@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: alum @@ -13895,7 +13897,7 @@ givenName: Donna cn: Donna Doe uid: ddoe895 mail: ddoe895@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: staff @@ -13911,7 +13913,7 @@ givenName: Michael cn: Michael Smith uid: msmith896 mail: msmith896@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: staff @@ -13926,7 +13928,7 @@ givenName: Michael cn: Michael Davis uid: mdavis897 mail: mdavis897@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: community @@ -13941,7 +13943,7 @@ givenName: Marie cn: Marie Martinez uid: mmartinez898 mail: mmartinez898@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -13957,7 +13959,7 @@ givenName: Jennifer cn: Jennifer Langenberg uid: jlangenberg899 mail: jlangenberg899@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student @@ -13973,7 +13975,7 @@ givenName: Colin cn: Colin Davis uid: cdavis900 mail: cdavis900@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: member eduPersonAffiliation: alum @@ -13989,7 +13991,7 @@ givenName: John cn: John Martinez uid: jmartinez901 mail: jmartinez901@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: faculty @@ -14004,7 +14006,7 @@ givenName: Thomas cn: Thomas Martinez uid: tmartinez902 mail: tmartinez902@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: community eduPersonAffiliation: staff @@ -14020,7 +14022,7 @@ givenName: Bill cn: Bill Price uid: bprice903 mail: bprice903@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -14036,7 +14038,7 @@ givenName: Jo cn: Jo Davis uid: jdavis904 mail: jdavis904@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: student @@ -14051,7 +14053,7 @@ givenName: Jo cn: Jo Martinez uid: jmartinez905 mail: jmartinez905@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: member @@ -14066,7 +14068,7 @@ givenName: Lori cn: Lori Anderson uid: landerson906 mail: landerson906@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: faculty @@ -14082,7 +14084,7 @@ givenName: Robert cn: Robert Lee uid: rlee mail: rlee@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -14098,7 +14100,7 @@ givenName: David cn: David Lewis uid: dlewis908 mail: dlewis908@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: staff @@ -14114,7 +14116,7 @@ givenName: Jo cn: Jo Lopez uid: jlopez909 mail: jlopez909@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: faculty @@ -14129,7 +14131,7 @@ givenName: Karoline cn: Karoline Gasper uid: kgasper910 mail: kgasper910@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: student @@ -14145,7 +14147,7 @@ givenName: Michael cn: Michael Scott uid: mscott911 mail: mscott911@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -14161,7 +14163,7 @@ givenName: Sarah cn: Sarah Morrison uid: smorrison mail: smorrison@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: community @@ -14176,7 +14178,7 @@ givenName: Karl cn: Karl Johnson uid: kjohnson913 mail: kjohnson913@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: community @@ -14191,7 +14193,7 @@ givenName: Bill cn: Bill White uid: bwhite914 mail: bwhite914@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: community @@ -14207,7 +14209,7 @@ givenName: Kim cn: Kim Gonazles uid: kgonazles915 mail: kgonazles915@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -14223,7 +14225,7 @@ givenName: Jennifer cn: Jennifer Gasper uid: jgasper916 mail: jgasper916@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -14239,7 +14241,7 @@ givenName: James cn: James Lewis uid: jlewis917 mail: jlewis917@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: student eduPersonAffiliation: member @@ -14255,7 +14257,7 @@ givenName: Mark cn: Mark Johnson uid: mjohnson918 mail: mjohnson918@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: member @@ -14270,7 +14272,7 @@ givenName: David cn: David Davis uid: ddavis919 mail: ddavis919@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: student @@ -14285,7 +14287,7 @@ givenName: Donna cn: Donna Vales uid: dvales920 mail: dvales920@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: student eduPersonAffiliation: member @@ -14301,7 +14303,7 @@ givenName: Mary cn: Mary Langenberg uid: mlangenberg921 mail: mlangenberg921@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: member @@ -14317,7 +14319,7 @@ givenName: Jim cn: Jim Vales uid: jvales922 mail: jvales922@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: community @@ -14333,7 +14335,7 @@ givenName: Mary cn: Mary Grady uid: mgrady923 mail: mgrady923@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: community @@ -14349,7 +14351,7 @@ givenName: Heather cn: Heather Smith uid: hsmith924 mail: hsmith924@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: alum @@ -14364,7 +14366,7 @@ givenName: Lori cn: Lori Grady uid: lgrady925 mail: lgrady925@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: community eduPersonAffiliation: member @@ -14380,7 +14382,7 @@ givenName: Greg cn: Greg Butler uid: gbutler926 mail: gbutler926@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: member @@ -14395,7 +14397,7 @@ givenName: Jennifer cn: Jennifer White uid: jwhite927 mail: jwhite927@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: community @@ -14410,7 +14412,7 @@ givenName: Betty cn: Betty Peterson uid: bpeterson928 mail: bpeterson928@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -14426,7 +14428,7 @@ givenName: Nancy cn: Nancy Lewis uid: nlewis mail: nlewis@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: staff @@ -14441,7 +14443,7 @@ givenName: Jennifer cn: Jennifer Roberts uid: jroberts930 mail: jroberts930@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: member @@ -14456,7 +14458,7 @@ givenName: Kiersten cn: Kiersten Peterson uid: kpeterson931 mail: kpeterson931@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: member eduPersonAffiliation: alum @@ -14472,7 +14474,7 @@ givenName: Lori cn: Lori Henderson uid: lhenderson932 mail: lhenderson932@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: alum @@ -14487,7 +14489,7 @@ givenName: James cn: James Lewis uid: jlewis933 mail: jlewis933@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: student eduPersonAffiliation: staff @@ -14503,7 +14505,7 @@ givenName: David cn: David Langenberg uid: dlangenberg934 mail: dlangenberg934@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: community @@ -14518,7 +14520,7 @@ givenName: Kim cn: Kim Butler uid: kbutler935 mail: kbutler935@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -14534,7 +14536,7 @@ givenName: Robert cn: Robert Johnson uid: rjohnson mail: rjohnson@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: faculty @@ -14549,7 +14551,7 @@ givenName: Jennifer cn: Jennifer Walters uid: jwalters937 mail: jwalters937@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: community @@ -14565,7 +14567,7 @@ givenName: Kiersten cn: Kiersten Gonazles uid: kgonazles938 mail: kgonazles938@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: community @@ -14580,7 +14582,7 @@ givenName: Marie cn: Marie Gasper uid: mgasper939 mail: mgasper939@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: student @@ -14596,7 +14598,7 @@ givenName: Kim cn: Kim Lopez uid: klopez940 mail: klopez940@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: staff @@ -14612,7 +14614,7 @@ givenName: Jennifer cn: Jennifer White uid: jwhite941 mail: jwhite941@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: faculty @@ -14628,7 +14630,7 @@ givenName: James cn: James Gonazles uid: jgonazles942 mail: jgonazles942@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: member @@ -14644,7 +14646,7 @@ givenName: Kim cn: Kim Henderson uid: khenderson943 mail: khenderson943@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: student eduPersonAffiliation: member @@ -14660,7 +14662,7 @@ givenName: Mark cn: Mark Henderson uid: mhenderson944 mail: mhenderson944@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: faculty @@ -14675,7 +14677,7 @@ givenName: Colin cn: Colin Price uid: cprice mail: cprice@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: community eduPersonAffiliation: faculty @@ -14691,7 +14693,7 @@ givenName: Jim cn: Jim Anderson uid: janderson946 mail: janderson946@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: faculty @@ -14706,7 +14708,7 @@ givenName: Erik cn: Erik Johnson uid: ejohnson947 mail: ejohnson947@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: student @@ -14721,7 +14723,7 @@ givenName: John cn: John Anderson uid: janderson948 mail: janderson948@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: faculty @@ -14736,7 +14738,7 @@ givenName: Lisa cn: Lisa Henderson uid: lhenderson949 mail: lhenderson949@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: staff @@ -14751,7 +14753,7 @@ givenName: Mary cn: Mary Lee uid: mlee950 mail: mlee950@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: community @@ -14767,7 +14769,7 @@ givenName: Eric cn: Eric Williams uid: ewilliams951 mail: ewilliams951@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: member eduPersonAffiliation: staff @@ -14783,7 +14785,7 @@ givenName: Paul cn: Paul Lewis uid: plewis mail: plewis@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student @@ -14799,7 +14801,7 @@ givenName: Marie cn: Marie Clark uid: mclark953 mail: mclark953@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: member eduPersonAffiliation: community @@ -14815,7 +14817,7 @@ givenName: David cn: David Williams uid: dwilliams954 mail: dwilliams954@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: student @@ -14831,7 +14833,7 @@ givenName: Robert cn: Robert Roberts uid: rroberts955 mail: rroberts955@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: community @@ -14847,7 +14849,7 @@ givenName: Jo cn: Jo Smith uid: jsmith956 mail: jsmith956@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: student @@ -14863,7 +14865,7 @@ givenName: Jennifer cn: Jennifer White uid: jwhite957 mail: jwhite957@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: faculty @@ -14878,7 +14880,7 @@ givenName: Bill cn: Bill Walters uid: bwalters958 mail: bwalters958@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: community @@ -14893,7 +14895,7 @@ givenName: Mark cn: Mark Henderson uid: mhenderson959 mail: mhenderson959@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: student eduPersonAffiliation: staff @@ -14909,7 +14911,7 @@ givenName: Mark cn: Mark Gasper uid: mgasper960 mail: mgasper960@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: alum @@ -14924,7 +14926,7 @@ givenName: Paul cn: Paul Peterson uid: ppeterson mail: ppeterson@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: alum @@ -14940,7 +14942,7 @@ givenName: John cn: John Scott uid: jscott962 mail: jscott962@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: staff @@ -14955,7 +14957,7 @@ givenName: Heather cn: Heather Davis uid: hdavis963 mail: hdavis963@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: staff @@ -14970,7 +14972,7 @@ givenName: Paul cn: Paul White uid: pwhite mail: pwhite@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: faculty @@ -14985,7 +14987,7 @@ givenName: David cn: David Walters uid: dwalters965 mail: dwalters965@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: student @@ -15000,7 +15002,7 @@ givenName: Blake cn: Blake Lopez uid: blopez966 mail: blopez966@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: community @@ -15015,7 +15017,7 @@ givenName: Blake cn: Blake Grady uid: bgrady967 mail: bgrady967@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: faculty @@ -15031,7 +15033,7 @@ givenName: Bill cn: Bill Clark uid: bclark968 mail: bclark968@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: community eduPersonAffiliation: member @@ -15047,7 +15049,7 @@ givenName: Lisa cn: Lisa Price uid: lprice969 mail: lprice969@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: member @@ -15063,7 +15065,7 @@ givenName: William cn: William Peterson uid: wpeterson970 mail: wpeterson970@unicon.local -businessCategory:Law +businessCategory: Law userPassword: password eduPersonAffiliation: student @@ -15078,7 +15080,7 @@ givenName: Betty cn: Betty Anderson uid: banderson971 mail: banderson971@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: alum @@ -15094,7 +15096,7 @@ givenName: Heather cn: Heather Price uid: hprice972 mail: hprice972@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: community @@ -15110,7 +15112,7 @@ givenName: Marie cn: Marie Peterson uid: mpeterson973 mail: mpeterson973@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: alum @@ -15125,7 +15127,7 @@ givenName: Nancy cn: Nancy Gonazles uid: ngonazles mail: ngonazles@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: alum eduPersonAffiliation: faculty @@ -15141,7 +15143,7 @@ givenName: James cn: James Vales uid: jvales975 mail: jvales975@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: community @@ -15157,7 +15159,7 @@ givenName: Jennifer cn: Jennifer Peterson uid: jpeterson976 mail: jpeterson976@unicon.local -businessCategory:Advising +businessCategory: Advising userPassword: password eduPersonAffiliation: staff @@ -15172,7 +15174,7 @@ givenName: Kim cn: Kim Martinez uid: kmartinez977 mail: kmartinez977@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: staff @@ -15187,7 +15189,7 @@ givenName: Paul cn: Paul Brown uid: pbrown978 mail: pbrown978@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: student eduPersonAffiliation: member @@ -15203,7 +15205,7 @@ givenName: Donna cn: Donna Butler uid: dbutler979 mail: dbutler979@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: member @@ -15218,7 +15220,7 @@ givenName: Heather cn: Heather Morrison uid: hmorrison980 mail: hmorrison980@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password eduPersonAffiliation: member @@ -15233,7 +15235,7 @@ givenName: Colin cn: Colin Doe uid: cdoe981 mail: cdoe981@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: staff @@ -15248,7 +15250,7 @@ givenName: Ann cn: Ann Lee uid: alee mail: alee@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: alum @@ -15263,7 +15265,7 @@ givenName: Jo cn: Jo Lee uid: jlee983 mail: jlee983@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: community eduPersonAffiliation: faculty @@ -15279,7 +15281,7 @@ givenName: Marie cn: Marie Price uid: mprice984 mail: mprice984@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: community @@ -15295,7 +15297,7 @@ givenName: Jo cn: Jo Butler uid: jbutler985 mail: jbutler985@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: student eduPersonAffiliation: staff @@ -15311,7 +15313,7 @@ givenName: Mary cn: Mary Martinez uid: mmartinez986 mail: mmartinez986@unicon.local -businessCategory:Engineering +businessCategory: Engineering userPassword: password eduPersonAffiliation: faculty @@ -15326,7 +15328,7 @@ givenName: Heather cn: Heather Martinez uid: hmartinez mail: hmartinez@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: alum @@ -15341,7 +15343,7 @@ givenName: Thomas cn: Thomas Walters uid: twalters988 mail: twalters988@unicon.local -businessCategory:Physical Education +businessCategory: Physical Education userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: community @@ -15357,7 +15359,7 @@ givenName: Karl cn: Karl Williams uid: kwilliams989 mail: kwilliams989@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: community @@ -15372,7 +15374,7 @@ givenName: Eric cn: Eric Martinez uid: emartinez990 mail: emartinez990@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: community @@ -15388,7 +15390,7 @@ givenName: Karoline cn: Karoline Lee uid: klee991 mail: klee991@unicon.local -businessCategory:Language Arts +businessCategory: Language Arts userPassword: password eduPersonAffiliation: faculty @@ -15403,7 +15405,7 @@ givenName: Bill cn: Bill Johnson uid: bjohnson992 mail: bjohnson992@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: faculty eduPersonAffiliation: student @@ -15419,7 +15421,7 @@ givenName: William cn: William Davis uid: wdavis993 mail: wdavis993@unicon.local -businessCategory:Financial Aid +businessCategory: Financial Aid userPassword: password eduPersonAffiliation: staff eduPersonAffiliation: faculty @@ -15435,7 +15437,7 @@ givenName: Blake cn: Blake Gonazles uid: bgonazles994 mail: bgonazles994@unicon.local -businessCategory:Account Payable +businessCategory: Account Payable userPassword: password eduPersonAffiliation: student eduPersonAffiliation: community @@ -15451,7 +15453,7 @@ givenName: Jennifer cn: Jennifer Vales uid: jvales995 mail: jvales995@unicon.local -businessCategory:Accounting +businessCategory: Accounting userPassword: password eduPersonAffiliation: member eduPersonAffiliation: student @@ -15467,7 +15469,7 @@ givenName: Kiersten cn: Kiersten Johnson uid: kjohnson996 mail: kjohnson996@unicon.local -businessCategory:Computer Science +businessCategory: Computer Science userPassword: password eduPersonAffiliation: faculty @@ -15482,7 +15484,7 @@ givenName: Greg cn: Greg Grady uid: ggrady mail: ggrady@unicon.local -businessCategory:Purchasing +businessCategory: Purchasing userPassword: password eduPersonAffiliation: student eduPersonAffiliation: faculty @@ -15498,7 +15500,7 @@ givenName: Lori cn: Lori Butler uid: lbutler998 mail: lbutler998@unicon.local -businessCategory:Information Technology +businessCategory: Information Technology userPassword: password eduPersonAffiliation: member @@ -15513,6 +15515,6 @@ givenName: Thomas cn: Thomas Gasper uid: tgasper999 mail: tgasper999@unicon.local -businessCategory:Business +businessCategory: Business userPassword: password -eduPersonAffiliation: member +eduPersonAffiliation: member \ No newline at end of file diff --git a/testbed/authentication/directory/Dockerfile b/testbed/directory/Dockerfile similarity index 100% rename from testbed/authentication/directory/Dockerfile rename to testbed/directory/Dockerfile diff --git a/testbed/directory/certs/ca.crt b/testbed/directory/certs/ca.crt new file mode 100644 index 000000000..e05f05fe2 --- /dev/null +++ b/testbed/directory/certs/ca.crt @@ -0,0 +1,29 @@ +-----BEGIN CERTIFICATE----- +MIIFCzCCAvOgAwIBAgIULEwEJFwT49CiSPKOA5EHGVKGl0gwDQYJKoZIhvcNAQEL +BQAwFDESMBAGA1UEAwwJZGlyZWN0b3J5MCAXDTIxMDkxNDIxNDMwOFoYDzIwNTEw +OTE1MjE0MzA4WjAUMRIwEAYDVQQDDAlkaXJlY3RvcnkwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQC+/SikxGUFYUiKjghLFPRMaYLZUHyOMWOyCIQSkZrt +Si6llB7JhN+tCaFgibPSNrKzOpF7IRJBlaEMAKN47Fncy7uGPg/3KEtuCLRUxbYv +1LgjZl2J0w/SROYIX0bsMEuThojaIxuv4D1fdaF3S7/sKnXywIncZtAqMhISiC9q +Kq9xT4twiST7SDPY/u3pdVdAjBg4R5XlF69XWtKaeCoEup9lgvyLT5dQBxdA3q3N +Af8UnpgZjHPxa6na7BjXwOyy7uzlUmTd/M0UMHuAreCBXMJrfrVBTnFYKyPtDYAP +mFacA+lsX0a5QjOMIP0JW5dYAKw8SFU9rzGcqdB/a2mZwxvmrY5CFVI8SZho1JK8 +y4O3HQbzrqQ3b+t5UyZt1VnCDalAZyAP+Fp0TPhlIjQpm0hc7UVyhVuDAJJeV6Sk +TyAf8othu6wREsaOkfSNwrSGVX7CMxjXxEAIQfqaLfB7xAMc7mwUn/Lac6I6L2+w +a3Ds9xwpSoxHEAYVAJmpAtT8FFh5i0Fk6wqhUIO8IP5az7ATn1Q8MnYS/Mvne5JN +/6L2CABqz0ZDzqHosTQLZ1qEBO+mhXyWsE7Pc4Ky+pmTh8xsP356nLkchvBTUlYp +BzsBG+bDCNy8mQ0z+0oEngdZgTKYK+CqejDe0iOPw/ICkh3eImyQEa3m8qep+X78 +kwIDAQABo1MwUTAdBgNVHQ4EFgQUvNYYG2Stq3PcKD3IT3GlG64ma6gwHwYDVR0j +BBgwFoAUvNYYG2Stq3PcKD3IT3GlG64ma6gwDwYDVR0TAQH/BAUwAwEB/zANBgkq +hkiG9w0BAQsFAAOCAgEAaai3vJuEsDOIX74/byY50cMmqRo+lBZuPBZANJjaKSn3 +LORSW4PqwYfyzUkdw68dj2FPNmmg9p0xmSS1eMala2PW7UGwImjcmhV+YfdP15VE +t5FcaLvi32SfSyu9PWpRRyP2ahSzaM75HWMMKfbdzgGDGOkU6UIwKyWsO5UApjQ8 +b+w5IMAK9YvmuQGaaXePDM8sFM3+NQBvsdqnsCefxx0j8FmjF3PjpTmdcm4Rlk8E +yVigb/txwmKdJutcEeFWOnQVNxWugLmYW8P/s5W5IgpIm/8wdEz1bXXV0qGD/LgL +Rhr68OtmFoVp+C6Yf0fDS1yCtmkYlO+RyYtAMOv0G29Xe+MzLQW42fAHXvBGYh/0 +F258TLHjZDOs9nHIc4lQfT7k/MusY4g9RfYSXx8Ts7kXyfyGfj6D5E/kutfXQlH3 +DYjQ/B69dhU7bkEX8nc1xwzHU18pa+APbXqjaU3JewdxY6n+PIGN4ZLZrJ3zgNRj +tGykxlnPg8oAX3HX+ssh1OpU5VMPR+4hOdJkajk6U5Oyv77h4gsbUGCIGXC+0reA +k/jHoSCloifgQ4F3WdDGjPlWO6Hgvy2/KM+JqBX/9nF/Dc0bGfa3mmYXK56xQCPb +pNd6h2elVtlmt6iZgs4WA1uCwira5p0VCCutHgeGyWK4cAE60MFdRnzRZ2r1GuU= +-----END CERTIFICATE----- diff --git a/testbed/directory/certs/dhparam.pem b/testbed/directory/certs/dhparam.pem new file mode 100644 index 000000000..0ad3539ed --- /dev/null +++ b/testbed/directory/certs/dhparam.pem @@ -0,0 +1,13 @@ +-----BEGIN DH PARAMETERS----- +MIICCAKCAgEAivlNnloXfNvrvjLMALDtw4/H330xGfEZkO88vBG30xfDB8930JF/ +dpOQNB2lXhtyoCA5FYLI0Ml8VRzASR0nmVsjg1jqycRSZtPEUCyU5KLenWJerThQ +PCPPHgM9JNfSb9GVEnyBubgTJrRjRr0Fq6/T+sHI1DVFgrIcr1iIpwjzv6AtJ4GX +7ff3QxRI5wJ9EgSqGmyAZBBP91hvg702sENAru3TxL92uBY7yx1isr4Uo4v/CE/6 +DY9q5hEyVWZzb49msZ7WXiMvVwgH2P68O90x/Dzom27mQuutW0a5sHWLFvR6RzHl +f2LDO1uFl4RifVFUe2PNXbeb9KGTFx+4HFWPojYR2L1UlE+f1fdwh8PAPB0xBTgn +jMYra0dIJcCc9Mg/PbwJ9LMkIW7APuEvx90PlCmPs2ZI67EPAKlnDDtFsI6H0Sv8 +mAZt4oMBHFZoK2+4dcjLtDaqz8Stx9ICTFqk1YETcRlK9TQDRO0ngtkQJoKJtM7F +sSP/4LcX67Nd3aE9bSY977JQec6KTGXJCa2/dIIruni3p6oFmHzSlXH+TxbtaLku +VtYDqzRYR9vG5fsanOJlacoDpBtDEMlRVg+d5v811Z4cEH1RbEy/diGGEM/8DAxq +F5S9tqzQa7tk/1IuQX9SQcBWDmXEL76L8cxijmEeK1bRH9XwNLMjyEsCAQI= +-----END DH PARAMETERS----- diff --git a/testbed/directory/certs/ldap.crt b/testbed/directory/certs/ldap.crt new file mode 100644 index 000000000..e05f05fe2 --- /dev/null +++ b/testbed/directory/certs/ldap.crt @@ -0,0 +1,29 @@ +-----BEGIN CERTIFICATE----- +MIIFCzCCAvOgAwIBAgIULEwEJFwT49CiSPKOA5EHGVKGl0gwDQYJKoZIhvcNAQEL +BQAwFDESMBAGA1UEAwwJZGlyZWN0b3J5MCAXDTIxMDkxNDIxNDMwOFoYDzIwNTEw +OTE1MjE0MzA4WjAUMRIwEAYDVQQDDAlkaXJlY3RvcnkwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQC+/SikxGUFYUiKjghLFPRMaYLZUHyOMWOyCIQSkZrt +Si6llB7JhN+tCaFgibPSNrKzOpF7IRJBlaEMAKN47Fncy7uGPg/3KEtuCLRUxbYv +1LgjZl2J0w/SROYIX0bsMEuThojaIxuv4D1fdaF3S7/sKnXywIncZtAqMhISiC9q +Kq9xT4twiST7SDPY/u3pdVdAjBg4R5XlF69XWtKaeCoEup9lgvyLT5dQBxdA3q3N +Af8UnpgZjHPxa6na7BjXwOyy7uzlUmTd/M0UMHuAreCBXMJrfrVBTnFYKyPtDYAP +mFacA+lsX0a5QjOMIP0JW5dYAKw8SFU9rzGcqdB/a2mZwxvmrY5CFVI8SZho1JK8 +y4O3HQbzrqQ3b+t5UyZt1VnCDalAZyAP+Fp0TPhlIjQpm0hc7UVyhVuDAJJeV6Sk +TyAf8othu6wREsaOkfSNwrSGVX7CMxjXxEAIQfqaLfB7xAMc7mwUn/Lac6I6L2+w +a3Ds9xwpSoxHEAYVAJmpAtT8FFh5i0Fk6wqhUIO8IP5az7ATn1Q8MnYS/Mvne5JN +/6L2CABqz0ZDzqHosTQLZ1qEBO+mhXyWsE7Pc4Ky+pmTh8xsP356nLkchvBTUlYp +BzsBG+bDCNy8mQ0z+0oEngdZgTKYK+CqejDe0iOPw/ICkh3eImyQEa3m8qep+X78 +kwIDAQABo1MwUTAdBgNVHQ4EFgQUvNYYG2Stq3PcKD3IT3GlG64ma6gwHwYDVR0j +BBgwFoAUvNYYG2Stq3PcKD3IT3GlG64ma6gwDwYDVR0TAQH/BAUwAwEB/zANBgkq +hkiG9w0BAQsFAAOCAgEAaai3vJuEsDOIX74/byY50cMmqRo+lBZuPBZANJjaKSn3 +LORSW4PqwYfyzUkdw68dj2FPNmmg9p0xmSS1eMala2PW7UGwImjcmhV+YfdP15VE +t5FcaLvi32SfSyu9PWpRRyP2ahSzaM75HWMMKfbdzgGDGOkU6UIwKyWsO5UApjQ8 +b+w5IMAK9YvmuQGaaXePDM8sFM3+NQBvsdqnsCefxx0j8FmjF3PjpTmdcm4Rlk8E +yVigb/txwmKdJutcEeFWOnQVNxWugLmYW8P/s5W5IgpIm/8wdEz1bXXV0qGD/LgL +Rhr68OtmFoVp+C6Yf0fDS1yCtmkYlO+RyYtAMOv0G29Xe+MzLQW42fAHXvBGYh/0 +F258TLHjZDOs9nHIc4lQfT7k/MusY4g9RfYSXx8Ts7kXyfyGfj6D5E/kutfXQlH3 +DYjQ/B69dhU7bkEX8nc1xwzHU18pa+APbXqjaU3JewdxY6n+PIGN4ZLZrJ3zgNRj +tGykxlnPg8oAX3HX+ssh1OpU5VMPR+4hOdJkajk6U5Oyv77h4gsbUGCIGXC+0reA +k/jHoSCloifgQ4F3WdDGjPlWO6Hgvy2/KM+JqBX/9nF/Dc0bGfa3mmYXK56xQCPb +pNd6h2elVtlmt6iZgs4WA1uCwira5p0VCCutHgeGyWK4cAE60MFdRnzRZ2r1GuU= +-----END CERTIFICATE----- diff --git a/testbed/directory/certs/ldap.key b/testbed/directory/certs/ldap.key new file mode 100644 index 000000000..3756f05ce --- /dev/null +++ b/testbed/directory/certs/ldap.key @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +MIIJRAIBADANBgkqhkiG9w0BAQEFAASCCS4wggkqAgEAAoICAQC+/SikxGUFYUiK +jghLFPRMaYLZUHyOMWOyCIQSkZrtSi6llB7JhN+tCaFgibPSNrKzOpF7IRJBlaEM +AKN47Fncy7uGPg/3KEtuCLRUxbYv1LgjZl2J0w/SROYIX0bsMEuThojaIxuv4D1f +daF3S7/sKnXywIncZtAqMhISiC9qKq9xT4twiST7SDPY/u3pdVdAjBg4R5XlF69X +WtKaeCoEup9lgvyLT5dQBxdA3q3NAf8UnpgZjHPxa6na7BjXwOyy7uzlUmTd/M0U +MHuAreCBXMJrfrVBTnFYKyPtDYAPmFacA+lsX0a5QjOMIP0JW5dYAKw8SFU9rzGc +qdB/a2mZwxvmrY5CFVI8SZho1JK8y4O3HQbzrqQ3b+t5UyZt1VnCDalAZyAP+Fp0 +TPhlIjQpm0hc7UVyhVuDAJJeV6SkTyAf8othu6wREsaOkfSNwrSGVX7CMxjXxEAI +QfqaLfB7xAMc7mwUn/Lac6I6L2+wa3Ds9xwpSoxHEAYVAJmpAtT8FFh5i0Fk6wqh +UIO8IP5az7ATn1Q8MnYS/Mvne5JN/6L2CABqz0ZDzqHosTQLZ1qEBO+mhXyWsE7P +c4Ky+pmTh8xsP356nLkchvBTUlYpBzsBG+bDCNy8mQ0z+0oEngdZgTKYK+CqejDe +0iOPw/ICkh3eImyQEa3m8qep+X78kwIDAQABAoICADYKjCWTLMKI9G3AIricBURZ +1pyHGbdiYkNOBZD7gksCYpCXiN6cqm3b+73FOQySTZ5JREEC6peELz2mMJtWxVak +jzs89GeLD0zjSaNzDkoadsANhwoonqFwvWZBD2Blif0EZFTU+lCZssQAFOAcnwHE +QfueX2Pt85j88gAsaL4xtdLqHxqIs94mYAVWnRsiCL5K5c+G8fMQ8JxXJqBuv/T2 +mYOvvKXur3IFj57bY3JOzk6XUZJpG6WEQVug0qa6AD/hO0boOYJWtfCwh0Gx8YSp +KpogEEmaWJgKHPBGkaXYBSnAMZxomSpygQN1kiPDtt8/0Xx9OyFpITCjHEvxqL9L +7ce0hebPoG7Ry+QD7YmeERzpdTSEulYywdeoRJMHQtH7AknH1xf77xYC7qGbCeRg +y9TMTQIt8f5gVcFBQlfEoNf+k5Z1LFHG0TpAGrOhy9KFurd+t3PLQAolsjtCA0NS +C366eztBCvQzdOyA70tQoEmbZer5s1AedqsfcSL1aaYm5DmpbfG33y3TLgV7Rl4r +O0jrtXneLSox6ew99hjYuqg1HOTQC5DMPT9KmfqZJQUBNxlpgqIyFOzZp0ooDKWY +6zEdgZLVd3vzX6Q5U7xpMR4/5rypPDtV9KnJxvfptmCK8cygmgFnmoLvuqvnb0k4 +Id/dY0nmBVZQvpdyRwsBAoIBAQDt5AwWhAnwSQRW7NSBltqx5pbDe27/Pl3HgrbC +3WU2sTyCyP6aeCj2wOWWsxQ4AKqGrWuUXUIQHsLJOo1+SlomMUWw+4Gw0ciYNDu3 +b+ZhUQAaM1QqnwVGOJwuEnM/AgG+V7aeuh8S044SW+G5YiHn8rSzsYk8OynEiOoV +E/qT66Jaljgl7+KNiQL1stdEHwnK3PwJOyFciZI4DVGumywwZHJT5230AO+MqcHN +5E7s4JQhTOcy7iwPCGLAe63FMWo7Lai2ApHVdXMSjmgVYKHxZo6NlsvpXNipQmCe +rdW7VCpTChpt/CGQ8I0JNwd0QmjKxEOfkp7xFi+7iEfH6BAJAoIBAQDNhxmCT2tQ +AfNxv9Hzw18tyV8nmMyOD45gu6rKNTgqnZIpoT12gCV5OB9cTvje/5j/LU8b6012 +gUZCG+90XF+1vFFRhr/k0q1gr+gmbrwxBghO/bflz+5JL4w/P9QLcgwr5ewVBkGV +3yu2MAmGrU4EjDb/ZFpDWgjzCw+q2yD6xoM+XU49O+4TDq6q1PidGGTgP7UyuWMD +U/rtjOmgULckA4bMi3zJ0OnoGR/uq1RmmjYLAZQ+Ea22YZuLp1OhUsS41yusIAS7 +otd3+jikqa/FBZnbxb3qXZdC19xwepYG8qf7w+LfJ28Lw9GIdcJfp9xh0BsS0lTW +KqbJRwdmZpa7AoIBAQDD+va2aeriKNVJY2yiogvjOcuEmiDUaKXLonU8TjZ++z6V +pE6UJV/iAQJjx35lsK7Lqv0Qyk+NhjoEm5dLrqdcBYWbi2fJqtouAgIcWjSagaeq +7hRt1Hn84tBP6GVHSDj1fb92PnExClZl64onNqAmPT3/N8iOdVMwlXb7DG2IBTzI +ki8JmfmzjmeA0OglN8jSdoGwfSU73h42zUo4pZ+e8nF5jBR6S3cOFCAUpf0bitye +HoPt4mcrr0Xju0BqTw5sWG5AHBfWmh7F78nxqp1fiZTxMoUk6JeZwZRlxWJqJKmF +pbImX+urQ3F9YPdkIP3B5jSrtpf4l8WVIm24VAc5AoIBAQDLJcBXBz0hBeylAF77 +vJ71WNePAf8eY83tW1HDMLtlk/4G2/MukBd6K7kDuqNPeAC4KQbKp9gXTEwvyAD1 +WODZd1xBYxmFiaAJs5WZd1bYdgf8W9hLdS0odbEAS4zCC2ZwdYDWfyqQgthn6i9g +SSiWYilyYrS9Yd76rHI+BP4iIdlT6VIOQJBfkeGfxYY/cP80kIP/sTJm9blO2DuM +VHvRQxMYVr9vk+m/miXv+LUh/UdxtYvblgnH/c6LSUbmbDM6KKRoK/XBqYGke1VF +nNu5uIGNs3S2lO+QCGFBZEmqcGsN9V7oB8hBLrqLUSpg9kBlBhfckL1+OwZEaMqt +srVFAoIBAQDG6mVeZ6IFBXVk0exij4DIeLHBeEQxnDKK9B7JgsmeaNKU1CFxJbUT +zOM0IsSpxExI2NdkShjHOTlCz43D+EBjpTc7+hLQeUBl8FTamegeU3ACiAuahQoS +PcNNmFGy1e2eNtP839X+39k5fciSvgY3FF58czNeYv2XQemS07IIll+9nV/j+Bsg +Fd2M/Oj2DIcXSE+9OnyIyC0smhXwR8dPhJOPH9C/ww4oQOgVYthBAehSBtiUle7v +qeG1QtF+ODvw94nUxtuesuZ/juHSxqtKXRm+Nho7Do4U9wXhAg5w4rzKZU3yMW/k +Fq6aGlx2+ZhVYPYkzyQGiiPhkx0V1T2d +-----END PRIVATE KEY----- diff --git a/testbed/integration/cheat.html b/testbed/integration/cheat.html new file mode 100644 index 000000000..74682f912 --- /dev/null +++ b/testbed/integration/cheat.html @@ -0,0 +1,110 @@ + + +

Reload Service

+
+ + + +
+

Attribute Resolution

+
+ + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + +
+
+

Metadata Query

+ + + + + +
+ + + +
+ +
+
+

Reload Metadata

+ + + + + +
+ + + +
+ +
+
+

Unsolicited SSO

+ + + + + +
+ + + +
+ +
+metrics + + diff --git a/testbed/integration/docker-compose.yml b/testbed/integration/docker-compose.yml new file mode 100644 index 000000000..eb448e56d --- /dev/null +++ b/testbed/integration/docker-compose.yml @@ -0,0 +1,103 @@ +version: "3.8" + +services: + reverse-proxy: + image: library/traefik:v2.5.2 + command: + - "--api.insecure=true" + - "--providers.docker=true" + - "--providers.docker.exposedbydefault=false" + - "--entrypoints.web-secure.address=:443" + - "--providers.file.directory=/configuration/" + - "--providers.file.watch=true" + # - "--log.level=DEBUG" + networks: + reverse-proxy: + aliases: + - idp.unicon.local + ports: + - "80:80" + - "8080:8080" + - "443:443" + - "8443:8443" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ../reverse-proxy/:/configuration/ + - ../reverse-proxy/certs/:/certs/ + directory: + build: ../directory + networks: + - idp + volumes: + - directory_data:/var/lib/ldap + - directory_config:/etc/ldap/slapd.d + - ../directory/certs:/container/service/slapd/assets/certs + environment: + LDAP_BASE_DN: "dc=unicon,dc=local" + LDAP_DOMAIN: "unicon.local" + HOSTNAME: "directory" + LDAP_TLS_VERIFY_CLIENT: "try" + idp: + build: ./shibboleth-idp + labels: + - "traefik.http.routers.idp.rule=Host(`idp.unicon.local`)" + - "traefik.http.services.idp.loadbalancer.server.port=8080" + - "traefik.http.routers.idp.tls=true" + - "traefik.docker.network=integration_reverse-proxy" + - "traefik.enable=true" + depends_on: + - directory + - reverse-proxy + networks: + - reverse-proxy + - idp + volumes: + - ../directory/certs/ca.crt:/opt/shibboleth-idp/credentials/ldap-server.crt + - dynamic_metadata:/opt/shibboleth-idp/metadata/dynamic + - dynamic_config:/opt/shibboleth-idp/conf/dynamic + healthcheck: + disable: true + shib-idp-ui: + image: unicon/shibui:latest + labels: + - "traefik.http.routers.shibui.rule=Host(`shibui.unicon.local`)" + - "traefik.http.services.shibui.loadbalancer.server.port=8080" + - "traefik.http.routers.shibui.tls=true" + - "traefik.docker.network=integration_reverse-proxy" + - "traefik.enable=true" + networks: + - reverse-proxy + - backend + volumes: + - ./shibui:/conf + - ./shibui/application.yml:/application.yml + - dynamic_metadata:/var/shibboleth/dynamic_metadata + - dynamic_config:/var/shibboleth/dynamic_config + - ./shibboleth-idp/credentials/shib-idp/inc-md-cert-mdq.pem:/opt/shibboleth-idp/credentials/inc-md-cert-mdq.pem + environment: + - "IDP_HOME=/opt/shibboleth-idp" + database: + image: postgres:14-alpine + environment: + POSTGRES_PASSWORD: shibui + POSTGRES_USER: shibui + POSTGRES_DB: shibui + networks: + - backend + volumes: + - database_data:/var/lib/postgresql/data +networks: + reverse-proxy: + idp: + backend: +volumes: + directory_data: + driver: local + directory_config: + driver: local + dynamic_metadata: + driver: local + dynamic_config: + driver: local + database_data: + driver: local diff --git a/testbed/integration/shibboleth-idp/Dockerfile b/testbed/integration/shibboleth-idp/Dockerfile new file mode 100644 index 000000000..1a4087074 --- /dev/null +++ b/testbed/integration/shibboleth-idp/Dockerfile @@ -0,0 +1,25 @@ +FROM i2incommon/shib-idp:4.1.4_20210802 + +# The build args below can be used at build-time to tell the build process where to find your config files. This is for a completely burned-in config. +ARG TOMCFG=config/tomcat +ARG TOMCERT=credentials/tomcat +ARG TOMWWWROOT=wwwroot +ARG SHBCFG=config/shib-idp/conf +ARG SHBCREDS=credentials/shib-idp +ARG SHBVIEWS=config/shib-idp/views +ARG SHBEDWAPP=config/shib-idp/edit-webapp +ARG SHBMSGS=config/shib-idp/messages +ARG SHBMD=config/shib-idp/metadata + +# copy in the needed config files +ADD ${TOMCFG} /usr/local/tomcat/conf +ADD ${TOMCERT} /opt/certs +ADD ${TOMWWWROOT} /usr/local/tomcat/webapps/ROOT +ADD ${SHBCFG} /opt/shibboleth-idp/conf +ADD ${SHBCREDS} /opt/shibboleth-idp/credentials +#ADD ${SHBVIEWS} /opt/shibboleth-idp/views +#ADD ${SHBEDWAPP} /opt/shibboleth-idp/edit-webapp +#ADD ${SHBMSGS} /opt/shibboleth-idp/messages +ADD ${SHBMD} /opt/shibboleth-idp/metadata + +EXPOSE 8080 diff --git a/testbed/integration/shibboleth-idp/config/shib-idp/conf/access-control.xml b/testbed/integration/shibboleth-idp/config/shib-idp/conf/access-control.xml new file mode 100644 index 000000000..e8215e441 --- /dev/null +++ b/testbed/integration/shibboleth-idp/config/shib-idp/conf/access-control.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/testbed/integration/shibboleth-idp/config/shib-idp/conf/attribute-filter.xml b/testbed/integration/shibboleth-idp/config/shib-idp/conf/attribute-filter.xml new file mode 100644 index 000000000..d55617ecd --- /dev/null +++ b/testbed/integration/shibboleth-idp/config/shib-idp/conf/attribute-filter.xml @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testbed/integration/shibboleth-idp/config/shib-idp/conf/attribute-resolver.xml b/testbed/integration/shibboleth-idp/config/shib-idp/conf/attribute-resolver.xml new file mode 100644 index 000000000..eb9ebbd79 --- /dev/null +++ b/testbed/integration/shibboleth-idp/config/shib-idp/conf/attribute-resolver.xml @@ -0,0 +1,270 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testbed/integration/shibboleth-idp/config/shib-idp/conf/cas-protocol.xml b/testbed/integration/shibboleth-idp/config/shib-idp/conf/cas-protocol.xml new file mode 100644 index 000000000..374aa0523 --- /dev/null +++ b/testbed/integration/shibboleth-idp/config/shib-idp/conf/cas-protocol.xml @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testbed/integration/shibboleth-idp/config/shib-idp/conf/idp.properties b/testbed/integration/shibboleth-idp/config/shib-idp/conf/idp.properties new file mode 100644 index 000000000..50af60005 --- /dev/null +++ b/testbed/integration/shibboleth-idp/config/shib-idp/conf/idp.properties @@ -0,0 +1,226 @@ +# Load any additional property resources from a comma-delimited list +idp.additionalProperties=/conf/ldap.properties, /conf/saml-nameid.properties, /conf/services.properties, /conf/authn/duo.properties, /credentials/secrets.properties + +# In most cases (and unless noted in the surrounding comments) the +# commented settings in the distributed files document default behavior. +# Uncomment them and change the value to change functionality. +# +# Uncommented properties are either required or ship non-defaulted. + +# Set the entityID of the IdP +idp.entityID=https://idp.unicon.local/idp/shibboleth + +# Set the file path which backs the IdP's own metadata publishing endpoint at /shibboleth. +# Set to empty value to disable and return a 404. +#idp.entityID.metadataFile=%{idp.home}/metadata/idp-metadata.xml + +# Set the scope used in the attribute resolver for scoped attributes +idp.scope=unicon.local + +# General cookie properties (maxAge only applies to persistent cookies) +#idp.cookie.secure = true +#idp.cookie.httpOnly = true +#idp.cookie.domain = +#idp.cookie.path = +#idp.cookie.maxAge = 31536000 +# These control operation of the SameSite filter, which is off by default. +#idp.cookie.sameSite = None +#idp.cookie.sameSiteCondition = shibboleth.Conditions.FALSE + +# Enable cross-site request forgery mitigation for views. +idp.csrf.enabled=true +# Name of the HTTP parameter that stores the CSRF token. +#idp.csrf.token.parameter = csrf_token + +# HSTS/CSP response headers +#idp.hsts = max-age=0 +# X-Frame-Options value, set to DENY or SAMEORIGIN to block framing +#idp.frameoptions = DENY +# Content-Security-Policy value, set to match X-Frame-Options default +#idp.csp = frame-ancestors 'none'; + +# Set the location of user-supplied web flow definitions +#idp.webflows = %{idp.home}/flows + +# Set the location of Velocity view templates +#idp.views = %{idp.home}/views + +# Settings for internal AES encryption key +#idp.sealer.keyStrategy = shibboleth.DataSealerKeyStrategy +#idp.sealer.storeType = JCEKS +#idp.sealer.updateInterval = PT15M +#idp.sealer.aliasBase = secret +idp.sealer.storeResource=%{idp.home}/credentials/sealer.jks +idp.sealer.versionResource=%{idp.home}/credentials/sealer.kver + +# Settings for public/private signing and encryption key(s) +# During decryption key rollover, point the ".2" properties at a second +# keypair, uncomment in credentials.xml, then publish it in your metadata. +idp.signing.key=%{idp.home}/credentials/idp-signing.key +idp.signing.cert=%{idp.home}/credentials/idp-signing.crt +idp.encryption.key=%{idp.home}/credentials/idp-encryption.key +idp.encryption.cert=%{idp.home}/credentials/idp-encryption.crt +#idp.encryption.key.2 = %{idp.home}/credentials/idp-encryption-old.key +#idp.encryption.cert.2 = %{idp.home}/credentials/idp-encryption-old.crt + +# Sets the bean ID to use as a default security configuration set +#idp.security.config = shibboleth.DefaultSecurityConfiguration + +# To downgrade to SHA-1, set to shibboleth.SigningConfiguration.SHA1 +#idp.signing.config = shibboleth.SigningConfiguration.SHA256 + +# The new install default for encryption is now AES-GCM. +idp.encryption.config=shibboleth.EncryptionConfiguration.GCM + +# Configures trust evaluation of keys used by services at runtime +# Internal default is Chaining, overriden for new installs +idp.trust.signatures=shibboleth.ExplicitKeySignatureTrustEngine +# Other options: +# shibboleth.ChainingSignatureTrustEngine, shibboleth.PKIXSignatureTrustEngine +idp.trust.certificates=shibboleth.ExplicitKeyX509TrustEngine +# Other options: +# shibboleth.ChainingX509TrustEngine, shibboleth.PKIXX509TrustEngine + +# If true, encryption will happen whenever a key to use can be located, but +# failure to encrypt won't result in request failure. +idp.encryption.optional = true + +# Configuration of client- and server-side storage plugins +#idp.storage.cleanupInterval = PT10M +idp.storage.htmlLocalStorage=true + +# Set to true to expose more detailed errors in responses to SPs +#idp.errors.detailed = false +# Set to false to skip signing of SAML response messages that signal errors +#idp.errors.signed = true +# Name of bean containing a list of Java exception classes to ignore +#idp.errors.excludedExceptions = ExceptionClassListBean +# Name of bean containing a property set mapping exception names to views +#idp.errors.exceptionMappings = ExceptionToViewPropertyBean +# Set if a different default view name for events and exceptions is needed +#idp.errors.defaultView = error + +# Set to false to disable the IdP session layer +#idp.session.enabled = true + +# Set to "shibboleth.StorageService" for server-side storage of user sessions +#idp.session.StorageService = shibboleth.ClientSessionStorageService + +# Size of session IDs +#idp.session.idSize = 32 +# Bind sessions to IP addresses +#idp.session.consistentAddress = true +# Inactivity timeout +#idp.session.timeout = PT60M +# Extra time to store sessions for logout +#idp.session.slop = PT0S +# Tolerate storage-related errors +#idp.session.maskStorageFailure = false +# Track information about SPs logged into +idp.session.trackSPSessions=true +# Support lookup by SP for SAML logout +idp.session.secondaryServiceIndex=true +# Length of time to track SP sessions +#idp.session.defaultSPlifetime = PT2H + +# Regular expression matching login flows to enable, e.g. IPAddress|Password +idp.authn.flows=Password + +# Default lifetime and timeout of various authentication methods +#idp.authn.defaultLifetime = PT60M +#idp.authn.defaultTimeout = PT30M + +# Whether to populate relying party user interface information for display +# during authentication, consent, terms-of-use. +#idp.authn.rpui = true + +# Whether to prioritize "active" results when an SP requests more than +# one possible matching login method (V2 behavior was to favor them) +#idp.authn.favorSSO = false + +# Whether to fail requests when a user identity after authentication +# doesn't match the identity in a pre-existing session. +#idp.authn.identitySwitchIsError = false + +# Set to "shibboleth.StorageService" or custom bean for alternate storage of consent +#idp.consent.StorageService = shibboleth.ClientPersistentStorageService + +# Set to "shibboleth.consent.AttributeConsentStorageKey" to use an attribute +# to key user consent storage records (and set the attribute name) +#idp.consent.attribute-release.userStorageKey = shibboleth.consent.PrincipalConsentStorageKey +#idp.consent.attribute-release.userStorageKeyAttribute = uid +#idp.consent.terms-of-use.userStorageKey = shibboleth.consent.PrincipalConsentStorageKey +#idp.consent.terms-of-use.userStorageKeyAttribute = uid + +# Suffix of message property used as value of consent storage records when idp.consent.compareValues is true. +# Defaults to text displayed to the user. +#idp.consent.terms-of-use.consentValueMessageCodeSuffix = .text + +# Flags controlling how built-in attribute consent feature operates +#idp.consent.allowDoNotRemember = true +#idp.consent.allowGlobal = true +#idp.consent.allowPerAttribute = false + +# Whether attribute values and terms of use text are compared +#idp.consent.compareValues = false +# Maximum number of consent records for space-limited storage (e.g. cookies) +#idp.consent.maxStoredRecords = 10 +# Maximum number of consent records for larger/server-side storage (0 = no limit) +#idp.consent.expandedMaxStoredRecords = 0 + +# Time in milliseconds to expire consent storage records. +#idp.consent.storageRecordLifetime = P1Y + +# Whether to lookup metadata, etc. for every SP involved in a logout +# for use by user interface logic; adds overhead so off by default. +#idp.logout.elaboration = false + +# Whether to require logout requests/responses be signed/authenticated. +#idp.logout.authenticated = true + +# Bean to determine whether user should be allowed to cancel logout +#idp.logout.promptUser=shibboleth.Conditions.FALSE + +# Message freshness and replay cache tuning +#idp.policy.messageLifetime = PT3M +#idp.policy.clockSkew = PT3M + +# Set to custom bean for alternate storage of replay cache +#idp.replayCache.StorageService = shibboleth.StorageService +#idp.replayCache.strict = true + +# Toggles whether to allow outbound messages via SAML artifact +#idp.artifact.enabled = true +# Suppresses typical signing/encryption when artifact binding used +#idp.artifact.secureChannel = true +# May differ to direct SAML 2 artifact lookups to specific server nodes +#idp.artifact.endpointIndex = 2 +# Set to custom bean for alternate storage of artifact map state +#idp.artifact.StorageService = shibboleth.StorageService + +# Comma-delimited languages to use if not match can be found with the +# browser-supported languages, defaults to an empty list. +idp.ui.fallbackLanguages=en,fr,de + +# Storage service used by CAS protocol +# Defaults to shibboleth.StorageService (in-memory) +# MUST be server-side storage (e.g. in-memory, memcached, database) +# NOTE that idp.session.StorageService requires server-side storage +# when CAS protocol is enabled +#idp.cas.StorageService=shibboleth.StorageService + +# CAS service registry implementation class +#idp.cas.serviceRegistryClass=net.shibboleth.idp.cas.service.PatternServiceRegistry + +# If true, CAS services provisioned with SAML metadata are identified via entityID +#idp.cas.relyingPartyIdFromMetadata=false + +# F-TICKS auditing - set a salt to include hashed username +#idp.fticks.federation=MyFederation +#idp.fticks.algorithm=SHA-256 +#idp.fticks.salt=somethingsecret +#idp.fticks.loghost=localhost +#idp.fticks.logport=514 + +# Set false if you want SAML bindings "spelled out" in audit log +idp.audit.shortenBindings=true diff --git a/testbed/integration/shibboleth-idp/config/shib-idp/conf/idp.properties.dist b/testbed/integration/shibboleth-idp/config/shib-idp/conf/idp.properties.dist new file mode 100644 index 000000000..7ea276654 --- /dev/null +++ b/testbed/integration/shibboleth-idp/config/shib-idp/conf/idp.properties.dist @@ -0,0 +1,226 @@ +# Load any additional property resources from a comma-delimited list +idp.additionalProperties=/conf/ldap.properties, /conf/saml-nameid.properties, /conf/services.properties, /conf/authn/duo.properties, /credentials/secrets.properties + +# In most cases (and unless noted in the surrounding comments) the +# commented settings in the distributed files document default behavior. +# Uncomment them and change the value to change functionality. +# +# Uncommented properties are either required or ship non-defaulted. + +# Set the entityID of the IdP +idp.entityID=https://idp.example.org/idp/shibboleth + +# Set the file path which backs the IdP's own metadata publishing endpoint at /shibboleth. +# Set to empty value to disable and return a 404. +#idp.entityID.metadataFile=%{idp.home}/metadata/idp-metadata.xml + +# Set the scope used in the attribute resolver for scoped attributes +idp.scope=example.org + +# General cookie properties (maxAge only applies to persistent cookies) +#idp.cookie.secure = true +#idp.cookie.httpOnly = true +#idp.cookie.domain = +#idp.cookie.path = +#idp.cookie.maxAge = 31536000 +# These control operation of the SameSite filter, which is off by default. +#idp.cookie.sameSite = None +#idp.cookie.sameSiteCondition = shibboleth.Conditions.FALSE + +# Enable cross-site request forgery mitigation for views. +idp.csrf.enabled=true +# Name of the HTTP parameter that stores the CSRF token. +#idp.csrf.token.parameter = csrf_token + +# HSTS/CSP response headers +#idp.hsts = max-age=0 +# X-Frame-Options value, set to DENY or SAMEORIGIN to block framing +#idp.frameoptions = DENY +# Content-Security-Policy value, set to match X-Frame-Options default +#idp.csp = frame-ancestors 'none'; + +# Set the location of user-supplied web flow definitions +#idp.webflows = %{idp.home}/flows + +# Set the location of Velocity view templates +#idp.views = %{idp.home}/views + +# Settings for internal AES encryption key +#idp.sealer.keyStrategy = shibboleth.DataSealerKeyStrategy +#idp.sealer.storeType = JCEKS +#idp.sealer.updateInterval = PT15M +#idp.sealer.aliasBase = secret +idp.sealer.storeResource=%{idp.home}/credentials/sealer.jks +idp.sealer.versionResource=%{idp.home}/credentials/sealer.kver + +# Settings for public/private signing and encryption key(s) +# During decryption key rollover, point the ".2" properties at a second +# keypair, uncomment in credentials.xml, then publish it in your metadata. +idp.signing.key=%{idp.home}/credentials/idp-signing.key +idp.signing.cert=%{idp.home}/credentials/idp-signing.crt +idp.encryption.key=%{idp.home}/credentials/idp-encryption.key +idp.encryption.cert=%{idp.home}/credentials/idp-encryption.crt +#idp.encryption.key.2 = %{idp.home}/credentials/idp-encryption-old.key +#idp.encryption.cert.2 = %{idp.home}/credentials/idp-encryption-old.crt + +# Sets the bean ID to use as a default security configuration set +#idp.security.config = shibboleth.DefaultSecurityConfiguration + +# To downgrade to SHA-1, set to shibboleth.SigningConfiguration.SHA1 +#idp.signing.config = shibboleth.SigningConfiguration.SHA256 + +# The new install default for encryption is now AES-GCM. +idp.encryption.config=shibboleth.EncryptionConfiguration.GCM + +# Configures trust evaluation of keys used by services at runtime +# Internal default is Chaining, overriden for new installs +idp.trust.signatures=shibboleth.ExplicitKeySignatureTrustEngine +# Other options: +# shibboleth.ChainingSignatureTrustEngine, shibboleth.PKIXSignatureTrustEngine +idp.trust.certificates=shibboleth.ExplicitKeyX509TrustEngine +# Other options: +# shibboleth.ChainingX509TrustEngine, shibboleth.PKIXX509TrustEngine + +# If true, encryption will happen whenever a key to use can be located, but +# failure to encrypt won't result in request failure. +#idp.encryption.optional = false + +# Configuration of client- and server-side storage plugins +#idp.storage.cleanupInterval = PT10M +idp.storage.htmlLocalStorage=true + +# Set to true to expose more detailed errors in responses to SPs +#idp.errors.detailed = false +# Set to false to skip signing of SAML response messages that signal errors +#idp.errors.signed = true +# Name of bean containing a list of Java exception classes to ignore +#idp.errors.excludedExceptions = ExceptionClassListBean +# Name of bean containing a property set mapping exception names to views +#idp.errors.exceptionMappings = ExceptionToViewPropertyBean +# Set if a different default view name for events and exceptions is needed +#idp.errors.defaultView = error + +# Set to false to disable the IdP session layer +#idp.session.enabled = true + +# Set to "shibboleth.StorageService" for server-side storage of user sessions +#idp.session.StorageService = shibboleth.ClientSessionStorageService + +# Size of session IDs +#idp.session.idSize = 32 +# Bind sessions to IP addresses +#idp.session.consistentAddress = true +# Inactivity timeout +#idp.session.timeout = PT60M +# Extra time to store sessions for logout +#idp.session.slop = PT0S +# Tolerate storage-related errors +#idp.session.maskStorageFailure = false +# Track information about SPs logged into +idp.session.trackSPSessions=true +# Support lookup by SP for SAML logout +idp.session.secondaryServiceIndex=true +# Length of time to track SP sessions +#idp.session.defaultSPlifetime = PT2H + +# Regular expression matching login flows to enable, e.g. IPAddress|Password +idp.authn.flows=Password + +# Default lifetime and timeout of various authentication methods +#idp.authn.defaultLifetime = PT60M +#idp.authn.defaultTimeout = PT30M + +# Whether to populate relying party user interface information for display +# during authentication, consent, terms-of-use. +#idp.authn.rpui = true + +# Whether to prioritize "active" results when an SP requests more than +# one possible matching login method (V2 behavior was to favor them) +#idp.authn.favorSSO = false + +# Whether to fail requests when a user identity after authentication +# doesn't match the identity in a pre-existing session. +#idp.authn.identitySwitchIsError = false + +# Set to "shibboleth.StorageService" or custom bean for alternate storage of consent +#idp.consent.StorageService = shibboleth.ClientPersistentStorageService + +# Set to "shibboleth.consent.AttributeConsentStorageKey" to use an attribute +# to key user consent storage records (and set the attribute name) +#idp.consent.attribute-release.userStorageKey = shibboleth.consent.PrincipalConsentStorageKey +#idp.consent.attribute-release.userStorageKeyAttribute = uid +#idp.consent.terms-of-use.userStorageKey = shibboleth.consent.PrincipalConsentStorageKey +#idp.consent.terms-of-use.userStorageKeyAttribute = uid + +# Suffix of message property used as value of consent storage records when idp.consent.compareValues is true. +# Defaults to text displayed to the user. +#idp.consent.terms-of-use.consentValueMessageCodeSuffix = .text + +# Flags controlling how built-in attribute consent feature operates +#idp.consent.allowDoNotRemember = true +#idp.consent.allowGlobal = true +#idp.consent.allowPerAttribute = false + +# Whether attribute values and terms of use text are compared +#idp.consent.compareValues = false +# Maximum number of consent records for space-limited storage (e.g. cookies) +#idp.consent.maxStoredRecords = 10 +# Maximum number of consent records for larger/server-side storage (0 = no limit) +#idp.consent.expandedMaxStoredRecords = 0 + +# Time in milliseconds to expire consent storage records. +#idp.consent.storageRecordLifetime = P1Y + +# Whether to lookup metadata, etc. for every SP involved in a logout +# for use by user interface logic; adds overhead so off by default. +#idp.logout.elaboration = false + +# Whether to require logout requests/responses be signed/authenticated. +#idp.logout.authenticated = true + +# Bean to determine whether user should be allowed to cancel logout +#idp.logout.promptUser=shibboleth.Conditions.FALSE + +# Message freshness and replay cache tuning +#idp.policy.messageLifetime = PT3M +#idp.policy.clockSkew = PT3M + +# Set to custom bean for alternate storage of replay cache +#idp.replayCache.StorageService = shibboleth.StorageService +#idp.replayCache.strict = true + +# Toggles whether to allow outbound messages via SAML artifact +#idp.artifact.enabled = true +# Suppresses typical signing/encryption when artifact binding used +#idp.artifact.secureChannel = true +# May differ to direct SAML 2 artifact lookups to specific server nodes +#idp.artifact.endpointIndex = 2 +# Set to custom bean for alternate storage of artifact map state +#idp.artifact.StorageService = shibboleth.StorageService + +# Comma-delimited languages to use if not match can be found with the +# browser-supported languages, defaults to an empty list. +idp.ui.fallbackLanguages=en,fr,de + +# Storage service used by CAS protocol +# Defaults to shibboleth.StorageService (in-memory) +# MUST be server-side storage (e.g. in-memory, memcached, database) +# NOTE that idp.session.StorageService requires server-side storage +# when CAS protocol is enabled +#idp.cas.StorageService=shibboleth.StorageService + +# CAS service registry implementation class +#idp.cas.serviceRegistryClass=net.shibboleth.idp.cas.service.PatternServiceRegistry + +# If true, CAS services provisioned with SAML metadata are identified via entityID +#idp.cas.relyingPartyIdFromMetadata=false + +# F-TICKS auditing - set a salt to include hashed username +#idp.fticks.federation=MyFederation +#idp.fticks.algorithm=SHA-256 +#idp.fticks.salt=somethingsecret +#idp.fticks.loghost=localhost +#idp.fticks.logport=514 + +# Set false if you want SAML bindings "spelled out" in audit log +idp.audit.shortenBindings=true diff --git a/testbed/integration/shibboleth-idp/config/shib-idp/conf/ldap.properties b/testbed/integration/shibboleth-idp/config/shib-idp/conf/ldap.properties new file mode 100644 index 000000000..2b1774cda --- /dev/null +++ b/testbed/integration/shibboleth-idp/config/shib-idp/conf/ldap.properties @@ -0,0 +1,61 @@ +# LDAP authentication configuration, see authn/ldap-authn-config.xml +# Note, this doesn't apply to the use of JAAS + +## Authenticator strategy, either anonSearchAuthenticator, bindSearchAuthenticator, directAuthenticator, adAuthenticator +idp.authn.LDAP.authenticator = bindSearchAuthenticator + +## Connection properties ## +idp.authn.LDAP.ldapURL=ldaps://directory +#set below to true if your LDAP server is configured for it +idp.authn.LDAP.useStartTLS = false +#idp.authn.LDAP.useSSL = false +# Time in milliseconds that connects will block +#idp.authn.LDAP.connectTimeout = PT3S +# Time in milliseconds to wait for responses +#idp.authn.LDAP.responseTimeout = PT3S + +## SSL configuration, either jvmTrust, certificateTrust, or keyStoreTrust +idp.authn.LDAP.sslConfig = certificateTrust +## If using certificateTrust above, set to the trusted certificate's path +idp.authn.LDAP.trustCertificates=%{idp.home}/credentials/ldap-server.crt +## If using keyStoreTrust above, set to the truststore path +idp.authn.LDAP.trustStore=%{idp.home}/credentials/ldap-server.truststore + +## Return attributes during authentication +idp.authn.LDAP.returnAttributes=passwordExpirationTime,loginGraceRemaining + +## DN resolution properties ## + +# Search DN resolution, used by anonSearchAuthenticator, bindSearchAuthenticator +# for AD: CN=Users,DC=example,DC=org +idp.authn.LDAP.baseDN=dc=unicon,dc=local +idp.authn.LDAP.subtreeSearch = true +idp.authn.LDAP.userFilter=(uid={user}) +# bind search configuration +# for AD: idp.authn.LDAP.bindDN=adminuser@domain.com +idp.authn.LDAP.bindDN=cn=admin,dc=unicon,dc=local + +# Format DN resolution, used by directAuthenticator, adAuthenticator +# for AD use idp.authn.LDAP.dnFormat=%s@domain.com +idp.authn.LDAP.dnFormat=uid=%s,dc=unicon,dc=local + +# LDAP attribute configuration, see attribute-resolver.xml +# Note, this likely won't apply to the use of legacy V2 resolver configurations +idp.attribute.resolver.LDAP.ldapURL=%{idp.authn.LDAP.ldapURL} +idp.attribute.resolver.LDAP.connectTimeout=%{idp.authn.LDAP.connectTimeout:PT3S} +idp.attribute.resolver.LDAP.responseTimeout=%{idp.authn.LDAP.responseTimeout:PT3S} +idp.attribute.resolver.LDAP.baseDN=%{idp.authn.LDAP.baseDN:undefined} +idp.attribute.resolver.LDAP.bindDN=%{idp.authn.LDAP.bindDN:undefined} +idp.attribute.resolver.LDAP.useStartTLS=%{idp.authn.LDAP.useStartTLS:true} +idp.attribute.resolver.LDAP.trustCertificates=%{idp.authn.LDAP.trustCertificates:undefined} +idp.attribute.resolver.LDAP.searchFilter=(uid=$resolutionContext.principal) + +# LDAP pool configuration, used for both authn and DN resolution +#idp.pool.LDAP.minSize = 3 +#idp.pool.LDAP.maxSize = 10 +#idp.pool.LDAP.validateOnCheckout = false +#idp.pool.LDAP.validatePeriodically = true +#idp.pool.LDAP.validatePeriod = PT5M +#idp.pool.LDAP.prunePeriod = PT5M +#idp.pool.LDAP.idleTime = PT10M +#idp.pool.LDAP.blockWaitTime = PT3S diff --git a/testbed/integration/shibboleth-idp/config/shib-idp/conf/ldap.properties.dist b/testbed/integration/shibboleth-idp/config/shib-idp/conf/ldap.properties.dist new file mode 100644 index 000000000..74d4b77f6 --- /dev/null +++ b/testbed/integration/shibboleth-idp/config/shib-idp/conf/ldap.properties.dist @@ -0,0 +1,61 @@ +# LDAP authentication configuration, see authn/ldap-authn-config.xml +# Note, this doesn't apply to the use of JAAS + +## Authenticator strategy, either anonSearchAuthenticator, bindSearchAuthenticator, directAuthenticator, adAuthenticator +#idp.authn.LDAP.authenticator = anonSearchAuthenticator + +## Connection properties ## +idp.authn.LDAP.ldapURL=ldap://localhost:10389 +#set below to true if your LDAP server is configured for it +idp.authn.LDAP.useStartTLS = false +#idp.authn.LDAP.useSSL = false +# Time in milliseconds that connects will block +#idp.authn.LDAP.connectTimeout = PT3S +# Time in milliseconds to wait for responses +#idp.authn.LDAP.responseTimeout = PT3S + +## SSL configuration, either jvmTrust, certificateTrust, or keyStoreTrust +#idp.authn.LDAP.sslConfig = certificateTrust +## If using certificateTrust above, set to the trusted certificate's path +idp.authn.LDAP.trustCertificates=%{idp.home}/credentials/ldap-server.crt +## If using keyStoreTrust above, set to the truststore path +idp.authn.LDAP.trustStore=%{idp.home}/credentials/ldap-server.truststore + +## Return attributes during authentication +idp.authn.LDAP.returnAttributes=passwordExpirationTime,loginGraceRemaining + +## DN resolution properties ## + +# Search DN resolution, used by anonSearchAuthenticator, bindSearchAuthenticator +# for AD: CN=Users,DC=example,DC=org +idp.authn.LDAP.baseDN=ou=people,dc=example,dc=org +#idp.authn.LDAP.subtreeSearch = false +idp.authn.LDAP.userFilter=(uid={user}) +# bind search configuration +# for AD: idp.authn.LDAP.bindDN=adminuser@domain.com +idp.authn.LDAP.bindDN=uid=myservice,ou=system + +# Format DN resolution, used by directAuthenticator, adAuthenticator +# for AD use idp.authn.LDAP.dnFormat=%s@domain.com +idp.authn.LDAP.dnFormat=uid=%s,ou=people,dc=example,dc=org + +# LDAP attribute configuration, see attribute-resolver.xml +# Note, this likely won't apply to the use of legacy V2 resolver configurations +idp.attribute.resolver.LDAP.ldapURL=%{idp.authn.LDAP.ldapURL} +idp.attribute.resolver.LDAP.connectTimeout=%{idp.authn.LDAP.connectTimeout:PT3S} +idp.attribute.resolver.LDAP.responseTimeout=%{idp.authn.LDAP.responseTimeout:PT3S} +idp.attribute.resolver.LDAP.baseDN=%{idp.authn.LDAP.baseDN:undefined} +idp.attribute.resolver.LDAP.bindDN=%{idp.authn.LDAP.bindDN:undefined} +idp.attribute.resolver.LDAP.useStartTLS=%{idp.authn.LDAP.useStartTLS:true} +idp.attribute.resolver.LDAP.trustCertificates=%{idp.authn.LDAP.trustCertificates:undefined} +idp.attribute.resolver.LDAP.searchFilter=(uid=$resolutionContext.principal) + +# LDAP pool configuration, used for both authn and DN resolution +#idp.pool.LDAP.minSize = 3 +#idp.pool.LDAP.maxSize = 10 +#idp.pool.LDAP.validateOnCheckout = false +#idp.pool.LDAP.validatePeriodically = true +#idp.pool.LDAP.validatePeriod = PT5M +#idp.pool.LDAP.prunePeriod = PT5M +#idp.pool.LDAP.idleTime = PT10M +#idp.pool.LDAP.blockWaitTime = PT3S diff --git a/testbed/integration/shibboleth-idp/config/shib-idp/conf/metadata-providers.xml b/testbed/integration/shibboleth-idp/config/shib-idp/conf/metadata-providers.xml new file mode 100644 index 000000000..59dd76a66 --- /dev/null +++ b/testbed/integration/shibboleth-idp/config/shib-idp/conf/metadata-providers.xml @@ -0,0 +1,24 @@ + + + + + diff --git a/testbed/integration/shibboleth-idp/config/shib-idp/conf/relying-party.xml b/testbed/integration/shibboleth-idp/config/shib-idp/conf/relying-party.xml new file mode 100644 index 000000000..478731ac5 --- /dev/null +++ b/testbed/integration/shibboleth-idp/config/shib-idp/conf/relying-party.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testbed/integration/shibboleth-idp/config/shib-idp/conf/services.xml b/testbed/integration/shibboleth-idp/config/shib-idp/conf/services.xml new file mode 100644 index 000000000..c38ff2aa3 --- /dev/null +++ b/testbed/integration/shibboleth-idp/config/shib-idp/conf/services.xml @@ -0,0 +1,70 @@ + + + + + + + %{idp.home}/conf/relying-party.xml + %{idp.home}/conf/credentials.xml + %{idp.home}/system/conf/relying-party-system.xml + + + + %{idp.home}/conf/metadata-providers.xml + ${idp.home}/conf/dynamic/metadata-providers.xml + %{idp.home}/system/conf/metadata-providers-system.xml + + + + %{idp.home}/conf/attribute-resolver.xml + + + + + %{idp.home}/conf/attribute-registry.xml + %{idp.home}/system/conf/attribute-registry-system.xml + %{idp.home}/conf/attributes/default-rules.xml + %{idp.home}/conf/attribute-resolver.xml + + + + %{idp.home}/conf/attribute-filter.xml + + + + %{idp.home}/conf/saml-nameid.xml + %{idp.home}/system/conf/saml-nameid-system.xml + + + + %{idp.home}/conf/access-control.xml + %{idp.home}/system/conf/access-control-system.xml + + + + %{idp.home}/conf/cas-protocol.xml + + + + + %{idp.home}/messages/messages + %{idp.home}/system/messages/messages + + + diff --git a/testbed/integration/shibboleth-idp/config/shib-idp/metadata/idp-metadata.xml b/testbed/integration/shibboleth-idp/config/shib-idp/metadata/idp-metadata.xml new file mode 100644 index 000000000..d9f0a4019 --- /dev/null +++ b/testbed/integration/shibboleth-idp/config/shib-idp/metadata/idp-metadata.xml @@ -0,0 +1,36 @@ + + + + unicon.local + + + + + +MIIDIDCCAgigAwIBAgIJAN45D3DbemrtMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV +BAMMEGlkcC51bmljb24ubG9jYWwwHhcNMjAwNTI3MTgxMDE0WhcNMjUwNTI2MTgx +MDE0WjAbMRkwFwYDVQQDDBBpZHAudW5pY29uLmxvY2FsMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAoDNLPFL/47cSWKbfb89lVz3EsIlb4z8lZbZUNyzF +m3my5mioe9b6xrS8QF16l1ALb8SEwQzECPKuyRp1LQ5Rj79Ba38TDl+4BezjC7Ui +f9OwzXIYfcetEFZ85tjufIl3ryVbY2kQ1TRypqk72pF1uDLEnqXrnystRxi4x22f +wTu+KkTy0tL/5oV2tjJY0vtO3YAsjNpqqI6WqcbjewtJVIrG4OuOF3r9CPCU7hOY +fc4BtvSQhOgryJM+dF9PmpvALJO8LrMBsNdAO3gz37+mA1F/tD7WYP2XLvrHh+Wd +c0QJ/f8AzCJm5QV4lA/UH/0tKMQS178ti7+4Jyw38iHkYQIDAQABo2cwZTBEBgNV +HREEPTA7ghBpZHAudW5pY29uLmxvY2FshidodHRwczovL2lkcC51bmljb24ubG9j +YWwvaWRwL3NoaWJib2xldGgwHQYDVR0OBBYEFGFkPVcsjWlZDfUk1+SifxhP1l7I +MA0GCSqGSIb3DQEBCwUAA4IBAQBZUq9P9A9DsypasD6WcHNP/EyP5spKRRu2CTWm +Y645kOjg7qMIasHVwA5jSPU7ozgPRV6MpdjCJVWYjUpeSCwXx6YAEKFLZ9WXV26i +e1GFTP1lJqlpnJZqs1RBgvF7q/JxFvxSl8UpjoxNufBANC14T6T3EMQ9EvWLTdCM +cEuXxkwzpeEkh5MtCoicgQ1yvay2QGQBbfCauPAASd957+S7brRON4R2gPonCf18 +5rzh7Do7kFBc6pqAHCYGTUz7uY11EPktIC6AIlZmXV1J0wBCP6SoiZDFjwZsj6m6 +S1N5qGtWDOT5vZiT1nF+mNd990c8qjVcyQST42VyXCBnJ7DR + + + + + + + + + + diff --git a/testbed/integration/shibboleth-idp/config/tomcat/catalina.policy b/testbed/integration/shibboleth-idp/config/tomcat/catalina.policy new file mode 100644 index 000000000..e69de29bb diff --git a/testbed/integration/shibboleth-idp/config/tomcat/catalina.properties b/testbed/integration/shibboleth-idp/config/tomcat/catalina.properties new file mode 100644 index 000000000..a22f1dd3a --- /dev/null +++ b/testbed/integration/shibboleth-idp/config/tomcat/catalina.properties @@ -0,0 +1,150 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# +# List of comma-separated packages that start with or equal this string +# will cause a security exception to be thrown when +# passed to checkPackageAccess unless the +# corresponding RuntimePermission ("accessClassInPackage."+package) has +# been granted. +package.access=sun.,org.apache.catalina.,org.apache.coyote.,org.apache.jasper.,org.apache.tomcat. +# +# List of comma-separated packages that start with or equal this string +# will cause a security exception to be thrown when +# passed to checkPackageDefinition unless the +# corresponding RuntimePermission ("defineClassInPackage."+package) has +# been granted. +# +# by default, no packages are restricted for definition, and none of +# the class loaders supplied with the JDK call checkPackageDefinition. +# +package.definition=sun.,java.,org.apache.catalina.,org.apache.coyote.,\ +org.apache.jasper.,org.apache.naming.,org.apache.tomcat. + +# +# +# List of comma-separated paths defining the contents of the "common" +# classloader. Prefixes should be used to define what is the repository type. +# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute. +# If left as blank,the JVM system loader will be used as Catalina's "common" +# loader. +# Examples: +# "foo": Add this folder as a class repository +# "foo/*.jar": Add all the JARs of the specified folder as class +# repositories +# "foo/bar.jar": Add bar.jar as a class repository +# +# Note: Values are enclosed in double quotes ("...") in case either the +# ${catalina.base} path or the ${catalina.home} path contains a comma. +# Because double quotes are used for quoting, the double quote character +# may not appear in a path. +common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar" + +# +# List of comma-separated paths defining the contents of the "server" +# classloader. Prefixes should be used to define what is the repository type. +# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute. +# If left as blank, the "common" loader will be used as Catalina's "server" +# loader. +# Examples: +# "foo": Add this folder as a class repository +# "foo/*.jar": Add all the JARs of the specified folder as class +# repositories +# "foo/bar.jar": Add bar.jar as a class repository +# +# Note: Values may be enclosed in double quotes ("...") in case either the +# ${catalina.base} path or the ${catalina.home} path contains a comma. +# Because double quotes are used for quoting, the double quote character +# may not appear in a path. +server.loader= + +# +# List of comma-separated paths defining the contents of the "shared" +# classloader. Prefixes should be used to define what is the repository type. +# Path may be relative to the CATALINA_BASE path or absolute. If left as blank, +# the "common" loader will be used as Catalina's "shared" loader. +# Examples: +# "foo": Add this folder as a class repository +# "foo/*.jar": Add all the JARs of the specified folder as class +# repositories +# "foo/bar.jar": Add bar.jar as a class repository +# Please note that for single jars, e.g. bar.jar, you need the URL form +# starting with file:. +# +# Note: Values may be enclosed in double quotes ("...") in case either the +# ${catalina.base} path or the ${catalina.home} path contains a comma. +# Because double quotes are used for quoting, the double quote character +# may not appear in a path. +shared.loader= + +# Default list of JAR files that should not be scanned using the JarScanner +# functionality. This is typically used to scan JARs for configuration +# information. JARs that do not contain such information may be excluded from +# the scan to speed up the scanning process. This is the default list. JARs on +# this list are excluded from all scans. The list must be a comma separated list +# of JAR file names. +# The list of JARs to skip may be over-ridden at a Context level for individual +# scan types by configuring a JarScanner with a nested JarScanFilter. +# The JARs listed below include: +# - Tomcat Bootstrap JARs +# - Tomcat API JARs +# - Catalina JARs +# - Jasper JARs +# - Tomcat JARs +# - Common non-Tomcat JARs +# - Test JARs (JUnit, Cobertura and dependencies) +tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\ +bootstrap.jar,commons-daemon.jar,tomcat-juli.jar,\ +annotations-api.jar,el-api.jar,jsp-api.jar,servlet-api.jar,websocket-api.jar,\ +catalina.jar,catalina-ant.jar,catalina-ha.jar,catalina-storeconfig.jar,\ +catalina-tribes.jar,\ +jasper.jar,jasper-el.jar,ecj-*.jar,\ +tomcat-api.jar,tomcat-util.jar,tomcat-util-scan.jar,tomcat-coyote.jar,\ +tomcat-dbcp.jar,tomcat-jni.jar,tomcat-websocket.jar,\ +tomcat-i18n-en.jar,tomcat-i18n-es.jar,tomcat-i18n-fr.jar,tomcat-i18n-ja.jar,\ +tomcat-juli-adapters.jar,catalina-jmx-remote.jar,catalina-ws.jar,\ +tomcat-jdbc.jar,\ +tools.jar,\ +commons-beanutils*.jar,commons-codec*.jar,commons-collections*.jar,\ +commons-dbcp*.jar,commons-digester*.jar,commons-fileupload*.jar,\ +commons-httpclient*.jar,commons-io*.jar,commons-lang*.jar,commons-logging*.jar,\ +commons-math*.jar,commons-pool*.jar,\ +jstl.jar,taglibs-standard-spec-*.jar,\ +geronimo-spec-jaxrpc*.jar,wsdl4j*.jar,\ +ant.jar,ant-junit*.jar,aspectj*.jar,jmx.jar,h2*.jar,hibernate*.jar,httpclient*.jar,\ +jmx-tools.jar,jta*.jar,log4j*.jar,mail*.jar,slf4j*.jar,\ +xercesImpl.jar,xmlParserAPIs.jar,xml-apis.jar,\ +junit.jar,junit-*.jar,ant-launcher.jar,\ +cobertura-*.jar,asm-*.jar,dom4j-*.jar,icu4j-*.jar,jaxen-*.jar,jdom-*.jar,\ +jetty-*.jar,oro-*.jar,servlet-api-*.jar,tagsoup-*.jar,xmlParserAPIs-*.jar,\ +xom-*.jar + +# Default list of JAR files that should be scanned that overrides the default +# jarsToSkip list above. This is typically used to include a specific JAR that +# has been excluded by a broad file name pattern in the jarsToSkip list. +# The list of JARs to scan may be over-ridden at a Context level for individual +# scan types by configuring a JarScanner with a nested JarScanFilter. +tomcat.util.scan.StandardJarScanFilter.jarsToScan=\ +log4j-web*.jar,log4j-taglib*.jar,log4javascript*.jar,slf4j-taglib*.jar + +# String cache configuration. +tomcat.util.buf.StringCache.byte.enabled=true +#tomcat.util.buf.StringCache.char.enabled=true +#tomcat.util.buf.StringCache.trainThreshold=500000 +#tomcat.util.buf.StringCache.cacheSize=5000 + +# Allow for changes to HTTP request validation +# WARNING: Using this option will expose the server to CVE-2016-6816 +#tomcat.util.http.parser.HttpParser.requestTargetAllow=| diff --git a/testbed/integration/shibboleth-idp/config/tomcat/context.xml b/testbed/integration/shibboleth-idp/config/tomcat/context.xml new file mode 100644 index 000000000..98727cb7b --- /dev/null +++ b/testbed/integration/shibboleth-idp/config/tomcat/context.xml @@ -0,0 +1,36 @@ + + + + + + + + WEB-INF/web.xml + ${catalina.base}/conf/web.xml + + + + + + + diff --git a/testbed/integration/shibboleth-idp/config/tomcat/logging.properties b/testbed/integration/shibboleth-idp/config/tomcat/logging.properties new file mode 100644 index 000000000..cb5ed6611 --- /dev/null +++ b/testbed/integration/shibboleth-idp/config/tomcat/logging.properties @@ -0,0 +1,64 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler + +.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler + +############################################################ +# Handler specific properties. +# Describes specific configuration info for Handlers. +############################################################ + +1catalina.org.apache.juli.AsyncFileHandler.level = FINE +1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs +1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina. + +2localhost.org.apache.juli.AsyncFileHandler.level = FINE +2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs +2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost. + +3manager.org.apache.juli.AsyncFileHandler.level = FINE +3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs +3manager.org.apache.juli.AsyncFileHandler.prefix = manager. + +4host-manager.org.apache.juli.AsyncFileHandler.level = FINE +4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs +4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager. + +java.util.logging.ConsoleHandler.level = FINE +java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter + + +############################################################ +# Facility specific properties. +# Provides extra control for each logger. +############################################################ + +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler + +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler + +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler + +# For example, set the org.apache.catalina.util.LifecycleBase logger to log +# each component that extends LifecycleBase changing state: +#org.apache.catalina.util.LifecycleBase.level = FINE + +# To see debug messages in TldLocationsCache, uncomment the following line: +#org.apache.jasper.compiler.TldLocationsCache.level = FINE diff --git a/testbed/integration/shibboleth-idp/config/tomcat/server.xml b/testbed/integration/shibboleth-idp/config/tomcat/server.xml new file mode 100644 index 000000000..f4b875bca --- /dev/null +++ b/testbed/integration/shibboleth-idp/config/tomcat/server.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + diff --git a/testbed/integration/shibboleth-idp/config/tomcat/tomcat-users.xml b/testbed/integration/shibboleth-idp/config/tomcat/tomcat-users.xml new file mode 100644 index 000000000..fcac27d05 --- /dev/null +++ b/testbed/integration/shibboleth-idp/config/tomcat/tomcat-users.xml @@ -0,0 +1,44 @@ + + + + + + + diff --git a/testbed/integration/shibboleth-idp/config/tomcat/tomcat-users.xsd b/testbed/integration/shibboleth-idp/config/tomcat/tomcat-users.xsd new file mode 100644 index 000000000..44e17d0b5 --- /dev/null +++ b/testbed/integration/shibboleth-idp/config/tomcat/tomcat-users.xsd @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testbed/integration/shibboleth-idp/config/tomcat/web.xml b/testbed/integration/shibboleth-idp/config/tomcat/web.xml new file mode 100644 index 000000000..cf08cfe40 --- /dev/null +++ b/testbed/integration/shibboleth-idp/config/tomcat/web.xml @@ -0,0 +1,4684 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default + org.apache.catalina.servlets.DefaultServlet + + debug + 0 + + + listings + false + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + jsp + org.apache.jasper.servlet.JspServlet + + fork + false + + + xpoweredBy + false + + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default + / + + + + + jsp + *.jsp + *.jspx + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 30 + + + + + + + + + + + + + 123 + application/vnd.lotus-1-2-3 + + + 3dml + text/vnd.in3d.3dml + + + 3ds + image/x-3ds + + + 3g2 + video/3gpp2 + + + 3gp + video/3gpp + + + 7z + application/x-7z-compressed + + + aab + application/x-authorware-bin + + + aac + audio/x-aac + + + aam + application/x-authorware-map + + + aas + application/x-authorware-seg + + + abs + audio/x-mpeg + + + abw + application/x-abiword + + + ac + application/pkix-attr-cert + + + acc + application/vnd.americandynamics.acc + + + ace + application/x-ace-compressed + + + acu + application/vnd.acucobol + + + acutc + application/vnd.acucorp + + + adp + audio/adpcm + + + aep + application/vnd.audiograph + + + afm + application/x-font-type1 + + + afp + application/vnd.ibm.modcap + + + ahead + application/vnd.ahead.space + + + ai + application/postscript + + + aif + audio/x-aiff + + + aifc + audio/x-aiff + + + aiff + audio/x-aiff + + + aim + application/x-aim + + + air + application/vnd.adobe.air-application-installer-package+zip + + + ait + application/vnd.dvb.ait + + + ami + application/vnd.amiga.ami + + + anx + application/annodex + + + apk + application/vnd.android.package-archive + + + appcache + text/cache-manifest + + + application + application/x-ms-application + + + apr + application/vnd.lotus-approach + + + arc + application/x-freearc + + + art + image/x-jg + + + asc + application/pgp-signature + + + asf + video/x-ms-asf + + + asm + text/x-asm + + + aso + application/vnd.accpac.simply.aso + + + asx + video/x-ms-asf + + + atc + application/vnd.acucorp + + + atom + application/atom+xml + + + atomcat + application/atomcat+xml + + + atomsvc + application/atomsvc+xml + + + atx + application/vnd.antix.game-component + + + au + audio/basic + + + avi + video/x-msvideo + + + avx + video/x-rad-screenplay + + + aw + application/applixware + + + axa + audio/annodex + + + axv + video/annodex + + + azf + application/vnd.airzip.filesecure.azf + + + azs + application/vnd.airzip.filesecure.azs + + + azw + application/vnd.amazon.ebook + + + bat + application/x-msdownload + + + bcpio + application/x-bcpio + + + bdf + application/x-font-bdf + + + bdm + application/vnd.syncml.dm+wbxml + + + bed + application/vnd.realvnc.bed + + + bh2 + application/vnd.fujitsu.oasysprs + + + bin + application/octet-stream + + + blb + application/x-blorb + + + blorb + application/x-blorb + + + bmi + application/vnd.bmi + + + bmp + image/bmp + + + body + text/html + + + book + application/vnd.framemaker + + + box + application/vnd.previewsystems.box + + + boz + application/x-bzip2 + + + bpk + application/octet-stream + + + btif + image/prs.btif + + + bz + application/x-bzip + + + bz2 + application/x-bzip2 + + + c + text/x-c + + + c11amc + application/vnd.cluetrust.cartomobile-config + + + c11amz + application/vnd.cluetrust.cartomobile-config-pkg + + + c4d + application/vnd.clonk.c4group + + + c4f + application/vnd.clonk.c4group + + + c4g + application/vnd.clonk.c4group + + + c4p + application/vnd.clonk.c4group + + + c4u + application/vnd.clonk.c4group + + + cab + application/vnd.ms-cab-compressed + + + caf + audio/x-caf + + + cap + application/vnd.tcpdump.pcap + + + car + application/vnd.curl.car + + + cat + application/vnd.ms-pki.seccat + + + cb7 + application/x-cbr + + + cba + application/x-cbr + + + cbr + application/x-cbr + + + cbt + application/x-cbr + + + cbz + application/x-cbr + + + cc + text/x-c + + + cct + application/x-director + + + ccxml + application/ccxml+xml + + + cdbcmsg + application/vnd.contact.cmsg + + + cdf + application/x-cdf + + + cdkey + application/vnd.mediastation.cdkey + + + cdmia + application/cdmi-capability + + + cdmic + application/cdmi-container + + + cdmid + application/cdmi-domain + + + cdmio + application/cdmi-object + + + cdmiq + application/cdmi-queue + + + cdx + chemical/x-cdx + + + cdxml + application/vnd.chemdraw+xml + + + cdy + application/vnd.cinderella + + + cer + application/pkix-cert + + + cfs + application/x-cfs-compressed + + + cgm + image/cgm + + + chat + application/x-chat + + + chm + application/vnd.ms-htmlhelp + + + chrt + application/vnd.kde.kchart + + + cif + chemical/x-cif + + + cii + application/vnd.anser-web-certificate-issue-initiation + + + cil + application/vnd.ms-artgalry + + + cla + application/vnd.claymore + + + class + application/java + + + clkk + application/vnd.crick.clicker.keyboard + + + clkp + application/vnd.crick.clicker.palette + + + clkt + application/vnd.crick.clicker.template + + + clkw + application/vnd.crick.clicker.wordbank + + + clkx + application/vnd.crick.clicker + + + clp + application/x-msclip + + + cmc + application/vnd.cosmocaller + + + cmdf + chemical/x-cmdf + + + cml + chemical/x-cml + + + cmp + application/vnd.yellowriver-custom-menu + + + cmx + image/x-cmx + + + cod + application/vnd.rim.cod + + + com + application/x-msdownload + + + conf + text/plain + + + cpio + application/x-cpio + + + cpp + text/x-c + + + cpt + application/mac-compactpro + + + crd + application/x-mscardfile + + + crl + application/pkix-crl + + + crt + application/x-x509-ca-cert + + + cryptonote + application/vnd.rig.cryptonote + + + csh + application/x-csh + + + csml + chemical/x-csml + + + csp + application/vnd.commonspace + + + css + text/css + + + cst + application/x-director + + + csv + text/csv + + + cu + application/cu-seeme + + + curl + text/vnd.curl + + + cww + application/prs.cww + + + cxt + application/x-director + + + cxx + text/x-c + + + dae + model/vnd.collada+xml + + + daf + application/vnd.mobius.daf + + + dart + application/vnd.dart + + + dataless + application/vnd.fdsn.seed + + + davmount + application/davmount+xml + + + dbk + application/docbook+xml + + + dcr + application/x-director + + + dcurl + text/vnd.curl.dcurl + + + dd2 + application/vnd.oma.dd2+xml + + + ddd + application/vnd.fujixerox.ddd + + + deb + application/x-debian-package + + + def + text/plain + + + deploy + application/octet-stream + + + der + application/x-x509-ca-cert + + + dfac + application/vnd.dreamfactory + + + dgc + application/x-dgc-compressed + + + dib + image/bmp + + + dic + text/x-c + + + dir + application/x-director + + + dis + application/vnd.mobius.dis + + + dist + application/octet-stream + + + distz + application/octet-stream + + + djv + image/vnd.djvu + + + djvu + image/vnd.djvu + + + dll + application/x-msdownload + + + dmg + application/x-apple-diskimage + + + dmp + application/vnd.tcpdump.pcap + + + dms + application/octet-stream + + + dna + application/vnd.dna + + + doc + application/msword + + + docm + application/vnd.ms-word.document.macroenabled.12 + + + docx + application/vnd.openxmlformats-officedocument.wordprocessingml.document + + + dot + application/msword + + + dotm + application/vnd.ms-word.template.macroenabled.12 + + + dotx + application/vnd.openxmlformats-officedocument.wordprocessingml.template + + + dp + application/vnd.osgi.dp + + + dpg + application/vnd.dpgraph + + + dra + audio/vnd.dra + + + dsc + text/prs.lines.tag + + + dssc + application/dssc+der + + + dtb + application/x-dtbook+xml + + + dtd + application/xml-dtd + + + dts + audio/vnd.dts + + + dtshd + audio/vnd.dts.hd + + + dump + application/octet-stream + + + dv + video/x-dv + + + dvb + video/vnd.dvb.file + + + dvi + application/x-dvi + + + dwf + model/vnd.dwf + + + dwg + image/vnd.dwg + + + dxf + image/vnd.dxf + + + dxp + application/vnd.spotfire.dxp + + + dxr + application/x-director + + + ecelp4800 + audio/vnd.nuera.ecelp4800 + + + ecelp7470 + audio/vnd.nuera.ecelp7470 + + + ecelp9600 + audio/vnd.nuera.ecelp9600 + + + ecma + application/ecmascript + + + edm + application/vnd.novadigm.edm + + + edx + application/vnd.novadigm.edx + + + efif + application/vnd.picsel + + + ei6 + application/vnd.pg.osasli + + + elc + application/octet-stream + + + emf + application/x-msmetafile + + + eml + message/rfc822 + + + emma + application/emma+xml + + + emz + application/x-msmetafile + + + eol + audio/vnd.digital-winds + + + eot + application/vnd.ms-fontobject + + + eps + application/postscript + + + epub + application/epub+zip + + + es3 + application/vnd.eszigno3+xml + + + esa + application/vnd.osgi.subsystem + + + esf + application/vnd.epson.esf + + + et3 + application/vnd.eszigno3+xml + + + etx + text/x-setext + + + eva + application/x-eva + + + evy + application/x-envoy + + + exe + application/octet-stream + + + exi + application/exi + + + ext + application/vnd.novadigm.ext + + + ez + application/andrew-inset + + + ez2 + application/vnd.ezpix-album + + + ez3 + application/vnd.ezpix-package + + + f + text/x-fortran + + + f4v + video/x-f4v + + + f77 + text/x-fortran + + + f90 + text/x-fortran + + + fbs + image/vnd.fastbidsheet + + + fcdt + application/vnd.adobe.formscentral.fcdt + + + fcs + application/vnd.isac.fcs + + + fdf + application/vnd.fdf + + + fe_launch + application/vnd.denovo.fcselayout-link + + + fg5 + application/vnd.fujitsu.oasysgp + + + fgd + application/x-director + + + fh + image/x-freehand + + + fh4 + image/x-freehand + + + fh5 + image/x-freehand + + + fh7 + image/x-freehand + + + fhc + image/x-freehand + + + fig + application/x-xfig + + + flac + audio/flac + + + fli + video/x-fli + + + flo + application/vnd.micrografx.flo + + + flv + video/x-flv + + + flw + application/vnd.kde.kivio + + + flx + text/vnd.fmi.flexstor + + + fly + text/vnd.fly + + + fm + application/vnd.framemaker + + + fnc + application/vnd.frogans.fnc + + + for + text/x-fortran + + + fpx + image/vnd.fpx + + + frame + application/vnd.framemaker + + + fsc + application/vnd.fsc.weblaunch + + + fst + image/vnd.fst + + + ftc + application/vnd.fluxtime.clip + + + fti + application/vnd.anser-web-funds-transfer-initiation + + + fvt + video/vnd.fvt + + + fxp + application/vnd.adobe.fxp + + + fxpl + application/vnd.adobe.fxp + + + fzs + application/vnd.fuzzysheet + + + g2w + application/vnd.geoplan + + + g3 + image/g3fax + + + g3w + application/vnd.geospace + + + gac + application/vnd.groove-account + + + gam + application/x-tads + + + gbr + application/rpki-ghostbusters + + + gca + application/x-gca-compressed + + + gdl + model/vnd.gdl + + + geo + application/vnd.dynageo + + + gex + application/vnd.geometry-explorer + + + ggb + application/vnd.geogebra.file + + + ggt + application/vnd.geogebra.tool + + + ghf + application/vnd.groove-help + + + gif + image/gif + + + gim + application/vnd.groove-identity-message + + + gml + application/gml+xml + + + gmx + application/vnd.gmx + + + gnumeric + application/x-gnumeric + + + gph + application/vnd.flographit + + + gpx + application/gpx+xml + + + gqf + application/vnd.grafeq + + + gqs + application/vnd.grafeq + + + gram + application/srgs + + + gramps + application/x-gramps-xml + + + gre + application/vnd.geometry-explorer + + + grv + application/vnd.groove-injector + + + grxml + application/srgs+xml + + + gsf + application/x-font-ghostscript + + + gtar + application/x-gtar + + + gtm + application/vnd.groove-tool-message + + + gtw + model/vnd.gtw + + + gv + text/vnd.graphviz + + + gxf + application/gxf + + + gxt + application/vnd.geonext + + + gz + application/x-gzip + + + h + text/x-c + + + h261 + video/h261 + + + h263 + video/h263 + + + h264 + video/h264 + + + hal + application/vnd.hal+xml + + + hbci + application/vnd.hbci + + + hdf + application/x-hdf + + + hh + text/x-c + + + hlp + application/winhlp + + + hpgl + application/vnd.hp-hpgl + + + hpid + application/vnd.hp-hpid + + + hps + application/vnd.hp-hps + + + hqx + application/mac-binhex40 + + + htc + text/x-component + + + htke + application/vnd.kenameaapp + + + htm + text/html + + + html + text/html + + + hvd + application/vnd.yamaha.hv-dic + + + hvp + application/vnd.yamaha.hv-voice + + + hvs + application/vnd.yamaha.hv-script + + + i2g + application/vnd.intergeo + + + icc + application/vnd.iccprofile + + + ice + x-conference/x-cooltalk + + + icm + application/vnd.iccprofile + + + ico + image/x-icon + + + ics + text/calendar + + + ief + image/ief + + + ifb + text/calendar + + + ifm + application/vnd.shana.informed.formdata + + + iges + model/iges + + + igl + application/vnd.igloader + + + igm + application/vnd.insors.igm + + + igs + model/iges + + + igx + application/vnd.micrografx.igx + + + iif + application/vnd.shana.informed.interchange + + + imp + application/vnd.accpac.simply.imp + + + ims + application/vnd.ms-ims + + + in + text/plain + + + ink + application/inkml+xml + + + inkml + application/inkml+xml + + + install + application/x-install-instructions + + + iota + application/vnd.astraea-software.iota + + + ipfix + application/ipfix + + + ipk + application/vnd.shana.informed.package + + + irm + application/vnd.ibm.rights-management + + + irp + application/vnd.irepository.package+xml + + + iso + application/x-iso9660-image + + + itp + application/vnd.shana.informed.formtemplate + + + ivp + application/vnd.immervision-ivp + + + ivu + application/vnd.immervision-ivu + + + jad + text/vnd.sun.j2me.app-descriptor + + + jam + application/vnd.jam + + + jar + application/java-archive + + + java + text/x-java-source + + + jisp + application/vnd.jisp + + + jlt + application/vnd.hp-jlyt + + + jnlp + application/x-java-jnlp-file + + + joda + application/vnd.joost.joda-archive + + + jpe + image/jpeg + + + jpeg + image/jpeg + + + jpg + image/jpeg + + + jpgm + video/jpm + + + jpgv + video/jpeg + + + jpm + video/jpm + + + js + application/javascript + + + jsf + text/plain + + + json + application/json + + + jsonml + application/jsonml+json + + + jspf + text/plain + + + kar + audio/midi + + + karbon + application/vnd.kde.karbon + + + kfo + application/vnd.kde.kformula + + + kia + application/vnd.kidspiration + + + kml + application/vnd.google-earth.kml+xml + + + kmz + application/vnd.google-earth.kmz + + + kne + application/vnd.kinar + + + knp + application/vnd.kinar + + + kon + application/vnd.kde.kontour + + + kpr + application/vnd.kde.kpresenter + + + kpt + application/vnd.kde.kpresenter + + + kpxx + application/vnd.ds-keypoint + + + ksp + application/vnd.kde.kspread + + + ktr + application/vnd.kahootz + + + ktx + image/ktx + + + ktz + application/vnd.kahootz + + + kwd + application/vnd.kde.kword + + + kwt + application/vnd.kde.kword + + + lasxml + application/vnd.las.las+xml + + + latex + application/x-latex + + + lbd + application/vnd.llamagraphics.life-balance.desktop + + + lbe + application/vnd.llamagraphics.life-balance.exchange+xml + + + les + application/vnd.hhe.lesson-player + + + lha + application/x-lzh-compressed + + + link66 + application/vnd.route66.link66+xml + + + list + text/plain + + + list3820 + application/vnd.ibm.modcap + + + listafp + application/vnd.ibm.modcap + + + lnk + application/x-ms-shortcut + + + log + text/plain + + + lostxml + application/lost+xml + + + lrf + application/octet-stream + + + lrm + application/vnd.ms-lrm + + + ltf + application/vnd.frogans.ltf + + + lvp + audio/vnd.lucent.voice + + + lwp + application/vnd.lotus-wordpro + + + lzh + application/x-lzh-compressed + + + m13 + application/x-msmediaview + + + m14 + application/x-msmediaview + + + m1v + video/mpeg + + + m21 + application/mp21 + + + m2a + audio/mpeg + + + m2v + video/mpeg + + + m3a + audio/mpeg + + + m3u + audio/x-mpegurl + + + m3u8 + application/vnd.apple.mpegurl + + + m4a + audio/mp4 + + + m4b + audio/mp4 + + + m4r + audio/mp4 + + + m4u + video/vnd.mpegurl + + + m4v + video/mp4 + + + ma + application/mathematica + + + mac + image/x-macpaint + + + mads + application/mads+xml + + + mag + application/vnd.ecowin.chart + + + maker + application/vnd.framemaker + + + man + text/troff + + + mar + application/octet-stream + + + mathml + application/mathml+xml + + + mb + application/mathematica + + + mbk + application/vnd.mobius.mbk + + + mbox + application/mbox + + + mc1 + application/vnd.medcalcdata + + + mcd + application/vnd.mcd + + + mcurl + text/vnd.curl.mcurl + + + mdb + application/x-msaccess + + + mdi + image/vnd.ms-modi + + + me + text/troff + + + mesh + model/mesh + + + meta4 + application/metalink4+xml + + + metalink + application/metalink+xml + + + mets + application/mets+xml + + + mfm + application/vnd.mfmp + + + mft + application/rpki-manifest + + + mgp + application/vnd.osgeo.mapguide.package + + + mgz + application/vnd.proteus.magazine + + + mid + audio/midi + + + midi + audio/midi + + + mie + application/x-mie + + + mif + application/x-mif + + + mime + message/rfc822 + + + mj2 + video/mj2 + + + mjp2 + video/mj2 + + + mk3d + video/x-matroska + + + mka + audio/x-matroska + + + mks + video/x-matroska + + + mkv + video/x-matroska + + + mlp + application/vnd.dolby.mlp + + + mmd + application/vnd.chipnuts.karaoke-mmd + + + mmf + application/vnd.smaf + + + mmr + image/vnd.fujixerox.edmics-mmr + + + mng + video/x-mng + + + mny + application/x-msmoney + + + mobi + application/x-mobipocket-ebook + + + mods + application/mods+xml + + + mov + video/quicktime + + + movie + video/x-sgi-movie + + + mp1 + audio/mpeg + + + mp2 + audio/mpeg + + + mp21 + application/mp21 + + + mp2a + audio/mpeg + + + mp3 + audio/mpeg + + + mp4 + video/mp4 + + + mp4a + audio/mp4 + + + mp4s + application/mp4 + + + mp4v + video/mp4 + + + mpa + audio/mpeg + + + mpc + application/vnd.mophun.certificate + + + mpe + video/mpeg + + + mpeg + video/mpeg + + + mpega + audio/x-mpeg + + + mpg + video/mpeg + + + mpg4 + video/mp4 + + + mpga + audio/mpeg + + + mpkg + application/vnd.apple.installer+xml + + + mpm + application/vnd.blueice.multipass + + + mpn + application/vnd.mophun.application + + + mpp + application/vnd.ms-project + + + mpt + application/vnd.ms-project + + + mpv2 + video/mpeg2 + + + mpy + application/vnd.ibm.minipay + + + mqy + application/vnd.mobius.mqy + + + mrc + application/marc + + + mrcx + application/marcxml+xml + + + ms + text/troff + + + mscml + application/mediaservercontrol+xml + + + mseed + application/vnd.fdsn.mseed + + + mseq + application/vnd.mseq + + + msf + application/vnd.epson.msf + + + msh + model/mesh + + + msi + application/x-msdownload + + + msl + application/vnd.mobius.msl + + + msty + application/vnd.muvee.style + + + mts + model/vnd.mts + + + mus + application/vnd.musician + + + musicxml + application/vnd.recordare.musicxml+xml + + + mvb + application/x-msmediaview + + + mwf + application/vnd.mfer + + + mxf + application/mxf + + + mxl + application/vnd.recordare.musicxml + + + mxml + application/xv+xml + + + mxs + application/vnd.triscape.mxs + + + mxu + video/vnd.mpegurl + + + n-gage + application/vnd.nokia.n-gage.symbian.install + + + n3 + text/n3 + + + nb + application/mathematica + + + nbp + application/vnd.wolfram.player + + + nc + application/x-netcdf + + + ncx + application/x-dtbncx+xml + + + nfo + text/x-nfo + + + ngdat + application/vnd.nokia.n-gage.data + + + nitf + application/vnd.nitf + + + nlu + application/vnd.neurolanguage.nlu + + + nml + application/vnd.enliven + + + nnd + application/vnd.noblenet-directory + + + nns + application/vnd.noblenet-sealer + + + nnw + application/vnd.noblenet-web + + + npx + image/vnd.net-fpx + + + nsc + application/x-conference + + + nsf + application/vnd.lotus-notes + + + ntf + application/vnd.nitf + + + nzb + application/x-nzb + + + oa2 + application/vnd.fujitsu.oasys2 + + + oa3 + application/vnd.fujitsu.oasys3 + + + oas + application/vnd.fujitsu.oasys + + + obd + application/x-msbinder + + + obj + application/x-tgif + + + oda + application/oda + + + + odb + application/vnd.oasis.opendocument.database + + + + odc + application/vnd.oasis.opendocument.chart + + + + odf + application/vnd.oasis.opendocument.formula + + + odft + application/vnd.oasis.opendocument.formula-template + + + + odg + application/vnd.oasis.opendocument.graphics + + + + odi + application/vnd.oasis.opendocument.image + + + + odm + application/vnd.oasis.opendocument.text-master + + + + odp + application/vnd.oasis.opendocument.presentation + + + + ods + application/vnd.oasis.opendocument.spreadsheet + + + + odt + application/vnd.oasis.opendocument.text + + + oga + audio/ogg + + + ogg + audio/ogg + + + ogv + video/ogg + + + + ogx + application/ogg + + + omdoc + application/omdoc+xml + + + onepkg + application/onenote + + + onetmp + application/onenote + + + onetoc + application/onenote + + + onetoc2 + application/onenote + + + opf + application/oebps-package+xml + + + opml + text/x-opml + + + oprc + application/vnd.palm + + + org + application/vnd.lotus-organizer + + + osf + application/vnd.yamaha.openscoreformat + + + osfpvg + application/vnd.yamaha.openscoreformat.osfpvg+xml + + + otc + application/vnd.oasis.opendocument.chart-template + + + otf + application/x-font-otf + + + + otg + application/vnd.oasis.opendocument.graphics-template + + + + oth + application/vnd.oasis.opendocument.text-web + + + oti + application/vnd.oasis.opendocument.image-template + + + + otp + application/vnd.oasis.opendocument.presentation-template + + + + ots + application/vnd.oasis.opendocument.spreadsheet-template + + + + ott + application/vnd.oasis.opendocument.text-template + + + oxps + application/oxps + + + oxt + application/vnd.openofficeorg.extension + + + p + text/x-pascal + + + p10 + application/pkcs10 + + + p12 + application/x-pkcs12 + + + p7b + application/x-pkcs7-certificates + + + p7c + application/pkcs7-mime + + + p7m + application/pkcs7-mime + + + p7r + application/x-pkcs7-certreqresp + + + p7s + application/pkcs7-signature + + + p8 + application/pkcs8 + + + pas + text/x-pascal + + + paw + application/vnd.pawaafile + + + pbd + application/vnd.powerbuilder6 + + + pbm + image/x-portable-bitmap + + + pcap + application/vnd.tcpdump.pcap + + + pcf + application/x-font-pcf + + + pcl + application/vnd.hp-pcl + + + pclxl + application/vnd.hp-pclxl + + + pct + image/pict + + + pcurl + application/vnd.curl.pcurl + + + pcx + image/x-pcx + + + pdb + application/vnd.palm + + + pdf + application/pdf + + + pfa + application/x-font-type1 + + + pfb + application/x-font-type1 + + + pfm + application/x-font-type1 + + + pfr + application/font-tdpfr + + + pfx + application/x-pkcs12 + + + pgm + image/x-portable-graymap + + + pgn + application/x-chess-pgn + + + pgp + application/pgp-encrypted + + + pic + image/pict + + + pict + image/pict + + + pkg + application/octet-stream + + + pki + application/pkixcmp + + + pkipath + application/pkix-pkipath + + + plb + application/vnd.3gpp.pic-bw-large + + + plc + application/vnd.mobius.plc + + + plf + application/vnd.pocketlearn + + + pls + audio/x-scpls + + + pml + application/vnd.ctc-posml + + + png + image/png + + + pnm + image/x-portable-anymap + + + pnt + image/x-macpaint + + + portpkg + application/vnd.macports.portpkg + + + pot + application/vnd.ms-powerpoint + + + potm + application/vnd.ms-powerpoint.template.macroenabled.12 + + + potx + application/vnd.openxmlformats-officedocument.presentationml.template + + + ppam + application/vnd.ms-powerpoint.addin.macroenabled.12 + + + ppd + application/vnd.cups-ppd + + + ppm + image/x-portable-pixmap + + + pps + application/vnd.ms-powerpoint + + + ppsm + application/vnd.ms-powerpoint.slideshow.macroenabled.12 + + + ppsx + application/vnd.openxmlformats-officedocument.presentationml.slideshow + + + ppt + application/vnd.ms-powerpoint + + + pptm + application/vnd.ms-powerpoint.presentation.macroenabled.12 + + + pptx + application/vnd.openxmlformats-officedocument.presentationml.presentation + + + pqa + application/vnd.palm + + + prc + application/x-mobipocket-ebook + + + pre + application/vnd.lotus-freelance + + + prf + application/pics-rules + + + ps + application/postscript + + + psb + application/vnd.3gpp.pic-bw-small + + + psd + image/vnd.adobe.photoshop + + + psf + application/x-font-linux-psf + + + pskcxml + application/pskc+xml + + + ptid + application/vnd.pvi.ptid1 + + + pub + application/x-mspublisher + + + pvb + application/vnd.3gpp.pic-bw-var + + + pwn + application/vnd.3m.post-it-notes + + + pya + audio/vnd.ms-playready.media.pya + + + pyv + video/vnd.ms-playready.media.pyv + + + qam + application/vnd.epson.quickanime + + + qbo + application/vnd.intu.qbo + + + qfx + application/vnd.intu.qfx + + + qps + application/vnd.publishare-delta-tree + + + qt + video/quicktime + + + qti + image/x-quicktime + + + qtif + image/x-quicktime + + + qwd + application/vnd.quark.quarkxpress + + + qwt + application/vnd.quark.quarkxpress + + + qxb + application/vnd.quark.quarkxpress + + + qxd + application/vnd.quark.quarkxpress + + + qxl + application/vnd.quark.quarkxpress + + + qxt + application/vnd.quark.quarkxpress + + + ra + audio/x-pn-realaudio + + + ram + audio/x-pn-realaudio + + + rar + application/x-rar-compressed + + + ras + image/x-cmu-raster + + + rcprofile + application/vnd.ipunplugged.rcprofile + + + rdf + application/rdf+xml + + + rdz + application/vnd.data-vision.rdz + + + rep + application/vnd.businessobjects + + + res + application/x-dtbresource+xml + + + rgb + image/x-rgb + + + rif + application/reginfo+xml + + + rip + audio/vnd.rip + + + ris + application/x-research-info-systems + + + rl + application/resource-lists+xml + + + rlc + image/vnd.fujixerox.edmics-rlc + + + rld + application/resource-lists-diff+xml + + + rm + application/vnd.rn-realmedia + + + rmi + audio/midi + + + rmp + audio/x-pn-realaudio-plugin + + + rms + application/vnd.jcp.javame.midlet-rms + + + rmvb + application/vnd.rn-realmedia-vbr + + + rnc + application/relax-ng-compact-syntax + + + roa + application/rpki-roa + + + roff + text/troff + + + rp9 + application/vnd.cloanto.rp9 + + + rpss + application/vnd.nokia.radio-presets + + + rpst + application/vnd.nokia.radio-preset + + + rq + application/sparql-query + + + rs + application/rls-services+xml + + + rsd + application/rsd+xml + + + rss + application/rss+xml + + + rtf + application/rtf + + + rtx + text/richtext + + + s + text/x-asm + + + s3m + audio/s3m + + + saf + application/vnd.yamaha.smaf-audio + + + sbml + application/sbml+xml + + + sc + application/vnd.ibm.secure-container + + + scd + application/x-msschedule + + + scm + application/vnd.lotus-screencam + + + scq + application/scvp-cv-request + + + scs + application/scvp-cv-response + + + scurl + text/vnd.curl.scurl + + + sda + application/vnd.stardivision.draw + + + sdc + application/vnd.stardivision.calc + + + sdd + application/vnd.stardivision.impress + + + sdkd + application/vnd.solent.sdkm+xml + + + sdkm + application/vnd.solent.sdkm+xml + + + sdp + application/sdp + + + sdw + application/vnd.stardivision.writer + + + see + application/vnd.seemail + + + seed + application/vnd.fdsn.seed + + + sema + application/vnd.sema + + + semd + application/vnd.semd + + + semf + application/vnd.semf + + + ser + application/java-serialized-object + + + setpay + application/set-payment-initiation + + + setreg + application/set-registration-initiation + + + sfd-hdstx + application/vnd.hydrostatix.sof-data + + + sfs + application/vnd.spotfire.sfs + + + sfv + text/x-sfv + + + sgi + image/sgi + + + sgl + application/vnd.stardivision.writer-global + + + sgm + text/sgml + + + sgml + text/sgml + + + sh + application/x-sh + + + shar + application/x-shar + + + shf + application/shf+xml + + + + sid + image/x-mrsid-image + + + sig + application/pgp-signature + + + sil + audio/silk + + + silo + model/mesh + + + sis + application/vnd.symbian.install + + + sisx + application/vnd.symbian.install + + + sit + application/x-stuffit + + + sitx + application/x-stuffitx + + + skd + application/vnd.koan + + + skm + application/vnd.koan + + + skp + application/vnd.koan + + + skt + application/vnd.koan + + + sldm + application/vnd.ms-powerpoint.slide.macroenabled.12 + + + sldx + application/vnd.openxmlformats-officedocument.presentationml.slide + + + slt + application/vnd.epson.salt + + + sm + application/vnd.stepmania.stepchart + + + smf + application/vnd.stardivision.math + + + smi + application/smil+xml + + + smil + application/smil+xml + + + smv + video/x-smv + + + smzip + application/vnd.stepmania.package + + + snd + audio/basic + + + snf + application/x-font-snf + + + so + application/octet-stream + + + spc + application/x-pkcs7-certificates + + + spf + application/vnd.yamaha.smaf-phrase + + + spl + application/x-futuresplash + + + spot + text/vnd.in3d.spot + + + spp + application/scvp-vp-response + + + spq + application/scvp-vp-request + + + spx + audio/ogg + + + sql + application/x-sql + + + src + application/x-wais-source + + + srt + application/x-subrip + + + sru + application/sru+xml + + + srx + application/sparql-results+xml + + + ssdl + application/ssdl+xml + + + sse + application/vnd.kodak-descriptor + + + ssf + application/vnd.epson.ssf + + + ssml + application/ssml+xml + + + st + application/vnd.sailingtracker.track + + + stc + application/vnd.sun.xml.calc.template + + + std + application/vnd.sun.xml.draw.template + + + stf + application/vnd.wt.stf + + + sti + application/vnd.sun.xml.impress.template + + + stk + application/hyperstudio + + + stl + application/vnd.ms-pki.stl + + + str + application/vnd.pg.format + + + stw + application/vnd.sun.xml.writer.template + + + sub + text/vnd.dvb.subtitle + + + sus + application/vnd.sus-calendar + + + susp + application/vnd.sus-calendar + + + sv4cpio + application/x-sv4cpio + + + sv4crc + application/x-sv4crc + + + svc + application/vnd.dvb.service + + + svd + application/vnd.svd + + + svg + image/svg+xml + + + svgz + image/svg+xml + + + swa + application/x-director + + + swf + application/x-shockwave-flash + + + swi + application/vnd.aristanetworks.swi + + + sxc + application/vnd.sun.xml.calc + + + sxd + application/vnd.sun.xml.draw + + + sxg + application/vnd.sun.xml.writer.global + + + sxi + application/vnd.sun.xml.impress + + + sxm + application/vnd.sun.xml.math + + + sxw + application/vnd.sun.xml.writer + + + t + text/troff + + + t3 + application/x-t3vm-image + + + taglet + application/vnd.mynfc + + + tao + application/vnd.tao.intent-module-archive + + + tar + application/x-tar + + + tcap + application/vnd.3gpp2.tcap + + + tcl + application/x-tcl + + + teacher + application/vnd.smart.teacher + + + tei + application/tei+xml + + + teicorpus + application/tei+xml + + + tex + application/x-tex + + + texi + application/x-texinfo + + + texinfo + application/x-texinfo + + + text + text/plain + + + tfi + application/thraud+xml + + + tfm + application/x-tex-tfm + + + tga + image/x-tga + + + thmx + application/vnd.ms-officetheme + + + tif + image/tiff + + + tiff + image/tiff + + + tmo + application/vnd.tmobile-livetv + + + torrent + application/x-bittorrent + + + tpl + application/vnd.groove-tool-template + + + tpt + application/vnd.trid.tpt + + + tr + text/troff + + + tra + application/vnd.trueapp + + + trm + application/x-msterminal + + + tsd + application/timestamped-data + + + tsv + text/tab-separated-values + + + ttc + application/x-font-ttf + + + ttf + application/x-font-ttf + + + ttl + text/turtle + + + twd + application/vnd.simtech-mindmapper + + + twds + application/vnd.simtech-mindmapper + + + txd + application/vnd.genomatix.tuxedo + + + txf + application/vnd.mobius.txf + + + txt + text/plain + + + u32 + application/x-authorware-bin + + + udeb + application/x-debian-package + + + ufd + application/vnd.ufdl + + + ufdl + application/vnd.ufdl + + + ulw + audio/basic + + + ulx + application/x-glulx + + + umj + application/vnd.umajin + + + unityweb + application/vnd.unity + + + uoml + application/vnd.uoml+xml + + + uri + text/uri-list + + + uris + text/uri-list + + + urls + text/uri-list + + + ustar + application/x-ustar + + + utz + application/vnd.uiq.theme + + + uu + text/x-uuencode + + + uva + audio/vnd.dece.audio + + + uvd + application/vnd.dece.data + + + uvf + application/vnd.dece.data + + + uvg + image/vnd.dece.graphic + + + uvh + video/vnd.dece.hd + + + uvi + image/vnd.dece.graphic + + + uvm + video/vnd.dece.mobile + + + uvp + video/vnd.dece.pd + + + uvs + video/vnd.dece.sd + + + uvt + application/vnd.dece.ttml+xml + + + uvu + video/vnd.uvvu.mp4 + + + uvv + video/vnd.dece.video + + + uvva + audio/vnd.dece.audio + + + uvvd + application/vnd.dece.data + + + uvvf + application/vnd.dece.data + + + uvvg + image/vnd.dece.graphic + + + uvvh + video/vnd.dece.hd + + + uvvi + image/vnd.dece.graphic + + + uvvm + video/vnd.dece.mobile + + + uvvp + video/vnd.dece.pd + + + uvvs + video/vnd.dece.sd + + + uvvt + application/vnd.dece.ttml+xml + + + uvvu + video/vnd.uvvu.mp4 + + + uvvv + video/vnd.dece.video + + + uvvx + application/vnd.dece.unspecified + + + uvvz + application/vnd.dece.zip + + + uvx + application/vnd.dece.unspecified + + + uvz + application/vnd.dece.zip + + + vcard + text/vcard + + + vcd + application/x-cdlink + + + vcf + text/x-vcard + + + vcg + application/vnd.groove-vcard + + + vcs + text/x-vcalendar + + + vcx + application/vnd.vcx + + + vis + application/vnd.visionary + + + viv + video/vnd.vivo + + + vob + video/x-ms-vob + + + vor + application/vnd.stardivision.writer + + + vox + application/x-authorware-bin + + + vrml + model/vrml + + + vsd + application/vnd.visio + + + vsf + application/vnd.vsf + + + vss + application/vnd.visio + + + vst + application/vnd.visio + + + vsw + application/vnd.visio + + + vtu + model/vnd.vtu + + + vxml + application/voicexml+xml + + + w3d + application/x-director + + + wad + application/x-doom + + + wav + audio/x-wav + + + wax + audio/x-ms-wax + + + + wbmp + image/vnd.wap.wbmp + + + wbs + application/vnd.criticaltools.wbs+xml + + + wbxml + application/vnd.wap.wbxml + + + wcm + application/vnd.ms-works + + + wdb + application/vnd.ms-works + + + wdp + image/vnd.ms-photo + + + weba + audio/webm + + + webm + video/webm + + + webp + image/webp + + + wg + application/vnd.pmi.widget + + + wgt + application/widget + + + wks + application/vnd.ms-works + + + wm + video/x-ms-wm + + + wma + audio/x-ms-wma + + + wmd + application/x-ms-wmd + + + wmf + application/x-msmetafile + + + + wml + text/vnd.wap.wml + + + + wmlc + application/vnd.wap.wmlc + + + + wmls + text/vnd.wap.wmlscript + + + + wmlsc + application/vnd.wap.wmlscriptc + + + wmv + video/x-ms-wmv + + + wmx + video/x-ms-wmx + + + wmz + application/x-msmetafile + + + woff + application/x-font-woff + + + wpd + application/vnd.wordperfect + + + wpl + application/vnd.ms-wpl + + + wps + application/vnd.ms-works + + + wqd + application/vnd.wqd + + + wri + application/x-mswrite + + + wrl + model/vrml + + + wsdl + application/wsdl+xml + + + wspolicy + application/wspolicy+xml + + + wtb + application/vnd.webturbo + + + wvx + video/x-ms-wvx + + + x32 + application/x-authorware-bin + + + x3d + model/x3d+xml + + + x3db + model/x3d+binary + + + x3dbz + model/x3d+binary + + + x3dv + model/x3d+vrml + + + x3dvz + model/x3d+vrml + + + x3dz + model/x3d+xml + + + xaml + application/xaml+xml + + + xap + application/x-silverlight-app + + + xar + application/vnd.xara + + + xbap + application/x-ms-xbap + + + xbd + application/vnd.fujixerox.docuworks.binder + + + xbm + image/x-xbitmap + + + xdf + application/xcap-diff+xml + + + xdm + application/vnd.syncml.dm+xml + + + xdp + application/vnd.adobe.xdp+xml + + + xdssc + application/dssc+xml + + + xdw + application/vnd.fujixerox.docuworks + + + xenc + application/xenc+xml + + + xer + application/patch-ops-error+xml + + + xfdf + application/vnd.adobe.xfdf + + + xfdl + application/vnd.xfdl + + + xht + application/xhtml+xml + + + xhtml + application/xhtml+xml + + + xhvml + application/xv+xml + + + xif + image/vnd.xiff + + + xla + application/vnd.ms-excel + + + xlam + application/vnd.ms-excel.addin.macroenabled.12 + + + xlc + application/vnd.ms-excel + + + xlf + application/x-xliff+xml + + + xlm + application/vnd.ms-excel + + + xls + application/vnd.ms-excel + + + xlsb + application/vnd.ms-excel.sheet.binary.macroenabled.12 + + + xlsm + application/vnd.ms-excel.sheet.macroenabled.12 + + + xlsx + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + xlt + application/vnd.ms-excel + + + xltm + application/vnd.ms-excel.template.macroenabled.12 + + + xltx + application/vnd.openxmlformats-officedocument.spreadsheetml.template + + + xlw + application/vnd.ms-excel + + + xm + audio/xm + + + xml + application/xml + + + xo + application/vnd.olpc-sugar + + + xop + application/xop+xml + + + xpi + application/x-xpinstall + + + xpl + application/xproc+xml + + + xpm + image/x-xpixmap + + + xpr + application/vnd.is-xpr + + + xps + application/vnd.ms-xpsdocument + + + xpw + application/vnd.intercon.formnet + + + xpx + application/vnd.intercon.formnet + + + xsl + application/xml + + + xslt + application/xslt+xml + + + xsm + application/vnd.syncml+xml + + + xspf + application/xspf+xml + + + xul + application/vnd.mozilla.xul+xml + + + xvm + application/xv+xml + + + xvml + application/xv+xml + + + xwd + image/x-xwindowdump + + + xyz + chemical/x-xyz + + + xz + application/x-xz + + + yang + application/yang + + + yin + application/yin+xml + + + z + application/x-compress + + + Z + application/x-compress + + + z1 + application/x-zmachine + + + z2 + application/x-zmachine + + + z3 + application/x-zmachine + + + z4 + application/x-zmachine + + + z5 + application/x-zmachine + + + z6 + application/x-zmachine + + + z7 + application/x-zmachine + + + z8 + application/x-zmachine + + + zaz + application/vnd.zzazz.deck+xml + + + zip + application/zip + + + zir + application/vnd.zul + + + zirz + application/vnd.zul + + + zmm + application/vnd.handheld-entertainment+xml + + + + + + + + + + + + + + + + + + index.html + index.htm + index.jsp + + + diff --git a/testbed/integration/shibboleth-idp/credentials/shib-idp/idp-encryption.crt b/testbed/integration/shibboleth-idp/credentials/shib-idp/idp-encryption.crt new file mode 100644 index 000000000..5587059bf --- /dev/null +++ b/testbed/integration/shibboleth-idp/credentials/shib-idp/idp-encryption.crt @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIDIDCCAgigAwIBAgIJAJ2AOdYo1M8xMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV +BAMMEGlkcC51bmljb24ubG9jYWwwHhcNMjAwNTI3MTgxMDE0WhcNMjUwNTI2MTgx +MDE0WjAbMRkwFwYDVQQDDBBpZHAudW5pY29uLmxvY2FsMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAp3MXVm6QP7qEhSQ16mIDjFAoUuBeqD7hzFlh4neY +9N1rlU3Ut+qUWQWPeuJtjl3c3RMR9Uctbaw9H7wrI0pn8YBRAOhJg3Xu4mwpQfMl +R4/QnE+Wno/S0khksfWtBU8B5DqR7UzhwjjRjJPfHCcKP+GXxVkfKNzNjf8VodVG +e0Nn81cJP3PbYYgMkax4jEKUcZ/6YZzc1UY53Vnjbi4nqQU7pDUhfAtusi7rRXFm +tB5z6qiwTM79aeW0SExYF1up6/06ImIU5RQY3f1ouonSUVSgmXc2/lGXQJdFJe7C +9ELkOUmzgLacGQ8OUA6Xy5lbz0xiTHqc8h+1v4/PTYRJVQIDAQABo2cwZTBEBgNV +HREEPTA7ghBpZHAudW5pY29uLmxvY2FshidodHRwczovL2lkcC51bmljb24ubG9j +YWwvaWRwL3NoaWJib2xldGgwHQYDVR0OBBYEFCMykG71ww3BiwZl9Mv9QyqjyJTL +MA0GCSqGSIb3DQEBCwUAA4IBAQA83eXZlUb9mPl9a9cgUdTaVvGLQ+mZj1AB5gS4 +GxOsDiUi648LDEjiCjhbvB9SM4j3n2mQ0G+hPk15Mv18EKOJkV8ft0N7JmZz6D+f +JVUO39ynWVKGnMM1H/93IltgzYwOHnfIoWcrErqCRjXxjHQgweZ6yCoYSLxHjVI/ +KsYkds46PY5Hrs7cnnFMehylmVnCqopUUwFBn6/XgQtj/ESkz8L/zJc0zuxJbCLB +rs3HcGkhBFOn77YBwQMsAKooiA07QLeqQYtYo+JcTD+t57eE40qNaMkioY06QlFr +gduIdTOHEVXbEPawoSgdYlg8qOG1dPyuKrhZu+Cbyq7bs8cG +-----END CERTIFICATE----- diff --git a/testbed/integration/shibboleth-idp/credentials/shib-idp/idp-encryption.key b/testbed/integration/shibboleth-idp/credentials/shib-idp/idp-encryption.key new file mode 100644 index 000000000..e188b6b9f --- /dev/null +++ b/testbed/integration/shibboleth-idp/credentials/shib-idp/idp-encryption.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCncxdWbpA/uoSF +JDXqYgOMUChS4F6oPuHMWWHid5j03WuVTdS36pRZBY964m2OXdzdExH1Ry1trD0f +vCsjSmfxgFEA6EmDde7ibClB8yVHj9CcT5aej9LSSGSx9a0FTwHkOpHtTOHCONGM +k98cJwo/4ZfFWR8o3M2N/xWh1UZ7Q2fzVwk/c9thiAyRrHiMQpRxn/phnNzVRjnd +WeNuLiepBTukNSF8C26yLutFcWa0HnPqqLBMzv1p5bRITFgXW6nr/ToiYhTlFBjd +/Wi6idJRVKCZdzb+UZdAl0Ul7sL0QuQ5SbOAtpwZDw5QDpfLmVvPTGJMepzyH7W/ +j89NhElVAgMBAAECggEAHPLWvAiNQ5c5RdNGxuh++Ij7D6jedHO6kZt6Qq6ucNa+ +vKch+VHCp8lATtxKWGx9vHKJjj/p6KX4Qz5Cru00Hxox5thBrUp8LATK9S3V6hNA +22UfAvaWWehOED4K1XodN5mwlLfP58Xu5EDEN5fAO98CYAnSSzwxBTVuRfYbIz/y +ZtbBnsrq+PSG1acPjlftbzRlSlVxSWmITCnNAH3zO5ugAnrbbvA2HPXQe042Xe25 +x0NS83zP/KK198THlzV+UeW1S08gyzWdF2sE+6UYL4Dp6weuPv4EafRRYWUgV0z8 +z8IE3PwPb8LdNgdP8v0Zhoz5lSC5Y3WL6YwbgRro2QKBgQDRdl7FLszcvr/yuHA4 +DFRnK6DrR1fqRnK7xlLTWgOIh27lC8wY/qRPP+7mVwOvECKasBE1sxRoURG/DDAa +QNVqJWszBOwHlIRvwMhbze9JXO5D6M3hWLZu+ZbWn+dGdVeBlyTX2y95V32ZzaUv +CNVjQ3FNF7U/6ZvqaCGeroZ/2wKBgQDMpyaexWYypvNOoExyoO46IH4fFVO7raCG +aWgDgmhyifTLIysgCdDAs7tPPkNhxt5BgSc5Awa9MVmpK2scttJnjnGwsHQyaGmD +fi6UTDkzN1ijL/hXtd5SnuynVWTDkdLvYfSr8t8zevmYddZRKjnzIaYG7IFueO0C +oQtKfMX6jwKBgDYMlFHPTL+dXQx1uUdNLy5cHK75ft8OBKcdetvcu1Ksl9n0nFrK +wn1Mowm+5E11HWjLC/XOWvK8EJc6vuLXXfqA41OL7pfaI/5uQYUm85r7puPRG+cN +LC4gq2KAan5M4yKmbLRic7Kc9+ULIpercNynV4IsHvH6BuiKrDo1ELHHAoGAE/EN +sFbn2HOwLa8tA9ZuoDdeUsUPPbBzfeVzfzQL3W1X7xtkLmEGeGCLFfOpOTPZoGRn +YATNeU3/wJ48d7XQ1spohaEMEYVfErMO8uBiin0QJAaeml1cZoyZ3sxRX0UsWqse +3kpyOV/4RkTlN094ChrzRKVzD0K1RZZPtVhnKj0CgYAPqNvfgj1YB9Ejc0wM6zGx +iElOKPAwmmUqr2odFs5YVmICp2sIi/OSIjL4WTzQ2PBtBaU8NVVFjchmrpYWQQNe +D7k8ZaGBjRivTnswS+xTdIKbsY9VchFXhGkFFUBswHWCLG7myvgNd/0JTvZtkK3C +4Bohg2T1ArE7WMcY4QgXNw== +-----END PRIVATE KEY----- diff --git a/testbed/integration/shibboleth-idp/credentials/shib-idp/idp-signing.crt b/testbed/integration/shibboleth-idp/credentials/shib-idp/idp-signing.crt new file mode 100644 index 000000000..1e8cc50ea --- /dev/null +++ b/testbed/integration/shibboleth-idp/credentials/shib-idp/idp-signing.crt @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIDIDCCAgigAwIBAgIJAN45D3DbemrtMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV +BAMMEGlkcC51bmljb24ubG9jYWwwHhcNMjAwNTI3MTgxMDE0WhcNMjUwNTI2MTgx +MDE0WjAbMRkwFwYDVQQDDBBpZHAudW5pY29uLmxvY2FsMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAoDNLPFL/47cSWKbfb89lVz3EsIlb4z8lZbZUNyzF +m3my5mioe9b6xrS8QF16l1ALb8SEwQzECPKuyRp1LQ5Rj79Ba38TDl+4BezjC7Ui +f9OwzXIYfcetEFZ85tjufIl3ryVbY2kQ1TRypqk72pF1uDLEnqXrnystRxi4x22f +wTu+KkTy0tL/5oV2tjJY0vtO3YAsjNpqqI6WqcbjewtJVIrG4OuOF3r9CPCU7hOY +fc4BtvSQhOgryJM+dF9PmpvALJO8LrMBsNdAO3gz37+mA1F/tD7WYP2XLvrHh+Wd +c0QJ/f8AzCJm5QV4lA/UH/0tKMQS178ti7+4Jyw38iHkYQIDAQABo2cwZTBEBgNV +HREEPTA7ghBpZHAudW5pY29uLmxvY2FshidodHRwczovL2lkcC51bmljb24ubG9j +YWwvaWRwL3NoaWJib2xldGgwHQYDVR0OBBYEFGFkPVcsjWlZDfUk1+SifxhP1l7I +MA0GCSqGSIb3DQEBCwUAA4IBAQBZUq9P9A9DsypasD6WcHNP/EyP5spKRRu2CTWm +Y645kOjg7qMIasHVwA5jSPU7ozgPRV6MpdjCJVWYjUpeSCwXx6YAEKFLZ9WXV26i +e1GFTP1lJqlpnJZqs1RBgvF7q/JxFvxSl8UpjoxNufBANC14T6T3EMQ9EvWLTdCM +cEuXxkwzpeEkh5MtCoicgQ1yvay2QGQBbfCauPAASd957+S7brRON4R2gPonCf18 +5rzh7Do7kFBc6pqAHCYGTUz7uY11EPktIC6AIlZmXV1J0wBCP6SoiZDFjwZsj6m6 +S1N5qGtWDOT5vZiT1nF+mNd990c8qjVcyQST42VyXCBnJ7DR +-----END CERTIFICATE----- diff --git a/testbed/integration/shibboleth-idp/credentials/shib-idp/idp-signing.key b/testbed/integration/shibboleth-idp/credentials/shib-idp/idp-signing.key new file mode 100644 index 000000000..3e93b9fbe --- /dev/null +++ b/testbed/integration/shibboleth-idp/credentials/shib-idp/idp-signing.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCgM0s8Uv/jtxJY +pt9vz2VXPcSwiVvjPyVltlQ3LMWbebLmaKh71vrGtLxAXXqXUAtvxITBDMQI8q7J +GnUtDlGPv0FrfxMOX7gF7OMLtSJ/07DNchh9x60QVnzm2O58iXevJVtjaRDVNHKm +qTvakXW4MsSepeufKy1HGLjHbZ/BO74qRPLS0v/mhXa2MljS+07dgCyM2mqojpap +xuN7C0lUisbg644Xev0I8JTuE5h9zgG29JCE6CvIkz50X0+am8Ask7wuswGw10A7 +eDPfv6YDUX+0PtZg/Zcu+seH5Z1zRAn9/wDMImblBXiUD9Qf/S0oxBLXvy2Lv7gn +LDfyIeRhAgMBAAECggEASJM0UF3ho036t8LRkpvIc19+TePMhwTCcnPJbz2PQEI/ +8/YR7hiUf5S9fANdWFNg+v9yjOq1nMAkwuKDlyfXd2HTx1lITsi6W6TXryQePv6u +KES6J7FgC/jCmOpKEI1OdUBdSIn+oDgkgLBGd1xSkmIdhSnxtqge2QiwHVjieO1a +O4zR2lI4eywWJJWWYxgftDNTWwtL94vmfi33up95kAXk8hxIZtMJ0MnNxTrCr1sh +i3yF/JETK0VzbI/eJecIXKtGZO0X01boWoeMSAZXJGkK/d0SGSSeISfADgFn4VxA +aktuq6byui0dSVuT8arA0lC2n4W8p8BVceKrEvH36QKBgQDR7h7m9WckQ9HqTIdH +ITdBNkevrId0GOdC8MRVvEMJQDBtVomdmmSVS4taQFdZ9yUqMw5PY2o6D7qI3KoK +DyzyPJalNzMoOvSR5Xieg9IjBEdYrz8PZr4aFUc0+fTR0C1mPiLMVyO0IftJOQzR +aCHJc+JIO6cYMirTKMjxdNVC5wKBgQDDW1pNrcGBmviEQAqdUfdZlFz26jv3jdgT +81QAgTUq0ieSkbxMTtd0ugk0r48HaRGl+4+agGYHIx8LjuKEHGrezjWF4k9VSsjD +vd1y6FSBVZKiKEOrrVRpuBi4bSDXM6anR6ovvWRjUoS24PrKdGgEYo8cib4QTTVh +088rDmN9dwKBgBANJ/m629cPBHbowRM0O/hVgSeyhmzfFpestyZjDbEgYlOJ4V3W +l0g/DXmqH8O2PPY8DyUM0et8lmOuk6XPQT2IWnBphxTVZSveotlj9OZOhnIGfEje +LzzpUZeAYTLFuyLtL1X2d7lnO8J+hTdhweuYW73wKbeU5mdc3/huWXwTAoGAL4t2 +KN2W8MIUpasoai1es7CGB5nuSkt9QS3BTfYkSG2pL+TEHRY7Ha+BOg9YEgeiQfE9 +e+6v5iDIF3oI6vo3kE5DfHgdsrZmsiztTl/44RlAfLKr9YZTuv8RFSGKEpYBg0jP +xJqlaf7VSeTrZIZ8IkUSa3GijjkcOtjf3Ky9zfUCgYB6Hk6Ixb2ksM2tdLFFm+/x +w+pzI6kaK5KW0kaNax2WwyzrvF0W3pQwVeFwPVgeWjdL0F4pXtHc4HGKwTNMEJfO +4B5Gi5unIrff9gCNpkwMlfLSTmvvhthzs8dNGTGjWzAuGqug2xQlPCWLK/c0mZSq +55MS3HX0pv+LFsKGr9+nZQ== +-----END PRIVATE KEY----- diff --git a/testbed/integration/shibboleth-idp/credentials/shib-idp/inc-md-cert-mdq.pem b/testbed/integration/shibboleth-idp/credentials/shib-idp/inc-md-cert-mdq.pem new file mode 100644 index 000000000..178dcf853 --- /dev/null +++ b/testbed/integration/shibboleth-idp/credentials/shib-idp/inc-md-cert-mdq.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIEvjCCAyagAwIBAgIJANpi9/mkU/zoMA0GCSqGSIb3DQEBCwUAMHQxCzAJBgNV +BAYTAlVTMQswCQYDVQQIDAJNSTESMBAGA1UEBwwJQW5uIEFyYm9yMRYwFAYDVQQK +DA1JbnRlcm5ldDIuZWR1MREwDwYDVQQLDAhJbkNvbW1vbjEZMBcGA1UEAwwQbWRx +LmluY29tbW9uLm9yZzAeFw0xODExMTMxNDI5NDNaFw0zODExMTAxNDI5NDNaMHQx +CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJNSTESMBAGA1UEBwwJQW5uIEFyYm9yMRYw +FAYDVQQKDA1JbnRlcm5ldDIuZWR1MREwDwYDVQQLDAhJbkNvbW1vbjEZMBcGA1UE +AwwQbWRxLmluY29tbW9uLm9yZzCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoC +ggGBAJ0+fUTzYVSP6ZOutOEhNdp3WPCPOYqnB4sQFz7IeGbFL1o0lZjx5Izm4Yho +4wNDd0h486iSkHxNf5dDhCqgz7ZRSmbusOl98SYn70PrUQj/Nzs3w47dPg9Tpb/x +y44PvNLS/rE56hPgCz/fbHoTTiJt5eosysa1ZebQ3LEyW3jGm+LGtLbdIfkynKVQ +vpp1FVeCamzdeB3ZRICAvqTYQKE1JQDGlWrEsSW0VVEGNjfbzMzr/g4l8JRdMabQ +Jig8tj3UIXnu7A2CKSMJSy3WZ3HX+85oHEbL+EV4PtpQz765c69tUIdNTJax9jQ2 +1c3wL0K27HE8jSRlrXImD50R3dXQBKH+iiynBWxRPdyMBa1YfK+zZEWPbLHshSTc +9hkylQv3awmPR/+Plz5AtTpe5yss/Ifyp01wz1jt42R+6jDE+WbUjp5XDBCAjGEE +0FPaYtxjZLkmNl367bdTN12OIn/ixPNH+Z/S/4skdBB9Gc4lb2fEBywJQY0OYNOd +WOxmPwIDAQABo1MwUTAdBgNVHQ4EFgQUMHZuwMaYSJM5mlu3Wc4Ts5xq4/swHwYD +VR0jBBgwFoAUMHZuwMaYSJM5mlu3Wc4Ts5xq4/swDwYDVR0TAQH/BAUwAwEB/zAN +BgkqhkiG9w0BAQsFAAOCAYEAMr4wfLrSoPTzfpXtvL+2vrKBJNnRfuJpOYTbPKUc +DOP2QfzRlczi7suYJvd5rLiRonq8rjyPUyM8gvTfbTps+JhJ6S9mS6dTBxOV1qPZ +3Ab+XKmq8LUtguGRabKgJgmJH0+inR/wVoal7EVHcWXfij9AT8DZOXW88shc6grh +jUaFZBu/2+q8c8ee0e4ip8B+CVEnCwDKI0d+nTcSmPvAE34CNa33F+QGpXawv5yv +VvIpSaLAeFQhc/jKcnNHfy+Zi7JmSnKZiMvQCbWANQmDjHg7pGmBW9nyQcm6P2/B +0AVcEj1YTpAR8Mbh1pUdIhoB+chaNnFEIZsXeRsdbbAFpxodInlJ7WekfuvSQ6sU +EXpoyBGOeuuTmR1va8k3QeL8Wc4yNu/g5LwjmtvPrh2jBF8xujc4J6VzP8K2BjA4 +xk4LnXgjHOT93dBAJhVYJkykDHwyvHUvsBHoP6lfjrt5P8zunK2mdP/AZKik+Rdt +1GGlErV2AyWShTOaDLW6NxdP +-----END CERTIFICATE----- diff --git a/testbed/integration/shibboleth-idp/credentials/shib-idp/sealer.jks b/testbed/integration/shibboleth-idp/credentials/shib-idp/sealer.jks new file mode 100644 index 000000000..fe7529f3b Binary files /dev/null and b/testbed/integration/shibboleth-idp/credentials/shib-idp/sealer.jks differ diff --git a/testbed/integration/shibboleth-idp/credentials/shib-idp/sealer.kver b/testbed/integration/shibboleth-idp/credentials/shib-idp/sealer.kver new file mode 100644 index 000000000..81a9ede16 --- /dev/null +++ b/testbed/integration/shibboleth-idp/credentials/shib-idp/sealer.kver @@ -0,0 +1,2 @@ +#Thu Feb 06 17:19:55 UTC 2020 +CurrentVersion=1 diff --git a/testbed/integration/shibboleth-idp/credentials/shib-idp/secrets.properties b/testbed/integration/shibboleth-idp/credentials/shib-idp/secrets.properties new file mode 100644 index 000000000..e1963309a --- /dev/null +++ b/testbed/integration/shibboleth-idp/credentials/shib-idp/secrets.properties @@ -0,0 +1,14 @@ +# This is a reserved spot for most properties containing passwords or other secrets. +# Created by install at Wed May 27 18:10:14 UTC 2020 + +# Access to internal AES encryption key +idp.sealer.storePassword = e1ef1671-661c-43d6-be51-ae9888fa3879 +idp.sealer.keyPassword = e1ef1671-661c-43d6-be51-ae9888fa3879 + +# Default access to LDAP authn and attribute stores. +idp.authn.LDAP.bindDNCredential = admin +idp.attribute.resolver.LDAP.bindDNCredential = %{idp.authn.LDAP.bindDNCredential:undefined} + +# Salt used to generate persistent/pairwise IDs, must be kept secret +#idp.persistentId.salt = changethistosomethingrandom + diff --git a/testbed/integration/shibboleth-idp/credentials/tomcat/keystore.jks b/testbed/integration/shibboleth-idp/credentials/tomcat/keystore.jks new file mode 100644 index 000000000..ea9ad03b7 Binary files /dev/null and b/testbed/integration/shibboleth-idp/credentials/tomcat/keystore.jks differ diff --git a/testbed/integration/shibboleth-idp/metadata/dynamic/700bfe6fa4495100f5c193fa5b7ca4192c150923.xml b/testbed/integration/shibboleth-idp/metadata/dynamic/700bfe6fa4495100f5c193fa5b7ca4192c150923.xml new file mode 100644 index 000000000..3d2f94edf --- /dev/null +++ b/testbed/integration/shibboleth-idp/metadata/dynamic/700bfe6fa4495100f5c193fa5b7ca4192c150923.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + urn:oasis:names:tc:SAML:2.0:nameid-format:transient + urn:oasis:names:tc:SAML:2.0:nameid-format:persistent + urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress + urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified + + + diff --git a/testbed/integration/shibboleth-idp/wwwroot/robots.txt b/testbed/integration/shibboleth-idp/wwwroot/robots.txt new file mode 100644 index 000000000..1f53798bb --- /dev/null +++ b/testbed/integration/shibboleth-idp/wwwroot/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / diff --git a/testbed/integration/shibui/application.yml b/testbed/integration/shibui/application.yml new file mode 100644 index 000000000..9ac3a21f9 --- /dev/null +++ b/testbed/integration/shibui/application.yml @@ -0,0 +1,20 @@ +server: + forward-headers-strategy: NATIVE +spring: + profiles: + include: + datasource: + platform: postgres + driver-class-name: org.postgresql.Driver + url: jdbc:postgresql://database:5432/shibui + username: shibui + password: shibui + jpa: + properties: + hibernate: + dialect: org.hibernate.dialect.PostgreSQLDialect +shibui: + default-password: "{noop}letmein7" + metadata-dir: /var/shibboleth/dynamic_metadata + metadataProviders: + target: file:/var/shibboleth/dynamic_config/metadata-providers.xml diff --git a/testbed/reverse-proxy/certs/star.unicon.local.crt b/testbed/reverse-proxy/certs/star.unicon.local.crt new file mode 100644 index 000000000..efd24fe9f --- /dev/null +++ b/testbed/reverse-proxy/certs/star.unicon.local.crt @@ -0,0 +1,30 @@ +-----BEGIN CERTIFICATE----- +MIIFFTCCAv2gAwIBAgIUFsOsEwK1AdLuTYYEGCNzC9hIElcwDQYJKoZIhvcNAQEL +BQAwGTEXMBUGA1UEAwwOKi51bmljb24ubG9jYWwwIBcNMjEwOTE0MjE1NDU3WhgP +MjA1MTA5MTUyMTU0NTdaMBkxFzAVBgNVBAMMDioudW5pY29uLmxvY2FsMIICIjAN +BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnzMWyelX4++Z8iS8KuIJtroJvPsl +ZbVnh/T5TH2g1t7xkyYBaj2xOq5yUuUqJxw0sRpo3m3R5oUUeacTmEFr0N5tVSZe +vDohH1tjJGgz4YBDMxiN//jVCWs10K0HFdQW/t5xRY8Ahjl1R/1D+NX/jKgUKTQn +1EhH1ik8D2MiTvsFDjqI1mHjfsXjF0SZKp39bLNHSuR+STyRph8F/o5CEr6phYc2 +i9DBKYvHwyWUxHzC/STuWwHPtBq/8jmpQSoEmtjOCt3Dv4czEPa0S2nHnvQyt3Fm +Tb0l7xjdGJrCkt2h1ImP5xvdCDIBIfQnDmPA4wb1LFutRNYjQsY2zujAm7rMxJxB +Bp4EJHz94uKSk8FwhR7jO1BmLuKixKKetvgahOlp2VY0YD+NmZ7sKeKxqGvbiDyf +elQu4EEUSWDg0EPLFpM4WSrTKeMVxXkkT8BeLrg+VvUiB77aKkshcV67Tah2lPAg +dm78wvYT37buqJoJps8mfztiy8t0D412gtDDfTeV3wjX1w3enKARKG53yKtaQRcD +Uax3l/wajrAJX4anzUuJ5T5Jyg/4GSI0OQBfov56pNhaKxuvzBZnwS4qys6eLWei +qsRzqaoszX/sXkgY2BQDQ6b/gXPvY7W30kRByHd23+baSs/80ANU2tBxNs2ynAMd +etqA1Xu1e4ODt/cCAwEAAaNTMFEwHQYDVR0OBBYEFFrAjKwSavl2E88gmTdft4bB +3DtxMB8GA1UdIwQYMBaAFFrAjKwSavl2E88gmTdft4bB3DtxMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQELBQADggIBAAd98df4O+gSk7JCT5E1QDcOTQ0w25wp +gWE8+a4fElc7vyz5P4EEs5tpDTLfAanSLrASxnFSmRqPCrW9HV/mFAPdK9MLRgG5 +XLcjATbHgcXD071MsPJ2hO6sCPS+7LSE72873Dp89RBDNCb0pQb/4iMN0Y5BKznR +oklrWMAIr+0Ei0iBuPHyHgIMCco9a+5kwMxzhhSVYRY03pHjavo3kRXY86UMeDVx +1v122/Y5GS6ohegnkRI2QKwn/3KgOTa4f33oFk69yOSDLu7c1pzJoLgYMzKg7mTO +iPW2rhZDY+JXXYnHZmFPLgA5FqBxAnrE7wnIM8DFEMrmETNf7PRwfzFjjuYuGdSV +YZisBMjVkLJzX06tVK7OAmVkwzFWp+4P7XgD6NqvH84I+2A1on3kK7gOgqI/oMhE +VxpanKSuzjlEVtlxjSAyv7Y5nrwwEsuh7Nas+RboxTJRSzws7mi8F62QxYVz6S8D +K3cHfYcJXKRRpmpMGnau+Jb1Rf9eftm6kRO1qdjg6FV0iIidB2bO8dkt/me2kpD7 +hWASggtuW7CLHj+kztPOitAoImCQtk1QM17bMFxXyqlP3twOpnYXFdSTTM5qvAqy +rzrMHDtSL9gON7Iy5La9Q2imw6+jjxM6Stei1XWmI2BhIJe175NeVWxak6j2ZOvh +tEQh89PhqUVL +-----END CERTIFICATE----- diff --git a/testbed/reverse-proxy/certs/star.unicon.local.key b/testbed/reverse-proxy/certs/star.unicon.local.key new file mode 100644 index 000000000..8aec397bd --- /dev/null +++ b/testbed/reverse-proxy/certs/star.unicon.local.key @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +MIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQCfMxbJ6Vfj75ny +JLwq4gm2ugm8+yVltWeH9PlMfaDW3vGTJgFqPbE6rnJS5SonHDSxGmjebdHmhRR5 +pxOYQWvQ3m1VJl68OiEfW2MkaDPhgEMzGI3/+NUJazXQrQcV1Bb+3nFFjwCGOXVH +/UP41f+MqBQpNCfUSEfWKTwPYyJO+wUOOojWYeN+xeMXRJkqnf1ss0dK5H5JPJGm +HwX+jkISvqmFhzaL0MEpi8fDJZTEfML9JO5bAc+0Gr/yOalBKgSa2M4K3cO/hzMQ +9rRLacee9DK3cWZNvSXvGN0YmsKS3aHUiY/nG90IMgEh9CcOY8DjBvUsW61E1iNC +xjbO6MCbuszEnEEGngQkfP3i4pKTwXCFHuM7UGYu4qLEop62+BqE6WnZVjRgP42Z +nuwp4rGoa9uIPJ96VC7gQRRJYODQQ8sWkzhZKtMp4xXFeSRPwF4uuD5W9SIHvtoq +SyFxXrtNqHaU8CB2bvzC9hPftu6omgmmzyZ/O2LLy3QPjXaC0MN9N5XfCNfXDd6c +oBEobnfIq1pBFwNRrHeX/BqOsAlfhqfNS4nlPknKD/gZIjQ5AF+i/nqk2ForG6/M +FmfBLirKzp4tZ6KqxHOpqizNf+xeSBjYFANDpv+Bc+9jtbfSREHId3bf5tpKz/zQ +A1Ta0HE2zbKcAx162oDVe7V7g4O39wIDAQABAoICAAJ67Eb3AKyHZhGUqu3MGbSk +D1THYNzFx7ghg+TCLEhMrtzJAcqi7WjpoNRTx6VWVifQLoQQl+2MczY1+SMtGb3m +STPDZkRub2eqp8/AY9aGhgV8w3GScdc0uWDn4S1g4X7U/lTEFpEAwif99RoiU1ng +oHfH3Tr8aUoX2FyxAa7TUE/Zb5pPahjmglQxeGVmkrUn0duD1cfUTryUzSYbF0Jt +f/yZj6r79JZuHA2ZP0kUXIFPGvuF+rNmm0jtxwpB2lKDQCqBK/SG6a/A+CwYmMiM +K2IaPSrG4Jlp/L/OYWuiUkwaXIiQMZBYHxZlVFpwCWhACn/Hadqhr2jx55avn5iH +NPHGJiUuSkF4p183tUyYY2aDptu5cGQk4WpfiQjzt/FIkQDx8KF3eE4ZVMYT4mV2 +wPJE+Yg4dO+704uceoM/J5BwWQEUuUtNIlWIRogOYkjQzuMi9zyGu9uIFi5+JNb9 +LpNORfTWNOTYasEi9/v8+RxwSZ6FR2/MZaroU8kXljTgqhomP35gERlwB/yAjQxG +C9tO4lJwGfzyVMTU6x2R7mcRaiUSNIZ1AMN86JX+Z+RG+rGGNAEreu/osklscPxE +dhtPbi0FJzJl+bfW+9JWX7VkwNfA1Np/zqSydEI3dTwwe9ibAQ9QiAgkMbfeqIBX +G3hZLoqowGvtLeypbaxBAoIBAQDNYaIMjDFknqIAwVYkJXVyRA1qDsITBQJ5111+ +eHfRaEvnq+ksTRP1K6VAKM1RgGTRlTlMC+qthp1MWJrWT55d35+XS3JMUcrAB85k +P8hIJSe/zaiiI+KhRxF2ABSxdty/QPyfcvPXelGPlf7mbumGlTzPoiFwvzhTVqi3 +nSWWVVX8X5+PP0v1jGEHbTmdGOg9g22fiitEW4iovSUM/wRtT+bpEQlTKC7fwiaP +DN6XCTG3GRQZrPuiTGXrvyMYmAbHfImqYuEiwm0hXiqdxfB1WfmVZ0qMmrpzL9mc +HqEZraIxemSDNCxtDj/V4n9F0Pvs4ow5yEnFyxl8+FjtKpHhAoIBAQDGb6ctMByT +DM87lhgh1pn/8VGU5K1RaMzPtMXuY84htTsixFQ4jW7d3y3hLVHfDVJbvSaXXVp/ +gNk0mbkQ7gkcoJja99Ohe5kzMWcB0iRzX5ceoFWZ22uUU5g4Pg0cwscogPGdVjoW +sxKLczVhpN2tIVFTf6aHtBroU7wWHTVEorDquy8W5VzRvuzVNjpnrGXL1PtmA7m7 +f1a0eHN+cknJXarBcngJ0nVyGT2gbJSVfuPlmhrs7gg87zYeEqXs2gwgnM67HxRE +nYp4Or/K6qx1NcaPGTadYC5kANrP5L7nBJEoI9MvFBx7qvJop799fqHHCN05sH+8 +7rtXyXX+UbTXAoIBAB64iu/LjJvbaqooQUVY4Q99hHAn0vnbVvp4r4B6bpnBOxFl +UpSQ1vpmU+qb79JQHUSISLDKW4knSKIh4s9Jy4uJJqsP2wH1fhlpUYMHU2MPQ7nZ +/m56ZazwH3mCG5ZMDEsDYoZLQJQrtMWAj0dSsdWyvwzj2JKv17IHlWcZt4ScMSd1 ++j0IH8mT/POKcALCtgJ1hVFG7p/j/TYYTNF71+KuAAE+ziFFMnW/6dqd9zGqa2hS +9QG+MUmemeRAi/Ri0SjHxSPadIipgn9qQX+mGwjCs6WYdLtBbcBLGQbUQg7APTGf +eCd0B20so3nPzm/YCcbuQEFoZziR37ckwtB+/KECggEAOEs0gf1EHfNkVuMdtXvL +9G/hVPwKry2r7MC75gUqVSW0wQgxXFnDOe42dcsFjuGYm63tZMN3CPTkqadyePsO +WrC0rGnh/82wiHVbY4jaDmDv3iBeKGe2/T050brIvYAEP9lUse3kTMxAVo84dZrv +yE3LZISyGY1elMoscZmXowEEb5LqqPQogNhJF7Nqnj6qIkkpiKdF6YsWbdw954FE +rXuFFZwDscWiy9udQAWNoVt+C4TMXqqoa6DxGVbw+2BgUGArxanrdgu7XKBOCKLK +ifXXfoEInVzLzFLxwEiEX8VL6LdBEfoCmpLEciwkhtWFz5EUMWmA03hmbWEZuCw1 +wQKCAQAxLN0Q5TbiXic6sfesSrwLNrK1l6eSj6+fetYWZNrKLPXRWzuplOCWziOx +7qw0QQ0UM99WEhfsFX9fdfKwdd2w0QBvYjNxvmLmnQlA2KKKW3C26rKAYg+uO/B3 +ZY6H/regllbArysm/fBL+Zv9u1qL9t7dZNMAkBZApTfCkym9NPc5APQV4KMVRcMu +bMF+N0AabPLbBQtKl9wwoxa1eMxvS9uYIySK/3RZMu+JuuAm+QweJhBixdJ1ao10 +MLd83NCb5wn2nMSECBvizO1I9nxwoBw5RaGFyr6eEA6Vg7ciGdJxznUTdcCZ6dkI +ev8pvFafpDvSERVPbzkDg0bjNho3 +-----END PRIVATE KEY----- diff --git a/testbed/reverse-proxy/configuration/certificates.yml b/testbed/reverse-proxy/configuration/certificates.yml new file mode 100644 index 000000000..88abe448d --- /dev/null +++ b/testbed/reverse-proxy/configuration/certificates.yml @@ -0,0 +1,9 @@ +tls: + certificates: + - certFile: /certs/star.unicon.local.crt + keyFile: /certs/star.unicon.local.key + stores: + default: + defaultCertificate: + certFile: /certs/star.unicon.local.crt + keyFile: /certs/star.unicon.local.key \ No newline at end of file diff --git a/ui/public/assets/schema/attribute/bundle.schema.json b/ui/public/assets/schema/attribute/bundle.schema.json new file mode 100644 index 000000000..3c5111e40 --- /dev/null +++ b/ui/public/assets/schema/attribute/bundle.schema.json @@ -0,0 +1,38 @@ +{ + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "title": "label.bundle-name", + "description": "tooltip.bundle-name", + "minLength": 1, + "maxLength": 255 + }, + "attributes": { + "type": "array", + "title": "label.attributes", + "description": "Attribute table - select the attributes you want to bundle (default unchecked)", + "items": { + "type": "string", + "enum": [ + "eduPersonPrincipalName", + "uid", + "mail", + "surname", + "givenName", + "eduPersonAffiliation", + "eduPersonScopedAffiliation", + "eduPersonPrimaryAffiliation", + "eduPersonEntitlement", + "eduPersonAssurance", + "eduPersonUniqueId", + "employeeNumber" + ] + }, + "uniqueItems": true + } + } +} \ No newline at end of file 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/public/assets/schema/source/metadata-source.json b/ui/public/assets/schema/source/metadata-source.json index dc19fe8d4..0a2f6baba 100644 --- a/ui/public/assets/schema/source/metadata-source.json +++ b/ui/public/assets/schema/source/metadata-source.json @@ -22,8 +22,7 @@ "serviceEnabled": { "title": "label.enable-this-service", "description": "tooltip.enable-this-service-upon-saving", - "type": "boolean", - "default": false + "type": "boolean" }, "organization": { "$ref": "#/definitions/Organization" @@ -76,8 +75,7 @@ }, "properties": { "x509CertificateAvailable": { - "type": "boolean", - "default": true + "type": "boolean" }, "authenticationRequestsSigned": { "title": "label.authentication-requests-signed", @@ -161,11 +159,16 @@ "type": "boolean", "default": false }, - "dontSignResponse": { - "title": "label.dont-sign-the-response", - "description": "tooltip.dont-sign-response", - "type": "boolean", - "default": false + "nameIdFormats": { + "$ref": "#/definitions/nameIdFormats" + }, + "responderId": { + "title": "label.responder-id", + "description": "tooltip.responder-id", + "type": "string" + }, + "authenticationMethods": { + "$ref": "#/definitions/authenticationMethods" }, "turnOffEncryption": { "title": "label.turn-off-encryption-of-response", @@ -173,9 +176,15 @@ "type": "boolean", "default": false }, - "useSha": { - "title": "label.use-sha1-signing-algorithm", - "description": "tooltip.usa-sha-algorithm", + "forceAuthn": { + "title": "label.force-authn", + "description": "tooltip.force-authn", + "type": "boolean", + "default": false + }, + "dontSignResponse": { + "title": "label.dont-sign-the-response", + "description": "tooltip.dont-sign-response", "type": "boolean", "default": false }, @@ -185,27 +194,15 @@ "type": "boolean", "default": false }, - "omitNotBefore": { - "title": "label.omit-not-before-condition", - "description": "tooltip.omit-not-before-condition", + "useSha": { + "title": "label.use-sha1-signing-algorithm", + "description": "tooltip.usa-sha-algorithm", "type": "boolean", "default": false }, - "responderId": { - "title": "label.responder-id", - "description": "tooltip.responder-id", - "type": "string", - "default": "" - }, - "nameIdFormats": { - "$ref": "#/definitions/nameIdFormats" - }, - "authenticationMethods": { - "$ref": "#/definitions/authenticationMethods" - }, - "forceAuthn": { - "title": "label.force-authn", - "description": "tooltip.force-authn", + "omitNotBefore": { + "title": "label.omit-not-before-condition", + "description": "tooltip.omit-not-before-condition", "type": "boolean", "default": false } @@ -218,6 +215,18 @@ "items": { "type": "string", "enum": [ + [ + "givenName", + "eduPersonAffiliation", + "eduPersonScopedAffiliation", + "employeeNumber" + ], + [ + "uid", + "surname", + "eduPersonAffiliation", + "employeeNumber" + ], "eduPersonPrincipalName", "uid", "mail", @@ -230,6 +239,10 @@ "eduPersonAssurance", "eduPersonUniqueId", "employeeNumber" + ], + "enumNames": [ + "Bundle 1", + "Bundle 2" ] }, "uniqueItems": true diff --git a/ui/public/data/bundles.json b/ui/public/data/bundles.json new file mode 100644 index 000000000..11a20d22d --- /dev/null +++ b/ui/public/data/bundles.json @@ -0,0 +1,10 @@ +[ + { + "resourceId": "abc", + "name": "Bundle 1", + "attributes": [ + "abc123", + "xyz456" + ] + } +] \ No newline at end of file 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/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 0da6a7a62..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'; @@ -14,6 +15,14 @@ jest.mock('../App.constant', () => ({ 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; @@ -58,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/Header.js b/ui/src/app/core/components/Header.js index 3e553c595..7bb693b1e 100644 --- a/ui/src/app/core/components/Header.js +++ b/ui/src/app/core/components/Header.js @@ -6,13 +6,14 @@ import Navbar from 'react-bootstrap/Navbar'; import Dropdown from 'react-bootstrap/Dropdown'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { faTh, faSignOutAlt, faPlusCircle, faCube, faCubes, faUserTag, faUsersCog } from '@fortawesome/free-solid-svg-icons'; + +import { faTh, faSignOutAlt, faPlusCircle, faCube, faCubes, faUsersCog, faSpinner, faUserCircle, faCog, faBoxOpen, faTags, faIdBadge } from '@fortawesome/free-solid-svg-icons'; import Translate from '../../i18n/components/translate'; import { useTranslator } from '../../i18n/hooks'; import { brand } from '../../app.brand'; -import { useIsAdmin } from '../user/UserContext'; +import { useCurrentUser, useCurrentUserLoading, useIsAdmin } from '../user/UserContext'; import { BASE_PATH } from '../../App.constant'; export function Header () { @@ -21,6 +22,9 @@ export function Header () { const isAdmin = useIsAdmin(); + const { username, groupId } = useCurrentUser(); + const loading = useCurrentUserLoading(); + return ( @@ -28,58 +32,84 @@ export function Header () { + {loading ? +
+ +
+ : + <> -