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

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

Issue 2230203002: chrome: Use stl utilities from the base namespace (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed accidental components/ change Created 4 years, 4 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
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/extensions/updater/extension_updater.h" 5 #include "chrome/browser/extensions/updater/extension_updater.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <list> 10 #include <list>
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 void AddFakeCrxInstaller(const std::string& id, CrxInstaller* crx_installer) { 500 void AddFakeCrxInstaller(const std::string& id, CrxInstaller* crx_installer) {
501 fake_crx_installers_[id] = crx_installer; 501 fake_crx_installers_[id] = crx_installer;
502 } 502 }
503 503
504 bool UpdateExtension(const CRXFileInfo& file, 504 bool UpdateExtension(const CRXFileInfo& file,
505 bool file_ownership_passed, 505 bool file_ownership_passed,
506 CrxInstaller** out_crx_installer) override { 506 CrxInstaller** out_crx_installer) override {
507 extension_id_ = file.extension_id; 507 extension_id_ = file.extension_id;
508 install_path_ = file.path; 508 install_path_ = file.path;
509 509
510 if (ContainsKey(fake_crx_installers_, extension_id_)) { 510 if (base::ContainsKey(fake_crx_installers_, extension_id_)) {
511 *out_crx_installer = fake_crx_installers_[extension_id_]; 511 *out_crx_installer = fake_crx_installers_[extension_id_];
512 return true; 512 return true;
513 } 513 }
514 514
515 return false; 515 return false;
516 } 516 }
517 517
518 PendingExtensionManager* pending_extension_manager() override { 518 PendingExtensionManager* pending_extension_manager() override {
519 return &pending_extension_manager_; 519 return &pending_extension_manager_;
520 } 520 }
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
587 // We've found "x=<something>", now unescape <something> and look for 587 // We've found "x=<something>", now unescape <something> and look for
588 // the "id=<id>&ping=<ping_value>" parameters within. 588 // the "id=<id>&ping=<ping_value>" parameters within.
589 std::string unescaped = net::UnescapeURLComponent( 589 std::string unescaped = net::UnescapeURLComponent(
590 param.second, 590 param.second,
591 net::UnescapeRule::PATH_SEPARATORS | 591 net::UnescapeRule::PATH_SEPARATORS |
592 net::UnescapeRule::URL_SPECIAL_CHARS_EXCEPT_PATH_SEPARATORS); 592 net::UnescapeRule::URL_SPECIAL_CHARS_EXCEPT_PATH_SEPARATORS);
593 base::StringPairs extension_params; 593 base::StringPairs extension_params;
594 base::SplitStringIntoKeyValuePairs(unescaped, '=', '&', &extension_params); 594 base::SplitStringIntoKeyValuePairs(unescaped, '=', '&', &extension_params);
595 std::multimap<std::string, std::string> param_map; 595 std::multimap<std::string, std::string> param_map;
596 param_map.insert(extension_params.begin(), extension_params.end()); 596 param_map.insert(extension_params.begin(), extension_params.end());
597 if (ContainsKey(param_map, "id") && ContainsKey(param_map, "ping")) { 597 if (base::ContainsKey(param_map, "id") &&
598 base::ContainsKey(param_map, "ping")) {
598 std::string id = param_map.find("id")->second; 599 std::string id = param_map.find("id")->second;
599 result[id] = ParamsMap(); 600 result[id] = ParamsMap();
600 601
601 // Pull the key=value pairs out of the ping parameter for this id and 602 // Pull the key=value pairs out of the ping parameter for this id and
602 // put into the result. 603 // put into the result.
603 std::string ping = net::UnescapeURLComponent( 604 std::string ping = net::UnescapeURLComponent(
604 param_map.find("ping")->second, 605 param_map.find("ping")->second,
605 net::UnescapeRule::PATH_SEPARATORS | 606 net::UnescapeRule::PATH_SEPARATORS |
606 net::UnescapeRule::URL_SPECIAL_CHARS_EXCEPT_PATH_SEPARATORS); 607 net::UnescapeRule::URL_SPECIAL_CHARS_EXCEPT_PATH_SEPARATORS);
607 base::StringPairs ping_params; 608 base::StringPairs ping_params;
608 base::SplitStringIntoKeyValuePairs(ping, '=', '&', &ping_params); 609 base::SplitStringIntoKeyValuePairs(ping, '=', '&', &ping_params);
609 for (const auto& ping_param : ping_params) { 610 for (const auto& ping_param : ping_params) {
610 if (!ContainsKey(result[id], ping_param.first)) 611 if (!base::ContainsKey(result[id], ping_param.first))
611 result[id][ping_param.first] = std::set<std::string>(); 612 result[id][ping_param.first] = std::set<std::string>();
612 result[id][ping_param.first].insert(ping_param.second); 613 result[id][ping_param.first].insert(ping_param.second);
613 } 614 }
614 } 615 }
615 } 616 }
616 return result; 617 return result;
617 } 618 }
618 619
619 static void VerifyQueryAndExtractParameters( 620 static void VerifyQueryAndExtractParameters(
620 const std::string& query, 621 const std::string& query,
(...skipping 1080 matching lines...) Expand 10 before | Expand all | Expand 10 after
1701 url2_fetch_url = fetched_urls[0]; 1702 url2_fetch_url = fetched_urls[0];
1702 url1_query = fetched_urls[1].query(); 1703 url1_query = fetched_urls[1].query();
1703 url2_query = fetched_urls[0].query(); 1704 url2_query = fetched_urls[0].query();
1704 } else { 1705 } else {
1705 NOTREACHED(); 1706 NOTREACHED();
1706 } 1707 }
1707 1708
1708 std::map<std::string, ParamsMap> url1_ping_data = 1709 std::map<std::string, ParamsMap> url1_ping_data =
1709 GetPingDataFromURL(url1_fetch_url); 1710 GetPingDataFromURL(url1_fetch_url);
1710 ParamsMap url1_params = ParamsMap(); 1711 ParamsMap url1_params = ParamsMap();
1711 if (!url1_ping_data.empty() && ContainsKey(url1_ping_data, id)) 1712 if (!url1_ping_data.empty() && base::ContainsKey(url1_ping_data, id))
1712 url1_params = url1_ping_data[id]; 1713 url1_params = url1_ping_data[id];
1713 1714
1714 // First make sure the non-google query had no ping parameter. 1715 // First make sure the non-google query had no ping parameter.
1715 EXPECT_TRUE(GetPingDataFromURL(url2_fetch_url).empty()); 1716 EXPECT_TRUE(GetPingDataFromURL(url2_fetch_url).empty());
1716 1717
1717 // Now make sure the google query had the correct ping parameter. 1718 // Now make sure the google query had the correct ping parameter.
1718 bool did_rollcall = false; 1719 bool did_rollcall = false;
1719 if (rollcall_ping_days != 0) { 1720 if (rollcall_ping_days != 0) {
1720 ASSERT_TRUE(ContainsKey(url1_params, "r")); 1721 ASSERT_TRUE(base::ContainsKey(url1_params, "r"));
1721 ASSERT_EQ(1u, url1_params["r"].size()); 1722 ASSERT_EQ(1u, url1_params["r"].size());
1722 EXPECT_EQ(base::IntToString(rollcall_ping_days), 1723 EXPECT_EQ(base::IntToString(rollcall_ping_days),
1723 *url1_params["r"].begin()); 1724 *url1_params["r"].begin());
1724 did_rollcall = true; 1725 did_rollcall = true;
1725 } 1726 }
1726 if (active_bit && active_ping_days != 0 && did_rollcall) { 1727 if (active_bit && active_ping_days != 0 && did_rollcall) {
1727 ASSERT_TRUE(ContainsKey(url1_params, "a")); 1728 ASSERT_TRUE(base::ContainsKey(url1_params, "a"));
1728 ASSERT_EQ(1u, url1_params["a"].size()); 1729 ASSERT_EQ(1u, url1_params["a"].size());
1729 EXPECT_EQ(base::IntToString(active_ping_days), 1730 EXPECT_EQ(base::IntToString(active_ping_days),
1730 *url1_params["a"].begin()); 1731 *url1_params["a"].begin());
1731 } 1732 }
1732 1733
1733 // Make sure the non-google query has no brand parameter. 1734 // Make sure the non-google query has no brand parameter.
1734 const std::string brand_string = "brand%3D"; 1735 const std::string brand_string = "brand%3D";
1735 EXPECT_TRUE(url2_query.find(brand_string) == std::string::npos); 1736 EXPECT_TRUE(url2_query.find(brand_string) == std::string::npos);
1736 1737
1737 #if defined(GOOGLE_CHROME_BUILD) 1738 #if defined(GOOGLE_CHROME_BUILD)
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
1836 const GURL& url = fetcher->GetOriginalURL(); 1837 const GURL& url = fetcher->GetOriginalURL();
1837 EXPECT_FALSE(url.is_empty()); 1838 EXPECT_FALSE(url.is_empty());
1838 EXPECT_TRUE(url.is_valid()); 1839 EXPECT_TRUE(url.is_valid());
1839 EXPECT_TRUE(url.has_query()); 1840 EXPECT_TRUE(url.has_query());
1840 1841
1841 std::map<std::string, ParamsMap> all_pings = GetPingDataFromURL(url); 1842 std::map<std::string, ParamsMap> all_pings = GetPingDataFromURL(url);
1842 1843
1843 // Make sure that all the enabled extensions have "e=1" in their ping 1844 // Make sure that all the enabled extensions have "e=1" in their ping
1844 // parameter. 1845 // parameter.
1845 for (const auto& ext : enabled_extensions) { 1846 for (const auto& ext : enabled_extensions) {
1846 ASSERT_TRUE(ContainsKey(all_pings, ext->id())); 1847 ASSERT_TRUE(base::ContainsKey(all_pings, ext->id()));
1847 ParamsMap& ping = all_pings[ext->id()]; 1848 ParamsMap& ping = all_pings[ext->id()];
1848 EXPECT_FALSE(ContainsKey(ping, "dr")); 1849 EXPECT_FALSE(base::ContainsKey(ping, "dr"));
1849 ASSERT_TRUE(ContainsKey(ping, "e")) << url; 1850 ASSERT_TRUE(base::ContainsKey(ping, "e")) << url;
1850 std::set<std::string> e = ping["e"]; 1851 std::set<std::string> e = ping["e"];
1851 ASSERT_EQ(1u, e.size()) << url; 1852 ASSERT_EQ(1u, e.size()) << url;
1852 EXPECT_EQ(std::string("1"), *e.begin()) << url; 1853 EXPECT_EQ(std::string("1"), *e.begin()) << url;
1853 EXPECT_FALSE(ContainsKey(ping, "dr")); 1854 EXPECT_FALSE(base::ContainsKey(ping, "dr"));
1854 } 1855 }
1855 1856
1856 // Make sure that all the disable extensions have the appropriate 1857 // Make sure that all the disable extensions have the appropriate
1857 // "dr=<num>" values in their ping parameter if metrics are on, or omit 1858 // "dr=<num>" values in their ping parameter if metrics are on, or omit
1858 // it otherwise. 1859 // it otherwise.
1859 ASSERT_EQ(disabled_extensions.size(), disabled.size()); 1860 ASSERT_EQ(disabled_extensions.size(), disabled.size());
1860 for (size_t i = 0; i < disabled.size(); i++) { 1861 for (size_t i = 0; i < disabled.size(); i++) {
1861 scoped_refptr<const Extension>& ext = disabled_extensions[i]; 1862 scoped_refptr<const Extension>& ext = disabled_extensions[i];
1862 int disable_reasons = disabled[i]; 1863 int disable_reasons = disabled[i];
1863 ASSERT_TRUE(ContainsKey(all_pings, ext->id())) << url; 1864 ASSERT_TRUE(base::ContainsKey(all_pings, ext->id())) << url;
1864 ParamsMap& ping = all_pings[ext->id()]; 1865 ParamsMap& ping = all_pings[ext->id()];
1865 1866
1866 ASSERT_TRUE(ContainsKey(ping, "e")) << url; 1867 ASSERT_TRUE(base::ContainsKey(ping, "e")) << url;
1867 std::set<std::string> e = ping["e"]; 1868 std::set<std::string> e = ping["e"];
1868 ASSERT_EQ(1u, e.size()) << url; 1869 ASSERT_EQ(1u, e.size()) << url;
1869 EXPECT_EQ(std::string("0"), *e.begin()) << url; 1870 EXPECT_EQ(std::string("0"), *e.begin()) << url;
1870 1871
1871 if (disable_reasons == 0) { 1872 if (disable_reasons == 0) {
1872 EXPECT_FALSE(ContainsKey(ping, "dr")); 1873 EXPECT_FALSE(base::ContainsKey(ping, "dr"));
1873 } else { 1874 } else {
1874 ASSERT_TRUE(ContainsKey(ping, "dr")); 1875 ASSERT_TRUE(base::ContainsKey(ping, "dr"));
1875 int found_reasons = 0; 1876 int found_reasons = 0;
1876 for (const auto& reason_string : ping["dr"]) { 1877 for (const auto& reason_string : ping["dr"]) {
1877 int reason = 0; 1878 int reason = 0;
1878 ASSERT_TRUE(base::StringToInt(reason_string, &reason)); 1879 ASSERT_TRUE(base::StringToInt(reason_string, &reason));
1879 // Make sure it's a power of 2. 1880 // Make sure it's a power of 2.
1880 ASSERT_TRUE(reason < 2 || !(reason & (reason - 1))) << reason; 1881 ASSERT_TRUE(reason < 2 || !(reason & (reason - 1))) << reason;
1881 found_reasons |= reason; 1882 found_reasons |= reason;
1882 } 1883 }
1883 EXPECT_EQ(disable_reasons, found_reasons); 1884 EXPECT_EQ(disable_reasons, found_reasons);
1884 } 1885 }
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after
2262 // -prodversionmin (shouldn't update if browser version too old) 2263 // -prodversionmin (shouldn't update if browser version too old)
2263 // -manifests & updates arriving out of order / interleaved 2264 // -manifests & updates arriving out of order / interleaved
2264 // -malformed update url (empty, file://, has query, has a # fragment, etc.) 2265 // -malformed update url (empty, file://, has query, has a # fragment, etc.)
2265 // -An extension gets uninstalled while updates are in progress (so it doesn't 2266 // -An extension gets uninstalled while updates are in progress (so it doesn't
2266 // "come back from the dead") 2267 // "come back from the dead")
2267 // -An extension gets manually updated to v3 while we're downloading v2 (ie 2268 // -An extension gets manually updated to v3 while we're downloading v2 (ie
2268 // you don't get downgraded accidentally) 2269 // you don't get downgraded accidentally)
2269 // -An update manifest mentions multiple updates 2270 // -An update manifest mentions multiple updates
2270 2271
2271 } // namespace extensions 2272 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/updater/extension_updater.cc ('k') | chrome/browser/extensions/warning_badge_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698