2012-10-22 7 views
7

मेरे एप्लिकेशन के लिए लॉग इन सर्वर मुझे भेजता वापस कुकीज़ (साख और कुछ एप्लिकेशन की कुकी):परीक्षण रिस्पांस कुकी

Response sent 170 bytes of Cookie data: 
Set-Cookie: user_credentials=val; path=/; HttpOnly; Secure 

Response sent 554 bytes of Cookie data: 
Set-Cookie: _app_session=otherVal; path=/; HttpOnly; Secure 

... और फिर घर पृष्ठ पर रीडायरेक्ट;

कुकीज़ में कुछ झंडे शामिल हैं: उदा। httpOnly, Secure, आदि

मैं कैसे परीक्षण कर सकता हूं कि कुकीज़ में रुपये के साथ उन झंडे शामिल हैं या नहीं?

कम से कम मुझे उन कुकीज़ कहां मिल सकती है?

it "should generate cookies with proper flags" do  
    params = Factory.attributes_for(:user, 
     :username => "uname", 
     :password => "upass" 
    ) 
    # login 
    post 'create', params 

    response.should redirect_to home_url # => pass 

    puts "response cookie = #{response.cookies.inspect}" # => {} // no cookies in response, why? 
end 

उत्तर

6

नियंत्रक चश्मा जेनरेट नहीं होती/असली HTTP अनुरोध आह्वान, वे सिर्फ परीक्षण के अंतर्गत नियंत्रक की स्थापना की है और इस पर कार्रवाई का अनुरोध किया आह्वान। कोई http अनुरोध नहीं किया गया है और वास्तविक http उत्तर उत्पन्न होता है। तो आप केवल एक अधिक अमूर्त स्तर पर एक रेल नियंत्रक की आंतरिक कार्यप्रणाली का परीक्षण कर सकते हैं।

इन चश्मा में कुकी हैंडलिंग, बल्कि सरल है इस तरह की एक कार्रवाई में कुकी सेट: निम्न मान में

def set_cookies 
    cookies[:foo] = 'bar' 
    cookies[:lorem] = {:value => 'ipsum', :expires => 3.days.from_now} 

    render :nothing => true 
end 

परिणाम कल्पना में सुलभ:

it "should set some cookie values" do 
    get :set_cookies 

    # response.cookies looks like this: 
    # {'foo' => 'bar', 'lorem' => 'ipsum'}  

    response.cookies['foo'].should == 'bar' 
    response.cookies['lorem'].should == 'ipsum' 
end 

तरह परीक्षण करने के लिए कुकी प्रतिक्रियाओं को जो आप अपने प्रतिक्रियाओं में देखते हैं, आपको वास्तविक http अनुरोधों का उपयोग करना होगा। शायद आप इसके लिए कैपिबरा मणि का उपयोग कर सकते हैं?

+0

हम्म .. वास्तव में 'कैपिबरा' काम के मेरे दायरे से बाहर है लेकिन अभी भी धन्यवाद; – ted

+0

कुकीज वैसे भी कैसे सेट हैं? क्या आप इसे नियंत्रक में कर रहे हैं? – severin

+0

उनमें से एक 'एथलॉगिक' मणि द्वारा सेट किया गया है और दूसरा 'एक्शनकंट्रोलर' द्वारा मेरा मानना ​​है कि – ted