Module: CucumberJavascript

Defined in:
lib/capybara_envjs_fixes/cucumber_fixes/javascript.rb

Constant Summary collapse

MOCK_DEBUG =
%{
  console = {
    log: function (text) {
      Ruby.Rails.logger().debug('*** Javascript: ' + text + ' ***');
    }
  };
}
MOCK_SET_TIMEOUT =
%{
  setTimeout = function() {
    arguments[0].call();
  };
}
MOCK_JQUERY_FADE =
%{
  (function() {
    $.fn.fadeOut = function() {
      if($.isFunction(arguments[0])) {
        arguments[0].call();
      } else if($.isFunction(arguments[1])) {
        arguments[1].call();
      }
      return this;
    };
    $.fn.fadeIn = function() {
      if($.isFunction(arguments[0])) {
        arguments[0].call();
      } else if($.isFunction(arguments[1])) {
        arguments[1].call();
      }
      return this;
    };
  })();
}
MOCK_ENVJS =
%{
  /* fixes the .value property on textareas in env.js */
  var extension = {
    get value() { return this.innerText; },
    set value(newValue) { this.innerText = newValue; }
  };
  var valueGetter = extension.__lookupGetter__('value');
  HTMLTextAreaElement.prototype.__defineGetter__('value', valueGetter);
  var valueSetter = extension.__lookupSetter__('value');
  HTMLTextAreaElement.prototype.__defineSetter__('value', valueSetter);
}
MOCK_JAVASCRIPT =
(MOCK_SET_TIMEOUT + MOCK_DEBUG + MOCK_ENVJS).freeze
MOCK_JQUERY =
MOCK_JQUERY_FADE.freeze