From 8b323fd1ff3e6e4cda662fde83df9682a4997020 Mon Sep 17 00:00:00 2001 From: John Bintz Date: Fri, 3 Aug 2012 16:32:35 -0400 Subject: [PATCH] better support for when capybara-webkit isn't around --- lib/cuke-pack/support/wait_for.rb | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/lib/cuke-pack/support/wait_for.rb b/lib/cuke-pack/support/wait_for.rb index 181382b..9de85de 100644 --- a/lib/cuke-pack/support/wait_for.rb +++ b/lib/cuke-pack/support/wait_for.rb @@ -1,13 +1,31 @@ MAX_TIMES = 20 WAIT_TIME = 0.1 +def _wait_for_exceptions + exceptions = [ Capybara::ElementNotFound ] + if defined?(Capybara::Driver::Webkit::Node::ElementNotDisplayedError) + exceptions << Capybara::Driver::Webkit::Node::ElementNotDisplayedError + end + + exceptions +end + +def _wait_for_not_exceptions + exceptions = [ Capybara::ElementNotFound ] + if defined?(Capybara::Driver::Webkit::NodeNotAttachedError) + exceptions << Capybara::Driver::Webkit::NodeNotAttachedError + end + + exceptions +end + def wait_for(times = MAX_TIMES) 1.upto(times) do ok = false begin ok = yield - rescue Capybara::ElementNotFound, Capybara::Driver::Webkit::Node::ElementNotDisplayedError + rescue *_wait_for_exceptions ok = false end @@ -30,7 +48,7 @@ def wait_for_not(times = MAX_TIMES) begin yield - rescue Capybara::Driver::Webkit::NodeNotAttachedError, Capybara::ElementNotFound + rescue *_wait_for_not_exceptions ok = true end