| 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.
|
|
|