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 = {
  'Click custom comand menu item triggers menu callback': function (test) {
    test
      .open('file://' + pwd + '/demo/custom-command_test.html')
      .execute(helper.rightClick, '.context-menu-custom')
      .waitForElement('#context-menu-layer')
      .assert.numberOfElements('.context-menu-root>li')
        .is(3, '3 context menu items are shown')
      .click('.context-menu-root li.labels')
      .assert.text('#msg').to.contain('clicked: label', 'contextMenu callback was triggered')
      .done();
  },

  'Click custom comand menu item label triggers custom action - red': function (test) {
    test
      .open('file://' + pwd + '/demo/custom-command_test.html')
      .execute(helper.rightClick, '.context-menu-custom')
      .waitForElement('#context-menu-layer')
      .wait(100)
      .click('.context-menu-root li.labels .label1')
      .assert.text('#msg', 'clicked: label | text: label 1', 'custom action was triggered')
      .done();
  },

  'Click custom comand menu item label triggers custom action - blue': function (test) {
    test
      .open('file://' + pwd + '/demo/custom-command_test.html')
      .execute(helper.rightClick, '.context-menu-custom')
      .waitForElement('#context-menu-layer')
      .wait(100)
      .click('.context-menu-root li.labels .label3')
      .assert.text('#msg', 'clicked: label | text: label 3', 'custom action was triggered')
      .done();
  }
};
