From a1638dd43000601af87f10d79d80f083c4fc15a9 Mon Sep 17 00:00:00 2001 From: Bjorn Brala Date: Wed, 31 Aug 2016 12:15:52 +0200 Subject: [PATCH] Add callback test --- test/integration/callback.js | 60 --------------------------------- test/integration_test_helper.js | 27 --------------- test/specs/callback.js | 28 +++++++++++++++ 3 files changed, 28 insertions(+), 87 deletions(-) delete mode 100644 test/integration/callback.js delete mode 100644 test/integration_test_helper.js create mode 100644 test/specs/callback.js diff --git a/test/integration/callback.js b/test/integration/callback.js deleted file mode 100644 index a482f68b..00000000 --- a/test/integration/callback.js +++ /dev/null @@ -1,60 +0,0 @@ -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 = { - 'Ensure edit menu item triggers callback': function (test) { - test - .open('file://' + pwd + '/test/integration/html/callback_test.html') - .execute(helper.rightClick, '.context-menu-one') - .waitForElement('#context-menu-layer') - .wait(100) - .assert.visible('.context-menu-root', 'Menu is present') - .click('.context-menu-root li:nth-child(1)') // edit - .assert.text('#msg', 'edit was clicked', 'Edit item triggers callback') - .assert.doesntExist('#context-menu-layer', 'It closes context menu') - .done(); - }, - - 'Ensure cut menu item triggers global callback': function (test) { - test - .open('file://' + pwd + '/test/integration/html/callback_test.html') - .execute(helper.rightClick, '.context-menu-one') - .waitForElement('#context-menu-layer') - .wait(100) - .assert.visible('.context-menu-root', 'Menu is present') - .click('.context-menu-root li:nth-child(2)') // cut - .assert.text('#msg', 'global: cut', 'Cut item triggers callback') - .assert.doesntExist('#context-menu-layer', 'It closes context menu') - .done(); - }, - - 'Ensure delete menu item triggers global callback': function (test) { - test - .open('file://' + pwd + '/test/integration/html/callback_test.html') - .execute(helper.rightClick, '.context-menu-one') - .waitForElement('#context-menu-layer') - .wait(100) - .assert.visible('.context-menu-root', 'Menu is present') - .click('.context-menu-root li:nth-child(5)') // delete - .assert.text('#msg', 'global: delete', 'delete item triggers callback') - .assert.doesntExist('#context-menu-layer', 'It closes context menu') - .done(); - }, - - 'Ensure quit menu item triggers global callback': function (test) { - test - .open('file://' + pwd + '/test/integration/html/callback_test.html') - .execute(helper.rightClick, '.context-menu-one') - .waitForElement('#context-menu-layer') - .wait(100) - .assert.visible('.context-menu-root', 'Menu is present') - .click('.context-menu-root li:nth-child(7)') // quit - .assert.text('#msg', 'global: quit', 'quit item triggers callback') - .assert.doesntExist('#context-menu-layer', 'It closes context menu') - .done(); - } -}; diff --git a/test/integration_test_helper.js b/test/integration_test_helper.js deleted file mode 100644 index 18f5133c..00000000 --- a/test/integration_test_helper.js +++ /dev/null @@ -1,27 +0,0 @@ -module.exports = { - - /* simulate right click event in javascript */ - rightClick: function rightClick(selector, type) { - var element = document.querySelector(selector); - var evt = element.ownerDocument.createEvent('MouseEvents'); - var RIGHT_CLICK_BUTTON_CODE = 2; - var eventType = type ? type : 'contextmenu'; - - evt.initMouseEvent(eventType, true, true, - element.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, - false, false, false, RIGHT_CLICK_BUTTON_CODE, null); - - if (document.createEventObject) { - // dispatch for IE <= 9 - return element.fireEvent('onclick', evt) - } else { - // dispatch for normal browsers - return !element.dispatchEvent(evt); - } - }, - - /* close jQuery contextMenu */ - closeMenu: function closeMenu(selector) { - jQuery(selector).contextMenu('hide'); - } -}; diff --git a/test/specs/callback.js b/test/specs/callback.js new file mode 100644 index 00000000..a45c5c47 --- /dev/null +++ b/test/specs/callback.js @@ -0,0 +1,28 @@ +var assert = require('assert'); +var pwd = process.cwd(); + +describe('Test callback', function() { + function openCallbackMenu() { + browser.url('file://' + pwd + '/test/integration/html/callback.html'); + browser.rightClick('.context-menu-one'); + browser.waitForExist('#context-menu-layer'); + assert.equal(true, browser.isVisible('.context-menu-root'), 'menu is visible'); + } + + it('Ensure edit menu item triggers callback', function () { + openCallbackMenu(); + + browser.leftClick('.context-menu-root li:nth-child(1)'); + assert.equal('edit was clicked', browser.alertText()); + browser.alertAccept(); + assert.equal(false, browser.isVisible('£context-menu-layer'), 'menu is hidden'); + }); + it('Ensure cut menu item triggers global callback', function () { + openCallbackMenu(); + + browser.leftClick('.context-menu-root li:nth-child(2)'); + assert.equal('global: cut', browser.alertText()); + browser.alertAccept(); + assert.equal(false, browser.isVisible('£context-menu-layer'), 'menu is hidden'); + }); +}); \ No newline at end of file