You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2020/08/11 09:39:24 UTC
[james-project] 07/10: JAMES-3351 Adapt integration tests
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 2ab513b7f4a8d3dcbb2ef0fc05506d5e1eedc6b9
Author: LanKhuat <dl...@linagora.com>
AuthorDate: Tue Jul 28 14:24:37 2020 +0700
JAMES-3351 Adapt integration tests
---
.../apache/james/jmap/JMAPAuthenticationTest.java | 54 +++++++++++++++-------
.../rfc8621/contract/AuthenticationContract.scala | 45 ++----------------
2 files changed, 40 insertions(+), 59 deletions(-)
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/JMAPAuthenticationTest.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/JMAPAuthenticationTest.java
index 280d1b6..06e8b4d 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/JMAPAuthenticationTest.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/JMAPAuthenticationTest.java
@@ -165,7 +165,7 @@ public abstract class JMAPAuthenticationTest {
}
@Test
- public void mustPositionCorsHeaders() throws Exception {
+ public void mustPositionCorsHeaders() {
given()
.contentType(ContentType.JSON)
.accept(ContentType.JSON)
@@ -179,7 +179,7 @@ public abstract class JMAPAuthenticationTest {
}
@Test
- public void mustReturnJsonResponse() throws Exception {
+ public void mustReturnJsonResponse() {
given()
.contentType(ContentType.JSON)
.accept(ContentType.JSON)
@@ -357,11 +357,11 @@ public abstract class JMAPAuthenticationTest {
"6vRqdEqx_F9OF3eWTe1giMp_JhQ7_l1OXXtbd4TndVvTeuVy4irPbsRc-M8x_-qTDpFp6saRRsyOcFspxPp5n3yIhEK7B3UZiseXw";
given()
- .header("Authorization", "Bearer " + token)
- .when()
- .get("/authentication")
- .then()
- .statusCode(200);
+ .header("Authorization", "Bearer " + token)
+ .when()
+ .get("/authentication")
+ .then()
+ .statusCode(200);
}
@Test
@@ -388,20 +388,20 @@ public abstract class JMAPAuthenticationTest {
"qNOR8Q31ydinyqzXvCSzVJOf6T60-w";
given()
- .header("Authorization", "Bearer " + token)
- .when()
- .get("/authentication")
- .then()
- .statusCode(401);
+ .header("Authorization", "Bearer " + token)
+ .when()
+ .get("/authentication")
+ .then()
+ .statusCode(401);
}
@Test
public void optionsRequestsShouldNeverRequireAuthentication() {
given()
- .when()
- .options("/authentication")
- .then()
- .statusCode(200);
+ .when()
+ .options("/authentication")
+ .then()
+ .statusCode(200);
}
@Test
@@ -419,7 +419,27 @@ public abstract class JMAPAuthenticationTest {
.statusCode(200)
.body("api", isA(String.class));
}
-
+
+ @Category(BasicFeature.class)
+ @Test
+ public void getShouldReturn400WhenMultipleCredentials() {
+ String jwtToken = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyQGRvbWFpbi50bGQifQ.U-dUPv6OU6KO5N7CooHUfMkCd" +
+ "FJHx2F3H4fm7Q79g1BPfBSkifPj5xyVlZ0JwEGXypC4zBw9ay3l4DxzX7D_6p1Hx_ihXsoLx1Ca-WUo44x-XRSpPfgxiZjHCJkGBLMV3RZlA" +
+ "jip-d18mxkcX3JGplX_sCQkFisduAOAHuKSUg9wI6VBgUQi_0B35FYv6tP_bD6eFtvaAUN9QyXXh8UQjEp8CO12lRz6enfLx_V6BG_fEMkee" +
+ "6vRqdEqx_F9OF3eWTe1giMp_JhQ7_l1OXXtbd4TndVvTeuVy4irPbsRc-M8x_-qTDpFp6saRRsyOcFspxPp5n3yIhEK7B3UZiseXw";
+
+ String continuationToken = fromGoodContinuationTokenRequest();
+ String accessToken = fromGoodAccessTokenRequest(continuationToken);
+
+ given()
+ .header("Authorization", "Bearer " + jwtToken)
+ .header("Authorization", accessToken)
+ .when()
+ .get("/authentication")
+ .then()
+ .statusCode(400);
+ }
+
@Test
public void deleteMustReturnUnauthenticatedWithoutAuthorizationHeader() {
given()
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/AuthenticationContract.scala b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/AuthenticationContract.scala
index c411c81..247ad48 100644
--- a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/AuthenticationContract.scala
+++ b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/AuthenticationContract.scala
@@ -23,7 +23,7 @@ import io.netty.handler.codec.http.HttpHeaderNames.ACCEPT
import io.restassured.RestAssured.{`given`, requestSpecification}
import io.restassured.authentication.NoAuthScheme
import io.restassured.http.Header
-import org.apache.http.HttpStatus.{SC_OK, SC_UNAUTHORIZED}
+import org.apache.http.HttpStatus.{SC_BAD_REQUEST, SC_OK, SC_UNAUTHORIZED}
import org.apache.james.GuiceJamesServer
import org.apache.james.jmap.rfc8621.contract.Fixture.{ACCEPT_RFC8621_VERSION_HEADER, ALICE, ALICE_PASSWORD, AUTHORIZATION_HEADER, BOB, BOB_BASIC_AUTH_HEADER, BOB_PASSWORD, DOMAIN, DOMAIN_WITH_SPACE, ECHO_REQUEST_OBJECT, INVALID_JWT_TOKEN, UNKNOWN_USER_TOKEN, USER_TOKEN, getHeadersWith, toBase64, _}
import org.apache.james.jmap.rfc8621.contract.tags.CategoryTags
@@ -52,54 +52,15 @@ trait AuthenticationContract {
class BothAuthenticationMechanisms {
@Tag(CategoryTags.BASIC_FEATURE)
@Test
- def shouldRespond200WhenBasicAuthValidAndJWTInvalid(): Unit = {
+ def shouldRespond400WhenBothAuthentication(): Unit = {
`given`
.headers(getHeadersWith(BOB_BASIC_AUTH_HEADER))
- .header(new Header(AUTHORIZATION_HEADER, s"Bearer $UNKNOWN_USER_TOKEN"))
- .body(ECHO_REQUEST_OBJECT)
- .when
- .post
- .`then`
- .statusCode(SC_OK)
- }
-
- @Tag(CategoryTags.BASIC_FEATURE)
- @Test
- def shouldRespond200WhenJWTAuthValidAndBasicAuthInvalid(): Unit = {
- `given`
- .headers(getHeadersWith(new Header(AUTHORIZATION_HEADER, s"Basic ${toBase64(s"this-thing-wrong")}")))
.header(new Header(AUTHORIZATION_HEADER, s"Bearer $USER_TOKEN"))
.body(ECHO_REQUEST_OBJECT)
.when
.post
.`then`
- .statusCode(SC_OK)
- }
-
- @Tag(CategoryTags.BASIC_FEATURE)
- @Test
- def shouldRespond200WhenBothAuthenticationValid(): Unit = {
- `given`
- .headers(getHeadersWith(BOB_BASIC_AUTH_HEADER))
- .header(new Header(AUTHORIZATION_HEADER, s"Bearer $USER_TOKEN"))
- .body(ECHO_REQUEST_OBJECT)
- .when
- .post
- .`then`
- .statusCode(SC_OK)
- }
-
- @Tag(CategoryTags.BASIC_FEATURE)
- @Test
- def shouldRespond401WhenNoneAuthenticationValid(): Unit = {
- `given`
- .headers(getHeadersWith(new Header(AUTHORIZATION_HEADER, s"Basic ${toBase64(s"this-one-wrong")}")))
- .header(new Header(AUTHORIZATION_HEADER, s"Bearer $UNKNOWN_USER_TOKEN"))
- .body(ECHO_REQUEST_OBJECT)
- .when
- .post
- .`then`
- .statusCode(SC_UNAUTHORIZED)
+ .statusCode(SC_BAD_REQUEST)
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org