Testbed mode should be more liberal in handling formatting variations in child and publisher registration XML. (#369) (#403)

Testbed mode should be more liberal in handling formatting variations in child and publisher registration XML. Synced with Lagosta commit d94470db. (#369, #403)
This commit is contained in:
Ximon Eighteen
2021-01-29 17:11:30 +01:00
committed by GitHub
parent 424664001d
commit bbfe9a824a
22 changed files with 199 additions and 28 deletions
-1
View File
@@ -1,6 +1,5 @@
{ {
"pluginsFile": "tests/ui/cypress/plugins/index.js", "pluginsFile": "tests/ui/cypress/plugins/index.js",
"supportFile": "tests/ui/cypress/support/index.js",
"baseUrl": "https://localhost:3000", "baseUrl": "https://localhost:3000",
"chromeWebSecurity": false, "chromeWebSecurity": false,
"responseTimeout": 5000 "responseTimeout": 5000
+1 -1
View File
File diff suppressed because one or more lines are too long
+7 -7
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -272,7 +272,7 @@ impl fmt::Display for Error {
// General API Client Issues // General API Client Issues
//----------------------------------------------------------------- //-----------------------------------------------------------------
Error::JsonError(e) => write!(f,"Invalid JSON: {}", e), Error::JsonError(e) => write!(f,"Invalid JSON: {}", e),
Error::NonAsciiCharsInput => write!(f, "Submitted json contains non-ascii chars (maybe whitespace?)"), Error::NonAsciiCharsInput => write!(f, "Input contains non-ASCII chars (maybe whitespace?)"),
Error::InvalidUtf8Input => write!(f, "Submitted bytes are invalid UTF8"), Error::InvalidUtf8Input => write!(f, "Submitted bytes are invalid UTF8"),
Error::ApiUnknownMethod => write!(f,"Unknown API method"), Error::ApiUnknownMethod => write!(f,"Unknown API method"),
Error::ApiUnknownResource => write!(f, "Unknown resource"), Error::ApiUnknownResource => write!(f, "Unknown resource"),
@@ -0,0 +1,3 @@
<child_request xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/" version="1" child_handle="child-request-compact">
<child_bpki_ta>MIID2zCCAsOgAwIBAgIRAJ5+L7MLm2FEfAQW484n9MkwDQYJKoZIhvcNAQELBQAwgYYxCzAJBgNVBAYTAlVTMRwwGgYDVQQKDBNBbWF6b24gV2ViIFNlcnZpY2VzMRYwFAYDVQQLDA1Ecm9wa2ljayBCUEtJMREwDwYDVQQIDAhWaXJnaW5pYTEaMBgGA1UEAwwRd3d3LmFtYXpvbmF3cy5jb20xEjAQBgNVBAcMCUFybGluZ3RvbjAeFw0yMTAxMDQyMDQ2MzZaFw0zMTAxMDIyMTQ2MzZaMIGGMQswCQYDVQQGEwJVUzEcMBoGA1UECgwTQW1hem9uIFdlYiBTZXJ2aWNlczEWMBQGA1UECwwNRHJvcGtpY2sgQlBLSTERMA8GA1UECAwIVmlyZ2luaWExGjAYBgNVBAMMEXd3dy5hbWF6b25hd3MuY29tMRIwEAYDVQQHDAlBcmxpbmd0b24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDYQ9b0VQEt0ita4ZoDUTL5WtXE9hsQ/IxDL7StTpTNpeQXHBZmY+JH9YcLtviFWJ2L0FX4Q2JGw8YMjuju+0WChjGKNuQphx8KKDCC0AFlf31Iy6GYEFMpnePvcWRVNw7gM04c8J5p5rYy+GWKHajqtkLXVBLSi1HDYcUSNvAbqCg20FUez2HlVz9kbY/dVYE87q8CCVEkbhHcuoV/WYvKzmbhQ2pWF2mwISrrcLTnIMa5Hq7diKiaK9w2RJNf8rtW5ADCW6hU17iFfiXLs8Bstkiv9XmnlF1uJbolUieOjc3595Fh8Bvf63bGDOfAuIHwCx07u39ztaTZOEWJFR/vAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFK8dD1FzNOnuMPj9nL/rK7aILkIeMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEAxoUUBicJ9mqbz03teqXH1DBhLkvi5YmSlI/SJ/WjGzS7dLQYeLCi7VZ5yh56tZHU4mhUwWbaOHpwPK5U2+VYZ1/HLjXuW4fDJ9hIGHewZd2q4IDURhs9uKoldoqmYD3cLuR4Csmp8vHHqQ8JgnKxRDdmwJcZzGtmefN2aNYafo6ujRe/EmL/rQU9SbeYYDi8pEFyedcKPe0Uu3Ar3anSlSaEFdztIWED8n6zyhVKprrh7Rvd5koN/dXgSBNObEjnxlOTAx+mDdYisOVkV1ucCAgm9qJ2hnAniqGdydbogocTpG6de/NpPiuWSbojMN4+czSxletVel/ofm7wfzJsWQ==</child_bpki_ta>
</child_request>
@@ -0,0 +1,3 @@
<child_request xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/" version="1" child_handle="child-request-invalid-base64">
<child_bpki_ta>MIID2zCCAsOgAwIBxxAgIRAJ5+L7MLm2FEfAQW484n9MkwDQYJKoZIhvcNAQELBQAwgYYxCzAJBgNVBAYTAlVTMRwwGgYDVQQKDBNBbWF6b24gV2ViIFNlcnZpY2VzMRYwFAYDVQQLDA1Ecm9wa2ljayBCUEtJMREwDwYDVQQIDAhWaXJnaW5pYTEaMBgGA1UEAwwRd3d3LmFtYXpvbmF3cy5jb20xEjAQBgNVBAcMCUFybGluZ3RvbjAeFw0yMTAxMDQyMDQ2MzZaFw0zMTAxMDIyMTQ2MzZaMIGGMQswCQYDVQQGEwJVUzEcMBoGA1UECgwTQW1hem9uIFdlYiBTZXJ2aWNlczEWMBQGA1UECwwNRHJvcGtpY2sgQlBLSTERMA8GA1UECAwIVmlyZ2luaWExGjAYBgNVBAMMEXd3dy5hbWF6b25hd3MuY29tMRIwEAYDVQQHDAlBcmxpbmd0b24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDYQ9b0VQEt0ita4ZoDUTL5WtXE9hsQ/IxDL7StTpTNpeQXHBZmY+JH9YcLtviFWJ2L0FX4Q2JGw8YMjuju+0WChjGKNuQphx8KKDCC0AFlf31Iy6GYEFMpnePvcWRVNw7gM04c8J5p5rYy+GWKHajqtkLXVBLSi1HDYcUSNvAbqCg20FUez2HlVz9kbY/dVYE87q8CCVEkbhHcuoV/WYvKzmbhQ2pWF2mwISrrcLTnIMa5Hq7diKiaK9w2RJNf8rtW5ADCW6hU17iFfiXLs8Bstkiv9XmnlF1uJbolUieOjc3595Fh8Bvf63bGDOfAuIHwCx07u39ztaTZOEWJFR/vAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFK8dD1FzNOnuMPj9nL/rK7aILkIeMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEAxoUUBicJ9mqbz03teqXH1DBhLkvi5YmSlI/SJ/WjGzS7dLQYeLCi7VZ5yh56tZHU4mhUwWbaOHpwPK5U2+VYZ1/HLjXuW4fDJ9hIGHewZd2q4IDURhs9uKoldoqmYD3cLuR4Csmp8vHHqQ8JgnKxRDdmwJcZzGtmefN2aNYafo6ujRe/EmL/rQU9SbeYYDi8pEFyedcKPe0Uu3Ar3anSlSaEFdztIWED8n6zyhVKprrh7Rvd5koN/dXgSBNObEjnxlOTAx+mDdYisOVkV1ucCAgm9qJ2hnAniqGdydbogocTpG6de/NpPiuWSbojMN4+czSxletVel/ofm7wfzJsWQ==</child_bpki_ta>
</child_request>
@@ -0,0 +1,5 @@
<child_request xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/" version="1" child_handle="child-request-with-unicode-space-char">
<child_bpki_ta>MIID2zCCAsOgAwIBAgIRAJ5+L7MLm2FEfAQW484n9MkwDQYJKoZIhvcNAQELBQAwgYYxCzAJBgNVBAYTAlVTMRwwGgYDVQQKDBNBbWF6b24gV2ViIFNlcnZpY2VzMRYwFAYDVQQLDA1Ecm9wa2ljayBCUEtJMREwDwYDVQQIDAhWaXJnaW5pYTEaMBgGA1UEAwwRd3d3LmFtYXpvbmF3cy5jb20xEjAQBgNVBAcMCUFybGluZ3RvbjAeFw0yMTAxMDQyMDQ2MzZaFw0zMTAxMDIyMTQ2MzZaMIGGMQswCQYDVQQGEwJVUzEcMBoGA1UECgwTQW1hem9uIFdlYiBTZXJ2aWNlczEWMBQGA1UECwwNRHJvcGtpY2sgQlBLSTERMA8GA1UECAwIVmlyZ2luaWExGjAYBgNVBAMMEXd3dy5hbWF6b25hd3MuY29tMRIwEAYDVQQHDAlBcmxpbmd0b24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDYQ9b0VQEt0ita4ZoDUTL5WtXE9hsQ/IxDL7StTpTNpeQXHBZmY+JH9YcLtviFWJ2L0FX4Q2JGw8YMjuju+0WChjGKNuQphx8KKDCC0AFlf31Iy6GYEFMpnePvcWRVNw7gM04c8J5p5rYy+GWKHajqtkLXVBLSi1HDYcUSNvAbqCg20FUez2HlVz9kbY/dVYE87q8CCVEkbhHcuoV/WYvKzmbhQ2pWF2mwISrrcLTnIMa5Hq7diKiaK9w2RJNf8rtW5ADCW6hU17iFfiXLs8Bstkiv9XmnlF1uJbolUieOjc3595Fh8Bvf63bGDOfAuIHwCx07u39ztaTZOEWJFR/vAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFK8dD1FzNOnuMPj9nL/rK7aILkIeMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEAxoUUBicJ9mqbz03teqXH1DBhLkvi5YmSlI/SJ/WjGzS7dLQYeLCi7VZ5yh56tZHU4mhUwWbaOHpwPK5U2+VYZ1/HLjXuW4fDJ9hIGHewZd2q4IDURhs9uKoldoqmYD3cLuR4Csmp8vHHqQ8JgnKxRDdmwJcZzGtmefN2aNYafo6ujRe/EmL/rQU9SbeYYDi8pEFyedcKPe0Uu3Ar3anSlSaEFdztIWED8n6zyhVKprrh7Rvd5koN/dXgSBNObEjnxlOTAx+mDdYisOVkV1ucCAgm9qJ2hnAniqGdydbogocTpG6de/NpPiuWSbojMN4+czSxletVel/ofm7wfzJsWQ==
</child_bpki_ta>
</child_request>
@@ -0,0 +1,3 @@
<child_request xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/" version="1" child_handle="child-request-with-unicode-space-entity-reference">
<child_bpki_ta>MIID2zCCAsOgAwIBAgIRAJ5+L7MLm2FEfAQW484n9MkwDQYJKoZIhvcNAQELBQAwgYYxCzAJBgNVBAYTAlVTMRwwGgYDVQQKDBNBbWF6b24gV2ViIFNlcnZpY2VzMRYwFAYDVQQLDA1Ecm9wa2ljayBCUEtJMREwDwYDVQQIDAhWaXJnaW5pYTEaMBgGA1UEAwwRd3d3LmFtYXpvbmF3cy5jb20xEjAQBgNVBAcMCUFybGluZ3RvbjAeFw0yMTAxMDQyMDQ2MzZaFw0zMTAxMDIyMTQ2MzZaMIGGMQswCQYDVQQGEwJVUzEcMBoGA1UECgwTQW1hem9uIFdlYiBTZXJ2aWNlczEWMBQGA1UECwwNRHJvcGtpY2sgQlBLSTERMA8GA1UECAwIVmlyZ2luaWExGjAYBgNVBAMMEXd3dy5hbWF6b25hd3MuY29tMRIwEAYDVQQHDAlBcmxpbmd0b24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDYQ9b0VQEt0ita4ZoDUTL5WtXE9hsQ/IxDL7StTpTNpeQXHBZmY+JH9YcLtviFWJ2L0FX4Q2JGw8YMjuju+0WChjGKNuQphx8KKDCC0AFlf31Iy6GYEFMpnePvcWRVNw7gM04c8J5p5rYy+GWKHajqtkLXVBLSi1HDYcUSNvAbqCg20FUez2HlVz9kbY/dVYE87q8CCVEkbhHcuoV/WYvKzmbhQ2pWF2mwISrrcLTnIMa5Hq7diKiaK9w2RJNf8rtW5ADCW6hU17iFfiXLs8Bstkiv9XmnlF1uJbolUieOjc3595Fh8Bvf63bGDOfAuIHwCx07u39ztaTZOEWJFR/vAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFK8dD1FzNOnuMPj9nL/rK7aILkIeMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEAxoUUBicJ9mqbz03teqXH1DBhLkvi5YmSlI/SJ/WjGzS7dLQYeLCi7VZ5yh56tZHU4mhUwWbaOHpwPK5U2+VYZ1/HLjXuW4fDJ9hIGHewZd2q4IDURhs9uKoldoqmYD3cLuR4Csmp8vHHqQ8JgnKxRDdmwJcZzGtmefN2aNYafo6ujRe/EmL/rQU9SbeYYDi8pEFyedcKPe0Uu3Ar3anSlSaEFdztIWED8n6zyhVKprrh7Rvd5koN/dXgSBNObEjnxlOTAx+mDdYisOVkV1ucCAgm9qJ2hnAniqGdydbogocTpG6de/NpPiuWSbojMN4+czSxletVel/ofm7wfzJsWQ==&#x200B;</child_bpki_ta>
</child_request>
@@ -0,0 +1,3 @@
<child_request xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/" version="1" child_handle="child-&#x200B;-request">
<child_bpki_ta>MIID2zCCAsOgAwIBAgIRAJ5+L7MLm2FEfAQW484n9MkwDQYJKoZIhvcNAQELBQAwgYYxCzAJBgNVBAYTAlVTMRwwGgYDVQQKDBNBbWF6b24gV2ViIFNlcnZpY2VzMRYwFAYDVQQLDA1Ecm9wa2ljayBCUEtJMREwDwYDVQQIDAhWaXJnaW5pYTEaMBgGA1UEAwwRd3d3LmFtYXpvbmF3cy5jb20xEjAQBgNVBAcMCUFybGluZ3RvbjAeFw0yMTAxMDQyMDQ2MzZaFw0zMTAxMDIyMTQ2MzZaMIGGMQswCQYDVQQGEwJVUzEcMBoGA1UECgwTQW1hem9uIFdlYiBTZXJ2aWNlczEWMBQGA1UECwwNRHJvcGtpY2sgQlBLSTERMA8GA1UECAwIVmlyZ2luaWExGjAYBgNVBAMMEXd3dy5hbWF6b25hd3MuY29tMRIwEAYDVQQHDAlBcmxpbmd0b24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDYQ9b0VQEt0ita4ZoDUTL5WtXE9hsQ/IxDL7StTpTNpeQXHBZmY+JH9YcLtviFWJ2L0FX4Q2JGw8YMjuju+0WChjGKNuQphx8KKDCC0AFlf31Iy6GYEFMpnePvcWRVNw7gM04c8J5p5rYy+GWKHajqtkLXVBLSi1HDYcUSNvAbqCg20FUez2HlVz9kbY/dVYE87q8CCVEkbhHcuoV/WYvKzmbhQ2pWF2mwISrrcLTnIMa5Hq7diKiaK9w2RJNf8rtW5ADCW6hU17iFfiXLs8Bstkiv9XmnlF1uJbolUieOjc3595Fh8Bvf63bGDOfAuIHwCx07u39ztaTZOEWJFR/vAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFK8dD1FzNOnuMPj9nL/rK7aILkIeMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEAxoUUBicJ9mqbz03teqXH1DBhLkvi5YmSlI/SJ/WjGzS7dLQYeLCi7VZ5yh56tZHU4mhUwWbaOHpwPK5U2+VYZ1/HLjXuW4fDJ9hIGHewZd2q4IDURhs9uKoldoqmYD3cLuR4Csmp8vHHqQ8JgnKxRDdmwJcZzGtmefN2aNYafo6ujRe/EmL/rQU9SbeYYDi8pEFyedcKPe0Uu3Ar3anSlSaEFdztIWED8n6zyhVKprrh7Rvd5koN/dXgSBNObEjnxlOTAx+mDdYisOVkV1ucCAgm9qJ2hnAniqGdydbogocTpG6de/NpPiuWSbojMN4+czSxletVel/ofm7wfzJsWQ==</child_bpki_ta>
</child_request>
@@ -0,0 +1,11 @@
<child_request
xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/"
version="1"
child_handle="child-request-with-whitespace">
<child_bpki_ta>
MIID2zCCAsOgAwIBAgIRAJ5+L7MLm2FEfAQW484n9MkwDQYJKoZIhvcNAQELBQAwgYYxCzAJBgNV
BAYTAlVTMRwwGgYDVQQKDBNBbWF6b24gV2ViIFNlcnZpY2VzMRYwFAYDVQQLDA1Ecm9wa2ljayBCUEtJMREwDwYDVQQIDAhWaXJnaW5pYTEaMBgGA1UEAwwRd3d3LmFtYXpvbmF3cy5jb20xEjAQBgNVBAcMCUFybGluZ3RvbjAeFw0yMTAxMDQyMDQ2MzZaFw0zMTAxMDIyMTQ2MzZaMIGGMQswCQYDVQQGEwJVUzEcMBoGA1UECgwTQW1hem9uIFdlYiBTZXJ2aWNlczEWMBQGA1UECwwNRHJvcGtpY2sgQlBLSTERMA8GA1UECAwIVmlyZ2luaWExGjAYBgNVBAMMEXd3dy5hbWF6b25hd3MuY29tMRIwEAYDVQQHDAlBcmxpbmd0b24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDYQ9b0VQEt0ita4ZoDUTL5WtXE9hsQ/IxDL7StTpTNpeQXHBZmY+JH9YcLtviFWJ2L0FX4Q2JGw8YMjuju+0WChjGKNuQphx8KKDCC0AFlf31Iy6GYEFMpnePvcWRVNw7gM04c8J5p5rYy+GWKHajqtkLXVBLSi1HDYcUSNvAbqCg20FUez2HlVz9kbY/dVYE87q8CCVEkbhHcuoV/WYvKzmbhQ2pWF2mwISrrcLTnIMa5Hq7diKiaK9w2RJNf8rtW5ADCW6hU17iFfiXLs8Bstkiv9XmnlF1uJbolUieOjc3595Fh8Bvf63bGDOfAuIHwCx07u39ztaTZOEWJFR/vAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFK8dD1FzNOnuMPj9nL/rK7aILkIeMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEAxoUUBicJ9mqbz03teqXH1DBhLkvi5YmSlI/SJ/WjGzS7dLQYeLCi7VZ5yh56tZHU4mhUwWbaOHpwPK5U2+VYZ1/HLjXuW4fDJ9hIGHewZd2q4IDURhs9uKoldoqmYD3cLuR4Csmp8vHHqQ8JgnKxRDdmwJcZzGtmefN2aNYafo6ujRe/EmL/rQU9SbeYYDi8pEFyedcKPe0Uu3Ar3anSlSaEFdztIWED8n6zyhVKprrh7Rvd5koN/dXgSBNObEjnxlOTAx+mDdYisOVkV1ucCAgm9qJ2hnAniqGdydbogocTpG6de/NpPiuWSbojMN4+czSxletVel/ofm7wfzJsWQ==
</child_bpki_ta>
</child_request>
@@ -0,0 +1,3 @@
<publisher_request xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/" version="1" publisher_handle="publisher-request-compact">
<publisher_bpki_ta>MIIDOjCCAiKgAwIBAgIBATANBgkqhkiG9w0BAQsFADAzMTEwLwYDVQQDEyg3NEE3QTYyNjRDNEIzODAwQjQ5QTdBQzg3RTIzNzY2RDU3QjdDNTc1MB4XDTIwMDMwMjAxNDQyOFoXDTM1MDMwMjAxNDkyOFowMzExMC8GA1UEAxMoNzRBN0E2MjY0QzRCMzgwMEI0OUE3QUM4N0UyMzc2NkQ1N0I3QzU3NTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKS9JLnakU2FdNLbJqFGusIPvQWIHejJjhzgp0eTwsR40ndhV7eLcFqIWcchEEnlLzextSPolbtoA0/DwpNWkT7ZjkvW884+VQ9DG8w2MfGb1H0loAuZt05ggqLcQQVndYcggDsUA2AAct84cnvT/k+6SegKyPtdXfrxaqMl7cOTBqYgEI8QfKjsdWGBzBN/EGYk7Kj7Lnd05B6wgEPuE7dnBDr4jpoZDavoEtZJKs2d61dIoGZ7BzTLoTFKC5KYHr+w2fwUNsfroOW5t8zOTl+7cnglAsyPX7wDDWxZsLWb+ynSsYaDiVJlFq426mI2SSzZEogdUolxxla+8frTGbMCAwEAAaNZMFcwDwYDVR0TAQH/BAUwAwEB/zAgBgNVHQ4BAQAEFgQUdKemJkxLOAC0mnrIfiN2bVe3xXUwIgYDVR0jAQEABBgwFoAUdKemJkxLOAC0mnrIfiN2bVe3xXUwDQYJKoZIhvcNAQELBQADggEBAGmy2eEYcC5YZPieKprbbyRKwlJt2Nn5826M0+N1B09Y+lCOT7CG8+9mEbgkfXLb7BsYuzwkVG8Zq5uzmpc3RwH0nsGvodjgE5gooiXPa6imbJsZmOr/xElzosDVz1HJrDv+bhDe9Lb8IAdzr4X3MFixKVwmL8k5EAPYV7VrtNF9q/XmLRVwnDLE5jRzZrf1wCCkuiiYur9Gn27XqSPHvXbxzNmHb/nDB7cF0zdXjUF1DO8lEd2JC4lCDxU/uy4XDmw6JesASreEA6kzL+B3j/rmu4eR0KsQzmePUi+aXhZ6pIWIMXPdjbpGU5eaBJZkQqxuZKy5Yg8y8i1hHCX+tqw=</publisher_bpki_ta>
</publisher_request>
@@ -0,0 +1,3 @@
<publisher_request xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/" version="1" publisher_handle="publisher-request-invalid-base64">
<publisher_bpki_ta>MIIDOjCCAiKgAwIBAgIBATANBgkqhkiG9w0BAQsFADAzMTEwLwxYDVQQDEyg3NEE3QTYyNjRDNEIzODAwQjQ5QTdBQzg3RTIzNzY2RDU3QjdDNTc1MB4XDTIwMDMwMjAxNDQyOFoXDTM1MDMwMjAxNDkyOFowMzExMC8GA1UEAxMoNzRBN0E2MjY0QzRCMzgwMEI0OUE3QUM4N0UyMzc2NkQ1N0I3QzU3NTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKS9JLnakU2FdNLbJqFGusIPvQWIHejJjhzgp0eTwsR40ndhV7eLcFqIWcchEEnlLzextSPolbtoA0/DwpNWkT7ZjkvW884+VQ9DG8w2MfGb1H0loAuZt05ggqLcQQVndYcggDsUA2AAct84cnvT/k+6SegKyPtdXfrxaqMl7cOTBqYgEI8QfKjsdWGBzBN/EGYk7Kj7Lnd05B6wgEPuE7dnBDr4jpoZDavoEtZJKs2d61dIoGZ7BzTLoTFKC5KYHr+w2fwUNsfroOW5t8zOTl+7cnglAsyPX7wDDWxZsLWb+ynSsYaDiVJlFq426mI2SSzZEogdUolxxla+8frTGbMCAwEAAaNZMFcwDwYDVR0TAQH/BAUwAwEB/zAgBgNVHQ4BAQAEFgQUdKemJkxLOAC0mnrIfiN2bVe3xXUwIgYDVR0jAQEABBgwFoAUdKemJkxLOAC0mnrIfiN2bVe3xXUwDQYJKoZIhvcNAQELBQADggEBAGmy2eEYcC5YZPieKprbbyRKwlJt2Nn5826M0+N1B09Y+lCOT7CG8+9mEbgkfXLb7BsYuzwkVG8Zq5uzmpc3RwH0nsGvodjgE5gooiXPa6imbJsZmOr/xElzosDVz1HJrDv+bhDe9Lb8IAdzr4X3MFixKVwmL8k5EAPYV7VrtNF9q/XmLRVwnDLE5jRzZrf1wCCkuiiYur9Gn27XqSPHvXbxzNmHb/nDB7cF0zdXjUF1DO8lEd2JC4lCDxU/uy4XDmw6JesASreEA6kzL+B3j/rmu4eR0KsQzmePUi+aXhZ6pIWIMXPdjbpGU5eaBJZkQqxuZKy5Yg8y8i1hHCX+tqw=</publisher_bpki_ta>
</publisher_request>
@@ -0,0 +1,5 @@
<publisher_request xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/" version="1" publisher_handle="publisher-request-with-unicode-space-char">
<publisher_bpki_ta>MIIDOjCCAiKgAwIBAgIBATANBgkqhkiG9w0BAQsFADAzMTEwLwYDVQQDEyg3NEE3QTYyNjRDNEIzODAwQjQ5QTdBQzg3RTIzNzY2RDU3QjdDNTc1MB4XDTIwMDMwMjAxNDQyOFoXDTM1MDMwMjAxNDkyOFowMzExMC8GA1UEAxMoNzRBN0E2MjY0QzRCMzgwMEI0OUE3QUM4N0UyMzc2NkQ1N0I3QzU3NTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKS9JLnakU2FdNLbJqFGusIPvQWIHejJjhzgp0eTwsR40ndhV7eLcFqIWcchEEnlLzextSPolbtoA0/DwpNWkT7ZjkvW884+VQ9DG8w2MfGb1H0loAuZt05ggqLcQQVndYcggDsUA2AAct84cnvT/k+6SegKyPtdXfrxaqMl7cOTBqYgEI8QfKjsdWGBzBN/EGYk7Kj7Lnd05B6wgEPuE7dnBDr4jpoZDavoEtZJKs2d61dIoGZ7BzTLoTFKC5KYHr+w2fwUNsfroOW5t8zOTl+7cnglAsyPX7wDDWxZsLWb+ynSsYaDiVJlFq426mI2SSzZEogdUolxxla+8frTGbMCAwEAAaNZMFcwDwYDVR0TAQH/BAUwAwEB/zAgBgNVHQ4BAQAEFgQUdKemJkxLOAC0mnrIfiN2bVe3xXUwIgYDVR0jAQEABBgwFoAUdKemJkxLOAC0mnrIfiN2bVe3xXUwDQYJKoZIhvcNAQELBQADggEBAGmy2eEYcC5YZPieKprbbyRKwlJt2Nn5826M0+N1B09Y+lCOT7CG8+9mEbgkfXLb7BsYuzwkVG8Zq5uzmpc3RwH0nsGvodjgE5gooiXPa6imbJsZmOr/xElzosDVz1HJrDv+bhDe9Lb8IAdzr4X3MFixKVwmL8k5EAPYV7VrtNF9q/XmLRVwnDLE5jRzZrf1wCCkuiiYur9Gn27XqSPHvXbxzNmHb/nDB7cF0zdXjUF1DO8lEd2JC4lCDxU/uy4XDmw6JesASreEA6kzL+B3j/rmu4eR0KsQzmePUi+aXhZ6pIWIMXPdjbpGU5eaBJZkQqxuZKy5Yg8y8i1hHCX+tqw=
</publisher_bpki_ta>
</publisher_request>
@@ -0,0 +1,3 @@
<publisher_request xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/" version="1" publisher_handle="publisher-request-with-unicode-space-entity-reference">
<publisher_bpki_ta>MIIDOjCCAiKgAwIBAgIBATANBgkqhkiG9w0BAQsFADAzMTEwLwYDVQQDEyg3NEE3QTYyNjRDNEIzODAwQjQ5QTdBQzg3RTIzNzY2RDU3QjdDNTc1MB4XDTIwMDMwMjAxNDQyOFoXDTM1MDMwMjAxNDkyOFowMzExMC8GA1UEAxMoNzRBN0E2MjY0QzRCMzgwMEI0OUE3QUM4N0UyMzc2NkQ1N0I3QzU3NTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKS9JLnakU2FdNLbJqFGusIPvQWIHejJjhzgp0eTwsR40ndhV7eLcFqIWcchEEnlLzextSPolbtoA0/DwpNWkT7ZjkvW884+VQ9DG8w2MfGb1H0loAuZt05ggqLcQQVndYcggDsUA2AAct84cnvT/k+6SegKyPtdXfrxaqMl7cOTBqYgEI8QfKjsdWGBzBN/EGYk7Kj7Lnd05B6wgEPuE7dnBDr4jpoZDavoEtZJKs2d61dIoGZ7BzTLoTFKC5KYHr+w2fwUNsfroOW5t8zOTl+7cnglAsyPX7wDDWxZsLWb+ynSsYaDiVJlFq426mI2SSzZEogdUolxxla+8frTGbMCAwEAAaNZMFcwDwYDVR0TAQH/BAUwAwEB/zAgBgNVHQ4BAQAEFgQUdKemJkxLOAC0mnrIfiN2bVe3xXUwIgYDVR0jAQEABBgwFoAUdKemJkxLOAC0mnrIfiN2bVe3xXUwDQYJKoZIhvcNAQELBQADggEBAGmy2eEYcC5YZPieKprbbyRKwlJt2Nn5826M0+N1B09Y+lCOT7CG8+9mEbgkfXLb7BsYuzwkVG8Zq5uzmpc3RwH0nsGvodjgE5gooiXPa6imbJsZmOr/xElzosDVz1HJrDv+bhDe9Lb8IAdzr4X3MFixKVwmL8k5EAPYV7VrtNF9q/XmLRVwnDLE5jRzZrf1wCCkuiiYur9Gn27XqSPHvXbxzNmHb/nDB7cF0zdXjUF1DO8lEd2JC4lCDxU/uy4XDmw6JesASreEA6kzL+B3j/rmu4eR0KsQzmePUi+aXhZ6pIWIMXPdjbpGU5eaBJZkQqxuZKy5Yg8y8i1hHCX+tqw=&#x200B;</publisher_bpki_ta>
</publisher_request>
@@ -0,0 +1,3 @@
<publisher_request xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/" version="1" publisher_handle="publisher-&#x200B;-request">
<publisher_bpki_ta>MIIDOjCCAiKgAwIBAgIBATANBgkqhkiG9w0BAQsFADAzMTEwLwYDVQQDEyg3NEE3QTYyNjRDNEIzODAwQjQ5QTdBQzg3RTIzNzY2RDU3QjdDNTc1MB4XDTIwMDMwMjAxNDQyOFoXDTM1MDMwMjAxNDkyOFowMzExMC8GA1UEAxMoNzRBN0E2MjY0QzRCMzgwMEI0OUE3QUM4N0UyMzc2NkQ1N0I3QzU3NTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKS9JLnakU2FdNLbJqFGusIPvQWIHejJjhzgp0eTwsR40ndhV7eLcFqIWcchEEnlLzextSPolbtoA0/DwpNWkT7ZjkvW884+VQ9DG8w2MfGb1H0loAuZt05ggqLcQQVndYcggDsUA2AAct84cnvT/k+6SegKyPtdXfrxaqMl7cOTBqYgEI8QfKjsdWGBzBN/EGYk7Kj7Lnd05B6wgEPuE7dnBDr4jpoZDavoEtZJKs2d61dIoGZ7BzTLoTFKC5KYHr+w2fwUNsfroOW5t8zOTl+7cnglAsyPX7wDDWxZsLWb+ynSsYaDiVJlFq426mI2SSzZEogdUolxxla+8frTGbMCAwEAAaNZMFcwDwYDVR0TAQH/BAUwAwEB/zAgBgNVHQ4BAQAEFgQUdKemJkxLOAC0mnrIfiN2bVe3xXUwIgYDVR0jAQEABBgwFoAUdKemJkxLOAC0mnrIfiN2bVe3xXUwDQYJKoZIhvcNAQELBQADggEBAGmy2eEYcC5YZPieKprbbyRKwlJt2Nn5826M0+N1B09Y+lCOT7CG8+9mEbgkfXLb7BsYuzwkVG8Zq5uzmpc3RwH0nsGvodjgE5gooiXPa6imbJsZmOr/xElzosDVz1HJrDv+bhDe9Lb8IAdzr4X3MFixKVwmL8k5EAPYV7VrtNF9q/XmLRVwnDLE5jRzZrf1wCCkuiiYur9Gn27XqSPHvXbxzNmHb/nDB7cF0zdXjUF1DO8lEd2JC4lCDxU/uy4XDmw6JesASreEA6kzL+B3j/rmu4eR0KsQzmePUi+aXhZ6pIWIMXPdjbpGU5eaBJZkQqxuZKy5Yg8y8i1hHCX+tqw=</publisher_bpki_ta>
</publisher_request>
@@ -0,0 +1,11 @@
<publisher_request
xmlns="http://www.hactrn.net/uris/rpki/rpki-setup/"
version="1"
publisher_handle="publisher-request-with-whitespace">
<publisher_bpki_ta>
MIIDOjCCAiKgAwIBAgIBATANBgkqhkiG9w0BAQsFADAzMTEwLwYDVQQDEyg3NEE3QTYyNjRDNEIz
ODAwQjQ5QTdBQzg3RTIzNzY2RDU3QjdDNTc1MB4XDTIwMDMwMjAxNDQyOFoXDTM1MDMwMjAxNDkyOFowMzExMC8GA1UEAxMoNzRBN0E2MjY0QzRCMzgwMEI0OUE3QUM4N0UyMzc2NkQ1N0I3QzU3NTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKS9JLnakU2FdNLbJqFGusIPvQWIHejJjhzgp0eTwsR40ndhV7eLcFqIWcchEEnlLzextSPolbtoA0/DwpNWkT7ZjkvW884+VQ9DG8w2MfGb1H0loAuZt05ggqLcQQVndYcggDsUA2AAct84cnvT/k+6SegKyPtdXfrxaqMl7cOTBqYgEI8QfKjsdWGBzBN/EGYk7Kj7Lnd05B6wgEPuE7dnBDr4jpoZDavoEtZJKs2d61dIoGZ7BzTLoTFKC5KYHr+w2fwUNsfroOW5t8zOTl+7cnglAsyPX7wDDWxZsLWb+ynSsYaDiVJlFq426mI2SSzZEogdUolxxla+8frTGbMCAwEAAaNZMFcwDwYDVR0TAQH/BAUwAwEB/zAgBgNVHQ4BAQAEFgQUdKemJkxLOAC0mnrIfiN2bVe3xXUwIgYDVR0jAQEABBgwFoAUdKemJkxLOAC0mnrIfiN2bVe3xXUwDQYJKoZIhvcNAQELBQADggEBAGmy2eEYcC5YZPieKprbbyRKwlJt2Nn5826M0+N1B09Y+lCOT7CG8+9mEbgkfXLb7BsYuzwkVG8Zq5uzmpc3RwH0nsGvodjgE5gooiXPa6imbJsZmOr/xElzosDVz1HJrDv+bhDe9Lb8IAdzr4X3MFixKVwmL8k5EAPYV7VrtNF9q/XmLRVwnDLE5jRzZrf1wCCkuiiYur9Gn27XqSPHvXbxzNmHb/nDB7cF0zdXjUF1DO8lEd2JC4lCDxU/uy4XDmw6JesASreEA6kzL+B3j/rmu4eR0KsQzmePUi+aXhZ6pIWIMXPdjbpGU5eaBJZkQqxuZKy5Yg8y8i1hHCX+tqw=
</publisher_bpki_ta>
</publisher_request>
+9
View File
@@ -0,0 +1,9 @@
service_uri = "https://localhost:3000/"
log_level = "info"
log_type = "stderr"
repo_enabled = true
use_ta = true
testbed_enabled = true
auth_type = "master-token"
auth_token = "secret"
+8
View File
@@ -0,0 +1,8 @@
#[cfg(feature = "ui-tests")]
mod ui;
#[tokio::test]
#[cfg(all(feature = "ui-tests", feature = "multi-user"))]
async fn testbed_ui_test() {
ui::run_krill_ui_test("testbed_ui", false, true).await;
}
+1 -1
View File
@@ -16,7 +16,7 @@ module.exports = (on, config) => {
// })) // }))
return Object.assign({}, config, { return Object.assign({}, config, {
fixturesFolder: 'test-resources/ui/', fixturesFolder: 'test-resources',
integrationFolder: 'tests/ui/cypress/specs', integrationFolder: 'tests/ui/cypress/specs',
screenshotsFolder: 'target/ui/screenshots', screenshotsFolder: 'target/ui/screenshots',
videosFolder: 'target/ui/videos', videosFolder: 'target/ui/videos',
@@ -112,9 +112,9 @@ describe('Config File Users with TA', () => {
// enter the request XML into the testbed UI edit field // enter the request XML into the testbed UI edit field
cy.get('div#tab-addPublisher').contains('Register Publisher').click() cy.get('div#tab-addPublisher').contains('Register Publisher').click()
cy.get('div#pane-addPublisher pre[contenteditable="true"]').invoke('text', pub_req_xml) cy.get('#addPublisher pre[contenteditable="true"]').invoke('text', pub_req_xml)
cy.get('div#pane-addPublisher pre[contenteditable="true"]').type('{end}') cy.get('#addPublisher pre[contenteditable="true"]').type('{end}')
cy.get('div#pane-addPublisher button').contains('Register publisher').click() cy.get('#addPublisher button').contains('Register publisher').click()
cy.get('div[role="dialog"] button').contains('OK').click() cy.get('div[role="dialog"] button').contains('OK').click()
cy.contains('has been added to the testbed') cy.contains('has been added to the testbed')
@@ -125,8 +125,8 @@ describe('Config File Users with TA', () => {
// requiring user accounts. // requiring user accounts.
// grab the repository response XML from the testbed UI // grab the repository response XML from the testbed UI
cy.get('div#pane-addPublisher pre[contenteditable="false"]').contains('<repository_response') cy.get('#addPublisher pre[contenteditable="false"]').contains('<repository_response')
cy.get('div#pane-addPublisher pre[contenteditable="false"]').invoke('text').then(repo_resp_xml => { cy.get('#addPublisher pre[contenteditable="false"]').invoke('text').then(repo_resp_xml => {
// navigate back to Krill // navigate back to Krill
cy.visit("/") cy.visit("/")
@@ -151,8 +151,8 @@ describe('Config File Users with TA', () => {
// enter the registered publisher name into the testbed UI edit field // enter the registered publisher name into the testbed UI edit field
cy.get('div#tab-removePublisher').contains('Unregister Publisher').click() cy.get('div#tab-removePublisher').contains('Unregister Publisher').click()
cy.get('div#pane-removePublisher input[placeholder="Enter the Publisher name to remove"]').type(ts.ca) cy.get('#removePublisher input[placeholder="Enter the Publisher name to remove"]').type(ts.ca)
cy.get('div#pane-removePublisher button').contains('Remove publisher').click() cy.get('#removePublisher button').contains('Remove publisher').click()
cy.get('div[role="dialog"] button').contains('OK').click() cy.get('div[role="dialog"] button').contains('OK').click()
if (ts.o) { if (ts.o) {
@@ -188,17 +188,17 @@ describe('Config File Users with TA', () => {
// enter the request XML into the testbed UI edit field // enter the request XML into the testbed UI edit field
cy.get('div#tab-addChild').contains('Register CA').click() cy.get('div#tab-addChild').contains('Register CA').click()
cy.get('div#pane-addChild pre[contenteditable="true"]').invoke('text', child_req_xml) cy.get('#addChild pre[contenteditable="true"]').invoke('text', child_req_xml)
cy.get('div#pane-addChild pre[contenteditable="true"]').type('{end}') cy.get('#addChild pre[contenteditable="true"]').type('{end}')
cy.get('div#pane-addChild input[placeholder^="The AS resources"]').type('AS18') cy.get('#addChild input[placeholder^="The AS resources"]').type('AS18')
cy.get('div#pane-addChild input[placeholder^="The IPv4 resources"]').type('10.0.0.0/24') cy.get('#addChild input[placeholder^="The IPv4 resources"]').type('10.0.0.0/24')
cy.get('div#pane-addChild button').contains('Register child CA').click() cy.get('#addChild button').contains('Register child CA').click()
cy.get('div[role="dialog"] button').contains('OK').click() cy.get('div[role="dialog"] button').contains('OK').click()
cy.contains('has been added to the testbed') cy.contains('has been added to the testbed')
// grab the parent response XML from the testbed UI // grab the parent response XML from the testbed UI
cy.get('div#pane-addChild pre[contenteditable="false"]').contains("<parent_response") cy.get('#addChild pre[contenteditable="false"]').contains("<parent_response")
cy.get('div#pane-addChild pre[contenteditable="false"]').invoke('text').then(parent_resp_xml => { cy.get('#addChild pre[contenteditable="false"]').invoke('text').then(parent_resp_xml => {
// navigate back to Krill // navigate back to Krill
cy.visit("/") cy.visit("/")
@@ -226,8 +226,8 @@ describe('Config File Users with TA', () => {
// enter the registered parent name into the testbed UI edit field // enter the registered parent name into the testbed UI edit field
cy.get('div#tab-removeChild').contains('Unregister CA').click() cy.get('div#tab-removeChild').contains('Unregister CA').click()
cy.get('div#pane-removeChild input[placeholder="Enter the CA name to remove"]').type(ts.ca) cy.get('#removeChild input[placeholder="Enter the CA name to remove"]').type(ts.ca)
cy.get('div#pane-removeChild button').contains('Remove child CA').click() cy.get('#removeChild button').contains('Remove child CA').click()
cy.get('div[role="dialog"] button').contains('OK').click() cy.get('div[role="dialog"] button').contains('OK').click()
if (ts.o) { if (ts.o) {
+99
View File
@@ -0,0 +1,99 @@
// Difficulty entering XML into Lagosta XML input fields:
// ------------------------------------------------------
// Using cy.type() to enter XML into these fields is extremely slow, one
// animated character at a time. I haven't yet found a way to copy-paste into
// them. Setting the text directly can be done but there is a challenge that has
// to be worked around which is that the fields use Prism Editor JS to syntax
// highlight the XML. Prism Editor manages the content as a rich HTML child node
// structure. Just replacing the content with a new text node doesn't work as
// the Lagosta JS code reading the field content doesn't get the content as
// set for some reason. The set text also doesn't get syntax highlighted. What
// seems to work however is causing a keyboard event in the field after the text
// has been set, e.g. pressing the End key.
//
// To summarize, the following works quickly:
// cy.get('... pre[contenteditable="true"]').invoke('text', xml)
// cy.get('... pre[contenteditable="true"]').type('{end}')
//
// This is less hacky but very slow: (even with "type(xml, {delay: 0}))")
// cy.get('... pre[contenteditable="true"]').clear().type(xml)
let publisher_request_test_settings = [
{ desc: 'Compact publisher request XML is accepted', fixture: 'testbed/publisher_request_compact.xml', httpCode: 200 },
{ desc: 'Publisher request with whitespace is accepted', fixture: 'testbed/publisher_request_with_whitespace.xml', httpCode: 200 },
{ desc: 'Publisher request with invalid Base64 certificate is rejected by Lagosta', fixture: 'testbed/publisher_request_invalid_base64.xml', httpCode: 'n/a', errMsg: 'Element <publisher_bpki_ta> must contain a correctly Base64 encoded self-signed X.509 BPKI certificate' },
{ desc: 'Publisher request with unicode space char is rejected by Lagosta', fixture: 'testbed/publisher_request_with_unicode_space_char.xml', httpCode: 'n/a', errMsg: 'Element <publisher_bpki_ta> cannot contain non-ASCII characters' },
{ desc: 'Publisher request with unicode space entity reference is rejected by Lagosta', fixture: 'testbed/publisher_request_with_unicode_space_entity_reference.xml', httpCode: 'n/a', errMsg: 'Element <publisher_bpki_ta> cannot contain non-ASCII characters' },
{ desc: 'Publisher request with unicode space entity reference in handle is rejected by Krill', fixture: 'testbed/publisher_request_with_unicode_space_entity_reference_in_handle.xml', httpCode: 400, errMsg: 'Input contains non-ASCII chars (maybe whitespace?)' },
];
let child_request_test_settings = [
{ desc: 'Compact child request XML is accepted', fixture: 'testbed/child_request_compact.xml', httpCode: 200 },
{ desc: 'Child request with whitespace is accepted', fixture: 'testbed/child_request_with_whitespace.xml', httpCode: 200 },
{ desc: 'Child request with invalid Base64 certificate is rejected by Lagosta', fixture: 'testbed/child_request_invalid_base64.xml', httpCode: 'n/a', errMsg: 'Element <child_bpki_ta> must contain a correctly Base64 encoded self-signed X.509 BPKI certificate' },
{ desc: 'Child request with unicode space char is rejected by Lagosta', fixture: 'testbed/child_request_with_unicode_space_char.xml', httpCode: 'n/a', errMsg: 'Element <child_bpki_ta> cannot contain non-ASCII characters' },
{ desc: 'Child request with unicode space entity reference is rejected by Lagosta', fixture: 'testbed/child_request_with_unicode_space_entity_reference.xml', httpCode: 'n/a', errMsg: 'Element <child_bpki_ta> cannot contain non-ASCII characters' },
{ desc: 'Child request with unicode space entity reference in handle is rejected by Krill', fixture: 'testbed/child_request_with_unicode_space_entity_reference_in_handle.xml', httpCode: 400, errMsg: 'Input contains non-ASCII chars (maybe whitespace?)' },
];
describe('Testbed UI test', () => {
publisher_request_test_settings.forEach(function (ts) {
it(ts.desc, () => {
cy.fixture(ts.fixture).then((xml) => {
// use the local testbed UI to submit the request to register the publisher
cy.visit("/index.html#/testbed")
// verify that the register child tab is active by default
cy.get('#addChild').contains('Child Request XML').should('be.visible')
// enter the request XML into the testbed UI edit field
cy.get('div#tab-addPublisher').contains('Register Publisher').click()
cy.get('#addPublisher pre[contenteditable="true"]').invoke('text', xml)
cy.get('#addPublisher pre[contenteditable="true"]').type('{end}')
cy.intercept('POST', '/testbed/publishers').as('addPublisher')
cy.get('#addPublisher button').contains('Register publisher').click()
if (ts.httpCode != 'n/a') {
cy.get('div[role="dialog"] button').contains('OK').click()
cy.wait('@addPublisher').its('response.statusCode').should('eq', ts.httpCode)
}
if (ts.httpCode == 200) {
cy.contains('has been added to the testbed')
} else {
cy.contains(ts.errMsg)
}
})
})
})
child_request_test_settings.forEach(function (ts) {
it(ts.desc, () => {
cy.fixture(ts.fixture).then((xml) => {
// use the local testbed UI to submit the request to register the child
cy.visit("/index.html#/testbed")
// enter the request XML into the testbed UI edit field
cy.get('div#tab-addChild').contains('Register CA').click()
cy.get('#addChild pre[contenteditable="true"]').invoke('text', xml)
cy.get('#addChild pre[contenteditable="true"]').type('{end}')
cy.get('#addChild input[placeholder^="The AS resources"]').type('AS18')
cy.get('#addChild input[placeholder^="The IPv4 resources"]').type('10.0.0.0/24')
cy.intercept('POST', '/testbed/children').as('addChild')
cy.get('#addChild button').contains('Register child CA').click()
if (ts.httpCode != 'n/a') {
cy.get('div[role="dialog"] button').contains('OK').click()
cy.wait('@addChild').its('response.statusCode').should('eq', ts.httpCode)
}
if (ts.httpCode == 200) {
cy.contains('has been added to the testbed')
} else {
cy.contains(ts.errMsg)
}
})
})
})
})