chromium/chrome/browser/sync_file_system/local/local_file_sync_context_unittest.cc

// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/sync_file_system/local/local_file_sync_context.h"

#include <stdint.h>

#include <string_view>
#include <utility>
#include <vector>

#include "base/containers/contains.h"
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"
#include "base/location.h"
#include "base/run_loop.h"
#include "base/task/sequenced_task_runner.h"
#include "base/task/single_thread_task_runner.h"
#include "base/test/gmock_expected_support.h"
#include "base/test/test_future.h"
#include "chrome/browser/sync_file_system/local/canned_syncable_file_system.h"
#include "chrome/browser/sync_file_system/local/local_file_change_tracker.h"
#include "chrome/browser/sync_file_system/local/sync_file_system_backend.h"
#include "chrome/browser/sync_file_system/sync_file_metadata.h"
#include "chrome/browser/sync_file_system/sync_status_code.h"
#include "chrome/browser/sync_file_system/syncable_file_system_util.h"
#include "components/services/storage/public/cpp/buckets/bucket_info.h"
#include "components/services/storage/public/cpp/buckets/constants.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/test/browser_task_environment.h"
#include "storage/browser/blob/scoped_file.h"
#include "storage/browser/file_system/file_system_context.h"
#include "storage/browser/file_system/file_system_operation_runner.h"
#include "storage/browser/file_system/isolated_context.h"
#include "storage/browser/quota/quota_manager.h"
#include "storage/browser/quota/quota_manager_proxy.h"
#include "storage/browser/test/mock_blob_util.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/common/storage_key/storage_key.h"
#include "third_party/leveldatabase/leveldb_chrome.h"

#define FPL

FileSystemContext;
FileSystemURL;
FileSystemURLSet;

// This tests LocalFileSyncContext behavior in multi-thread /
// multi-file-system-context environment.
// Basic combined tests (single-thread / single-file-system-context)
// that involve LocalFileSyncContext are also in
// syncable_file_system_unittests.cc.

namespace sync_file_system {

namespace {
const char kOrigin1[] =;
const char kOrigin2[] =;
}  // namespace

class LocalFileSyncContextTest : public testing::Test {};

TEST_F(LocalFileSyncContextTest, ConstructAndDestruct) {}

TEST_F(LocalFileSyncContextTest, InitializeFileSystemContext) {}

TEST_F(LocalFileSyncContextTest, CreateDefaultSyncableBucket) {}

TEST_F(LocalFileSyncContextTest, MultipleFileSystemContexts) {}

TEST_F(LocalFileSyncContextTest, PrepareSync_SyncSuccess_Exclusive) {}

TEST_F(LocalFileSyncContextTest, PrepareSync_SyncSuccess_Snapshot) {}

TEST_F(LocalFileSyncContextTest, PrepareSync_SyncFailure_Exclusive) {}

TEST_F(LocalFileSyncContextTest, PrepareSync_SyncFailure_Snapshot) {}

TEST_F(LocalFileSyncContextTest, PrepareSync_WriteDuringSync_Exclusive) {}

TEST_F(LocalFileSyncContextTest, PrepareSync_WriteDuringSync_Snapshot) {}

// LocalFileSyncContextTest.PrepareSyncWhileWriting is flaky on android.
// http://crbug.com/239793
// It is also flaky on the TSAN v2 bots, and hangs other bots.
// http://crbug.com/305905.
TEST_F(LocalFileSyncContextTest, DISABLED_PrepareSyncWhileWriting) {}

TEST_F(LocalFileSyncContextTest, ApplyRemoteChangeForDeletion) {}

TEST_F(LocalFileSyncContextTest, ApplyRemoteChangeForDeletion_ForRoot) {}

TEST_F(LocalFileSyncContextTest, ApplyRemoteChangeForAddOrUpdate) {}

TEST_F(LocalFileSyncContextTest, ApplyRemoteChangeForAddOrUpdate_NoParent) {}

}  // namespace sync_file_system