Index: chrome/browser/extensions/api/file_system/entry_watcher_service_unittest.cc |
diff --git a/chrome/browser/extensions/api/file_system/entry_watcher_service_unittest.cc b/chrome/browser/extensions/api/file_system/entry_watcher_service_unittest.cc |
deleted file mode 100644 |
index 80d1cbc6938d46ddb12cd668ee0add2b21656fa3..0000000000000000000000000000000000000000 |
--- a/chrome/browser/extensions/api/file_system/entry_watcher_service_unittest.cc |
+++ /dev/null |
@@ -1,254 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/browser/extensions/api/file_system/entry_watcher_service.h" |
- |
-#include <string> |
-#include <vector> |
- |
-#include "base/files/file.h" |
-#include "base/files/file_path.h" |
-#include "base/files/scoped_temp_dir.h" |
-#include "base/memory/scoped_vector.h" |
-#include "base/run_loop.h" |
-#include "chrome/common/extensions/api/file_system.h" |
-#include "chrome/test/base/testing_profile.h" |
-#include "content/public/test/test_browser_thread_bundle.h" |
-#include "content/public/test/test_file_system_context.h" |
-#include "extensions/browser/event_router.h" |
-#include "storage/browser/fileapi/file_system_url.h" |
-#include "storage/common/fileapi/file_system_types.h" |
- |
-namespace extensions { |
-namespace { |
- |
-const char kExtensionId[] = "mbflcebpggnecokmikipoihdbecnjfoj"; |
- |
-void LogStatus(std::vector<base::File::Error>* log, base::File::Error status) { |
- log->push_back(status); |
-} |
- |
-} // namespace |
- |
-class EntryWatcherServiceTest : public testing::Test { |
- protected: |
- EntryWatcherServiceTest() {} |
- virtual ~EntryWatcherServiceTest() {} |
- |
- virtual void SetUp() override { |
- profile_.reset(new TestingProfile); |
- ASSERT_TRUE(data_dir_.CreateUniqueTempDir()); |
- file_system_context_ = |
- content::CreateFileSystemContextForTesting(NULL, data_dir_.path()); |
- service_.reset(new EntryWatcherService(profile_.get())); |
- service_->SetDispatchEventImplForTesting(base::Bind( |
- &EntryWatcherServiceTest::DispatchEventImpl, base::Unretained(this))); |
- service_->SetGetFileSystemContextImplForTesting( |
- base::Bind(&EntryWatcherServiceTest::GetFileSystemContextImpl, |
- base::Unretained(this))); |
- testing_url_ = file_system_context_->CreateCrackedFileSystemURL( |
- GURL(std::string("chrome-extension://") + kExtensionId), |
- storage::kFileSystemTypeTest, |
- base::FilePath::FromUTF8Unsafe("/x/y/z")); |
- } |
- |
- virtual void TearDown() override { |
- dispatch_event_log_targets_.clear(); |
- dispatch_event_log_events_.clear(); |
- } |
- |
- void DispatchEventImpl(const std::string& extension_id, |
- scoped_ptr<Event> event) { |
- dispatch_event_log_targets_.push_back(extension_id); |
- dispatch_event_log_events_.push_back(event.release()); |
- } |
- |
- storage::FileSystemContext* GetFileSystemContextImpl( |
- const std::string& extension_id, |
- content::BrowserContext* context) { |
- EXPECT_EQ(kExtensionId, extension_id); |
- EXPECT_EQ(profile_.get(), context); |
- return file_system_context_.get(); |
- } |
- |
- content::TestBrowserThreadBundle thread_bundle_; |
- scoped_ptr<TestingProfile> profile_; |
- base::ScopedTempDir data_dir_; |
- scoped_refptr<storage::FileSystemContext> file_system_context_; |
- scoped_ptr<EntryWatcherService> service_; |
- storage::FileSystemURL testing_url_; |
- std::vector<std::string> dispatch_event_log_targets_; |
- ScopedVector<Event> dispatch_event_log_events_; |
-}; |
- |
-TEST_F(EntryWatcherServiceTest, GetWatchedEntries) { |
- std::vector<base::File::Error> log; |
- |
- const bool recursive = false; |
- service_->WatchDirectory( |
- kExtensionId, testing_url_, recursive, base::Bind(&LogStatus, &log)); |
- base::RunLoop().RunUntilIdle(); |
- |
- ASSERT_EQ(1u, log.size()); |
- EXPECT_EQ(base::File::FILE_OK, log[0]); |
- |
- { |
- const std::vector<storage::FileSystemURL> watched_entries = |
- service_->GetWatchedEntries(kExtensionId); |
- ASSERT_EQ(1u, watched_entries.size()); |
- EXPECT_EQ(testing_url_, watched_entries[0]); |
- } |
- |
- { |
- const std::string wrong_extension_id = "abcabcabcabcabcabcabcabcabcabcab"; |
- const std::vector<storage::FileSystemURL> watched_entries = |
- service_->GetWatchedEntries(wrong_extension_id); |
- EXPECT_EQ(0u, watched_entries.size()); |
- } |
-} |
- |
-TEST_F(EntryWatcherServiceTest, WatchDirectory) { |
- std::vector<base::File::Error> log; |
- |
- const bool recursive = false; |
- service_->WatchDirectory( |
- kExtensionId, testing_url_, recursive, base::Bind(&LogStatus, &log)); |
- base::RunLoop().RunUntilIdle(); |
- |
- ASSERT_EQ(1u, log.size()); |
- EXPECT_EQ(base::File::FILE_OK, log[0]); |
- |
- // The testing WatcherManager implementation emits two hard-coded fake |
- // notifications as soon as the watcher is set properly. See: |
- // TestWatcherManager::WatchDirectory() for details. |
- ASSERT_LE(1u, dispatch_event_log_targets_.size()); |
- ASSERT_LE(1u, dispatch_event_log_events_.size()); |
- |
- EXPECT_EQ(kExtensionId, dispatch_event_log_targets_[0]); |
- EXPECT_EQ(api::file_system::OnEntryChanged::kEventName, |
- dispatch_event_log_events_[0]->event_name); |
- |
- ASSERT_LE(2u, dispatch_event_log_targets_.size()); |
- ASSERT_LE(2u, dispatch_event_log_events_.size()); |
- EXPECT_EQ(kExtensionId, dispatch_event_log_targets_[1]); |
- EXPECT_EQ(api::file_system::OnEntryRemoved::kEventName, |
- dispatch_event_log_events_[1]->event_name); |
- |
- // No unexpected events. |
- ASSERT_EQ(2u, dispatch_event_log_targets_.size()); |
- ASSERT_EQ(2u, dispatch_event_log_events_.size()); |
- |
- const std::vector<storage::FileSystemURL> watched_entries = |
- service_->GetWatchedEntries(kExtensionId); |
- ASSERT_EQ(1u, watched_entries.size()); |
- EXPECT_EQ(testing_url_, watched_entries[0]); |
-} |
- |
-TEST_F(EntryWatcherServiceTest, WatchDirectory_AlreadyExists) { |
- std::vector<base::File::Error> log; |
- |
- const bool recursive = false; |
- service_->WatchDirectory( |
- kExtensionId, testing_url_, recursive, base::Bind(&LogStatus, &log)); |
- base::RunLoop().RunUntilIdle(); |
- |
- ASSERT_EQ(1u, log.size()); |
- EXPECT_EQ(base::File::FILE_OK, log[0]); |
- |
- ASSERT_EQ(2u, dispatch_event_log_targets_.size()); |
- ASSERT_EQ(2u, dispatch_event_log_events_.size()); |
- |
- { |
- const std::vector<storage::FileSystemURL> watched_entries = |
- service_->GetWatchedEntries(kExtensionId); |
- EXPECT_EQ(1u, watched_entries.size()); |
- } |
- |
- service_->WatchDirectory( |
- kExtensionId, testing_url_, recursive, base::Bind(&LogStatus, &log)); |
- base::RunLoop().RunUntilIdle(); |
- |
- ASSERT_EQ(2u, log.size()); |
- EXPECT_EQ(base::File::FILE_ERROR_EXISTS, log[1]); |
- |
- // No new unexpected events. |
- ASSERT_EQ(2u, dispatch_event_log_targets_.size()); |
- ASSERT_EQ(2u, dispatch_event_log_events_.size()); |
- |
- { |
- const std::vector<storage::FileSystemURL> watched_entries = |
- service_->GetWatchedEntries(kExtensionId); |
- EXPECT_EQ(1u, watched_entries.size()); |
- } |
-} |
- |
-TEST_F(EntryWatcherServiceTest, WatchDirectory_Recursive) { |
- std::vector<base::File::Error> log; |
- |
- const bool recursive = true; |
- service_->WatchDirectory( |
- kExtensionId, testing_url_, recursive, base::Bind(&LogStatus, &log)); |
- base::RunLoop().RunUntilIdle(); |
- |
- // Recursive watchers are not supported yet. |
- ASSERT_EQ(1u, log.size()); |
- EXPECT_EQ(base::File::FILE_ERROR_INVALID_OPERATION, log[0]); |
- |
- // No unexpected events. |
- ASSERT_EQ(0u, dispatch_event_log_targets_.size()); |
- ASSERT_EQ(0u, dispatch_event_log_events_.size()); |
- |
- const std::vector<storage::FileSystemURL> watched_entries = |
- service_->GetWatchedEntries(kExtensionId); |
- EXPECT_EQ(0u, watched_entries.size()); |
-} |
- |
-TEST_F(EntryWatcherServiceTest, UnwatchEntry) { |
- std::vector<base::File::Error> watch_log; |
- |
- const bool recursive = false; |
- service_->WatchDirectory(kExtensionId, |
- testing_url_, |
- recursive, |
- base::Bind(&LogStatus, &watch_log)); |
- base::RunLoop().RunUntilIdle(); |
- |
- ASSERT_EQ(1u, watch_log.size()); |
- EXPECT_EQ(base::File::FILE_OK, watch_log[0]); |
- |
- ASSERT_EQ(2u, dispatch_event_log_targets_.size()); |
- ASSERT_EQ(2u, dispatch_event_log_events_.size()); |
- |
- { |
- const std::vector<storage::FileSystemURL> watched_entries = |
- service_->GetWatchedEntries(kExtensionId); |
- EXPECT_EQ(1u, watched_entries.size()); |
- } |
- |
- std::vector<base::File::Error> unwatch_log; |
- service_->UnwatchEntry( |
- kExtensionId, testing_url_, base::Bind(&LogStatus, &unwatch_log)); |
- base::RunLoop().RunUntilIdle(); |
- |
- ASSERT_EQ(1u, unwatch_log.size()); |
- EXPECT_EQ(base::File::FILE_OK, unwatch_log[0]); |
- |
- { |
- const std::vector<storage::FileSystemURL> watched_entries = |
- service_->GetWatchedEntries(kExtensionId); |
- EXPECT_EQ(0u, watched_entries.size()); |
- } |
-} |
- |
-TEST_F(EntryWatcherServiceTest, UnwatchEntry_NotFound) { |
- std::vector<base::File::Error> log; |
- service_->UnwatchEntry( |
- kExtensionId, testing_url_, base::Bind(&LogStatus, &log)); |
- base::RunLoop().RunUntilIdle(); |
- |
- ASSERT_EQ(1u, log.size()); |
- EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, log[0]); |
-} |
- |
-} // namespace extensions |