OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 "google_apis/gaia/google_service_auth_error.h" | 5 #include "google_apis/gaia/google_service_auth_error.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/test/values_test_util.h" | 10 #include "base/test/values_test_util.h" |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 | 45 |
46 TEST_F(GoogleServiceAuthErrorTest, ConnectionFailed) { | 46 TEST_F(GoogleServiceAuthErrorTest, ConnectionFailed) { |
47 GoogleServiceAuthError error( | 47 GoogleServiceAuthError error( |
48 GoogleServiceAuthError::FromConnectionError(net::OK)); | 48 GoogleServiceAuthError::FromConnectionError(net::OK)); |
49 scoped_ptr<DictionaryValue> value(error.ToValue()); | 49 scoped_ptr<DictionaryValue> value(error.ToValue()); |
50 EXPECT_EQ(2u, value->size()); | 50 EXPECT_EQ(2u, value->size()); |
51 ExpectDictStringValue("CONNECTION_FAILED", *value, "state"); | 51 ExpectDictStringValue("CONNECTION_FAILED", *value, "state"); |
52 ExpectDictStringValue("net::OK", *value, "networkError"); | 52 ExpectDictStringValue("net::OK", *value, "networkError"); |
53 } | 53 } |
54 | 54 |
55 TEST_F(GoogleServiceAuthErrorTest, CaptchaChallenge) { | |
56 GoogleServiceAuthError error( | |
57 GoogleServiceAuthError::FromClientLoginCaptchaChallenge( | |
58 "captcha_token", GURL("http://www.google.com"), | |
59 GURL("http://www.bing.com"))); | |
60 scoped_ptr<DictionaryValue> value(error.ToValue()); | |
61 EXPECT_EQ(2u, value->size()); | |
62 ExpectDictStringValue("CAPTCHA_REQUIRED", *value, "state"); | |
63 DictionaryValue* captcha_value = NULL; | |
64 EXPECT_TRUE(value->GetDictionary("captcha", &captcha_value)); | |
65 ASSERT_TRUE(captcha_value); | |
66 ExpectDictStringValue("captcha_token", *captcha_value, "token"); | |
67 ExpectDictStringValue(std::string(), *captcha_value, "audioUrl"); | |
68 ExpectDictStringValue("http://www.google.com/", *captcha_value, "imageUrl"); | |
69 ExpectDictStringValue("http://www.bing.com/", *captcha_value, "unlockUrl"); | |
70 ExpectDictIntegerValue(0, *captcha_value, "imageWidth"); | |
71 ExpectDictIntegerValue(0, *captcha_value, "imageHeight"); | |
72 } | |
73 | |
74 TEST_F(GoogleServiceAuthErrorTest, CaptchaChallenge2) { | |
75 GoogleServiceAuthError error( | |
76 GoogleServiceAuthError::FromCaptchaChallenge( | |
77 "captcha_token", GURL("http://www.audio.com"), | |
78 GURL("http://www.image.com"), 320, 200)); | |
79 scoped_ptr<DictionaryValue> value(error.ToValue()); | |
80 EXPECT_EQ(2u, value->size()); | |
81 ExpectDictStringValue("CAPTCHA_REQUIRED", *value, "state"); | |
82 DictionaryValue* captcha_value = NULL; | |
83 EXPECT_TRUE(value->GetDictionary("captcha", &captcha_value)); | |
84 ASSERT_TRUE(captcha_value); | |
85 ExpectDictStringValue("captcha_token", *captcha_value, "token"); | |
86 ExpectDictStringValue("http://www.audio.com/", *captcha_value, "audioUrl"); | |
87 ExpectDictStringValue("http://www.image.com/", *captcha_value, "imageUrl"); | |
88 ExpectDictIntegerValue(320, *captcha_value, "imageWidth"); | |
89 ExpectDictIntegerValue(200, *captcha_value, "imageHeight"); | |
90 } | |
91 | |
92 TEST_F(GoogleServiceAuthErrorTest, TwoFactorChallenge) { | |
93 GoogleServiceAuthError error( | |
94 GoogleServiceAuthError::FromSecondFactorChallenge( | |
95 "two_factor_token", "prompt_text", "alternate_text", 10)); | |
96 scoped_ptr<DictionaryValue> value(error.ToValue()); | |
97 EXPECT_EQ(2u, value->size()); | |
98 ExpectDictStringValue("TWO_FACTOR", *value, "state"); | |
99 DictionaryValue* two_factor_value = NULL; | |
100 EXPECT_TRUE(value->GetDictionary("two_factor", &two_factor_value)); | |
101 ASSERT_TRUE(two_factor_value); | |
102 ExpectDictStringValue("two_factor_token", *two_factor_value, "token"); | |
103 ExpectDictStringValue("prompt_text", *two_factor_value, "promptText"); | |
104 ExpectDictStringValue("alternate_text", *two_factor_value, "alternateText"); | |
105 ExpectDictIntegerValue(10, *two_factor_value, "fieldLength"); | |
106 } | |
107 | |
108 TEST_F(GoogleServiceAuthErrorTest, ClientOAuthError) { | |
109 // Test that a malformed/incomplete ClientOAuth response generates | |
110 // a connection problem error. | |
111 GoogleServiceAuthError error1( | |
112 GoogleServiceAuthError::FromClientOAuthError("{}")); | |
113 EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error1.state()); | |
114 | |
115 // Test that a well formed ClientOAuth response generates an invalid | |
116 // credentials error with the given error message. | |
117 GoogleServiceAuthError error2( | |
118 GoogleServiceAuthError::FromClientOAuthError( | |
119 "{\"cause\":\"foo\",\"explanation\":\"error_message\"}")); | |
120 EXPECT_EQ(GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS, error2.state()); | |
121 EXPECT_EQ("error_message", error2.error_message()); | |
122 } | |
123 | |
124 } // namespace | 55 } // namespace |
OLD | NEW |