OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/common/net/gaia/oauth_request_signer.h" | 5 #include "chrome/common/net/gaia/oauth_request_signer.h" |
6 | 6 |
7 #include "googleurl/src/gurl.h" | 7 #include "googleurl/src/gurl.h" |
8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
9 | 9 |
10 // This value is used to seed the PRNG at the beginning of a sequence of | 10 // This value is used to seed the PRNG at the beginning of a sequence of |
11 // operations to produce a repeatable sequence. | 11 // operations to produce a repeatable sequence. |
12 #define RANDOM_SEED (0x69E3C47D) | 12 #define RANDOM_SEED (0x69E3C47D) |
13 | 13 |
14 TEST(OAuthRequestSignerTest, Encode) { | 14 TEST(OAuthRequestSignerTest, Encode) { |
15 ASSERT_EQ(OAuthRequestSigner::Encode("ABCDEFGHIJKLMNOPQRSTUVWXYZ" | 15 ASSERT_EQ(OAuthRequestSigner::Encode("ABCDEFGHIJKLMNOPQRSTUVWXYZ" |
16 "abcdefghijklmnopqrstuvwxyz" | 16 "abcdefghijklmnopqrstuvwxyz" |
17 "0123456789" | 17 "0123456789" |
18 "-._~"), | 18 "-._~"), |
19 "ABCDEFGHIJKLMNOPQRSTUVWXYZ" | 19 "ABCDEFGHIJKLMNOPQRSTUVWXYZ" |
20 "abcdefghijklmnopqrstuvwxyz" | 20 "abcdefghijklmnopqrstuvwxyz" |
21 "0123456789" | 21 "0123456789" |
22 "-._~"); | 22 "-._~"); |
23 ASSERT_EQ(OAuthRequestSigner::Encode( | 23 ASSERT_EQ(OAuthRequestSigner::Encode( |
24 "https://www.google.com/accounts/OAuthLogin"), | 24 "https://accounts.google.com/OAuthLogin"), |
25 "https%3A%2F%2Fwww.google.com%2Faccounts%2FOAuthLogin"); | 25 "https%3A%2F%2Faccounts.google.com%2FOAuthLogin"); |
26 ASSERT_EQ(OAuthRequestSigner::Encode("%"), "%25"); | 26 ASSERT_EQ(OAuthRequestSigner::Encode("%"), "%25"); |
27 ASSERT_EQ(OAuthRequestSigner::Encode("%25"), "%2525"); | 27 ASSERT_EQ(OAuthRequestSigner::Encode("%25"), "%2525"); |
28 ASSERT_EQ(OAuthRequestSigner::Encode( | 28 ASSERT_EQ(OAuthRequestSigner::Encode( |
29 "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed " | 29 "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed " |
30 "do eiusmod tempor incididunt ut labore et dolore magna " | 30 "do eiusmod tempor incididunt ut labore et dolore magna " |
31 "aliqua. Ut enim ad minim veniam, quis nostrud exercitation " | 31 "aliqua. Ut enim ad minim veniam, quis nostrud exercitation " |
32 "ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis " | 32 "ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis " |
33 "aute irure dolor in reprehenderit in voluptate velit esse " | 33 "aute irure dolor in reprehenderit in voluptate velit esse " |
34 "cillum dolore eu fugiat nulla pariatur. Excepteur sint " | 34 "cillum dolore eu fugiat nulla pariatur. Excepteur sint " |
35 "occaecat cupidatat non proident, sunt in culpa qui officia " | 35 "occaecat cupidatat non proident, sunt in culpa qui officia " |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 std::string encoded = OAuthRequestSigner::Encode(text); | 67 std::string encoded = OAuthRequestSigner::Encode(text); |
68 std::string decoded; | 68 std::string decoded; |
69 ASSERT_TRUE(OAuthRequestSigner::Decode(encoded, &decoded)); | 69 ASSERT_TRUE(OAuthRequestSigner::Decode(encoded, &decoded)); |
70 ASSERT_EQ(decoded, text); | 70 ASSERT_EQ(decoded, text); |
71 } | 71 } |
72 } | 72 } |
73 | 73 |
74 TEST(OAuthRequestSignerTest, SignGet1) { | 74 TEST(OAuthRequestSignerTest, SignGet1) { |
75 GURL request_url("https://www.google.com/accounts/o8/GetOAuthToken"); | 75 GURL request_url("https://www.google.com/accounts/o8/GetOAuthToken"); |
76 OAuthRequestSigner::Parameters parameters; | 76 OAuthRequestSigner::Parameters parameters; |
77 parameters["scope"] = "https://www.google.com/accounts/OAuthLogin"; | 77 parameters["scope"] = "https://accounts.google.com/OAuthLogin"; |
78 parameters["oauth_nonce"] = "2oiE_aHdk5qRTz0L9C8Lq0g"; | 78 parameters["oauth_nonce"] = "2oiE_aHdk5qRTz0L9C8Lq0g"; |
79 parameters["xaouth_display_name"] = "Chromium"; | 79 parameters["xaouth_display_name"] = "Chromium"; |
80 parameters["oauth_timestamp"] = "1308152953"; | 80 parameters["oauth_timestamp"] = "1308152953"; |
81 std::string signed_text; | 81 std::string signed_text; |
82 ASSERT_TRUE(OAuthRequestSigner::SignURL( | 82 ASSERT_TRUE(OAuthRequestSigner::SignURL( |
83 request_url, | 83 request_url, |
84 parameters, | 84 parameters, |
85 OAuthRequestSigner::HMAC_SHA1_SIGNATURE, | 85 OAuthRequestSigner::HMAC_SHA1_SIGNATURE, |
86 OAuthRequestSigner::GET_METHOD, | 86 OAuthRequestSigner::GET_METHOD, |
87 "johndoe", // oauth_consumer_key | 87 "johndoe", // oauth_consumer_key |
88 "53cR3t", // consumer secret | 88 "53cR3t", // consumer secret |
89 "4/VGY0MsQadcmO8VnCv9gnhoEooq1v", // oauth_token | 89 "4/VGY0MsQadcmO8VnCv9gnhoEooq1v", // oauth_token |
90 "c5e0531ff55dfbb4054e", // token secret | 90 "c5e0531ff55dfbb4054e", // token secret |
91 &signed_text)); | 91 &signed_text)); |
92 ASSERT_EQ("https://www.google.com/accounts/o8/GetOAuthToken" | 92 ASSERT_EQ("https://www.google.com/accounts/o8/GetOAuthToken" |
93 "?oauth_consumer_key=johndoe" | 93 "?oauth_consumer_key=johndoe" |
94 "&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g" | 94 "&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g" |
95 "&oauth_signature=y9GCmlGSvNuTAotxsBMyxb6j%2BE8%3D" | 95 "&oauth_signature=PFqDTaiyey1UObcvOyI4Ng2HXW0%3D" |
96 "&oauth_signature_method=HMAC-SHA1" | 96 "&oauth_signature_method=HMAC-SHA1" |
97 "&oauth_timestamp=1308152953" | 97 "&oauth_timestamp=1308152953" |
98 "&oauth_token=4%2FVGY0MsQadcmO8VnCv9gnhoEooq1v" | 98 "&oauth_token=4%2FVGY0MsQadcmO8VnCv9gnhoEooq1v" |
99 "&oauth_version=1.0" | 99 "&oauth_version=1.0" |
100 "&scope=https%3A%2F%2Fwww.google.com%2Faccounts%2FOAuthLogin" | 100 "&scope=https%3A%2F%2Faccounts.google.com%2FOAuthLogin" |
101 "&xaouth_display_name=Chromium", | 101 "&xaouth_display_name=Chromium", |
102 signed_text); | 102 signed_text); |
103 } | 103 } |
104 | 104 |
105 TEST(OAuthRequestSignerTest, SignGet2) { | 105 TEST(OAuthRequestSignerTest, SignGet2) { |
106 GURL request_url("https://www.google.com/accounts/OAuthGetAccessToken"); | 106 GURL request_url("https://accounts.google.com/OAuthGetAccessToken"); |
107 OAuthRequestSigner::Parameters parameters; | 107 OAuthRequestSigner::Parameters parameters; |
108 parameters["oauth_timestamp"] = "1308147831"; | 108 parameters["oauth_timestamp"] = "1308147831"; |
109 parameters["oauth_nonce"] = "4d4hZW9DygWQujP2tz06UN"; | 109 parameters["oauth_nonce"] = "4d4hZW9DygWQujP2tz06UN"; |
110 std::string signed_text; | 110 std::string signed_text; |
111 ASSERT_TRUE(OAuthRequestSigner::SignURL( | 111 ASSERT_TRUE(OAuthRequestSigner::SignURL( |
112 request_url, | 112 request_url, |
113 parameters, | 113 parameters, |
114 OAuthRequestSigner::HMAC_SHA1_SIGNATURE, | 114 OAuthRequestSigner::HMAC_SHA1_SIGNATURE, |
115 OAuthRequestSigner::GET_METHOD, | 115 OAuthRequestSigner::GET_METHOD, |
116 "anonymous", // oauth_consumer_key | 116 "anonymous", // oauth_consumer_key |
117 "anonymous", // consumer secret | 117 "anonymous", // consumer secret |
118 "4/CcC-hgdj1TNnWaX8NTQ76YDXCBEK", // oauth_token | 118 "4/CcC-hgdj1TNnWaX8NTQ76YDXCBEK", // oauth_token |
119 "", // token secret | 119 "", // token secret |
120 &signed_text)); | 120 &signed_text)); |
121 ASSERT_EQ(signed_text, | 121 ASSERT_EQ(signed_text, |
122 "https://www.google.com/accounts/OAuthGetAccessToken" | 122 "https://accounts.google.com/OAuthGetAccessToken" |
123 "?oauth_consumer_key=anonymous" | 123 "?oauth_consumer_key=anonymous" |
124 "&oauth_nonce=4d4hZW9DygWQujP2tz06UN" | 124 "&oauth_nonce=4d4hZW9DygWQujP2tz06UN" |
125 "&oauth_signature=2KVN8YCOKgiNIA16EGTcfESvdvA%3D" | 125 "&oauth_signature=YiJv%2BEOWsvCDCi13%2FhQBFrr0J7c%3D" |
126 "&oauth_signature_method=HMAC-SHA1" | 126 "&oauth_signature_method=HMAC-SHA1" |
127 "&oauth_timestamp=1308147831" | 127 "&oauth_timestamp=1308147831" |
128 "&oauth_token=4%2FCcC-hgdj1TNnWaX8NTQ76YDXCBEK" | 128 "&oauth_token=4%2FCcC-hgdj1TNnWaX8NTQ76YDXCBEK" |
129 "&oauth_version=1.0"); | 129 "&oauth_version=1.0"); |
130 } | 130 } |
131 | 131 |
132 TEST(OAuthRequestSignerTest, ParseAndSignGet1) { | 132 TEST(OAuthRequestSignerTest, ParseAndSignGet1) { |
133 GURL request_url("https://www.google.com/accounts/o8/GetOAuthToken" | 133 GURL request_url("https://www.google.com/accounts/o8/GetOAuthToken" |
134 "?scope=https://www.google.com/accounts/OAuthLogin" | 134 "?scope=https://accounts.google.com/OAuthLogin" |
135 "&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g" | 135 "&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g" |
136 "&xaouth_display_name=Chromium" | 136 "&xaouth_display_name=Chromium" |
137 "&oauth_timestamp=1308152953"); | 137 "&oauth_timestamp=1308152953"); |
138 std::string signed_text; | 138 std::string signed_text; |
139 ASSERT_TRUE(OAuthRequestSigner::ParseAndSign( | 139 ASSERT_TRUE(OAuthRequestSigner::ParseAndSign( |
140 request_url, | 140 request_url, |
141 OAuthRequestSigner::HMAC_SHA1_SIGNATURE, | 141 OAuthRequestSigner::HMAC_SHA1_SIGNATURE, |
142 OAuthRequestSigner::GET_METHOD, | 142 OAuthRequestSigner::GET_METHOD, |
143 "anonymous", // oauth_consumer_key | 143 "anonymous", // oauth_consumer_key |
144 "anonymous", // consumer secret | 144 "anonymous", // consumer secret |
145 "4/CcC-hgdj1TNnWaX8NTQ76YDXCBEK", // oauth_token | 145 "4/CcC-hgdj1TNnWaX8NTQ76YDXCBEK", // oauth_token |
146 "", // token secret | 146 "", // token secret |
147 &signed_text)); | 147 &signed_text)); |
148 ASSERT_EQ("https://www.google.com/accounts/o8/GetOAuthToken" | 148 ASSERT_EQ("https://www.google.com/accounts/o8/GetOAuthToken" |
149 "?oauth_consumer_key=anonymous" | 149 "?oauth_consumer_key=anonymous" |
150 "&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g" | 150 "&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g" |
151 "&oauth_signature=S%2B6dcftDfbINlavHuma4NLJ98Ys%3D" | 151 "&oauth_signature=PH7KP6cP%2BzZ1SJ6WGqBgXwQP9Mc%3D" |
152 "&oauth_signature_method=HMAC-SHA1" | 152 "&oauth_signature_method=HMAC-SHA1" |
153 "&oauth_timestamp=1308152953" | 153 "&oauth_timestamp=1308152953" |
154 "&oauth_token=4%2FCcC-hgdj1TNnWaX8NTQ76YDXCBEK" | 154 "&oauth_token=4%2FCcC-hgdj1TNnWaX8NTQ76YDXCBEK" |
155 "&oauth_version=1.0" | 155 "&oauth_version=1.0" |
156 "&scope=https%3A%2F%2Fwww.google.com%2Faccounts%2FOAuthLogin" | 156 "&scope=https%3A%2F%2Faccounts.google.com%2FOAuthLogin" |
157 "&xaouth_display_name=Chromium", | 157 "&xaouth_display_name=Chromium", |
158 signed_text); | 158 signed_text); |
159 } | 159 } |
160 | 160 |
161 TEST(OAuthRequestSignerTest, ParseAndSignGet2) { | 161 TEST(OAuthRequestSignerTest, ParseAndSignGet2) { |
162 GURL request_url("https://www.google.com/accounts/OAuthGetAccessToken" | 162 GURL request_url("https://accounts.google.com/OAuthGetAccessToken" |
163 "?oauth_timestamp=1308147831" | 163 "?oauth_timestamp=1308147831" |
164 "&oauth_nonce=4d4hZW9DygWQujP2tz06UN"); | 164 "&oauth_nonce=4d4hZW9DygWQujP2tz06UN"); |
165 std::string signed_text; | 165 std::string signed_text; |
166 ASSERT_TRUE(OAuthRequestSigner::ParseAndSign( | 166 ASSERT_TRUE(OAuthRequestSigner::ParseAndSign( |
167 request_url, | 167 request_url, |
168 OAuthRequestSigner::HMAC_SHA1_SIGNATURE, | 168 OAuthRequestSigner::HMAC_SHA1_SIGNATURE, |
169 OAuthRequestSigner::GET_METHOD, | 169 OAuthRequestSigner::GET_METHOD, |
170 "anonymous", // oauth_consumer_key | 170 "anonymous", // oauth_consumer_key |
171 "anonymous", // consumer secret | 171 "anonymous", // consumer secret |
172 "4/CcC-hgdj1TNnWaX8NTQ76YDXCBEK", // oauth_token | 172 "4/CcC-hgdj1TNnWaX8NTQ76YDXCBEK", // oauth_token |
173 "", // token secret | 173 "", // token secret |
174 &signed_text)); | 174 &signed_text)); |
175 ASSERT_EQ(signed_text, | 175 ASSERT_EQ(signed_text, |
176 "https://www.google.com/accounts/OAuthGetAccessToken" | 176 "https://accounts.google.com/OAuthGetAccessToken" |
177 "?oauth_consumer_key=anonymous" | 177 "?oauth_consumer_key=anonymous" |
178 "&oauth_nonce=4d4hZW9DygWQujP2tz06UN" | 178 "&oauth_nonce=4d4hZW9DygWQujP2tz06UN" |
179 "&oauth_signature=2KVN8YCOKgiNIA16EGTcfESvdvA%3D" | 179 "&oauth_signature=YiJv%2BEOWsvCDCi13%2FhQBFrr0J7c%3D" |
180 "&oauth_signature_method=HMAC-SHA1" | 180 "&oauth_signature_method=HMAC-SHA1" |
181 "&oauth_timestamp=1308147831" | 181 "&oauth_timestamp=1308147831" |
182 "&oauth_token=4%2FCcC-hgdj1TNnWaX8NTQ76YDXCBEK" | 182 "&oauth_token=4%2FCcC-hgdj1TNnWaX8NTQ76YDXCBEK" |
183 "&oauth_version=1.0"); | 183 "&oauth_version=1.0"); |
184 } | 184 } |
185 | 185 |
186 TEST(OAuthRequestSignerTest, SignPost1) { | 186 TEST(OAuthRequestSignerTest, SignPost1) { |
187 GURL request_url("https://www.google.com/accounts/o8/GetOAuthToken"); | 187 GURL request_url("https://www.google.com/accounts/o8/GetOAuthToken"); |
188 OAuthRequestSigner::Parameters parameters; | 188 OAuthRequestSigner::Parameters parameters; |
189 parameters["scope"] = "https://www.google.com/accounts/OAuthLogin"; | 189 parameters["scope"] = "https://accounts.google.com/OAuthLogin"; |
190 parameters["oauth_nonce"] = "2oiE_aHdk5qRTz0L9C8Lq0g"; | 190 parameters["oauth_nonce"] = "2oiE_aHdk5qRTz0L9C8Lq0g"; |
191 parameters["xaouth_display_name"] = "Chromium"; | 191 parameters["xaouth_display_name"] = "Chromium"; |
192 parameters["oauth_timestamp"] = "1308152953"; | 192 parameters["oauth_timestamp"] = "1308152953"; |
193 std::string signed_text; | 193 std::string signed_text; |
194 ASSERT_TRUE(OAuthRequestSigner::SignURL( | 194 ASSERT_TRUE(OAuthRequestSigner::SignURL( |
195 request_url, | 195 request_url, |
196 parameters, | 196 parameters, |
197 OAuthRequestSigner::HMAC_SHA1_SIGNATURE, | 197 OAuthRequestSigner::HMAC_SHA1_SIGNATURE, |
198 OAuthRequestSigner::POST_METHOD, | 198 OAuthRequestSigner::POST_METHOD, |
199 "anonymous", // oauth_consumer_key | 199 "anonymous", // oauth_consumer_key |
200 "anonymous", // consumer secret | 200 "anonymous", // consumer secret |
201 "4/X8x0r7bHif_VNCLjUMutxGkzo13d", // oauth_token | 201 "4/X8x0r7bHif_VNCLjUMutxGkzo13d", // oauth_token |
202 "b7120598d47594bd3522", // token secret | 202 "b7120598d47594bd3522", // token secret |
203 &signed_text)); | 203 &signed_text)); |
204 ASSERT_EQ("oauth_consumer_key=anonymous" | 204 ASSERT_EQ("oauth_consumer_key=anonymous" |
205 "&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g" | 205 "&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g" |
206 "&oauth_signature=F%2BINyO4xgon5wUxcdcxWC11Ep7Y%3D" | 206 "&oauth_signature=vVlfv6dnV2%2Fx7TozS0Gf83zS2%2BQ%3D" |
207 "&oauth_signature_method=HMAC-SHA1" | 207 "&oauth_signature_method=HMAC-SHA1" |
208 "&oauth_timestamp=1308152953" | 208 "&oauth_timestamp=1308152953" |
209 "&oauth_token=4%2FX8x0r7bHif_VNCLjUMutxGkzo13d" | 209 "&oauth_token=4%2FX8x0r7bHif_VNCLjUMutxGkzo13d" |
210 "&oauth_version=1.0" | 210 "&oauth_version=1.0" |
211 "&scope=https%3A%2F%2Fwww.google.com%2Faccounts%2FOAuthLogin" | 211 "&scope=https%3A%2F%2Faccounts.google.com%2FOAuthLogin" |
212 "&xaouth_display_name=Chromium", | 212 "&xaouth_display_name=Chromium", |
213 signed_text); | 213 signed_text); |
214 } | 214 } |
215 | 215 |
216 TEST(OAuthRequestSignerTest, SignPost2) { | 216 TEST(OAuthRequestSignerTest, SignPost2) { |
217 GURL request_url("https://www.google.com/accounts/OAuthGetAccessToken"); | 217 GURL request_url("https://accounts.google.com/OAuthGetAccessToken"); |
218 OAuthRequestSigner::Parameters parameters; | 218 OAuthRequestSigner::Parameters parameters; |
219 parameters["oauth_timestamp"] = "1234567890"; | 219 parameters["oauth_timestamp"] = "1234567890"; |
220 parameters["oauth_nonce"] = "17171717171717171"; | 220 parameters["oauth_nonce"] = "17171717171717171"; |
221 std::string signed_text; | 221 std::string signed_text; |
222 ASSERT_TRUE(OAuthRequestSigner::SignURL( | 222 ASSERT_TRUE(OAuthRequestSigner::SignURL( |
223 request_url, | 223 request_url, |
224 parameters, | 224 parameters, |
225 OAuthRequestSigner::HMAC_SHA1_SIGNATURE, | 225 OAuthRequestSigner::HMAC_SHA1_SIGNATURE, |
226 OAuthRequestSigner::POST_METHOD, | 226 OAuthRequestSigner::POST_METHOD, |
227 "anonymous", // oauth_consumer_key | 227 "anonymous", // oauth_consumer_key |
228 "anonymous", // consumer secret | 228 "anonymous", // consumer secret |
229 "4/CcC-hgdj1TNnWaX8NTQ76YDXCBEK", // oauth_token | 229 "4/CcC-hgdj1TNnWaX8NTQ76YDXCBEK", // oauth_token |
230 "", // token secret | 230 "", // token secret |
231 &signed_text)); | 231 &signed_text)); |
232 ASSERT_EQ(signed_text, | 232 ASSERT_EQ(signed_text, |
233 "oauth_consumer_key=anonymous" | 233 "oauth_consumer_key=anonymous" |
234 "&oauth_nonce=17171717171717171" | 234 "&oauth_nonce=17171717171717171" |
235 "&oauth_signature=BIuPHITrcptxSefd8H9Iazo8Pmo%3D" | 235 "&oauth_signature=tPX2XqKQICWzopZ80CFGX%2F53DLo%3D" |
236 "&oauth_signature_method=HMAC-SHA1" | 236 "&oauth_signature_method=HMAC-SHA1" |
237 "&oauth_timestamp=1234567890" | 237 "&oauth_timestamp=1234567890" |
238 "&oauth_token=4%2FCcC-hgdj1TNnWaX8NTQ76YDXCBEK" | 238 "&oauth_token=4%2FCcC-hgdj1TNnWaX8NTQ76YDXCBEK" |
239 "&oauth_version=1.0"); | 239 "&oauth_version=1.0"); |
240 } | 240 } |
241 | 241 |
242 TEST(OAuthRequestSignerTest, ParseAndSignPost1) { | 242 TEST(OAuthRequestSignerTest, ParseAndSignPost1) { |
243 GURL request_url("https://www.google.com/accounts/o8/GetOAuthToken" | 243 GURL request_url("https://www.google.com/accounts/o8/GetOAuthToken" |
244 "?scope=https://www.google.com/accounts/OAuthLogin" | 244 "?scope=https://accounts.google.com/OAuthLogin" |
245 "&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g" | 245 "&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g" |
246 "&xaouth_display_name=Chromium" | 246 "&xaouth_display_name=Chromium" |
247 "&oauth_timestamp=1308152953"); | 247 "&oauth_timestamp=1308152953"); |
248 std::string signed_text; | 248 std::string signed_text; |
249 ASSERT_TRUE(OAuthRequestSigner::ParseAndSign( | 249 ASSERT_TRUE(OAuthRequestSigner::ParseAndSign( |
250 request_url, | 250 request_url, |
251 OAuthRequestSigner::HMAC_SHA1_SIGNATURE, | 251 OAuthRequestSigner::HMAC_SHA1_SIGNATURE, |
252 OAuthRequestSigner::POST_METHOD, | 252 OAuthRequestSigner::POST_METHOD, |
253 "anonymous", // oauth_consumer_key | 253 "anonymous", // oauth_consumer_key |
254 "anonymous", // consumer secret | 254 "anonymous", // consumer secret |
255 "4/X8x0r7bHif_VNCLjUMutxGkzo13d", // oauth_token | 255 "4/X8x0r7bHif_VNCLjUMutxGkzo13d", // oauth_token |
256 "b7120598d47594bd3522", // token secret | 256 "b7120598d47594bd3522", // token secret |
257 &signed_text)); | 257 &signed_text)); |
258 ASSERT_EQ("oauth_consumer_key=anonymous" | 258 ASSERT_EQ("oauth_consumer_key=anonymous" |
259 "&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g" | 259 "&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g" |
260 "&oauth_signature=F%2BINyO4xgon5wUxcdcxWC11Ep7Y%3D" | 260 "&oauth_signature=vVlfv6dnV2%2Fx7TozS0Gf83zS2%2BQ%3D" |
261 "&oauth_signature_method=HMAC-SHA1" | 261 "&oauth_signature_method=HMAC-SHA1" |
262 "&oauth_timestamp=1308152953" | 262 "&oauth_timestamp=1308152953" |
263 "&oauth_token=4%2FX8x0r7bHif_VNCLjUMutxGkzo13d" | 263 "&oauth_token=4%2FX8x0r7bHif_VNCLjUMutxGkzo13d" |
264 "&oauth_version=1.0" | 264 "&oauth_version=1.0" |
265 "&scope=https%3A%2F%2Fwww.google.com%2Faccounts%2FOAuthLogin" | 265 "&scope=https%3A%2F%2Faccounts.google.com%2FOAuthLogin" |
266 "&xaouth_display_name=Chromium", | 266 "&xaouth_display_name=Chromium", |
267 signed_text); | 267 signed_text); |
268 } | 268 } |
269 | 269 |
270 TEST(OAuthRequestSignerTest, ParseAndSignPost2) { | 270 TEST(OAuthRequestSignerTest, ParseAndSignPost2) { |
271 GURL request_url("https://www.google.com/accounts/OAuthGetAccessToken" | 271 GURL request_url("https://accounts.google.com/OAuthGetAccessToken" |
272 "?oauth_timestamp=1234567890" | 272 "?oauth_timestamp=1234567890" |
273 "&oauth_nonce=17171717171717171"); | 273 "&oauth_nonce=17171717171717171"); |
274 std::string signed_text; | 274 std::string signed_text; |
275 ASSERT_TRUE(OAuthRequestSigner::ParseAndSign( | 275 ASSERT_TRUE(OAuthRequestSigner::ParseAndSign( |
276 request_url, | 276 request_url, |
277 OAuthRequestSigner::HMAC_SHA1_SIGNATURE, | 277 OAuthRequestSigner::HMAC_SHA1_SIGNATURE, |
278 OAuthRequestSigner::POST_METHOD, | 278 OAuthRequestSigner::POST_METHOD, |
279 "anonymous", // oauth_consumer_key | 279 "anonymous", // oauth_consumer_key |
280 "anonymous", // consumer secret | 280 "anonymous", // consumer secret |
281 "4/CcC-hgdj1TNnWaX8NTQ76YDXCBEK", // oauth_token | 281 "4/CcC-hgdj1TNnWaX8NTQ76YDXCBEK", // oauth_token |
282 "", // token secret | 282 "", // token secret |
283 &signed_text)); | 283 &signed_text)); |
284 ASSERT_EQ(signed_text, | 284 ASSERT_EQ(signed_text, |
285 "oauth_consumer_key=anonymous" | 285 "oauth_consumer_key=anonymous" |
286 "&oauth_nonce=17171717171717171" | 286 "&oauth_nonce=17171717171717171" |
287 "&oauth_signature=BIuPHITrcptxSefd8H9Iazo8Pmo%3D" | 287 "&oauth_signature=tPX2XqKQICWzopZ80CFGX%2F53DLo%3D" |
288 "&oauth_signature_method=HMAC-SHA1" | 288 "&oauth_signature_method=HMAC-SHA1" |
289 "&oauth_timestamp=1234567890" | 289 "&oauth_timestamp=1234567890" |
290 "&oauth_token=4%2FCcC-hgdj1TNnWaX8NTQ76YDXCBEK" | 290 "&oauth_token=4%2FCcC-hgdj1TNnWaX8NTQ76YDXCBEK" |
291 "&oauth_version=1.0"); | 291 "&oauth_version=1.0"); |
292 } | 292 } |
293 | 293 |
294 TEST(OAuthRequestSignerTest, SignAuthHeader) { | 294 TEST(OAuthRequestSignerTest, SignAuthHeader) { |
295 GURL request_url("https://www.google.com/accounts/o8/GetOAuthToken"); | 295 GURL request_url("https://www.google.com/accounts/o8/GetOAuthToken"); |
296 OAuthRequestSigner::Parameters parameters; | 296 OAuthRequestSigner::Parameters parameters; |
297 parameters["scope"] = "https://www.google.com/accounts/OAuthLogin"; | 297 parameters["scope"] = "https://accounts.google.com/OAuthLogin"; |
298 parameters["oauth_nonce"] = "2oiE_aHdk5qRTz0L9C8Lq0g"; | 298 parameters["oauth_nonce"] = "2oiE_aHdk5qRTz0L9C8Lq0g"; |
299 parameters["xaouth_display_name"] = "Chromium"; | 299 parameters["xaouth_display_name"] = "Chromium"; |
300 parameters["oauth_timestamp"] = "1308152953"; | 300 parameters["oauth_timestamp"] = "1308152953"; |
301 std::string signed_text; | 301 std::string signed_text; |
302 ASSERT_TRUE(OAuthRequestSigner::SignAuthHeader( | 302 ASSERT_TRUE(OAuthRequestSigner::SignAuthHeader( |
303 request_url, | 303 request_url, |
304 parameters, | 304 parameters, |
305 OAuthRequestSigner::HMAC_SHA1_SIGNATURE, | 305 OAuthRequestSigner::HMAC_SHA1_SIGNATURE, |
306 OAuthRequestSigner::GET_METHOD, | 306 OAuthRequestSigner::GET_METHOD, |
307 "johndoe", // oauth_consumer_key | 307 "johndoe", // oauth_consumer_key |
308 "53cR3t", // consumer secret | 308 "53cR3t", // consumer secret |
309 "4/VGY0MsQadcmO8VnCv9gnhoEooq1v", // oauth_token | 309 "4/VGY0MsQadcmO8VnCv9gnhoEooq1v", // oauth_token |
310 "c5e0531ff55dfbb4054e", // token secret | 310 "c5e0531ff55dfbb4054e", // token secret |
311 &signed_text)); | 311 &signed_text)); |
312 ASSERT_EQ("OAuth " | 312 ASSERT_EQ("OAuth " |
313 "oauth_consumer_key=\"johndoe\", " | 313 "oauth_consumer_key=\"johndoe\", " |
314 "oauth_nonce=\"2oiE_aHdk5qRTz0L9C8Lq0g\", " | 314 "oauth_nonce=\"2oiE_aHdk5qRTz0L9C8Lq0g\", " |
315 "oauth_signature=\"y9GCmlGSvNuTAotxsBMyxb6j%2BE8%3D\", " | 315 "oauth_signature=\"PFqDTaiyey1UObcvOyI4Ng2HXW0%3D\", " |
316 "oauth_signature_method=\"HMAC-SHA1\", " | 316 "oauth_signature_method=\"HMAC-SHA1\", " |
317 "oauth_timestamp=\"1308152953\", " | 317 "oauth_timestamp=\"1308152953\", " |
318 "oauth_token=\"4%2FVGY0MsQadcmO8VnCv9gnhoEooq1v\", " | 318 "oauth_token=\"4%2FVGY0MsQadcmO8VnCv9gnhoEooq1v\", " |
319 "oauth_version=\"1.0\", " | 319 "oauth_version=\"1.0\", " |
320 "scope=\"https%3A%2F%2Fwww.google.com%2Faccounts%2FOAuthLogin\", " | 320 "scope=\"https%3A%2F%2Faccounts.google.com%2FOAuthLogin\", " |
321 "xaouth_display_name=\"Chromium\"", | 321 "xaouth_display_name=\"Chromium\"", |
322 signed_text); | 322 signed_text); |
323 } | 323 } |
OLD | NEW |