summaryrefslogtreecommitdiffstats
path: root/chrome/browser/google_apis/test_util.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/google_apis/test_util.cc')
-rw-r--r--chrome/browser/google_apis/test_util.cc32
1 files changed, 32 insertions, 0 deletions
diff --git a/chrome/browser/google_apis/test_util.cc b/chrome/browser/google_apis/test_util.cc
index b76f24f..11feb40 100644
--- a/chrome/browser/google_apis/test_util.cc
+++ b/chrome/browser/google_apis/test_util.cc
@@ -12,6 +12,8 @@
#include "base/pending_task.h"
#include "base/string_util.h"
#include "base/stringprintf.h"
+#include "base/strings/string_number_conversions.h"
+#include "base/strings/string_split.h"
#include "base/threading/sequenced_worker_pool.h"
#include "chrome/browser/google_apis/drive_api_parser.h"
#include "chrome/browser/google_apis/gdata_wapi_operations.h"
@@ -279,5 +281,35 @@ bool VerifyJsonData(const base::FilePath& expected_json_file_path,
return true;
}
+bool ParseContentRangeHeader(const std::string& value,
+ int64* start_position,
+ int64* end_position,
+ int64* length) {
+ DCHECK(start_position);
+ DCHECK(end_position);
+ DCHECK(length);
+
+ std::string remaining;
+ if (!RemovePrefix(value, "bytes ", &remaining))
+ return false;
+
+ std::vector<std::string> parts;
+ base::SplitString(remaining, '/', &parts);
+ if (parts.size() != 2U)
+ return false;
+
+ const std::string range = parts[0];
+ if (!base::StringToInt64(parts[1], length))
+ return false;
+
+ parts.clear();
+ base::SplitString(range, '-', &parts);
+ if (parts.size() != 2U)
+ return false;
+
+ return (base::StringToInt64(parts[0], start_position) &&
+ base::StringToInt64(parts[1], end_position));
+}
+
} // namespace test_util
} // namespace google_apis