OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_test_message_listener.h" | 10 #include "chrome/browser/extensions/extension_test_message_listener.h" |
(...skipping 15 matching lines...) Expand all Loading... |
26 using settings_namespace::LOCAL; | 26 using settings_namespace::LOCAL; |
27 using settings_namespace::Namespace; | 27 using settings_namespace::Namespace; |
28 using settings_namespace::SYNC; | 28 using settings_namespace::SYNC; |
29 using settings_namespace::ToString; | 29 using settings_namespace::ToString; |
30 | 30 |
31 namespace { | 31 namespace { |
32 | 32 |
33 // TODO(kalman): test both EXTENSION_SETTINGS and APP_SETTINGS. | 33 // TODO(kalman): test both EXTENSION_SETTINGS and APP_SETTINGS. |
34 const syncable::ModelType kModelType = syncable::EXTENSION_SETTINGS; | 34 const syncable::ModelType kModelType = syncable::EXTENSION_SETTINGS; |
35 | 35 |
36 class NoopSyncChangeProcessor : public SyncChangeProcessor { | 36 class NoopSyncChangeProcessor : public csync::SyncChangeProcessor { |
37 public: | 37 public: |
38 virtual SyncError ProcessSyncChanges( | 38 virtual csync::SyncError ProcessSyncChanges( |
39 const tracked_objects::Location& from_here, | 39 const tracked_objects::Location& from_here, |
40 const SyncChangeList& change_list) OVERRIDE { | 40 const csync::SyncChangeList& change_list) OVERRIDE { |
41 return SyncError(); | 41 return csync::SyncError(); |
42 } | 42 } |
43 | 43 |
44 virtual ~NoopSyncChangeProcessor() {}; | 44 virtual ~NoopSyncChangeProcessor() {}; |
45 }; | 45 }; |
46 | 46 |
47 class SyncChangeProcessorDelegate : public SyncChangeProcessor { | 47 class SyncChangeProcessorDelegate : public csync::SyncChangeProcessor { |
48 public: | 48 public: |
49 explicit SyncChangeProcessorDelegate(SyncChangeProcessor* recipient) | 49 explicit SyncChangeProcessorDelegate(csync::SyncChangeProcessor* recipient) |
50 : recipient_(recipient) { | 50 : recipient_(recipient) { |
51 DCHECK(recipient_); | 51 DCHECK(recipient_); |
52 } | 52 } |
53 virtual ~SyncChangeProcessorDelegate() {} | 53 virtual ~SyncChangeProcessorDelegate() {} |
54 | 54 |
55 // SyncChangeProcessor implementation. | 55 // csync::SyncChangeProcessor implementation. |
56 virtual SyncError ProcessSyncChanges( | 56 virtual csync::SyncError ProcessSyncChanges( |
57 const tracked_objects::Location& from_here, | 57 const tracked_objects::Location& from_here, |
58 const SyncChangeList& change_list) OVERRIDE { | 58 const csync::SyncChangeList& change_list) OVERRIDE { |
59 return recipient_->ProcessSyncChanges(from_here, change_list); | 59 return recipient_->ProcessSyncChanges(from_here, change_list); |
60 } | 60 } |
61 | 61 |
62 private: | 62 private: |
63 // The recipient of all sync changes. | 63 // The recipient of all sync changes. |
64 SyncChangeProcessor* recipient_; | 64 csync::SyncChangeProcessor* recipient_; |
65 | 65 |
66 DISALLOW_COPY_AND_ASSIGN(SyncChangeProcessorDelegate); | 66 DISALLOW_COPY_AND_ASSIGN(SyncChangeProcessorDelegate); |
67 }; | 67 }; |
68 | 68 |
69 } // namespace | 69 } // namespace |
70 | 70 |
71 class ExtensionSettingsApiTest : public ExtensionApiTest { | 71 class ExtensionSettingsApiTest : public ExtensionApiTest { |
72 protected: | 72 protected: |
73 void ReplyWhenSatisfied( | 73 void ReplyWhenSatisfied( |
74 Namespace settings_namespace, | 74 Namespace settings_namespace, |
(...skipping 17 matching lines...) Expand all Loading... |
92 } | 92 } |
93 | 93 |
94 void FinalReplyWhenSatisfied( | 94 void FinalReplyWhenSatisfied( |
95 Namespace settings_namespace, | 95 Namespace settings_namespace, |
96 const std::string& normal_action, | 96 const std::string& normal_action, |
97 const std::string& incognito_action) { | 97 const std::string& incognito_action) { |
98 MaybeLoadAndReplyWhenSatisfied( | 98 MaybeLoadAndReplyWhenSatisfied( |
99 settings_namespace, normal_action, incognito_action, NULL, true); | 99 settings_namespace, normal_action, incognito_action, NULL, true); |
100 } | 100 } |
101 | 101 |
102 void InitSync(SyncChangeProcessor* sync_processor) { | 102 void InitSync(csync::SyncChangeProcessor* sync_processor) { |
103 MessageLoop::current()->RunAllPending(); | 103 MessageLoop::current()->RunAllPending(); |
104 InitSyncWithSyncableService( | 104 InitSyncWithSyncableService( |
105 sync_processor, | 105 sync_processor, |
106 browser()->profile()->GetExtensionService()->settings_frontend()-> | 106 browser()->profile()->GetExtensionService()->settings_frontend()-> |
107 GetBackendForSync(kModelType)); | 107 GetBackendForSync(kModelType)); |
108 } | 108 } |
109 | 109 |
110 void SendChanges(const SyncChangeList& change_list) { | 110 void SendChanges(const csync::SyncChangeList& change_list) { |
111 MessageLoop::current()->RunAllPending(); | 111 MessageLoop::current()->RunAllPending(); |
112 SendChangesToSyncableService( | 112 SendChangesToSyncableService( |
113 change_list, | 113 change_list, |
114 browser()->profile()->GetExtensionService()->settings_frontend()-> | 114 browser()->profile()->GetExtensionService()->settings_frontend()-> |
115 GetBackendForSync(kModelType)); | 115 GetBackendForSync(kModelType)); |
116 } | 116 } |
117 | 117 |
118 private: | 118 private: |
119 const Extension* MaybeLoadAndReplyWhenSatisfied( | 119 const Extension* MaybeLoadAndReplyWhenSatisfied( |
120 Namespace settings_namespace, | 120 Namespace settings_namespace, |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
152 scoped_ptr<DictionaryValue> message(new DictionaryValue()); | 152 scoped_ptr<DictionaryValue> message(new DictionaryValue()); |
153 message->SetString("namespace", ToString(settings_namespace)); | 153 message->SetString("namespace", ToString(settings_namespace)); |
154 message->SetString("action", action); | 154 message->SetString("action", action); |
155 message->SetBoolean("isFinalAction", is_final_action); | 155 message->SetBoolean("isFinalAction", is_final_action); |
156 std::string message_json; | 156 std::string message_json; |
157 base::JSONWriter::Write(message.get(), &message_json); | 157 base::JSONWriter::Write(message.get(), &message_json); |
158 return message_json; | 158 return message_json; |
159 } | 159 } |
160 | 160 |
161 void InitSyncWithSyncableService( | 161 void InitSyncWithSyncableService( |
162 SyncChangeProcessor* sync_processor, SyncableService* settings_service) { | 162 csync::SyncChangeProcessor* sync_processor, |
| 163 csync::SyncableService* settings_service) { |
163 EXPECT_FALSE(settings_service->MergeDataAndStartSyncing( | 164 EXPECT_FALSE(settings_service->MergeDataAndStartSyncing( |
164 kModelType, | 165 kModelType, |
165 SyncDataList(), | 166 csync::SyncDataList(), |
166 scoped_ptr<SyncChangeProcessor>( | 167 scoped_ptr<csync::SyncChangeProcessor>( |
167 new SyncChangeProcessorDelegate(sync_processor)), | 168 new SyncChangeProcessorDelegate(sync_processor)), |
168 scoped_ptr<SyncErrorFactory>( | 169 scoped_ptr<csync::SyncErrorFactory>( |
169 new SyncErrorFactoryMock())).IsSet()); | 170 new csync::SyncErrorFactoryMock())).IsSet()); |
170 } | 171 } |
171 | 172 |
172 void SendChangesToSyncableService( | 173 void SendChangesToSyncableService( |
173 const SyncChangeList& change_list, SyncableService* settings_service) { | 174 const csync::SyncChangeList& change_list, |
| 175 csync::SyncableService* settings_service) { |
174 EXPECT_FALSE( | 176 EXPECT_FALSE( |
175 settings_service->ProcessSyncChanges(FROM_HERE, change_list).IsSet()); | 177 settings_service->ProcessSyncChanges(FROM_HERE, change_list).IsSet()); |
176 } | 178 } |
177 }; | 179 }; |
178 | 180 |
179 IN_PROC_BROWSER_TEST_F(ExtensionSettingsApiTest, SimpleTest) { | 181 IN_PROC_BROWSER_TEST_F(ExtensionSettingsApiTest, SimpleTest) { |
180 CommandLine::ForCurrentProcess()->AppendSwitch( | 182 CommandLine::ForCurrentProcess()->AppendSwitch( |
181 switches::kEnableExperimentalExtensionApis); | 183 switches::kEnableExperimentalExtensionApis); |
182 ASSERT_TRUE(RunExtensionTest("settings/simple_test")) << message_; | 184 ASSERT_TRUE(RunExtensionTest("settings/simple_test")) << message_; |
183 } | 185 } |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
306 | 308 |
307 const Extension* extension = | 309 const Extension* extension = |
308 LoadAndReplyWhenSatisfied(SYNC, | 310 LoadAndReplyWhenSatisfied(SYNC, |
309 "assertNoNotifications", "assertNoNotifications", "split_incognito"); | 311 "assertNoNotifications", "assertNoNotifications", "split_incognito"); |
310 const std::string& extension_id = extension->id(); | 312 const std::string& extension_id = extension->id(); |
311 | 313 |
312 NoopSyncChangeProcessor sync_processor; | 314 NoopSyncChangeProcessor sync_processor; |
313 InitSync(&sync_processor); | 315 InitSync(&sync_processor); |
314 | 316 |
315 // Set "foo" to "bar" via sync. | 317 // Set "foo" to "bar" via sync. |
316 SyncChangeList sync_changes; | 318 csync::SyncChangeList sync_changes; |
317 StringValue bar("bar"); | 319 StringValue bar("bar"); |
318 sync_changes.push_back(settings_sync_util::CreateAdd( | 320 sync_changes.push_back(settings_sync_util::CreateAdd( |
319 extension_id, "foo", bar, kModelType)); | 321 extension_id, "foo", bar, kModelType)); |
320 SendChanges(sync_changes); | 322 SendChanges(sync_changes); |
321 | 323 |
322 ReplyWhenSatisfied(SYNC, | 324 ReplyWhenSatisfied(SYNC, |
323 "assertAddFooNotification", "assertAddFooNotification"); | 325 "assertAddFooNotification", "assertAddFooNotification"); |
324 ReplyWhenSatisfied(SYNC, "clearNotifications", "clearNotifications"); | 326 ReplyWhenSatisfied(SYNC, "clearNotifications", "clearNotifications"); |
325 | 327 |
326 // Remove "foo" via sync. | 328 // Remove "foo" via sync. |
(...skipping 27 matching lines...) Expand all Loading... |
354 | 356 |
355 const Extension* extension = | 357 const Extension* extension = |
356 LoadAndReplyWhenSatisfied(LOCAL, | 358 LoadAndReplyWhenSatisfied(LOCAL, |
357 "assertNoNotifications", "assertNoNotifications", "split_incognito"); | 359 "assertNoNotifications", "assertNoNotifications", "split_incognito"); |
358 const std::string& extension_id = extension->id(); | 360 const std::string& extension_id = extension->id(); |
359 | 361 |
360 NoopSyncChangeProcessor sync_processor; | 362 NoopSyncChangeProcessor sync_processor; |
361 InitSync(&sync_processor); | 363 InitSync(&sync_processor); |
362 | 364 |
363 // Set "foo" to "bar" via sync. | 365 // Set "foo" to "bar" via sync. |
364 SyncChangeList sync_changes; | 366 csync::SyncChangeList sync_changes; |
365 StringValue bar("bar"); | 367 StringValue bar("bar"); |
366 sync_changes.push_back(settings_sync_util::CreateAdd( | 368 sync_changes.push_back(settings_sync_util::CreateAdd( |
367 extension_id, "foo", bar, kModelType)); | 369 extension_id, "foo", bar, kModelType)); |
368 SendChanges(sync_changes); | 370 SendChanges(sync_changes); |
369 | 371 |
370 ReplyWhenSatisfied(LOCAL, "assertNoNotifications", "assertNoNotifications"); | 372 ReplyWhenSatisfied(LOCAL, "assertNoNotifications", "assertNoNotifications"); |
371 | 373 |
372 // Remove "foo" via sync. | 374 // Remove "foo" via sync. |
373 sync_changes.clear(); | 375 sync_changes.clear(); |
374 sync_changes.push_back(settings_sync_util::CreateDelete( | 376 sync_changes.push_back(settings_sync_util::CreateDelete( |
375 extension_id, "foo", kModelType)); | 377 extension_id, "foo", kModelType)); |
376 SendChanges(sync_changes); | 378 SendChanges(sync_changes); |
377 | 379 |
378 FinalReplyWhenSatisfied(LOCAL, | 380 FinalReplyWhenSatisfied(LOCAL, |
379 "assertNoNotifications", "assertNoNotifications"); | 381 "assertNoNotifications", "assertNoNotifications"); |
380 | 382 |
381 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 383 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
382 EXPECT_TRUE(catcher_incognito.GetNextResult()) << catcher.message(); | 384 EXPECT_TRUE(catcher_incognito.GetNextResult()) << catcher.message(); |
383 } | 385 } |
384 | 386 |
385 } // namespace extensions | 387 } // namespace extensions |
OLD | NEW |