Module: HyperSpec::WaitForAjax
- Defined in:
- lib/hyper-spec/wait_for_ajax.rb
Instance Method Summary collapse
Instance Method Details
#finished_all_ajax_requests? ⇒ Boolean
37 38 39 40 41 42 43 |
# File 'lib/hyper-spec/wait_for_ajax.rb', line 37 def finished_all_ajax_requests? !running? rescue Capybara::NotSupportedByDriverError true rescue Exception => e e. == 'either jQuery or Hyperloop::HTTP is not defined' end |
#running? ⇒ Boolean
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/hyper-spec/wait_for_ajax.rb', line 12 def running? jscode = <<-CODE (function() { if (typeof Opal !== "undefined" && Opal.Hyperloop !== undefined) { try { return Opal.Hyperloop.$const_get("HTTP")["$active?"](); } catch(err) { if (typeof jQuery !== "undefined" && jQuery.active !== undefined) { return (jQuery.active > 0); } else { return false; } } } else if (typeof jQuery !== "undefined" && jQuery.active !== undefined) { return (jQuery.active > 0); } else { return false; } })(); CODE page.evaluate_script(jscode) rescue Exception => e puts "wait_for_ajax failed while testing state of ajax requests: #{e}" end |
#wait_for_ajax ⇒ Object
3 4 5 6 7 8 9 10 |
# File 'lib/hyper-spec/wait_for_ajax.rb', line 3 def wait_for_ajax Timeout.timeout(Capybara.default_max_wait_time) do loop do sleep 0.25 break if finished_all_ajax_requests? end end end |