2013-12-09 4 views
0

Я использую селен, чтобы проверить мой Google oauth2 логин:рельсы + водосвинка + Селен тестирование Google oauth2 обратного вызова

#spec/featurers/google_spec.rb 
require 'spec_helper' 

describe "the signin process", type: :feature do 
    before do 
     Capybara.current_driver = :selenium 
     visit user_omniauth_authorize_path(:google_oauth2) 
     fill_in "Email", :with => '[email protected]' 
     fill_in "Password", :with => 'test' 
     click_button 'Accedi' 
     #in this point it crash 
     click_button 'Consenti' 
    end 
    it { page.should have_content('Google') } 
end 

это работает, но у меня есть проблемы, чтобы управлять Google обратного вызова:

Errore:redirect_uri_mismatch 
The redirect URI in the request: http://127.0.0.1:58272/users/auth/google_oauth2/callback did not match a registered redirect URI 

как я могу управлять этим callaback? если сделать реальный тест, вместо 127.0.01: 58272 У меня есть localhost: 3000, и он работает.

РЕШЕНИЕ

в spec_helper.rb или, более конкретно, в вашем файле спецификации в перед блоком.

describe "the signin process" do 
    before do 
    Capybara.run_server = true #Whether start server when testing 
    Capybara.current_driver = :selenium 
    Capybara.server_host= 'localhost' #this is the goal 
    Capybara.server_port = 3000 
    visit user_omniauth_authorize_path(:google_oauth2) 
    end 
    it {#some} 
end 
+0

Отметьте этот вопрос: http://stackoverflow.com/questions/20388082/rails3-2rspeccapybara1-0-test-devise-google-oauth2-0 – kddeisz

+0

У меня другая проблема , im возможность посещать внешние ссылки, но я не могу управлять обратным обратным адресом – user1066183

ответ

0

The redirect_uri работает только если вы генерировали идентификатор клиента в консоли на https://code.google.com/apis/console/.

При создании идентификатора клиента вы должны выбрать Installed Application, чтобы заставить его работать. Дополнительная информация о генерации идентификатора клиента: https://developers.google.com/console/help/#generatingoauth2

+0

Я только что разместил свое решение – user1066183

+0

, чтобы вы создали идентификатор клиента для 127.0.0.1:3000 в консоли Google? Имейте в виду, что, установив порт тестовой среды на 3000, вам нужно будет убедиться, что сервер в режиме разработки не работает на порту 3000. – cantonic

Смежные вопросы