Skip to content

Commit f9e24d6

Browse files
committed
[EAPQE-2410] :Add test to verify AJP Listener allowed-request-attributes-pattern
1 parent 5e694bd commit f9e24d6

2 files changed

Lines changed: 76 additions & 8 deletions

File tree

packages/testsuite/cypress.config.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@ export default defineConfig({
1919
"start:wildfly:container": ({ name, configuration, useNetworkHostMode }) => {
2020
return new Promise((resolve, reject) => {
2121
let portOffset = 0;
22+
let wildflyCmdParameters = ["-c", configuration || "standalone-insecure.xml"];
23+
if (process.env.WILDFLY_STABILITY_LEVEL) {
24+
wildflyCmdParameters.push("--stability=" + process.env.WILDFLY_STABILITY_LEVEL);
25+
}
26+
console.log(wildflyCmdParameters as String[]);
2227
const wildfly = new GenericContainer(
2328
process.env.WILDFLY_IMAGE || "quay.io/halconsole/wildfly-development:latest"
2429
)
@@ -35,16 +40,11 @@ export default defineConfig({
3540
.withStartupTimeout(333000);
3641
if (useNetworkHostMode === true) {
3742
console.log("host mode");
43+
wildflyCmdParameters.push(`-Djboss.socket.binding.port-offset=${portOffset.toString()}`);
3844
findAPortNotInUse(8080, 8180)
3945
.then((freePort) => {
4046
portOffset = freePort - 8080;
41-
wildfly
42-
.withNetworkMode("host")
43-
.withCommand([
44-
"-c",
45-
configuration || "standalone-insecure.xml",
46-
`-Djboss.socket.binding.port-offset=${portOffset.toString()}`,
47-
] as string[]);
47+
wildfly.withNetworkMode("host").withCommand(wildflyCmdParameters as string[]);
4848
})
4949
.catch((error) => {
5050
console.log(error);
@@ -55,7 +55,7 @@ export default defineConfig({
5555
.withNetworkMode(config.env.NETWORK_NAME as string)
5656
.withNetworkAliases("wildfly")
5757
.withExposedPorts(9990)
58-
.withCommand(["-c", configuration || "standalone-insecure.xml"] as string[]);
58+
.withCommand(wildflyCmdParameters as string[]);
5959
}
6060
wildfly
6161
.start()
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
describe("TESTS: Configuration => Subsystem => Undertow => Global settings", () => {
2+
let managementEndpoint: string;
3+
4+
const testValues = {
5+
serverName: "default-server",
6+
ajpListener: "test-ajp",
7+
ajpSocketBindings: "ajp",
8+
allowedReqAttrsPatternExpression: "${NON-EXISTING:value.*}",
9+
allowedReqAttrsPatternResolved: "value.*",
10+
};
11+
const address = ["subsystem", "undertow", "server", testValues.serverName, "ajp-listener", testValues.ajpListener];
12+
const serverSelectors = {
13+
serverListenersItem: "#undertow-server-listener-item",
14+
ajpListenerItem: "#undertow-server-ajp-listener-item",
15+
};
16+
const ajpListenerPageSelectors = {
17+
ajpListenersTableId: "undertow-server-ajp-listener-table",
18+
};
19+
const ajpListenerForm = {
20+
id: "undertow-server-ajp-listener-form",
21+
allowedReqAttrsPattern: "allowed-request-attributes-pattern",
22+
};
23+
24+
before(() => {
25+
cy.startWildflyContainer()
26+
.then((result) => {
27+
managementEndpoint = result as string;
28+
})
29+
.then(() => {
30+
// create fixtures
31+
cy.task("execute:cli", {
32+
managementApi: managementEndpoint + "/management",
33+
address: address,
34+
operation: "add",
35+
"socket-binding": testValues.ajpSocketBindings,
36+
});
37+
});
38+
});
39+
40+
after(() => {
41+
cy.task("stop:containers");
42+
});
43+
44+
beforeEach(() => {
45+
cy.navigateTo(managementEndpoint, "undertow-server;name=default-server");
46+
// the form takes a brief moment to initialize
47+
cy.wait(200);
48+
cy.get(serverSelectors.serverListenersItem).click();
49+
cy.get(serverSelectors.ajpListenerItem).click();
50+
});
51+
52+
it("Test AJP Listener: allowed request attributes pattern", () => {
53+
cy.selectInTable(ajpListenerPageSelectors.ajpListenersTableId, testValues.ajpListener);
54+
55+
cy.editForm(ajpListenerForm.id);
56+
cy.text(ajpListenerForm.id, ajpListenerForm.allowedReqAttrsPattern, testValues.allowedReqAttrsPatternExpression, {
57+
parseSpecialCharSequences: false,
58+
});
59+
cy.saveForm(ajpListenerForm.id);
60+
cy.verifySuccess();
61+
cy.verifyAttributeAsExpression(
62+
managementEndpoint,
63+
["subsystem", "undertow", "server", testValues.serverName, "ajp-listener", testValues.ajpListener],
64+
ajpListenerForm.allowedReqAttrsPattern,
65+
testValues.allowedReqAttrsPatternExpression
66+
);
67+
});
68+
});

0 commit comments

Comments
 (0)