1 // Copyright 2013 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 "chrome/browser/local_discovery/privet_confirm_api_flow.h"
9 #include "base/json/json_reader.h"
10 #include "testing/gmock/include/gmock/gmock.h"
11 #include "testing/gtest/include/gtest/gtest.h"
13 using testing::StrictMock
;
16 namespace local_discovery
{
20 const char kSampleConfirmResponse
[] = "{"
24 const char kFailedConfirmResponse
[] = "{"
28 TEST(PrivetConfirmApiFlowTest
, Params
) {
29 PrivetConfirmApiCallFlow
confirmation(
30 "123", PrivetConfirmApiCallFlow::ResponseCallback());
31 EXPECT_EQ(GURL("https://www.google.com/cloudprint/confirm?token=123"),
32 confirmation
.GetURL());
33 EXPECT_EQ("https://www.googleapis.com/auth/cloudprint",
34 confirmation
.GetOAuthScope());
35 EXPECT_EQ(net::URLFetcher::GET
, confirmation
.GetRequestType());
36 EXPECT_FALSE(confirmation
.GetExtraRequestHeaders().empty());
41 MOCK_METHOD1(Callback
, void(GCDApiFlow::Status
));
44 TEST(PrivetConfirmApiFlowTest
, Parsing
) {
45 StrictMock
<MockDelegate
> delegate
;
46 PrivetConfirmApiCallFlow
confirmation(
47 "123", base::Bind(&MockDelegate::Callback
, base::Unretained(&delegate
)));
48 EXPECT_CALL(delegate
, Callback(GCDApiFlow::SUCCESS
)).Times(1);
50 scoped_ptr
<base::Value
> value
=
51 base::JSONReader::Read(kSampleConfirmResponse
);
52 const base::DictionaryValue
* dictionary
= NULL
;
53 ASSERT_TRUE(value
->GetAsDictionary(&dictionary
));
54 confirmation
.OnGCDAPIFlowComplete(*dictionary
);
56 EXPECT_CALL(delegate
, Callback(GCDApiFlow::ERROR_FROM_SERVER
)).Times(1);
58 value
.reset(base::JSONReader::DeprecatedRead(kFailedConfirmResponse
));
59 ASSERT_TRUE(value
->GetAsDictionary(&dictionary
));
60 confirmation
.OnGCDAPIFlowComplete(*dictionary
);
65 } // namespace local_discovery