Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(547)

Unified Diff: content/browser/indexed_db/indexed_db_database_unittest.cc

Issue 2472213003: [IndexedDB] Refactoring to remove ref ptrs and host transaction ids. (Closed)
Patch Set: comments & rebase Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/indexed_db/indexed_db_database_unittest.cc
diff --git a/content/browser/indexed_db/indexed_db_database_unittest.cc b/content/browser/indexed_db/indexed_db_database_unittest.cc
index 6cb8f123d443361d74ba84a5e4a698dc751698d1..06b32713d2e51addb265d79a3bda361081444564 100644
--- a/content/browser/indexed_db/indexed_db_database_unittest.cc
+++ b/content/browser/indexed_db/indexed_db_database_unittest.cc
@@ -39,6 +39,9 @@ const int kFakeChildProcessId = 0;
namespace content {
class IndexedDBDatabaseTest : public ::testing::Test {
+ protected:
+ url::Origin fake_connection_origin_;
+
private:
TestBrowserThreadBundle thread_bundle_;
};
@@ -84,8 +87,8 @@ TEST_F(IndexedDBDatabaseTest, ConnectionLifecycle) {
const int64_t transaction_id1 = 1;
std::unique_ptr<IndexedDBPendingConnection> connection1(
base::MakeUnique<IndexedDBPendingConnection>(
- request1, callbacks1, kFakeChildProcessId, transaction_id1,
- IndexedDBDatabaseMetadata::DEFAULT_VERSION));
+ request1, callbacks1, kFakeChildProcessId, fake_connection_origin_,
+ transaction_id1, IndexedDBDatabaseMetadata::DEFAULT_VERSION));
db->OpenConnection(std::move(connection1));
EXPECT_FALSE(backing_store->HasOneRef()); // db, connection count > 0
@@ -96,8 +99,8 @@ TEST_F(IndexedDBDatabaseTest, ConnectionLifecycle) {
const int64_t transaction_id2 = 2;
std::unique_ptr<IndexedDBPendingConnection> connection2(
base::MakeUnique<IndexedDBPendingConnection>(
- request2, callbacks2, kFakeChildProcessId, transaction_id2,
- IndexedDBDatabaseMetadata::DEFAULT_VERSION));
+ request2, callbacks2, kFakeChildProcessId, fake_connection_origin_,
+ transaction_id2, IndexedDBDatabaseMetadata::DEFAULT_VERSION));
db->OpenConnection(std::move(connection2));
EXPECT_FALSE(backing_store->HasOneRef()); // local and connection
@@ -138,8 +141,8 @@ TEST_F(IndexedDBDatabaseTest, ForcedClose) {
const int64_t upgrade_transaction_id = 3;
std::unique_ptr<IndexedDBPendingConnection> connection(
base::MakeUnique<IndexedDBPendingConnection>(
- request, callbacks, kFakeChildProcessId, upgrade_transaction_id,
- IndexedDBDatabaseMetadata::DEFAULT_VERSION));
+ request, callbacks, kFakeChildProcessId, fake_connection_origin_,
+ upgrade_transaction_id, IndexedDBDatabaseMetadata::DEFAULT_VERSION));
database->OpenConnection(std::move(connection));
EXPECT_EQ(database.get(), request->connection()->database());
@@ -205,8 +208,8 @@ TEST_F(IndexedDBDatabaseTest, PendingDelete) {
const int64_t transaction_id1 = 1;
std::unique_ptr<IndexedDBPendingConnection> connection(
base::MakeUnique<IndexedDBPendingConnection>(
- request1, callbacks1, kFakeChildProcessId, transaction_id1,
- IndexedDBDatabaseMetadata::DEFAULT_VERSION));
+ request1, callbacks1, kFakeChildProcessId, fake_connection_origin_,
+ transaction_id1, IndexedDBDatabaseMetadata::DEFAULT_VERSION));
db->OpenConnection(std::move(connection));
EXPECT_EQ(db->ConnectionCount(), 1UL);
@@ -256,7 +259,7 @@ TEST_F(IndexedDBDatabaseTest, ConnectionRequestsNoLongerValid) {
std::unique_ptr<IndexedDBPendingConnection> connection(
base::MakeUnique<IndexedDBPendingConnection>(
request1, make_scoped_refptr(new MockIndexedDBDatabaseCallbacks()),
- kFakeChildProcessId, transaction_id1,
+ kFakeChildProcessId, fake_connection_origin_, transaction_id1,
IndexedDBDatabaseMetadata::DEFAULT_VERSION));
db->OpenConnection(std::move(connection));
}
@@ -292,7 +295,7 @@ TEST_F(IndexedDBDatabaseTest, ConnectionRequestsNoLongerValid) {
std::unique_ptr<IndexedDBPendingConnection> connection(
base::MakeUnique<IndexedDBPendingConnection>(
request4, make_scoped_refptr(new MockIndexedDBDatabaseCallbacks()),
- kFakeChildProcessId, transaction_id1,
+ kFakeChildProcessId, fake_connection_origin_, transaction_id1,
IndexedDBDatabaseMetadata::DEFAULT_VERSION));
db->OpenConnection(std::move(connection));
}
@@ -364,18 +367,18 @@ class IndexedDBDatabaseOperationTest : public testing::Test {
const int64_t transaction_id = 1;
std::unique_ptr<IndexedDBPendingConnection> connection(
base::MakeUnique<IndexedDBPendingConnection>(
- request_, callbacks_, kFakeChildProcessId, transaction_id,
- IndexedDBDatabaseMetadata::DEFAULT_VERSION));
+ request_, callbacks_, kFakeChildProcessId, fake_connection_origin_,
+ transaction_id, IndexedDBDatabaseMetadata::DEFAULT_VERSION));
db_->OpenConnection(std::move(connection));
EXPECT_EQ(IndexedDBDatabaseMetadata::NO_VERSION, db_->metadata().version);
- connection_ = base::MakeUnique<IndexedDBConnection>(db_, callbacks_);
- transaction_ = IndexedDBClassFactory::Get()->CreateIndexedDBTransaction(
- transaction_id, connection_->GetWeakPtr(),
- std::set<int64_t>() /*scope*/,
+ connection_ = base::MakeUnique<IndexedDBConnection>(
+ kFakeChildProcessId, fake_connection_origin_, db_, callbacks_);
+ transaction_ = connection_->CreateTransaction(
+ transaction_id, std::set<int64_t>() /*scope*/,
blink::WebIDBTransactionModeVersionChange,
new IndexedDBFakeBackingStore::FakeTransaction(commit_success_));
- db_->TransactionCreated(transaction_.get());
+ db_->TransactionCreated(transaction_);
// Add a dummy task which takes the place of the VersionChangeOperation
// which kicks off the upgrade. This ensures that the transaction has
@@ -390,8 +393,9 @@ class IndexedDBDatabaseOperationTest : public testing::Test {
scoped_refptr<IndexedDBDatabase> db_;
scoped_refptr<MockIndexedDBCallbacks> request_;
scoped_refptr<MockIndexedDBDatabaseCallbacks> callbacks_;
- scoped_refptr<IndexedDBTransaction> transaction_;
+ IndexedDBTransaction* transaction_;
std::unique_ptr<IndexedDBConnection> connection_;
+ url::Origin fake_connection_origin_;
leveldb::Status commit_success_;
@@ -405,11 +409,8 @@ class IndexedDBDatabaseOperationTest : public testing::Test {
TEST_F(IndexedDBDatabaseOperationTest, CreateObjectStore) {
EXPECT_EQ(0ULL, db_->metadata().object_stores.size());
const int64_t store_id = 1001;
- db_->CreateObjectStore(transaction_->id(),
- store_id,
- ASCIIToUTF16("store"),
- IndexedDBKeyPath(),
- false /*auto_increment*/);
+ db_->CreateObjectStore(transaction_, store_id, ASCIIToUTF16("store"),
+ IndexedDBKeyPath(), false /*auto_increment*/);
EXPECT_EQ(1ULL, db_->metadata().object_stores.size());
RunPostedTasks();
transaction_->Commit();
@@ -419,20 +420,12 @@ TEST_F(IndexedDBDatabaseOperationTest, CreateObjectStore) {
TEST_F(IndexedDBDatabaseOperationTest, CreateIndex) {
EXPECT_EQ(0ULL, db_->metadata().object_stores.size());
const int64_t store_id = 1001;
- db_->CreateObjectStore(transaction_->id(),
- store_id,
- ASCIIToUTF16("store"),
- IndexedDBKeyPath(),
- false /*auto_increment*/);
+ db_->CreateObjectStore(transaction_, store_id, ASCIIToUTF16("store"),
+ IndexedDBKeyPath(), false /*auto_increment*/);
EXPECT_EQ(1ULL, db_->metadata().object_stores.size());
const int64_t index_id = 2002;
- db_->CreateIndex(transaction_->id(),
- store_id,
- index_id,
- ASCIIToUTF16("index"),
- IndexedDBKeyPath(),
- false /*unique*/,
- false /*multi_entry*/);
+ db_->CreateIndex(transaction_, store_id, index_id, ASCIIToUTF16("index"),
+ IndexedDBKeyPath(), false /*unique*/, false /*multi_entry*/);
EXPECT_EQ(
1ULL,
db_->metadata().object_stores.find(store_id)->second.indexes.size());
@@ -451,6 +444,9 @@ class IndexedDBDatabaseOperationAbortTest
commit_success_ = leveldb::Status::NotFound("Bummer.");
}
+ protected:
+ url::Origin fake_connection_origin_;
+
private:
DISALLOW_COPY_AND_ASSIGN(IndexedDBDatabaseOperationAbortTest);
};
@@ -458,11 +454,8 @@ class IndexedDBDatabaseOperationAbortTest
TEST_F(IndexedDBDatabaseOperationAbortTest, CreateObjectStore) {
EXPECT_EQ(0ULL, db_->metadata().object_stores.size());
const int64_t store_id = 1001;
- db_->CreateObjectStore(transaction_->id(),
- store_id,
- ASCIIToUTF16("store"),
- IndexedDBKeyPath(),
- false /*auto_increment*/);
+ db_->CreateObjectStore(transaction_, store_id, ASCIIToUTF16("store"),
+ IndexedDBKeyPath(), false /*auto_increment*/);
EXPECT_EQ(1ULL, db_->metadata().object_stores.size());
RunPostedTasks();
transaction_->Commit();
@@ -472,20 +465,12 @@ TEST_F(IndexedDBDatabaseOperationAbortTest, CreateObjectStore) {
TEST_F(IndexedDBDatabaseOperationAbortTest, CreateIndex) {
EXPECT_EQ(0ULL, db_->metadata().object_stores.size());
const int64_t store_id = 1001;
- db_->CreateObjectStore(transaction_->id(),
- store_id,
- ASCIIToUTF16("store"),
- IndexedDBKeyPath(),
- false /*auto_increment*/);
+ db_->CreateObjectStore(transaction_, store_id, ASCIIToUTF16("store"),
+ IndexedDBKeyPath(), false /*auto_increment*/);
EXPECT_EQ(1ULL, db_->metadata().object_stores.size());
const int64_t index_id = 2002;
- db_->CreateIndex(transaction_->id(),
- store_id,
- index_id,
- ASCIIToUTF16("index"),
- IndexedDBKeyPath(),
- false /*unique*/,
- false /*multi_entry*/);
+ db_->CreateIndex(transaction_, store_id, index_id, ASCIIToUTF16("index"),
+ IndexedDBKeyPath(), false /*unique*/, false /*multi_entry*/);
EXPECT_EQ(
1ULL,
db_->metadata().object_stores.find(store_id)->second.indexes.size());
@@ -499,11 +484,8 @@ TEST_F(IndexedDBDatabaseOperationTest, CreatePutDelete) {
const int64_t store_id = 1001;
// Creation is synchronous.
- db_->CreateObjectStore(transaction_->id(),
- store_id,
- ASCIIToUTF16("store"),
- IndexedDBKeyPath(),
- false /*auto_increment*/);
+ db_->CreateObjectStore(transaction_, store_id, ASCIIToUTF16("store"),
+ IndexedDBKeyPath(), false /*auto_increment*/);
EXPECT_EQ(1ULL, db_->metadata().object_stores.size());
@@ -514,12 +496,11 @@ TEST_F(IndexedDBDatabaseOperationTest, CreatePutDelete) {
std::vector<IndexedDBDatabase::IndexKeys> index_keys;
scoped_refptr<MockIndexedDBCallbacks> request(
new MockIndexedDBCallbacks(false));
- db_->Put(transaction_->id(), store_id, &value, &handles, std::move(key),
+ db_->Put(transaction_, store_id, &value, &handles, std::move(key),
blink::WebIDBPutModeAddOnly, request, index_keys);
// Deletion is asynchronous.
- db_->DeleteObjectStore(transaction_->id(),
- store_id);
+ db_->DeleteObjectStore(transaction_, store_id);
EXPECT_EQ(1ULL, db_->metadata().object_stores.size());
// This will execute the Put then Delete.

Powered by Google App Engine
This is Rietveld 408576698