Add GCMChannelStatusSyncer to schedule requests and enable/disable GCM
[chromium-blink-merge.git] / chrome / browser / local_discovery / privet_confirm_api_flow_unittest.cc
blob19f828a037cac5177b66652475549f1a039f82c5
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"
7 #include <set>
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;
14 using testing::_;
16 namespace local_discovery {
18 namespace {
20 const char kSampleConfirmResponse[] = "{"
21 " \"success\": true"
22 "}";
24 const char kFailedConfirmResponse[] = "{"
25 " \"success\": false"
26 "}";
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());
39 class MockDelegate {
40 public:
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(base::JSONReader::Read(kSampleConfirmResponse));
51 const base::DictionaryValue* dictionary = NULL;
52 ASSERT_TRUE(value->GetAsDictionary(&dictionary));
53 confirmation.OnGCDAPIFlowComplete(*dictionary);
55 EXPECT_CALL(delegate, Callback(GCDApiFlow::ERROR_FROM_SERVER)).Times(1);
57 value.reset(base::JSONReader::Read(kFailedConfirmResponse));
58 ASSERT_TRUE(value->GetAsDictionary(&dictionary));
59 confirmation.OnGCDAPIFlowComplete(*dictionary);
62 } // namespace
64 } // namespace local_discovery