buffet: add unit tests for http_utils
Added more unit tests for utility functions in http_utils.h
BUG=chromium:367379
TEST=Old and new unit tests pass.
Change-Id: I04e28691bc4db3980783c0033f5691087a8c6ab3
Reviewed-on: https://chromium-review.googlesource.com/197312
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/buffet/http_connection_fake.cc b/buffet/http_connection_fake.cc
index 6731aeb..0507c0b 100644
--- a/buffet/http_connection_fake.cc
+++ b/buffet/http_connection_fake.cc
@@ -67,7 +67,9 @@
}
uint64_t Connection::GetResponseDataSize() const {
- return response_.GetData().size();
+ // HEAD requests must not return body.
+ return (request_.GetMethod() != request_type::kHead) ?
+ response_.GetData().size() : 0;
}
bool Connection::ReadResponseData(void* data, size_t buffer_size,
@@ -75,7 +77,8 @@
size_t size_to_read = GetResponseDataSize() - response_data_ptr_;
if (size_to_read > buffer_size)
size_to_read = buffer_size;
- memcpy(data, response_.GetData().data() + response_data_ptr_, size_to_read);
+ if (size_to_read > 0)
+ memcpy(data, response_.GetData().data() + response_data_ptr_, size_to_read);
if (size_read)
*size_read = size_to_read;
response_data_ptr_ += size_to_read;