From aaf9e8256fa5f9d5cc9f4acfebf28b28d8c543e8 Mon Sep 17 00:00:00 2001 From: "Thiago Marcos P. Santos" Date: Tue, 8 Mar 2016 00:14:42 -0300 Subject: [PATCH] [tests] Add utest for NetworkStatus::Online/Offline --- test/storage/http_retry_network_status.cpp | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/test/storage/http_retry_network_status.cpp b/test/storage/http_retry_network_status.cpp index feb07d024..02ba8b27b 100644 --- a/test/storage/http_retry_network_status.cpp +++ b/test/storage/http_retry_network_status.cpp @@ -101,3 +101,36 @@ TEST_F(Storage, HTTPNetworkStatusChangePreempt) { loop.run(); } + +TEST_F(Storage, HTTPNetworkStatusOnlineOffline) { + SCOPED_TEST(HTTPNetworkStatusOnlineOffline) + + using namespace mbgl; + + util::RunLoop loop; + OnlineFileSource fs; + + const Resource resource { Resource::Unknown, "http://127.0.0.1:3000/test" }; + + EXPECT_EQ(NetworkStatus::Get(), NetworkStatus::Status::Online) << "Default status should be Online"; + NetworkStatus::Set(NetworkStatus::Status::Offline); + + util::Timer onlineTimer; + onlineTimer.start(Milliseconds(100), Duration::zero(), [&] () { + NetworkStatus::Set(NetworkStatus::Status::Online); + }); + + std::unique_ptr req = fs.request(resource, [&](Response res) { + req.reset(); + + EXPECT_EQ(nullptr, res.error); + ASSERT_TRUE(res.data.get()); + + EXPECT_EQ(NetworkStatus::Get(), NetworkStatus::Status::Online) << "Triggered before set back to Online"; + + loop.stop(); + HTTPNetworkStatusOnlineOffline.finish(); + }); + + loop.run(); +}