هل من الممكن أن تحقق المجال الذي تم تعيين ملف تعريف ارتباط لاستخدام اختبارات القضبان التكامل؟
-
05-07-2019 - |
سؤال
وأنا باستخدام تقنية التالية لتعيين ملف تعريف ارتباط بطاقة البرية للمجال لدينا:
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