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

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

Issue 1963293002: Replacing Indexed DB Chromium IPC with Mojo Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Refactoring after Passing URLRequestContextGetter. Created 4 years, 4 months 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 f9a0183ee577078e112a039c7704362a9741d4d0..e84d33113e83e2f6d718708eab19e58ec4b0db17 100644
--- a/content/browser/indexed_db/indexed_db_database_unittest.cc
+++ b/content/browser/indexed_db/indexed_db_database_unittest.cc
@@ -5,6 +5,7 @@
#include "content/browser/indexed_db/indexed_db_database.h"
#include <stdint.h>
+#include <memory>
#include <set>
#include <utility>
@@ -17,16 +18,20 @@
#include "base/strings/utf_string_conversions.h"
#include "content/browser/indexed_db/indexed_db.h"
#include "content/browser/indexed_db/indexed_db_backing_store.h"
-#include "content/browser/indexed_db/indexed_db_callbacks.h"
+#include "content/browser/indexed_db/indexed_db_change_handler.h"
#include "content/browser/indexed_db/indexed_db_class_factory.h"
#include "content/browser/indexed_db/indexed_db_connection.h"
#include "content/browser/indexed_db/indexed_db_cursor.h"
#include "content/browser/indexed_db/indexed_db_fake_backing_store.h"
+#include "content/browser/indexed_db/indexed_db_open_request_observer.h"
+#include "content/browser/indexed_db/indexed_db_pending_connection.h"
+#include "content/browser/indexed_db/indexed_db_pending_delete.h"
#include "content/browser/indexed_db/indexed_db_transaction.h"
#include "content/browser/indexed_db/indexed_db_value.h"
-#include "content/browser/indexed_db/mock_indexed_db_callbacks.h"
-#include "content/browser/indexed_db/mock_indexed_db_database_callbacks.h"
+#include "content/browser/indexed_db/mock_callback_factory.h"
+#include "content/browser/indexed_db/mock_indexed_db_change_handler.h"
#include "content/browser/indexed_db/mock_indexed_db_factory.h"
+#include "content/browser/indexed_db/mock_indexed_db_open_request_observer.h"
#include "testing/gtest/include/gtest/gtest.h"
using base::ASCIIToUTF16;
@@ -72,37 +77,45 @@ TEST(IndexedDBDatabaseTest, ConnectionLifecycle) {
ASSERT_TRUE(s.ok());
EXPECT_FALSE(backing_store->HasOneRef()); // local and db
- scoped_refptr<MockIndexedDBCallbacks> request1(new MockIndexedDBCallbacks());
- scoped_refptr<MockIndexedDBDatabaseCallbacks> callbacks1(
- new MockIndexedDBDatabaseCallbacks());
+ MockCallbackFactory callback_factory1;
+ scoped_refptr<MockIndexedDBChangeHandler> change_handler1(
+ new MockIndexedDBChangeHandler());
const int64_t transaction_id1 = 1;
+ scoped_refptr<MockIndexedDBOpenRequestObserver> open_observer1 =
+ new MockIndexedDBOpenRequestObserver();
+ // TODO(cmumford): No idea if I can use an empty origin.
+ const url::Origin origin;
std::unique_ptr<IndexedDBPendingConnection> connection1(
base::MakeUnique<IndexedDBPendingConnection>(
- request1, callbacks1, kFakeChildProcessId, transaction_id1,
- IndexedDBDatabaseMetadata::DEFAULT_VERSION));
+ callback_factory1.CreateOpenCallback(), change_handler1,
+ open_observer1, kFakeChildProcessId, transaction_id1,
+ IndexedDBDatabaseMetadata::DEFAULT_VERSION, origin));
db->OpenConnection(std::move(connection1));
EXPECT_FALSE(backing_store->HasOneRef()); // db, connection count > 0
- scoped_refptr<MockIndexedDBCallbacks> request2(new MockIndexedDBCallbacks());
- scoped_refptr<MockIndexedDBDatabaseCallbacks> callbacks2(
- new MockIndexedDBDatabaseCallbacks());
+ scoped_refptr<MockIndexedDBOpenRequestObserver> open_observer2 =
+ new MockIndexedDBOpenRequestObserver();
+ scoped_refptr<MockIndexedDBChangeHandler> change_handler2(
+ new MockIndexedDBChangeHandler());
const int64_t transaction_id2 = 2;
+ MockCallbackFactory callback_factory2;
std::unique_ptr<IndexedDBPendingConnection> connection2(
base::MakeUnique<IndexedDBPendingConnection>(
- request2, callbacks2, kFakeChildProcessId, transaction_id2,
- IndexedDBDatabaseMetadata::DEFAULT_VERSION));
+ callback_factory2.CreateOpenCallback(), change_handler2,
+ open_observer2, kFakeChildProcessId, transaction_id2,
+ IndexedDBDatabaseMetadata::DEFAULT_VERSION, origin));
db->OpenConnection(std::move(connection2));
EXPECT_FALSE(backing_store->HasOneRef()); // local and connection
- request1->connection()->ForceClose();
- EXPECT_FALSE(request1->connection()->IsConnected());
+ callback_factory1.connection()->ForceClose();
+ EXPECT_FALSE(callback_factory1.connection()->IsConnected());
EXPECT_FALSE(backing_store->HasOneRef()); // local and connection
- request2->connection()->ForceClose();
- EXPECT_FALSE(request2->connection()->IsConnected());
+ callback_factory2.connection()->ForceClose();
+ EXPECT_FALSE(callback_factory2.connection()->IsConnected());
EXPECT_TRUE(backing_store->HasOneRef());
EXPECT_FALSE(db->backing_store());
@@ -126,52 +139,33 @@ TEST(IndexedDBDatabaseTest, ForcedClose) {
ASSERT_TRUE(s.ok());
EXPECT_FALSE(backing_store->HasOneRef()); // local and db
- scoped_refptr<MockIndexedDBDatabaseCallbacks> callbacks(
- new MockIndexedDBDatabaseCallbacks());
- scoped_refptr<MockIndexedDBCallbacks> request(new MockIndexedDBCallbacks());
+ scoped_refptr<MockIndexedDBChangeHandler> change_handler(
+ new MockIndexedDBChangeHandler());
+ MockCallbackFactory callback_factory;
const int64_t upgrade_transaction_id = 3;
+ // TODO(cmumford): No idea if I can use an empty origin.
+ const url::Origin test_origin;
+ scoped_refptr<MockIndexedDBOpenRequestObserver> open_observer =
+ new MockIndexedDBOpenRequestObserver();
std::unique_ptr<IndexedDBPendingConnection> connection(
base::MakeUnique<IndexedDBPendingConnection>(
- request, callbacks, kFakeChildProcessId, upgrade_transaction_id,
- IndexedDBDatabaseMetadata::DEFAULT_VERSION));
+ callback_factory.CreateOpenCallback(), change_handler, open_observer,
+ kFakeChildProcessId, upgrade_transaction_id,
+ IndexedDBDatabaseMetadata::DEFAULT_VERSION, test_origin));
database->OpenConnection(std::move(connection));
- EXPECT_EQ(database.get(), request->connection()->database());
+ EXPECT_EQ(database.get(), callback_factory.connection()->database());
const int64_t transaction_id = 123;
const std::vector<int64_t> scope;
- database->CreateTransaction(transaction_id,
- request->connection(),
- scope,
- blink::WebIDBTransactionModeReadOnly);
+ database->CreateTransaction(transaction_id, callback_factory.connection(),
+ scope, blink::WebIDBTransactionModeReadOnly);
- request->connection()->ForceClose();
+ callback_factory.connection()->ForceClose();
EXPECT_TRUE(backing_store->HasOneRef()); // local
- EXPECT_TRUE(callbacks->abort_called());
+ EXPECT_TRUE(change_handler->abort_called());
}
-class MockDeleteCallbacks : public IndexedDBCallbacks {
- public:
- MockDeleteCallbacks()
- : IndexedDBCallbacks(NULL, 0, 0),
- blocked_called_(false),
- success_called_(false) {}
-
- void OnBlocked(int64_t existing_version) override { blocked_called_ = true; }
- void OnSuccess(int64_t result) override { success_called_ = true; }
-
- bool blocked_called() const { return blocked_called_; }
- bool success_called() const { return success_called_; }
-
- private:
- ~MockDeleteCallbacks() override {}
-
- bool blocked_called_;
- bool success_called_;
-
- DISALLOW_COPY_AND_ASSIGN(MockDeleteCallbacks);
-};
-
TEST(IndexedDBDatabaseTest, PendingDelete) {
scoped_refptr<IndexedDBFakeBackingStore> backing_store =
new IndexedDBFakeBackingStore();
@@ -188,14 +182,19 @@ TEST(IndexedDBDatabaseTest, PendingDelete) {
ASSERT_TRUE(s.ok());
EXPECT_FALSE(backing_store->HasOneRef()); // local and db
- scoped_refptr<MockIndexedDBCallbacks> request1(new MockIndexedDBCallbacks());
- scoped_refptr<MockIndexedDBDatabaseCallbacks> callbacks1(
- new MockIndexedDBDatabaseCallbacks());
+ MockCallbackFactory callback_factory;
+ scoped_refptr<MockIndexedDBOpenRequestObserver> open_observer1 =
+ new MockIndexedDBOpenRequestObserver();
+ scoped_refptr<MockIndexedDBChangeHandler> open_change_handler(
+ new MockIndexedDBChangeHandler());
const int64_t transaction_id1 = 1;
+ // TODO(cmumford): No idea if I can use an empty origin.
+ const url::Origin test_origin;
std::unique_ptr<IndexedDBPendingConnection> connection(
base::MakeUnique<IndexedDBPendingConnection>(
- request1, callbacks1, kFakeChildProcessId, transaction_id1,
- IndexedDBDatabaseMetadata::DEFAULT_VERSION));
+ callback_factory.CreateOpenCallback(), open_change_handler,
+ open_observer1, kFakeChildProcessId, transaction_id1,
+ IndexedDBDatabaseMetadata::DEFAULT_VERSION, test_origin));
db->OpenConnection(std::move(connection));
EXPECT_EQ(db->ConnectionCount(), 1UL);
@@ -203,31 +202,38 @@ TEST(IndexedDBDatabaseTest, PendingDelete) {
EXPECT_EQ(db->PendingOpenDeleteCount(), 0UL);
EXPECT_FALSE(backing_store->HasOneRef()); // local and db
- scoped_refptr<MockDeleteCallbacks> request2(new MockDeleteCallbacks());
- db->DeleteDatabase(request2);
+ scoped_refptr<MockIndexedDBOpenRequestObserver> delete_observer =
+ new MockIndexedDBOpenRequestObserver();
+ scoped_refptr<MockIndexedDBChangeHandler> delete_change_handler(
+ new MockIndexedDBChangeHandler());
+ std::unique_ptr<IndexedDBPendingDelete> pending_delete(
+ new IndexedDBPendingDelete(callback_factory.CreateDeleteCallback(),
+ delete_change_handler, delete_observer));
+ db->DeleteDatabase(std::move(pending_delete));
EXPECT_EQ(db->ConnectionCount(), 1UL);
EXPECT_EQ(db->ActiveOpenDeleteCount(), 1UL);
EXPECT_EQ(db->PendingOpenDeleteCount(), 0UL);
- EXPECT_FALSE(request2->blocked_called());
+ EXPECT_FALSE(delete_observer->blocked_called());
db->VersionChangeIgnored();
- EXPECT_TRUE(request2->blocked_called());
+ EXPECT_TRUE(delete_observer->blocked_called());
EXPECT_EQ(db->ConnectionCount(), 1UL);
EXPECT_EQ(db->ActiveOpenDeleteCount(), 1UL);
EXPECT_EQ(db->PendingOpenDeleteCount(), 0UL);
EXPECT_FALSE(backing_store->HasOneRef()); // local and db
- db->Close(request1->connection(), true /* forced */);
+ db->Close(callback_factory.connection(), true /* forced */);
EXPECT_EQ(db->ConnectionCount(), 0UL);
EXPECT_EQ(db->ActiveOpenDeleteCount(), 0UL);
EXPECT_EQ(db->PendingOpenDeleteCount(), 0UL);
EXPECT_FALSE(db->backing_store());
EXPECT_TRUE(backing_store->HasOneRef()); // local
- EXPECT_TRUE(request2->success_called());
+ EXPECT_TRUE(callback_factory.delete_result_called());
}
+#ifdef CJM_IMPLEMENT_PUT
void DummyOperation(IndexedDBTransaction* transaction) {
}
@@ -248,7 +254,8 @@ class IndexedDBDatabaseOperationTest : public testing::Test {
ASSERT_TRUE(s.ok());
request_ = new MockIndexedDBCallbacks();
- callbacks_ = new MockIndexedDBDatabaseCallbacks();
+ scoped_refptr<MockIndexedDBChangeHandler> change_handler(
+ new MockIndexedDBChangeHandler());
const int64_t transaction_id = 1;
std::unique_ptr<IndexedDBPendingConnection> connection(
base::MakeUnique<IndexedDBPendingConnection>(
@@ -277,7 +284,7 @@ class IndexedDBDatabaseOperationTest : public testing::Test {
scoped_refptr<IndexedDBFakeBackingStore> backing_store_;
scoped_refptr<IndexedDBDatabase> db_;
scoped_refptr<MockIndexedDBCallbacks> request_;
- scoped_refptr<MockIndexedDBDatabaseCallbacks> callbacks_;
+ scoped_refptr<MockIndexedDBChangeHandler> change_handler_;
scoped_refptr<IndexedDBTransaction> transaction_;
std::unique_ptr<IndexedDBConnection> connection_;
@@ -416,5 +423,6 @@ TEST_F(IndexedDBDatabaseOperationTest, CreatePutDelete) {
transaction_->Commit(); // Cleans up the object hierarchy.
}
+#endif
} // namespace content
« no previous file with comments | « content/browser/indexed_db/indexed_db_database_callbacks.cc ('k') | content/browser/indexed_db/indexed_db_dispatcher_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698