Test cleanup

Added NotifyNetworkChanged to reuse repeating code.
Added flags argument into InitMdnsPublishing for flexibility.

BUG: 24267885
Change-Id: I376a014c727ab134f501aba06bca99e406922d8c
Reviewed-on: https://weave-review.googlesource.com/1100
Reviewed-by: Alex Vakulenko <avakulenko@google.com>
diff --git a/libweave/src/weave_unittest.cc b/libweave/src/weave_unittest.cc
index cc3ace3..d6418c3 100644
--- a/libweave/src/weave_unittest.cc
+++ b/libweave/src/weave_unittest.cc
@@ -238,12 +238,11 @@
 
   void InitMdns() {
     EXPECT_CALL(mdns_, GetId()).WillRepeatedly(Return("TEST_ID"));
-    InitMdnsPublishing(false);
     EXPECT_CALL(mdns_, StopPublishing("_privet._tcp")).WillOnce(Return());
   }
 
-  void InitMdnsPublishing(bool registered) {
-    std::vector<std::string> txt{{"id=TEST_ID"}, {"flags=DB"},
+  void InitMdnsPublishing(bool registered, const std::string& flags) {
+    std::vector<std::string> txt{{"id=TEST_ID"}, {"flags=" + flags},
                                  {"mmid=ABCDE"}, {"services=_base"},
                                  {"txtvers=3"},  {"ty=DEVICE_NAME"}};
     if (registered) {
@@ -306,13 +305,19 @@
           EXPECT_TRUE(error->HasError("gcd", "device_not_registered"));
         }));
 
-    for (const auto& cb : http_server_changed_cb_) {
+    for (const auto& cb : http_server_changed_cb_)
       cb.Run(http_server_);
-    }
 
     task_runner_.Run();
   }
 
+  void NotifyNetworkChanged(NetworkState state, base::TimeDelta delay) {
+    EXPECT_CALL(network_, GetConnectionState()).WillRepeatedly(Return(state));
+    for (const auto& cb : network_callbacks_) {
+      task_runner_.PostDelayedTask(FROM_HERE, cb, delay);
+    }
+  }
+
   std::vector<HttpServer::OnStateChangedCallback> http_server_changed_cb_;
   std::vector<HttpServer::OnRequestCallback> http_server_request_cb_;
 
@@ -350,7 +355,9 @@
  public:
   void SetUp() override {
     WeaveTest::SetUp();
+
     InitDefaultExpectations();
+    InitMdnsPublishing(false, "DB");
   }
 };
 
@@ -381,7 +388,7 @@
   ExpectRequest("POST", "https://accounts.google.com/o/oauth2/token",
                 kAuthTokenResponse);
 
-  InitMdnsPublishing(true);
+  InitMdnsPublishing(true, "DB");
 
   EXPECT_EQ("DEVICE_ID", cloud_->RegisterDevice("TEST_ID", nullptr));
 }
@@ -405,25 +412,13 @@
   StartDevice();
 
   // Short disconnect.
-  EXPECT_CALL(network_, GetConnectionState())
-      .WillRepeatedly(Return(NetworkState::kOffline));
-  for (const auto& cb : network_callbacks_) {
-    task_runner_.PostDelayedTask(FROM_HERE, base::Bind(cb), {});
-  }
-  EXPECT_CALL(network_, GetConnectionState())
-      .WillRepeatedly(Return(NetworkState::kConnected));
-  for (const auto& cb : network_callbacks_) {
-    task_runner_.PostDelayedTask(FROM_HERE, base::Bind(cb),
-                                 base::TimeDelta::FromSeconds(10));
-  }
+  NotifyNetworkChanged(NetworkState::kOffline, {});
+  NotifyNetworkChanged(NetworkState::kConnected,
+                       base::TimeDelta::FromSeconds(10));
   task_runner_.Run();
 
   // Long disconnect.
-  EXPECT_CALL(network_, GetConnectionState())
-      .WillRepeatedly(Return(NetworkState::kOffline));
-  for (const auto& cb : network_callbacks_) {
-    task_runner_.PostDelayedTask(FROM_HERE, base::Bind(cb), {});
-  }
+  NotifyNetworkChanged(NetworkState::kOffline, {});
   auto offline_from = task_runner_.GetClock()->Now();
   EXPECT_CALL(network_, EnableAccessPoint(MatchesRegex("DEVICE_NAME.*prv")))
       .WillOnce(InvokeWithoutArgs([this, offline_from]() {
@@ -442,11 +437,7 @@
   StartDevice();
 
   // Long disconnect.
-  EXPECT_CALL(network_, GetConnectionState())
-      .WillRepeatedly(Return(NetworkState::kOffline));
-  for (const auto& cb : network_callbacks_) {
-    task_runner_.PostDelayedTask(FROM_HERE, base::Bind(cb), {});
-  }
+  NotifyNetworkChanged(NetworkState::kOffline, {});
 
   for (int i = 0; i < 5; ++i) {
     auto offline_from = task_runner_.GetClock()->Now();
@@ -470,10 +461,7 @@
     task_runner_.Run();
   }
 
-  EXPECT_CALL(network_, GetConnectionState())
-      .WillRepeatedly(Return(NetworkState::kConnected));
-  for (const auto& cb : network_callbacks_)
-    task_runner_.PostDelayedTask(FROM_HERE, base::Bind(cb), {});
+  NotifyNetworkChanged(NetworkState::kConnected, {});
   task_runner_.Run();
 }