diff --git a/pom.xml b/pom.xml index 1d6ea484d78..ebfbea8442a 100644 --- a/pom.xml +++ b/pom.xml @@ -42,6 +42,7 @@ + diff --git a/src/main/java/com/shaft/api/RestActions.java b/src/main/java/com/shaft/api/RestActions.java index d208eed5a0a..b9b261977d5 100755 --- a/src/main/java/com/shaft/api/RestActions.java +++ b/src/main/java/com/shaft/api/RestActions.java @@ -933,8 +933,18 @@ protected RequestSpecification prepareRequestSpecs(List> parameters Object body, ContentType contentType, Map sessionCookies, Map sessionHeaders, RestAssuredConfig sessionConfig, boolean appendDefaultContentCharsetToContentTypeIfUndefined, boolean urlEncodingEnabled) { RequestSpecBuilder builder = initializeBuilder(sessionCookies, sessionHeaders, sessionConfig, appendDefaultContentCharsetToContentTypeIfUndefined); - // set the default content type as part of the specs - builder.setContentType(contentType); + // Check if contentType is still ANY and use the Content-Type header value directly + if (contentType == ContentType.ANY) { + String contentTypeHeader = sessionHeaders.get("Content-Type"); + if (contentTypeHeader != null) { + // Set the content type to the exact header value + builder.setContentType(contentTypeHeader); + } + } else { + // If contentType is explicitly set, use it + builder.setContentType(contentType); + } + builder.setUrlEncodingEnabled(urlEncodingEnabled); if (body != null && contentType != null && !body.toString().isEmpty()) { diff --git a/src/test/java/com/shaft/api/testss.java b/src/test/java/com/shaft/api/testss.java new file mode 100644 index 00000000000..e3c2de02537 --- /dev/null +++ b/src/test/java/com/shaft/api/testss.java @@ -0,0 +1,95 @@ +package com.shaft.api; + +import com.shaft.driver.SHAFT; +import io.qameta.allure.TmsLinks; +import io.restassured.builder.RequestSpecBuilder; +import io.restassured.http.ContentType; +import io.restassured.response.Response; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +/** + * @author Kyrillos Nageh + */ +public class testss { + SHAFT.API api; + + + @BeforeClass + public void setUp() { + // api = new SHAFT.API("http://www.dneonline.com"); + } + + @Test + public void testCreateUser() { + + + String requestBody= " {\n" + + " \"name\": \"Test user1\",\n" + + " \"job\": \"leader\"\n" + + " }"; + + api = new SHAFT.API("https://reqres.in/api/"); + //api.addHeader("Content-Type", "application/json"); + Response response = api.post("users") + .setContentType("application/json") + .setRequestBody(requestBody) + .performRequest(); + System.out.println("Response Body: " + response.getBody().asString()); + } + @Test + public void testAddOperation() { + /* + AddRequest request = AddRequest.builder() + .intA(5) + .intB(10) + .build(); + + AddResponse response = calculatorService.add(request); + Assert.assertEquals(response.getAddResult(), 15); + + */ + + String requestXml = "\n" + + " \n" + + " \n" + + " 10\n" + + " 2\n" + + " \n" + + " \n" + + ""; + + api = new SHAFT.API(""); + api.addHeader("Content-Type", "text/xml; charset=UTF-8"); + api.addHeader("SOAPAction", "http://tempuri.org/" + "Multiply"); + + System.out.println("Request Body: " + requestXml); + + Response response = api.post("http://www.dneonline.com/calculator.asmx") + .setRequestBody(requestXml) + .performRequest(); + + String Result =RestActions.getResponseXMLValue(response, "AddResponse/AddResult"); + + SHAFT.Report.log(">>>>>>>>>>>> Test result >>>> " + Result); + +/* + Response response = given() + .header("Content-Type", "text/xml") + .contentType(ContentType.XML) + .header("SOAPAction", "http://tempuri.org/" + "Multiply") + .body(requestXml) + .when() + .post("http://www.dneonline.com/calculator.asmx") + .then() + .statusCode(200) // Validate status code directly + .extract().response(); + + String Result =RestActions.getResponseXMLValue(response, "AddResponse/AddResult"); + + SHAFT.Report.log(">>>>>>>>>>>> Test result >>>> " + Result); +*/ + } + +} + diff --git a/src/test/resources/META-INF/services/io.qameta.allure.listener.ContainerLifecycleListener b/src/test/resources/META-INF/services/io.qameta.allure.listener.ContainerLifecycleListener new file mode 100644 index 00000000000..bb833b2578d --- /dev/null +++ b/src/test/resources/META-INF/services/io.qameta.allure.listener.ContainerLifecycleListener @@ -0,0 +1 @@ +com.shaft.listeners.AllureListener \ No newline at end of file diff --git a/src/test/resources/META-INF/services/io.qameta.allure.listener.FixtureLifecycleListener b/src/test/resources/META-INF/services/io.qameta.allure.listener.FixtureLifecycleListener new file mode 100644 index 00000000000..bb833b2578d --- /dev/null +++ b/src/test/resources/META-INF/services/io.qameta.allure.listener.FixtureLifecycleListener @@ -0,0 +1 @@ +com.shaft.listeners.AllureListener \ No newline at end of file diff --git a/src/test/resources/META-INF/services/io.qameta.allure.listener.StepLifecycleListener b/src/test/resources/META-INF/services/io.qameta.allure.listener.StepLifecycleListener new file mode 100644 index 00000000000..bb833b2578d --- /dev/null +++ b/src/test/resources/META-INF/services/io.qameta.allure.listener.StepLifecycleListener @@ -0,0 +1 @@ +com.shaft.listeners.AllureListener \ No newline at end of file diff --git a/src/test/resources/META-INF/services/io.qameta.allure.listener.TestLifecycleListener b/src/test/resources/META-INF/services/io.qameta.allure.listener.TestLifecycleListener new file mode 100644 index 00000000000..bb833b2578d --- /dev/null +++ b/src/test/resources/META-INF/services/io.qameta.allure.listener.TestLifecycleListener @@ -0,0 +1 @@ +com.shaft.listeners.AllureListener \ No newline at end of file diff --git a/src/test/resources/META-INF/services/org.testng.ITestNGListener b/src/test/resources/META-INF/services/org.testng.ITestNGListener new file mode 100644 index 00000000000..bae21b47874 --- /dev/null +++ b/src/test/resources/META-INF/services/org.testng.ITestNGListener @@ -0,0 +1 @@ +com.shaft.listeners.TestNGListener \ No newline at end of file