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

Side by Side Diff: chrome/browser/component_updater/test/component_updater_service_unittest.cc

Issue 14113053: chrome: Use base::MessageLoop. (Part 3) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/component_updater/component_updater_service.h" 5 #include "chrome/browser/component_updater/component_updater_service.h"
6 6
7 #include <list> 7 #include <list>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 virtual int InitialDelay() OVERRIDE { return 0; } 42 virtual int InitialDelay() OVERRIDE { return 0; }
43 43
44 typedef std::pair<CrxComponent*, int> CheckAtLoopCount; 44 typedef std::pair<CrxComponent*, int> CheckAtLoopCount;
45 45
46 virtual int NextCheckDelay() OVERRIDE { 46 virtual int NextCheckDelay() OVERRIDE {
47 // This is called when a new full cycle of checking for updates is going 47 // This is called when a new full cycle of checking for updates is going
48 // to happen. In test we normally only test one cycle so it is a good 48 // to happen. In test we normally only test one cycle so it is a good
49 // time to break from the test messageloop Run() method so the test can 49 // time to break from the test messageloop Run() method so the test can
50 // finish. 50 // finish.
51 if (--times_ <= 0) { 51 if (--times_ <= 0) {
52 MessageLoop::current()->Quit(); 52 base::MessageLoop::current()->Quit();
53 return 0; 53 return 0;
54 54
55 } 55 }
56 56
57 // Look for checks to issue in the middle of the loop. 57 // Look for checks to issue in the middle of the loop.
58 for (std::list<CheckAtLoopCount>::iterator 58 for (std::list<CheckAtLoopCount>::iterator
59 i = components_to_check_.begin(); 59 i = components_to_check_.begin();
60 i != components_to_check_.end(); ) { 60 i != components_to_check_.end(); ) {
61 if (i->second == times_) { 61 if (i->second == times_) {
62 cus_->CheckForUpdateSoon(*i->first); 62 cus_->CheckForUpdateSoon(*i->first);
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 // be created and destroyed with no side effects. 265 // be created and destroyed with no side effects.
266 TEST_F(ComponentUpdaterTest, VerifyFixture) { 266 TEST_F(ComponentUpdaterTest, VerifyFixture) {
267 EXPECT_TRUE(component_updater() != NULL); 267 EXPECT_TRUE(component_updater() != NULL);
268 EXPECT_EQ(0ul, notification_tracker().size()); 268 EXPECT_EQ(0ul, notification_tracker().size());
269 } 269 }
270 270
271 // Verify that the component updater can be caught in a quick 271 // Verify that the component updater can be caught in a quick
272 // start-shutdown situation. Failure of this test will be a crash. Also 272 // start-shutdown situation. Failure of this test will be a crash. Also
273 // if there is no work to do, there are no notifications generated. 273 // if there is no work to do, there are no notifications generated.
274 TEST_F(ComponentUpdaterTest, StartStop) { 274 TEST_F(ComponentUpdaterTest, StartStop) {
275 MessageLoop message_loop; 275 base::MessageLoop message_loop;
276 content::TestBrowserThread ui_thread(BrowserThread::UI, &message_loop); 276 content::TestBrowserThread ui_thread(BrowserThread::UI, &message_loop);
277 277
278 component_updater()->Start(); 278 component_updater()->Start();
279 message_loop.RunUntilIdle(); 279 message_loop.RunUntilIdle();
280 component_updater()->Stop(); 280 component_updater()->Stop();
281 281
282 EXPECT_EQ(0ul, notification_tracker().size()); 282 EXPECT_EQ(0ul, notification_tracker().size());
283 } 283 }
284 284
285 // Verify that when the server has no updates, we go back to sleep and 285 // Verify that when the server has no updates, we go back to sleep and
286 // the COMPONENT_UPDATER_STARTED and COMPONENT_UPDATER_SLEEPING notifications 286 // the COMPONENT_UPDATER_STARTED and COMPONENT_UPDATER_SLEEPING notifications
287 // are generated. 287 // are generated.
288 TEST_F(ComponentUpdaterTest, CheckCrxSleep) { 288 TEST_F(ComponentUpdaterTest, CheckCrxSleep) {
289 MessageLoop message_loop; 289 base::MessageLoop message_loop;
290 content::TestBrowserThread ui_thread(BrowserThread::UI, &message_loop); 290 content::TestBrowserThread ui_thread(BrowserThread::UI, &message_loop);
291 content::TestBrowserThread file_thread(BrowserThread::FILE); 291 content::TestBrowserThread file_thread(BrowserThread::FILE);
292 content::TestBrowserThread io_thread(BrowserThread::IO); 292 content::TestBrowserThread io_thread(BrowserThread::IO);
293 293
294 io_thread.StartIOThread(); 294 io_thread.StartIOThread();
295 file_thread.Start(); 295 file_thread.Start();
296 296
297 content::URLLocalHostRequestPrepackagedInterceptor interceptor; 297 content::URLLocalHostRequestPrepackagedInterceptor interceptor;
298 298
299 CrxComponent com; 299 CrxComponent com;
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 358
359 // Verify that we can check for updates and install one component. Besides 359 // Verify that we can check for updates and install one component. Besides
360 // the notifications above NOTIFICATION_COMPONENT_UPDATE_FOUND and 360 // the notifications above NOTIFICATION_COMPONENT_UPDATE_FOUND and
361 // NOTIFICATION_COMPONENT_UPDATE_READY should have been fired. We do two loops 361 // NOTIFICATION_COMPONENT_UPDATE_READY should have been fired. We do two loops
362 // so the second time around there should be nothing left to do. 362 // so the second time around there should be nothing left to do.
363 // We also check that only 3 network requests are issued: 363 // We also check that only 3 network requests are issued:
364 // 1- manifest check 364 // 1- manifest check
365 // 2- download crx 365 // 2- download crx
366 // 3- second manifest check. 366 // 3- second manifest check.
367 TEST_F(ComponentUpdaterTest, InstallCrx) { 367 TEST_F(ComponentUpdaterTest, InstallCrx) {
368 MessageLoop message_loop; 368 base::MessageLoop message_loop;
369 content::TestBrowserThread ui_thread(BrowserThread::UI, &message_loop); 369 content::TestBrowserThread ui_thread(BrowserThread::UI, &message_loop);
370 content::TestBrowserThread file_thread(BrowserThread::FILE); 370 content::TestBrowserThread file_thread(BrowserThread::FILE);
371 content::TestBrowserThread io_thread(BrowserThread::IO); 371 content::TestBrowserThread io_thread(BrowserThread::IO);
372 372
373 io_thread.StartIOThread(); 373 io_thread.StartIOThread();
374 file_thread.Start(); 374 file_thread.Start();
375 375
376 content::URLLocalHostRequestPrepackagedInterceptor interceptor; 376 content::URLLocalHostRequestPrepackagedInterceptor interceptor;
377 377
378 CrxComponent com1; 378 CrxComponent com1;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 TestNotificationTracker::Event ev4 = notification_tracker().at(4); 423 TestNotificationTracker::Event ev4 = notification_tracker().at(4);
424 EXPECT_EQ(chrome::NOTIFICATION_COMPONENT_UPDATER_SLEEPING, ev4.type); 424 EXPECT_EQ(chrome::NOTIFICATION_COMPONENT_UPDATER_SLEEPING, ev4.type);
425 425
426 component_updater()->Stop(); 426 component_updater()->Stop();
427 } 427 }
428 428
429 // This test is like the above InstallCrx but the second component 429 // This test is like the above InstallCrx but the second component
430 // has a different source. In this case there would be two manifest 430 // has a different source. In this case there would be two manifest
431 // checks to different urls, each only containing one component. 431 // checks to different urls, each only containing one component.
432 TEST_F(ComponentUpdaterTest, InstallCrxTwoSources) { 432 TEST_F(ComponentUpdaterTest, InstallCrxTwoSources) {
433 MessageLoop message_loop; 433 base::MessageLoop message_loop;
434 content::TestBrowserThread ui_thread(BrowserThread::UI, &message_loop); 434 content::TestBrowserThread ui_thread(BrowserThread::UI, &message_loop);
435 content::TestBrowserThread file_thread(BrowserThread::FILE); 435 content::TestBrowserThread file_thread(BrowserThread::FILE);
436 content::TestBrowserThread io_thread(BrowserThread::IO); 436 content::TestBrowserThread io_thread(BrowserThread::IO);
437 437
438 io_thread.StartIOThread(); 438 io_thread.StartIOThread();
439 file_thread.Start(); 439 file_thread.Start();
440 440
441 content::URLLocalHostRequestPrepackagedInterceptor interceptor; 441 content::URLLocalHostRequestPrepackagedInterceptor interceptor;
442 442
443 CrxComponent com1; 443 CrxComponent com1;
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
495 TestNotificationTracker::Event ev4 = notification_tracker().at(5); 495 TestNotificationTracker::Event ev4 = notification_tracker().at(5);
496 EXPECT_EQ(chrome::NOTIFICATION_COMPONENT_UPDATER_SLEEPING, ev4.type); 496 EXPECT_EQ(chrome::NOTIFICATION_COMPONENT_UPDATER_SLEEPING, ev4.type);
497 497
498 component_updater()->Stop(); 498 component_updater()->Stop();
499 } 499 }
500 500
501 // This test checks that the "prodversionmin" value is handled correctly. In 501 // This test checks that the "prodversionmin" value is handled correctly. In
502 // particular there should not be an install because the minimum product 502 // particular there should not be an install because the minimum product
503 // version is much higher than of chrome. 503 // version is much higher than of chrome.
504 TEST_F(ComponentUpdaterTest, ProdVersionCheck) { 504 TEST_F(ComponentUpdaterTest, ProdVersionCheck) {
505 MessageLoop message_loop; 505 base::MessageLoop message_loop;
506 content::TestBrowserThread ui_thread(BrowserThread::UI, &message_loop); 506 content::TestBrowserThread ui_thread(BrowserThread::UI, &message_loop);
507 content::TestBrowserThread file_thread(BrowserThread::FILE); 507 content::TestBrowserThread file_thread(BrowserThread::FILE);
508 content::TestBrowserThread io_thread(BrowserThread::IO); 508 content::TestBrowserThread io_thread(BrowserThread::IO);
509 509
510 io_thread.StartIOThread(); 510 io_thread.StartIOThread();
511 file_thread.Start(); 511 file_thread.Start();
512 512
513 content::URLLocalHostRequestPrepackagedInterceptor interceptor; 513 content::URLLocalHostRequestPrepackagedInterceptor interceptor;
514 514
515 CrxComponent com; 515 CrxComponent com;
(...skipping 19 matching lines...) Expand all
535 component_updater()->Stop(); 535 component_updater()->Stop();
536 } 536 }
537 537
538 // Test that a ping for an update check can cause installs. 538 // Test that a ping for an update check can cause installs.
539 // Here is the timeline: 539 // Here is the timeline:
540 // - First loop: we return a reply that indicates no update, so 540 // - First loop: we return a reply that indicates no update, so
541 // nothing happens. 541 // nothing happens.
542 // - We ping. 542 // - We ping.
543 // - This triggers a second loop, which has a reply that triggers an install. 543 // - This triggers a second loop, which has a reply that triggers an install.
544 TEST_F(ComponentUpdaterTest, CheckForUpdateSoon) { 544 TEST_F(ComponentUpdaterTest, CheckForUpdateSoon) {
545 MessageLoop message_loop; 545 base::MessageLoop message_loop;
546 content::TestBrowserThread ui_thread(BrowserThread::UI, &message_loop); 546 content::TestBrowserThread ui_thread(BrowserThread::UI, &message_loop);
547 content::TestBrowserThread file_thread(BrowserThread::FILE); 547 content::TestBrowserThread file_thread(BrowserThread::FILE);
548 content::TestBrowserThread io_thread(BrowserThread::IO); 548 content::TestBrowserThread io_thread(BrowserThread::IO);
549 549
550 io_thread.StartIOThread(); 550 io_thread.StartIOThread();
551 file_thread.Start(); 551 file_thread.Start();
552 552
553 content::URLLocalHostRequestPrepackagedInterceptor interceptor; 553 content::URLLocalHostRequestPrepackagedInterceptor interceptor;
554 554
555 CrxComponent com1; 555 CrxComponent com1;
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 ev0 = notification_tracker().at(0); 651 ev0 = notification_tracker().at(0);
652 EXPECT_EQ(chrome::NOTIFICATION_COMPONENT_UPDATER_STARTED, ev0.type); 652 EXPECT_EQ(chrome::NOTIFICATION_COMPONENT_UPDATER_STARTED, ev0.type);
653 ev1 = notification_tracker().at(1); 653 ev1 = notification_tracker().at(1);
654 EXPECT_EQ(chrome::NOTIFICATION_COMPONENT_UPDATER_SLEEPING, ev1.type); 654 EXPECT_EQ(chrome::NOTIFICATION_COMPONENT_UPDATER_SLEEPING, ev1.type);
655 component_updater()->Stop(); 655 component_updater()->Stop();
656 } 656 }
657 657
658 // Verify that a previously registered component can get re-registered 658 // Verify that a previously registered component can get re-registered
659 // with a different version. 659 // with a different version.
660 TEST_F(ComponentUpdaterTest, CheckReRegistration) { 660 TEST_F(ComponentUpdaterTest, CheckReRegistration) {
661 MessageLoop message_loop; 661 base::MessageLoop message_loop;
662 content::TestBrowserThread ui_thread(BrowserThread::UI, &message_loop); 662 content::TestBrowserThread ui_thread(BrowserThread::UI, &message_loop);
663 content::TestBrowserThread file_thread(BrowserThread::FILE); 663 content::TestBrowserThread file_thread(BrowserThread::FILE);
664 content::TestBrowserThread io_thread(BrowserThread::IO); 664 content::TestBrowserThread io_thread(BrowserThread::IO);
665 665
666 io_thread.StartIOThread(); 666 io_thread.StartIOThread();
667 file_thread.Start(); 667 file_thread.Start();
668 668
669 content::URLLocalHostRequestPrepackagedInterceptor interceptor; 669 content::URLLocalHostRequestPrepackagedInterceptor interceptor;
670 670
671 CrxComponent com1; 671 CrxComponent com1;
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
756 756
757 // The test harness's Register() function creates a new installer, 757 // The test harness's Register() function creates a new installer,
758 // so the counts go back to 0. 758 // so the counts go back to 0.
759 EXPECT_EQ(0, static_cast<TestInstaller*>(com1.installer)->error()); 759 EXPECT_EQ(0, static_cast<TestInstaller*>(com1.installer)->error());
760 EXPECT_EQ(0, static_cast<TestInstaller*>(com1.installer)->install_count()); 760 EXPECT_EQ(0, static_cast<TestInstaller*>(com1.installer)->install_count());
761 EXPECT_EQ(0, static_cast<TestInstaller*>(com2.installer)->error()); 761 EXPECT_EQ(0, static_cast<TestInstaller*>(com2.installer)->error());
762 EXPECT_EQ(0, static_cast<TestInstaller*>(com2.installer)->install_count()); 762 EXPECT_EQ(0, static_cast<TestInstaller*>(com2.installer)->install_count());
763 763
764 component_updater()->Stop(); 764 component_updater()->Stop();
765 } 765 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698