Index: chrome/browser/component_updater/test/component_updater_service_unittest.cc |
diff --git a/chrome/browser/component_updater/test/component_updater_service_unittest.cc b/chrome/browser/component_updater/test/component_updater_service_unittest.cc |
index de2e95467bb9098ceb94f5f371f047dc21bf5470..607a952936eb2a191f83b868c40e5b02357e520b 100644 |
--- a/chrome/browser/component_updater/test/component_updater_service_unittest.cc |
+++ b/chrome/browser/component_updater/test/component_updater_service_unittest.cc |
@@ -35,10 +35,10 @@ namespace component_updater { |
#define POST_INTERCEPT_HOSTNAME "localhost2" |
#define POST_INTERCEPT_PATH "/update2" |
-MockComponentObserver::MockComponentObserver() { |
+MockServiceObserver::MockServiceObserver() { |
} |
-MockComponentObserver::~MockComponentObserver() { |
+MockServiceObserver::~MockServiceObserver() { |
} |
bool PartialMatch::Match(const std::string& actual) const { |
@@ -254,16 +254,17 @@ TEST_F(ComponentUpdaterTest, StartStop) { |
// the COMPONENT_UPDATER_STARTED and COMPONENT_UPDATER_SLEEPING notifications |
// are generated. No pings are sent. |
TEST_F(ComponentUpdaterTest, CheckCrxSleep) { |
- MockComponentObserver observer; |
+ MockServiceObserver observer; |
EXPECT_CALL(observer, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_STARTED, 0)) |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_STARTED, "")) |
.Times(1); |
EXPECT_CALL(observer, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_SLEEPING, 0)) |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_SLEEPING, "")) |
.Times(2); |
EXPECT_CALL(observer, |
- OnEvent(ComponentObserver::COMPONENT_NOT_UPDATED, 0)) |
+ OnEvent(ServiceObserver::COMPONENT_NOT_UPDATED, |
+ "abagagagagagagagagagagagagagagag")) |
.Times(2); |
EXPECT_TRUE(post_interceptor_->ExpectRequest(new PartialMatch( |
@@ -273,7 +274,7 @@ TEST_F(ComponentUpdaterTest, CheckCrxSleep) { |
TestInstaller installer; |
CrxComponent com; |
- com.observer = &observer; |
+ component_updater()->AddObserver(&observer); |
EXPECT_EQ(ComponentUpdateService::kOk, |
RegisterComponent(&com, |
kTestComponent_abag, |
@@ -308,13 +309,14 @@ TEST_F(ComponentUpdaterTest, CheckCrxSleep) { |
// Loop twice again but this case we simulate a server error by returning |
// an empty file. Expect the behavior of the service to be the same as before. |
EXPECT_CALL(observer, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_STARTED, 0)) |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_STARTED, "")) |
.Times(1); |
EXPECT_CALL(observer, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_SLEEPING, 0)) |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_SLEEPING, "")) |
.Times(2); |
EXPECT_CALL(observer, |
- OnEvent(ComponentObserver::COMPONENT_NOT_UPDATED, 0)) |
+ OnEvent(ServiceObserver::COMPONENT_NOT_UPDATED, |
+ "abagagagagagagagagagagagagagagag")) |
.Times(2); |
post_interceptor_->Reset(); |
@@ -356,49 +358,41 @@ TEST_F(ComponentUpdaterTest, CheckCrxSleep) { |
// 3- ping |
// 4- second update check. |
TEST_F(ComponentUpdaterTest, InstallCrx) { |
- MockComponentObserver observer1; |
+ MockServiceObserver observer; |
{ |
InSequence seq; |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_STARTED, 0)) |
- .Times(1); |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_UPDATE_FOUND, 0)) |
- .Times(1); |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_UPDATE_READY, 0)) |
- .Times(1); |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_UPDATED, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_STARTED, "")) |
.Times(1); |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_SLEEPING, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATE_FOUND, |
+ "jebgalgnebhfojomionfpkfelancnnkf")) |
.Times(1); |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_NOT_UPDATED, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_NOT_UPDATED, |
+ "abagagagagagagagagagagagagagagag")) |
.Times(1); |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_SLEEPING, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATE_READY, |
+ "jebgalgnebhfojomionfpkfelancnnkf")) |
.Times(1); |
- } |
- |
- MockComponentObserver observer2; |
- { |
- InSequence seq; |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_STARTED, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATED, |
+ "jebgalgnebhfojomionfpkfelancnnkf")) |
.Times(1); |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_NOT_UPDATED, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_SLEEPING, "")) |
.Times(1); |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_SLEEPING, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_NOT_UPDATED, |
+ "jebgalgnebhfojomionfpkfelancnnkf")) |
.Times(1); |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_NOT_UPDATED, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_NOT_UPDATED, |
+ "abagagagagagagagagagagagagagagag")) |
.Times(1); |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_SLEEPING, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_SLEEPING, "")) |
.Times(1); |
} |
@@ -412,13 +406,13 @@ TEST_F(ComponentUpdaterTest, InstallCrx) { |
GURL(expected_crx_url), |
test_file("jebgalgnebhfojomionfpkfelancnnkf.crx")); |
+ component_updater()->AddObserver(&observer); |
+ |
TestInstaller installer1; |
CrxComponent com1; |
- com1.observer = &observer1; |
RegisterComponent(&com1, kTestComponent_jebg, Version("0.9"), &installer1); |
TestInstaller installer2; |
CrxComponent com2; |
- com2.observer = &observer2; |
RegisterComponent(&com2, kTestComponent_abag, Version("2.2"), &installer2); |
test_configurator()->SetLoopCount(2); |
@@ -537,55 +531,44 @@ TEST_F(ComponentUpdaterTest, ProdVersionCheck) { |
// - We make an on demand call. |
// - This triggers a second loop, which has a reply that triggers an install. |
TEST_F(ComponentUpdaterTest, OnDemandUpdate) { |
- MockComponentObserver observer1; |
+ MockServiceObserver observer; |
{ |
InSequence seq; |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_STARTED, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_STARTED, "")) |
.Times(1); |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_NOT_UPDATED, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_NOT_UPDATED, |
+ "abagagagagagagagagagagagagagagag")) |
.Times(1); |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_SLEEPING, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_NOT_UPDATED, |
+ "jebgalgnebhfojomionfpkfelancnnkf")) |
.Times(1); |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_STARTED, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_SLEEPING, "")) |
.Times(1); |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_NOT_UPDATED, 0)) |
- .Times(1); |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_SLEEPING, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_STARTED, "")) |
.Times(1); |
- } |
- |
- MockComponentObserver observer2; |
- { |
- InSequence seq; |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_STARTED, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATE_FOUND, |
+ "jebgalgnebhfojomionfpkfelancnnkf")) |
.Times(1); |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_NOT_UPDATED, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_NOT_UPDATED, |
+ "abagagagagagagagagagagagagagagag")) |
.Times(1); |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_SLEEPING, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATE_READY, |
+ "jebgalgnebhfojomionfpkfelancnnkf")) |
.Times(1); |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_STARTED, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATED, |
+ "jebgalgnebhfojomionfpkfelancnnkf")) |
.Times(1); |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_UPDATE_FOUND, 0)) |
- .Times(1); |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_UPDATE_READY, 0)) |
- .Times(1); |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_UPDATED, 0)) |
- .Times(1); |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_SLEEPING, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_SLEEPING, "")) |
.Times(1); |
} |
@@ -596,13 +579,13 @@ TEST_F(ComponentUpdaterTest, OnDemandUpdate) { |
GURL(expected_crx_url), |
test_file("jebgalgnebhfojomionfpkfelancnnkf.crx")); |
+ component_updater()->AddObserver(&observer); |
+ |
TestInstaller installer1; |
CrxComponent com1; |
- com1.observer = &observer1; |
RegisterComponent(&com1, kTestComponent_abag, Version("2.2"), &installer1); |
TestInstaller installer2; |
CrxComponent com2; |
- com2.observer = &observer2; |
RegisterComponent(&com2, kTestComponent_jebg, Version("0.9"), &installer2); |
// No update normally. |
@@ -670,30 +653,22 @@ TEST_F(ComponentUpdaterTest, OnDemandUpdate) { |
// Test a few error cases. NOTE: We don't have callbacks for |
// when the updates failed yet. |
- EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer1)); |
+ EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer)); |
{ |
InSequence seq; |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_STARTED, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_STARTED, "")) |
.Times(1); |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_NOT_UPDATED, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_NOT_UPDATED, |
+ "abagagagagagagagagagagagagagagag")) |
.Times(1); |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_SLEEPING, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_NOT_UPDATED, |
+ "jebgalgnebhfojomionfpkfelancnnkf")) |
.Times(1); |
- } |
- EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer2)); |
- { |
- InSequence seq; |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_STARTED, 0)) |
- .Times(1); |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_NOT_UPDATED, 0)) |
- .Times(1); |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_SLEEPING, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_SLEEPING, "")) |
.Times(1); |
} |
@@ -716,30 +691,22 @@ TEST_F(ComponentUpdaterTest, OnDemandUpdate) { |
<< post_interceptor_->GetRequestsAsString(); |
// No update: already updated to 1.0 so nothing new |
- EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer1)); |
+ EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer)); |
{ |
InSequence seq; |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_STARTED, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_STARTED, "")) |
.Times(1); |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_NOT_UPDATED, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_NOT_UPDATED, |
+ "jebgalgnebhfojomionfpkfelancnnkf")) |
.Times(1); |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_SLEEPING, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_NOT_UPDATED, |
+ "abagagagagagagagagagagagagagagag")) |
.Times(1); |
- } |
- EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer2)); |
- { |
- InSequence seq; |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_STARTED, 0)) |
- .Times(1); |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_NOT_UPDATED, 0)) |
- .Times(1); |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_SLEEPING, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_SLEEPING, "")) |
.Times(1); |
} |
@@ -765,49 +732,41 @@ TEST_F(ComponentUpdaterTest, OnDemandUpdate) { |
// Verify that a previously registered component can get re-registered |
// with a different version. |
TEST_F(ComponentUpdaterTest, CheckReRegistration) { |
- MockComponentObserver observer1; |
+ MockServiceObserver observer; |
{ |
InSequence seq; |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_STARTED, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_STARTED, "")) |
.Times(1); |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_UPDATE_FOUND, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATE_FOUND, |
+ "jebgalgnebhfojomionfpkfelancnnkf")) |
.Times(1); |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_UPDATE_READY, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_NOT_UPDATED, |
+ "abagagagagagagagagagagagagagagag")) |
.Times(1); |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_UPDATED, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATE_READY, |
+ "jebgalgnebhfojomionfpkfelancnnkf")) |
.Times(1); |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_SLEEPING, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATED, |
+ "jebgalgnebhfojomionfpkfelancnnkf")) |
.Times(1); |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_NOT_UPDATED, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_SLEEPING, "")) |
.Times(1); |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_SLEEPING, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_NOT_UPDATED, |
+ "jebgalgnebhfojomionfpkfelancnnkf")) |
.Times(1); |
- } |
- |
- MockComponentObserver observer2; |
- { |
- InSequence seq; |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_STARTED, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_NOT_UPDATED, |
+ "abagagagagagagagagagagagagagagag")) |
.Times(1); |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_NOT_UPDATED, 0)) |
- .Times(1); |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_SLEEPING, 0)) |
- .Times(1); |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_NOT_UPDATED, 0)) |
- .Times(1); |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_SLEEPING, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_SLEEPING, "")) |
.Times(1); |
} |
@@ -821,13 +780,13 @@ TEST_F(ComponentUpdaterTest, CheckReRegistration) { |
GURL(expected_crx_url), |
test_file("jebgalgnebhfojomionfpkfelancnnkf.crx")); |
+ component_updater()->AddObserver(&observer); |
+ |
TestInstaller installer1; |
CrxComponent com1; |
- com1.observer = &observer1; |
RegisterComponent(&com1, kTestComponent_jebg, Version("0.9"), &installer1); |
TestInstaller installer2; |
CrxComponent com2; |
- com2.observer = &observer2; |
RegisterComponent(&com2, kTestComponent_abag, Version("2.2"), &installer2); |
// Loop twice to issue two checks: (1) with original 0.9 version, update to |
@@ -862,31 +821,22 @@ TEST_F(ComponentUpdaterTest, CheckReRegistration) { |
component_updater()->Stop(); |
// Now re-register, pretending to be an even newer version (2.2) |
- EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer1)); |
+ EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer)); |
{ |
InSequence seq; |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_STARTED, 0)) |
- .Times(1); |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_NOT_UPDATED, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_STARTED, "")) |
.Times(1); |
- EXPECT_CALL(observer1, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_SLEEPING, 0)) |
- .Times(1); |
- } |
- |
- EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer2)); |
- { |
- InSequence seq; |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_STARTED, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_NOT_UPDATED, |
+ "jebgalgnebhfojomionfpkfelancnnkf")) |
.Times(1); |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_NOT_UPDATED, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_NOT_UPDATED, |
+ "abagagagagagagagagagagagagagagag")) |
.Times(1); |
- EXPECT_CALL(observer2, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_SLEEPING, 0)) |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_SLEEPING, "")) |
.Times(1); |
} |
@@ -1266,23 +1216,27 @@ void RequestAndDeleteResourceThrottle( |
} |
TEST_F(ComponentUpdaterTest, ResourceThrottleDeletedNoUpdate) { |
- MockComponentObserver observer; |
- EXPECT_CALL(observer, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_STARTED, 0)) |
- .Times(1); |
- EXPECT_CALL(observer, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_SLEEPING, 0)) |
- .Times(1); |
- EXPECT_CALL(observer, |
- OnEvent(ComponentObserver::COMPONENT_NOT_UPDATED, 0)) |
- .Times(1); |
+ MockServiceObserver observer; |
+ { |
+ InSequence seq; |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_STARTED, "")) |
+ .Times(1); |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_NOT_UPDATED, |
+ "abagagagagagagagagagagagagagagag")) |
+ .Times(1); |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_SLEEPING, "")) |
+ .Times(1); |
+ } |
EXPECT_TRUE(post_interceptor_->ExpectRequest(new PartialMatch( |
"updatecheck"), test_file("updatecheck_reply_1.xml"))); |
TestInstaller installer; |
CrxComponent com; |
- com.observer = &observer; |
+ component_updater()->AddObserver(&observer); |
EXPECT_EQ(ComponentUpdateService::kOk, |
RegisterComponent(&com, |
kTestComponent_abag, |
@@ -1351,23 +1305,27 @@ class CancelResourceController: public TestResourceController { |
}; |
TEST_F(ComponentUpdaterTest, ResourceThrottleLiveNoUpdate) { |
- MockComponentObserver observer; |
- EXPECT_CALL(observer, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_STARTED, 0)) |
- .Times(1); |
- EXPECT_CALL(observer, |
- OnEvent(ComponentObserver::COMPONENT_UPDATER_SLEEPING, 0)) |
- .Times(1); |
- EXPECT_CALL(observer, |
- OnEvent(ComponentObserver::COMPONENT_NOT_UPDATED, 0)) |
- .Times(1); |
+ MockServiceObserver observer; |
+ { |
+ InSequence seq; |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_STARTED, "")) |
+ .Times(1); |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_NOT_UPDATED, |
+ "abagagagagagagagagagagagagagagag")) |
+ .Times(1); |
+ EXPECT_CALL(observer, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_SLEEPING, "")) |
+ .Times(1); |
+ } |
EXPECT_TRUE(post_interceptor_->ExpectRequest(new PartialMatch( |
"updatecheck"), test_file("updatecheck_reply_1.xml"))); |
TestInstaller installer; |
CrxComponent com; |
- com.observer = &observer; |
+ component_updater()->AddObserver(&observer); |
EXPECT_EQ(ComponentUpdateService::kOk, |
RegisterComponent(&com, |
kTestComponent_abag, |
@@ -1403,6 +1361,86 @@ TEST_F(ComponentUpdaterTest, ResourceThrottleLiveNoUpdate) { |
component_updater()->Stop(); |
} |
+// Tests adding and removing observers. |
+TEST_F(ComponentUpdaterTest, Observer) { |
+ MockServiceObserver observer1, observer2; |
-} // namespace component_updater |
+ // Expect that two observers see the events. |
+ { |
+ InSequence seq; |
+ EXPECT_CALL(observer1, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_STARTED, "")) |
+ .Times(1); |
+ EXPECT_CALL(observer2, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_STARTED, "")) |
+ .Times(1); |
+ EXPECT_CALL(observer1, |
+ OnEvent(ServiceObserver::COMPONENT_NOT_UPDATED, |
+ "abagagagagagagagagagagagagagagag")) |
+ .Times(1); |
+ EXPECT_CALL(observer2, |
+ OnEvent(ServiceObserver::COMPONENT_NOT_UPDATED, |
+ "abagagagagagagagagagagagagagagag")) |
+ .Times(1); |
+ EXPECT_CALL(observer1, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_SLEEPING, "")) |
+ .Times(1); |
+ EXPECT_CALL(observer2, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_SLEEPING, "")) |
+ .Times(1); |
+ } |
+ |
+ EXPECT_TRUE(post_interceptor_->ExpectRequest(new PartialMatch( |
+ "updatecheck"), test_file("updatecheck_reply_1.xml"))); |
+ |
+ component_updater()->AddObserver(&observer1); |
+ component_updater()->AddObserver(&observer2); |
+ |
+ TestInstaller installer; |
+ CrxComponent com; |
+ EXPECT_EQ(ComponentUpdateService::kOk, |
+ RegisterComponent(&com, |
+ kTestComponent_abag, |
+ Version("1.1"), |
+ &installer)); |
+ test_configurator()->SetLoopCount(1); |
+ component_updater()->Start(); |
+ RunThreads(); |
+ |
+ // After removing the first observer, it's only the second observer that |
+ // gets the events. |
+ EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer1)); |
+ EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer2)); |
+ { |
+ InSequence seq; |
+ EXPECT_CALL(observer2, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_STARTED, "")) |
+ .Times(1); |
+ EXPECT_CALL(observer2, |
+ OnEvent(ServiceObserver::COMPONENT_NOT_UPDATED, |
+ "abagagagagagagagagagagagagagagag")) |
+ .Times(1); |
+ EXPECT_CALL(observer2, |
+ OnEvent(ServiceObserver::COMPONENT_UPDATER_SLEEPING, "")) |
+ .Times(1); |
+ } |
+ |
+ component_updater()->RemoveObserver(&observer1); |
+ |
+ test_configurator()->SetLoopCount(1); |
+ component_updater()->Start(); |
+ RunThreads(); |
+ // Both observers are removed and no one gets the events. |
+ EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer1)); |
+ EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer2)); |
+ component_updater()->RemoveObserver(&observer2); |
+ |
+ test_configurator()->SetLoopCount(1); |
+ component_updater()->Start(); |
+ RunThreads(); |
+ |
+ component_updater()->Stop(); |
+} |
+ |
+} // namespace component_updater |