Skip to content

Commit 02903d0

Browse files
committed
add tests for url_search_params::set
1 parent 9bb6ae2 commit 02903d0

File tree

4 files changed

+27
-18
lines changed

4 files changed

+27
-18
lines changed

include/ada/url_search_params-inl.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,7 @@ inline void url_search_params::append(const std::string_view key,
2121
params.emplace_back(std::string(key), std::string(value));
2222
}
2323

24-
inline size_t url_search_params::get_size() const noexcept {
25-
return params.size();
26-
}
24+
inline size_t url_search_params::size() const noexcept { return params.size(); }
2725

2826
inline std::optional<std::string_view> url_search_params::get(
2927
const std::string_view key) {

include/ada/url_search_params.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,15 @@ namespace ada {
1616
* @see https://url.spec.whatwg.org/#interface-urlsearchparams
1717
*/
1818
struct url_search_params {
19+
// TODO: Add missing constructors
1920
url_search_params() = default;
2021
url_search_params(const url_search_params &u) = default;
2122
url_search_params(url_search_params &&u) noexcept = default;
2223
url_search_params &operator=(url_search_params &&u) noexcept = default;
2324
url_search_params &operator=(const url_search_params &u) = default;
2425
~url_search_params() = default;
2526

26-
[[nodiscard]] inline size_t get_size() const noexcept;
27+
[[nodiscard]] inline size_t size() const noexcept;
2728

2829
/**
2930
* @see https://url.spec.whatwg.org/#dom-urlsearchparams-append
@@ -33,8 +34,8 @@ struct url_search_params {
3334
/**
3435
* @see https://url.spec.whatwg.org/#dom-urlsearchparams-delete
3536
*/
36-
inline void remove(std::string_view key);
37-
inline void remove(std::string_view key, std::string_view value);
37+
void remove(std::string_view key);
38+
void remove(std::string_view key, std::string_view value);
3839

3940
/**
4041
* @see https://url.spec.whatwg.org/#dom-urlsearchparams-get
@@ -54,20 +55,19 @@ struct url_search_params {
5455
/**
5556
* @see https://url.spec.whatwg.org/#dom-urlsearchparams-set
5657
*/
57-
inline void set(std::string_view key, std::string_view value);
58+
void set(std::string_view key, std::string_view value);
5859

5960
/**
6061
* @see https://url.spec.whatwg.org/#dom-urlsearchparams-sort
6162
*/
62-
inline void sort() const noexcept;
63+
void sort() const noexcept;
6364

6465
/**
6566
* @see https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior
6667
*/
6768
std::string to_string();
6869

6970
private:
70-
uint32_t size{0};
7171
std::vector<std::tuple<std::string, std::string>> params{};
7272
}; // url_search_params
7373

src/url_search_params.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@
88

99
namespace ada {
1010

11-
inline void url_search_params::remove(const std::string_view key) {
11+
void url_search_params::remove(const std::string_view key) {
1212
params.erase(
1313
std::remove_if(params.begin(), params.end(),
1414
[&key](auto param) { return std::get<0>(param) == key; }),
1515
params.end());
1616
}
1717

18-
inline void url_search_params::remove(const std::string_view key,
19-
std::string_view value) {
18+
void url_search_params::remove(const std::string_view key,
19+
std::string_view value) {
2020
params.erase(std::remove_if(params.begin(), params.end(),
2121
[&key, &value](auto param) {
2222
return std::get<0>(param) == key &&
@@ -25,12 +25,12 @@ inline void url_search_params::remove(const std::string_view key,
2525
params.end());
2626
}
2727

28-
inline void url_search_params::sort() const noexcept {
28+
void url_search_params::sort() const noexcept {
2929
// TODO: Implement this
3030
}
3131

32-
inline void url_search_params::set(const std::string_view key,
33-
const std::string_view value) {
32+
void url_search_params::set(const std::string_view key,
33+
const std::string_view value) {
3434
params.erase(
3535
std::remove_if(params.begin(), params.end(),
3636
[&key](auto param) { return std::get<0>(param) == key; }),

tests/url_search_params.cpp

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
TEST(url_search_params, append) {
55
auto search_params = ada::url_search_params();
66
search_params.append("key", "value");
7-
ASSERT_EQ(search_params.get_size(), 1);
7+
ASSERT_EQ(search_params.size(), 1);
88
ASSERT_TRUE(search_params.has("key"));
99
search_params.append("key", "value2");
10-
ASSERT_EQ(search_params.get_size(), 2);
10+
ASSERT_EQ(search_params.size(), 2);
1111
ASSERT_EQ(search_params.get_all("key").size(), 2);
1212
SUCCEED();
1313
}
@@ -16,7 +16,18 @@ TEST(url_search_params, to_string) {
1616
auto search_params = ada::url_search_params();
1717
search_params.append("key1", "value1");
1818
search_params.append("key2", "value2");
19-
ASSERT_EQ(search_params.get_size(), 2);
19+
ASSERT_EQ(search_params.size(), 2);
2020
ASSERT_EQ(search_params.to_string(), "key1=value1&key2=value2");
2121
SUCCEED();
2222
}
23+
24+
TEST(url_search_params, set) {
25+
auto search_params = ada::url_search_params();
26+
search_params.append("key1", "value1");
27+
search_params.append("key1", "value2");
28+
ASSERT_EQ(search_params.size(), 2);
29+
search_params.set("key1", "hello");
30+
ASSERT_EQ(search_params.size(), 1);
31+
ASSERT_EQ(search_params.to_string(), "key1=hello");
32+
SUCCEED();
33+
}

0 commit comments

Comments
 (0)