summaryrefslogtreecommitdiff
path: root/test/storage/http_reading.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/storage/http_reading.cpp')
-rw-r--r--test/storage/http_reading.cpp89
1 files changed, 81 insertions, 8 deletions
diff --git a/test/storage/http_reading.cpp b/test/storage/http_reading.cpp
index 4d8d510615..fdc49ee5e6 100644
--- a/test/storage/http_reading.cpp
+++ b/test/storage/http_reading.cpp
@@ -14,7 +14,7 @@ TEST_F(Storage, HTTPTest) {
using namespace mbgl;
util::RunLoop loop;
- OnlineFileSource fs(nullptr);
+ OnlineFileSource fs;
std::unique_ptr<FileRequest> req1 = fs.request({ Resource::Unknown, "http://127.0.0.1:3000/test" },
[&](Response res) {
@@ -39,7 +39,7 @@ TEST_F(Storage, HTTP404) {
using namespace mbgl;
util::RunLoop loop;
- OnlineFileSource fs(nullptr);
+ OnlineFileSource fs;
std::unique_ptr<FileRequest> req2 = fs.request({ Resource::Unknown, "http://127.0.0.1:3000/doesnotexist" },
[&](Response res) {
@@ -47,9 +47,8 @@ TEST_F(Storage, HTTP404) {
EXPECT_TRUE(util::ThreadContext::currentlyOn(util::ThreadType::Main));
ASSERT_NE(nullptr, res.error);
EXPECT_EQ(Response::Error::Reason::NotFound, res.error->reason);
- ASSERT_TRUE(res.data.get());
- EXPECT_EQ("Cannot GET /doesnotexist\n", *res.data);
EXPECT_EQ("HTTP status code 404", res.error->message);
+ EXPECT_FALSE(bool(res.data));
EXPECT_FALSE(bool(res.expires));
EXPECT_FALSE(bool(res.modified));
EXPECT_FALSE(bool(res.etag));
@@ -60,13 +59,88 @@ TEST_F(Storage, HTTP404) {
loop.run();
}
+TEST_F(Storage, HTTPTile404) {
+ SCOPED_TEST(HTTPTile404)
+
+ using namespace mbgl;
+
+ util::RunLoop loop;
+ OnlineFileSource fs;
+
+ std::unique_ptr<FileRequest> req2 = fs.request({ Resource::Tile, "http://127.0.0.1:3000/doesnotexist" },
+ [&](Response res) {
+ req2.reset();
+ EXPECT_TRUE(util::ThreadContext::currentlyOn(util::ThreadType::Main));
+ EXPECT_TRUE(res.noContent);
+ EXPECT_FALSE(bool(res.error));
+ EXPECT_FALSE(bool(res.data));
+ EXPECT_FALSE(bool(res.expires));
+ EXPECT_FALSE(bool(res.modified));
+ EXPECT_FALSE(bool(res.etag));
+ loop.stop();
+ HTTPTile404.finish();
+ });
+
+ loop.run();
+}
+
+TEST_F(Storage, HTTP200EmptyData) {
+ SCOPED_TEST(HTTP200EmptyData)
+
+ using namespace mbgl;
+
+ util::RunLoop loop;
+ OnlineFileSource fs;
+
+ std::unique_ptr<FileRequest> req = fs.request({ Resource::Unknown, "http://127.0.0.1:3000/empty-data" },
+ [&](Response res) {
+ req.reset();
+ EXPECT_TRUE(util::ThreadContext::currentlyOn(util::ThreadType::Main));
+ EXPECT_FALSE(res.noContent);
+ EXPECT_FALSE(bool(res.error));
+ EXPECT_EQ(*res.data, std::string());
+ EXPECT_FALSE(bool(res.expires));
+ EXPECT_FALSE(bool(res.modified));
+ EXPECT_FALSE(bool(res.etag));
+ loop.stop();
+ HTTP200EmptyData.finish();
+ });
+
+ loop.run();
+}
+
+TEST_F(Storage, HTTP204) {
+ SCOPED_TEST(HTTP204)
+
+ using namespace mbgl;
+
+ util::RunLoop loop;
+ OnlineFileSource fs;
+
+ std::unique_ptr<FileRequest> req2 = fs.request({ Resource::Unknown, "http://127.0.0.1:3000/no-content" },
+ [&](Response res) {
+ req2.reset();
+ EXPECT_TRUE(util::ThreadContext::currentlyOn(util::ThreadType::Main));
+ EXPECT_TRUE(res.noContent);
+ EXPECT_FALSE(bool(res.error));
+ EXPECT_FALSE(bool(res.data));
+ EXPECT_FALSE(bool(res.expires));
+ EXPECT_FALSE(bool(res.modified));
+ EXPECT_FALSE(bool(res.etag));
+ loop.stop();
+ HTTP204.finish();
+ });
+
+ loop.run();
+}
+
TEST_F(Storage, HTTP500) {
SCOPED_TEST(HTTP500)
using namespace mbgl;
util::RunLoop loop;
- OnlineFileSource fs(nullptr);
+ OnlineFileSource fs;
std::unique_ptr<FileRequest> req3 = fs.request({ Resource::Unknown, "http://127.0.0.1:3000/permanent-error" },
[&](Response res) {
@@ -74,9 +148,8 @@ TEST_F(Storage, HTTP500) {
EXPECT_TRUE(util::ThreadContext::currentlyOn(util::ThreadType::Main));
ASSERT_NE(nullptr, res.error);
EXPECT_EQ(Response::Error::Reason::Server, res.error->reason);
- ASSERT_TRUE(res.data.get());
- EXPECT_EQ("Server Error!", *res.data);
EXPECT_EQ("HTTP status code 500", res.error->message);
+ EXPECT_FALSE(bool(res.data));
EXPECT_FALSE(bool(res.expires));
EXPECT_FALSE(bool(res.modified));
EXPECT_FALSE(bool(res.etag));
@@ -93,7 +166,7 @@ TEST_F(Storage, HTTPNoCallback) {
using namespace mbgl;
util::RunLoop loop;
- OnlineFileSource fs(nullptr);
+ OnlineFileSource fs;
try {
fs.request({ Resource::Unknown, "http://127.0.0.1:3000/test" },