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

Unified Diff: chrome/browser/sync/engine/net/gaia_authenticator.cc

Issue 464075: Move two generic string split functions from sync API to their own API in base/string_split. (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: added .gypi Created 11 years 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 | « base/string_util.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/sync/engine/net/gaia_authenticator.cc
===================================================================
--- chrome/browser/sync/engine/net/gaia_authenticator.cc (revision 34166)
+++ chrome/browser/sync/engine/net/gaia_authenticator.cc (working copy)
@@ -10,7 +10,7 @@
#include "base/basictypes.h"
#include "base/port.h"
-#include "base/string_util.h"
+#include "base/string_split.h"
#include "chrome/browser/sync/engine/all_status.h"
#include "chrome/browser/sync/engine/net/http_return.h"
#include "chrome/browser/sync/engine/net/url_translator.h"
@@ -21,63 +21,6 @@
using std::string;
using std::vector;
-// TODO(timsteele): Integrate the following two functions to string_util.h or
-// somewhere that makes them unit-testable.
-bool SplitStringIntoKeyValues(const string& line,
- char key_value_delimiter,
- string* key, vector<string>* values) {
- key->clear();
- values->clear();
-
- // find the key string
- size_t end_key_pos = line.find_first_of(key_value_delimiter);
- if (end_key_pos == string::npos) {
- DLOG(INFO) << "cannot parse key from line: " << line;
- return false; // no key
- }
- key->assign(line, 0, end_key_pos);
-
- // find the values string
- string remains(line, end_key_pos, line.size() - end_key_pos);
- size_t begin_values_pos = remains.find_first_not_of(key_value_delimiter);
- if (begin_values_pos == string::npos) {
- DLOG(INFO) << "cannot parse value from line: " << line;
- return false; // no value
- }
- string values_string(remains, begin_values_pos,
- remains.size() - begin_values_pos);
-
- // construct the values vector
- values->push_back(values_string);
- return true;
-}
-
-bool SplitStringIntoKeyValuePairs(const string& line,
- char key_value_delimiter,
- char key_value_pair_delimiter,
- vector<pair<string, string> >* kv_pairs) {
- kv_pairs->clear();
-
- vector<string> pairs;
- SplitString(line, key_value_pair_delimiter, &pairs);
-
- bool success = true;
- for (size_t i = 0; i < pairs.size(); ++i) {
- string key;
- vector<string> value;
- if (!SplitStringIntoKeyValues(pairs[i],
- key_value_delimiter,
- &key, &value)) {
- // Don't return here, to allow for keys without associated
- // values; just record that our split failed.
- success = false;
- }
- DCHECK_LE(value.size(), 1U);
- kv_pairs->push_back(make_pair(key, value.empty()? "" : value[0]));
- }
- return success;
-}
-
namespace browser_sync {
static const char kGaiaV1IssueAuthTokenPath[] = "/accounts/IssueAuthToken";
@@ -288,7 +231,7 @@
} else if (RC_REQUEST_OK == server_response_code) {
typedef vector<pair<string, string> > Tokens;
Tokens tokens;
- SplitStringIntoKeyValuePairs(message_text, '=', '\n', &tokens);
+ base::SplitStringIntoKeyValuePairs(message_text, '=', '\n', &tokens);
for (Tokens::iterator i = tokens.begin(); i != tokens.end(); ++i) {
if ("accountType" == i->first) {
// We never authenticate an email as a hosted account.
@@ -356,7 +299,7 @@
void GaiaAuthenticator::ExtractTokensFrom(const string& response,
AuthResults* results) {
vector<pair<string, string> > tokens;
- SplitStringIntoKeyValuePairs(response, '=', '\n', &tokens);
+ base::SplitStringIntoKeyValuePairs(response, '=', '\n', &tokens);
for (vector<pair<string, string> >::iterator i = tokens.begin();
i != tokens.end(); ++i) {
if (i->first == "SID") {
@@ -374,7 +317,7 @@
void GaiaAuthenticator::ExtractAuthErrorFrom(const string& response,
AuthResults* results) {
vector<pair<string, string> > tokens;
- SplitStringIntoKeyValuePairs(response, '=', '\n', &tokens);
+ base::SplitStringIntoKeyValuePairs(response, '=', '\n', &tokens);
for (vector<pair<string, string> >::iterator i = tokens.begin();
i != tokens.end(); ++i) {
if (i->first == "Error") {
« no previous file with comments | « base/string_util.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698