Я сталкиваюсь с ошибкой при попытке настроить omniauth для целей интеграционного тестирования с огурцом (я настроил Omniauth через Devise, как предоставляет вики)
Пожалуйста, см. Ниже:
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
Здесьмои файлы:
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"
}
}
инициализатор /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
(ссылка: выпуск 257 )
маршруты
devise_scope :user do
get '/auth/:provider' => 'users/omniauth_callbacks#passthru'
end
devise_for :users, :path => "", :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }
В качестве информации я также настроил свой тестовый файл facebook test_app сследующий URL: http://example.com/
Я был бы рад узнать, если кто-то думал или испытал это.Спасибо!