Commit 86b8c6f8 authored by hidehiko@chromium.org's avatar hidehiko@chromium.org

Implement GenerateInitiateUpload{New,Existing}FileUrl.

This is preparation to replace |upload_url| of InitiateUpload methods in
DriveServiceInterface by resource id.

BUG=148632
TEST=Ran unit_tests


Review URL: https://chromiumcodereview.appspot.com/12226073

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182144 0039d316-1c4b-4281-b951-d872f2087c98
parent 5c4a5814
......@@ -42,6 +42,15 @@ const char kResourceListRootURL[] = "/feeds/default/private/full";
// Metadata feed with things like user quota.
const char kAccountMetadataURL[] = "/feeds/metadata/default";
// URL to upload a new file under a particular directory specified by "%s".
const char kInitiateUploadNewFileURLFormat[] =
"/feeds/upload/create-session/default/private/full/%s/contents";
// URL to upload a file content to overwrite a file whose resource id is
// followed by this prefix.
const char kInitiateUploadExistingFileURLPrefix[] =
"/feeds/upload/create-session/default/private/full/";
#ifndef NDEBUG
// Use smaller 'page' size while debugging to ensure we hit feed reload
// almost always. Be careful not to use something too small on account that
......@@ -193,6 +202,21 @@ GURL GDataWapiUrlGenerator::GenerateResourceUrlForRemoval(
return AddStandardUrlParams(result);
}
GURL GDataWapiUrlGenerator::GenerateInitiateUploadNewFileUrl(
const std::string& parent_resource_id) const {
GURL result = base_url_.Resolve(
base::StringPrintf(kInitiateUploadNewFileURLFormat,
net::EscapePath(parent_resource_id).c_str()));
return AddInitiateUploadUrlParams(result);
}
GURL GDataWapiUrlGenerator::GenerateInitiateUploadExistingFileUrl(
const std::string& resource_id) const {
GURL result = base_url_.Resolve(
kInitiateUploadExistingFileURLPrefix + net::EscapePath(resource_id));
return AddInitiateUploadUrlParams(result);
}
GURL GDataWapiUrlGenerator::GenerateResourceListRootUrl() const {
return AddStandardUrlParams(base_url_.Resolve(kResourceListRootURL));
}
......
......@@ -104,6 +104,16 @@ class GDataWapiUrlGenerator {
GURL GenerateResourceUrlForRemoval(const std::string& parent_resource_id,
const std::string& resource_id) const;
// Generates a URL to initiate uploading a new file to a directory
// specified by |parent_resource_id|.
GURL GenerateInitiateUploadNewFileUrl(
const std::string& parent_resource_id) const;
// Generates a URL to initiate uploading file content to overwrite a
// file specified by |resource_id|.
GURL GenerateInitiateUploadExistingFileUrl(
const std::string& resource_id) const;
// Generates a URL for getting the root resource list feed.
// Used to make changes in the root directory (ex. create a directory in the
// root directory)
......
......@@ -193,6 +193,21 @@ TEST_F(GDataWapiUrlGeneratorTest, GenerateResourceUrlForRemoval) {
"folder:root", "file:ABCDE").spec());
}
TEST_F(GDataWapiUrlGeneratorTest, GenerateInitiateUploadNewFileUrl) {
EXPECT_EQ(
"https://docs.google.com/feeds/upload/create-session/default/private/"
"full/folder%3Aabcde/contents?convert=false&v=3&alt=json",
url_generator_.GenerateInitiateUploadNewFileUrl("folder:abcde").spec());
}
TEST_F(GDataWapiUrlGeneratorTest, GenerateInitiateUploadExistingFileUrl) {
EXPECT_EQ(
"https://docs.google.com/feeds/upload/create-session/default/private/"
"full/file%3Aresource_id?convert=false&v=3&alt=json",
url_generator_.GenerateInitiateUploadExistingFileUrl(
"file:resource_id").spec());
}
TEST_F(GDataWapiUrlGeneratorTest, GenerateResourceListRootUrl) {
EXPECT_EQ(
"https://docs.google.com/feeds/default/private/full?v=3&alt=json",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment