make sure window.promot doesn't get called, fixes #106

This commit is contained in:
John Bintz 2012-01-09 11:09:34 -05:00
parent 7587381e1e
commit dfe1bece2c
8 changed files with 44 additions and 13 deletions

View File

@ -12,6 +12,15 @@ gem 'guard-shell'
gem 'guard-coffeescript' gem 'guard-coffeescript'
gem 'guard-cucumber' gem 'guard-cucumber'
require 'rbconfig'
case RbConfig::CONFIG['host_os']
when /darwin/
gem 'growl'
gem 'rb-fsevent'
when /linux/
gem 'libnotify'
end
gem 'growl' gem 'growl'
gem 'rake', '0.8.7' gem 'rake', '0.8.7'
gem 'mocha', '0.9.12' gem 'mocha', '0.9.12'

View File

@ -11,6 +11,5 @@ void Page::javaScriptConsoleMessage(const QString & message, int lineNumber, con
} }
void Page::javaScriptAlert(QWebFrame *, const QString &) {} void Page::javaScriptAlert(QWebFrame *, const QString &) {}
bool Page::javaScriptConfirm(QWebFrame *, const QString &) { bool Page::javaScriptConfirm(QWebFrame *, const QString &) { return false; }
return false; bool Page::javaScriptPrompt(QWebFrame *, const QString &, const QString &, QString *) { return false; }
}

View File

@ -12,6 +12,7 @@ class Page: public QWebPage {
void javaScriptConsoleMessage(const QString & message, int lineNumber, const QString & sourceID); void javaScriptConsoleMessage(const QString & message, int lineNumber, const QString & sourceID);
void javaScriptAlert(QWebFrame *, const QString &); void javaScriptAlert(QWebFrame *, const QString &);
bool javaScriptConfirm(QWebFrame *, const QString &); bool javaScriptConfirm(QWebFrame *, const QString &);
bool javaScriptPrompt(QWebFrame *, const QString &, const QString &, QString *);
signals: signals:
void handleError(const QString & message, int lineNumber, const QString & sourceID); void handleError(const QString & message, int lineNumber, const QString & sourceID);
}; };

View File

@ -0,0 +1,7 @@
Feature: Bin - With window.prompt()
Scenario: Alert the user that window.prompt() needs to be stubbed
Given I have a test suite
When I run `bin/jasmine-headless-webkit -j spec/jasmine/window_prompt/window_prompt.yml`
Then the exit status should be 0
And the output should include "You should mock window.prompt"

View File

@ -0,0 +1,2 @@
window.prompt("Yes! Hi!");

View File

@ -0,0 +1,4 @@
src_dir: spec/jasmine/window_prompt
src_files:
- '**/*.js'

View File

@ -48,8 +48,13 @@ if window.JHW
false false
# dialogs # dialogs
window.confirm = (message) -> window.confirm = ->
puts "#{"[confirm]".foreground('red')} jasmine-headless-webkit can't handle confirm() yet! You should mock window.confirm. Returning true." puts "#{"[confirm]".foreground('red')} You should mock window.confirm. Returning true."
true
window.prompt = ->
puts "#{"[prompt]".foreground('red')} You should mock window.prompt. Returning true."
true true

View File

@ -1,6 +1,5 @@
(function() { (function() {
var puts; var puts;
if (window.JHW) { if (window.JHW) {
window.console = { window.console = {
log: function(data) { log: function(data) {
@ -44,7 +43,9 @@
e = e || window.event; e = e || window.event;
JHW.hasError(); JHW.hasError();
puts("The code tried to leave the test page. Check for unhandled form submits and link clicks."); puts("The code tried to leave the test page. Check for unhandled form submits and link clicks.");
if (e) e.returnValue = 'string'; if (e) {
e.returnValue = 'string';
}
return 'string'; return 'string';
}; };
JHW._hasErrors = false; JHW._hasErrors = false;
@ -53,8 +54,12 @@
JHW._hasErrors = true; JHW._hasErrors = true;
return false; return false;
}; };
window.confirm = function(message) { window.confirm = function() {
puts("" + ("[confirm]".foreground('red')) + " jasmine-headless-webkit can't handle confirm() yet! You should mock window.confirm. Returning true."); puts("" + ("[confirm]".foreground('red')) + " You should mock window.confirm. Returning true.");
return true;
};
window.prompt = function() {
puts("" + ("[prompt]".foreground('red')) + " You should mock window.prompt. Returning true.");
return true; return true;
}; };
window.alert = function(message) { window.alert = function(message) {
@ -70,15 +75,14 @@
_ref = jasmine.getEnv().reporter.subReporters_; _ref = jasmine.getEnv().reporter.subReporters_;
for (_i = 0, _len = _ref.length; _i < _len; _i++) { for (_i = 0, _len = _ref.length; _i < _len; _i++) {
reporter = _ref[_i]; reporter = _ref[_i];
if (reporter.consoleLogUsed != null) reporter.consoleLogUsed(msg); if (reporter.consoleLogUsed != null) {
reporter.consoleLogUsed(msg);
}
} }
JHW._usedConsole = true; JHW._usedConsole = true;
return puts(msg); return puts(msg);
}; };
} }
window.CoffeeScriptToFilename = {}; window.CoffeeScriptToFilename = {};
window.CSTF = window.CoffeeScriptToFilename; window.CSTF = window.CoffeeScriptToFilename;
}).call(this); }).call(this);