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

Side by Side Diff: chrome/browser/extensions/extension_updater_unittest.cc

Issue 4192012: Convert implicit scoped_refptr constructor calls to explicit ones, part 1 (Closed) Base URL: http://git.chromium.org/git/chromium.git
Patch Set: fix presubmit Created 10 years, 1 month 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 <map> 5 #include <map>
6 6
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/scoped_ptr.h" 8 #include "base/scoped_ptr.h"
9 #include "base/stl_util-inl.h" 9 #include "base/stl_util-inl.h"
10 #include "base/string_number_conversions.h" 10 #include "base/string_number_conversions.h"
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 service.set_extensions(extensions); 301 service.set_extensions(extensions);
302 } 302 }
303 303
304 // Setup and start the updater. 304 // Setup and start the updater.
305 MessageLoop message_loop; 305 MessageLoop message_loop;
306 BrowserThread io_thread(BrowserThread::IO); 306 BrowserThread io_thread(BrowserThread::IO);
307 io_thread.Start(); 307 io_thread.Start();
308 308
309 TestURLFetcherFactory factory; 309 TestURLFetcherFactory factory;
310 URLFetcher::set_factory(&factory); 310 URLFetcher::set_factory(&factory);
311 scoped_refptr<ExtensionUpdater> updater = 311 scoped_refptr<ExtensionUpdater> updater(
312 new ExtensionUpdater(&service, service.pref_service(), 60*60*24); 312 new ExtensionUpdater(&service, service.pref_service(), 60*60*24));
313 updater->Start(); 313 updater->Start();
314 314
315 // Tell the update that it's time to do update checks. 315 // Tell the update that it's time to do update checks.
316 SimulateTimerFired(updater.get()); 316 SimulateTimerFired(updater.get());
317 317
318 // Get the url our mock fetcher was asked to fetch. 318 // Get the url our mock fetcher was asked to fetch.
319 TestURLFetcher* fetcher = 319 TestURLFetcher* fetcher =
320 factory.GetFetcherByID(ExtensionUpdater::kManifestFetcherId); 320 factory.GetFetcherByID(ExtensionUpdater::kManifestFetcherId);
321 const GURL& url = fetcher->original_url(); 321 const GURL& url = fetcher->original_url();
322 EXPECT_FALSE(url.is_empty()); 322 EXPECT_FALSE(url.is_empty());
(...skipping 26 matching lines...) Expand all
349 static void TestBlacklistUpdateCheckRequests() { 349 static void TestBlacklistUpdateCheckRequests() {
350 ServiceForManifestTests service; 350 ServiceForManifestTests service;
351 351
352 // Setup and start the updater. 352 // Setup and start the updater.
353 MessageLoop message_loop; 353 MessageLoop message_loop;
354 BrowserThread io_thread(BrowserThread::IO); 354 BrowserThread io_thread(BrowserThread::IO);
355 io_thread.Start(); 355 io_thread.Start();
356 356
357 TestURLFetcherFactory factory; 357 TestURLFetcherFactory factory;
358 URLFetcher::set_factory(&factory); 358 URLFetcher::set_factory(&factory);
359 scoped_refptr<ExtensionUpdater> updater = 359 scoped_refptr<ExtensionUpdater> updater(
360 new ExtensionUpdater(&service, service.pref_service(), 60*60*24); 360 new ExtensionUpdater(&service, service.pref_service(), 60*60*24));
361 updater->Start(); 361 updater->Start();
362 362
363 // Tell the updater that it's time to do update checks. 363 // Tell the updater that it's time to do update checks.
364 SimulateTimerFired(updater.get()); 364 SimulateTimerFired(updater.get());
365 365
366 // No extensions installed, so nothing should have been fetched. 366 // No extensions installed, so nothing should have been fetched.
367 TestURLFetcher* fetcher = 367 TestURLFetcher* fetcher =
368 factory.GetFetcherByID(ExtensionUpdater::kManifestFetcherId); 368 factory.GetFetcherByID(ExtensionUpdater::kManifestFetcherId);
369 EXPECT_TRUE(fetcher == NULL); 369 EXPECT_TRUE(fetcher == NULL);
370 370
(...skipping 30 matching lines...) Expand all
401 } 401 }
402 402
403 static void TestDetermineUpdates() { 403 static void TestDetermineUpdates() {
404 // Create a set of test extensions 404 // Create a set of test extensions
405 ServiceForManifestTests service; 405 ServiceForManifestTests service;
406 ExtensionList tmp; 406 ExtensionList tmp;
407 service.CreateTestExtensions(3, &tmp, NULL, Extension::INTERNAL); 407 service.CreateTestExtensions(3, &tmp, NULL, Extension::INTERNAL);
408 service.set_extensions(tmp); 408 service.set_extensions(tmp);
409 409
410 MessageLoop message_loop; 410 MessageLoop message_loop;
411 scoped_refptr<ExtensionUpdater> updater = 411 scoped_refptr<ExtensionUpdater> updater(
412 new ExtensionUpdater(&service, service.pref_service(), 412 new ExtensionUpdater(&service, service.pref_service(),
413 kUpdateFrequencySecs); 413 kUpdateFrequencySecs));
414 414
415 // Check passing an empty list of parse results to DetermineUpdates 415 // Check passing an empty list of parse results to DetermineUpdates
416 ManifestFetchData fetch_data(GURL("http://localhost/foo")); 416 ManifestFetchData fetch_data(GURL("http://localhost/foo"));
417 UpdateManifest::Results updates; 417 UpdateManifest::Results updates;
418 std::vector<int> updateable = updater->DetermineUpdates(fetch_data, 418 std::vector<int> updateable = updater->DetermineUpdates(fetch_data,
419 updates); 419 updates);
420 EXPECT_TRUE(updateable.empty()); 420 EXPECT_TRUE(updateable.empty());
421 421
422 // Create two updates - expect that DetermineUpdates will return the first 422 // Create two updates - expect that DetermineUpdates will return the first
423 // one (v1.0 installed, v1.1 available) but not the second one (both 423 // one (v1.0 installed, v1.1 available) but not the second one (both
(...skipping 14 matching lines...) Expand all
438 } 438 }
439 439
440 static void TestDetermineUpdatesPending() { 440 static void TestDetermineUpdatesPending() {
441 // Create a set of test extensions 441 // Create a set of test extensions
442 ServiceForManifestTests service; 442 ServiceForManifestTests service;
443 PendingExtensionMap pending_extensions; 443 PendingExtensionMap pending_extensions;
444 CreateTestPendingExtensions(3, GURL(), &pending_extensions); 444 CreateTestPendingExtensions(3, GURL(), &pending_extensions);
445 service.set_pending_extensions(pending_extensions); 445 service.set_pending_extensions(pending_extensions);
446 446
447 MessageLoop message_loop; 447 MessageLoop message_loop;
448 scoped_refptr<ExtensionUpdater> updater = 448 scoped_refptr<ExtensionUpdater> updater(
449 new ExtensionUpdater(&service, service.pref_service(), 449 new ExtensionUpdater(&service, service.pref_service(),
450 kUpdateFrequencySecs); 450 kUpdateFrequencySecs));
451 451
452 ManifestFetchData fetch_data(GURL("http://localhost/foo")); 452 ManifestFetchData fetch_data(GURL("http://localhost/foo"));
453 UpdateManifest::Results updates; 453 UpdateManifest::Results updates;
454 for (PendingExtensionMap::const_iterator it = pending_extensions.begin(); 454 for (PendingExtensionMap::const_iterator it = pending_extensions.begin();
455 it != pending_extensions.end(); ++it) { 455 it != pending_extensions.end(); ++it) {
456 fetch_data.AddExtension(it->first, "1.0.0.0", 456 fetch_data.AddExtension(it->first, "1.0.0.0",
457 ManifestFetchData::kNeverPinged); 457 ManifestFetchData::kNeverPinged);
458 AddParseResult(it->first, 458 AddParseResult(it->first,
459 "1.1", "http://localhost/e1_1.1.crx", &updates); 459 "1.1", "http://localhost/e1_1.1.crx", &updates);
460 } 460 }
(...skipping 11 matching lines...) Expand all
472 BrowserThread ui_thread(BrowserThread::UI, &ui_loop); 472 BrowserThread ui_thread(BrowserThread::UI, &ui_loop);
473 BrowserThread file_thread(BrowserThread::FILE); 473 BrowserThread file_thread(BrowserThread::FILE);
474 file_thread.Start(); 474 file_thread.Start();
475 BrowserThread io_thread(BrowserThread::IO); 475 BrowserThread io_thread(BrowserThread::IO);
476 io_thread.Start(); 476 io_thread.Start();
477 477
478 TestURLFetcherFactory factory; 478 TestURLFetcherFactory factory;
479 TestURLFetcher* fetcher = NULL; 479 TestURLFetcher* fetcher = NULL;
480 URLFetcher::set_factory(&factory); 480 URLFetcher::set_factory(&factory);
481 ServiceForDownloadTests service; 481 ServiceForDownloadTests service;
482 scoped_refptr<ExtensionUpdater> updater = 482 scoped_refptr<ExtensionUpdater> updater(
483 new ExtensionUpdater(&service, service.pref_service(), 483 new ExtensionUpdater(&service, service.pref_service(),
484 kUpdateFrequencySecs); 484 kUpdateFrequencySecs));
485 485
486 GURL url1("http://localhost/manifest1"); 486 GURL url1("http://localhost/manifest1");
487 GURL url2("http://localhost/manifest2"); 487 GURL url2("http://localhost/manifest2");
488 488
489 // Request 2 update checks - the first should begin immediately and the 489 // Request 2 update checks - the first should begin immediately and the
490 // second one should be queued up. 490 // second one should be queued up.
491 ManifestFetchData* fetch1 = new ManifestFetchData(url1); 491 ManifestFetchData* fetch1 = new ManifestFetchData(url1);
492 ManifestFetchData* fetch2 = new ManifestFetchData(url2); 492 ManifestFetchData* fetch2 = new ManifestFetchData(url2);
493 fetch1->AddExtension("1111", "1.0", 0); 493 fetch1->AddExtension("1111", "1.0", 0);
494 fetch2->AddExtension("12345", "2.0", ManifestFetchData::kNeverPinged); 494 fetch2->AddExtension("12345", "2.0", ManifestFetchData::kNeverPinged);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 BrowserThread ui_thread(BrowserThread::UI, &ui_loop); 536 BrowserThread ui_thread(BrowserThread::UI, &ui_loop);
537 BrowserThread file_thread(BrowserThread::FILE); 537 BrowserThread file_thread(BrowserThread::FILE);
538 file_thread.Start(); 538 file_thread.Start();
539 BrowserThread io_thread(BrowserThread::IO); 539 BrowserThread io_thread(BrowserThread::IO);
540 io_thread.Start(); 540 io_thread.Start();
541 541
542 TestURLFetcherFactory factory; 542 TestURLFetcherFactory factory;
543 TestURLFetcher* fetcher = NULL; 543 TestURLFetcher* fetcher = NULL;
544 URLFetcher::set_factory(&factory); 544 URLFetcher::set_factory(&factory);
545 ServiceForDownloadTests service; 545 ServiceForDownloadTests service;
546 scoped_refptr<ExtensionUpdater> updater = 546 scoped_refptr<ExtensionUpdater> updater(
547 new ExtensionUpdater(&service, service.pref_service(), 547 new ExtensionUpdater(&service, service.pref_service(),
548 kUpdateFrequencySecs); 548 kUpdateFrequencySecs));
549 549
550 GURL test_url("http://localhost/extension.crx"); 550 GURL test_url("http://localhost/extension.crx");
551 551
552 std::string id = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; 552 std::string id = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
553 std::string hash = ""; 553 std::string hash = "";
554 scoped_ptr<Version> version(Version::GetVersionFromString("0.0.1")); 554 scoped_ptr<Version> version(Version::GetVersionFromString("0.0.1"));
555 ASSERT_TRUE(version.get()); 555 ASSERT_TRUE(version.get());
556 updater->FetchUpdatedExtension(id, test_url, hash, version->GetString()); 556 updater->FetchUpdatedExtension(id, test_url, hash, version->GetString());
557 557
558 if (pending) { 558 if (pending) {
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 static void TestBlacklistDownloading() { 599 static void TestBlacklistDownloading() {
600 MessageLoop message_loop; 600 MessageLoop message_loop;
601 BrowserThread ui_thread(BrowserThread::UI, &message_loop); 601 BrowserThread ui_thread(BrowserThread::UI, &message_loop);
602 BrowserThread io_thread(BrowserThread::IO); 602 BrowserThread io_thread(BrowserThread::IO);
603 io_thread.Start(); 603 io_thread.Start();
604 604
605 TestURLFetcherFactory factory; 605 TestURLFetcherFactory factory;
606 TestURLFetcher* fetcher = NULL; 606 TestURLFetcher* fetcher = NULL;
607 URLFetcher::set_factory(&factory); 607 URLFetcher::set_factory(&factory);
608 ServiceForBlacklistTests service; 608 ServiceForBlacklistTests service;
609 scoped_refptr<ExtensionUpdater> updater = 609 scoped_refptr<ExtensionUpdater> updater(
610 new ExtensionUpdater(&service, service.pref_service(), 610 new ExtensionUpdater(&service, service.pref_service(),
611 kUpdateFrequencySecs); 611 kUpdateFrequencySecs));
612 service.pref_service()-> 612 service.pref_service()->
613 RegisterStringPref(prefs::kExtensionBlacklistUpdateVersion, "0"); 613 RegisterStringPref(prefs::kExtensionBlacklistUpdateVersion, "0");
614 GURL test_url("http://localhost/extension.crx"); 614 GURL test_url("http://localhost/extension.crx");
615 615
616 std::string id = "com.google.crx.blacklist"; 616 std::string id = "com.google.crx.blacklist";
617 617
618 std::string hash = 618 std::string hash =
619 "2CE109E9D0FAF820B2434E166297934E6177B65AB9951DBC3E204CAD4689B39C"; 619 "2CE109E9D0FAF820B2434E166297934E6177B65AB9951DBC3E204CAD4689B39C";
620 620
621 std::string version = "0.0.1"; 621 std::string version = "0.0.1";
(...skipping 24 matching lines...) Expand all
646 MessageLoopForUI message_loop; 646 MessageLoopForUI message_loop;
647 BrowserThread ui_thread(BrowserThread::UI, &message_loop); 647 BrowserThread ui_thread(BrowserThread::UI, &message_loop);
648 BrowserThread file_thread(BrowserThread::FILE, &message_loop); 648 BrowserThread file_thread(BrowserThread::FILE, &message_loop);
649 BrowserThread io_thread(BrowserThread::IO); 649 BrowserThread io_thread(BrowserThread::IO);
650 io_thread.Start(); 650 io_thread.Start();
651 651
652 TestURLFetcherFactory factory; 652 TestURLFetcherFactory factory;
653 TestURLFetcher* fetcher = NULL; 653 TestURLFetcher* fetcher = NULL;
654 URLFetcher::set_factory(&factory); 654 URLFetcher::set_factory(&factory);
655 ServiceForDownloadTests service; 655 ServiceForDownloadTests service;
656 scoped_refptr<ExtensionUpdater> updater = 656 scoped_refptr<ExtensionUpdater> updater(
657 new ExtensionUpdater(&service, service.pref_service(), 657 new ExtensionUpdater(&service, service.pref_service(),
658 kUpdateFrequencySecs); 658 kUpdateFrequencySecs));
659 659
660 GURL url1("http://localhost/extension1.crx"); 660 GURL url1("http://localhost/extension1.crx");
661 GURL url2("http://localhost/extension2.crx"); 661 GURL url2("http://localhost/extension2.crx");
662 662
663 std::string id1 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; 663 std::string id1 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
664 std::string id2 = "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"; 664 std::string id2 = "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb";
665 665
666 std::string hash1 = ""; 666 std::string hash1 = "";
667 std::string hash2 = ""; 667 std::string hash2 = "";
668 668
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
733 if (ping_days == 0) { 733 if (ping_days == 0) {
734 service.extension_prefs()->SetLastPingDay( 734 service.extension_prefs()->SetLastPingDay(
735 tmp[0]->id(), now - TimeDelta::FromSeconds(15)); 735 tmp[0]->id(), now - TimeDelta::FromSeconds(15));
736 } else if (ping_days > 0) { 736 } else if (ping_days > 0) {
737 Time last_ping_day = 737 Time last_ping_day =
738 now - TimeDelta::FromDays(ping_days) - TimeDelta::FromSeconds(15); 738 now - TimeDelta::FromDays(ping_days) - TimeDelta::FromSeconds(15);
739 service.extension_prefs()->SetLastPingDay(tmp[0]->id(), last_ping_day); 739 service.extension_prefs()->SetLastPingDay(tmp[0]->id(), last_ping_day);
740 } 740 }
741 741
742 MessageLoop message_loop; 742 MessageLoop message_loop;
743 scoped_refptr<ExtensionUpdater> updater = 743 scoped_refptr<ExtensionUpdater> updater(
744 new ExtensionUpdater(&service, service.pref_service(), 744 new ExtensionUpdater(&service, service.pref_service(),
745 kUpdateFrequencySecs); 745 kUpdateFrequencySecs));
746 updater->set_blacklist_checks_enabled(false); 746 updater->set_blacklist_checks_enabled(false);
747 747
748 // Make the updater do manifest fetching, and note the urls it tries to 748 // Make the updater do manifest fetching, and note the urls it tries to
749 // fetch. 749 // fetch.
750 std::vector<GURL> fetched_urls; 750 std::vector<GURL> fetched_urls;
751 updater->CheckNow(); 751 updater->CheckNow();
752 TestURLFetcher* fetcher = 752 TestURLFetcher* fetcher =
753 factory.GetFetcherByID(ExtensionUpdater::kManifestFetcherId); 753 factory.GetFetcherByID(ExtensionUpdater::kManifestFetcherId);
754 EXPECT_TRUE(fetcher != NULL && fetcher->delegate() != NULL); 754 EXPECT_TRUE(fetcher != NULL && fetcher->delegate() != NULL);
755 fetched_urls.push_back(fetcher->original_url()); 755 fetched_urls.push_back(fetcher->original_url());
(...skipping 29 matching lines...) Expand all
785 EXPECT_TRUE(pos != std::string::npos); 785 EXPECT_TRUE(pos != std::string::npos);
786 } 786 }
787 } 787 }
788 788
789 // This makes sure that the extension updater properly stores the results 789 // This makes sure that the extension updater properly stores the results
790 // of a <daystart> tag from a manifest fetch in one of two cases: 1) This is 790 // of a <daystart> tag from a manifest fetch in one of two cases: 1) This is
791 // the first time we fetched the extension, or 2) We sent a ping value of 791 // the first time we fetched the extension, or 2) We sent a ping value of
792 // >= 1 day for the extension. 792 // >= 1 day for the extension.
793 static void TestHandleManifestResults() { 793 static void TestHandleManifestResults() {
794 ServiceForManifestTests service; 794 ServiceForManifestTests service;
795 scoped_refptr<ExtensionUpdater> updater = 795 scoped_refptr<ExtensionUpdater> updater(
796 new ExtensionUpdater(&service, service.pref_service(), 796 new ExtensionUpdater(&service, service.pref_service(),
797 kUpdateFrequencySecs); 797 kUpdateFrequencySecs));
798 798
799 GURL update_url("http://www.google.com/manifest"); 799 GURL update_url("http://www.google.com/manifest");
800 ExtensionList tmp; 800 ExtensionList tmp;
801 service.CreateTestExtensions(1, &tmp, &update_url.spec(), 801 service.CreateTestExtensions(1, &tmp, &update_url.spec(),
802 Extension::INTERNAL); 802 Extension::INTERNAL);
803 service.set_extensions(tmp); 803 service.set_extensions(tmp);
804 804
805 ManifestFetchData fetch_data(update_url); 805 ManifestFetchData fetch_data(update_url);
806 const Extension* extension = tmp[0]; 806 const Extension* extension = tmp[0];
807 fetch_data.AddExtension(extension->id(), extension->VersionString(), 807 fetch_data.AddExtension(extension->id(), extension->VersionString(),
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
925 // -prodversionmin (shouldn't update if browser version too old) 925 // -prodversionmin (shouldn't update if browser version too old)
926 // -manifests & updates arriving out of order / interleaved 926 // -manifests & updates arriving out of order / interleaved
927 // -Profile::GetDefaultRequestContext() returning null 927 // -Profile::GetDefaultRequestContext() returning null
928 // (should not crash, but just do check later) 928 // (should not crash, but just do check later)
929 // -malformed update url (empty, file://, has query, has a # fragment, etc.) 929 // -malformed update url (empty, file://, has query, has a # fragment, etc.)
930 // -An extension gets uninstalled while updates are in progress (so it doesn't 930 // -An extension gets uninstalled while updates are in progress (so it doesn't
931 // "come back from the dead") 931 // "come back from the dead")
932 // -An extension gets manually updated to v3 while we're downloading v2 (ie 932 // -An extension gets manually updated to v3 while we're downloading v2 (ie
933 // you don't get downgraded accidentally) 933 // you don't get downgraded accidentally)
934 // -An update manifest mentions multiple updates 934 // -An update manifest mentions multiple updates
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_updater.cc ('k') | chrome/browser/extensions/extensions_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698