| 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/files/file_path_watcher.h" | 5 #include "base/files/file_path_watcher.h" |
| 6 | 6 |
| 7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
| 8 #include <windows.h> | 8 #include <windows.h> |
| 9 #include <aclapi.h> | 9 #include <aclapi.h> |
| 10 #elif defined(OS_POSIX) | 10 #elif defined(OS_POSIX) |
| (...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 254 // Verify that moving the file into place is caught. | 254 // Verify that moving the file into place is caught. |
| 255 TEST_F(FilePathWatcherTest, MovedFile) { | 255 TEST_F(FilePathWatcherTest, MovedFile) { |
| 256 FilePath source_file(temp_dir_.path().AppendASCII("source")); | 256 FilePath source_file(temp_dir_.path().AppendASCII("source")); |
| 257 ASSERT_TRUE(WriteFile(source_file, "content")); | 257 ASSERT_TRUE(WriteFile(source_file, "content")); |
| 258 | 258 |
| 259 FilePathWatcher watcher; | 259 FilePathWatcher watcher; |
| 260 scoped_ptr<TestDelegate> delegate(new TestDelegate(collector())); | 260 scoped_ptr<TestDelegate> delegate(new TestDelegate(collector())); |
| 261 ASSERT_TRUE(SetupWatch(test_file(), &watcher, delegate.get(), false)); | 261 ASSERT_TRUE(SetupWatch(test_file(), &watcher, delegate.get(), false)); |
| 262 | 262 |
| 263 // Now make sure we get notified if the file is modified. | 263 // Now make sure we get notified if the file is modified. |
| 264 ASSERT_TRUE(file_util::Move(source_file, test_file())); | 264 ASSERT_TRUE(base::Move(source_file, test_file())); |
| 265 ASSERT_TRUE(WaitForEvents()); | 265 ASSERT_TRUE(WaitForEvents()); |
| 266 DeleteDelegateOnFileThread(delegate.release()); | 266 DeleteDelegateOnFileThread(delegate.release()); |
| 267 } | 267 } |
| 268 | 268 |
| 269 TEST_F(FilePathWatcherTest, DeletedFile) { | 269 TEST_F(FilePathWatcherTest, DeletedFile) { |
| 270 ASSERT_TRUE(WriteFile(test_file(), "content")); | 270 ASSERT_TRUE(WriteFile(test_file(), "content")); |
| 271 | 271 |
| 272 FilePathWatcher watcher; | 272 FilePathWatcher watcher; |
| 273 scoped_ptr<TestDelegate> delegate(new TestDelegate(collector())); | 273 scoped_ptr<TestDelegate> delegate(new TestDelegate(collector())); |
| 274 ASSERT_TRUE(SetupWatch(test_file(), &watcher, delegate.get(), false)); | 274 ASSERT_TRUE(SetupWatch(test_file(), &watcher, delegate.get(), false)); |
| (...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 489 ASSERT_TRUE(SetupWatch(subdir, &subdir_watcher, subdir_delegate.get(), | 489 ASSERT_TRUE(SetupWatch(subdir, &subdir_watcher, subdir_delegate.get(), |
| 490 false)); | 490 false)); |
| 491 | 491 |
| 492 // Setup a directory hierarchy. | 492 // Setup a directory hierarchy. |
| 493 ASSERT_TRUE(file_util::CreateDirectory(subdir)); | 493 ASSERT_TRUE(file_util::CreateDirectory(subdir)); |
| 494 ASSERT_TRUE(WriteFile(file, "content")); | 494 ASSERT_TRUE(WriteFile(file, "content")); |
| 495 VLOG(1) << "Waiting for file creation"; | 495 VLOG(1) << "Waiting for file creation"; |
| 496 ASSERT_TRUE(WaitForEvents()); | 496 ASSERT_TRUE(WaitForEvents()); |
| 497 | 497 |
| 498 // Move the parent directory. | 498 // Move the parent directory. |
| 499 file_util::Move(dir, dest); | 499 base::Move(dir, dest); |
| 500 VLOG(1) << "Waiting for directory move"; | 500 VLOG(1) << "Waiting for directory move"; |
| 501 ASSERT_TRUE(WaitForEvents()); | 501 ASSERT_TRUE(WaitForEvents()); |
| 502 DeleteDelegateOnFileThread(file_delegate.release()); | 502 DeleteDelegateOnFileThread(file_delegate.release()); |
| 503 DeleteDelegateOnFileThread(subdir_delegate.release()); | 503 DeleteDelegateOnFileThread(subdir_delegate.release()); |
| 504 } | 504 } |
| 505 | 505 |
| 506 #if defined(OS_WIN) | 506 #if defined(OS_WIN) |
| 507 TEST_F(FilePathWatcherTest, RecursiveWatch) { | 507 TEST_F(FilePathWatcherTest, RecursiveWatch) { |
| 508 FilePathWatcher watcher; | 508 FilePathWatcher watcher; |
| 509 FilePath dir(temp_dir_.path().AppendASCII("dir")); | 509 FilePath dir(temp_dir_.path().AppendASCII("dir")); |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 581 ASSERT_TRUE(file_util::CreateDirectory(source_subdir)); | 581 ASSERT_TRUE(file_util::CreateDirectory(source_subdir)); |
| 582 ASSERT_TRUE(WriteFile(source_file, "content")); | 582 ASSERT_TRUE(WriteFile(source_file, "content")); |
| 583 | 583 |
| 584 scoped_ptr<TestDelegate> file_delegate(new TestDelegate(collector())); | 584 scoped_ptr<TestDelegate> file_delegate(new TestDelegate(collector())); |
| 585 ASSERT_TRUE(SetupWatch(dest_file, &file_watcher, file_delegate.get(), false)); | 585 ASSERT_TRUE(SetupWatch(dest_file, &file_watcher, file_delegate.get(), false)); |
| 586 scoped_ptr<TestDelegate> subdir_delegate(new TestDelegate(collector())); | 586 scoped_ptr<TestDelegate> subdir_delegate(new TestDelegate(collector())); |
| 587 ASSERT_TRUE(SetupWatch(dest_subdir, &subdir_watcher, subdir_delegate.get(), | 587 ASSERT_TRUE(SetupWatch(dest_subdir, &subdir_watcher, subdir_delegate.get(), |
| 588 false)); | 588 false)); |
| 589 | 589 |
| 590 // Move the directory into place, s.t. the watched file appears. | 590 // Move the directory into place, s.t. the watched file appears. |
| 591 ASSERT_TRUE(file_util::Move(source_dir, dest_dir)); | 591 ASSERT_TRUE(base::Move(source_dir, dest_dir)); |
| 592 ASSERT_TRUE(WaitForEvents()); | 592 ASSERT_TRUE(WaitForEvents()); |
| 593 DeleteDelegateOnFileThread(file_delegate.release()); | 593 DeleteDelegateOnFileThread(file_delegate.release()); |
| 594 DeleteDelegateOnFileThread(subdir_delegate.release()); | 594 DeleteDelegateOnFileThread(subdir_delegate.release()); |
| 595 } | 595 } |
| 596 | 596 |
| 597 #if !defined(OS_LINUX) | 597 #if !defined(OS_LINUX) |
| 598 // Linux implementation of FilePathWatcher doesn't catch attribute changes. | 598 // Linux implementation of FilePathWatcher doesn't catch attribute changes. |
| 599 // http://crbug.com/78043 | 599 // http://crbug.com/78043 |
| 600 | 600 |
| 601 // Verify that changing attributes on a file is caught | 601 // Verify that changing attributes on a file is caught |
| (...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 906 ASSERT_TRUE(ChangeFilePermissions(test_dir1, Execute, false)); | 906 ASSERT_TRUE(ChangeFilePermissions(test_dir1, Execute, false)); |
| 907 ASSERT_TRUE(WaitForEvents()); | 907 ASSERT_TRUE(WaitForEvents()); |
| 908 ASSERT_TRUE(ChangeFilePermissions(test_dir1, Execute, true)); | 908 ASSERT_TRUE(ChangeFilePermissions(test_dir1, Execute, true)); |
| 909 DeleteDelegateOnFileThread(delegate.release()); | 909 DeleteDelegateOnFileThread(delegate.release()); |
| 910 } | 910 } |
| 911 | 911 |
| 912 #endif // OS_MACOSX | 912 #endif // OS_MACOSX |
| 913 } // namespace | 913 } // namespace |
| 914 | 914 |
| 915 } // namespace base | 915 } // namespace base |
| OLD | NEW |