Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(77)

Unified Diff: chromeos/components/tether/active_host_unittest.cc

Issue 2741253002: [CrOS Tether] Create KeepAliveScheduler, a class which schedules keep-alive tickles to be sent to a… (Closed)
Patch Set: Added tests for other modified files. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chromeos/components/tether/active_host_unittest.cc
diff --git a/chromeos/components/tether/active_host_unittest.cc b/chromeos/components/tether/active_host_unittest.cc
index c2981ff28efe0c5d100d7b815b829f1769bd2ef4..ee33b69b440b3c6e5c9100252f3f4d01c0df2d6f 100644
--- a/chromeos/components/tether/active_host_unittest.cc
+++ b/chromeos/components/tether/active_host_unittest.cc
@@ -40,6 +40,24 @@ struct GetActiveHostResult {
}
};
+class TestObserver : public ActiveHost::Observer {
+ public:
+ void OnActiveHostChanged(
+ ActiveHost::ActiveHostStatus active_host_status,
+ std::unique_ptr<cryptauth::RemoteDevice> active_host_device,
+ const std::string& wifi_network_id) override {
+ host_changed_updates_.push_back(GetActiveHostResult{
+ active_host_status, std::move(active_host_device), wifi_network_id});
+ }
+
+ std::vector<GetActiveHostResult>& host_changed_updates() {
+ return host_changed_updates_;
+ }
+
+ private:
+ std::vector<GetActiveHostResult> host_changed_updates_;
+};
+
} // namespace
class ActiveHostTest : public testing::Test {
@@ -56,6 +74,9 @@ class ActiveHostTest : public testing::Test {
ActiveHost::RegisterPrefs(test_pref_service_->registry());
active_host_ = base::MakeUnique<ActiveHost>(fake_tether_host_fetcher_.get(),
test_pref_service_.get());
+
+ test_observer_ = base::WrapUnique(new TestObserver);
+ active_host_->AddObserver(test_observer_.get());
}
void OnActiveHostFetched(ActiveHost::ActiveHostStatus active_host_status,
@@ -84,6 +105,7 @@ class ActiveHostTest : public testing::Test {
std::unique_ptr<TestingPrefServiceSimple> test_pref_service_;
std::unique_ptr<FakeTetherHostFetcher> fake_tether_host_fetcher_;
+ std::unique_ptr<TestObserver> test_observer_;
std::vector<GetActiveHostResult> get_active_host_results_;
@@ -172,6 +194,42 @@ TEST_F(ActiveHostTest, TestActiveHostChangesDuringFetch) {
get_active_host_results_[0]);
}
+TEST_F(ActiveHostTest, TestObserverCalls) {
Jeremy Klein 2017/03/10 23:58:08 Can we also add a test which goes through the earl
Kyle Horimoto 2017/03/11 00:03:09 Done.
+ // Start as DISCONNECTED.
+ EXPECT_FALSE(test_observer_->host_changed_updates().size());
Jeremy Klein 2017/03/10 23:58:08 Is EXPECT_FALSE the standard chrome practice for "
Kyle Horimoto 2017/03/11 00:03:09 Yeah - I don't really like it either :(
+
+ // Transition to CONNECTING.
+ active_host_->SetActiveHostConnecting(test_devices_[0].GetDeviceId());
+ fake_tether_host_fetcher_->InvokePendingCallbacks();
+ EXPECT_EQ(1u, test_observer_->host_changed_updates().size());
+ EXPECT_EQ(
+ (GetActiveHostResult{ActiveHost::ActiveHostStatus::CONNECTING,
+ std::shared_ptr<cryptauth::RemoteDevice>(
+ new cryptauth::RemoteDevice(test_devices_[0])),
+ ""}),
+ test_observer_->host_changed_updates()[0]);
+
+ // Transition to CONNECTED.
+ active_host_->SetActiveHostConnected(test_devices_[0].GetDeviceId(),
+ "wifiNetworkId");
+ fake_tether_host_fetcher_->InvokePendingCallbacks();
+ EXPECT_EQ(2u, test_observer_->host_changed_updates().size());
+ EXPECT_EQ(
+ (GetActiveHostResult{ActiveHost::ActiveHostStatus::CONNECTED,
+ std::shared_ptr<cryptauth::RemoteDevice>(
+ new cryptauth::RemoteDevice(test_devices_[0])),
+ "wifiNetworkId"}),
+ test_observer_->host_changed_updates()[1]);
+
+ // Transition to DISCONNECTED.
+ active_host_->SetActiveHostDisconnected();
+ fake_tether_host_fetcher_->InvokePendingCallbacks();
+ EXPECT_EQ(3u, test_observer_->host_changed_updates().size());
+ EXPECT_EQ((GetActiveHostResult{ActiveHost::ActiveHostStatus::DISCONNECTED,
+ nullptr, ""}),
+ test_observer_->host_changed_updates()[2]);
+}
+
} // namespace tether
} // namespace cryptauth

Powered by Google App Engine
This is Rietveld 408576698