Toolbar - multiple selection - all list views (#66)

This commit is contained in:
Adina Parpalita
2017-11-20 22:30:25 +02:00
committed by Cilibiu Bogdan
parent f747ee8673
commit 892b49046f
3 changed files with 564 additions and 31 deletions

View File

@@ -15,7 +15,7 @@
* limitations under the License.
*/
import { ElementFinder, ElementArrayFinder, promise, by, browser, ExpectedConditions as EC } from 'protractor';
import { ElementFinder, ElementArrayFinder, promise, by, browser, ExpectedConditions as EC, protractor } from 'protractor';
import { BROWSER_WAIT_TIMEOUT } from '../../configs';
import { Component } from '../component';
@@ -32,6 +32,7 @@ export class DataTable extends Component {
body: 'table > tbody',
row: 'tr',
selectedRow: 'tr.is-selected',
cell: 'td',
emptyListContainer: 'td.adf-no-content-container',
@@ -94,6 +95,10 @@ export class DataTable extends Component {
return this.body.all(by.css(DataTable.selectors.row));
}
getSelectedRows(): ElementArrayFinder {
return this.body.all(by.css(DataTable.selectors.selectedRow));
}
getNthRow(nth: number): ElementFinder {
return this.getRows().get(nth - 1);
}
@@ -122,6 +127,23 @@ export class DataTable extends Component {
return click.perform();
}
selectMultipleItems(names: string[]): promise.Promise<void> {
return browser.actions().sendKeys(protractor.Key.COMMAND).perform()
.then(() => {
names.forEach(name => {
this.getRowByContainingText(name).click();
});
})
.then(() => browser.actions().sendKeys(protractor.Key.NULL).perform());
}
clearSelection() {
this.getSelectedRows().count()
.then(count => {
if (count !== 0) { browser.refresh().then(() => this.waitForHeader()); }
});
}
// empty state methods
isEmptyList(): promise.Promise<boolean> {
return this.emptyList.isPresent();