هل من الممكن أن تحقق المجال الذي تم تعيين ملف تعريف ارتباط لاستخدام اختبارات القضبان التكامل؟

StackOverflow https://stackoverflow.com/questions/1203605

سؤال

وأنا باستخدام تقنية التالية لتعيين ملف تعريف ارتباط بطاقة البرية للمجال لدينا:

cookies['root_domain_flash_warning'] = {
  'value' => 'mistakes have been made!',
  'domain' => ".#{APP_DOMAIN}",
  'expires' => 2.minutes.from_now
}

والذي يبدو للعمل بشكل ملائم. للأسف لا أستطيع أن يبدو للبحث عن أي شيء ولكن القيمة المقترنة المفتاح "القيمة" في تجزئة تمريرها إلى CookieJar # [] = بسبب حقيقة أن CookieJar # [] لا في الواقع إعادة خيارات التجزئة التي تم تمريرها إلى لل طريقة المتبادل.

لا أحد يعرف من وسيلة للتحقق من المجال تم تعيين ارتباط للفي اختبار وظيفي؟

هل كانت مفيدة؟

المحلول

هل يمكن أن تحقق قيمة رأس Set-Cookie التي يمكن الوصول إليها في @response.headers['Set-Cookie'].

وجرب شيئا على طول هذه الخطوط:

def test_something
  get '/my_action'
  assert_equal ["root_domain_flash_warning=mistakes+have+been+made!; domain=.mydomain.com; path=/; expires=Fri, 07-Aug-2009 11:42:21 GMT"], @response.headers['Set-Cookie']
end

وأنت لا يمكن استخراج هذه القيم من أسلوب cookies، للأسف. في مصدر ActionController::Integration::Session#process (actionpack/lib/action_controller/integration.rb)، الكوكيز اختبار التكامل هي عمليات النحو المبين أدناه، التي تستخرج سوى جزء من value تجزئة المدخلات:

(@headers['Set-Cookie'] || "").split("\n").each do |cookie|
  name, value = cookie.match(/^([^=]*)=([^;]*);/)[1,2]
  @cookies[name] = value
end
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top