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

Unified Diff: chrome/browser/component_updater/test/component_updater_service_unittest.cc

Issue 251403002: Implement an observer for the component updater. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add asserts. Created 6 years, 8 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: 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

Powered by Google App Engine
This is Rietveld 408576698