vhost-audit/contrib/contextmenu/test/integration/disabled-changing.js

52 lines
2.0 KiB
JavaScript

var pwd = process.cwd();
var helper = require('../integration_test_helper.js');
// this test uses custom HTML because PhantomJS
// has problems showing alert modal dialogs.
// We are testing callbacks against simple DOM
// manipulations instead.
module.exports = {
'Clicking on disabled item has no effect': function (test) {
test
.open('file://' + pwd + '/test/integration/html/disabled-changing_test.html')
.execute(helper.rightClick, '.context-menu-one')
.waitForElement('#context-menu-layer')
.wait(100)
.assert.numberOfElements('.context-menu-root li')
.is(3, '3 context menu items are shown')
.click('.context-menu-root li:nth-child(2)')
.assert.text('#msg', '', 'Disabled menu item didnt set text')
.done();
},
'Toggle disabled item status': function (test) {
test
.open('file://' + pwd + '/test/integration/html/disabled-changing_test.html')
.execute(helper.rightClick, '.context-menu-one')
.waitForElement('#context-menu-layer')
.wait(100)
.click('.context-menu-root li:nth-child(3)')
.assert.doesntExist('.context-menu-root .disabled', 'All menu items are enabled')
.click('.context-menu-root li:nth-child(2)')
.assert.text('#msg', 'clicked: cut', 'Enabled menu item sets text')
.done();
},
'Toggled status is saved after menu is closed': function (test) {
test
.open('file://' + pwd + '/test/integration/html/disabled-changing_test.html')
.execute(helper.rightClick, '.context-menu-one')
.waitForElement('#context-menu-layer')
.wait(100)
.click('.context-menu-root li:nth-child(3)')
.assert.doesntExist('.context-menu-root .disabled', 'All menu items are enabled')
.execute(helper.closeMenu, '.context-menu-one')
.wait(100)
.execute(helper.rightClick, '.context-menu-one')
.waitForElement('#context-menu-layer')
.wait(100)
.assert.doesntExist('.context-menu-root .disabled', 'All menu items are still enabled')
.done();
}
};