chore: add e2e tests for md-slide-toggle (#2161)

* chore: add e2e tests for md-slide-toggle

* Adds some basic e2e tests for the md-slide-toggle component.

Closes #1963.

* Add space key test
This commit is contained in:
Paul Gschwendtner
2016-12-13 20:38:17 +01:00
committed by Jeremy Elbourn
parent 4126a83253
commit ac2f78471e
6 changed files with 80 additions and 0 deletions
@@ -0,0 +1,65 @@
describe('slide-toggle', () => {
beforeEach(() => browser.get('slide-toggle'));
it('should render a slide-toggle', () => {
expect(element(by.css('md-slide-toggle')).isPresent()).toBe(true);
});
it('should change the checked state on click', () => {
let slideToggleEl = element(by.css('#normal-slide-toggle'));
let inputEl = element(by.css('#normal-slide-toggle input'));
expect(inputEl.getAttribute('checked')).toBeFalsy('Expect slide-toggle to be unchecked');
slideToggleEl.click();
expect(inputEl.getAttribute('checked')).toBeTruthy('Expect slide-toggle to be checked');
});
it('should change the checked state on click', () => {
let slideToggleEl = element(by.css('#normal-slide-toggle'));
let inputEl = element(by.css('#normal-slide-toggle input'));
expect(inputEl.getAttribute('checked')).toBeFalsy('Expect slide-toggle to be unchecked');
slideToggleEl.click();
expect(inputEl.getAttribute('checked')).toBeTruthy('Expect slide-toggle to be checked');
});
it('should not change the checked state on click when disabled', () => {
let slideToggleEl = element(by.css('#disabled-slide-toggle'));
let inputEl = element(by.css('#disabled-slide-toggle input'));
expect(inputEl.getAttribute('checked')).toBeFalsy('Expect slide-toggle to be unchecked');
slideToggleEl.click();
expect(inputEl.getAttribute('checked')).toBeFalsy('Expect slide-toggle to be unchecked');
});
it('should move the thumb on state change', () => {
let slideToggleEl = element(By.css('#normal-slide-toggle'));
let thumbEl = element(by.css('#normal-slide-toggle .md-slide-toggle-thumb-container'));
let previousX = thumbEl.getLocation().then(pos => pos.x);
slideToggleEl.click();
let newX = thumbEl.getLocation().then(pos => pos.x);
expect(previousX).not.toBe(newX);
});
it('should toggle the slide-toggle on space key', () => {
let inputEl = element(by.css('#normal-slide-toggle input'));
expect(inputEl.getAttribute('checked')).toBeFalsy('Expect slide-toggle to be unchecked');
inputEl.sendKeys(protractor.Key.SPACE);
expect(inputEl.getAttribute('checked')).toBeTruthy('Expect slide-toggle to be checked');
});
});