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

Unified Diff: chrome/browser/extensions/updater/extension_updater_unittest.cc

Issue 12396002: Add chrome version information to extension update checks (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 years, 10 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/extensions/updater/extension_updater_unittest.cc
diff --git a/chrome/browser/extensions/updater/extension_updater_unittest.cc b/chrome/browser/extensions/updater/extension_updater_unittest.cc
index 1bd8576199c68d59fd031b892138ddf96dcb65b8..19b6ab9bbc7824d57256d417fef6927e5210995a 100644
--- a/chrome/browser/extensions/updater/extension_updater_unittest.cc
+++ b/chrome/browser/extensions/updater/extension_updater_unittest.cc
@@ -45,6 +45,7 @@
#include "chrome/common/extensions/extension_manifest_constants.h"
#include "chrome/common/extensions/manifest_handler.h"
#include "chrome/common/extensions/manifest_url_handler.h"
+#include "chrome/common/omaha_query_params.h"
#include "chrome/common/pref_names.h"
#include "chrome/test/base/testing_profile.h"
#include "content/public/browser/notification_details.h"
@@ -443,6 +444,32 @@ static void ExtractParameters(const std::string& params,
}
}
+static void VerifyQueryAndExtractParameters(
+ const std::string& query,
+ std::map<std::string, std::string>* result) {
+ std::map<std::string, std::string> params;
+ ExtractParameters(query, &params);
+
+#if defined(GOOGLE_CHROME_BUILD)
+ std::string prod = "chromecrx";
+#else
+ std::string prod = "chromiumcrx";
+#endif
+ std::string omaha_params = chrome::GetOmahaQueryParams(prod);
+ std::map<std::string, std::string> expected;
+ ExtractParameters(omaha_params, &expected);
+
+ for (std::map<std::string, std::string>::iterator it = expected.begin();
+ it != expected.end(); ++it) {
+ EXPECT_EQ(it->second, params[it->first]);
+ }
+
+ EXPECT_NE(params.find("x"), params.end());
+ std::string decoded = net::UnescapeURLComponent(
+ params["x"], net::UnescapeRule::URL_SPECIAL_CHARS);
+ ExtractParameters(decoded, result);
+}
+
// All of our tests that need to use private APIs of ExtensionUpdater live
// inside this class (which is a friend to ExtensionUpdater).
class ExtensionUpdaterTest : public testing::Test {
@@ -554,16 +581,10 @@ class ExtensionUpdaterTest : public testing::Test {
EXPECT_EQ("/bar", url.path());
// Validate the extension request parameters in the query. It should
- // look something like "?x=id%3D<id>%26v%3D<version>%26uc".
+ // look something like "x=id%3D<id>%26v%3D<version>%26uc".
EXPECT_TRUE(url.has_query());
- std::vector<std::string> parts;
- base::SplitString(url.query(), '=', &parts);
- EXPECT_EQ(2u, parts.size());
- EXPECT_EQ("x", parts[0]);
- std::string decoded = net::UnescapeURLComponent(
- parts[1], net::UnescapeRule::URL_SPECIAL_CHARS);
std::map<std::string, std::string> params;
- ExtractParameters(decoded, &params);
+ VerifyQueryAndExtractParameters(url.query(), &params);
if (pending) {
EXPECT_TRUE(pending_extension_manager->IsIdPending(params["id"]));
EXPECT_EQ("0.0.0.0", params["v"]);
@@ -603,16 +624,10 @@ class ExtensionUpdaterTest : public testing::Test {
EXPECT_EQ("/service/update2/crx", url.path());
// Validate the extension request parameters in the query. It should
- // look something like "?x=id%3D<id>%26v%3D<version>%26uc".
+ // look something like "x=id%3D<id>%26v%3D<version>%26uc".
EXPECT_TRUE(url.has_query());
- std::vector<std::string> parts;
- base::SplitString(url.query(), '=', &parts);
- EXPECT_EQ(2u, parts.size());
- EXPECT_EQ("x", parts[0]);
- std::string decoded = net::UnescapeURLComponent(
- parts[1], net::UnescapeRule::URL_SPECIAL_CHARS);
std::map<std::string, std::string> params;
- ExtractParameters(decoded, &params);
+ VerifyQueryAndExtractParameters(url.query(), &params);
EXPECT_EQ("com.google.crx.blacklist", params["id"]);
EXPECT_EQ("0", params["v"]);
EXPECT_EQ("", params["uc"]);
@@ -627,9 +642,12 @@ class ExtensionUpdaterTest : public testing::Test {
// option to appear in the x= parameter.
ManifestFetchData fetch_data(GURL("http://localhost/foo"), 0);
fetch_data.AddExtension(id, version, &kNeverPingedData, "", "");
- EXPECT_EQ("http://localhost/foo\?x=id%3Daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
- "%26v%3D1.0%26uc",
- fetch_data.full_url().spec());
+
+ std::map<std::string, std::string> params;
+ VerifyQueryAndExtractParameters(fetch_data.full_url().query(), &params);
+ EXPECT_EQ(id, params["id"]);
+ EXPECT_EQ(version, params["v"]);
+ EXPECT_EQ(params.end(), params.find("ap"));
asargent_no_longer_on_chrome 2013/03/06 00:45:06 nice cleanup - this is much more readable!
}
void TestUpdateUrlDataSimple() {
@@ -640,9 +658,11 @@ class ExtensionUpdaterTest : public testing::Test {
// option to appear in the x= parameter.
ManifestFetchData fetch_data(GURL("http://localhost/foo"), 0);
fetch_data.AddExtension(id, version, &kNeverPingedData, "bar", "");
- EXPECT_EQ("http://localhost/foo\?x=id%3Daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
- "%26v%3D1.0%26uc%26ap%3Dbar",
- fetch_data.full_url().spec());
+ std::map<std::string, std::string> params;
+ VerifyQueryAndExtractParameters(fetch_data.full_url().query(), &params);
+ EXPECT_EQ(id, params["id"]);
+ EXPECT_EQ(version, params["v"]);
+ EXPECT_EQ("bar", params["ap"]);
}
void TestUpdateUrlDataCompound() {
@@ -653,9 +673,11 @@ class ExtensionUpdaterTest : public testing::Test {
// option to appear in the x= parameter.
ManifestFetchData fetch_data(GURL("http://localhost/foo"), 0);
fetch_data.AddExtension(id, version, &kNeverPingedData, "a=1&b=2&c", "");
- EXPECT_EQ("http://localhost/foo\?x=id%3Daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
- "%26v%3D1.0%26uc%26ap%3Da%253D1%2526b%253D2%2526c",
- fetch_data.full_url().spec());
+ std::map<std::string, std::string> params;
+ VerifyQueryAndExtractParameters(fetch_data.full_url().query(), &params);
+ EXPECT_EQ(id, params["id"]);
+ EXPECT_EQ(version, params["v"]);
+ EXPECT_EQ("a%3D1%26b%3D2%26c", params["ap"]);
}
void TestUpdateUrlDataFromGallery(const std::string& gallery_url) {
@@ -695,9 +717,11 @@ class ExtensionUpdaterTest : public testing::Test {
ManifestFetchData fetch_data(GURL("http://localhost/foo"), 0);
fetch_data.AddExtension(id, version, &kNeverPingedData,
kEmptyUpdateUrlData, install_source);
- EXPECT_EQ("http://localhost/foo\?x=id%3Daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
- "%26v%3D1.0%26installsource%3Dinstally%26uc",
- fetch_data.full_url().spec());
+ std::map<std::string, std::string> params;
+ VerifyQueryAndExtractParameters(fetch_data.full_url().query(), &params);
+ EXPECT_EQ(id, params["id"]);
+ EXPECT_EQ(version, params["v"]);
+ EXPECT_EQ(install_source, params["installsource"]);
}
void TestDetermineUpdates() {

Powered by Google App Engine
This is Rietveld 408576698