Chromium Code Reviews| 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/stl_util.h" | 5 #include "base/stl_util.h" |
| 6 #include "chrome/browser/chromeos/extensions/file_manager/event_router.h" | |
| 6 #include "chrome/browser/chromeos/file_manager/drive_test_util.h" | 7 #include "chrome/browser/chromeos/file_manager/drive_test_util.h" |
| 8 #include "chrome/browser/chromeos/file_manager/file_watcher.h" | |
| 7 #include "chrome/browser/extensions/extension_apitest.h" | 9 #include "chrome/browser/extensions/extension_apitest.h" |
| 10 #include "chrome/test/base/testing_profile.h" | |
| 8 #include "chromeos/dbus/cros_disks_client.h" | 11 #include "chromeos/dbus/cros_disks_client.h" |
| 9 #include "chromeos/disks/mock_disk_mount_manager.h" | 12 #include "chromeos/disks/mock_disk_mount_manager.h" |
| 10 #include "extensions/common/extension.h" | 13 #include "extensions/common/extension.h" |
| 11 #include "extensions/common/install_warning.h" | 14 #include "extensions/common/install_warning.h" |
| 12 | 15 |
| 13 using ::testing::_; | 16 using ::testing::_; |
| 14 using ::testing::ReturnRef; | 17 using ::testing::ReturnRef; |
| 15 | 18 |
| 16 using chromeos::disks::DiskMountManager; | 19 using chromeos::disks::DiskMountManager; |
| 17 | 20 |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 101 chromeos::DEVICE_TYPE_OPTICAL_DISC, | 104 chromeos::DEVICE_TYPE_OPTICAL_DISC, |
| 102 0, | 105 0, |
| 103 true, | 106 true, |
| 104 false, | 107 false, |
| 105 false, | 108 false, |
| 106 true, | 109 true, |
| 107 false | 110 false |
| 108 } | 111 } |
| 109 }; | 112 }; |
| 110 | 113 |
| 114 struct DispatchDirChangeEve { | |
|
mtomasz
2014/10/16 04:02:03
ditto
yawano
2014/10/17 03:57:22
Done.
| |
| 115 base::FilePath virtual_path; | |
| 116 std::vector<std::string> extension_ids; | |
| 117 }; | |
| 118 | |
| 119 class DispatchDirChangeEveImpl { | |
| 120 public: | |
| 121 std::vector<DispatchDirChangeEve> events; | |
| 122 | |
| 123 void Callback(const base::FilePath& virtual_path, | |
| 124 const drive::FileChange* list, | |
| 125 bool got_error, | |
| 126 const std::vector<std::string>& extension_ids) { | |
| 127 DispatchDirChangeEve dispatch_dir_change_eve; | |
| 128 dispatch_dir_change_eve.virtual_path = virtual_path; | |
| 129 dispatch_dir_change_eve.extension_ids = extension_ids; | |
| 130 events.push_back(dispatch_dir_change_eve); | |
| 131 } | |
| 132 }; | |
| 133 | |
| 134 void AddFileWatchCallback(bool b) { } | |
| 135 | |
| 111 } // namespace | 136 } // namespace |
| 112 | 137 |
| 113 class FileManagerPrivateApiTest : public ExtensionApiTest { | 138 class FileManagerPrivateApiTest : public ExtensionApiTest { |
| 114 public: | 139 public: |
| 115 FileManagerPrivateApiTest() | 140 FileManagerPrivateApiTest() |
| 116 : disk_mount_manager_mock_(NULL) { | 141 : disk_mount_manager_mock_(NULL) { |
| 117 InitMountPoints(); | 142 InitMountPoints(); |
| 118 } | 143 } |
| 119 | 144 |
| 120 virtual ~FileManagerPrivateApiTest() { | 145 virtual ~FileManagerPrivateApiTest() { |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 263 | 288 |
| 264 IN_PROC_BROWSER_TEST_F(FileManagerPrivateApiTest, Permissions) { | 289 IN_PROC_BROWSER_TEST_F(FileManagerPrivateApiTest, Permissions) { |
| 265 EXPECT_TRUE( | 290 EXPECT_TRUE( |
| 266 RunExtensionTestIgnoreManifestWarnings("file_browser/permissions")); | 291 RunExtensionTestIgnoreManifestWarnings("file_browser/permissions")); |
| 267 const extensions::Extension* extension = GetSingleLoadedExtension(); | 292 const extensions::Extension* extension = GetSingleLoadedExtension(); |
| 268 ASSERT_TRUE(extension); | 293 ASSERT_TRUE(extension); |
| 269 ASSERT_EQ(1u, extension->install_warnings().size()); | 294 ASSERT_EQ(1u, extension->install_warnings().size()); |
| 270 const extensions::InstallWarning& warning = extension->install_warnings()[0]; | 295 const extensions::InstallWarning& warning = extension->install_warnings()[0]; |
| 271 EXPECT_EQ("fileManagerPrivate", warning.key); | 296 EXPECT_EQ("fileManagerPrivate", warning.key); |
| 272 } | 297 } |
| 298 | |
| 299 IN_PROC_BROWSER_TEST_F(FileManagerPrivateApiTest, OnDirectoryChanged) { | |
| 300 TestingProfile profile; | |
| 301 file_manager::EventRouter event_router(&profile); | |
| 302 | |
| 303 DispatchDirChangeEveImpl dispatch_dir_change_eve_impl; | |
| 304 event_router.SetDispatchDirChangeEveImplForTesting(base::Bind( | |
| 305 &DispatchDirChangeEveImpl::Callback, | |
| 306 base::Unretained(&dispatch_dir_change_eve_impl))); | |
| 307 | |
| 308 // /a/b/c and /a/d/e are being watched. | |
| 309 // In this test case, we assume these pathes does not actually exist in the | |
| 310 // machine. (EventRouter does not notify event if the child directory still | |
| 311 // exists). | |
| 312 event_router.AddFileWatch(base::FilePath("no-existing-fs/root/a/b/c"), | |
| 313 base::FilePath("no-existing-fs-virtual/root/a/b/c"), | |
| 314 "extension_1", | |
| 315 base::Bind(&AddFileWatchCallback)); | |
| 316 | |
| 317 event_router.AddFileWatch(base::FilePath("no-existing-fs/root/a/d/e"), | |
| 318 base::FilePath("no-existing-fs-hash/root/a/d/e"), | |
| 319 "extension_2", | |
| 320 base::Bind(&AddFileWatchCallback)); | |
| 321 | |
| 322 // When /a/b is deleted (1 and 2 are notified). | |
| 323 event_router.OnDirectoryChanged(base::FilePath("no-existing-fs/root/a")); | |
| 324 ASSERT_EQ(2lu, dispatch_dir_change_eve_impl.events.size()); | |
| 325 | |
| 326 // When /a/b/c is deleted (1 is notified). | |
| 327 event_router.OnDirectoryChanged(base::FilePath("no-existing-fs/root/a/b")); | |
| 328 ASSERT_EQ(3lu, dispatch_dir_change_eve_impl.events.size()); | |
| 329 | |
| 330 // When /z/y is deleted (Not notified) | |
| 331 event_router.OnDirectoryChanged(base::FilePath("no-existing-fs/root/z")); | |
| 332 ASSERT_EQ(3lu, dispatch_dir_change_eve_impl.events.size()); | |
| 333 | |
| 334 event_router.Shutdown(); | |
| 335 } | |
| OLD | NEW |