2015-10-13 03:29:13 -04:00
|
|
|
import {verifyNoBrowserErrors} from 'angular2/src/testing/e2e_util';
|
2015-08-20 17:28:25 -04:00
|
|
|
import {Promise} from 'angular2/src/core/facade/async';
|
2015-07-09 13:25:58 -04:00
|
|
|
|
|
|
|
function waitForElement(selector) {
|
|
|
|
var EC = (<any>protractor).ExpectedConditions;
|
|
|
|
// Waits for the element with id 'abc' to be present on the dom.
|
2015-09-04 01:01:36 -04:00
|
|
|
browser.wait(EC.presenceOf($(selector)), 20000);
|
2015-07-09 13:25:58 -04:00
|
|
|
}
|
|
|
|
|
2015-10-07 19:56:35 -04:00
|
|
|
describe('routing inbox-app', () => {
|
2015-07-09 13:25:58 -04:00
|
|
|
|
|
|
|
afterEach(verifyNoBrowserErrors);
|
|
|
|
|
2015-10-07 19:56:35 -04:00
|
|
|
describe('index view', () => {
|
2015-10-09 18:25:17 -04:00
|
|
|
var URL = 'playground/src/routing/';
|
2015-07-09 13:25:58 -04:00
|
|
|
|
2015-10-07 19:56:35 -04:00
|
|
|
it('should list out the current collection of items', () => {
|
2015-07-09 13:25:58 -04:00
|
|
|
browser.get(URL);
|
|
|
|
waitForElement('.inbox-item-record');
|
|
|
|
expect(element.all(by.css('.inbox-item-record')).count()).toEqual(200);
|
|
|
|
});
|
|
|
|
|
2015-10-07 19:56:35 -04:00
|
|
|
it('should build a link which points to the detail page', () => {
|
2015-07-09 13:25:58 -04:00
|
|
|
browser.get(URL);
|
|
|
|
waitForElement('#item-15');
|
|
|
|
expect(element(by.css('#item-15')).getAttribute('href')).toMatch(/\/detail\/15$/);
|
|
|
|
element(by.css('#item-15')).click();
|
|
|
|
waitForElement('#record-id');
|
|
|
|
expect(browser.getCurrentUrl()).toMatch(/\/detail\/15$/);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
2015-10-07 19:56:35 -04:00
|
|
|
describe('drafts view', () => {
|
2015-10-09 18:25:17 -04:00
|
|
|
var URL = 'playground/src/routing/#/drafts';
|
2015-07-09 13:25:58 -04:00
|
|
|
|
2015-10-07 19:56:35 -04:00
|
|
|
it('should navigate to the drafts view when the drafts link is clicked', () => {
|
2015-07-09 13:25:58 -04:00
|
|
|
browser.get(URL);
|
|
|
|
waitForElement('.inbox-item-record');
|
|
|
|
element(by.linkText('Drafts')).click();
|
|
|
|
waitForElement('.page-title');
|
|
|
|
expect(element(by.css('.page-title')).getText()).toEqual('Drafts');
|
|
|
|
});
|
|
|
|
|
2015-10-07 19:56:35 -04:00
|
|
|
it('should navigate to email details', () => {
|
2015-07-09 13:25:58 -04:00
|
|
|
browser.get(URL);
|
|
|
|
element(by.linkText('Drafts')).click();
|
|
|
|
waitForElement('.inbox-item-record');
|
|
|
|
expect(element.all(by.css('.inbox-item-record')).count()).toEqual(2);
|
|
|
|
expect(element(by.css('#item-201')).getAttribute('href')).toMatch(/\/detail\/201$/);
|
|
|
|
element(by.css('#item-201')).click();
|
|
|
|
waitForElement('#record-id');
|
|
|
|
expect(browser.getCurrentUrl()).toMatch(/\/detail\/201$/);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
2015-10-07 19:56:35 -04:00
|
|
|
describe('detail view', () => {
|
2015-10-09 18:25:17 -04:00
|
|
|
var URL = 'playground/src/routing/';
|
2015-07-09 13:25:58 -04:00
|
|
|
|
2015-10-07 19:56:35 -04:00
|
|
|
it('should navigate to the detail view when an email is clicked', () => {
|
2015-07-09 13:25:58 -04:00
|
|
|
browser.get(URL);
|
|
|
|
waitForElement('#item-10');
|
|
|
|
element(by.css('#item-10')).click();
|
|
|
|
waitForElement('#record-id');
|
2015-07-30 13:47:32 -04:00
|
|
|
var recordId = element(by.css("#record-id"));
|
|
|
|
browser.wait(protractor.until.elementTextIs(recordId, "ID: 10"), 5000);
|
|
|
|
expect(recordId.getText()).toEqual('ID: 10');
|
2015-07-09 13:25:58 -04:00
|
|
|
});
|
|
|
|
|
2015-10-07 19:56:35 -04:00
|
|
|
it('should navigate back to the email inbox page when the back button is clicked', () => {
|
2015-07-09 13:25:58 -04:00
|
|
|
browser.get(URL);
|
|
|
|
waitForElement('#item-10');
|
|
|
|
element(by.css('#item-10')).click();
|
|
|
|
waitForElement('.back-button');
|
|
|
|
element(by.css('.back-button')).click();
|
2015-10-07 19:56:35 -04:00
|
|
|
expect(browser.getCurrentUrl()).toMatch(/\/$/);
|
2015-07-09 13:25:58 -04:00
|
|
|
});
|
2015-10-07 19:56:35 -04:00
|
|
|
|
|
|
|
it('should navigate back to index and sort the page items based on the provided querystring param',
|
|
|
|
() => {
|
|
|
|
browser.get(URL);
|
|
|
|
waitForElement('#item-10');
|
|
|
|
element(by.css('#item-10')).click();
|
|
|
|
waitForElement('.sort-button');
|
|
|
|
element(by.css('.sort-button')).click();
|
|
|
|
expect(browser.getCurrentUrl()).toMatch(/\/#\?sort=date$/);
|
|
|
|
waitForElement('.inbox-item-record');
|
|
|
|
expect(element(by.css(".inbox-item-record > a")).getAttribute("id")).toEqual("item-137");
|
|
|
|
});
|
2015-07-09 13:25:58 -04:00
|
|
|
})
|
|
|
|
});
|