diff --git a/wifi_unittest.cc b/wifi_unittest.cc
index 649ee95..ed35eeb 100644
--- a/wifi_unittest.cc
+++ b/wifi_unittest.cc
@@ -86,13 +86,6 @@
 TEST_F(WiFiPropertyTest, Dispatch) {
   {
     ::DBus::Error error;
-    EXPECT_TRUE(DBusAdaptor::DispatchOnType(device_->mutable_store(),
-                                            flimflam::kBgscanMethodProperty,
-                                            PropertyStoreTest::kStringV,
-                                            &error));
-  }
-  {
-    ::DBus::Error error;
     EXPECT_TRUE(DBusAdaptor::DispatchOnType(
         device_->mutable_store(),
         flimflam::kBgscanSignalThresholdProperty,
@@ -117,6 +110,27 @@
   }
 }
 
+TEST_F(WiFiPropertyTest, BgscanMethod) {
+  {
+    ::DBus::Error error;
+    EXPECT_TRUE(DBusAdaptor::DispatchOnType(
+        device_->mutable_store(),
+        flimflam::kBgscanMethodProperty,
+        DBusAdaptor::StringToVariant(
+            wpa_supplicant::kNetworkBgscanMethodSimple),
+        &error));
+  }
+
+  {
+    ::DBus::Error error;
+    EXPECT_FALSE(DBusAdaptor::DispatchOnType(
+        device_->mutable_store(),
+        flimflam::kBgscanMethodProperty,
+        DBusAdaptor::StringToVariant("not a real scan method"),
+        &error));
+  }
+}
+
 class WiFiMainTest : public ::testing::TestWithParam<string> {
  public:
   WiFiMainTest()
@@ -1295,4 +1309,20 @@
   EXPECT_FALSE(wifi()->IsIdle());
 }
 
+MATCHER(WiFiAddedArgs, "") {
+  return ContainsKey(arg, wpa_supplicant::kNetworkPropertyScanSSID) &&
+      ContainsKey(arg, wpa_supplicant::kNetworkPropertyBgscan);
+}
+
+TEST_F(WiFiMainTest, AddNetworkArgs) {
+  MockSupplicantInterfaceProxy &supplicant_interface_proxy =
+      *supplicant_interface_proxy_;
+
+  StartWiFi();
+  ReportBSS("bss0", "ssid0", "00:00:00:00:00:00", 0, kNetworkModeAdHoc);
+  WiFiService *service(GetServices().begin()->get());
+  EXPECT_CALL(supplicant_interface_proxy, AddNetwork(WiFiAddedArgs()));
+  InitiateConnect(service);
+}
+
 }  // namespace shill
