Skip to content

Commit

Permalink
Merge branch 'feature/SHIBUI-1505' into feature/SHIBUI-1317
Browse files Browse the repository at this point in the history
  • Loading branch information
Bill Smith committed Sep 20, 2019
2 parents f7ffa8d + 18b01ec commit b37a027
Show file tree
Hide file tree
Showing 193 changed files with 15,415 additions and 17,338 deletions.
18 changes: 0 additions & 18 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,24 +17,6 @@ pipeline {
}
}

stage('Run Selenium tests') {
when {
expression {
return (GIT_BRANCH.startsWith('PR') || GIT_BRANCH.endsWith('-QA'))
}
}
steps {
sh '''
./gradlew integrationTest -Dselenium.host=jenkins
'''
}
post {
always {
junit 'backend/build/test-results/integrationTest/**/*.xml'
}
}
}

stage('Build Docker images') {
when {
expression {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,22 @@
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

Expand Down Expand Up @@ -100,6 +111,46 @@ 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)
def 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()
}

private getAllEntityDescriptorVersions(String resourceId, responseType) {
this.restTemplate.getForEntity(resourceUriFor(ALL_VERSIONS_URI, resourceId), responseType)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
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.EntityAttributesFilterTarget
import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityRoleWhiteListFilter
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
Expand Down Expand Up @@ -103,6 +106,54 @@ class MetadataResolverControllerVersionEndpointsIntegrationTests extends Specifi
mrv2.body.name == 'resolverUPDATED'
}

def "SHIBUI-1386"() {
MetadataResolver mr = new FileBackedHttpMetadataResolver(name: 'testme')
mr = repository.save(mr)

when: 'add a filter'
// def filterValue = '''{"type":"EntityAttributes","@type":"EntityAttributes","filterEnabled":true,"entityAttributesFilterTarget":{"entityAttributesFilterTargetType":"ENTITY","value":["https://idp.unicon.net/idp/shibboleth"]},"relyingPartyOverrides":{"signAssertion":false,"dontSignResponse":false,"turnOffEncryption":false,"useSha":false,"ignoreAuthenticationMethod":false,"omitNotBefore":false,"nameIdFormats":[],"authenticationMethods":[],"forceAuthn":false},"attributeRelease":[],"name":"Test Filter 1"}'''
def filter = new EntityAttributesFilter(
name: 'testme',
filterEnabled: true
).with {
it.relyingPartyOverrides = [
'signAssertion': true
]
it.setEntityAttributesFilterTarget(new EntityAttributesFilterTarget().with {
it.entityAttributesFilterTargetType = EntityAttributesFilterTarget.EntityAttributesFilterTargetType.ENTITY
it.value = ['https://testme/sp']
it
})
it
}
mr.metadataFilters.add(filter)
mr = repository.save(mr)

def allVersions = getAllMetadataResolverVersions(mr.resourceId, List)
def mrv1 = getMetadataResolverForVersion(mr.resourceId, allVersions.body[0].id, MetadataResolver)
def mrv2 = getMetadataResolverForVersion(mr.resourceId, allVersions.body[1].id, MetadataResolver)

then:
noExceptionThrown()
}

def "SHIBUI-1500"() {
MetadataResolver mr = new FileBackedHttpMetadataResolver(name: 'shibui-1500')
mr = repository.save(mr)

when: 'add a filter'
def filter = new EntityRoleWhiteListFilter(name: 'shibui-1500', retainedRoles: ['role1'])
mr.addFilter(filter)
mr = repository.save(mr)

def allVersions = getAllMetadataResolverVersions(mr.resourceId, List)
def mrv1 = getMetadataResolverForVersion(mr.resourceId, allVersions.body[0].id, MetadataResolver)
def mrv2 = getMetadataResolverForVersion(mr.resourceId, allVersions.body[1].id, MetadataResolver)

then:
(mrv1.getBody() as MetadataResolver).modifiedDate < (mrv2.getBody() as MetadataResolver).modifiedDate
}

private getAllMetadataResolverVersions(String resourceId, responseType) {
this.restTemplate.getForEntity(resourceUriFor(ALL_VERSIONS_URI, resourceId), responseType)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,9 @@ class SeleniumSIDETest extends Specification {
} else {
it.baseurl = "http://localhost:${this.randomPort}"
}
if (System.properties.getProperty('webdriver.headless')) {
it.addCliArgs('--headless')
}
it
}
def runner = new Runner()
Expand All @@ -83,37 +86,24 @@ class SeleniumSIDETest extends Specification {
assert result.level.exitCode == 0

where:
//TODO: Update or delete where necessary
name | file
// 'Create Dynamic HTTP Metadata Resolver' | '/dhmr.side'
// 'Metadata Source Happy Path Save' | '/MetadataSourceHappyPathSAVE.side'
// 'Metadata Provider Happy Path Save' | '/MetadataProviderHappyPathSAVE.side'
// 'Create Filter Entity ID' | '/CreateFilterEntityID.side'
// 'Create Filter REGEX' | '/CreateFilterREGEX.side'
// 'Create Filter Script' | '/CreateFilterScript.side'
// 'Create Metadata Source From XML' | '/CreateMetadataSourceFromXML.side'
// 'Create Metadata Source From Copy' | '/CreateMetadataSourceFromCopy.side' // currently does not populate MDUI before copy (causes 400)
// 'Create Metadata Source from URL' | '/CreateMetadataSourceFromURL.side'
// 'Delete Entity ID Filter' | '/DeleteEntityIDFilter.side'
// 'Delete REGEX Filter' | '/DeleteREGEXFilter.side'
// 'Delete Incomplete Source' | '/DeleteIncompleteSource.side'
// 'Admin Login' | '/SHIBUI-1031_AdminLogin.side'
// 'Delegated Admin: SubmitSource' | '/SHIBUI-1058_DelegatedAdmin_SubmitSource.side'
// 'Create Filesystem Metadata Resolver' | '/CreateFilesystemMetadataResolver.side'
// 'Create Local Dynamic Metadata Resolver' | '/CreateLocalDynamicMetadataResolver.side'
// 'Delete Entity Attributes Script Filter' | '/DeleteScriptFilter.side'
// 'Create and Delete Name ID Format Entity ID Filter' | '/CreateAndDeleteNameIDFormatEntityIDFilter.side'
// 'Create and Delete Name ID Format Regex Filter' | '/CreateAndDeleteNameIDFormatRegexFilter.side'
// 'Create and Delete Name ID Format Script Filter' | '/CreateAndDeleteNameIDFormatScriptFilter.side'
// 'Create and Modify Filter Order' | '/ModifyFilterOrder.side'
'SHIBUI-1281: Metadata Source Dashboard' | '/SHIBUI-1281.side'
'SHIBUI-1311: Metadata Provider Dashboard' | '/SHIBUI-1311.side'
'SHIBUI-950: Metadata Source from XML w/ digest' | '/SHIBUI-950.side'
'SHIBUI-1352: Create LocalDynamic provider' | '/SHIBUI-1352-1.side'
'SHIBUI-1352: Create FileSystem provider' | '/SHIBUI-1352-2.side'
'SHIBUI-1333: Verify metadata source configuration' | '/SHIBUI-1333.side'
'SHIBUI-1334: Verify metadata source versioning' | '/SHIBUI-1334-1.side'
'SHIBUI-1334: Verify metadata provider versioning' | '/SHIBUI-1334-2.side'
name | file
'SHIBUI-1281: Metadata Source Dashboard' | '/SHIBUI-1281.side'
'SHIBUI-1311: Metadata Provider Dashboard' | '/SHIBUI-1311.side'
'SHIBUI-950: Metadata Source from XML w/ digest' | '/SHIBUI-950.side'
'SHIBUI-1352: Create LocalDynamic provider' | '/SHIBUI-1352-1.side'
'SHIBUI-1352: Create FileSystem provider' | '/SHIBUI-1352-2.side'
'SHIBUI-1333: Verify metadata source configuration' | '/SHIBUI-1333.side'
'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 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-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'
}
}

Loading

0 comments on commit b37a027

Please sign in to comment.