Skip to content

Commit c334d5e

Browse files
committed
test: add url_search_params::to_string tests
1 parent 62d73ff commit c334d5e

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

include/ada/url_search_params.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,10 @@ struct url_search_params {
6161
*/
6262
inline void sort() const noexcept;
6363

64-
inline std::string to_string();
64+
/**
65+
* @see https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior
66+
*/
67+
std::string to_string();
6568

6669
private:
6770
uint32_t size{0};

src/url_search_params.cpp

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,8 @@ inline void url_search_params::set(const std::string_view key,
3939
params.emplace_back(std::string(key), std::string(value));
4040
}
4141

42-
inline std::string url_search_params::to_string() {
43-
if (params.empty()) {
44-
return "";
45-
}
46-
std::string out = "?";
42+
std::string url_search_params::to_string() {
43+
std::string out{};
4744
for (size_t i = 0; i < params.size(); i++) {
4845
auto param = params[i];
4946
auto key = std::get<0>(param);

tests/url_search_params.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,12 @@ TEST(url_search_params, append) {
1111
ASSERT_EQ(search_params.get_all("key").size(), 2);
1212
SUCCEED();
1313
}
14+
15+
TEST(url_search_params, to_string) {
16+
auto search_params = ada::url_search_params();
17+
search_params.append("key1", "value1");
18+
search_params.append("key2", "value2");
19+
ASSERT_EQ(search_params.get_size(), 2);
20+
ASSERT_EQ(search_params.to_string(), "key1=value1&key2=value2");
21+
SUCCEED();
22+
}

0 commit comments

Comments
 (0)