diff --git a/scm-it/build.gradle b/scm-it/build.gradle index 2ff3db4dee..5903ed207c 100644 --- a/scm-it/build.gradle +++ b/scm-it/build.gradle @@ -80,6 +80,7 @@ task javaIntegrationTests(type: Test) { ignoreFailures = project.isCI outputs.upToDateWhen { !project.hasProperty('rerunIntegrationTests') } finalizedBy = ['stopScmServer'] + useJUnitPlatform() dependsOn 'test', 'startScmServer' mustRunAfter 'startScmServer' diff --git a/scm-it/src/test/java/sonia/scm/it/AnonymousAccessITCase.java b/scm-it/src/test/java/sonia/scm/it/AnonymousAccessITCase.java index 603942e4f7..9fac411b27 100644 --- a/scm-it/src/test/java/sonia/scm/it/AnonymousAccessITCase.java +++ b/scm-it/src/test/java/sonia/scm/it/AnonymousAccessITCase.java @@ -26,7 +26,6 @@ package sonia.scm.it; import io.restassured.RestAssured; import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; @@ -61,6 +60,11 @@ import static sonia.scm.it.utils.TestData.getDefaultRepositoryUrl; class AnonymousAccessITCase { + @BeforeEach + void createRepositoryAndSetAnonymous() { + TestData.createDefault(); + } + @Test void shouldAccessIndexResourceWithoutAuthentication() { ScmRequests.start() @@ -79,14 +83,10 @@ class AnonymousAccessITCase { @Nested @TestInstance(TestInstance.Lifecycle.PER_CLASS) class WithProtocolOnlyAnonymousAccess { - @BeforeAll - void enableAnonymousAccess() { - setAnonymousAccess(AnonymousMode.PROTOCOL_ONLY); - } @BeforeEach - void createRepository() { - TestData.createDefault(); + void createRepositoryAndSetAnonymous() { + setAnonymousAccess(AnonymousMode.PROTOCOL_ONLY); } @Test @@ -150,14 +150,10 @@ class AnonymousAccessITCase { @Nested @TestInstance(TestInstance.Lifecycle.PER_CLASS) class WithFullAnonymousAccess { - @BeforeAll - void enableAnonymousAccess() { - setAnonymousAccess(AnonymousMode.FULL); - } @BeforeEach - void createRepository() { - TestData.createDefault(); + void createRepositoryAndSetAnonymous() { + setAnonymousAccess(AnonymousMode.FULL); } @Test diff --git a/scm-it/src/test/java/sonia/scm/it/utils/TestData.java b/scm-it/src/test/java/sonia/scm/it/utils/TestData.java index fc995d7a9b..7655416d5a 100644 --- a/scm-it/src/test/java/sonia/scm/it/utils/TestData.java +++ b/scm-it/src/test/java/sonia/scm/it/utils/TestData.java @@ -230,6 +230,18 @@ public class TestData { .body().jsonPath().getList("_embedded.users._links.self.href"); LOG.info("about to delete {} users", users.size()); users.stream().filter(url -> PROTECTED_USERS.stream().noneMatch(url::contains)).forEach(TestData::delete); + + clearAnonymousUserPermissions(); + } + + private static void clearAnonymousUserPermissions() { + given(VndMediaType.PERMISSION_COLLECTION).accept("application/json") + .when() + .body("{\"permissions\":[]}") + .put(createResourceUrl("users/_anonymous/permissions")) + .then() + .statusCode(HttpStatus.SC_NO_CONTENT); + LOG.info("deleted permissions for user _anonymous"); } private static void cleanupConfig() {