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

Unified Diff: google_apis/gaia/fake_gaia.cc

Issue 1141163002: Browser tests for the new way of handling device ID in Chrome OS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@device_id
Patch Set: OobeBaseTest part extracted. Created 5 years, 7 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
« google_apis/gaia/fake_gaia.h ('K') | « google_apis/gaia/fake_gaia.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: google_apis/gaia/fake_gaia.cc
diff --git a/google_apis/gaia/fake_gaia.cc b/google_apis/gaia/fake_gaia.cc
index 1bf87ca7fbb5018ed7d9113a807dd26d67604b84..247894eb3aab367fde231ffd9c19dd2c408d6416 100644
--- a/google_apis/gaia/fake_gaia.cc
+++ b/google_apis/gaia/fake_gaia.cc
@@ -136,6 +136,23 @@ FakeGaia::MergeSessionParams::MergeSessionParams() {
FakeGaia::MergeSessionParams::~MergeSessionParams() {
}
+void FakeGaia::MergeSessionParams::Update(const MergeSessionParams& update) {
+ auto maybe_update_field =
achuithb 2015/05/28 00:18:57 The number of obscure C++ features used in this sn
dzhioev (left Google) 2015/05/28 02:21:42 Done =).
+ [this, &update](std::string MergeSessionParams::*field) {
+ if (!(update.*field).empty())
+ this->*field = update.*field;
+ };
+ maybe_update_field(&MergeSessionParams::auth_sid_cookie);
+ maybe_update_field(&MergeSessionParams::auth_lsid_cookie);
+ maybe_update_field(&MergeSessionParams::auth_code);
+ maybe_update_field(&MergeSessionParams::refresh_token);
+ maybe_update_field(&MergeSessionParams::access_token);
+ maybe_update_field(&MergeSessionParams::gaia_uber_token);
+ maybe_update_field(&MergeSessionParams::session_sid_cookie);
+ maybe_update_field(&MergeSessionParams::session_lsid_cookie);
+ maybe_update_field(&MergeSessionParams::email);
+}
+
FakeGaia::FakeGaia() : issue_oauth_code_cookie_(false) {
base::FilePath source_root_dir;
PathService::Get(base::DIR_SOURCE_ROOT, &source_root_dir);
@@ -171,6 +188,10 @@ void FakeGaia::SetMergeSessionParams(
merge_session_params_ = params;
}
+void FakeGaia::UpdateMergeSessionParams(const MergeSessionParams& params) {
+ merge_session_params_.Update(params);
+}
+
void FakeGaia::MapEmailToGaiaId(const std::string& email,
const std::string& gaia_id) {
DCHECK(!email.empty());
@@ -180,7 +201,7 @@ void FakeGaia::MapEmailToGaiaId(const std::string& email,
std::string FakeGaia::GetGaiaIdOfEmail(const std::string& email) const {
DCHECK(!email.empty());
- auto it = email_to_gaia_id_map_.find(email);
+ const auto it = email_to_gaia_id_map_.find(email);
return it == email_to_gaia_id_map_.end() ? std::string(kDefaultGaiaId) :
it->second;
}
@@ -306,6 +327,18 @@ bool FakeGaia::GetQueryParameter(const std::string& query,
return net::GetValueForKeyInQuery(query_url, key, value);
}
+std::string FakeGaia::GetDeviceIdByRefreshToken(
+ const std::string& refresh_token) const {
+ auto it = refresh_token_to_device_id_map_.find(refresh_token);
+ return it != refresh_token_to_device_id_map_.end() ? it->second
+ : std::string();
+}
+
+void FakeGaia::SetRefreshTokenToDeviceIdMap(
+ const RefreshTokenToDeviceIdMap& refresh_token_to_device_id_map) {
+ refresh_token_to_device_id_map_ = refresh_token_to_device_id_map;
+}
+
void FakeGaia::HandleMergeSession(const HttpRequest& request,
BasicHttpResponse* http_response) {
http_response->set_code(net::HTTP_UNAUTHORIZED);
@@ -602,9 +635,27 @@ void FakeGaia::HandleAuthToken(const HttpRequest& request,
return;
}
+ std::string device_id;
+ if (GetQueryParameter(request.content, "device_id", &device_id)) {
+ std::string device_type;
+ if (!GetQueryParameter(request.content, "device_type", &device_type)) {
+ http_response->set_code(net::HTTP_BAD_REQUEST);
+ LOG(ERROR) << "'device_type' should be set if 'device_id' is set.";
+ return;
+ }
+ if (device_type != "chrome") {
+ http_response->set_code(net::HTTP_BAD_REQUEST);
+ LOG(ERROR) << "'device_type' is not 'chrome'.";
+ return;
+ }
+ }
+
base::DictionaryValue response_dict;
response_dict.SetString("refresh_token",
merge_session_params_.refresh_token);
+ if (!device_id.empty())
+ refresh_token_to_device_id_map_[merge_session_params_.refresh_token] =
+ device_id;
response_dict.SetString("access_token",
merge_session_params_.access_token);
response_dict.SetInteger("expires_in", 3600);
« google_apis/gaia/fake_gaia.h ('K') | « google_apis/gaia/fake_gaia.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698