Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,39 +1,21 @@
package school.redrover;
package school.redrover.api;

import io.restassured.RestAssured;
import io.restassured.http.ContentType;
import io.restassured.response.Response;
import io.restassured.response.ResponseBody;
import org.testng.Assert;
import org.testng.annotations.Test;
import school.redrover.common.APIBaseTest;

import java.util.HashMap;
import java.util.Map;

public class APIJenkinsTest extends APIBaseTest {
public class APIFreestyleProjectTest extends APIBaseTest {

@Test
public void jenkinsTest() {
RestAssured.given()
.log().all()// ← добавил что бы смотреть, что отправляю и что получаю(в конце лог)
.when()
.auth()
.preemptive()
.basic(userName, apiToken)
.when()
.get(jenkinsUrl + "api/json")
.then()
.log().all()
.statusCode(200);
}

@Test
public void testCreateFreestyleProjectWithValidName() {
Map<String, String> projectName = new HashMap<>();
projectName.put("name", "FreestyleProjectName");
private static final String PROJECT_NAME = "FreestyleProject";
private static final String NEW_PROJECT_NAME = "NewFreestyleProject";

String bodyFreestyleProjectXML = """
private static final String bodyXML = """
<project>
<keepDependencies>false</keepDependencies>
<properties/>
Expand All @@ -48,15 +30,20 @@ public void testCreateFreestyleProjectWithValidName() {
<publishers/>
<buildWrappers/>
</project>
""";
""";

@Test
public void testCreateWithValidName() {
Map<String, String> projectName = new HashMap<>();
projectName.put("name", PROJECT_NAME);

RestAssured.given()
.log().all()
.auth().preemptive().basic(userName, apiToken)
.baseUri(jenkinsUrl)
.contentType(ContentType.XML)
.queryParams(projectName)
.body(bodyFreestyleProjectXML)
.body(bodyXML)
.when()
.post("/createItem")
.then()
Expand All @@ -81,57 +68,48 @@ public void testCreateFreestyleProjectWithValidName() {
}

@Test
public void testCreatePiplineAndDisable() {
public void testRenameProject() {
Map<String, String> projectName = new HashMap<>();
projectName.put("name", "Pipline");

String bodyPiplineXML = """
<flow-definition plugin="workflow-job@1559.va_a_533730b_ea_d">
<keepDependencies>false</keepDependencies>
<properties/>
<triggers/>
<disabled>false</disabled>
</flow-definition>
""";
projectName.put("name", PROJECT_NAME);

RestAssured.given()
.log().all()
.auth().preemptive().basic(userName, apiToken)
.baseUri(jenkinsUrl)
.contentType(ContentType.XML)
.queryParams(projectName)
.body(bodyPiplineXML)
.body(bodyXML)
.when()
.post("/createItem")
.then()
.log().all()
.statusCode(200);

Response response = RestAssured.given()
RestAssured.given()
.log().all()
.auth().preemptive().basic(userName, apiToken)
.baseUri(jenkinsUrl)
.contentType("application/x-www-form-urlencoded")
.queryParam("newName", NEW_PROJECT_NAME)
.when()
.post("job/%s/disable".formatted(projectName.get("name")))
.post("job/%s/confirmRename".formatted(projectName.get("name")))
.then()
.log().all()
.extract().response();
.statusCode(302);

String location = response.getHeader("Location");

Response getResponse = RestAssured.given()
Response response = RestAssured.given()
.log().all()
.auth().preemptive().basic(userName, apiToken)
.baseUri(jenkinsUrl)
.when()
.get(location)
.get("job/%s/api/json".formatted(NEW_PROJECT_NAME))
.then()
.log().all()
.statusCode(200)
.extract().response();

String responseBody = getResponse.getBody().asString();

Assert.assertEquals(response.getStatusCode(), 302);
Assert.assertEquals(getResponse.getStatusCode(), 200);
Assert.assertTrue(responseBody.contains("This project is currently disabled"));
String actualProjectName = response.jsonPath().getString("name");
Assert.assertEquals(actualProjectName, NEW_PROJECT_NAME);
}

}
84 changes: 84 additions & 0 deletions src/test/java/school/redrover/api/APIJenkinsTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
package school.redrover.api;

import io.restassured.RestAssured;
import io.restassured.http.ContentType;
import io.restassured.response.Response;
import org.testng.Assert;
import org.testng.annotations.Test;
import school.redrover.common.APIBaseTest;

import java.util.HashMap;
import java.util.Map;

public class APIJenkinsTest extends APIBaseTest {

@Test
public void jenkinsTest() {
RestAssured.given()
.log().all()// ← добавил что бы смотреть, что отправляю и что получаю(в конце лог)
.when()
.auth()
.preemptive()
.basic(userName, apiToken)
.when()
.get(jenkinsUrl + "api/json")
.then()
.log().all()
.statusCode(200);
}

@Test
public void testCreatePiplineAndDisable() {
Map<String, String> projectName = new HashMap<>();
projectName.put("name", "Pipline");

String bodyPiplineXML = """
<flow-definition plugin="workflow-job@1559.va_a_533730b_ea_d">
<keepDependencies>false</keepDependencies>
<properties/>
<triggers/>
<disabled>false</disabled>
</flow-definition>
""";

RestAssured.given()
.auth().preemptive().basic(userName, apiToken)
.baseUri(jenkinsUrl)
.contentType(ContentType.XML)
.queryParams(projectName)
.body(bodyPiplineXML)
.when()
.post("/createItem")
.then()
.log().all()
.statusCode(200);

Response response = RestAssured.given()
.log().all()
.auth().preemptive().basic(userName, apiToken)
.baseUri(jenkinsUrl)
.when()
.post("job/%s/disable".formatted(projectName.get("name")))
.then()
.log().all()
.extract().response();

String location = response.getHeader("Location");

Response getResponse = RestAssured.given()
.auth().preemptive().basic(userName, apiToken)
.baseUri(jenkinsUrl)
.when()
.get(location)
.then()
.log().all()
.statusCode(200)
.extract().response();

String responseBody = getResponse.getBody().asString();

Assert.assertEquals(response.getStatusCode(), 302);
Assert.assertEquals(getResponse.getStatusCode(), 200);
Assert.assertTrue(responseBody.contains("This project is currently disabled"));
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package school.redrover;
package school.redrover.api;


import com.google.common.net.HttpHeaders;
Expand All @@ -14,7 +14,6 @@
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Base64;
import java.util.List;
import java.util.Objects;

Expand Down
17 changes: 9 additions & 8 deletions src/test/java/school/redrover/common/BasePage.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,16 @@
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

import school.redrover.component.common.JenkinsVersionFooterDropdown;
import school.redrover.component.common.SearchComponent;
import school.redrover.component.common.UserAccountIconDropdown;
import school.redrover.page.HomePage;
import school.redrover.page.JenkinsManagementPage;
import school.redrover.page.RestApiPage;
import school.redrover.page.UserStatusPage;
import school.redrover.ui.component.common.JenkinsVersionFooterDropdown;
import school.redrover.ui.component.common.SearchComponent;
import school.redrover.ui.component.common.UserAccountIconDropdown;
import school.redrover.ui.page.HomePage;
import school.redrover.ui.page.JenkinsManagementPage;
import school.redrover.ui.page.RestApiPage;
import school.redrover.ui.page.UserStatusPage;

import java.util.Objects;

Expand Down Expand Up @@ -74,7 +75,7 @@ public String getLogoText() {
}

public SearchComponent clickSearchButton() {
searchButton.click();
getWait10().until(ExpectedConditions.visibilityOf(searchButton)).click();

return new SearchComponent(getDriver()).waitUntilComponentLoad();
}
Expand Down
2 changes: 1 addition & 1 deletion src/test/java/school/redrover/common/CucumberTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

@CucumberOptions(
features = "src/test/resources/cucumber",
glue = {"school.redrover.cucumber", "school.redrover.common"},
glue = {"school.redrover.ui.cucumber", "school.redrover.common"},
plugin = {"pretty"},
tags = "not @ignore")
public class CucumberTest extends AbstractTestNGCucumberTests {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,8 @@ public void testModifiedTest() {
public void testClassWithDependencies() {
List<String> changedFiles = List.of("M=src/test/java/school/redrover/page/BaseProjectStatusPage.java");
String dependenciesClasses =
"school.redrover.page.BaseProjectStatusPage=%s;".formatted(FakeTestClass.class.getName()) +
"school.redrover.page.BaseProjectStatusPage=%s".formatted(FakeTestClass2.class.getName());
"school.redrover.ui.page.BaseProjectStatusPage=%s;".formatted(FakeTestClass.class.getName()) +
"school.redrover.ui.page.BaseProjectStatusPage=%s".formatted(FakeTestClass2.class.getName());

List<IMethodInstance> methodList = List.of(
new FilterMock.MethodInstanceImpl(FakeTestClass.class),
Expand All @@ -97,7 +97,7 @@ public void testClassWithDependencies() {
public void testOneDependency() {
List<String> changedFiles = List.of("M=src/test/java/school/redrover/page/ProjectStatusPage.java");
String dependenciesClasses =
"school.redrover.page.ProjectStatusPage=%s;".formatted(FakeTestClass.class.getName());
"school.redrover.ui.page.ProjectStatusPage=%s;".formatted(FakeTestClass.class.getName());

List<IMethodInstance> methodList = List.of(new FilterMock.MethodInstanceImpl(FakeTestClass.class));

Expand All @@ -115,8 +115,8 @@ public void testOneDependency() {
public void testClassWithDependencyChain() {
List<String> changedFiles = List.of("M=src/test/java/school/redrover/page/BaseProjectStatusPage.java");
String dependenciesClasses =
"school.redrover.page.BaseProjectStatusPage=school.redrover.page.ProjectStatusPage" +
"school.redrover.page.ProjectStatusPage=%s".formatted(FakeTestClass.class.getName());
"school.redrover.ui.page.BaseProjectStatusPage=school.redrover.ui.page.ProjectStatusPage" +
"school.redrover.ui.page.ProjectStatusPage=%s".formatted(FakeTestClass.class.getName());

List<IMethodInstance> methodList = List.of(
new FilterMock.MethodInstanceImpl(FakeTestClass.class)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package school.redrover;
package school.redrover.ui;

import org.testng.Assert;
import org.testng.annotations.Test;
import school.redrover.common.BaseTest;
import school.redrover.page.FolderStatusPage;
import school.redrover.page.HomePage;
import school.redrover.ui.page.FolderStatusPage;
import school.redrover.ui.page.HomePage;

import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package school.redrover;
package school.redrover.ui;

import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import school.redrover.common.BaseTest;
import school.redrover.page.BuildHistoryOfJenkinsPage;
import school.redrover.page.HomePage;
import school.redrover.ui.page.BuildHistoryOfJenkinsPage;
import school.redrover.ui.page.HomePage;

import java.util.Arrays;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package school.redrover;
package school.redrover.ui;

import org.testng.Assert;
import org.testng.annotations.Test;
import school.redrover.common.BaseTest;
import school.redrover.page.FreestyleProjectConfigurationPage;
import school.redrover.page.HomePage;
import school.redrover.ui.page.FreestyleProjectConfigurationPage;
import school.redrover.ui.page.HomePage;

import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package school.redrover;
package school.redrover.ui;

import org.testng.Assert;
import org.testng.annotations.Test;
import school.redrover.common.BaseTest;
import school.redrover.page.HomePage;
import school.redrover.ui.page.HomePage;


public class ConfigureAppearanceTest extends BaseTest {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package school.redrover;
package school.redrover.ui;

import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import school.redrover.common.BaseTest;
import school.redrover.page.HomePage;
import school.redrover.ui.page.HomePage;

import java.util.*;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package school.redrover;
package school.redrover.ui;

import org.testng.Assert;
import org.testng.annotations.Test;
import school.redrover.common.BaseTest;
import school.redrover.page.HomePage;
import school.redrover.ui.page.HomePage;

import java.util.List;

Expand Down
Loading