Add GCMChannelStatusSyncer to schedule requests and enable/disable GCM
[chromium-blink-merge.git] / chrome / browser / supervised_user / supervised_user_shared_settings_update_unittest.cc
blob1266ccdeedd6ce406fb545e351ee27487cd6ea0b
1 // Copyright 2014 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 "base/bind.h"
6 #include "base/memory/scoped_ptr.h"
7 #include "chrome/browser/supervised_user/supervised_user_shared_settings_service.h"
8 #include "chrome/browser/supervised_user/supervised_user_shared_settings_update.h"
9 #include "chrome/test/base/testing_profile.h"
10 #include "sync/api/sync_change.h"
11 #include "testing/gtest/include/gtest/gtest.h"
13 class SupervisedUserSharedSettingsUpdateTest : public testing::Test {
14 public:
15 SupervisedUserSharedSettingsUpdateTest() : service_(profile_.GetPrefs()) {}
16 virtual ~SupervisedUserSharedSettingsUpdateTest() {}
18 void OnSettingUpdated(bool success) {
19 result_.reset(new bool(success));
22 protected:
23 TestingProfile profile_;
24 SupervisedUserSharedSettingsService service_;
25 scoped_ptr<bool> result_;
28 TEST_F(SupervisedUserSharedSettingsUpdateTest, Success) {
29 SupervisedUserSharedSettingsUpdate update(
30 &service_,
31 "abcdef",
32 "name",
33 scoped_ptr<base::Value>(new base::StringValue("Hans Moleman")),
34 base::Bind(&SupervisedUserSharedSettingsUpdateTest::OnSettingUpdated,
35 base::Unretained(this)));
36 syncer::SyncChangeList changes;
37 changes.push_back(syncer::SyncChange(
38 FROM_HERE,
39 syncer::SyncChange::ACTION_UPDATE,
40 SupervisedUserSharedSettingsService::CreateSyncDataForSetting(
41 "abcdef", "name", base::StringValue("Hans Moleman"), true)));
42 syncer::SyncError error = service_.ProcessSyncChanges(FROM_HERE, changes);
43 EXPECT_FALSE(error.IsSet()) << error.ToString();
44 ASSERT_TRUE(result_);
45 EXPECT_TRUE(*result_);
48 TEST_F(SupervisedUserSharedSettingsUpdateTest, Failure) {
49 SupervisedUserSharedSettingsUpdate update(
50 &service_,
51 "abcdef",
52 "name",
53 scoped_ptr<base::Value>(new base::StringValue("Hans Moleman")),
54 base::Bind(&SupervisedUserSharedSettingsUpdateTest::OnSettingUpdated,
55 base::Unretained(this)));
57 // Syncing down a different change will cause the update to fail.
58 syncer::SyncChangeList changes;
59 changes.push_back(syncer::SyncChange(
60 FROM_HERE,
61 syncer::SyncChange::ACTION_UPDATE,
62 SupervisedUserSharedSettingsService::CreateSyncDataForSetting(
63 "abcdef",
64 "name",
65 base::StringValue("Barney Gumble"),
66 true)));
67 syncer::SyncError error = service_.ProcessSyncChanges(FROM_HERE, changes);
68 EXPECT_FALSE(error.IsSet()) << error.ToString();
69 ASSERT_TRUE(result_);
70 EXPECT_FALSE(*result_);
73 TEST_F(SupervisedUserSharedSettingsUpdateTest, Cancel) {
75 SupervisedUserSharedSettingsUpdate update(
76 &service_,
77 "abcdef",
78 "name",
79 scoped_ptr<base::Value>(new base::StringValue("Hans Moleman")),
80 base::Bind(&SupervisedUserSharedSettingsUpdateTest::OnSettingUpdated,
81 base::Unretained(this)));
82 ASSERT_FALSE(result_);
84 ASSERT_FALSE(result_);