| 125 | BOOST_CORE_STATIC_ASSERT(std::is_move_assignable<header<false>>::value); |
| 126 | |
| 127 | void |
| 128 | testMessage() |
| 129 | { |
| 130 | { |
| 131 | Arg1 arg1; |
| 132 | request<one_arg_body>{verb::get, "/", 11, std::move(arg1)}; |
| 133 | BEAST_EXPECT(arg1.moved); |
| 134 | } |
| 135 | |
| 136 | { |
| 137 | header<true> h; |
| 138 | h.set(field::user_agent, "test"); |
| 139 | BEAST_EXPECT(h[field::user_agent] == "test"); |
| 140 | request<default_body> m{std::move(h)}; |
| 141 | BEAST_EXPECT(m[field::user_agent] == "test"); |
| 142 | BEAST_EXPECT(h.count(field::user_agent) == 0); |
| 143 | } |
| 144 | { |
| 145 | request<empty_body> h{verb::get, "/", 10}; |
| 146 | h.set(field::user_agent, "test"); |
| 147 | request<one_arg_body> m{std::move(h.base()), Arg1{}}; |
| 148 | BEAST_EXPECT(m["User-Agent"] == "test"); |
| 149 | BEAST_EXPECT(h.count(http::field::user_agent) == 0); |
| 150 | BEAST_EXPECT(m.method() == verb::get); |
| 151 | BEAST_EXPECT(m.target() == "/"); |
| 152 | BEAST_EXPECT(m.version() == 10); |
| 153 | } |
| 154 | |
| 155 | // swap |
| 156 | request<string_body> m1; |
| 157 | request<string_body> m2; |
| 158 | m1.target("u"); |
| 159 | m1.body() = "1"; |
| 160 | m1.insert("h", "v"); |
| 161 | m2.method_string("G"); |
| 162 | m2.body() = "2"; |
| 163 | swap(m1, m2); |
| 164 | BEAST_EXPECT(m1.method_string() == "G"); |
| 165 | BEAST_EXPECT(m2.method_string().empty()); |
| 166 | BEAST_EXPECT(m1.target().empty()); |
| 167 | BEAST_EXPECT(m2.target() == "u"); |
| 168 | BEAST_EXPECT(m1.body() == "2"); |
| 169 | BEAST_EXPECT(m2.body() == "1"); |
| 170 | BEAST_EXPECT(! m1.count("h")); |
| 171 | BEAST_EXPECT(m2.count("h")); |
| 172 | } |
| 173 | |
| 174 | struct MoveFields : fields |
| 175 | { |