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

Side by Side Diff: chrome/browser/extensions/api/media_galleries_private/media_galleries_watch_apitest.cc

Issue 334393002: Revert of Enable gallery watches on Mac (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 months 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) 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 // MediaGalleriesPrivate gallery watch API browser tests. 5 // MediaGalleriesPrivate gallery watch API browser tests.
6 6
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/path_service.h" 9 #include "base/path_service.h"
10 #include "base/run_loop.h"
11 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
12 #include "build/build_config.h" 11 #include "build/build_config.h"
13 #include "chrome/browser/browser_process.h"
14 #include "chrome/browser/extensions/extension_apitest.h" 12 #include "chrome/browser/extensions/extension_apitest.h"
15 #include "chrome/browser/extensions/extension_service.h" 13 #include "chrome/browser/extensions/extension_service.h"
16 #include "chrome/browser/extensions/extension_test_message_listener.h" 14 #include "chrome/browser/extensions/extension_test_message_listener.h"
17 #include "chrome/browser/media_galleries/media_file_system_registry.h"
18 #include "chrome/browser/media_galleries/media_galleries_preferences.h"
19 #include "chrome/browser/media_galleries/media_galleries_test_util.h" 15 #include "chrome/browser/media_galleries/media_galleries_test_util.h"
20 #include "chrome/common/chrome_paths.h" 16 #include "chrome/common/chrome_paths.h"
21 #include "content/public/browser/render_frame_host.h" 17 #include "content/public/browser/render_frame_host.h"
22 #include "content/public/browser/render_view_host.h" 18 #include "content/public/browser/render_view_host.h"
23 #include "extensions/browser/extension_system.h" 19 #include "extensions/browser/extension_system.h"
24 #include "extensions/common/extension.h" 20 #include "extensions/common/extension.h"
25 #include "extensions/common/switches.h" 21 #include "extensions/common/switches.h"
26 22
27 namespace { 23 namespace {
28 24
29 // Id of test extension from 25 // Id of test extension from
30 // chrome/test/data/extensions/api_test/|kTestExtensionPath| 26 // chrome/test/data/extensions/api_test/|kTestExtensionPath|
31 const char kTestExtensionId[] = "gceegfkgibmgpfopknlcgleimclbknie"; 27 const char kTestExtensionId[] = "gceegfkgibmgpfopknlcgleimclbknie";
32 const char kTestExtensionPath[] = "media_galleries_private/gallerywatch"; 28 const char kTestExtensionPath[] = "media_galleries_private/gallerywatch";
33 29
30 #if !defined(OS_CHROMEOS)
34 // JS commands. 31 // JS commands.
35 const char kGetAllWatchedGalleryIdsCmd[] = "getAllWatchedGalleryIds()"; 32 const char kGetAllWatchedGalleryIdsCmd[] = "getAllWatchedGalleryIds()";
36 const char kGetMediaFileSystemsCmd[] = "getMediaFileSystems()"; 33 const char kGetMediaFileSystemsCmd[] = "getMediaFileSystems()";
37 const char kSetupWatchOnValidGalleriesCmd[] = "setupWatchOnValidGalleries()"; 34 const char kSetupWatchOnValidGalleriesCmd[] = "setupWatchOnValidGalleries()";
35 #if defined(OS_WIN) || defined(OS_LINUX)
38 const char kAddGalleryChangedListenerCmd[] = "addGalleryChangedListener()"; 36 const char kAddGalleryChangedListenerCmd[] = "addGalleryChangedListener()";
39 const char kRemoveAllGalleryWatchCmd[] = "removeAllGalleryWatch()"; 37 const char kRemoveAllGalleryWatchCmd[] = "removeAllGalleryWatch()";
40 const char kRemoveGalleryChangedListenerCmd[] = 38 const char kRemoveGalleryChangedListenerCmd[] =
41 "removeGalleryChangedListener()"; 39 "removeGalleryChangedListener()";
42 const char kRemoveGalleryWatchCmd[] = "removeGalleryWatch()"; 40 const char kRemoveGalleryWatchCmd[] = "removeGalleryWatch()";
43 const char kSetupWatchOnInvalidGalleryCmd[] = "setupWatchOnInvalidGallery()"; 41 const char kSetupWatchOnInvalidGalleryCmd[] = "setupWatchOnInvalidGallery()";
42 #endif // defined(OS_WIN) || defined(OS_LINUX)
44 43
45 // And JS reply messages. 44 // And JS reply messages.
46 const char kAddGalleryWatchOK[] = "add_gallery_watch_ok"; 45 const char kAddGalleryWatchOK[] = "add_gallery_watch_ok";
47 const char kGetAllGalleryWatchOK[] = "get_all_gallery_watch_ok"; 46 const char kGetAllGalleryWatchOK[] = "get_all_gallery_watch_ok";
48 const char kGetMediaFileSystemsCallbackOK[] = 47 const char kGetMediaFileSystemsCallbackOK[] =
49 "get_media_file_systems_callback_ok"; 48 "get_media_file_systems_callback_ok";
50 const char kGetMediaFileSystemsOK[] = "get_media_file_systems_ok"; 49 const char kGetMediaFileSystemsOK[] = "get_media_file_systems_ok";
50 #if defined(OS_WIN) || defined(OS_LINUX)
51 const char kAddGalleryChangedListenerOK[] = "add_gallery_changed_listener_ok"; 51 const char kAddGalleryChangedListenerOK[] = "add_gallery_changed_listener_ok";
52 const char kRemoveAllGalleryWatchOK[] = "remove_all_gallery_watch_ok"; 52 const char kRemoveAllGalleryWatchOK[] = "remove_all_gallery_watch_ok";
53 const char kRemoveGalleryChangedListenerOK[] = 53 const char kRemoveGalleryChangedListenerOK[] =
54 "remove_gallery_changed_listener_ok"; 54 "remove_gallery_changed_listener_ok";
55 const char kRemoveGalleryWatchOK[] = "remove_gallery_watch_ok"; 55 const char kRemoveGalleryWatchOK[] = "remove_gallery_watch_ok";
56 #endif // defined(OS_WIN) || defined(OS_LINUX)
56 57
57 // Test reply messages. 58 // Test reply messages.
58 const char kNoGalleryWatchesInstalled[] = "gallery_watchers_does_not_exists"; 59 const char kGetAllGalleryWatchResultA[] = "gallery_watchers_does_not_exists";
59 const char kAddGalleryWatchRequestFailed[] = "add_watch_request_failed"; 60 const char kAddGalleryWatchRequestFailed[] = "add_watch_request_failed";
61 #if defined(OS_WIN) || defined(OS_LINUX)
60 const char kAddGalleryWatchRequestSucceeded[] = "add_watch_request_succeeded"; 62 const char kAddGalleryWatchRequestSucceeded[] = "add_watch_request_succeeded";
61 const char kGalleryChangedEventReceived[] = "gallery_changed_event_received"; 63 const char kGalleryChangedEventReceived[] = "gallery_changed_event_received";
62 const char kGalleryWatchesCheck[] = "gallery_watcher_checks"; 64 const char kGetAllGalleryWatchResultB[] =
65 "watchers_for_galleries_{1, 2, 3}_found";
66 #endif // defined(OS_WIN) || defined(OS_LINUX)
67 #endif // !defined(OS_CHROMEOS)
63 68
64 } // namespace 69 } // namespace
65 70
66 71
67 /////////////////////////////////////////////////////////////////////////////// 72 ///////////////////////////////////////////////////////////////////////////////
68 // MediaGalleriesPrivateGalleryWatchApiTest // 73 // MediaGalleriesPrivateGalleryWatchApiTest //
69 /////////////////////////////////////////////////////////////////////////////// 74 ///////////////////////////////////////////////////////////////////////////////
70 75
71 class MediaGalleriesPrivateGalleryWatchApiTest : public ExtensionApiTest { 76 class MediaGalleriesPrivateGalleryWatchApiTest : public ExtensionApiTest {
72 public: 77 public:
73 MediaGalleriesPrivateGalleryWatchApiTest() 78 MediaGalleriesPrivateGalleryWatchApiTest() {}
74 : extension_(NULL),
75 background_host_(NULL) {
76 }
77 virtual ~MediaGalleriesPrivateGalleryWatchApiTest() {} 79 virtual ~MediaGalleriesPrivateGalleryWatchApiTest() {}
78 80
79 protected: 81 protected:
80 // ExtensionApiTest overrides. 82 // ExtensionApiTest overrides.
81 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { 83 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
82 ExtensionApiTest::SetUpCommandLine(command_line); 84 ExtensionApiTest::SetUpCommandLine(command_line);
83 command_line->AppendSwitchASCII( 85 command_line->AppendSwitchASCII(
84 extensions::switches::kWhitelistedExtensionID, 86 extensions::switches::kWhitelistedExtensionID,
85 kTestExtensionId); 87 kTestExtensionId);
86 } 88 }
87 virtual void SetUpOnMainThread() OVERRIDE { 89
88 ExtensionApiTest::SetUpOnMainThread(); 90 void ExecuteCmdAndCheckReply(content::RenderViewHost* host,
89 ensure_media_directories_exists_.reset(new EnsureMediaDirectoriesExists); 91 const std::string& js_command,
90 extension_ = LoadExtension(test_data_dir_.AppendASCII(kTestExtensionPath)); 92 const std::string& ok_message) {
91 GetBackgroundHostForTestExtension();
92 CreateTestGallery();
93 FetchMediaGalleriesList();
94 }
95 virtual void TearDownOnMainThread() OVERRIDE {
96 extension_ = NULL;
97 background_host_ = NULL;
98 ensure_media_directories_exists_.reset();
99 ExtensionApiTest::TearDownOnMainThread();
100 }
101
102 void ExecuteCmdAndCheckReply(const std::string& js_command,
103 const std::string& ok_message) {
104 ExtensionTestMessageListener listener(ok_message, false); 93 ExtensionTestMessageListener listener(ok_message, false);
105 background_host_->GetMainFrame()->ExecuteJavaScript( 94 host->GetMainFrame()->ExecuteJavaScript(base::ASCIIToUTF16(js_command));
106 base::ASCIIToUTF16(js_command));
107 EXPECT_TRUE(listener.WaitUntilSatisfied()); 95 EXPECT_TRUE(listener.WaitUntilSatisfied());
108 } 96 }
109 97
110 bool AddNewFileInTestGallery() { 98 bool AddNewFileInGallery(int gallery_directory_key) {
99 if ((gallery_directory_key != chrome::DIR_USER_MUSIC) &&
100 (gallery_directory_key != chrome::DIR_USER_PICTURES) &&
101 (gallery_directory_key != chrome::DIR_USER_VIDEOS))
102 return false;
103
104 base::FilePath gallery_dir;
105 if (!PathService::Get(gallery_directory_key, &gallery_dir))
106 return false;
111 base::FilePath gallery_file = 107 base::FilePath gallery_file =
112 test_gallery_.path().Append(FILE_PATH_LITERAL("test1.txt")); 108 gallery_dir.Append(FILE_PATH_LITERAL("test1.txt"));
113 std::string content("new content"); 109 std::string content("new content");
114 int write_size = base::WriteFile(gallery_file, content.c_str(), 110 int write_size = base::WriteFile(gallery_file, content.c_str(),
115 content.length()); 111 content.length());
116 return (write_size == static_cast<int>(content.length())); 112 return (write_size == static_cast<int>(content.length()));
117 } 113 }
118 114
115 // Loads the test extension and returns the RenderViewHost of the extension.
116 // Returns NULL if the extension load operation failed.
117 content::RenderViewHost* GetBackgroundHostForTestExtension() {
118 const extensions::Extension* extension =
119 LoadExtension(test_data_dir_.AppendASCII(kTestExtensionPath));
120 if (!extension)
121 return NULL;
122 return extensions::ExtensionSystem::Get(browser()->profile())->
123 process_manager()->GetBackgroundHostForExtension(extension->id())->
124 render_view_host();
125 }
126
119 private: 127 private:
120 void GetBackgroundHostForTestExtension() {
121 ASSERT_TRUE(extension_);
122 extensions::ExtensionSystem* extension_system =
123 extensions::ExtensionSystem::Get(browser()->profile());
124 background_host_ =
125 extension_system->process_manager()->GetBackgroundHostForExtension(
126 extension_->id())->render_view_host();
127 ASSERT_TRUE(background_host_);
128 }
129
130 void CreateTestGallery() {
131 MediaGalleriesPreferences* preferences =
132 g_browser_process->media_file_system_registry()->GetPreferences(
133 browser()->profile());
134 base::RunLoop runloop;
135 preferences->EnsureInitialized(runloop.QuitClosure());
136 runloop.Run();
137
138 ASSERT_TRUE(test_gallery_.CreateUniqueTempDir());
139 MediaGalleryPrefInfo gallery_info;
140 ASSERT_FALSE(preferences->LookUpGalleryByPath(test_gallery_.path(),
141 &gallery_info));
142 MediaGalleryPrefId id = preferences->AddGallery(
143 gallery_info.device_id,
144 gallery_info.path,
145 MediaGalleryPrefInfo::kAutoDetected,
146 gallery_info.volume_label,
147 gallery_info.vendor_name,
148 gallery_info.model_name,
149 gallery_info.total_size_in_bytes,
150 gallery_info.last_attach_time,
151 0, 0, 0);
152
153 preferences->SetGalleryPermissionForExtension(*extension_, id, true);
154 }
155
156 void FetchMediaGalleriesList() {
157 ExtensionTestMessageListener get_media_systems_finished(
158 kGetMediaFileSystemsCallbackOK, false /* no reply */);
159 ExecuteCmdAndCheckReply(kGetMediaFileSystemsCmd, kGetMediaFileSystemsOK);
160 EXPECT_TRUE(get_media_systems_finished.WaitUntilSatisfied());
161 }
162
163 scoped_ptr<EnsureMediaDirectoriesExists> ensure_media_directories_exists_;
164
165 base::ScopedTempDir test_gallery_;
166
167 const extensions::Extension* extension_;
168
169 content::RenderViewHost* background_host_;
170
171 DISALLOW_COPY_AND_ASSIGN(MediaGalleriesPrivateGalleryWatchApiTest); 128 DISALLOW_COPY_AND_ASSIGN(MediaGalleriesPrivateGalleryWatchApiTest);
172 }; 129 };
173 130
131
132 #if defined(OS_WIN) || (defined(OS_LINUX) && !defined(OS_CHROMEOS))
174 IN_PROC_BROWSER_TEST_F(MediaGalleriesPrivateGalleryWatchApiTest, 133 IN_PROC_BROWSER_TEST_F(MediaGalleriesPrivateGalleryWatchApiTest,
175 BasicGalleryWatch) { 134 BasicGalleryWatch) {
135 EnsureMediaDirectoriesExists media_directories;
136 content::RenderViewHost* host = GetBackgroundHostForTestExtension();
137 ASSERT_TRUE(host);
138
139 // Get media file systems.
140 ExtensionTestMessageListener get_media_systems_finished(
141 kGetMediaFileSystemsCallbackOK, false /* no reply */);
142 ExecuteCmdAndCheckReply(host, kGetMediaFileSystemsCmd,
143 kGetMediaFileSystemsOK);
144 EXPECT_TRUE(get_media_systems_finished.WaitUntilSatisfied());
145
176 // Set up gallery watch. 146 // Set up gallery watch.
177 ExtensionTestMessageListener add_gallery_watch_finished( 147 ExtensionTestMessageListener add_gallery_watch_finished(
178 kAddGalleryWatchRequestSucceeded, false /* no reply */); 148 kAddGalleryWatchRequestSucceeded, false /* no reply */);
179 ExecuteCmdAndCheckReply(kSetupWatchOnValidGalleriesCmd, kAddGalleryWatchOK); 149 ExecuteCmdAndCheckReply(host, kSetupWatchOnValidGalleriesCmd,
150 kAddGalleryWatchOK);
180 EXPECT_TRUE(add_gallery_watch_finished.WaitUntilSatisfied()); 151 EXPECT_TRUE(add_gallery_watch_finished.WaitUntilSatisfied());
181 152
182 // Add gallery watch listener. 153 // Add gallery watch listener.
183 ExecuteCmdAndCheckReply(kAddGalleryChangedListenerCmd, 154 ExecuteCmdAndCheckReply(host, kAddGalleryChangedListenerCmd,
184 kAddGalleryChangedListenerOK); 155 kAddGalleryChangedListenerOK);
185 156
186 // Modify gallery contents. 157 // Modify gallery contents.
187 ExtensionTestMessageListener gallery_change_event_received( 158 ExtensionTestMessageListener music_gallery_change_event_received(
188 kGalleryChangedEventReceived, false /* no reply */); 159 kGalleryChangedEventReceived, false /* no reply */);
189 ASSERT_TRUE(AddNewFileInTestGallery()); 160 ASSERT_TRUE(AddNewFileInGallery(chrome::DIR_USER_MUSIC));
190 EXPECT_TRUE(gallery_change_event_received.WaitUntilSatisfied()); 161 EXPECT_TRUE(music_gallery_change_event_received.WaitUntilSatisfied());
162
163 ExtensionTestMessageListener pictures_gallery_change_event_received(
164 kGalleryChangedEventReceived, false /* no reply */);
165 ASSERT_TRUE(AddNewFileInGallery(chrome::DIR_USER_PICTURES));
166 EXPECT_TRUE(pictures_gallery_change_event_received.WaitUntilSatisfied());
167
168 ExtensionTestMessageListener videos_gallery_change_event_received(
169 kGalleryChangedEventReceived, false /* no reply */);
170 ASSERT_TRUE(AddNewFileInGallery(chrome::DIR_USER_VIDEOS));
171 EXPECT_TRUE(videos_gallery_change_event_received.WaitUntilSatisfied());
191 172
192 // Remove gallery watch listener. 173 // Remove gallery watch listener.
193 ExecuteCmdAndCheckReply(kRemoveGalleryChangedListenerCmd, 174 ExecuteCmdAndCheckReply(host, kRemoveGalleryChangedListenerCmd,
194 kRemoveGalleryChangedListenerOK); 175 kRemoveGalleryChangedListenerOK);
195 176
196 // Remove gallery watch request. 177 // Remove gallery watch request.
197 ExecuteCmdAndCheckReply(kRemoveGalleryWatchCmd, kRemoveGalleryWatchOK); 178 ExecuteCmdAndCheckReply(host, kRemoveGalleryWatchCmd, kRemoveGalleryWatchOK);
198 } 179 }
199 180
200 IN_PROC_BROWSER_TEST_F(MediaGalleriesPrivateGalleryWatchApiTest, 181 IN_PROC_BROWSER_TEST_F(MediaGalleriesPrivateGalleryWatchApiTest,
201 RemoveListenerAndModifyGallery) { 182 RemoveListenerAndModifyGallery) {
183 EnsureMediaDirectoriesExists media_directories;
184 content::RenderViewHost* host = GetBackgroundHostForTestExtension();
185 ASSERT_TRUE(host);
186
187 // Get media file systems.
188 ExtensionTestMessageListener get_media_systems_finished(
189 kGetMediaFileSystemsCallbackOK, false /* no reply */);
190 ExecuteCmdAndCheckReply(host, kGetMediaFileSystemsCmd,
191 kGetMediaFileSystemsOK);
192 EXPECT_TRUE(get_media_systems_finished.WaitUntilSatisfied());
193
202 // Set up gallery watch. 194 // Set up gallery watch.
203 ExtensionTestMessageListener add_gallery_watch_finished( 195 ExtensionTestMessageListener add_gallery_watch_finished(
204 kAddGalleryWatchRequestSucceeded, false /* no reply */); 196 kAddGalleryWatchRequestSucceeded, false /* no reply */);
205 ExecuteCmdAndCheckReply(kSetupWatchOnValidGalleriesCmd, kAddGalleryWatchOK); 197 ExecuteCmdAndCheckReply(host, kSetupWatchOnValidGalleriesCmd,
198 kAddGalleryWatchOK);
206 EXPECT_TRUE(add_gallery_watch_finished.WaitUntilSatisfied()); 199 EXPECT_TRUE(add_gallery_watch_finished.WaitUntilSatisfied());
207 200
208 // Add a gallery watch listener. 201 // Add a gallery watch listener.
209 ExecuteCmdAndCheckReply(kAddGalleryChangedListenerCmd, 202 ExecuteCmdAndCheckReply(host, kAddGalleryChangedListenerCmd,
210 kAddGalleryChangedListenerOK); 203 kAddGalleryChangedListenerOK);
211 // Modify gallery contents. 204 // Modify gallery contents.
212 ExtensionTestMessageListener gallery_change_event_received( 205 ExtensionTestMessageListener music_gallery_change_event_received(
213 kGalleryChangedEventReceived, false /* no reply */); 206 kGalleryChangedEventReceived, false /* no reply */);
214 ASSERT_TRUE(AddNewFileInTestGallery()); 207 ASSERT_TRUE(AddNewFileInGallery(chrome::DIR_USER_MUSIC));
215 EXPECT_TRUE(gallery_change_event_received.WaitUntilSatisfied()); 208 EXPECT_TRUE(music_gallery_change_event_received.WaitUntilSatisfied());
216 209
217 // Remove gallery watch listener. 210 // Remove gallery watch listener.
218 ExecuteCmdAndCheckReply(kRemoveGalleryChangedListenerCmd, 211 ExecuteCmdAndCheckReply(host, kRemoveGalleryChangedListenerCmd,
219 kRemoveGalleryChangedListenerOK); 212 kRemoveGalleryChangedListenerOK);
220 213
221 // No listener, modify gallery contents. 214 // No listener, modify gallery contents.
222 ASSERT_TRUE(AddNewFileInTestGallery()); 215 ASSERT_TRUE(AddNewFileInGallery(chrome::DIR_USER_MUSIC));
223 216
224 // Remove gallery watch. 217 // Remove gallery watch.
225 ExecuteCmdAndCheckReply(kRemoveGalleryWatchCmd, kRemoveGalleryWatchOK); 218 ExecuteCmdAndCheckReply(host, kRemoveGalleryWatchCmd, kRemoveGalleryWatchOK);
226 } 219 }
227 220
228 IN_PROC_BROWSER_TEST_F(MediaGalleriesPrivateGalleryWatchApiTest, 221 IN_PROC_BROWSER_TEST_F(MediaGalleriesPrivateGalleryWatchApiTest,
229 SetupGalleryWatchWithoutListeners) { 222 SetupGalleryWatchWithoutListeners) {
230 // Set up gallery watch. 223 EnsureMediaDirectoriesExists media_directories;
231 ExecuteCmdAndCheckReply(kSetupWatchOnValidGalleriesCmd, kAddGalleryWatchOK); 224 content::RenderViewHost* host = GetBackgroundHostForTestExtension();
225 ASSERT_TRUE(host);
226
227 // Get media file systems.
228 ExtensionTestMessageListener get_media_systems_finished(
229 kGetMediaFileSystemsCallbackOK, false /* no reply */);
230 ExecuteCmdAndCheckReply(host, kGetMediaFileSystemsCmd,
231 kGetMediaFileSystemsOK);
232 EXPECT_TRUE(get_media_systems_finished.WaitUntilSatisfied());
233
234 // Set up gallery watch.
235 ExecuteCmdAndCheckReply(host, kSetupWatchOnValidGalleriesCmd,
236 kAddGalleryWatchOK);
232 237
233 // No listeners, modify gallery contents. 238 // No listeners, modify gallery contents.
234 ExtensionTestMessageListener gallery_change_event_received( 239 ExtensionTestMessageListener music_gallery_change_event_received(
235 kGalleryChangedEventReceived, false /* no reply */); 240 kGalleryChangedEventReceived, false /* no reply */);
236 ASSERT_TRUE(AddNewFileInTestGallery()); 241 ASSERT_TRUE(AddNewFileInGallery(chrome::DIR_USER_MUSIC));
237 242
238 // Remove gallery watch. 243 // Remove gallery watch.
239 ExecuteCmdAndCheckReply(kRemoveGalleryWatchCmd, kRemoveGalleryWatchOK); 244 ExecuteCmdAndCheckReply(host, kRemoveGalleryWatchCmd, kRemoveGalleryWatchOK);
240 } 245 }
241 246
242 IN_PROC_BROWSER_TEST_F(MediaGalleriesPrivateGalleryWatchApiTest, 247 IN_PROC_BROWSER_TEST_F(MediaGalleriesPrivateGalleryWatchApiTest,
243 SetupGalleryChangedListenerWithoutWatchers) { 248 SetupGalleryChangedListenerWithoutWatchers) {
249 EnsureMediaDirectoriesExists media_directories;
250 content::RenderViewHost* host = GetBackgroundHostForTestExtension();
251 ASSERT_TRUE(host);
252
253 // Get media file systems.
254 ExtensionTestMessageListener get_media_systems_finished(
255 kGetMediaFileSystemsCallbackOK, false /* no reply */);
256 ExecuteCmdAndCheckReply(host, kGetMediaFileSystemsCmd,
257 kGetMediaFileSystemsOK);
258 EXPECT_TRUE(get_media_systems_finished.WaitUntilSatisfied());
259
244 // Add gallery watch listener. 260 // Add gallery watch listener.
245 ExecuteCmdAndCheckReply(kAddGalleryChangedListenerCmd, 261 ExecuteCmdAndCheckReply(host, kAddGalleryChangedListenerCmd,
246 kAddGalleryChangedListenerOK); 262 kAddGalleryChangedListenerOK);
247 263
248 // Modify gallery contents. Listener should not get called because add watch 264 // Modify gallery contents. Listener should not get called because add watch
249 // request was not called. 265 // request was not called.
250 ExtensionTestMessageListener gallery_change_event_received( 266 ExtensionTestMessageListener music_gallery_change_event_received(
251 kGalleryChangedEventReceived, false /* no reply */); 267 kGalleryChangedEventReceived, false /* no reply */);
252 ASSERT_TRUE(AddNewFileInTestGallery()); 268 ASSERT_TRUE(AddNewFileInGallery(chrome::DIR_USER_MUSIC));
253 269
254 // Remove gallery watch listener. 270 // Remove gallery watch listener.
255 ExecuteCmdAndCheckReply(kRemoveGalleryChangedListenerCmd, 271 ExecuteCmdAndCheckReply(host, kRemoveGalleryChangedListenerCmd,
256 kRemoveGalleryChangedListenerOK); 272 kRemoveGalleryChangedListenerOK);
257 } 273 }
258 274
259 IN_PROC_BROWSER_TEST_F(MediaGalleriesPrivateGalleryWatchApiTest, 275 IN_PROC_BROWSER_TEST_F(MediaGalleriesPrivateGalleryWatchApiTest,
260 SetupWatchOnInvalidGallery) { 276 SetupWatchOnInvalidGallery) {
277 content::RenderViewHost* host = GetBackgroundHostForTestExtension();
278 ASSERT_TRUE(host);
279
261 // Set up a invalid gallery watch. 280 // Set up a invalid gallery watch.
262 ExtensionTestMessageListener invalid_gallery_watch_request_finished( 281 ExtensionTestMessageListener invalid_gallery_watch_request_finished(
263 kAddGalleryWatchRequestFailed, false /* no reply */); 282 kAddGalleryWatchRequestFailed, false /* no reply */);
264 ExecuteCmdAndCheckReply(kSetupWatchOnInvalidGalleryCmd, kAddGalleryWatchOK); 283 ExecuteCmdAndCheckReply(host, kSetupWatchOnInvalidGalleryCmd,
284 kAddGalleryWatchOK);
265 EXPECT_TRUE(invalid_gallery_watch_request_finished.WaitUntilSatisfied()); 285 EXPECT_TRUE(invalid_gallery_watch_request_finished.WaitUntilSatisfied());
266 } 286 }
267 287
268 IN_PROC_BROWSER_TEST_F(MediaGalleriesPrivateGalleryWatchApiTest, 288 IN_PROC_BROWSER_TEST_F(MediaGalleriesPrivateGalleryWatchApiTest,
269 GetAllGalleryWatch) { 289 GetAllGalleryWatch) {
290 EnsureMediaDirectoriesExists media_directories;
291 content::RenderViewHost* host = GetBackgroundHostForTestExtension();
292 ASSERT_TRUE(host);
293
294 // Get media file systems.
295 ExtensionTestMessageListener get_media_systems_finished(
296 kGetMediaFileSystemsCallbackOK, false /* no reply */);
297 ExecuteCmdAndCheckReply(host, kGetMediaFileSystemsCmd,
298 kGetMediaFileSystemsOK);
299 EXPECT_TRUE(get_media_systems_finished.WaitUntilSatisfied());
300
270 // Gallery watchers are not yet added. 301 // Gallery watchers are not yet added.
271 // chrome.mediaGalleriesPrivate.getAllGalleryWatch should return an empty 302 // chrome.mediaGalleriesPrivate.getAllGalleryWatch should return an empty
272 // list. 303 // list.
273 ExtensionTestMessageListener initial_get_all_check_finished( 304 ExtensionTestMessageListener initial_get_all_check_finished(
274 kNoGalleryWatchesInstalled, false /* no reply */); 305 kGetAllGalleryWatchResultA, false /* no reply */);
275 ExecuteCmdAndCheckReply(kGetAllWatchedGalleryIdsCmd, kGetAllGalleryWatchOK); 306 ExecuteCmdAndCheckReply(host, kGetAllWatchedGalleryIdsCmd,
307 kGetAllGalleryWatchOK);
276 EXPECT_TRUE(initial_get_all_check_finished.WaitUntilSatisfied()); 308 EXPECT_TRUE(initial_get_all_check_finished.WaitUntilSatisfied());
277 309
278 // Set up gallery watchers. 310 // Set up gallery watchers.
279 ExtensionTestMessageListener add_gallery_watch_finished( 311 ExtensionTestMessageListener add_gallery_watch_finished(
280 kAddGalleryWatchRequestSucceeded, false /* no reply */); 312 kAddGalleryWatchRequestSucceeded, false /* no reply */);
281 ExecuteCmdAndCheckReply(kSetupWatchOnValidGalleriesCmd, kAddGalleryWatchOK); 313 ExecuteCmdAndCheckReply(host, kSetupWatchOnValidGalleriesCmd,
314 kAddGalleryWatchOK);
282 EXPECT_TRUE(add_gallery_watch_finished.WaitUntilSatisfied()); 315 EXPECT_TRUE(add_gallery_watch_finished.WaitUntilSatisfied());
283 316
284 // chrome.mediaGalleriesPrivate.getAllGalleryWatch should return the 317 // chrome.mediaGalleriesPrivate.getAllGalleryWatch should return the
285 // gallery identifiers. 318 // gallery identifiers.
286 ExtensionTestMessageListener get_all_watched_galleries_finished( 319 ExtensionTestMessageListener get_all_watched_galleries_finished(
287 kGalleryWatchesCheck, false /* no reply */); 320 kGetAllGalleryWatchResultB, false /* no reply */);
288 ExecuteCmdAndCheckReply(kGetAllWatchedGalleryIdsCmd, kGetAllGalleryWatchOK); 321 ExecuteCmdAndCheckReply(host, kGetAllWatchedGalleryIdsCmd,
322 kGetAllGalleryWatchOK);
289 EXPECT_TRUE(get_all_watched_galleries_finished.WaitUntilSatisfied()); 323 EXPECT_TRUE(get_all_watched_galleries_finished.WaitUntilSatisfied());
290 324
291 // Remove gallery watch request. 325 // Remove gallery watch request.
292 ExecuteCmdAndCheckReply(kRemoveGalleryWatchCmd, kRemoveGalleryWatchOK); 326 ExecuteCmdAndCheckReply(host, kRemoveGalleryWatchCmd, kRemoveGalleryWatchOK);
293 327
294 // Gallery watchers removed. 328 // Gallery watchers removed.
295 // chrome.mediaGalleriesPrivate.getAllGalleryWatch() should return an empty 329 // chrome.mediaGalleriesPrivate.getAllGalleryWatch() should return an empty
296 // list. 330 // list.
297 ExtensionTestMessageListener final_get_all_check_finished( 331 ExtensionTestMessageListener final_get_all_check_finished(
298 kNoGalleryWatchesInstalled, false /* no reply */); 332 kGetAllGalleryWatchResultA, false /* no reply */);
299 ExecuteCmdAndCheckReply(kGetAllWatchedGalleryIdsCmd, kGetAllGalleryWatchOK); 333 ExecuteCmdAndCheckReply(host, kGetAllWatchedGalleryIdsCmd,
334 kGetAllGalleryWatchOK);
300 EXPECT_TRUE(final_get_all_check_finished.WaitUntilSatisfied()); 335 EXPECT_TRUE(final_get_all_check_finished.WaitUntilSatisfied());
301 } 336 }
302 337
303 IN_PROC_BROWSER_TEST_F(MediaGalleriesPrivateGalleryWatchApiTest, 338 IN_PROC_BROWSER_TEST_F(MediaGalleriesPrivateGalleryWatchApiTest,
304 RemoveAllGalleryWatch) { 339 RemoveAllGalleryWatch) {
340 EnsureMediaDirectoriesExists media_directories;
341 content::RenderViewHost* host = GetBackgroundHostForTestExtension();
342 ASSERT_TRUE(host);
343
344 // Get media file systems.
345 ExtensionTestMessageListener get_media_systems_finished(
346 kGetMediaFileSystemsCallbackOK, false /* no reply */);
347 ExecuteCmdAndCheckReply(host, kGetMediaFileSystemsCmd,
348 kGetMediaFileSystemsOK);
349 EXPECT_TRUE(get_media_systems_finished.WaitUntilSatisfied());
350
305 // Set up gallery watchers. 351 // Set up gallery watchers.
306 ExtensionTestMessageListener add_gallery_watch_finished( 352 ExtensionTestMessageListener add_gallery_watch_finished(
307 kAddGalleryWatchRequestSucceeded, false /* no reply */); 353 kAddGalleryWatchRequestSucceeded, false /* no reply */);
308 ExecuteCmdAndCheckReply(kSetupWatchOnValidGalleriesCmd, kAddGalleryWatchOK); 354 ExecuteCmdAndCheckReply(host, kSetupWatchOnValidGalleriesCmd,
355 kAddGalleryWatchOK);
309 EXPECT_TRUE(add_gallery_watch_finished.WaitUntilSatisfied()); 356 EXPECT_TRUE(add_gallery_watch_finished.WaitUntilSatisfied());
310 357
311 // chrome.mediaGalleriesPrivate.getAllGalleryWatch should return the watched 358 // chrome.mediaGalleriesPrivate.getAllGalleryWatch should return the watched
312 // gallery identifiers. 359 // gallery identifiers.
313 ExtensionTestMessageListener get_all_watched_galleries_finished( 360 ExtensionTestMessageListener get_all_watched_galleries_finished(
314 kGalleryWatchesCheck, false /* no reply */); 361 kGetAllGalleryWatchResultB, false /* no reply */);
315 ExecuteCmdAndCheckReply(kGetAllWatchedGalleryIdsCmd, kGetAllGalleryWatchOK); 362 ExecuteCmdAndCheckReply(host, kGetAllWatchedGalleryIdsCmd,
363 kGetAllGalleryWatchOK);
316 EXPECT_TRUE(get_all_watched_galleries_finished.WaitUntilSatisfied()); 364 EXPECT_TRUE(get_all_watched_galleries_finished.WaitUntilSatisfied());
317 365
318 // Remove all gallery watchers. 366 // Remove all gallery watchers.
319 ExecuteCmdAndCheckReply(kRemoveAllGalleryWatchCmd, kRemoveAllGalleryWatchOK); 367 ExecuteCmdAndCheckReply(host, kRemoveAllGalleryWatchCmd,
368 kRemoveAllGalleryWatchOK);
320 369
321 // Gallery watchers removed. chrome.mediaGalleriesPrivate.getAllGalleryWatch 370 // Gallery watchers removed. chrome.mediaGalleriesPrivate.getAllGalleryWatch
322 // should return an empty list. 371 // should return an empty list.
323 ExtensionTestMessageListener final_get_all_check_finished( 372 ExtensionTestMessageListener final_get_all_check_finished(
324 kNoGalleryWatchesInstalled, false /* no reply */); 373 kGetAllGalleryWatchResultA, false /* no reply */);
325 ExecuteCmdAndCheckReply(kGetAllWatchedGalleryIdsCmd, kGetAllGalleryWatchOK); 374 ExecuteCmdAndCheckReply(host, kGetAllWatchedGalleryIdsCmd,
375 kGetAllGalleryWatchOK);
326 EXPECT_TRUE(final_get_all_check_finished.WaitUntilSatisfied()); 376 EXPECT_TRUE(final_get_all_check_finished.WaitUntilSatisfied());
327 } 377 }
378 #endif // defined(OS_WIN) || (defined(OS_LINUX) && !defined(OS_CHROMEOS))
379
380 #if defined(OS_MACOSX)
381 // Gallery watch request is not enabled on Mac: crbug.com/144491.
382 IN_PROC_BROWSER_TEST_F(MediaGalleriesPrivateGalleryWatchApiTest,
383 SetupGalleryWatch) {
384 EnsureMediaDirectoriesExists media_directories;
385 content::RenderViewHost* host = GetBackgroundHostForTestExtension();
386 ASSERT_TRUE(host);
387
388 // Get media file systems.
389 ExtensionTestMessageListener get_media_systems_finished(
390 kGetMediaFileSystemsCallbackOK, false /* no reply */);
391 ExecuteCmdAndCheckReply(host, kGetMediaFileSystemsCmd,
392 kGetMediaFileSystemsOK);
393 EXPECT_TRUE(get_media_systems_finished.WaitUntilSatisfied());
394
395 // Set up a invalid gallery watch.
396 ExtensionTestMessageListener gallery_watch_request_finished(
397 kAddGalleryWatchRequestFailed, false /* no reply */);
398 // Set up gallery watch.
399 ExecuteCmdAndCheckReply(host, kSetupWatchOnValidGalleriesCmd,
400 kAddGalleryWatchOK);
401 EXPECT_TRUE(gallery_watch_request_finished.WaitUntilSatisfied());
402 }
403
404 IN_PROC_BROWSER_TEST_F(MediaGalleriesPrivateGalleryWatchApiTest,
405 GetAllGalleryWatch) {
406 EnsureMediaDirectoriesExists media_directories;
407 content::RenderViewHost* host = GetBackgroundHostForTestExtension();
408 ASSERT_TRUE(host);
409
410 // Get media file systems.
411 ExtensionTestMessageListener get_media_systems_finished(
412 kGetMediaFileSystemsCallbackOK, false /* no reply */);
413 ExecuteCmdAndCheckReply(host, kGetMediaFileSystemsCmd,
414 kGetMediaFileSystemsOK);
415 EXPECT_TRUE(get_media_systems_finished.WaitUntilSatisfied());
416
417 // Set up gallery watch.
418 ExecuteCmdAndCheckReply(host, kSetupWatchOnValidGalleriesCmd,
419 kAddGalleryWatchOK);
420
421 // Gallery watchers does not exists.
422 // chrome.mediaGalleriesPrivate.getAllGalleryWatch should return an empty
423 // list.
424 ExtensionTestMessageListener get_all_gallery_watch_finished(
425 kGetAllGalleryWatchResultA, false /* no reply */);
426 ExecuteCmdAndCheckReply(host, kGetAllWatchedGalleryIdsCmd,
427 kGetAllGalleryWatchOK);
428 EXPECT_TRUE(get_all_gallery_watch_finished.WaitUntilSatisfied());
429 }
430 #endif // defined(OS_MACOSX)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698