Remove Device::Options struct

BUG:24267885
Change-Id: I4d4f18f3c4658495a2521c79d87f049941020320
Reviewed-on: https://weave-review.googlesource.com/1195
Reviewed-by: Vitaly Buka <vitalybuka@google.com>
diff --git a/libweave/examples/ubuntu/file_config_store.cc b/libweave/examples/ubuntu/file_config_store.cc
index 49fa907..d340884 100644
--- a/libweave/examples/ubuntu/file_config_store.cc
+++ b/libweave/examples/ubuntu/file_config_store.cc
@@ -18,6 +18,9 @@
 const char kSettingsDir[] = "/var/lib/weave/";
 const char kSettingsPath[] = "/var/lib/weave/weave_settings.json";
 
+FileConfigStore::FileConfigStore(bool disable_security)
+    : disable_security_{disable_security} {}
+
 bool FileConfigStore::LoadDefaults(Settings* settings) {
   char host_name[HOST_NAME_MAX] = {};
   gethostname(host_name, HOST_NAME_MAX);
@@ -37,6 +40,8 @@
   settings->client_id = "58855907228.apps.googleusercontent.com";
   settings->client_secret = "eHSAREAHrIqPsHBxCE9zPPBi";
   settings->api_key = "AIzaSyDSq46gG-AxUnC3zoqD9COIPrjolFsMfMA";
+
+  settings->disable_security = disable_security_;
   return true;
 }
 
diff --git a/libweave/examples/ubuntu/file_config_store.h b/libweave/examples/ubuntu/file_config_store.h
index e2bd1c1..2014f86 100644
--- a/libweave/examples/ubuntu/file_config_store.h
+++ b/libweave/examples/ubuntu/file_config_store.h
@@ -16,6 +16,8 @@
 
 class FileConfigStore : public provider::ConfigStore {
  public:
+  explicit FileConfigStore(bool disable_security);
+
   bool LoadDefaults(Settings* settings) override;
   std::string LoadSettings() override;
   void SaveSettings(const std::string& settings) override;
@@ -26,6 +28,9 @@
   std::string LoadBaseStateDefaults() override;
   std::map<std::string, std::string> LoadStateDefs() override;
   std::vector<std::string> LoadStateDefaults() override;
+
+ private:
+  bool disable_security_{false};
 };
 
 }  // namespace examples
diff --git a/libweave/examples/ubuntu/main.cc b/libweave/examples/ubuntu/main.cc
index 0bb423d..85fbe3b 100644
--- a/libweave/examples/ubuntu/main.cc
+++ b/libweave/examples/ubuntu/main.cc
@@ -84,7 +84,7 @@
     }
   }
 
-  weave::examples::FileConfigStore config_store;
+  weave::examples::FileConfigStore config_store{disable_security};
   weave::examples::EventTaskRunner task_runner;
   weave::examples::CurlHttpClient http_client{&task_runner};
   weave::examples::NetworkImpl network{&task_runner, force_bootstrapping};
@@ -93,13 +93,8 @@
   weave::examples::BluetoothImpl bluetooth;
 
   auto device = weave::Device::Create();
-  weave::Device::Options opts;
-  opts.xmpp_enabled = true;
-  opts.disable_privet = false;
-  opts.disable_security = disable_security;
-  opts.enable_ping = true;
   device->Start(
-      opts, &config_store, &task_runner, &http_client, &network, &dns_sd,
+      &config_store, &task_runner, &http_client, &network, &dns_sd,
       &http_server,
       weave::examples::NetworkImpl::HasWifiCapability() ? &network : nullptr,
       &bluetooth);
diff --git a/libweave/include/weave/device.h b/libweave/include/weave/device.h
index 6d1cd92..39e2f21 100644
--- a/libweave/include/weave/device.h
+++ b/libweave/include/weave/device.h
@@ -27,18 +27,9 @@
 
 class Device {
  public:
-  struct Options {
-    bool xmpp_enabled = true;
-    bool disable_privet = false;
-    bool disable_security = false;
-    bool enable_ping = false;
-    std::string test_privet_ssid;
-  };
-
   virtual ~Device() = default;
 
-  virtual void Start(const Options& options,
-                     provider::ConfigStore* config_store,
+  virtual void Start(provider::ConfigStore* config_store,
                      provider::TaskRunner* task_runner,
                      provider::HttpClient* http_client,
                      provider::Network* network,
diff --git a/libweave/include/weave/settings.h b/libweave/include/weave/settings.h
index 1c919a1..2b38c91 100644
--- a/libweave/include/weave/settings.h
+++ b/libweave/include/weave/settings.h
@@ -48,14 +48,14 @@
   std::string oauth_url;
   std::string service_url;
 
-  // Cloud ID of the registered device. Empty of device is not registered.
+  // Cloud ID of the registered device. Empty if device is not registered.
   std::string cloud_id;
 
-  // Internal options used by libweave. External code should not use them.
-  base::TimeDelta polling_period;
-  base::TimeDelta backup_polling_period;
+  // Internal options to tweak some library functionality. External code should
+  // avoid using them.
   bool wifi_auto_setup_enabled{true};
-  bool ble_setup_enabled{false};
+  bool disable_security{false};
+  std::string test_privet_ssid;
 };
 
 }  // namespace weave
diff --git a/libweave/src/base_api_handler_unittest.cc b/libweave/src/base_api_handler_unittest.cc
index 44c4825..5e2f68e 100644
--- a/libweave/src/base_api_handler_unittest.cc
+++ b/libweave/src/base_api_handler_unittest.cc
@@ -59,7 +59,7 @@
     std::unique_ptr<Config> config{new Config{&config_store_}};
     config->Load();
     dev_reg_.reset(new DeviceRegistrationInfo(command_manager_, state_manager_,
-                                              true, std::move(config), nullptr,
+                                              std::move(config), nullptr,
                                               &http_client_, nullptr));
     handler_.reset(
         new BaseApiHandler{dev_reg_.get(), state_manager_, command_manager_});
diff --git a/libweave/src/config.cc b/libweave/src/config.cc
index f601b82..e01e486 100644
--- a/libweave/src/config.cc
+++ b/libweave/src/config.cc
@@ -52,12 +52,6 @@
   result.oauth_url = "https://accounts.google.com/o/oauth2/";
   result.service_url = "https://www.googleapis.com/clouddevices/v1/";
   result.local_anonymous_access_role = "viewer";
-  result.local_discovery_enabled = true;
-  result.local_pairing_enabled = true;
-  result.polling_period = base::TimeDelta::FromSeconds(7);
-  result.backup_polling_period = base::TimeDelta::FromMinutes(30);
-  result.wifi_auto_setup_enabled = true;
-  result.ble_setup_enabled = false;
   result.pairing_modes.emplace(PairingType::kPinCode);
   return result;
 }
diff --git a/libweave/src/config_unittest.cc b/libweave/src/config_unittest.cc
index 02885e1..2639c22 100644
--- a/libweave/src/config_unittest.cc
+++ b/libweave/src/config_unittest.cc
@@ -31,7 +31,9 @@
 
   const Config::Settings& GetSettings() const { return config_.GetSettings(); }
 
-  const Config::Settings& GetDefaultSettings() const { return default_.GetSettings(); }
+  const Config::Settings& GetDefaultSettings() const {
+    return default_.GetSettings();
+  }
 
   MOCK_METHOD1(OnConfigChanged, void(const Settings&));
 
@@ -57,11 +59,9 @@
   EXPECT_EQ("", GetSettings().model_name);
   EXPECT_EQ("", GetSettings().model_id);
   EXPECT_EQ("", GetSettings().firmware_version);
-  EXPECT_EQ(base::TimeDelta::FromSeconds(7), GetSettings().polling_period);
-  EXPECT_EQ(base::TimeDelta::FromMinutes(30),
-            GetSettings().backup_polling_period);
   EXPECT_TRUE(GetSettings().wifi_auto_setup_enabled);
-  EXPECT_FALSE(GetSettings().ble_setup_enabled);
+  EXPECT_FALSE(GetSettings().disable_security);
+  EXPECT_EQ("", GetSettings().test_privet_ssid);
   EXPECT_EQ(std::set<PairingType>{PairingType::kPinCode},
             GetSettings().pairing_modes);
   EXPECT_EQ("", GetSettings().embedded_code);
@@ -110,13 +110,12 @@
   EXPECT_EQ(GetDefaultSettings().oem_name, GetSettings().oem_name);
   EXPECT_EQ(GetDefaultSettings().model_name, GetSettings().model_name);
   EXPECT_EQ(GetDefaultSettings().model_id, GetSettings().model_id);
-  EXPECT_EQ(GetDefaultSettings().polling_period, GetSettings().polling_period);
-  EXPECT_EQ(GetDefaultSettings().backup_polling_period,
-            GetSettings().backup_polling_period);
   EXPECT_EQ(GetDefaultSettings().wifi_auto_setup_enabled,
             GetSettings().wifi_auto_setup_enabled);
-  EXPECT_EQ(GetDefaultSettings().ble_setup_enabled,
-            GetSettings().ble_setup_enabled);
+  EXPECT_EQ(GetDefaultSettings().disable_security,
+            GetSettings().disable_security);
+  EXPECT_EQ(GetDefaultSettings().test_privet_ssid,
+            GetSettings().test_privet_ssid);
   EXPECT_EQ(GetDefaultSettings().pairing_modes, GetSettings().pairing_modes);
   EXPECT_EQ(GetDefaultSettings().embedded_code, GetSettings().embedded_code);
   EXPECT_EQ("state_name", GetSettings().name);
diff --git a/libweave/src/device_manager.cc b/libweave/src/device_manager.cc
index 17c628b..e7ddb23 100644
--- a/libweave/src/device_manager.cc
+++ b/libweave/src/device_manager.cc
@@ -29,8 +29,7 @@
 
 DeviceManager::~DeviceManager() {}
 
-void DeviceManager::Start(const Options& options,
-                          provider::ConfigStore* config_store,
+void DeviceManager::Start(provider::ConfigStore* config_store,
                           provider::TaskRunner* task_runner,
                           provider::HttpClient* http_client,
                           provider::Network* network,
@@ -50,18 +49,17 @@
   // TODO(avakulenko): Figure out security implications of storing
   // device info state data unencrypted.
   device_info_.reset(new DeviceRegistrationInfo(
-      command_manager_, state_manager_, options.xmpp_enabled, std::move(config),
-      task_runner, http_client, network));
+      command_manager_, state_manager_, std::move(config), task_runner,
+      http_client, network));
   base_api_handler_.reset(
       new BaseApiHandler{device_info_.get(), state_manager_, command_manager_});
 
   device_info_->Start();
 
-  if (!options.disable_privet) {
-    StartPrivet(options, task_runner, network, dns_sd, http_server, wifi,
-                bluetooth);
+  if (http_server) {
+    CHECK(dns_sd);
+    StartPrivet(task_runner, network, dns_sd, http_server, wifi, bluetooth);
   } else {
-    CHECK(!http_server);
     CHECK(!dns_sd);
   }
 }
@@ -86,15 +84,14 @@
   return privet_.get();
 }
 
-void DeviceManager::StartPrivet(const Options& options,
-                                provider::TaskRunner* task_runner,
+void DeviceManager::StartPrivet(provider::TaskRunner* task_runner,
                                 provider::Network* network,
                                 provider::DnsServiceDiscovery* dns_sd,
                                 provider::HttpServer* http_server,
                                 provider::Wifi* wifi,
                                 provider::Bluetooth* bluetooth) {
   privet_.reset(new privet::Manager{});
-  privet_->Start(options, task_runner, network, dns_sd, http_server, wifi,
+  privet_->Start(task_runner, network, dns_sd, http_server, wifi,
                  device_info_.get(), command_manager_.get(),
                  state_manager_.get());
 }
diff --git a/libweave/src/device_manager.h b/libweave/src/device_manager.h
index 41d538e..294a7cd 100644
--- a/libweave/src/device_manager.h
+++ b/libweave/src/device_manager.h
@@ -26,8 +26,7 @@
   DeviceManager();
   ~DeviceManager() override;
 
-  void Start(const Options& options,
-             provider::ConfigStore* config_store,
+  void Start(provider::ConfigStore* config_store,
              provider::TaskRunner* task_runner,
              provider::HttpClient* http_client,
              provider::Network* network,
@@ -44,8 +43,7 @@
   Config* GetConfig();
 
  private:
-  void StartPrivet(const Options& options,
-                   provider::TaskRunner* task_runner,
+  void StartPrivet(provider::TaskRunner* task_runner,
                    provider::Network* network,
                    provider::DnsServiceDiscovery* dns_sd,
                    provider::HttpServer* http_server,
diff --git a/libweave/src/device_registration_info.cc b/libweave/src/device_registration_info.cc
index a5d2f11..f1f94d0 100644
--- a/libweave/src/device_registration_info.cc
+++ b/libweave/src/device_registration_info.cc
@@ -40,6 +40,9 @@
 
 namespace {
 
+const int kPollingPeriodSeconds = 7;
+const int kBackupPollingPeriodSeconds = 30;
+
 using provider::HttpClient;
 
 inline void SetUnexpectedError(ErrorPtr* error) {
@@ -216,7 +219,6 @@
 DeviceRegistrationInfo::DeviceRegistrationInfo(
     const std::shared_ptr<CommandManager>& command_manager,
     const std::shared_ptr<StateManager>& state_manager,
-    bool notifications_enabled,
     std::unique_ptr<Config> config,
     provider::TaskRunner* task_runner,
     provider::HttpClient* http_client,
@@ -226,7 +228,6 @@
       command_manager_{command_manager},
       state_manager_{state_manager},
       config_{std::move(config)},
-      notifications_enabled_{notifications_enabled},
       network_{network} {
   cloud_backoff_policy_.reset(new BackoffEntry::Policy{});
   cloud_backoff_policy_->num_errors_to_ignore = 0;
@@ -454,7 +455,8 @@
   // call back to OnConnected() and at that time we'll switch to use the
   // primary channel and switch periodic poll into much more infrequent backup
   // poll mode.
-  const base::TimeDelta pull_interval = GetSettings().polling_period;
+  const base::TimeDelta pull_interval =
+      base::TimeDelta::FromSeconds(kPollingPeriodSeconds);
   if (!pull_channel_) {
     pull_channel_.reset(new PullChannel{pull_interval, task_runner_});
     pull_channel_->Start(this);
@@ -463,11 +465,6 @@
   }
   current_notification_channel_ = pull_channel_.get();
 
-  if (!notifications_enabled_) {
-    LOG(WARNING) << "Notification channel disabled by flag.";
-    return;
-  }
-
   notification_channel_starting_ = true;
   primary_notification_channel_.reset(new XmppChannel{
       GetSettings().robot_account, access_token_, task_runner_, network_});
@@ -1231,7 +1228,8 @@
             << channel_name;
   CHECK_EQ(primary_notification_channel_->GetName(), channel_name);
   notification_channel_starting_ = false;
-  pull_channel_->UpdatePullInterval(GetSettings().backup_polling_period);
+  pull_channel_->UpdatePullInterval(
+      base::TimeDelta::FromSeconds(kBackupPollingPeriodSeconds));
   current_notification_channel_ = primary_notification_channel_.get();
 
   // If we have not successfully connected to the cloud server and we have not
@@ -1255,7 +1253,8 @@
   if (!HaveRegistrationCredentials() || !connected_to_cloud_)
     return;
 
-  pull_channel_->UpdatePullInterval(GetSettings().polling_period);
+  pull_channel_->UpdatePullInterval(
+      base::TimeDelta::FromSeconds(kPollingPeriodSeconds));
   current_notification_channel_ = pull_channel_.get();
   UpdateDeviceResource(base::Bind(&base::DoNothing),
                        base::Bind(&IgnoreCloudError));
diff --git a/libweave/src/device_registration_info.h b/libweave/src/device_registration_info.h
index 14ddc1d..bd08ecd 100644
--- a/libweave/src/device_registration_info.h
+++ b/libweave/src/device_registration_info.h
@@ -57,7 +57,6 @@
 
   DeviceRegistrationInfo(const std::shared_ptr<CommandManager>& command_manager,
                          const std::shared_ptr<StateManager>& state_manager,
-                         bool notifications_enabled,
                          std::unique_ptr<Config> config,
                          provider::TaskRunner* task_runner,
                          provider::HttpClient* http_client,
@@ -330,7 +329,6 @@
   // another request is in flight to the cloud server.
   ResourceUpdateCallbackList queued_resource_update_callbacks_;
 
-  const bool notifications_enabled_;
   std::unique_ptr<NotificationChannel> primary_notification_channel_;
   std::unique_ptr<PullChannel> pull_channel_;
   NotificationChannel* current_notification_channel_{nullptr};
diff --git a/libweave/src/device_registration_info_unittest.cc b/libweave/src/device_registration_info_unittest.cc
index 10bbc07..1a84558 100644
--- a/libweave/src/device_registration_info_unittest.cc
+++ b/libweave/src/device_registration_info_unittest.cc
@@ -123,7 +123,7 @@
     std::unique_ptr<Config> config{new Config{&config_store_}};
     config_ = config.get();
     dev_reg_.reset(new DeviceRegistrationInfo{command_manager_, state_manager_,
-                                              true, std::move(config), nullptr,
+                                              std::move(config), nullptr,
                                               &http_client_, nullptr});
 
     ReloadDefaults();
@@ -496,7 +496,8 @@
   // Validate the device info saved to storage...
   EXPECT_EQ(test_data::kDeviceId, dev_reg_->GetSettings().cloud_id);
   EXPECT_EQ(test_data::kRefreshToken, dev_reg_->GetSettings().refresh_token);
-  EXPECT_EQ(test_data::kRobotAccountEmail, dev_reg_->GetSettings().robot_account);
+  EXPECT_EQ(test_data::kRobotAccountEmail,
+            dev_reg_->GetSettings().robot_account);
 }
 
 TEST_F(DeviceRegistrationInfoTest, OOBRegistrationStatus) {
diff --git a/libweave/src/privet/privet_manager.cc b/libweave/src/privet/privet_manager.cc
index d0ebdd7..d14765d 100644
--- a/libweave/src/privet/privet_manager.cc
+++ b/libweave/src/privet/privet_manager.cc
@@ -39,8 +39,7 @@
 
 Manager::~Manager() {}
 
-void Manager::Start(const Device::Options& options,
-                    TaskRunner* task_runner,
+void Manager::Start(TaskRunner* task_runner,
                     Network* network,
                     DnsServiceDiscovery* dns_sd,
                     HttpServer* http_server,
@@ -48,7 +47,7 @@
                     DeviceRegistrationInfo* device,
                     CommandManager* command_manager,
                     StateManager* state_manager) {
-  disable_security_ = options.disable_security;
+  disable_security_ = device->GetSettings().disable_security;
 
   device_ = DeviceDelegate::CreateDefault();
   cloud_ = CloudDelegate::CreateDefault(task_runner, device, command_manager,
@@ -71,8 +70,7 @@
   if (wifi && device->GetSettings().wifi_auto_setup_enabled) {
     VLOG(1) << "Enabling WiFi bootstrapping.";
     wifi_bootstrap_manager_.reset(new WifiBootstrapManager(
-        options.test_privet_ssid, device->GetMutableConfig(), task_runner,
-        network, wifi, cloud_.get()));
+        device->GetMutableConfig(), task_runner, network, wifi, cloud_.get()));
     wifi_bootstrap_manager_->Init();
   }
 
@@ -88,11 +86,6 @@
   http_server->AddRequestHandler("/privet/",
                                  base::Bind(&Manager::PrivetRequestHandler,
                                             weak_ptr_factory_.GetWeakPtr()));
-  if (options.enable_ping) {
-    http_server->AddRequestHandler("/privet/ping",
-                                   base::Bind(&Manager::HelloWorldHandler,
-                                              weak_ptr_factory_.GetWeakPtr()));
-  }
 }
 
 std::string Manager::GetCurrentlyConnectedSsid() const {
@@ -148,11 +141,6 @@
   callback.Run(status, data, http::kJson);
 }
 
-void Manager::HelloWorldHandler(const HttpServer::Request& request,
-                                const HttpServer::OnReplyCallback& callback) {
-  callback.Run(http::kOk, "Hello, world!", http::kPlain);
-}
-
 void Manager::OnChanged() {
   if (publisher_)
     publisher_->Update();
diff --git a/libweave/src/privet/privet_manager.h b/libweave/src/privet/privet_manager.h
index 3daecbd..3881971 100644
--- a/libweave/src/privet/privet_manager.h
+++ b/libweave/src/privet/privet_manager.h
@@ -47,8 +47,7 @@
   Manager();
   ~Manager() override;
 
-  void Start(const weave::Device::Options& options,
-             provider::TaskRunner* task_runner,
+  void Start(provider::TaskRunner* task_runner,
              provider::Network* network,
              provider::DnsServiceDiscovery* dns_sd,
              provider::HttpServer* http_server,
@@ -76,9 +75,6 @@
       int status,
       const base::DictionaryValue& output);
 
-  void HelloWorldHandler(const provider::HttpServer::Request& request,
-                         const provider::HttpServer::OnReplyCallback& callback);
-
   void OnChanged();
   void OnConnectivityChanged();
 
diff --git a/libweave/src/privet/wifi_bootstrap_manager.cc b/libweave/src/privet/wifi_bootstrap_manager.cc
index 7fc9db5..ee8b15e 100644
--- a/libweave/src/privet/wifi_bootstrap_manager.cc
+++ b/libweave/src/privet/wifi_bootstrap_manager.cc
@@ -20,8 +20,7 @@
 
 using provider::Network;
 
-WifiBootstrapManager::WifiBootstrapManager(const std::string& test_privet_ssid,
-                                           Config* config,
+WifiBootstrapManager::WifiBootstrapManager(Config* config,
                                            provider::TaskRunner* task_runner,
                                            provider::Network* network,
                                            provider::Wifi* wifi,
@@ -30,8 +29,8 @@
       task_runner_{task_runner},
       network_{network},
       wifi_{wifi},
-      ssid_generator_{gcd, this},
-      test_privet_ssid_{test_privet_ssid} {
+      ssid_generator_{gcd, this} {
+  CHECK(config_);
   CHECK(network_);
   CHECK(task_runner_);
   CHECK(wifi_);
@@ -74,13 +73,9 @@
   privet_ssid_ = GenerateSsid();
   CHECK(!privet_ssid_.empty());
   wifi_->StartAccessPoint(privet_ssid_);
-  LOG_IF(INFO, config_->GetSettings().ble_setup_enabled)
-      << "BLE Bootstrap start: not implemented.";
 }
 
 void WifiBootstrapManager::EndBootstrapping() {
-  LOG_IF(INFO, config_->GetSettings().ble_setup_enabled)
-      << "BLE Bootstrap stop: not implemented.";
   wifi_->StopAccessPoint();
   privet_ssid_.clear();
 }
@@ -159,8 +154,8 @@
 }
 
 std::string WifiBootstrapManager::GenerateSsid() const {
-  return test_privet_ssid_.empty() ? ssid_generator_.GenerateSsid()
-                                   : test_privet_ssid_;
+  const std::string& ssid = config_->GetSettings().test_privet_ssid;
+  return ssid.empty() ? ssid_generator_.GenerateSsid() : ssid;
 }
 
 const ConnectionState& WifiBootstrapManager::GetConnectionState() const {
diff --git a/libweave/src/privet/wifi_bootstrap_manager.h b/libweave/src/privet/wifi_bootstrap_manager.h
index 52886f9..aa908a3 100644
--- a/libweave/src/privet/wifi_bootstrap_manager.h
+++ b/libweave/src/privet/wifi_bootstrap_manager.h
@@ -39,8 +39,7 @@
  public:
   using State = WifiSetupState;
 
-  WifiBootstrapManager(const std::string& test_privet_ssid,
-                       Config* config,
+  WifiBootstrapManager(Config* config,
                        provider::TaskRunner* task_runner,
                        provider::Network* shill_client,
                        provider::Wifi* wifi,
@@ -103,7 +102,6 @@
   base::Time monitor_until_;
 
   bool currently_online_{false};
-  std::string test_privet_ssid_;
   std::string privet_ssid_;
 
   // Helps to reset irrelevant tasks switching state.
diff --git a/libweave/src/weave_unittest.cc b/libweave/src/weave_unittest.cc
index d42a839..fab3fad 100644
--- a/libweave/src/weave_unittest.cc
+++ b/libweave/src/weave_unittest.cc
@@ -278,11 +278,8 @@
   }
 
   void StartDevice() {
-    weave::Device::Options options;
-    options.xmpp_enabled = false;
-
-    device_->Start(options, &config_store_, &task_runner_, &http_client_,
-                   &network_, &dns_sd_, &http_server_, &wifi_, &bluetooth_);
+    device_->Start(&config_store_, &task_runner_, &http_client_, &network_,
+                   &dns_sd_, &http_server_, &wifi_, &bluetooth_);
 
     cloud_ = device_->GetCloud();
     ASSERT_TRUE(cloud_);
@@ -333,14 +330,9 @@
 }
 
 TEST_F(WeaveTest, StartMinimal) {
-  weave::Device::Options options;
-  options.xmpp_enabled = false;
-  options.disable_privet = true;
-  options.disable_security = true;
-
   InitConfigStore();
-  device_->Start(options, &config_store_, &task_runner_, &http_client_,
-                 &network_, nullptr, nullptr, &wifi_, nullptr);
+  device_->Start(&config_store_, &task_runner_, &http_client_, &network_,
+                 nullptr, nullptr, &wifi_, nullptr);
 }
 
 TEST_F(WeaveTest, StartNoWifi) {
@@ -350,9 +342,8 @@
   InitDnsSd();
   InitDnsSdPublishing(false, "CB");
 
-  weave::Device::Options options;
-  device_->Start(options, &config_store_, &task_runner_, &http_client_,
-                 &network_, &dns_sd_, &http_server_, nullptr, &bluetooth_);
+  device_->Start(&config_store_, &task_runner_, &http_client_, &network_,
+                 &dns_sd_, &http_server_, nullptr, &bluetooth_);
 
   for (const auto& cb : http_server_changed_cb_)
     cb.Run(http_server_);
@@ -375,6 +366,7 @@
 }
 
 TEST_F(WeaveBasicTest, Register) {
+  EXPECT_CALL(network_, OpenSslSocket(_, _, _, _)).WillRepeatedly(Return());
   StartDevice();
 
   auto draft = CreateDictionaryValue(kDeviceResource);