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

Unified Diff: components/password_manager/core/browser/log_router_unittest.cc

Issue 269513003: Password manager internals page service: wiring it in (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Adding forgotten s/NotifyCanUseLogRouter/OnLogRouterAvailabilityChanged in tests Created 6 years, 7 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: components/password_manager/core/browser/log_router_unittest.cc
diff --git a/components/password_manager/core/browser/log_router_unittest.cc b/components/password_manager/core/browser/log_router_unittest.cc
index b8909988c1378e83563e890ab565c86db2062d4a..6c02dae565de1d0b8f53a32eeadfb4eaf721be3c 100644
--- a/components/password_manager/core/browser/log_router_unittest.cc
+++ b/components/password_manager/core/browser/log_router_unittest.cc
@@ -24,12 +24,18 @@ class MockLogReceiver : public PasswordManagerLogger {
MOCK_METHOD1(LogSavePasswordProgress, void(const std::string&));
};
+class MockClient : public StubPasswordManagerClient {
+ public:
+ MOCK_METHOD1(OnLogRouterAvailabilityChanged, void(bool));
+};
+
} // namespace
class LogRouterTest : public testing::Test {
protected:
testing::StrictMock<MockLogReceiver> receiver_;
testing::StrictMock<MockLogReceiver> receiver2_;
+ testing::StrictMock<MockClient> client_;
};
TEST_F(LogRouterTest, ProcessLog_NoReceiver) {
@@ -93,4 +99,59 @@ TEST_F(LogRouterTest, ProcessLog_TwoReceiversNoUpdateAfterUnregistering) {
router.UnregisterReceiver(&receiver2_);
}
+TEST_F(LogRouterTest, RegisterClient_NoReceivers) {
+ LogRouter router;
+ EXPECT_FALSE(router.RegisterClient(&client_));
+ router.UnregisterClient(&client_);
+}
+
+TEST_F(LogRouterTest, RegisterClient_OneReceiverBeforeClient) {
+ LogRouter router;
+ // First register a receiver.
+ EXPECT_EQ(std::string(), router.RegisterReceiver(&receiver_));
+ // The client should be told the LogRouter has some receivers.
+ EXPECT_TRUE(router.RegisterClient(&client_));
+ // Now unregister the reciever. The client should be told the LogRouter has no
+ // receivers.
+ EXPECT_CALL(client_, OnLogRouterAvailabilityChanged(false)).Times(1);
+ router.UnregisterReceiver(&receiver_);
+ router.UnregisterClient(&client_);
+}
+
+TEST_F(LogRouterTest, RegisterClient_OneClientBeforeReceiver) {
+ LogRouter router;
+ // First register a client; the client should be told the LogRouter has no
+ // receivers.
+ EXPECT_FALSE(router.RegisterClient(&client_));
+ // Now register the receiver. The client should be notified.
+ EXPECT_CALL(client_, OnLogRouterAvailabilityChanged(true)).Times(1);
+ EXPECT_EQ(std::string(), router.RegisterReceiver(&receiver_));
+ // Now unregister the client.
+ router.UnregisterClient(&client_);
+ // Now unregister the reciever. The client should not hear about it.
+ EXPECT_CALL(client_, OnLogRouterAvailabilityChanged(_)).Times(0);
+ router.UnregisterReceiver(&receiver_);
+}
+
+TEST_F(LogRouterTest, RegisterClient_OneClientTwoReceivers) {
+ LogRouter router;
+ // First register a client; the client should be told the LogRouter has no
+ // receivers.
+ EXPECT_FALSE(router.RegisterClient(&client_));
+ // Now register the 1st receiver. The client should be notified.
+ EXPECT_CALL(client_, OnLogRouterAvailabilityChanged(true)).Times(1);
+ EXPECT_EQ(std::string(), router.RegisterReceiver(&receiver_));
+ // Now register the 2nd receiver. The client should not be notified.
+ EXPECT_CALL(client_, OnLogRouterAvailabilityChanged(true)).Times(0);
+ EXPECT_EQ(std::string(), router.RegisterReceiver(&receiver2_));
+ // Now unregister the 1st reciever. The client should not hear about it.
+ EXPECT_CALL(client_, OnLogRouterAvailabilityChanged(false)).Times(0);
+ router.UnregisterReceiver(&receiver_);
+ // Now unregister the 2nd reciever. The client should hear about it.
+ EXPECT_CALL(client_, OnLogRouterAvailabilityChanged(false)).Times(1);
+ router.UnregisterReceiver(&receiver2_);
+ // Now unregister the client.
+ router.UnregisterClient(&client_);
+}
+
} // namespace password_manager

Powered by Google App Engine
This is Rietveld 408576698