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

Unified Diff: omaha_request_params.h

Issue 4103002: AU: Implement switching of tracks through SetTrack. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/update_engine.git
Patch Set: review comments Created 10 years, 2 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
« no previous file with comments | « dbus_service.cc ('k') | omaha_request_params.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: omaha_request_params.h
diff --git a/omaha_request_params.h b/omaha_request_params.h
index 551a3a3d774924f54b82430737f8d02e69be1b82..d7d2493bc9523d0d1b29eab32ddea2b5b143638a 100644
--- a/omaha_request_params.h
+++ b/omaha_request_params.h
@@ -7,7 +7,8 @@
#include <string>
-#include "base/basictypes.h"
+#include <base/basictypes.h>
+#include <gtest/gtest_prod.h> // for FRIEND_TEST
// This gathers local system information and prepares info used by the
// Omaha request action.
@@ -55,6 +56,8 @@ struct OmahaRequestParams {
std::string update_url;
+ static const char kUpdateTrackKey[];
+
// Suggested defaults
static const char* const kAppId;
static const char* const kOsPlatform;
@@ -64,7 +67,7 @@ struct OmahaRequestParams {
class OmahaRequestDeviceParams : public OmahaRequestParams {
public:
- OmahaRequestDeviceParams() {}
+ OmahaRequestDeviceParams();
// Initializes all the data in the object. Non-empty
// |in_app_version| or |in_update_url| prevents automatic detection
@@ -72,15 +75,40 @@ class OmahaRequestDeviceParams : public OmahaRequestParams {
bool Init(const std::string& in_app_version,
const std::string& in_update_url);
+ // Permanently changes the release track to |track|. Returns true on success,
+ // false otherwise.
+ bool SetTrack(const std::string& track);
+ static bool SetDeviceTrack(const std::string& track);
+
// For unit-tests.
void set_root(const std::string& root) { root_ = root; }
+ // Force build type for testing purposes.
+ void SetBuildTypeOfficial(bool is_official);
+
private:
+ FRIEND_TEST(OmahaRequestDeviceParamsTest, IsValidTrackTest);
+
+ // Use a validator that is a non-static member of this class so that its
+ // inputs can be mocked in unit tests (e.g., build type for IsValidTrack).
+ typedef bool(OmahaRequestDeviceParams::*ValueValidator)(
+ const std::string&) const;
+
+ // Returns true if this is an official build, false otherwise.
+ bool IsOfficialBuild() const;
+
+ // Returns true if |track| is a valid track, false otherwise. This method
+ // restricts the track value only if the image is official (see
+ // IsOfficialBuild).
+ bool IsValidTrack(const std::string& track) const;
+
// Fetches the value for a given key from
- // /mnt/stateful_partition/etc/lsb-release if possible. Failing that,
- // it looks for the key in /etc/lsb-release.
+ // /mnt/stateful_partition/etc/lsb-release if possible. Failing that, it looks
+ // for the key in /etc/lsb-release. If |validator| is non-NULL, uses it to
+ // validate and ignore invalid valies.
std::string GetLsbValue(const std::string& key,
- const std::string& default_value) const;
+ const std::string& default_value,
+ ValueValidator validator) const;
// Gets the machine type (e.g. "i686").
std::string GetMachineType() const;
@@ -92,6 +120,10 @@ class OmahaRequestDeviceParams : public OmahaRequestParams {
// When reading files, prepend root_ to the paths. Useful for testing.
std::string root_;
+ // Force build type for testing purposes.
+ bool force_build_type_;
+ bool forced_official_build_;
+
DISALLOW_COPY_AND_ASSIGN(OmahaRequestDeviceParams);
};
« no previous file with comments | « dbus_service.cc ('k') | omaha_request_params.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698