2013-07-06 10 views
6

Używam rspec, kapibara. Ustawić locale z nagłówka HTTP jak w poniżejJak ustawić nagłówek http dla wszystkich funkcji kapibara?

before_filter :set_locale 

    def extract_locale_from_accept_language_header 
    request.env['HTTP_ACCEPT_LANGUAGE'].scan(/^[a-z]{2}/).first 
    end 

    def set_locale 
    return I18n.locale = current_user.locale if user_signed_in? 
    I18n.locale = extract_locale_from_accept_language_header || I18n.default_locale 
    end 

Kiedy uruchomić mój test funkcji otrzymuję błąd „metodę niezdefiniowany scan dla NilClass”. Najwyraźniej kapibary nie ustawiają nagłówków HTTP.

Jak ustawić nagłówek http dla wszystkich moich funkcji lub uniknąć tego w inny sposób?

+0

może to może cię zainspirować: https://gist.github.com/raul/717819 – apneadiving

Odpowiedz

11

zależności od kierowcy przeglądarki, można ustawić nagłówki globalnie tak:

Capybara.current_session.driver.headers = { 'Accept-Language' => 'de' } 
    Capybara.current_session.driver.header('Accept-Language', 'de') 
+0

To nie wydaje się 'kija' dla wszystkich funkcje i scenariusze. Każdy pomysł, dlaczego? –

+0

tak. gdzie to konfigurujesz? – phoet

+0

W 'spec_helper.rb', który jest zawarty w każdym pliku operacji. –

Powiązane problemy