ng2-bootstrap-base-modified
Version:
Native Angular Bootstrap Components Typeahead modified
272 lines (266 loc) • 12.8 kB
text/typescript
import {$, browser} from 'protractor';
import {ElementFinder} from 'protractor/built/index';
const getTabHeaderAccordionPage = (tabNumber: number) => {
return $('accordion-group:nth-child(' + tabNumber + ') .panel-heading');
};
const getTabContentAccordionPage = (tabNumber: number) => {
return $('accordion-group:nth-child(' + tabNumber + ') .panel-body');
};
export class DataProvider {
public static accordionTableContent: any = {
'1stTabHeaderText': {
element: (): ElementFinder => getTabHeaderAccordionPage(1),
actualResult: 'Static Header, initially expanded'
},
'1stTabContentText': {
element: (): ElementFinder => getTabContentAccordionPage(1),
actualResult: 'This content is straight in the template.'
},
'2stTabHeaderText': {
element: (): ElementFinder => getTabHeaderAccordionPage(2),
actualResult: 'Dynamic Group Header - 1'
},
'2stTabContentText': {
element: (): ElementFinder => getTabContentAccordionPage(2),
actualResult: 'Dynamic Group Body - 1'
},
'3stTabHeaderText': {
element: (): ElementFinder => getTabHeaderAccordionPage(3),
actualResult: 'Dynamic Group Header - 2'
},
'3stTabContentText': {
element: (): ElementFinder => getTabContentAccordionPage(3),
actualResult: 'Dynamic Group Body - 2'
},
'4stTabHeaderText': {
element: (): ElementFinder => getTabHeaderAccordionPage(4),
actualResult: 'Dynamic Body Content'
},
'4stTabContentText1stString': {
element: (): ElementFinder => $('accordion-group:nth-child(4) .panel-body>p'),
actualResult: 'The body of the accordion group grows to fit the contents'
},
'4stTabContentTextAddButton': {
element: (): ElementFinder => $('accordion-group:nth-child(4) .panel-body>button'),
actualResult: 'Add Item'
},
'4stTabContentTextTableItem': {
element: (): ElementFinder => $('accordion-group:nth-child(4) .panel-body :nth-child(4)'),
actualResult: 'Item 2'
},
'5stTabHeaderText': {
element: (): ElementFinder => getTabHeaderAccordionPage(5),
actualResult: 'I can have markup, too!'
},
'5stTabContentText': {
element: (): ElementFinder => getTabContentAccordionPage(5),
actualResult: 'This is just some content to illustrate fancy headings.'
}
};
public static alertTableContains: any = {
'Alert Danger text': {
element: (): ElementFinder => $('[ng-reflect-type="danger"]>div'),
actualResult: 'Oh snap! Change a few things up and try submitting again.'
},
'Alert Success text': {
element: (): ElementFinder => $('[ng-reflect-type="success"]>div:not(span):not(.close)'),
actualResult: 'Well done! You successfully read this important alert message.'
},
'Alert Dismissible text': {
element: (): ElementFinder => $('[dismissontimeout="3000"]'),
actualResult: 'This alert will dismiss in 3s'
},
'Alert Another text': {
element: (): ElementFinder => $('[ng-reflect-type="warning"]:nth-child(2n)'),
actualResult: 'Another alert!'
}
};
public static modalsTableContains: any = {
'Modal Large button text': {element: (): ElementFinder => $('.btn:nth-child(1)'), actualResult: 'Large modal'},
'Modal Small button text': {element: (): ElementFinder => $('.btn:nth-child(3)'), actualResult: 'Small modal'},
'Modal Child button text': {element: (): ElementFinder => $('.btn:nth-child(5)'), actualResult: 'Open child modal'},
'Modal Static button text': {element: (): ElementFinder => $('.btn:nth-child(7)'), actualResult: 'Static modal'}
};
public static buttonsTableContains: any = {
'Buttons Example header text': {element: (): ElementFinder => $('#example>h3'), actualResult: 'Example'},
'Buttons Single Toggle header text': {
element: (): ElementFinder => $('buttons-demo>h4:nth-child(1)'),
actualResult: 'Single toggle'
},
'Buttons Single Toggle button text': {
element: (): ElementFinder => $('buttons-demo>.btn'),
actualResult: 'Single Toggle'
},
'Buttons Checkbox Left button text': {
element: (): ElementFinder => $('.btn-group [btncheckbox]:nth-child(1)'),
actualResult: 'Left'
},
'Buttons Radio Header text': {
element: (): ElementFinder => $('buttons-demo :nth-child(8)'),
actualResult: 'Radio & Uncheckable Radio'
},
'Buttons Checkbox Middle button text': {
element: (): ElementFinder => $('.btn-group [btncheckbox]:nth-child(2)'),
actualResult: 'Middle'
},
'Buttons Checkbox Right button text': {
element: (): ElementFinder => $('.btn-group [btncheckbox]:nth-child(3)'),
actualResult: 'Right'
},
'Buttons Radio Left button text': {
element: (): ElementFinder => $('.btn-group:nth-child(2n) :nth-child(1)'),
actualResult: 'Left'
},
'Buttons Radio Middle button text': {
element: (): ElementFinder => $('.btn-group:nth-child(2n) :nth-child(2)'),
actualResult: 'Middle'
},
'Buttons Radio Right button text': {
element: (): ElementFinder => $('.btn-group:nth-child(2n) :nth-child(3)'),
actualResult: 'Right'
},
'Buttons Uncheckable Left button text': {
element: (): ElementFinder => $('.btn-group [uncheckable]:nth-child(1)'),
actualResult: 'Left'
},
'Buttons Uncheckable Middle button text': {
element: (): ElementFinder => $('.btn-group [uncheckable]:nth-child(2)'),
actualResult: 'Middle'
},
'Buttons Uncheckable Right button text': {
element: (): ElementFinder => $('.btn-group [uncheckable]:nth-child(3)'),
actualResult: 'Right'
}
};
public static tooltipDefaultContains: any = {
'Dynamic Tooltip header text': {
element: (): ElementFinder => $('tooltip-demo>div:nth-child(1) label'),
actualResult: 'Dynamic Tooltip Text'
},
'Dynamic Tooltip Popup header text': {
element: (): ElementFinder => $('tooltip-demo>div:nth-child(2) label'),
actualResult: 'Dynamic Tooltip Popup Text'
},
'I can even contain HTML': {
element: (): ElementFinder => $('tooltip-demo>p:nth-child(4)'),
actualResult: 'I can even contain HTML. Check me out!'
},
'Or use a TemplateRef': {
element: (): ElementFinder => $('tooltip-demo>p:nth-child(5)'),
actualResult: 'Or use a TemplateRef. Check me out!'
},
'Programatically show/hide tooltip': {
element: (): ElementFinder => $('tooltip-demo>p:nth-child(6)'),
actualResult: 'Programatically show/hide tooltip Check me out! Show tooltip Hide tooltip'
},
'I can have a custom class': {
element: (): ElementFinder => $('tooltip-demo>p:nth-child(7)'),
actualResult: 'I can have a custom class. Check me out!'
},
'And if I am in overflow': {
element: (): ElementFinder => $('tooltip-demo>p:nth-child(8)'),
actualResult: 'And if I am in overflow: hidden container, then just tooltipAppendToBody me instead!'
},
'Button Show tooltip text': {element: (): ElementFinder => $('.btn.btn-primary'), actualResult: 'Show tooltip'},
'Button Hide tooltip text': {element: (): ElementFinder => $('.btn.btn-danger'), actualResult: 'Hide tooltip'},
'Or use custom triggers, like focus header text': {
element: (): ElementFinder => $('[role="form"]>.form-group:nth-child(1) label'),
actualResult: 'Or use custom triggers, like focus:'
},
'Disable tooltips conditionally header text': {
element: (): ElementFinder => $('[role="form"]>.form-group:nth-child(2) label'),
actualResult: 'Disable tooltips conditionally:'
}
};
public static tooltipElementsTexts: any = {
'Dynamic Tooltip': {
element: (): ElementFinder => $('tooltip-demo>p:nth-child(3)>a:nth-child(1)'),
actualResult: 'Hello, World!'
},
'Left Tooltip': {element: (): ElementFinder => $('[tooltip="On the Left!"]'), actualResult: 'On the Left!'},
'Right Tooltip': {element: (): ElementFinder => $('[tooltip="On the Right!"]'), actualResult: 'On the Right!'},
'Bottom Tooltip': {element: (): ElementFinder => $('[tooltip="On the Bottom!"]'), actualResult: 'On the Bottom!'},
'Fading Tooltip': {
element: (): ElementFinder => $(`[tooltip="I don't fade. :-("]`),
actualResult: `I don't fade. :-(`
},
'Show/hide Tooltip': {element: (): ElementFinder => $('tooltip-demo>p:nth-child(6)>a'), actualResult: 'Foo'},
'Custom class Tooltip': {
element: (): ElementFinder => $('tooltip-demo>p:nth-child(7)>a'),
actualResult: 'I can have a custom class applied to me!'
},
'Overflow:hidden Tooltip': {
element: (): ElementFinder => $('[tooltip="That ruins the tooltip"]'),
actualResult: 'That ruins the tooltip'
},
'Overflow:toBody Tooltip': {
element: (): ElementFinder => $('[tooltip="So the tooltip is visible always correctly"]'),
actualResult: 'So the tooltip is visible always correctly'
},
'Custom triggers Tooltip': {
element: (): ElementFinder => $('[tooltip="See? Now click away..."]'),
actualResult: 'See? Now click away...'
},
'Disable Tooltip': {
element: (): ElementFinder => $('[tooltip="Enter something in this input field to disable this tooltip"]'),
actualResult: 'Enter something in this input field to disable this tooltip'
}
};
public static inputDifferentData: any = {
'Text normal': {inputText: 'First or second'},
'Text URL': {inputText: 'http://www.mysite.com:80'},
'Text chinese': {inputText: '京位於華北平原的西北边缘,背靠燕山,'},
'Text JS XSS': {inputText: `'-prompt()-'`},
'Text Unicode': {inputText: 'Iñtërnâtiônàlizætiøn'},
'Text Numeric': {inputText: '1234567890'}
};
public static carouselSlidesTexts: any = {
'1st slide text': {element: (): ElementFinder => $('slide:nth-child(1) p'), actualResult: 'More Cats'},
'2nd slide text': {element: (): ElementFinder => $('slide:nth-child(2) p'), actualResult: 'Extra Kittys'},
'3rd slide text': {element: (): ElementFinder => $('slide:nth-child(3) p'), actualResult: 'Lots of Felines'},
'4th slide text': {element: (): ElementFinder => $('slide:nth-child(4) p'), actualResult: 'Surplus Cutes'}
};
public static typeaheadDefaultTexts: any = {
'Static Array header text': {element: (): ElementFinder => $('#static'), actualResult: 'Static array'},
'Static Array model text': {
element: (): ElementFinder => $('demo-typeahead-static>.card.card-block.card-header'),
actualResult: 'Model: '
},
'Item template header text': {element: (): ElementFinder => $('#item-template'), actualResult: 'Item template'},
'Item template modal text': {
element: (): ElementFinder => $('demo-typeahead-item-template>.card.card-block.card-header'),
actualResult: 'Model: '
},
'Option field header text': {element: (): ElementFinder => $('#option-field'), actualResult: 'Option field'},
'Option field modal text': {
element: (): ElementFinder => $('demo-typeahead-field>.card.card-block.card-header'),
actualResult: 'Model: '
},
'Async data field header text': {element: (): ElementFinder => $('#async'), actualResult: 'Async data'},
'Async data field modal text': {
element: (): ElementFinder => $('demo-typeahead-async>.card.card-block.card-header'),
actualResult: 'Model: '
},
'Reactive forms field header text': {element: (): ElementFinder => $('#forms'), actualResult: 'Reactive forms'},
'Reactive forms field modal text': {
element: (): ElementFinder => $('demo-typeahead-forms>.card.card-block.card-header'),
actualResult: 'Model: '
},
'Grouping results field header text': {
element: (): ElementFinder => $('#grouping-results'),
actualResult: 'Grouping results'
},
'Grouping results field modal text': {
element: (): ElementFinder => $('demo-typeahead-grouping>.card.card-block.card-header'),
actualResult: 'Model: '
}
};
public static typeaheadInputCityTexts: any = {
California: {inputText: 'Cal', expectedResult: 'California'},
Texas: {inputText: 'xa', expectedResult: 'Texas'},
Florida: {inputText: 'rida', expectedResult: 'Florida'},
Mississippi: {inputText: 'ssi', expectedResult: 'Mississippi'},
'New Jersey': {inputText: 'J', expectedResult: 'New Jersey'},
Idaho: {inputText: 'dah', expectedResult: 'Idaho'}
};
}