import { Helper } from '../helper.po';
-import { ImagesPage } from './images.po';
describe('Images page', () => {
- let page: ImagesPage;
+ let images;
beforeAll(() => {
- page = new ImagesPage();
+ images = new Helper().images;
});
afterEach(() => {
describe('breadcrumb and tab tests', () => {
beforeAll(() => {
- page.navigateTo();
+ images.navigateTo();
});
it('should open and show breadcrumb', () => {
- expect(ImagesPage.getBreadcrumbText()).toEqual('Images');
+ expect(images.getBreadcrumbText()).toEqual('Images');
});
it('should show three tabs', () => {
- expect(ImagesPage.getTabsCount()).toEqual(3);
+ expect(images.getTabsCount()).toEqual(3);
});
it('should show text for all tabs', () => {
- expect(ImagesPage.getTabText(0)).toEqual('Images');
- expect(ImagesPage.getTabText(1)).toEqual('Trash');
- expect(ImagesPage.getTabText(2)).toEqual('Overall Performance');
+ expect(images.getTabText(0)).toEqual('Images');
+ expect(images.getTabText(1)).toEqual('Trash');
+ expect(images.getTabText(2)).toEqual('Overall Performance');
});
});
});
import { PageHelper } from '../page-helper.po';
-export class ImagesPage extends PageHelper {
+export class ImagesPageHelper extends PageHelper {
pages = { index: '/#/block/rbd' };
}
import { Helper } from '../helper.po';
-import { IscsiPage } from './iscsi.po';
describe('Iscsi Page', () => {
- let page: IscsiPage;
+ let iscsi;
beforeAll(() => {
- page = new IscsiPage();
+ iscsi = new Helper().iscsi;
});
afterEach(() => {
describe('breadcrumb test', () => {
beforeAll(() => {
- page.navigateTo();
+ iscsi.navigateTo();
});
it('should open and show breadcrumb', () => {
- expect(IscsiPage.getBreadcrumbText()).toEqual('Overview');
+ expect(iscsi.getBreadcrumbText()).toEqual('Overview');
});
});
});
import { PageHelper } from '../page-helper.po';
-export class IscsiPage extends PageHelper {
+export class IscsiPageHelper extends PageHelper {
pages = { index: '/#/block/iscsi/overview' };
}
import { Helper } from '../helper.po';
-import { MirroringPage } from './mirroring.po';
describe('Mirroring page', () => {
- let page: MirroringPage;
+ let mirroring;
beforeAll(() => {
- page = new MirroringPage();
+ mirroring = new Helper().mirroring;
});
afterEach(() => {
describe('breadcrumb and tab tests', () => {
beforeAll(() => {
- page.navigateTo();
+ mirroring.navigateTo();
});
it('should open and show breadcrumb', () => {
- expect(MirroringPage.getBreadcrumbText()).toEqual('Mirroring');
+ expect(mirroring.getBreadcrumbText()).toEqual('Mirroring');
});
it('should show three tabs', () => {
- expect(MirroringPage.getTabsCount()).toEqual(3);
+ expect(mirroring.getTabsCount()).toEqual(3);
});
it('should show text for all tabs', () => {
- expect(MirroringPage.getTabText(0)).toEqual('Issues');
- expect(MirroringPage.getTabText(1)).toEqual('Syncing');
- expect(MirroringPage.getTabText(2)).toEqual('Ready');
+ expect(mirroring.getTabText(0)).toEqual('Issues');
+ expect(mirroring.getTabText(1)).toEqual('Syncing');
+ expect(mirroring.getTabText(2)).toEqual('Ready');
});
});
});
import { PageHelper } from '../page-helper.po';
-export class MirroringPage extends PageHelper {
+export class MirroringPageHelper extends PageHelper {
pages = { index: '/#/block/mirroring' };
}
import { Helper } from '../helper.po';
-import { AlertsPage } from './alerts.po';
describe('Alerts page', () => {
- let page: AlertsPage;
+ let alerts;
beforeAll(() => {
- page = new AlertsPage();
+ alerts = new Helper().alerts;
});
afterEach(() => {
describe('breadcrumb test', () => {
beforeAll(() => {
- page.navigateTo();
+ alerts.navigateTo();
});
it('should open and show breadcrumb', () => {
- expect(AlertsPage.getBreadcrumbText()).toEqual('Alerts');
+ expect(alerts.getBreadcrumbText()).toEqual('Alerts');
});
});
});
import { PageHelper } from '../page-helper.po';
-export class AlertsPage extends PageHelper {
+export class AlertsPageHelper extends PageHelper {
pages = { index: '/#/alerts' };
}
import { Helper } from '../helper.po';
-import { ConfigurationPage } from './configuration.po';
describe('Configuration page', () => {
- let page: ConfigurationPage;
+ let configuration;
beforeAll(() => {
- page = new ConfigurationPage();
+ configuration = new Helper().configuration;
});
afterEach(() => {
describe('breadcrumb test', () => {
beforeAll(() => {
- page.navigateTo();
+ configuration.navigateTo();
});
it('should open and show breadcrumb', () => {
- expect(ConfigurationPage.getBreadcrumbText()).toEqual('Configuration');
+ expect(configuration.getBreadcrumbText()).toEqual('Configuration');
});
});
});
import { PageHelper } from '../page-helper.po';
-export class ConfigurationPage extends PageHelper {
+export class ConfigurationPageHelper extends PageHelper {
pages = { index: '/#/configuration' };
}
import { Helper } from '../helper.po';
-import { CrushMapPage } from './crush-map.po';
describe('CRUSH map page', () => {
- let page: CrushMapPage;
+ let crushmap;
beforeAll(() => {
- page = new CrushMapPage();
+ crushmap = new Helper().crushmap;
});
afterEach(() => {
describe('breadcrumb test', () => {
beforeAll(() => {
- page.navigateTo();
+ crushmap.navigateTo();
});
it('should open and show breadcrumb', () => {
- expect(CrushMapPage.getBreadcrumbText()).toEqual('CRUSH map');
+ expect(crushmap.getBreadcrumbText()).toEqual('CRUSH map');
});
});
});
import { PageHelper } from '../page-helper.po';
-export class CrushMapPage extends PageHelper {
+export class CrushMapPageHelper extends PageHelper {
pages = { index: '/#/crush-map' };
}
import { Helper } from '../helper.po';
-import { HostsPage } from './hosts.po';
describe('Hosts page', () => {
- let page: HostsPage;
+ let hosts;
beforeAll(() => {
- page = new HostsPage();
+ hosts = new Helper().hosts;
});
afterEach(() => {
describe('breadcrumb and tab tests', () => {
beforeAll(() => {
- page.navigateTo();
+ hosts.navigateTo();
});
it('should open and show breadcrumb', () => {
- expect(HostsPage.getBreadcrumbText()).toEqual('Hosts');
+ expect(hosts.getBreadcrumbText()).toEqual('Hosts');
});
it('should show two tabs', () => {
- expect(HostsPage.getTabsCount()).toEqual(2);
+ expect(hosts.getTabsCount()).toEqual(2);
});
it('should show hosts list tab at first', () => {
- expect(HostsPage.getTabText(0)).toEqual('Hosts List');
+ expect(hosts.getTabText(0)).toEqual('Hosts List');
});
it('should show overall performance as a second tab', () => {
- expect(HostsPage.getTabText(1)).toEqual('Overall Performance');
+ expect(hosts.getTabText(1)).toEqual('Overall Performance');
});
});
});
import { PageHelper } from '../page-helper.po';
-export class HostsPage extends PageHelper {
+export class HostsPageHelper extends PageHelper {
pages = { index: '/#/hosts' };
}
import { Helper } from '../helper.po';
-import { LogsPage } from './logs.po';
describe('Logs page', () => {
- let page: LogsPage;
+ let logs;
beforeAll(() => {
- page = new LogsPage();
+ logs = new Helper().logs;
});
afterEach(() => {
describe('breadcrumb and tab tests', () => {
beforeAll(() => {
- page.navigateTo();
+ logs.navigateTo();
});
it('should open and show breadcrumb', () => {
- expect(LogsPage.getBreadcrumbText()).toEqual('Logs');
+ expect(logs.getBreadcrumbText()).toEqual('Logs');
});
it('should show two tabs', () => {
- expect(LogsPage.getTabsCount()).toEqual(2);
+ expect(logs.getTabsCount()).toEqual(2);
});
it('should show cluster logs tab at first', () => {
- expect(LogsPage.getTabText(0)).toEqual('Cluster Logs');
+ expect(logs.getTabText(0)).toEqual('Cluster Logs');
});
it('should show audit logs as a second tab', () => {
- expect(LogsPage.getTabText(1)).toEqual('Audit Logs');
+ expect(logs.getTabText(1)).toEqual('Audit Logs');
});
});
});
browser.ignoreSynchronization = true;
-export class LogsPage extends PageHelper {
+export class LogsPageHelper extends PageHelper {
pages = { index: '/#/logs' };
}
import { Helper } from '../helper.po';
-import { ManagerModulesPage } from './mgr-modules.po';
describe('Manager modules page', () => {
- let page: ManagerModulesPage;
+ let mgrmodules;
beforeAll(() => {
- page = new ManagerModulesPage();
+ mgrmodules = new Helper().mgrmodules;
});
afterEach(() => {
describe('breadcrumb test', () => {
beforeAll(() => {
- page.navigateTo();
+ mgrmodules.navigateTo();
});
it('should open and show breadcrumb', () => {
- expect(ManagerModulesPage.getBreadcrumbText()).toEqual('Manager modules');
+ expect(mgrmodules.getBreadcrumbText()).toEqual('Manager modules');
});
});
});
import { PageHelper } from '../page-helper.po';
-export class ManagerModulesPage extends PageHelper {
+export class ManagerModulesPageHelper extends PageHelper {
pages = { index: '/#/mgr-modules' };
}
import { Helper } from '../helper.po';
-import { MonitorsPage } from './monitors.po';
describe('Monitors page', () => {
- let page: MonitorsPage;
+ let monitors;
beforeAll(() => {
- page = new MonitorsPage();
+ monitors = new Helper().monitors;
});
afterEach(() => {
describe('breadcrumb test', () => {
beforeAll(() => {
- page.navigateTo();
+ monitors.navigateTo();
});
it('should open and show breadcrumb', () => {
- expect(MonitorsPage.getBreadcrumbText()).toEqual('Monitors');
+ expect(monitors.getBreadcrumbText()).toEqual('Monitors');
});
});
});
import { PageHelper } from '../page-helper.po';
-export class MonitorsPage extends PageHelper {
+export class MonitorsPageHelper extends PageHelper {
pages = { index: '/#/monitor' };
}
import { Helper } from '../helper.po';
-import { OSDsPage } from './osds.po';
describe('OSDs page', () => {
- let page: OSDsPage;
+ let osds;
beforeAll(() => {
- page = new OSDsPage();
+ osds = new Helper().osds;
});
afterEach(() => {
describe('breadcrumb and tab tests', () => {
beforeAll(() => {
- page.navigateTo();
+ osds.navigateTo();
});
it('should open and show breadcrumb', () => {
- expect(OSDsPage.getBreadcrumbText()).toEqual('OSDs');
+ expect(osds.getBreadcrumbText()).toEqual('OSDs');
});
it('should show two tabs', () => {
- expect(OSDsPage.getTabsCount()).toEqual(2);
+ expect(osds.getTabsCount()).toEqual(2);
});
it('should show OSDs list tab at first', () => {
- expect(OSDsPage.getTabText(0)).toEqual('OSDs List');
+ expect(osds.getTabText(0)).toEqual('OSDs List');
});
it('should show overall performance as a second tab', () => {
- expect(OSDsPage.getTabText(1)).toEqual('Overall Performance');
+ expect(osds.getTabText(1)).toEqual('Overall Performance');
});
});
});
import { PageHelper } from '../page-helper.po';
-export class OSDsPage extends PageHelper {
+export class OSDsPageHelper extends PageHelper {
pages = { index: '/#/osd' };
}
import { Helper } from '../helper.po';
-import { FilesystemsPage } from './filesystems.po';
describe('Filesystems page', () => {
- let page: FilesystemsPage;
+ let filesystems;
beforeAll(() => {
- page = new FilesystemsPage();
+ filesystems = new Helper().filesystems;
});
afterEach(() => {
describe('breadcrumb test', () => {
beforeAll(() => {
- page.navigateTo();
+ filesystems.navigateTo();
});
it('should open and show breadcrumb', () => {
- expect(FilesystemsPage.getBreadcrumbText()).toEqual('Filesystems');
+ expect(filesystems.getBreadcrumbText()).toEqual('Filesystems');
});
});
});
import { PageHelper } from '../page-helper.po';
-export class FilesystemsPage extends PageHelper {
+export class FilesystemsPageHelper extends PageHelper {
pages = { index: '/#/cephfs' };
}
import { browser } from 'protractor';
+import { ImagesPageHelper } from './block/images.po';
+import { IscsiPageHelper } from './block/iscsi.po';
+import { MirroringPageHelper } from './block/mirroring.po';
+import { AlertsPageHelper } from './cluster/alerts.po';
+import { ConfigurationPageHelper } from './cluster/configuration.po';
+import { CrushMapPageHelper } from './cluster/crush-map.po';
+import { HostsPageHelper } from './cluster/hosts.po';
+import { LogsPageHelper } from './cluster/logs.po';
+import { ManagerModulesPageHelper } from './cluster/mgr-modules.po';
+import { MonitorsPageHelper } from './cluster/monitors.po';
+import { OSDsPageHelper } from './cluster/osds.po';
+import { FilesystemsPageHelper } from './filesystems/filesystems.po';
+import { NfsPageHelper } from './nfs/nfs.po';
import { PoolPageHelper } from './pools/pools.po';
import { BucketsPageHelper } from './rgw/buckets.po';
+import { DaemonsPageHelper } from './rgw/daemons.po';
+import { UsersPageHelper } from './rgw/users.po';
export class Helper {
static EC = browser.ExpectedConditions;
- static TIMEOUT = 30000;
+ static TIMEOUT = 10000;
buckets: BucketsPageHelper;
+ daemons: DaemonsPageHelper;
+ users: UsersPageHelper;
pools: PoolPageHelper;
+ nfs: NfsPageHelper;
+ filesystems: FilesystemsPageHelper;
+ alerts: AlertsPageHelper;
+ configuration: ConfigurationPageHelper;
+ crushmap: CrushMapPageHelper;
+ hosts: HostsPageHelper;
+ logs: LogsPageHelper;
+ mgrmodules: ManagerModulesPageHelper;
+ monitors: MonitorsPageHelper;
+ osds: OSDsPageHelper;
+ images: ImagesPageHelper;
+ iscsi: IscsiPageHelper;
+ mirroring: MirroringPageHelper;
constructor() {
this.buckets = new BucketsPageHelper();
+ this.daemons = new DaemonsPageHelper();
+ this.users = new UsersPageHelper();
this.pools = new PoolPageHelper();
+ this.nfs = new NfsPageHelper();
+ this.filesystems = new FilesystemsPageHelper();
+ this.alerts = new AlertsPageHelper();
+ this.configuration = new ConfigurationPageHelper();
+ this.crushmap = new CrushMapPageHelper();
+ this.hosts = new HostsPageHelper();
+ this.logs = new LogsPageHelper();
+ this.mgrmodules = new ManagerModulesPageHelper();
+ this.monitors = new MonitorsPageHelper();
+ this.osds = new OSDsPageHelper();
+ this.images = new ImagesPageHelper();
+ this.iscsi = new IscsiPageHelper();
+ this.mirroring = new MirroringPageHelper();
}
/**
import { Helper } from '../helper.po';
-import { NfsPage } from './nfs.po';
describe('Nfs page', () => {
- let page: NfsPage;
+ let nfs;
beforeAll(() => {
- page = new NfsPage();
+ nfs = new Helper().nfs;
});
afterEach(() => {
describe('breadcrumb test', () => {
beforeAll(() => {
- page.navigateTo();
+ nfs.navigateTo();
});
it('should open and show breadcrumb', () => {
- expect(NfsPage.getBreadcrumbText()).toEqual('NFS');
+ expect(nfs.getBreadcrumbText()).toEqual('NFS');
});
});
});
import { PageHelper } from '../page-helper.po';
-export class NfsPage extends PageHelper {
+export class NfsPageHelper extends PageHelper {
pages = { index: '/#/nfs' };
}
export abstract class PageHelper {
pages: Pages;
- static getBreadcrumbText() {
+ /**
+ * Decorator to be used on Helper methods to restrict access to one
+ * particular URL. This shall help developers to prevent and highlight
+ * mistakes. It also reduces boilerplate code and by thus, increases
+ * readability.
+ */
+ static restrictTo(page): any {
+ return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {
+ const fn: Function = descriptor.value;
+ descriptor.value = function(...args) {
+ return browser
+ .getCurrentUrl()
+ .then((url) =>
+ url.endsWith(page)
+ ? fn.apply(this, args)
+ : promise.Promise.reject(
+ `Method ${target.constructor.name}::${propertyKey} is supposed to be ` +
+ `run on path "${page}", but was run on URL "${url}"`
+ )
+ );
+ };
+ };
+ }
+
+ getBreadcrumbText() {
return $('.breadcrumb-item.active').getText();
}
- static getTabText(idx) {
+ getTabText(idx) {
return $$('.nav.nav-tabs li')
.get(idx)
.getText();
}
- static getTableCount() {
+ getTableCount() {
return $('.datatable-footer-inner.selected-count');
}
- static getTitleText() {
+ getTitleText() {
let title;
return browser
.wait(() => {
.then(() => title.getText());
}
- static getTableCell(content) {
+ getTableCell(content) {
return element(by.cssContainingText('.datatable-body-cell-label', content));
}
- static getTable() {
+ getTable() {
return element.all(by.css('.datatable-body'));
}
- static getTabsCount() {
+ getTabsCount() {
return $$('.nav.nav-tabs li').count();
}
- static getFirstTableCellWithText(content) {
+ getFirstTableCellWithText(content) {
return element.all(by.cssContainingText('.datatable-body-cell-label', content)).first();
}
*
* https://stackoverflow.com/questions/26211751/protractor-chrome-driver-element-is-not-clickable-at-point
*/
- static moveClick(object) {
+ moveClick(object) {
return browser
.actions()
.mouseMove(object)
* means if after the search for content has been completed, but more than a
* single row is shown in the data table.
*/
- static getTableCellByContent(content: string): promise.Promise<ElementFinder> {
+ getTableCellByContent(content: string): promise.Promise<ElementFinder> {
const searchInput = $('#pool-list > div .search input');
const rowAmountInput = $('#pool-list > div > div > .dataTables_paginate input');
const footer = $('#pool-list > div datatable-footer');
});
}
- /**
- * Decorator to be used on Helper methods to restrict access to one
- * particular URL. This shall help developers to prevent and highlight
- * mistakes. It also reduces boilerplate code and by thus, increases
- * readability.
- */
- static restrictTo(page): any {
- return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {
- const fn: Function = descriptor.value;
- descriptor.value = function(...args) {
- return browser
- .getCurrentUrl()
- .then((url) =>
- url.endsWith(page)
- ? fn.apply(this, args)
- : promise.Promise.reject(
- `Method ${target.constructor.name}::${propertyKey} is supposed to be ` +
- `run on path "${page}", but was run on URL "${url}"`
- )
- );
- };
- };
- }
-
navigateTo(page = null) {
page = page || 'index';
const url = this.pages[page];
import { Helper } from '../helper.po';
-import { PoolPageHelper } from './pools.po';
describe('Pools page', () => {
- let page: PoolPageHelper;
- let helper: Helper;
+ let pools;
const poolName = 'pool_e2e_pool_test';
beforeAll(() => {
- page = new PoolPageHelper();
- helper = new Helper();
- page.navigateTo();
+ pools = new Helper().pools;
+ pools.navigateTo();
});
afterEach(() => {
describe('breadcrumb and tab tests', () => {
it('should open and show breadcrumb', () => {
- expect(PoolPageHelper.getBreadcrumbText()).toEqual('Pools');
+ expect(pools.getBreadcrumbText()).toEqual('Pools');
});
it('should show two tabs', () => {
- expect(PoolPageHelper.getTabsCount()).toEqual(2);
+ expect(pools.getTabsCount()).toEqual(2);
});
it('should show pools list tab at first', () => {
- expect(PoolPageHelper.getTabText(0)).toEqual('Pools List');
+ expect(pools.getTabText(0)).toEqual('Pools List');
});
it('should show overall performance as a second tab', () => {
- expect(PoolPageHelper.getTabText(1)).toEqual('Overall Performance');
+ expect(pools.getTabText(1)).toEqual('Overall Performance');
});
});
it('should create a pool', () => {
- helper.pools.exist(poolName, false).then(() => {
- helper.pools.navigateTo('create');
- helper.pools.create(poolName, 8).then(() => {
- helper.pools.navigateTo();
- helper.pools.exist(poolName, true);
+ pools.exist(poolName, false).then(() => {
+ pools.navigateTo('create');
+ pools.create(poolName, 8).then(() => {
+ pools.navigateTo();
+ pools.exist(poolName, true);
});
});
});
it('should delete a pool', () => {
- helper.pools.exist(poolName);
- helper.pools.delete(poolName).then(() => {
- helper.pools.navigateTo();
- helper.pools.exist(poolName, false);
+ pools.exist(poolName);
+ pools.delete(poolName).then(() => {
+ pools.navigateTo();
+ pools.exist(poolName, false);
});
});
});
@PageHelper.restrictTo(pages.index)
exist(name: string, oughtToBePresent = true): promise.Promise<any> {
- return PageHelper.getTableCellByContent(name).then((elem) => {
+ return this.getTableCellByContent(name).then((elem) => {
const waitFn = oughtToBePresent ? EC.visibilityOf(elem) : EC.invisibilityOf(elem);
return browser.wait(waitFn, Helper.TIMEOUT).catch(() => {
const visibility = oughtToBePresent ? 'invisible' : 'visible';
@PageHelper.restrictTo(pages.index)
delete(name: string): promise.Promise<any> {
- return PoolPageHelper.getTableCellByContent(name).then((tableCell: ElementFinder) => {
+ return this.getTableCellByContent(name).then((tableCell: ElementFinder) => {
return tableCell.click().then(() => {
return $('.table-actions button.dropdown-toggle') // open submenu
.click()
browser
.wait(() => EC.visibilityOf(getConfirmationCheckbox()), Helper.TIMEOUT)
.then(() => {
- PageHelper.moveClick(getConfirmationCheckbox()).then(() => {
+ this.moveClick(getConfirmationCheckbox()).then(() => {
return element(by.cssContainingText('button', 'Delete Pool')).click(); // Click Delete item
});
});
import { Helper } from '../helper.po';
-import { PageHelper } from '../page-helper.po';
-import { BucketsPageHelper } from './buckets.po';
describe('RGW buckets page', () => {
- let buckets: BucketsPageHelper;
+ let buckets;
beforeAll(() => {
buckets = new Helper().buckets;
describe('breadcrumb test', () => {
it('should open and show breadcrumb', () => {
- expect(PageHelper.getBreadcrumbText()).toEqual('Buckets');
+ expect(buckets.getBreadcrumbText()).toEqual('Buckets');
});
});
'0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef',
'default-placement'
);
- expect(PageHelper.getTableCell('000test').isPresent()).toBe(true);
+ expect(buckets.getTableCell('000test').isPresent()).toBe(true);
});
it('should edit bucket', () => {
buckets.edit('000test', 'dev');
- expect(PageHelper.getTable().getText()).toMatch('dev');
+ expect(buckets.getTable().getText()).toMatch('dev');
});
it('should delete bucket', () => {
buckets.delete('000test');
- expect(PageHelper.getTableCell('000test').isPresent()).toBe(false);
+ expect(buckets.getTableCell('000test').isPresent()).toBe(false);
});
});
const createButton = element(by.cssContainingText('button', 'Create Bucket'));
createButton.click().then(() => {
browser.wait(
- Helper.EC.presenceOf(PageHelper.getTableCell(name)),
+ Helper.EC.presenceOf(this.getTableCell(name)),
Helper.TIMEOUT,
'Timed out waiting for bucket creation'
);
edit(name, new_owner) {
this.navigateTo();
- browser.wait(Helper.EC.elementToBeClickable(PageHelper.getTableCell(name)), 10000); // wait for table to load
- PageHelper.getTableCell(name).click(); // click on the bucket you want to edit in the table
+ browser.wait(Helper.EC.elementToBeClickable(this.getTableCell(name)), 10000); // wait for table to load
+ this.getTableCell(name).click(); // click on the bucket you want to edit in the table
element(by.cssContainingText('button', 'Edit')).click(); // click button to move to edit page
- expect(PageHelper.getBreadcrumbText()).toEqual('Edit');
+ expect(this.getBreadcrumbText()).toEqual('Edit');
expect(element(by.css('input[name=placement-target]')).getAttribute('value')).toBe(
'default-placement'
editbutton.click().then(() => {
// wait to be back on buckets page with table visible
browser.wait(
- Helper.EC.elementToBeClickable(PageHelper.getTableCell(name)),
+ Helper.EC.elementToBeClickable(this.getTableCell(name)),
10000,
'Could not return to buckets page and load table after editing bucket'
);
// click on edited bucket and check its details table for edited owner field
- PageHelper.getTableCell(name).click();
+ this.getTableCell(name).click();
const element_details_table = element
.all(by.css('.table.table-striped.table-bordered'))
.first();
this.navigateTo();
// wait for table to load
- browser.wait(Helper.EC.elementToBeClickable(PageHelper.getTableCell(name)), 10000);
+ browser.wait(Helper.EC.elementToBeClickable(this.getTableCell(name)), 10000);
- PageHelper.getTableCell(name).click(); // click on the bucket you want to delete in the table
+ this.getTableCell(name).click(); // click on the bucket you want to delete in the table
$('.table-actions button.dropdown-toggle').click(); // click toggle menu
$('li.delete a').click(); // click delete
// wait for pop-up to be visible (checks for title of pop-up)
.click()
.then(() => {
this.navigateTo();
- browser.wait(Helper.EC.not(Helper.EC.presenceOf(PageHelper.getTableCell(name))), 10000);
+ browser.wait(Helper.EC.not(Helper.EC.presenceOf(this.getTableCell(name))), 10000);
});
});
}
invalidCreate() {
this.navigateTo('create');
- expect(PageHelper.getBreadcrumbText()).toEqual('Create');
+ expect(this.getBreadcrumbText()).toEqual('Create');
const nameInputField = element(by.id('bid')); // Grabs name box field
const ownerDropDown = element(by.id('owner')); // Grab owner field
// Gives an invalid name (too short), then waits for dashboard to determine validity
nameInputField.sendKeys('rq');
- PageHelper.moveClick(ownerDropDown); // To trigger a validation
+ this.moveClick(ownerDropDown); // To trigger a validation
browser.wait(
function() {
);
// Test invalid owner input
- PageHelper.moveClick(ownerDropDown); // Clicks the Owner drop down on the Create Bucket page
+ this.moveClick(ownerDropDown); // Clicks the Owner drop down on the Create Bucket page
// select some valid option. The owner drop down error message will not appear unless a valid user was selected at
// one point before the invalid placeholder user is selected.
element(by.cssContainingText('select[name=owner] option', 'dev')).click();
- PageHelper.moveClick(ownerDropDown); // Clicks the Owner drop down on the Create Bucket page
+ this.moveClick(ownerDropDown); // Clicks the Owner drop down on the Create Bucket page
// select the first option, which is invalid because it is a placeholder
element(by.cssContainingText('select[name=owner] option', 'Select a user')).click();
- PageHelper.moveClick(nameInputField); // To trigger a validation
+ this.moveClick(nameInputField); // To trigger a validation
// Check that owner drop down field was marked invalid in the css
expect(element(by.id('owner')).getAttribute('class')).toContain('ng-invalid');
);
// Check invalid placement target input
- PageHelper.moveClick(ownerDropDown);
+ this.moveClick(ownerDropDown);
element(by.cssContainingText('select[name=owner] option', 'dev')).click();
// The drop down error message will not appear unless a valid option is previsously selected.
element(
element(
by.cssContainingText('select[name=placement-target] option', 'Select a placement target')
).click();
- PageHelper.moveClick(nameInputField); // To trigger a validation
+ this.moveClick(nameInputField); // To trigger a validation
expect(element(by.id('placement-target')).getAttribute('class')).toContain('ng-invalid');
expect(element(by.css('#placement-target + .invalid-feedback')).getText()).toMatch(
'This field is required.'
// Clicks the Create Bucket button but the page doesn't move. Done by testing
// for the breadcrumb
- PageHelper.moveClick(element(by.cssContainingText('button', 'Create Bucket'))); // Clicks Create Bucket button
- expect(PageHelper.getBreadcrumbText()).toEqual('Create');
+ this.moveClick(element(by.cssContainingText('button', 'Create Bucket'))); // Clicks Create Bucket button
+ expect(this.getBreadcrumbText()).toEqual('Create');
// content in fields seems to subsist through tests if not cleared, so it is cleared
nameInputField.clear().then(() => {
element(by.cssContainingText('button', 'Cancel')).click();
this.navigateTo();
browser.wait(
- Helper.EC.elementToBeClickable(PageHelper.getTableCell(name)),
+ Helper.EC.elementToBeClickable(this.getTableCell(name)),
10000,
'Failed waiting for bucket to be present in table'
); // wait for table to load
- PageHelper.getTableCell(name).click(); // click on the bucket you want to edit in the table
+ this.getTableCell(name).click(); // click on the bucket you want to edit in the table
element(by.cssContainingText('button', 'Edit')).click(); // click button to move to edit page
- expect(PageHelper.getBreadcrumbText()).toEqual('Edit');
+ expect(this.getBreadcrumbText()).toEqual('Edit');
// Chooses 'Select a user' rather than a valid owner on Edit Bucket page
// and checks if it's an invalid input
const ownerDropDown = element(by.id('owner'));
browser.wait(Helper.EC.elementToBeClickable(ownerDropDown), 5000);
- PageHelper.moveClick(ownerDropDown); // Clicks the Owner drop down on the Create Bucket page
+ this.moveClick(ownerDropDown); // Clicks the Owner drop down on the Create Bucket page
// select the first option, which is invalid because it is a placeholder
element(by.cssContainingText('select[name=owner] option', 'Select a user')).click();
// Clicks the Edit Bucket button but the page doesn't move. Done by testing for
// breadcrumb
element(by.cssContainingText('button', 'Edit Bucket')).click(); // Gets the Edit button and clicks it
- expect(PageHelper.getBreadcrumbText()).toEqual('Edit');
+ expect(this.getBreadcrumbText()).toEqual('Edit');
}
}
import { Helper } from '../helper.po';
-import { DaemonsPage } from './daemons.po';
describe('RGW daemons page', () => {
- let page: DaemonsPage;
+ let daemons;
beforeAll(() => {
- page = new DaemonsPage();
+ daemons = new Helper().daemons;
});
afterEach(() => {
describe('breadcrumb and tab tests', () => {
beforeAll(() => {
- page.navigateTo();
+ daemons.navigateTo();
});
it('should open and show breadcrumb', () => {
- expect(DaemonsPage.getBreadcrumbText()).toEqual('Daemons');
+ expect(daemons.getBreadcrumbText()).toEqual('Daemons');
});
it('should show two tabs', () => {
- expect(DaemonsPage.getTabsCount()).toEqual(2);
+ expect(daemons.getTabsCount()).toEqual(2);
});
it('should show daemons list tab at first', () => {
- expect(DaemonsPage.getTabText(0)).toEqual('Daemons List');
+ expect(daemons.getTabText(0)).toEqual('Daemons List');
});
it('should show overall performance as a second tab', () => {
- expect(DaemonsPage.getTabText(1)).toEqual('Overall Performance');
+ expect(daemons.getTabText(1)).toEqual('Overall Performance');
});
});
});
import { PageHelper } from '../page-helper.po';
-export class DaemonsPage extends PageHelper {
+export class DaemonsPageHelper extends PageHelper {
pages = { index: '/#/rgw/daemon' };
}
import { Helper } from '../helper.po';
-import { UsersPage } from './users.po';
describe('RGW users page', () => {
- let page: UsersPage;
+ let users;
beforeAll(() => {
- page = new UsersPage();
+ users = new Helper().users;
});
afterEach(() => {
describe('breadcrumb test', () => {
beforeAll(() => {
- page.navigateTo();
+ users.navigateTo();
});
it('should open and show breadcrumb', () => {
- expect(UsersPage.getBreadcrumbText()).toEqual('Users');
+ expect(users.getBreadcrumbText()).toEqual('Users');
});
});
});
import { PageHelper } from '../page-helper.po';
-export class UsersPage extends PageHelper {
+export class UsersPageHelper extends PageHelper {
pages = { index: '/#/rgw/user' };
}