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

Side by Side Diff: google_apis/drive/gdata_wapi_requests_unittest.cc

Issue 861133002: Remove WAPI-related code, except the type definition of ResourceEntry. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Respond to review comments. Created 5 years, 11 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 unified diff | Download patch
« no previous file with comments | « google_apis/drive/gdata_wapi_requests.cc ('k') | google_apis/drive/gdata_wapi_url_generator.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/bind.h"
6 #include "base/message_loop/message_loop.h"
7 #include "base/run_loop.h"
8 #include "google_apis/drive/dummy_auth_service.h"
9 #include "google_apis/drive/gdata_wapi_parser.h"
10 #include "google_apis/drive/gdata_wapi_requests.h"
11 #include "google_apis/drive/gdata_wapi_url_generator.h"
12 #include "google_apis/drive/request_sender.h"
13 #include "google_apis/drive/test_util.h"
14 #include "net/base/escape.h"
15 #include "net/test/embedded_test_server/embedded_test_server.h"
16 #include "net/test/embedded_test_server/http_request.h"
17 #include "net/test/embedded_test_server/http_response.h"
18 #include "net/url_request/url_request_test_util.h"
19 #include "testing/gtest/include/gtest/gtest.h"
20
21 namespace google_apis {
22
23 namespace {
24
25 const char kTestUserAgent[] = "test-user-agent";
26
27 class GDataWapiRequestsTest : public testing::Test {
28 public:
29 void SetUp() override {
30 request_context_getter_ = new net::TestURLRequestContextGetter(
31 message_loop_.message_loop_proxy());
32
33 request_sender_.reset(new RequestSender(new DummyAuthService,
34 request_context_getter_.get(),
35 message_loop_.message_loop_proxy(),
36 kTestUserAgent));
37
38 ASSERT_TRUE(test_server_.InitializeAndWaitUntilReady());
39 test_server_.RegisterRequestHandler(
40 base::Bind(&GDataWapiRequestsTest::HandleResourceFeedRequest,
41 base::Unretained(this)));
42
43 GURL test_base_url = test_util::GetBaseUrlForTesting(test_server_.port());
44 url_generator_.reset(new GDataWapiUrlGenerator(test_base_url));
45 }
46
47 protected:
48 // Handles a request for fetching a resource feed.
49 scoped_ptr<net::test_server::HttpResponse> HandleResourceFeedRequest(
50 const net::test_server::HttpRequest& request) {
51 http_request_ = request;
52
53 const GURL absolute_url = test_server_.GetURL(request.relative_url);
54 std::string remaining_path;
55
56 if (!test_util::RemovePrefix(absolute_url.path(),
57 "/feeds/default/private/full",
58 &remaining_path)) {
59 return nullptr;
60 }
61
62 // Process a feed for a single resource ID.
63 const std::string resource_id = net::UnescapeURLComponent(
64 remaining_path.substr(1), net::UnescapeRule::URL_SPECIAL_CHARS);
65 if (resource_id == "file:2_file_resource_id") {
66 scoped_ptr<net::test_server::BasicHttpResponse> result(
67 test_util::CreateHttpResponseFromFile(
68 test_util::GetTestFilePath("gdata/file_entry.json")));
69 return result.Pass();
70 } else if (resource_id == "invalid_resource_id") {
71 // Check if this is an authorization request for an app.
72 // This emulates to return invalid formatted result from the server.
73 if (request.method == net::test_server::METHOD_PUT &&
74 request.content.find("<docs:authorizedApp>") != std::string::npos) {
75 scoped_ptr<net::test_server::BasicHttpResponse> result(
76 test_util::CreateHttpResponseFromFile(
77 test_util::GetTestFilePath("drive/testfile.txt")));
78 return result.Pass();
79 }
80 }
81
82 return nullptr;
83 }
84
85 base::MessageLoopForIO message_loop_; // Test server needs IO thread.
86 net::test_server::EmbeddedTestServer test_server_;
87 scoped_ptr<RequestSender> request_sender_;
88 scoped_ptr<GDataWapiUrlGenerator> url_generator_;
89 scoped_refptr<net::TestURLRequestContextGetter> request_context_getter_;
90
91 // The incoming HTTP request is saved so tests can verify the request
92 // parameters like HTTP method (ex. some requests should use DELETE
93 // instead of GET).
94 net::test_server::HttpRequest http_request_;
95 };
96
97 } // namespace
98
99 TEST_F(GDataWapiRequestsTest, GetResourceEntryRequest_ValidResourceId) {
100 GDataErrorCode result_code = GDATA_OTHER_ERROR;
101 scoped_ptr<ResourceEntry> result_data;
102
103 {
104 base::RunLoop run_loop;
105 GetResourceEntryRequest* request = new GetResourceEntryRequest(
106 request_sender_.get(),
107 *url_generator_,
108 "file:2_file_resource_id", // resource ID
109 GURL(), // embed origin
110 test_util::CreateQuitCallback(
111 &run_loop,
112 test_util::CreateCopyResultCallback(&result_code, &result_data)));
113 request_sender_->StartRequestWithRetry(request);
114 run_loop.Run();
115 }
116
117 EXPECT_EQ(HTTP_SUCCESS, result_code);
118 EXPECT_EQ(net::test_server::METHOD_GET, http_request_.method);
119 EXPECT_EQ("/feeds/default/private/full/file%3A2_file_resource_id"
120 "?v=3&alt=json&showroot=true",
121 http_request_.relative_url);
122 EXPECT_TRUE(result_data);
123 EXPECT_EQ("File 1.mp3", result_data->filename());
124 EXPECT_EQ("3b4382ebefec6e743578c76bbd0575ce", result_data->file_md5());
125 }
126
127 TEST_F(GDataWapiRequestsTest, GetResourceEntryRequest_InvalidResourceId) {
128 GDataErrorCode result_code = GDATA_OTHER_ERROR;
129 scoped_ptr<ResourceEntry> result_data;
130
131 {
132 base::RunLoop run_loop;
133 GetResourceEntryRequest* request = new GetResourceEntryRequest(
134 request_sender_.get(),
135 *url_generator_,
136 "<invalid>", // resource ID
137 GURL(), // embed origin
138 test_util::CreateQuitCallback(
139 &run_loop,
140 test_util::CreateCopyResultCallback(&result_code, &result_data)));
141 request_sender_->StartRequestWithRetry(request);
142 run_loop.Run();
143 }
144
145 EXPECT_EQ(HTTP_NOT_FOUND, result_code);
146 EXPECT_EQ(net::test_server::METHOD_GET, http_request_.method);
147 EXPECT_EQ("/feeds/default/private/full/%3Cinvalid%3E?v=3&alt=json"
148 "&showroot=true",
149 http_request_.relative_url);
150 ASSERT_FALSE(result_data);
151 }
152
153 } // namespace google_apis
OLDNEW
« no previous file with comments | « google_apis/drive/gdata_wapi_requests.cc ('k') | google_apis/drive/gdata_wapi_url_generator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698