-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
280 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
context('Local Storage / Session Storage', () => { | ||
beforeEach(() => { | ||
cy.visit('https://example.cypress.io/commands/storage') | ||
}) | ||
|
||
it('cy.clearLocalStorage() - clear all data in localStorage for the current origin', () => { | ||
cy.get('.ls-btn').click() | ||
cy.get('.ls-btn').should(() => { | ||
expect(localStorage.getItem('prop1')).to.eq('red'); | ||
expect(localStorage.getItem('prop2')).to.eq('blue'); | ||
expect(localStorage.getItem('prop3')).to.eq('magenta'); | ||
}) | ||
|
||
cy.clearLocalStorage(); | ||
cy.getAllLocalStorage().should(() => { | ||
expect(localStorage.getItem('prop1')).to.be.null | ||
expect(localStorage.getItem('prop2')).to.be.null | ||
expect(localStorage.getItem('prop3')).to.be.null | ||
}) | ||
|
||
cy.get('.ls-btn').click() | ||
cy.get('.ls-btn').should(() => { | ||
expect(localStorage.getItem('prop1')).to.eq('red') | ||
expect(localStorage.getItem('prop2')).to.eq('blue') | ||
expect(localStorage.getItem('prop3')).to.eq('magenta') | ||
}) | ||
|
||
// Clear key matching string in localStorage | ||
cy.clearLocalStorage('prop1') | ||
cy.getAllLocalStorage().should(() => { | ||
expect(localStorage.getItem('prop1')).to.be.null | ||
expect(localStorage.getItem('prop2')).to.eq('blue') | ||
expect(localStorage.getItem('prop3')).to.eq('magenta') | ||
}) | ||
|
||
cy.get('.ls-btn').click() | ||
cy.get('.ls-btn').should(() => { | ||
expect(localStorage.getItem('prop1')).to.eq('red') | ||
expect(localStorage.getItem('prop2')).to.eq('blue') | ||
expect(localStorage.getItem('prop3')).to.eq('magenta') | ||
}) | ||
|
||
// Clear keys matching regex in localStorage | ||
cy.clearLocalStorage(/prop1|2/) | ||
cy.getAllLocalStorage().should(() => { | ||
expect(localStorage.getItem('prop1')).to.be.null | ||
expect(localStorage.getItem('prop2')).to.be.null | ||
expect(localStorage.getItem('prop3')).to.eq('magenta') | ||
}) | ||
}) | ||
|
||
it('cy.getAllLocalStorage() - get all data in localStorage for all origins', () => { | ||
cy.get('.ls-btn').click() | ||
|
||
// getAllLocalStorage() yields a map of origins to localStorage values | ||
cy.getAllLocalStorage().should((storageMap) => { | ||
expect(storageMap).to.deep.equal({ | ||
// other origins will also be present if localStorage is set on them | ||
'https://example.cypress.io': { | ||
'prop1': 'red', | ||
'prop2': 'blue', | ||
'prop3': 'magenta', | ||
}, | ||
}) | ||
}) | ||
}) | ||
|
||
it('cy.clearAllLocalStorage() - clear all data in localStorage for all origins', () => { | ||
// https://on.cypress.io/clearalllocalstorage | ||
cy.get('.ls-btn').click() | ||
|
||
// clearAllLocalStorage() yields null | ||
cy.clearAllLocalStorage() | ||
cy.getAllLocalStorage().should(() => { | ||
expect(localStorage.getItem('prop1')).to.be.null | ||
expect(localStorage.getItem('prop2')).to.be.null | ||
expect(localStorage.getItem('prop3')).to.be.null | ||
}) | ||
}) | ||
|
||
it('cy.getAllSessionStorage() - get all data in sessionStorage for all origins', () => { | ||
cy.get('.ls-btn').click() | ||
|
||
// getAllSessionStorage() yields a map of origins to sessionStorage values | ||
cy.getAllSessionStorage().should((storageMap) => { | ||
expect(storageMap).to.deep.equal({ | ||
// other origins will also be present if sessionStorage is set on them | ||
'https://example.cypress.io': { | ||
'prop4': 'cyan', | ||
'prop5': 'yellow', | ||
'prop6': 'black', | ||
}, | ||
}) | ||
}) | ||
}) | ||
|
||
it('cy.clearAllSessionStorage() - clear all data in sessionStorage for all origins', () => { | ||
// https://on.cypress.io/clearallsessionstorage | ||
cy.get('.ls-btn').click() | ||
|
||
// clearAllSessionStorage() yields null | ||
cy.clearAllSessionStorage() | ||
cy.getAllSessionStorage().should(() => { | ||
expect(sessionStorage.getItem('prop4')).to.be.null | ||
expect(sessionStorage.getItem('prop5')).to.be.null | ||
expect(sessionStorage.getItem('prop6')).to.be.null | ||
}) | ||
}) | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
context('Traversal', () => { | ||
beforeEach(() => { | ||
cy.visit('https://example.cypress.io/commands/traversal') | ||
}) | ||
|
||
it('.children() - get child DOM elements', () => { | ||
cy.get('.traversal-breadcrumb') | ||
.children('.active').should('contain', 'Data') | ||
}) | ||
|
||
it('.closest() - get closest ancestor DOM element', () => { | ||
cy.get('.traversal-badge') | ||
.closest('ul') | ||
.should('have.class', 'list-group') | ||
}) | ||
|
||
it('.eq() - get a DOM element at a specific index', () => { | ||
// https://on.cypress.io/eq | ||
cy.get('.traversal-list>li') | ||
.eq(1).should('contain', 'siamese') | ||
}) | ||
|
||
it('.filter() - get DOM elements that match the selector', () => { | ||
// https://on.cypress.io/filter | ||
cy.get('.traversal-nav>li') | ||
.filter('.active').should('contain', 'About') | ||
}) | ||
|
||
it('.find() - get descendant DOM elements of the selector', () => { | ||
// https://on.cypress.io/find | ||
cy.get('.traversal-pagination') | ||
.find('li').find('a') | ||
.should('have.length', 7) | ||
}) | ||
|
||
it('.first() - get first DOM element', () => { | ||
// https://on.cypress.io/first | ||
cy.get('.traversal-table td') | ||
.first().should('contain', '1') | ||
}) | ||
|
||
it('.last() - get last DOM element', () => { | ||
// https://on.cypress.io/last | ||
cy.get('.traversal-buttons .btn') | ||
.last().should('contain', 'Submit') | ||
}) | ||
|
||
it('.next() - get next sibling DOM element', () => { | ||
// https://on.cypress.io/next | ||
cy.get('.traversal-ul') | ||
.contains('apples').next().should('contain', 'oranges') | ||
}) | ||
|
||
it('.nextAll() - get all next sibling DOM elements', () => { | ||
// https://on.cypress.io/nextall | ||
cy.get('.traversal-next-all') | ||
.contains('oranges') | ||
.nextAll().should('have.length', 3) | ||
}) | ||
|
||
it('.nextUntil() - get next sibling DOM elements until next el', () => { | ||
// https://on.cypress.io/nextuntil | ||
cy.get('#veggies') | ||
.nextUntil('#nuts').should('have.length', 3) | ||
}) | ||
|
||
it('.not() - remove DOM elements from set of DOM elements', () => { | ||
// https://on.cypress.io/not | ||
cy.get('.traversal-disabled .btn') | ||
.not('[disabled]').should('not.contain', 'Disabled') | ||
}) | ||
|
||
it('.parent() - get parent DOM element from DOM elements', () => { | ||
// https://on.cypress.io/parent | ||
cy.get('.traversal-mark') | ||
.parent().should('contain', 'Morbi leo risus') | ||
}) | ||
|
||
it('.parents() - get parent DOM elements from DOM elements', () => { | ||
// https://on.cypress.io/parents | ||
cy.get('.traversal-cite') | ||
.parents().should('match', 'blockquote') | ||
}) | ||
|
||
it('.parentsUntil() - get parent DOM elements from DOM elements until el', () => { | ||
// https://on.cypress.io/parentsuntil | ||
cy.get('.clothes-nav') | ||
.find('.active') | ||
.parentsUntil('.clothes-nav') | ||
.should('have.length', 2) | ||
}) | ||
|
||
it('.prev() - get previous sibling DOM element', () => { | ||
// https://on.cypress.io/prev | ||
cy.get('.birds').find('.active') | ||
.prev().should('contain', 'Lorikeets') | ||
}) | ||
|
||
it('.prevAll() - get all previous sibling DOM elements', () => { | ||
// https://on.cypress.io/prevall | ||
cy.get('.fruits-list').find('.third') | ||
.prevAll().should('have.length', 2) | ||
}) | ||
|
||
it('.prevUntil() - get all previous sibling DOM elements until el', () => { | ||
// https://on.cypress.io/prevuntil | ||
cy.get('.foods-list').find('#nuts') | ||
.prevUntil('#veggies').should('have.length', 3) | ||
}) | ||
|
||
it('.siblings() - get all sibling DOM elements', () => { | ||
// https://on.cypress.io/siblings | ||
cy.get('.traversal-pills .active') | ||
.siblings().should('have.length', 2) | ||
}) | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
context('Viewport', () => { | ||
beforeEach(() => { | ||
cy.visit('https://example.cypress.io/commands/viewport') | ||
}) | ||
|
||
it('cy.viewport() - set the viewport size and dimension', () => { | ||
cy.get('#navbar').should('be.visible') | ||
cy.viewport(320, 480) | ||
|
||
// the navbar should have collapse since our screen is smaller | ||
cy.get('#navbar').should('not.be.visible') | ||
cy.get('.navbar-toggle').should('be.visible').click() | ||
cy.get('.nav').find('a').should('be.visible') | ||
|
||
// lets see what our app looks like on a super large screen | ||
cy.viewport(2999, 2999) | ||
|
||
// cy.viewport() accepts a set of preset sizes | ||
// to easily set the screen to a device's width and height | ||
|
||
// We added a cy.wait() between each viewport change so you can see | ||
// the change otherwise it is a little too fast to see :) | ||
|
||
cy.viewport('macbook-15') | ||
cy.wait(200) | ||
cy.viewport('macbook-13') | ||
cy.wait(200) | ||
cy.viewport('macbook-11') | ||
cy.wait(200) | ||
cy.viewport('ipad-2') | ||
cy.wait(200) | ||
cy.viewport('ipad-mini') | ||
cy.wait(200) | ||
cy.viewport('iphone-6+') | ||
cy.wait(200) | ||
cy.viewport('iphone-6') | ||
cy.wait(200) | ||
cy.viewport('iphone-5') | ||
cy.wait(200) | ||
cy.viewport('iphone-4') | ||
cy.wait(200) | ||
cy.viewport('iphone-3') | ||
cy.wait(200) | ||
|
||
// cy.viewport() accepts an orientation for all presets | ||
// the default orientation is 'portrait' | ||
cy.viewport('ipad-2', 'portrait') | ||
cy.wait(200) | ||
cy.viewport('iphone-4', 'landscape') | ||
cy.wait(200) | ||
|
||
// The viewport will be reset back to the default dimensions | ||
// in between tests (the default can be set in cypress.config.js) | ||
}) | ||
}) |