@@ -55,6 +55,68 @@ TEST(HTTPMessage, TestParseCookiesMultipleCookies) {
55
55
EXPECT_EQ (msg.getCookie (" Name" ), " " );
56
56
}
57
57
58
+ TEST (HTTPMessage, TestRemoveCookie) {
59
+ HTTPMessage msg;
60
+
61
+ // Test removing a cookie that exists
62
+ msg.getHeaders ().set (" Cookie" ,
63
+ " id=1256679245; data=0:1234567; session=abc123" );
64
+ EXPECT_EQ (msg.getCookie (" id" ), " 1256679245" );
65
+ EXPECT_EQ (msg.getCookie (" data" ), " 0:1234567" );
66
+ EXPECT_EQ (msg.getCookie (" session" ), " abc123" );
67
+
68
+ // Remove middle cookie
69
+ msg.removeCookie (" data" );
70
+ EXPECT_EQ (msg.getCookie (" id" ), " 1256679245" );
71
+ EXPECT_EQ (msg.getCookie (" data" ), " " );
72
+ EXPECT_EQ (msg.getCookie (" session" ), " abc123" );
73
+
74
+ // Verify Cookie header was reconstructed properly
75
+ const std::string& cookieHeader = msg.getHeaders ().getSingleOrEmpty (" Cookie" );
76
+ EXPECT_TRUE (cookieHeader.find (" id=1256679245" ) != std::string::npos);
77
+ EXPECT_TRUE (cookieHeader.find (" session=abc123" ) != std::string::npos);
78
+ EXPECT_TRUE (cookieHeader.find (" data=0:1234567" ) == std::string::npos);
79
+
80
+ // Remove first cookie
81
+ msg.removeCookie (" id" );
82
+ EXPECT_EQ (msg.getCookie (" id" ), " " );
83
+ EXPECT_EQ (msg.getCookie (" session" ), " abc123" );
84
+
85
+ // Remove last remaining cookie - should remove Cookie header entirely
86
+ msg.removeCookie (" session" );
87
+ EXPECT_EQ (msg.getCookie (" session" ), " " );
88
+ EXPECT_FALSE (msg.getHeaders ().exists (" Cookie" ));
89
+ }
90
+
91
+ TEST (HTTPMessage, TestRemoveCookieNonExistent) {
92
+ HTTPMessage msg;
93
+
94
+ // Test removing a cookie that doesn't exist
95
+ msg.getHeaders ().set (" Cookie" , " id=1256679245; data=0:1234567" );
96
+
97
+ // Try to remove non-existent cookie
98
+ msg.removeCookie (" nonexistent" );
99
+
100
+ // Original cookies should still be there
101
+ EXPECT_EQ (msg.getCookie (" id" ), " 1256679245" );
102
+ EXPECT_EQ (msg.getCookie (" data" ), " 0:1234567" );
103
+
104
+ // Cookie header should be unchanged
105
+ const std::string& cookieHeader = msg.getHeaders ().getSingleOrEmpty (" Cookie" );
106
+ EXPECT_TRUE (cookieHeader.find (" id=1256679245" ) != std::string::npos);
107
+ EXPECT_TRUE (cookieHeader.find (" data=0:1234567" ) != std::string::npos);
108
+ }
109
+
110
+ TEST (HTTPMessage, TestRemoveCookieEmptyHeader) {
111
+ HTTPMessage msg;
112
+
113
+ // Test removing cookie when no Cookie header exists
114
+ msg.removeCookie (" nonexistent" );
115
+
116
+ EXPECT_FALSE (msg.getHeaders ().exists (" Cookie" ));
117
+ EXPECT_EQ (msg.getCookie (" nonexistent" ), " " );
118
+ }
119
+
58
120
TEST (HTTPMessage, TestParseQueryParamsSimple) {
59
121
HTTPMessage msg;
60
122
string url =
0 commit comments