#include "content/browser/indexed_db/indexed_db_transaction.h"
#include <stdint.h>
#include <memory>
#include "base/files/scoped_temp_dir.h"
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"
#include "base/memory/scoped_refptr.h"
#include "base/run_loop.h"
#include "base/task/sequenced_task_runner.h"
#include "base/task/single_thread_task_runner.h"
#include "base/test/task_environment.h"
#include "base/test/test_future.h"
#include "components/services/storage/indexed_db/locks/partitioned_lock_manager.h"
#include "content/browser/indexed_db/indexed_db_bucket_context.h"
#include "content/browser/indexed_db/indexed_db_connection.h"
#include "content/browser/indexed_db/indexed_db_database_callbacks.h"
#include "content/browser/indexed_db/indexed_db_database_error.h"
#include "content/browser/indexed_db/indexed_db_fake_backing_store.h"
#include "content/browser/indexed_db/indexed_db_leveldb_coding.h"
#include "storage/browser/quota/quota_manager_proxy.h"
#include "storage/browser/test/mock_quota_manager.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/mojom/indexeddb/indexeddb.mojom.h"
namespace content {
namespace {
void SetToTrue(bool* value) { … }
}
class AbortObserver { … };
class IndexedDBTransactionTest : public testing::Test { … };
class IndexedDBTransactionTestMode
: public IndexedDBTransactionTest,
public testing::WithParamInterface<blink::mojom::IDBTransactionMode> { … };
TEST_F(IndexedDBTransactionTest, Timeout) { … }
TEST_F(IndexedDBTransactionTest, TimeoutPreemptive) { … }
TEST_P(IndexedDBTransactionTestMode, ScheduleNormalTask) { … }
TEST_P(IndexedDBTransactionTestMode, TaskFails) { … }
TEST_F(IndexedDBTransactionTest, SchedulePreemptiveTask) { … }
TEST_P(IndexedDBTransactionTestMode, AbortTasks) { … }
TEST_P(IndexedDBTransactionTestMode, AbortPreemptive) { … }
static const blink::mojom::IDBTransactionMode kTestModes[] = …;
INSTANTIATE_TEST_SUITE_P(…);
TEST_F(IndexedDBTransactionTest, AbortCancelsLockRequest) { … }
TEST_F(IndexedDBTransactionTest, PostedStartTaskRunAfterAbort) { … }
TEST_F(IndexedDBTransactionTest, IsTransactionBlockingOtherClients) { … }
}