Skip to content

Commit e2c67f8

Browse files
Add queues and streams page and test suite
1 parent ce3429f commit e2c67f8

File tree

7 files changed

+130
-4
lines changed

7 files changed

+130
-4
lines changed

deps/rabbitmq_management/priv/www/js/tmpl/queues.ejs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11

22
<h1>Queues</h1>
3-
<div class="section">
3+
<div class="section" id="queues-paging-section">
44
<%= paginate_ui(queues, 'queues') %>
55
</div>
6-
<div class="updatable">
6+
<div class="updatable" id="queues-table-section">
77
<% if (queues.items.length > 0) { %>
88
<table class="list">
99
<thead>
@@ -222,7 +222,7 @@
222222
</div>
223223

224224
<% if (ac.canAccessVhosts()) { %>
225-
<div class="section-hidden">
225+
<div class="section-hidden" id="add-new-queue">
226226
<h2>Add a new queue</h2>
227227
<div class="hider">
228228
<form action="#/queues" method="put">
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/usr/bin/env bash
2+
3+
SCRIPT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
4+
5+
TEST_CASES_PATH=/queuesAndStreams
6+
TEST_CONFIG_PATH=/basic-auth
7+
8+
source $SCRIPT/../../bin/suite_template $@
9+
run
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const { By, Key, until, Builder } = require('selenium-webdriver')
2+
3+
const BasePage = require('./BasePage')
4+
5+
6+
const QUEUE_NAME = By.css('div#main h1 p')
7+
8+
9+
module.exports = class QueuePage extends BasePage {
10+
async isLoaded() {
11+
return this.waitForDisplayed(QUEUE_NAME)
12+
}
13+
async getName() {
14+
return this.getText(QUEUE_NAME)
15+
}
16+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
const { By, Key, until, Builder } = require('selenium-webdriver')
2+
3+
const BasePage = require('./BasePage')
4+
5+
6+
const PAGING_SECTION = By.css('div#queues-paging-section')
7+
const PAGING_SECTION_HEADER = By.css('div#queues-paging-section h2')
8+
const ADD_NEW_QUEUE_SECTION = By.css('div#add-new-queue')
9+
10+
const TABLE_SECTION = By.css('div#queues-table-section table')
11+
12+
module.exports = class QueuesAndStreamsPage extends BasePage {
13+
async isLoaded () {
14+
return this.waitForDisplayed(PAGING_SECTION)
15+
}
16+
async getPagingSectionHeaderText() {
17+
return this.getText(PAGING_SECTION_HEADER)
18+
}
19+
async getQueuesTable(firstNColumns) {
20+
return this.getTable(TABLE_SECTION, firstNColumns)
21+
}
22+
async clickOnQueue(vhost, name) {
23+
return this.click(By.css(
24+
"div#queues-table-section table tbody tr td a[href='#/queue/" + vhost + "/" + name + "']"))
25+
}
26+
async ensureAddQueueSectionIsVisible() {
27+
if (!await this.isDisplayed(ADD_NEW_QUEUE_SECTION)) {
28+
console.log("add new queue section is not visible")
29+
return this.click(ADD_NEW_QUEUE_SECTION)
30+
}else {
31+
console.log("add new queue section is visible")
32+
}
33+
}
34+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const { By, Key, until, Builder } = require('selenium-webdriver')
2+
3+
const BasePage = require('./BasePage')
4+
5+
6+
const STREAM_NAME = By.css('div#main h1 p')
7+
8+
9+
module.exports = class StreamPage extends BasePage {
10+
async isLoaded() {
11+
return this.waitForDisplayed(STREAM_NAME)
12+
}
13+
async getName() {
14+
return this.getText(STREAM_NAME)
15+
}
16+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
const { By, Key, until, Builder } = require('selenium-webdriver')
2+
require('chromedriver')
3+
const assert = require('assert')
4+
const { buildDriver, goToHome, captureScreensFor, teardown, delay } = require('../utils')
5+
6+
const LoginPage = require('../pageobjects/LoginPage')
7+
const OverviewPage = require('../pageobjects/OverviewPage')
8+
const QueuesAndStreamsPage = require('../pageobjects/QueuesAndStreamsPage')
9+
const QueuePage = require('../pageobjects/QueuePage')
10+
const StreamPage = require('../pageobjects/StreamPage')
11+
12+
describe('Queues and Streams management', function () {
13+
let login
14+
let queuesAndStreams
15+
let queue
16+
let stream
17+
let overview
18+
let captureScreen
19+
20+
before(async function () {
21+
driver = buildDriver()
22+
await goToHome(driver)
23+
login = new LoginPage(driver)
24+
overview = new OverviewPage(driver)
25+
queuesAndStreams = new QueuesAndStreamsPage(driver)
26+
queue = new QueuePage(driver)
27+
stream = new StreamPage(driver)
28+
captureScreen = captureScreensFor(driver, __filename)
29+
30+
await login.login('guest', 'guest')
31+
if (!await overview.isLoaded()) {
32+
throw new Error('Failed to login')
33+
}
34+
overview.clickOnQueuesTab()
35+
})
36+
37+
it('display summary of queues and streams', async function () {
38+
assert.equal("All queues (0)", await queuesAndStreams.getPagingSectionHeaderText())
39+
})
40+
41+
it('add queue and view it', async function () {
42+
await queuesAndStreams.ensureAddQueueSectionIsVisible()
43+
44+
})
45+
46+
after(async function () {
47+
await teardown(driver, this, captureScreen)
48+
})
49+
})

selenium/test/utils.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,9 @@ module.exports = {
6262
chromeCapabilities.set('goog:chromeOptions', {
6363
args: [
6464
"--lang=en",
65-
"--disable-search-engine-choice-screen"
65+
"--disable-search-engine-choice-screen",
66+
"--disable-popup-blocking",
67+
"--credentials_enable_service=false"
6668
]
6769
});
6870
driver = builder

0 commit comments

Comments
 (0)