blob: 24c221521846205925aea06439d8b84bed074878 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { SensorListPage } from './sensor-list.po';
import {LoginPage} from '../login/login.po';
describe('Sensor List', function() {
let page: SensorListPage = new SensorListPage();
let loginPage = new LoginPage();
let ASCENDING_CSS = 'fa fa-sort-asc';
let DESCENDING_CSS = 'fa fa-sort-desc';
let defaultActionState = [
{ classNames: 'fa-circle-o-notch', displayed: false },
{ classNames: 'fa-stop', displayed: false },
{ classNames: 'fa-ban', displayed: false },
{ classNames: 'fa-play', displayed: true },
{ classNames: 'fa-check-circle-o', displayed: false },
{ classNames: 'fa-pencil', displayed: true },
{ classNames: 'fa-trash-o', displayed: true }
];
let runningActionstate = [
{ classNames: 'fa-circle-o-notch', displayed: false},
{ classNames: 'fa-stop', displayed: true},
{ classNames: 'fa-ban', displayed: true},
{ classNames: 'fa-play', displayed: false},
{ classNames: 'fa-check-circle-o', displayed: false},
{ classNames: 'fa-pencil', displayed: true},
{ classNames: 'fa-trash-o', displayed: true}
];
let disabledActionState = [
{ classNames: 'fa-circle-o-notch', displayed: false},
{ classNames: 'fa-stop', displayed: true},
{ classNames: 'fa-ban', displayed: false},
{ classNames: 'fa-play', displayed: false},
{ classNames: 'fa-check-circle-o', displayed: true},
{ classNames: 'fa-pencil', displayed: true},
{ classNames: 'fa-trash-o', displayed: true}
];
beforeAll(() => {
loginPage.login();
});
afterAll(() => {
loginPage.logout();
});
it('should have title defined', () => {
expect(page.getTitle()).toEqual('Sensors (7)');
});
it('should have add button', () => {
expect(page.getAddButton()).toEqual(true);
});
it('should have all the default parsers', () => {
expect(page.getParserCount()).toEqual(7);
});
it('should have all the table headers', () => {
expect(page.getTableColumnNames()).toEqual([ 'Name', 'Parser', 'Status', 'Latency', 'Throughput', 'Last Updated', 'Last Editor' ]);
});
it('should sort table headers', () => {
page.toggleSort('Name');
expect(page.getSortOrder('Name')).toEqual(ASCENDING_CSS);
expect(page.getColumnValues(0)).toEqual(['asa', 'bro', 'jsonMap', 'snort', 'squid', 'websphere', 'yaf']);
page.toggleSort('Name');
expect(page.getSortOrder('Name')).toEqual(DESCENDING_CSS);
expect(page.getColumnValues(0)).toEqual(['yaf', 'websphere', 'squid', 'snort', 'jsonMap', 'bro', 'asa']);
page.toggleSort('Parser');
expect(page.getSortOrder('Parser')).toEqual(ASCENDING_CSS);
expect(page.getColumnValues(1)).toEqual(['Grok', 'Grok', 'Java', 'Java', 'Java', 'Java', 'Java']);
page.toggleSort('Parser');
expect(page.getSortOrder('Parser')).toEqual(DESCENDING_CSS);
expect(page.getColumnValues(1)).toEqual(['Java', 'Java', 'Java', 'Java', 'Java', 'Grok', 'Grok']);
page.toggleSort('Status');
expect(page.getSortOrder('Status')).toEqual(ASCENDING_CSS);
expect(page.getColumnValues(2)).toEqual(['Stopped', 'Stopped', 'Stopped', 'Stopped', 'Stopped', 'Stopped', 'Stopped']);
page.toggleSort('Status');
expect(page.getSortOrder('Status')).toEqual(DESCENDING_CSS);
expect(page.getColumnValues(2)).toEqual(['Stopped', 'Stopped', 'Stopped', 'Stopped', 'Stopped', 'Stopped', 'Stopped']);
});
it('should select deselect all rows', () => {
page.toggleSelectAll();
expect(page.getSelectedRowCount()).toEqual(7);
page.toggleSelectAll();
expect(page.getSelectedRowCount()).toEqual(0);
})
it('should select deselect individual rows', () => {
['websphere', 'jsonMap', 'squid', 'asa', 'snort', 'bro', 'yaf'].map(pName => {
page.toggleRowSelect(pName);
expect(page.getSelectedRowCount()).toEqual(1);
page.toggleRowSelect(pName);
expect(page.getSelectedRowCount()).toEqual(0);
});
})
it('should enable action in dropdown', () => {
expect(page.getDropdownActionState()).toEqual({ enabled: 0, disabled: 0, displayed: false});
page.toggleDropdown();
expect(page.getDropdownActionState()).toEqual({ enabled: 0, disabled: 5, displayed: true});
page.toggleDropdown();
page.toggleSelectAll();
page.toggleDropdown();
expect(page.getDropdownActionState()).toEqual({ enabled: 5, disabled: 0, displayed: true});
page.toggleDropdown();
page.toggleSelectAll();
['websphere', 'jsonMap', 'squid', 'asa', 'snort', 'bro', 'yaf'].map(pName => {
page.toggleRowSelect(pName);
page.toggleDropdown();
expect(page.getDropdownActionState()).toEqual({ enabled: 5, disabled: 0, displayed: true});
page.toggleDropdown();
page.toggleRowSelect(pName);
});
})
it('should have all the actions with default value', () => {
['websphere', 'jsonMap', 'squid', 'asa', 'snort', 'bro', 'yaf'].map(pName => {
expect(page.getActions(pName)).toEqual(defaultActionState);
});
})
it('should open the details pane', (done) => {
['websphere', 'jsonMap', 'squid', 'asa', 'snort', 'bro', 'yaf'].map(pName => {
expect(page.openDetailsPane(pName)).toEqual('http://localhost:4200/sensors(dialog:sensors-readonly/' + pName +')');
});
page.closePane().then(() => {done();});
}, 300000)
it('should open the edit pane', () => {
['websphere', 'jsonMap', 'squid', 'asa', 'snort', 'bro', 'yaf'].map(pName => {
expect(page.openEditPaneAndClose(pName)).toEqual('http://localhost:4200/sensors(dialog:sensors-config/' + pName +')');
});
})
});