diff options
Diffstat (limited to 'test/storage/http_reading.cpp')
-rw-r--r-- | test/storage/http_reading.cpp | 89 |
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" }, |