You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

72 lines
3.0 KiB

module.exports = {
'tree': function (browser) {
browser
.url('http://localhost:8080/examples/tree/')
.waitForElementVisible('li', 1000)
.assert.count('.item', 12)
.assert.count('.add', 4)
.assert.count('.item > ul', 4)
.assert.notVisible('#demo li ul')
.assert.containsText('#demo li div span', '[+]')
// expand root
.click('.bold')
.assert.visible('#demo ul')
.assert.evaluate(function () {
return document.querySelector('#demo li ul').children.length === 4
})
.assert.containsText('#demo li div span', '[-]')
.assert.containsText('#demo > .item > ul > .item:nth-child(1)', 'hello')
.assert.containsText('#demo > .item > ul > .item:nth-child(2)', 'wat')
.assert.containsText('#demo > .item > ul > .item:nth-child(3)', 'child folder')
.assert.containsText('#demo > .item > ul > .item:nth-child(3)', '[+]')
// add items to root
.click('#demo > .item > ul > .add')
.assert.evaluate(function () {
return document.querySelector('#demo li ul').children.length === 5
})
.assert.containsText('#demo > .item > ul > .item:nth-child(1)', 'hello')
.assert.containsText('#demo > .item > ul > .item:nth-child(2)', 'wat')
.assert.containsText('#demo > .item > ul > .item:nth-child(3)', 'child folder')
.assert.containsText('#demo > .item > ul > .item:nth-child(3)', '[+]')
.assert.containsText('#demo > .item > ul > .item:nth-child(4)', 'new stuff')
// add another item
.click('#demo > .item > ul > .add')
.assert.evaluate(function () {
return document.querySelector('#demo li ul').children.length === 6
})
.assert.containsText('#demo > .item > ul > .item:nth-child(1)', 'hello')
.assert.containsText('#demo > .item > ul > .item:nth-child(2)', 'wat')
.assert.containsText('#demo > .item > ul > .item:nth-child(3)', 'child folder')
.assert.containsText('#demo > .item > ul > .item:nth-child(3)', '[+]')
.assert.containsText('#demo > .item > ul > .item:nth-child(4)', 'new stuff')
.assert.containsText('#demo > .item > ul > .item:nth-child(5)', 'new stuff')
.click('#demo ul .bold')
.assert.visible('#demo ul ul')
.assert.containsText('#demo ul > .item:nth-child(3)', '[-]')
.assert.evaluate(function () {
return document.querySelector('#demo ul ul').children.length === 5
})
.click('.bold')
.assert.notVisible('#demo ul')
.assert.containsText('#demo li div span', '[+]')
.click('.bold')
.assert.visible('#demo ul')
.assert.containsText('#demo li div span', '[-]')
.dblClick('#demo ul > .item div')
.assert.count('.item', 15)
.assert.count('.item > ul', 5)
.assert.containsText('#demo ul > .item:nth-child(1)', '[-]')
.assert.evaluate(function () {
const firstItem = document.querySelector('#demo ul > .item:nth-child(1)')
const ul = firstItem.querySelector('ul')
return ul.children.length === 2
})
.end()
}
}