This is an automated email from the ASF dual-hosted git repository. chibenwa pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit b00095c89d6171323a5de2fd0b4eaae16d2b28c8 Author: Quan Tran <[email protected]> AuthorDate: Mon Jul 13 22:58:39 2026 +0700 [BUILD] DisabledCapabilityContract: isolate using different users --- .../contract/DisabledCapabilityContract.scala | 28 +++++++++++++++++++--- .../memory/MemoryDisabledCapabilityTest.java | 1 + 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/DisabledCapabilityContract.scala b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/DisabledCapabilityContract.scala index 69e7b1da81..be98b5d6e0 100644 --- a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/DisabledCapabilityContract.scala +++ b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/DisabledCapabilityContract.scala @@ -19,12 +19,17 @@ package org.apache.james.jmap.rfc8621.contract +import java.nio.charset.StandardCharsets +import java.util.UUID + +import com.google.common.hash.Hashing import io.netty.handler.codec.http.HttpHeaderNames.ACCEPT import io.restassured.RestAssured._ import io.restassured.http.ContentType.JSON import net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson import org.apache.http.HttpStatus.SC_OK import org.apache.james.GuiceJamesServer +import org.apache.james.core.Username import org.apache.james.jmap.core.ResponseObject.SESSION_STATE import org.apache.james.jmap.core.{CapabilityIdentifier, JmapRfc8621Configuration} import org.apache.james.jmap.http.UserCredential @@ -33,6 +38,11 @@ import org.apache.james.jmap.rfc8621.contract.SessionRoutesContract.expected_ses import org.apache.james.utils.DataProbeImpl import org.junit.jupiter.api.{BeforeEach, Test} +object DisabledCapabilityContractContext { + case class TestContext(bobUsername: Username, bobAccountId: String) + val currentContext: java.util.concurrent.atomic.AtomicReference[TestContext] = new java.util.concurrent.atomic.AtomicReference[TestContext]() +} + object DisabledCapabilityContract { val configuration: JmapRfc8621Configuration = JmapRfc8621Configuration(urlPrefixString = "http://127.0.0.1", websocketPrefixString = "ws://127.0.0.1", @@ -123,15 +133,24 @@ object DisabledCapabilityContract { trait DisabledCapabilityContract { + import DisabledCapabilityContractContext.currentContext + + def bobUsername: Username = currentContext.get().bobUsername + def bobAccountId: String = currentContext.get().bobAccountId + @BeforeEach def setUp(server: GuiceJamesServer): Unit = { + val uniqueSuffix = UUID.randomUUID().toString.replace("-", "").take(8) + val bob = Username.fromLocalPartWithDomain(s"bob$uniqueSuffix", DOMAIN) + currentContext.set(DisabledCapabilityContractContext.TestContext( + bob, Hashing.sha256().hashString(bob.asString(), StandardCharsets.UTF_8).toString)) server.getProbe(classOf[DataProbeImpl]) .fluent() .addDomain(DOMAIN.asString()) - .addUser(BOB.asString(), BOB_PASSWORD) + .addUser(bobUsername.asString(), BOB_PASSWORD) requestSpecification = baseRequestSpecBuilder(server) - .setAuth(authScheme(UserCredential(BOB, BOB_PASSWORD))) + .setAuth(authScheme(UserCredential(bobUsername, BOB_PASSWORD))) .build } @@ -189,6 +208,9 @@ trait DisabledCapabilityContract { .body() .asString() - assertThatJson(sessionJson).isEqualTo(DisabledCapabilityContract.expected_session_object) + assertThatJson(sessionJson).isEqualTo( + DisabledCapabilityContract.expected_session_object + .replace("29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6", bobAccountId) + .replace("[email protected]", bobUsername.asString)) } } diff --git a/server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryDisabledCapabilityTest.java b/server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryDisabledCapabilityTest.java index 8502f83d32..f877669b5a 100644 --- a/server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryDisabledCapabilityTest.java +++ b/server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryDisabledCapabilityTest.java @@ -44,5 +44,6 @@ public class MemoryDisabledCapabilityTest implements DisabledCapabilityContract .server(configuration -> MemoryJamesServerMain.createServer(configuration) .overrideWith(binder -> binder.bind(JmapRfc8621Configuration.class).toInstance(DisabledCapabilityContract.configuration())) .overrideWith(new TestJMAPServerModule(), new DelegationProbeModule(), new IdentityProbeModule())) + .lifeCycle(JamesServerExtension.Lifecycle.PER_CLASS) .build(); } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
