базовое тестирование подлинности http в огурце - PullRequest
3 голосов
/ 19 сентября 2011

Я пытаюсь проверить вход в систему через http basic, но постоянно получаю ошибки, я загрузил код здесь

У меня есть http_basic_authenticate_with name: "name", password: "password" в моем приложении контроллер

Мое определение шага для входа в систему:

Given /^I login as admin$/ do
  authorize "name", "password"
end

но это не работает, и я получаю ошибку

    expected there to be content "Posts" in "HTTP Basic: Access denied.\n"
 (RSpec::Expectations::ExpectationNotMetError)

Может кто-нибудь сказать мне, как заставить огурца / капибару войти?

Ответы [ 2 ]

0 голосов
/ 29 января 2013

Используйте веб-драйвер селена и посетите веб-сайт с page.driver.visit ("https://username:password@example.com")

0 голосов
/ 23 августа 2012

Я получил его для работы с одним из двух разных подходов; сделай свой выбор:

### Following works ONLY if performed first before even going to a page!!!
if page.driver.respond_to?(:basic_auth)
  puts 'Responds to basic_auth'
  page.driver.basic_auth(username, password)
elsif page.driver.respond_to?(:basic_authorize)
  puts 'Responds to basic_authorize'
  page.driver.basic_authorize(username, password)
elsif page.driver.respond_to?(:browser) && page.driver.browser.respond_to?(:basic_authorize)
  puts 'Responds to browser_basic_authorize'
  page.driver.browser.basic_authorize(username, password)
else
  raise "I don't know how to log in!"
end

Мои тесты ответили на browser_basic_authorize

или

encoded_login = ["#{username}:#{password}"].pack("m*")
page.driver.header 'Authorization', "Basic #{encoded_login}"

оба из которых я нашел в нескольких местах в моем поиске.

...