Class: Capybara::RackTestJson::Client

Inherits:
Object
  • Object
show all
Includes:
Rack::Test::Methods
Defined in:
lib/capybara/rack_test_json/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(app, options) ⇒ Client

Returns a new instance of Client.



9
10
11
# File 'lib/capybara/rack_test_json/client.rb', line 9

def initialize(app, options)
  @app, @options = app, options
end

Instance Attribute Details

#appObject

Returns the value of attribute app.



7
8
9
# File 'lib/capybara/rack_test_json/client.rb', line 7

def app
  @app
end

#optionsObject

Returns the value of attribute options.



7
8
9
# File 'lib/capybara/rack_test_json/client.rb', line 7

def options
  @options
end

Instance Method Details

#request_with_follow_redirect(uri, env) ⇒ Object

Raises:

  • (Capybara::InfiniteRedirectError)


26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/capybara/rack_test_json/client.rb', line 26

def request_with_follow_redirect(uri, env)
  request(uri, env)
  (5+1).times do
    if last_response.redirect?
      request(last_response["Location"], env.merge(:method => "GET"))
    else
      return
    end
  end

  # 6 times redirect cause InfiniteRedirectError
  raise Capybara::InfiniteRedirectError,
  "redirected more than 5 times, check for infinite redirects."
end