Rails/Cucumber - Hosting error testing omniauth (provider: facebook) - (URI::InvalidComponentError)

I am facing an error trying to configure omniauth for integration testing purpose with cucumber (I set up Omniauth through Devise as the wiki provides)

Please see below:

Scenario: Test                       # features/omniauth.feature:3
  Given I am signed in with facebook # features/step_definitions/omniauth_steps.rb:1
    bad component(expected host component): http://www.example.com (URI::InvalidComponentError)
    /Users/benoit/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/uri/generic.rb:395:in `check_host'
    /Users/benoit/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/uri/generic.rb:409:in `host='
    ./features/step_definitions/omniauth_steps.rb:2:in `/^I am signed in with facebook$/'
    features/omniauth.feature:4:in `Given I am signed in with facebook'
  Then I open the page               # features/step_definitions/debug_steps.rb:5

Here are my files:

omniauth.feature
Feature: OmniAuth

  Scenario: Test
    Given I am signed in with facebook
    Then I open the page
omniauth_steps.rb
Given /^I am signed in with facebook$/ do
  visit "/auth/facebook"
end
support/env.rb
OmniAuth.config.test_mode = true
OmniAuth.config.mock_auth[:facebook] = {
  'uid' => '12345',
  "user_info" => {
    "email" => "foobar@example.com",
    "first_name" => "foo",
    "last_name" => "Bar"
  }
}
initializer/devise.rb
case 
  when Rails.env.production?
    config.omniauth :facebook, 'XXXX', 'XXXX', 
    {:scope => 'email, offline_access', :client_options => {:ssl => {:ca_file => '/usr/lib/ssl/certs/ca-certificates.crt'}}}
  when Rails.env.development?
    config.omniauth :facebook, 'XXXX', 'XXXX'
  when Rails.env.test?
    config.omniauth :facebook, 'XXXX', 'XXXX'
        OmniAuth.config.full_host = 'http://example.com' # issue 257  
end

(Reference: issue 257)

routes
devise_scope :user do 
  get '/auth/:provider' => 'users/omniauth_callbacks#passthru'
end

devise_for :users, :path => "", :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }

As info, I also configured my facebook test_app with the following URL: http://example.com/

I would be pleased to know if someone has a thought/experienced this. Thank you!

Answers


try to add :

Before do
  Capybara.default_host = 'example.com'
end

to your support/env.rb file, try also commenting out :

OmniAuth.config.full_host = 'http://example.com' # issue 257

from your initializer/devise.rb file.


Need Your Help

Logging Clientside JavaScript Errors on Server

javascript logging error-handling

Im running a ASP.NET Site where I have problems to find some JavaScript Errors just with manual testing.

Configuration of Unity IoC with Web API 4.5

asp.net-mvc asp.net-web-api unity

I'm trying to configure Unity IoC in ASP.NET Web Api project. I have made installation of Unity.WebAPI package:

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.