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.
5 #include "google_apis/gaia/google_service_auth_error.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "base/test/values_test_util.h"
11 #include "base/values.h"
12 #include "net/base/net_errors.h"
13 #include "testing/gtest/include/gtest/gtest.h"
17 using base::ExpectDictStringValue
;
19 class GoogleServiceAuthErrorTest
: public testing::Test
{};
21 void TestSimpleState(GoogleServiceAuthError::State state
) {
22 GoogleServiceAuthError
error(state
);
23 scoped_ptr
<base::DictionaryValue
> value(error
.ToValue());
24 EXPECT_EQ(1u, value
->size());
25 std::string state_str
;
26 EXPECT_TRUE(value
->GetString("state", &state_str
));
27 EXPECT_FALSE(state_str
.empty());
28 EXPECT_NE("CONNECTION_FAILED", state_str
);
29 EXPECT_NE("CAPTCHA_REQUIRED", state_str
);
32 TEST_F(GoogleServiceAuthErrorTest
, SimpleToValue
) {
33 for (int i
= GoogleServiceAuthError::NONE
;
34 i
<= GoogleServiceAuthError::USER_NOT_SIGNED_UP
; ++i
) {
35 TestSimpleState(static_cast<GoogleServiceAuthError::State
>(i
));
39 TEST_F(GoogleServiceAuthErrorTest
, None
) {
40 GoogleServiceAuthError
error(GoogleServiceAuthError::AuthErrorNone());
41 scoped_ptr
<base::DictionaryValue
> value(error
.ToValue());
42 EXPECT_EQ(1u, value
->size());
43 ExpectDictStringValue("NONE", *value
, "state");
46 TEST_F(GoogleServiceAuthErrorTest
, ConnectionFailed
) {
47 GoogleServiceAuthError
error(
48 GoogleServiceAuthError::FromConnectionError(net::OK
));
49 scoped_ptr
<base::DictionaryValue
> value(error
.ToValue());
50 EXPECT_EQ(2u, value
->size());
51 ExpectDictStringValue("CONNECTION_FAILED", *value
, "state");
52 ExpectDictStringValue("net::OK", *value
, "networkError");