- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / google_apis / gdata_wapi_url_generator_unittest.cc
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