OLD | NEW |
| (Empty) |
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. | |
4 | |
5 #include "base/bind.h" | |
6 #include "base/memory/scoped_ptr.h" | |
7 #include "chrome/browser/managed_mode/managed_user_shared_settings_service.h" | |
8 #include "chrome/browser/managed_mode/managed_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" | |
12 | |
13 class ManagedUserSharedSettingsUpdateTest : public testing::Test { | |
14 public: | |
15 ManagedUserSharedSettingsUpdateTest() : service_(profile_.GetPrefs()) {} | |
16 virtual ~ManagedUserSharedSettingsUpdateTest() {} | |
17 | |
18 void OnSettingUpdated(bool success) { | |
19 result_.reset(new bool(success)); | |
20 } | |
21 | |
22 protected: | |
23 TestingProfile profile_; | |
24 ManagedUserSharedSettingsService service_; | |
25 scoped_ptr<bool> result_; | |
26 }; | |
27 | |
28 TEST_F(ManagedUserSharedSettingsUpdateTest, Success) { | |
29 ManagedUserSharedSettingsUpdate update( | |
30 &service_, | |
31 "abcdef", | |
32 "name", | |
33 scoped_ptr<base::Value>(new base::StringValue("Hans Moleman")), | |
34 base::Bind(&ManagedUserSharedSettingsUpdateTest::OnSettingUpdated, | |
35 base::Unretained(this))); | |
36 syncer::SyncChangeList changes; | |
37 changes.push_back(syncer::SyncChange( | |
38 FROM_HERE, | |
39 syncer::SyncChange::ACTION_UPDATE, | |
40 ManagedUserSharedSettingsService::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_); | |
46 } | |
47 | |
48 TEST_F(ManagedUserSharedSettingsUpdateTest, Failure) { | |
49 ManagedUserSharedSettingsUpdate update( | |
50 &service_, | |
51 "abcdef", | |
52 "name", | |
53 scoped_ptr<base::Value>(new base::StringValue("Hans Moleman")), | |
54 base::Bind(&ManagedUserSharedSettingsUpdateTest::OnSettingUpdated, | |
55 base::Unretained(this))); | |
56 | |
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 ManagedUserSharedSettingsService::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_); | |
71 } | |
72 | |
73 TEST_F(ManagedUserSharedSettingsUpdateTest, Cancel) { | |
74 { | |
75 ManagedUserSharedSettingsUpdate update( | |
76 &service_, | |
77 "abcdef", | |
78 "name", | |
79 scoped_ptr<base::Value>(new base::StringValue("Hans Moleman")), | |
80 base::Bind(&ManagedUserSharedSettingsUpdateTest::OnSettingUpdated, | |
81 base::Unretained(this))); | |
82 ASSERT_FALSE(result_); | |
83 } | |
84 ASSERT_FALSE(result_); | |
85 } | |
OLD | NEW |