Module: Cucumber::JsConsoleErrors

Defined in:
lib/cucumber/js_console_errors.rb,
lib/cucumber/js_console_errors/version.rb

Constant Summary collapse

VERSION =
"0.0.1"

Class Method Summary collapse

Class Method Details

.inject_scriptObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/cucumber/js_console_errors.rb', line 6

def self.inject_script
  return '' unless ::Rails.env == 'test'

  "  <script type=\"text/javascript\">\n\n      window.onerror = function(message, url, linenumber) {\n\n        // We want to avoid a dependency on jQuery or any other library in case\n        // the error we are capturing is due to those libraries blowing up\n        var escapeHtml = function (str) {\n          return String(str)\n            .replace(/&/g, \"&amp;\")\n            .replace(/</g, \"&lt;\")\n            .replace(/>/g, \"&gt;\")\n            .replace(/\"/g, \"&quot;\")\n            .replace(/'/g, \"&#039;\")\n            .replace(/\\\\//g, \"&#x2F;\");\n        };\n\n        var errorReport = '*** JavaScript Console Error: ' + message +\n          ' on line ' + linenumber + ' for ' + url + ' (error location may' +\n          ' be in a different file/linenumber if the test environment is' +\n          ' running minified Javascript) ***';\n\n        var elemDiv = document.createElement('div');\n        elemDiv.className = 'debug-captured-javascript-console-errors';\n        elemDiv.innerHTML = escapeHtml(errorReport);\n\n        // The body may not be defined yet\n        if (document.body) {\n          document.body.appendChild(elemDiv);\n        } else {\n          window.onload = function() {\n            document.body.appendChild(elemDiv);\n          };\n        }\n      };\n\n  </script>\n  EOF\n\nend\n"