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

Unified Diff: chrome/browser/google_apis/fake_drive_service_unittest.cc

Issue 12210031: Implement fake drive service upload methods. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: properly rebased Created 7 years, 10 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 | « chrome/browser/google_apis/fake_drive_service.cc ('k') | chrome/browser/google_apis/test_util.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/google_apis/fake_drive_service_unittest.cc
diff --git a/chrome/browser/google_apis/fake_drive_service_unittest.cc b/chrome/browser/google_apis/fake_drive_service_unittest.cc
index ce7612220b0df8325ff926166ef845dde88f7bab..9c0998c79710c578eff4e313b3d80dbfc08e1e6e 100644
--- a/chrome/browser/google_apis/fake_drive_service_unittest.cc
+++ b/chrome/browser/google_apis/fake_drive_service_unittest.cc
@@ -11,6 +11,7 @@
#include "base/message_loop.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/google_apis/drive_api_parser.h"
+#include "chrome/browser/google_apis/gdata_wapi_operations.h"
#include "chrome/browser/google_apis/gdata_wapi_parser.h"
#include "chrome/browser/google_apis/test_util.h"
#include "content/public/browser/browser_thread.h"
@@ -19,6 +20,8 @@
namespace google_apis {
+namespace {
+
class FakeDriveServiceTest : public testing::Test {
protected:
FakeDriveServiceTest()
@@ -1036,4 +1039,317 @@ TEST_F(FakeDriveServiceTest, AddNewDirectory_Offline) {
EXPECT_FALSE(resource_entry);
}
+TEST_F(FakeDriveServiceTest, InitiateUpload_Offline) {
+ ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json"));
+ fake_service_.set_offline(true);
+
+ GDataErrorCode error = GDATA_OTHER_ERROR;
+ GURL upload_location;
+ fake_service_.InitiateUpload(
+ InitiateUploadParams(
+ UPLOAD_NEW_FILE,
+ "new file.foo",
+ "test/foo",
+ 13,
+ GURL("https://1_folder_resumable_create_media_link"),
+ FilePath(FILE_PATH_LITERAL("drive/Directory 1")),
+ "etag_ignored"),
+ base::Bind(&test_util::CopyResultsFromInitiateUploadCallback,
+ &error,
+ &upload_location));
+ message_loop_.RunUntilIdle();
+
+ EXPECT_EQ(GDATA_NO_CONNECTION, error);
+ EXPECT_TRUE(upload_location.is_empty());
+}
+
+TEST_F(FakeDriveServiceTest, InitiateUpload_NotFound) {
+ ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json"));
+
+ GDataErrorCode error = GDATA_OTHER_ERROR;
+ GURL upload_location;
+ fake_service_.InitiateUpload(
+ InitiateUploadParams(
+ UPLOAD_NEW_FILE,
+ "new file.foo",
+ "test/foo",
+ 13,
+ GURL("https://non_existent"),
+ FilePath(FILE_PATH_LITERAL("drive/Directory 1")),
+ "etag_ignored"),
+ base::Bind(&test_util::CopyResultsFromInitiateUploadCallback,
+ &error,
+ &upload_location));
+ message_loop_.RunUntilIdle();
+
+ EXPECT_EQ(HTTP_NOT_FOUND, error);
+ EXPECT_TRUE(upload_location.is_empty());
+}
+
+TEST_F(FakeDriveServiceTest, InitiateUpload_NewFile) {
+ ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json"));
+
+ GDataErrorCode error = GDATA_OTHER_ERROR;
+ GURL upload_location;
+ fake_service_.InitiateUpload(
+ InitiateUploadParams(
+ UPLOAD_NEW_FILE,
+ "new file.foo",
+ "test/foo",
+ 13,
+ GURL("https://1_folder_resumable_create_media_link"),
+ FilePath(FILE_PATH_LITERAL("drive/Directory 1")),
+ "etag_ignored"),
+ base::Bind(&test_util::CopyResultsFromInitiateUploadCallback,
+ &error,
+ &upload_location));
+ message_loop_.RunUntilIdle();
+
+ EXPECT_EQ(HTTP_SUCCESS, error);
+ EXPECT_FALSE(upload_location.is_empty());
+ EXPECT_NE(GURL("https://1_folder_resumable_create_media_link"),
+ upload_location);
+}
+
+TEST_F(FakeDriveServiceTest, InitiateUpload_WrongETag) {
+ ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json"));
+
+ GDataErrorCode error = GDATA_OTHER_ERROR;
+ GURL upload_location;
+ fake_service_.InitiateUpload(
+ InitiateUploadParams(
+ UPLOAD_EXISTING_FILE,
+ "name_ignored",
+ "text/plain",
+ 13,
+ GURL("https://2_file_link_resumable_create_media"),
+ FilePath(FILE_PATH_LITERAL("drive/File 1.txt")),
+ "invalid_etag"),
+ base::Bind(&test_util::CopyResultsFromInitiateUploadCallback,
+ &error,
+ &upload_location));
+ message_loop_.RunUntilIdle();
+
+ EXPECT_EQ(HTTP_PRECONDITION, error);
+ EXPECT_TRUE(upload_location.is_empty());
+}
+
+TEST_F(FakeDriveServiceTest, InitiateUpload_ExistingFile) {
+ ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json"));
+
+ GDataErrorCode error = GDATA_OTHER_ERROR;
+ GURL upload_location;
+ fake_service_.InitiateUpload(
+ InitiateUploadParams(
+ UPLOAD_EXISTING_FILE,
+ "name_ignored",
+ "text/plain",
+ 13,
+ GURL("https://2_file_link_resumable_create_media"),
+ FilePath(FILE_PATH_LITERAL("drive/File 1.txt")),
+ "\"HhMOFgxXHit7ImBr\""),
+ base::Bind(&test_util::CopyResultsFromInitiateUploadCallback,
+ &error,
+ &upload_location));
+ message_loop_.RunUntilIdle();
+
+ EXPECT_EQ(HTTP_SUCCESS, error);
+ EXPECT_EQ(GURL("https://2_file_link_resumable_create_media"),
+ upload_location);
+}
+
+TEST_F(FakeDriveServiceTest, ResumeUpload_Offline) {
+ ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json"));
+
+ GDataErrorCode error = GDATA_OTHER_ERROR;
+ GURL upload_location;
+ fake_service_.InitiateUpload(
+ InitiateUploadParams(
+ UPLOAD_NEW_FILE,
+ "new file.foo",
+ "test/foo",
+ 15,
+ GURL("https://1_folder_resumable_create_media_link"),
+ FilePath(FILE_PATH_LITERAL("drive/Directory 1/new file.foo")),
+ "etag_ignored"),
+ base::Bind(&test_util::CopyResultsFromInitiateUploadCallback,
+ &error,
+ &upload_location));
+ message_loop_.RunUntilIdle();
+
+ EXPECT_EQ(HTTP_SUCCESS, error);
+ EXPECT_FALSE(upload_location.is_empty());
+ EXPECT_NE(GURL("https://1_folder_resumable_create_media_link"),
+ upload_location);
+
+ fake_service_.set_offline(true);
+
+ UploadRangeResponse response;
+ scoped_ptr<ResourceEntry> entry;
+ fake_service_.ResumeUpload(
+ ResumeUploadParams(UPLOAD_NEW_FILE,
+ 0, 13, 15, "test/foo",
+ scoped_refptr<net::IOBuffer>(),
+ upload_location,
+ FilePath(FILE_PATH_LITERAL(
+ "drive/Directory 1/new file.foo"))),
+ base::Bind(&test_util::CopyResultsFromUploadRangeCallback,
+ &response, &entry));
+ message_loop_.RunUntilIdle();
+
+ EXPECT_EQ(GDATA_NO_CONNECTION, response.code);
+ EXPECT_FALSE(entry.get());
+}
+
+TEST_F(FakeDriveServiceTest, ResumeUpload_NotFound) {
+ ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json"));
+
+ GDataErrorCode error = GDATA_OTHER_ERROR;
+ GURL upload_location;
+ fake_service_.InitiateUpload(
+ InitiateUploadParams(
+ UPLOAD_NEW_FILE,
+ "new file.foo",
+ "test/foo",
+ 15,
+ GURL("https://1_folder_resumable_create_media_link"),
+ FilePath(FILE_PATH_LITERAL("drive/Directory 1/new file.foo")),
+ "etag_ignored"),
+ base::Bind(&test_util::CopyResultsFromInitiateUploadCallback,
+ &error,
+ &upload_location));
+ message_loop_.RunUntilIdle();
+
+ ASSERT_EQ(HTTP_SUCCESS, error);
+
+ UploadRangeResponse response;
+ scoped_ptr<ResourceEntry> entry;
+ fake_service_.ResumeUpload(
+ ResumeUploadParams(UPLOAD_NEW_FILE,
+ 0, 13, 15, "test/foo",
+ scoped_refptr<net::IOBuffer>(),
+ GURL("https://foo.com/"),
+ FilePath(FILE_PATH_LITERAL(
+ "drive/Directory 1/new file.foo"))),
+ base::Bind(&test_util::CopyResultsFromUploadRangeCallback,
+ &response, &entry));
+ message_loop_.RunUntilIdle();
+
+ EXPECT_EQ(HTTP_NOT_FOUND, response.code);
+ EXPECT_FALSE(entry.get());
+}
+
+TEST_F(FakeDriveServiceTest, ResumeUpload_ExistingFile) {
+ ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json"));
+
+ GDataErrorCode error = GDATA_OTHER_ERROR;
+ GURL upload_location;
+ fake_service_.InitiateUpload(
+ InitiateUploadParams(
+ UPLOAD_EXISTING_FILE,
+ "name_ignored",
+ "text/plain",
+ 15,
+ GURL("https://2_file_link_resumable_create_media"),
+ FilePath(FILE_PATH_LITERAL("drive/File 1.txt")),
+ "\"HhMOFgxXHit7ImBr\""),
+ base::Bind(&test_util::CopyResultsFromInitiateUploadCallback,
+ &error,
+ &upload_location));
+ message_loop_.RunUntilIdle();
+
+ ASSERT_EQ(HTTP_SUCCESS, error);
+
+ UploadRangeResponse response;
+ scoped_ptr<ResourceEntry> entry;
+ fake_service_.ResumeUpload(
+ ResumeUploadParams(UPLOAD_EXISTING_FILE,
+ 0, 13, 15, "text/plain",
+ scoped_refptr<net::IOBuffer>(),
+ upload_location,
+ FilePath(FILE_PATH_LITERAL(
+ "drive/File 1.txt"))),
+ base::Bind(&test_util::CopyResultsFromUploadRangeCallback,
+ &response, &entry));
+ message_loop_.RunUntilIdle();
+
+ EXPECT_EQ(HTTP_RESUME_INCOMPLETE, response.code);
+ EXPECT_FALSE(entry.get());
+
+ fake_service_.ResumeUpload(
+ ResumeUploadParams(UPLOAD_EXISTING_FILE,
+ 14, 15, 15, "text/plain",
+ scoped_refptr<net::IOBuffer>(),
+ upload_location,
+ FilePath(FILE_PATH_LITERAL(
+ "drive/File 1.txt"))),
+ base::Bind(&test_util::CopyResultsFromUploadRangeCallback,
+ &response, &entry));
+ message_loop_.RunUntilIdle();
+
+ EXPECT_EQ(HTTP_SUCCESS, response.code);
+ EXPECT_TRUE(entry.get());
+ EXPECT_EQ(15L, entry->file_size());
+ EXPECT_TRUE(Exists(entry->resource_id()));
+}
+
+TEST_F(FakeDriveServiceTest, ResumeUpload_NewFile) {
+ ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json"));
+
+ GDataErrorCode error = GDATA_OTHER_ERROR;
+ GURL upload_location;
+ fake_service_.InitiateUpload(
+ InitiateUploadParams(
+ UPLOAD_NEW_FILE,
+ "new file.foo",
+ "test/foo",
+ 15,
+ GURL("https://1_folder_resumable_create_media_link"),
+ FilePath(FILE_PATH_LITERAL("drive/Directory 1/new file.foo")),
+ "etag_ignored"),
+ base::Bind(&test_util::CopyResultsFromInitiateUploadCallback,
+ &error,
+ &upload_location));
+ message_loop_.RunUntilIdle();
+
+ EXPECT_EQ(HTTP_SUCCESS, error);
+ EXPECT_FALSE(upload_location.is_empty());
+ EXPECT_NE(GURL("https://1_folder_resumable_create_media_link"),
+ upload_location);
+
+ UploadRangeResponse response;
+ scoped_ptr<ResourceEntry> entry;
+ fake_service_.ResumeUpload(
+ ResumeUploadParams(UPLOAD_NEW_FILE,
+ 0, 13, 15, "test/foo",
+ scoped_refptr<net::IOBuffer>(),
+ upload_location,
+ FilePath(FILE_PATH_LITERAL(
+ "drive/Directory 1/new file.foo"))),
+ base::Bind(&test_util::CopyResultsFromUploadRangeCallback,
+ &response, &entry));
+ message_loop_.RunUntilIdle();
+
+ EXPECT_EQ(HTTP_RESUME_INCOMPLETE, response.code);
+ EXPECT_FALSE(entry.get());
+
+ fake_service_.ResumeUpload(
+ ResumeUploadParams(UPLOAD_NEW_FILE,
+ 14, 15, 15, "test/foo",
+ scoped_refptr<net::IOBuffer>(),
+ upload_location,
+ FilePath(FILE_PATH_LITERAL(
+ "drive/Directory 1/new file.foo"))),
+ base::Bind(&test_util::CopyResultsFromUploadRangeCallback,
+ &response, &entry));
+ message_loop_.RunUntilIdle();
+
+ EXPECT_EQ(HTTP_CREATED, response.code);
+ EXPECT_TRUE(entry.get());
+ EXPECT_EQ(15L, entry->file_size());
+ EXPECT_TRUE(Exists(entry->resource_id()));
+}
+
+} // namespace
+
} // namespace google_apis
« no previous file with comments | « chrome/browser/google_apis/fake_drive_service.cc ('k') | chrome/browser/google_apis/test_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698