Fix check of monitor_until_
Intention was to have max value as special one, but initialization was
missing. In this patch we use null value as special.
BUG: 23755250
Change-Id: I6e7d81d8bd8b403448a6982d6844fa1f81b3d558
diff --git a/libweave/src/privet/wifi_bootstrap_manager.cc b/libweave/src/privet/wifi_bootstrap_manager.cc
index 9948301..1f79606 100644
--- a/libweave/src/privet/wifi_bootstrap_manager.cc
+++ b/libweave/src/privet/wifi_bootstrap_manager.cc
@@ -109,10 +109,12 @@
UpdateState(State::kMonitoring);
if (network_->GetConnectionState() == NetworkState::kConnected) {
- monitor_until_ = base::Time::Max();
+ monitor_until_ = {};
} else {
- if (monitor_until_ == base::Time::Max())
+ if (monitor_until_.is_null()) {
monitor_until_ = base::Time::Now() + base::TimeDelta::FromMinutes(2);
+ VLOG(2) << "Waiting for connection until: " << monitor_until_;
+ }
// Schedule timeout timer taking into account already offline time.
task_runner_->PostDelayedTask(
diff --git a/libweave/src/weave_unittest.cc b/libweave/src/weave_unittest.cc
index 0629dac..0f7e274 100644
--- a/libweave/src/weave_unittest.cc
+++ b/libweave/src/weave_unittest.cc
@@ -427,6 +427,7 @@
.WillOnce(InvokeWithoutArgs([this, offline_from]() {
EXPECT_GT(task_runner_.GetClock()->Now() - offline_from,
base::TimeDelta::FromMinutes(1));
+ task_runner_.Break();
}));
task_runner_.Run();
}
@@ -474,4 +475,21 @@
task_runner_.Run();
}
+TEST_F(WeaveWiFiSetupTest, StartOfflineWithSsid) {
+ EXPECT_CALL(config_store_, LoadSettings())
+ .WillRepeatedly(Return(R"({"last_configured_ssid": "TEST_ssid"})"));
+ EXPECT_CALL(network_, GetConnectionState())
+ .WillRepeatedly(Return(NetworkState::kOffline));
+
+ auto offline_from = task_runner_.GetClock()->Now();
+ EXPECT_CALL(network_, EnableAccessPoint(MatchesRegex("DEVICE_NAME.*prv")))
+ .WillOnce(InvokeWithoutArgs([this, &offline_from]() {
+ EXPECT_GT(task_runner_.GetClock()->Now() - offline_from,
+ base::TimeDelta::FromMinutes(1));
+ task_runner_.Break();
+ }));
+
+ StartDevice();
+}
+
} // namespace weave