Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(214)

Side by Side Diff: chrome/browser/extensions/extension_settings_apitest.cc

Issue 8375047: Separate the syncing of extension settings and app settings into separate data (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/bind.h" 5 #include "base/bind.h"
6 #include "base/command_line.h" 6 #include "base/command_line.h"
7 #include "base/json/json_writer.h" 7 #include "base/json/json_writer.h"
8 #include "chrome/browser/extensions/extension_apitest.h" 8 #include "chrome/browser/extensions/extension_apitest.h"
9 #include "chrome/browser/extensions/extension_service.h" 9 #include "chrome/browser/extensions/extension_service.h"
10 #include "chrome/browser/extensions/extension_settings_backend.h"
11 #include "chrome/browser/extensions/extension_settings_sync_util.h" 10 #include "chrome/browser/extensions/extension_settings_sync_util.h"
12 #include "chrome/browser/extensions/extension_test_message_listener.h" 11 #include "chrome/browser/extensions/extension_test_message_listener.h"
13 #include "chrome/browser/profiles/profile.h" 12 #include "chrome/browser/profiles/profile.h"
14 #include "chrome/browser/sync/api/sync_change.h" 13 #include "chrome/browser/sync/api/sync_change.h"
15 #include "chrome/browser/sync/api/sync_change_processor.h" 14 #include "chrome/browser/sync/api/sync_change_processor.h"
16 #include "chrome/browser/ui/browser.h" 15 #include "chrome/browser/ui/browser.h"
17 #include "chrome/common/chrome_switches.h" 16 #include "chrome/common/chrome_switches.h"
18 #include "chrome/test/base/ui_test_utils.h" 17 #include "chrome/test/base/ui_test_utils.h"
19 18
20 namespace { 19 namespace {
(...skipping 29 matching lines...) Expand all
50 } 49 }
51 50
52 void FinalReplyWhenSatisfied( 51 void FinalReplyWhenSatisfied(
53 const std::string& normal_action, 52 const std::string& normal_action,
54 const std::string& incognito_action) { 53 const std::string& incognito_action) {
55 MaybeLoadAndReplyWhenSatisfied(normal_action, incognito_action, NULL, true); 54 MaybeLoadAndReplyWhenSatisfied(normal_action, incognito_action, NULL, true);
56 } 55 }
57 56
58 void InitSync(SyncChangeProcessor* sync_processor) { 57 void InitSync(SyncChangeProcessor* sync_processor) {
59 browser()->profile()->GetExtensionService()-> 58 browser()->profile()->GetExtensionService()->
60 extension_settings_frontend()->RunWithBackend(base::Bind( 59 extension_settings_frontend()->RunWithSyncableService(
61 &ExtensionSettingsApiTest::InitSyncWithBackend, 60 // TODO(kalman): test both EXTENSION_SETTINGS and APP_SETTINGS.
62 this, 61 syncable::EXTENSION_SETTINGS,
63 sync_processor)); 62 base::Bind(
63 &ExtensionSettingsApiTest::InitSyncWithSyncableService,
64 this,
65 sync_processor));
64 MessageLoop::current()->RunAllPending(); 66 MessageLoop::current()->RunAllPending();
65 } 67 }
66 68
67 void SendChanges(const SyncChangeList& change_list) { 69 void SendChanges(const SyncChangeList& change_list) {
68 browser()->profile()->GetExtensionService()-> 70 browser()->profile()->GetExtensionService()->
69 extension_settings_frontend()->RunWithBackend(base::Bind( 71 extension_settings_frontend()->RunWithSyncableService(
70 &ExtensionSettingsApiTest::SendChangesToBackend, 72 // TODO(kalman): test both EXTENSION_SETTINGS and APP_SETTINGS.
71 this, 73 syncable::EXTENSION_SETTINGS,
72 change_list)); 74 base::Bind(
75 &ExtensionSettingsApiTest::SendChangesToSyncableService,
76 this,
77 change_list));
73 MessageLoop::current()->RunAllPending(); 78 MessageLoop::current()->RunAllPending();
74 } 79 }
75 80
76 private: 81 private:
77 const Extension* MaybeLoadAndReplyWhenSatisfied( 82 const Extension* MaybeLoadAndReplyWhenSatisfied(
78 const std::string& normal_action, 83 const std::string& normal_action,
79 const std::string& incognito_action, 84 const std::string& incognito_action,
80 // May be NULL to imply not loading the extension. 85 // May be NULL to imply not loading the extension.
81 const std::string* extension_dir, 86 const std::string* extension_dir,
82 bool is_final_action) { 87 bool is_final_action) {
(...skipping 19 matching lines...) Expand all
102 107
103 std::string CreateMessage(const std::string& action, bool is_final_action) { 108 std::string CreateMessage(const std::string& action, bool is_final_action) {
104 scoped_ptr<DictionaryValue> message(new DictionaryValue()); 109 scoped_ptr<DictionaryValue> message(new DictionaryValue());
105 message->SetString("action", action); 110 message->SetString("action", action);
106 message->SetBoolean("isFinalAction", is_final_action); 111 message->SetBoolean("isFinalAction", is_final_action);
107 std::string message_json; 112 std::string message_json;
108 base::JSONWriter::Write(message.get(), false, &message_json); 113 base::JSONWriter::Write(message.get(), false, &message_json);
109 return message_json; 114 return message_json;
110 } 115 }
111 116
112 void InitSyncWithBackend( 117 void InitSyncWithSyncableService(
113 SyncChangeProcessor* sync_processor, ExtensionSettingsBackend* backend) { 118 SyncChangeProcessor* sync_processor, SyncableService* settings_service) {
114 EXPECT_FALSE(backend->MergeDataAndStartSyncing( 119 EXPECT_FALSE(settings_service->MergeDataAndStartSyncing(
115 syncable::EXTENSION_SETTINGS, 120 syncable::EXTENSION_SETTINGS,
116 SyncDataList(), 121 SyncDataList(),
117 sync_processor).IsSet()); 122 sync_processor).IsSet());
118 } 123 }
119 124
120 void SendChangesToBackend( 125 void SendChangesToSyncableService(
121 const SyncChangeList& change_list, ExtensionSettingsBackend* backend) { 126 const SyncChangeList& change_list, SyncableService* settings_service) {
122 EXPECT_FALSE(backend->ProcessSyncChanges(FROM_HERE, change_list).IsSet()); 127 EXPECT_FALSE(
128 settings_service->ProcessSyncChanges(FROM_HERE, change_list).IsSet());
123 } 129 }
124 }; 130 };
125 131
126 IN_PROC_BROWSER_TEST_F(ExtensionSettingsApiTest, SimpleTest) { 132 IN_PROC_BROWSER_TEST_F(ExtensionSettingsApiTest, SimpleTest) {
127 CommandLine::ForCurrentProcess()->AppendSwitch( 133 CommandLine::ForCurrentProcess()->AppendSwitch(
128 switches::kEnableExperimentalExtensionApis); 134 switches::kEnableExperimentalExtensionApis);
129 ASSERT_TRUE(RunExtensionTest("settings/simple_test")) << message_; 135 ASSERT_TRUE(RunExtensionTest("settings/simple_test")) << message_;
130 } 136 }
131 137
132 // Structure of this test taken from IncognitoSplitMode. 138 // Structure of this test taken from IncognitoSplitMode.
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 sync_changes.push_back(extension_settings_sync_util::CreateDelete( 225 sync_changes.push_back(extension_settings_sync_util::CreateDelete(
220 extension_id, "foo")); 226 extension_id, "foo"));
221 SendChanges(sync_changes); 227 SendChanges(sync_changes);
222 228
223 FinalReplyWhenSatisfied( 229 FinalReplyWhenSatisfied(
224 "assertDeleteFooNotification", "assertDeleteFooNotification"); 230 "assertDeleteFooNotification", "assertDeleteFooNotification");
225 231
226 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); 232 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
227 EXPECT_TRUE(catcher_incognito.GetNextResult()) << catcher.message(); 233 EXPECT_TRUE(catcher_incognito.GetNextResult()) << catcher.message();
228 } 234 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698