Fix AndroidNetworkMonitorTests crash due to DCHECK failure

AndroidNetworkMonitor::SetNetworkInfos assumes this method is called
only once, but unittests calls it twice.
One is called by the startMonitoring Java method, and the other is
called by each test.
Because of this, these tests will not succeed if dcheck_always_on is true.

To solve this problem, use OnNetworkConnected_n
instead of SetNetworkInfos in each test.

Bug: None
Change-Id: I027706ad5ccd597a91e3a66f15e181ee22d4aaa9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/285861
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Commit-Queue: Daniel.L (Byoungchan) Lee <daniel.l@hpcnt.com>
Cr-Commit-Position: refs/heads/main@{#38798}
diff --git a/sdk/android/native_unittests/android_network_monitor_unittest.cc b/sdk/android/native_unittests/android_network_monitor_unittest.cc
index 9aec62d..0e166a4 100644
--- a/sdk/android/native_unittests/android_network_monitor_unittest.cc
+++ b/sdk/android/native_unittests/android_network_monitor_unittest.cc
@@ -121,7 +121,7 @@
   jni::NetworkInformation net_info =
       CreateNetworkInformation("wlan0", ipv6_handle, ipv6_address1);
   std::vector<jni::NetworkInformation> net_infos(1, net_info);
-  network_monitor_->SetNetworkInfos(net_infos);
+  network_monitor_->OnNetworkConnected_n(net_info);
 
   auto network_handle1 =
       network_monitor_->FindNetworkHandleFromAddressOrName(ipv6_address1, "");
@@ -144,7 +144,7 @@
   jni::NetworkInformation net_info =
       CreateNetworkInformation("wlan0", ipv6_handle, ipv6_address1);
   std::vector<jni::NetworkInformation> net_infos(1, net_info);
-  network_monitor_->SetNetworkInfos(net_infos);
+  network_monitor_->OnNetworkConnected_n(net_info);
 
   rtc::IPAddress ipv4_address(kTestIpv4Address);
 
@@ -170,7 +170,7 @@
       CreateNetworkInformation("wlan0", ipv4_handle, ipv4_address);
   net_info.type = jni::NETWORK_VPN;
   net_info.underlying_type_for_vpn = jni::NETWORK_WIFI;
-  network_monitor_->SetNetworkInfos({net_info});
+  network_monitor_->OnNetworkConnected_n(net_info);
 
   EXPECT_EQ(
       rtc::ADAPTER_TYPE_WIFI,
@@ -186,7 +186,7 @@
   jni::NetworkInformation net_info =
       CreateNetworkInformation("wlan0", ipv4_handle, ipv4_address);
   net_info.type = jni::NETWORK_WIFI;
-  network_monitor_->SetNetworkInfos({net_info});
+  network_monitor_->OnNetworkConnected_n(net_info);
 
   EXPECT_TRUE(network_monitor_->GetInterfaceInfo("wlan0").available);
   EXPECT_TRUE(network_monitor_
@@ -215,7 +215,7 @@
   jni::NetworkInformation net_info =
       CreateNetworkInformation("wlan0", ipv4_handle, ipv4_address);
   net_info.type = jni::NETWORK_WIFI;
-  network_monitor_->SetNetworkInfos({net_info});
+  network_monitor_->OnNetworkConnected_n(net_info);
 
   EXPECT_TRUE(network_monitor_->GetInterfaceInfo("wlan0").available);
   EXPECT_TRUE(network_monitor_
@@ -250,7 +250,8 @@
       CreateNetworkInformation("wlan0", ipv6_handle, ipv6_address);
   net_info2.type = jni::NETWORK_UNKNOWN_CELLULAR;
 
-  network_monitor_->SetNetworkInfos({net_info1, net_info2});
+  network_monitor_->OnNetworkConnected_n(net_info1);
+  network_monitor_->OnNetworkConnected_n(net_info2);
 
   // The last added.
   EXPECT_TRUE(network_monitor_->GetInterfaceInfo("wlan0").available);
@@ -281,7 +282,8 @@
       CreateNetworkInformation("wlan0", ipv6_handle, ipv6_address);
   net_info2.type = jni::NETWORK_UNKNOWN_CELLULAR;
 
-  network_monitor_->SetNetworkInfos({net_info1, net_info2});
+  network_monitor_->OnNetworkConnected_n(net_info1);
+  network_monitor_->OnNetworkConnected_n(net_info2);
 
   // The last added.
   EXPECT_TRUE(network_monitor_->GetInterfaceInfo("wlan0").available);
@@ -311,7 +313,8 @@
       CreateNetworkInformation("wlan0", ipv6_handle, ipv6_address);
   net_info2.type = jni::NETWORK_UNKNOWN_CELLULAR;
 
-  network_monitor_->SetNetworkInfos({net_info1, net_info2});
+  network_monitor_->OnNetworkConnected_n(net_info1);
+  network_monitor_->OnNetworkConnected_n(net_info2);
 
   // The last added.
   EXPECT_TRUE(network_monitor_->GetInterfaceInfo("wlan0").available);
diff --git a/sdk/android/src/jni/android_network_monitor.h b/sdk/android/src/jni/android_network_monitor.h
index d0aad5e..f94650b 100644
--- a/sdk/android/src/jni/android_network_monitor.h
+++ b/sdk/android/src/jni/android_network_monitor.h
@@ -115,13 +115,15 @@
                                  jint preference);
 
   // Visible for testing.
+  void OnNetworkConnected_n(const NetworkInformation& network_info);
+
+  // Visible for testing.
   absl::optional<NetworkHandle> FindNetworkHandleFromAddressOrName(
       const rtc::IPAddress& address,
       absl::string_view ifname) const;
 
  private:
   void reset();
-  void OnNetworkConnected_n(const NetworkInformation& network_info);
   void OnNetworkDisconnected_n(NetworkHandle network_handle);
   void OnNetworkPreference_n(NetworkType type,
                              rtc::NetworkPreference preference);