OLD | NEW |
| (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 "chrome/browser/google_apis/gdata_wapi_url_generator.h" | |
6 | |
7 #include "testing/gtest/include/gtest/gtest.h" | |
8 #include "url/gurl.h" | |
9 | |
10 namespace google_apis { | |
11 | |
12 class GDataWapiUrlGeneratorTest : public testing::Test { | |
13 public: | |
14 GDataWapiUrlGeneratorTest() | |
15 : url_generator_( | |
16 GURL(GDataWapiUrlGenerator::kBaseUrlForProduction), | |
17 GURL(GDataWapiUrlGenerator::kBaseDownloadUrlForProduction)) { | |
18 } | |
19 | |
20 protected: | |
21 GDataWapiUrlGenerator url_generator_; | |
22 }; | |
23 | |
24 TEST_F(GDataWapiUrlGeneratorTest, AddStandardUrlParams) { | |
25 EXPECT_EQ("http://www.example.com/?v=3&alt=json&showroot=true", | |
26 GDataWapiUrlGenerator::AddStandardUrlParams( | |
27 GURL("http://www.example.com")).spec()); | |
28 } | |
29 | |
30 TEST_F(GDataWapiUrlGeneratorTest, AddInitiateUploadUrlParams) { | |
31 EXPECT_EQ("http://www.example.com/?convert=false&v=3&alt=json&showroot=true", | |
32 GDataWapiUrlGenerator::AddInitiateUploadUrlParams( | |
33 GURL("http://www.example.com")).spec()); | |
34 } | |
35 | |
36 TEST_F(GDataWapiUrlGeneratorTest, AddFeedUrlParams) { | |
37 EXPECT_EQ( | |
38 "http://www.example.com/?v=3&alt=json&showroot=true&" | |
39 "showfolders=true" | |
40 "&include-shared=true" | |
41 "&max-results=100", | |
42 GDataWapiUrlGenerator::AddFeedUrlParams(GURL("http://www.example.com"), | |
43 100 // num_items_to_fetch | |
44 ).spec()); | |
45 } | |
46 | |
47 TEST_F(GDataWapiUrlGeneratorTest, GenerateResourceListUrl) { | |
48 // This is the very basic URL for the GetResourceList request. | |
49 EXPECT_EQ("https://docs.google.com/feeds/default/private/full" | |
50 "?v=3&alt=json&showroot=true&showfolders=true&include-shared=true" | |
51 "&max-results=500", | |
52 url_generator_.GenerateResourceListUrl( | |
53 GURL(), // override_url, | |
54 0, // start_changestamp, | |
55 std::string(), // search_string, | |
56 std::string() // directory resource ID | |
57 ).spec()); | |
58 | |
59 // With an override URL provided, the base URL is changed, but the default | |
60 // parameters remain as-is. | |
61 EXPECT_EQ("http://localhost/" | |
62 "?v=3&alt=json&showroot=true&showfolders=true&include-shared=true" | |
63 "&max-results=500", | |
64 url_generator_.GenerateResourceListUrl( | |
65 GURL("http://localhost/"), // override_url, | |
66 0, // start_changestamp, | |
67 std::string(), // search_string, | |
68 std::string() // directory resource ID | |
69 ).spec()); | |
70 | |
71 // With a non-zero start_changestamp provided, the base URL is changed from | |
72 // "full" to "changes", and "start-index" parameter is added. | |
73 EXPECT_EQ("https://docs.google.com/feeds/default/private/changes" | |
74 "?v=3&alt=json&showroot=true&showfolders=true&include-shared=true" | |
75 "&max-results=500&start-index=100", | |
76 url_generator_.GenerateResourceListUrl( | |
77 GURL(), // override_url, | |
78 100, // start_changestamp, | |
79 std::string(), // search_string, | |
80 std::string() // directory resource ID | |
81 ).spec()); | |
82 | |
83 // With a non-empty search string provided, "max-results" value is changed, | |
84 // and "q" parameter is added. | |
85 EXPECT_EQ("https://docs.google.com/feeds/default/private/full" | |
86 "?v=3&alt=json&showroot=true&showfolders=true&include-shared=true" | |
87 "&max-results=50&q=foo", | |
88 url_generator_.GenerateResourceListUrl( | |
89 GURL(), // override_url, | |
90 0, // start_changestamp, | |
91 "foo", // search_string, | |
92 std::string() // directory resource ID | |
93 ).spec()); | |
94 | |
95 // With a non-empty directory resource ID provided, the base URL is | |
96 // changed, but the default parameters remain. | |
97 EXPECT_EQ( | |
98 "https://docs.google.com/feeds/default/private/full/XXX/contents" | |
99 "?v=3&alt=json&showroot=true&showfolders=true&include-shared=true" | |
100 "&max-results=500", | |
101 url_generator_.GenerateResourceListUrl(GURL(), // override_url, | |
102 0, // start_changestamp, | |
103 std::string(), // search_string, | |
104 "XXX" // directory resource ID | |
105 ).spec()); | |
106 | |
107 // With a non-empty override_url provided, the base URL is changed, but | |
108 // the default parameters remain. Note that start-index should not be | |
109 // overridden. | |
110 EXPECT_EQ("http://example.com/" | |
111 "?start-index=123&v=3&alt=json&showroot=true&showfolders=true" | |
112 "&include-shared=true&max-results=500", | |
113 url_generator_.GenerateResourceListUrl( | |
114 GURL("http://example.com/?start-index=123"), // override_url, | |
115 100, // start_changestamp, | |
116 std::string(), // search_string, | |
117 "XXX" // directory resource ID | |
118 ).spec()); | |
119 } | |
120 | |
121 TEST_F(GDataWapiUrlGeneratorTest, GenerateSearchByTitleUrl) { | |
122 EXPECT_EQ( | |
123 "https://docs.google.com/feeds/default/private/full" | |
124 "?v=3&alt=json&showroot=true&showfolders=true&include-shared=true" | |
125 "&max-results=500&title=search-title&title-exact=true", | |
126 url_generator_.GenerateSearchByTitleUrl( | |
127 "search-title", std::string()).spec()); | |
128 | |
129 EXPECT_EQ( | |
130 "https://docs.google.com/feeds/default/private/full/XXX/contents" | |
131 "?v=3&alt=json&showroot=true&showfolders=true&include-shared=true" | |
132 "&max-results=500&title=search-title&title-exact=true", | |
133 url_generator_.GenerateSearchByTitleUrl( | |
134 "search-title", "XXX").spec()); | |
135 } | |
136 | |
137 TEST_F(GDataWapiUrlGeneratorTest, GenerateEditUrl) { | |
138 EXPECT_EQ( | |
139 "https://docs.google.com/feeds/default/private/full/XXX?v=3&alt=json" | |
140 "&showroot=true", | |
141 url_generator_.GenerateEditUrl("XXX").spec()); | |
142 } | |
143 | |
144 TEST_F(GDataWapiUrlGeneratorTest, GenerateEditUrlWithoutParams) { | |
145 EXPECT_EQ( | |
146 "https://docs.google.com/feeds/default/private/full/XXX", | |
147 url_generator_.GenerateEditUrlWithoutParams("XXX").spec()); | |
148 } | |
149 | |
150 TEST_F(GDataWapiUrlGeneratorTest, GenerateEditUrlWithEmbedOrigin) { | |
151 EXPECT_EQ( | |
152 "https://docs.google.com/feeds/default/private/full/XXX?v=3&alt=json" | |
153 "&showroot=true&embedOrigin=chrome-extension%3A%2F%2Ftest", | |
154 url_generator_.GenerateEditUrlWithEmbedOrigin( | |
155 "XXX", | |
156 GURL("chrome-extension://test")).spec()); | |
157 EXPECT_EQ( | |
158 "https://docs.google.com/feeds/default/private/full/XXX?v=3&alt=json" | |
159 "&showroot=true", | |
160 url_generator_.GenerateEditUrlWithEmbedOrigin( | |
161 "XXX", | |
162 GURL()).spec()); | |
163 } | |
164 | |
165 TEST_F(GDataWapiUrlGeneratorTest, GenerateContentUrl) { | |
166 EXPECT_EQ( | |
167 "https://docs.google.com/feeds/default/private/full/" | |
168 "folder%3Aroot/contents?v=3&alt=json&showroot=true", | |
169 url_generator_.GenerateContentUrl("folder:root").spec()); | |
170 } | |
171 | |
172 TEST_F(GDataWapiUrlGeneratorTest, GenerateResourceUrlForRemoval) { | |
173 EXPECT_EQ( | |
174 "https://docs.google.com/feeds/default/private/full/" | |
175 "folder%3Aroot/contents/file%3AABCDE?v=3&alt=json&showroot=true", | |
176 url_generator_.GenerateResourceUrlForRemoval( | |
177 "folder:root", "file:ABCDE").spec()); | |
178 } | |
179 | |
180 TEST_F(GDataWapiUrlGeneratorTest, GenerateInitiateUploadNewFileUrl) { | |
181 EXPECT_EQ( | |
182 "https://docs.google.com/feeds/upload/create-session/default/private/" | |
183 "full/folder%3Aabcde/contents?convert=false&v=3&alt=json&showroot=true", | |
184 url_generator_.GenerateInitiateUploadNewFileUrl("folder:abcde").spec()); | |
185 } | |
186 | |
187 TEST_F(GDataWapiUrlGeneratorTest, GenerateInitiateUploadExistingFileUrl) { | |
188 EXPECT_EQ( | |
189 "https://docs.google.com/feeds/upload/create-session/default/private/" | |
190 "full/file%3Aresource_id?convert=false&v=3&alt=json&showroot=true", | |
191 url_generator_.GenerateInitiateUploadExistingFileUrl( | |
192 "file:resource_id").spec()); | |
193 } | |
194 | |
195 TEST_F(GDataWapiUrlGeneratorTest, GenerateResourceListRootUrl) { | |
196 EXPECT_EQ( | |
197 "https://docs.google.com/feeds/default/private/full?v=3&alt=json" | |
198 "&showroot=true", | |
199 url_generator_.GenerateResourceListRootUrl().spec()); | |
200 } | |
201 | |
202 TEST_F(GDataWapiUrlGeneratorTest, GenerateAccountMetadataUrl) { | |
203 // Include installed apps. | |
204 EXPECT_EQ( | |
205 "https://docs.google.com/feeds/metadata/default" | |
206 "?v=3&alt=json&showroot=true&include-installed-apps=true", | |
207 url_generator_.GenerateAccountMetadataUrl(true).spec()); | |
208 | |
209 // Exclude installed apps. | |
210 EXPECT_EQ( | |
211 "https://docs.google.com/feeds/metadata/default?v=3&alt=json" | |
212 "&showroot=true", | |
213 url_generator_.GenerateAccountMetadataUrl(false).spec()); | |
214 } | |
215 | |
216 TEST_F(GDataWapiUrlGeneratorTest, GenerateDownloadFileUrl) { | |
217 EXPECT_EQ( | |
218 "https://www.googledrive.com/host/resourceId", | |
219 url_generator_.GenerateDownloadFileUrl("file:resourceId").spec()); | |
220 } | |
221 | |
222 } // namespace google_apis | |
OLD | NEW |