mirror of
https://github.com/yhirose/cpp-httplib.git
synced 2026-11-12 16:50:26 +00:00
Preserve aliased keys when erasing entries (#2659)
Co-authored-by: astunm <astunm@users.noreply.github.com>
This commit is contained in:
1 parent
cdcd2ac6e6
commit
cc7a30f12f
2 files changed
+8
-1
No files matched your search
@@ -1344,7 +1344,7 @@ public:
|
|||||||
size_type erase(const std::string &key) {
|
size_type erase(const std::string &key) {
|
||||||
auto before = entries_.size();
|
auto before = entries_.size();
|
||||||
entries_.erase(std::remove_if(entries_.begin(), entries_.end(),
|
entries_.erase(std::remove_if(entries_.begin(), entries_.end(),
|
||||||
[&](const value_type &entry) {
|
[key](const value_type &entry) {
|
||||||
return keys_equal(entry.first, key);
|
return keys_equal(entry.first, key);
|
||||||
}),
|
}),
|
||||||
entries_.end());
|
entries_.end());
|
||||||
|
|||||||
@@ -2392,6 +2392,13 @@ TEST(HeadersOrderTest, ErasingByNameKeepsTheRemainingOrder) {
|
|||||||
EXPECT_EQ("B=2 C=4 ", entries_to_string(headers));
|
EXPECT_EQ("B=2 C=4 ", entries_to_string(headers));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(HeadersOrderTest, ErasingAnAliasedNameKeepsTheRemainingOrder) {
|
||||||
|
Headers headers = {{"A", "1"}, {"B", "2"}, {"a", "3"}, {"B", "4"}};
|
||||||
|
|
||||||
|
EXPECT_EQ(2U, headers.erase(headers.begin()->first));
|
||||||
|
EXPECT_EQ("B=2 B=4 ", entries_to_string(headers));
|
||||||
|
}
|
||||||
|
|
||||||
TEST(HeadersOrderTest, EmplaceFrontPrepends) {
|
TEST(HeadersOrderTest, EmplaceFrontPrepends) {
|
||||||
Headers headers = {{"Accept", "*/*"}, {"User-Agent", "test"}};
|
Headers headers = {{"Accept", "*/*"}, {"User-Agent", "test"}};
|
||||||
headers.emplace_front("Host", "example.com");
|
headers.emplace_front("Host", "example.com");
|
||||||
|
|||||||
Reference in new issue
Block a user