| 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 307cf5144444160be7458114faa91d1d4598713f..32320b81fb51e4b5c13f57bc127e39e6a186c9bf 100644
|
| --- a/content/browser/indexed_db/indexed_db_database_unittest.cc
|
| +++ b/content/browser/indexed_db/indexed_db_database_unittest.cc
|
| @@ -21,13 +21,79 @@
|
| #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 "testing/gmock/include/gmock/gmock.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| using base::ASCIIToUTF16;
|
|
|
| namespace {
|
| const int kFakeChildProcessId = 0;
|
| -}
|
| +
|
| +class MockIDBFactory : public content::IndexedDBFactory {
|
| + public:
|
| + MOCK_METHOD2(ReleaseDatabase,
|
| + void(const content::IndexedDBDatabase::Identifier& identifier,
|
| + bool forcedClose));
|
| + MOCK_METHOD4(GetDatabaseNames,
|
| + void(scoped_refptr<content::IndexedDBCallbacks> callbacks,
|
| + const GURL& origin_url,
|
| + const base::FilePath& data_directory,
|
| + net::URLRequestContext* request_context));
|
| + MOCK_METHOD5(Open,
|
| + void(const base::string16& name,
|
| + const content::IndexedDBPendingConnection& connection,
|
| + net::URLRequestContext* request_context,
|
| + const GURL& origin_url,
|
| + const base::FilePath& data_directory));
|
| + MOCK_METHOD5(DeleteDatabase,
|
| + void(const base::string16& name,
|
| + net::URLRequestContext* request_context,
|
| + scoped_refptr<content::IndexedDBCallbacks> callbacks,
|
| + const GURL& origin_url,
|
| + const base::FilePath& data_directory));
|
| + MOCK_METHOD1(HandleBackingStoreFailure, void(const GURL& origin_url));
|
| + MOCK_METHOD2(HandleBackingStoreCorruption,
|
| + void(const GURL& origin_url,
|
| + const content::IndexedDBDatabaseError& error));
|
| + // mock template gets confused and needs typedef to compile.
|
| + typedef std::pair<OriginDBMapIterator, OriginDBMapIterator> OriginDBs;
|
| + MOCK_CONST_METHOD1(GetOpenDatabasesForOrigin,
|
| + OriginDBs(const GURL& origin_url));
|
| + MOCK_METHOD1(ForceClose, void(const GURL& origin_url));
|
| + MOCK_METHOD0(ContextDestroyed, void());
|
| + MOCK_METHOD1(DatabaseDeleted,
|
| + void(const content::IndexedDBDatabase::Identifier& identifier));
|
| + MOCK_CONST_METHOD1(GetConnectionCount, size_t(const GURL& origin_url));
|
| + MOCK_METHOD2(ReportOutstandingBlobs,
|
| + void(const GURL& origin_url, bool blobs_outstanding));
|
| +
|
| + protected:
|
| + virtual ~MockIDBFactory() {}
|
| +
|
| + MOCK_METHOD6(OpenBackingStore,
|
| + scoped_refptr<content::IndexedDBBackingStore>(
|
| + const GURL& origin_url,
|
| + const base::FilePath& data_directory,
|
| + net::URLRequestContext* request_context,
|
| + blink::WebIDBDataLoss* data_loss,
|
| + std::string* data_loss_reason,
|
| + bool* disk_full));
|
| +
|
| + MOCK_METHOD7(OpenBackingStoreHelper,
|
| + scoped_refptr<content::IndexedDBBackingStore>(
|
| + const GURL& origin_url,
|
| + const base::FilePath& data_directory,
|
| + net::URLRequestContext* request_context,
|
| + blink::WebIDBDataLoss* data_loss,
|
| + std::string* data_loss_message,
|
| + bool* disk_full,
|
| + bool first_time));
|
| +
|
| + private:
|
| + MOCK_CONST_METHOD1(IsBackingStoreOpen, bool(const GURL& origin_url));
|
| +};
|
| +
|
| +} // anonymous namespace
|
|
|
| namespace content {
|
|
|
| @@ -36,7 +102,7 @@ TEST(IndexedDBDatabaseTest, BackingStoreRetention) {
|
| new IndexedDBFakeBackingStore();
|
| EXPECT_TRUE(backing_store->HasOneRef());
|
|
|
| - IndexedDBFactory* factory = 0;
|
| + scoped_refptr<MockIDBFactory> factory = new MockIDBFactory();
|
| leveldb::Status s;
|
| scoped_refptr<IndexedDBDatabase> db =
|
| IndexedDBDatabase::Create(ASCIIToUTF16("db"),
|
| @@ -55,7 +121,7 @@ TEST(IndexedDBDatabaseTest, ConnectionLifecycle) {
|
| new IndexedDBFakeBackingStore();
|
| EXPECT_TRUE(backing_store->HasOneRef()); // local
|
|
|
| - IndexedDBFactory* factory = 0;
|
| + scoped_refptr<MockIDBFactory> factory = new MockIDBFactory();
|
| leveldb::Status s;
|
| scoped_refptr<IndexedDBDatabase> db =
|
| IndexedDBDatabase::Create(ASCIIToUTF16("db"),
|
| @@ -113,7 +179,7 @@ TEST(IndexedDBDatabaseTest, ForcedClose) {
|
| new IndexedDBFakeBackingStore();
|
| EXPECT_TRUE(backing_store->HasOneRef());
|
|
|
| - IndexedDBFactory* factory = 0;
|
| + scoped_refptr<MockIDBFactory> factory = new MockIDBFactory();
|
| leveldb::Status s;
|
| scoped_refptr<IndexedDBDatabase> database =
|
| IndexedDBDatabase::Create(ASCIIToUTF16("db"),
|
| @@ -179,7 +245,7 @@ TEST(IndexedDBDatabaseTest, PendingDelete) {
|
| new IndexedDBFakeBackingStore();
|
| EXPECT_TRUE(backing_store->HasOneRef()); // local
|
|
|
| - IndexedDBFactory* factory = 0;
|
| + scoped_refptr<MockIDBFactory> factory = new MockIDBFactory();
|
| leveldb::Status s;
|
| scoped_refptr<IndexedDBDatabase> db =
|
| IndexedDBDatabase::Create(ASCIIToUTF16("db"),
|
| @@ -222,14 +288,16 @@ void DummyOperation(IndexedDBTransaction* transaction) {
|
|
|
| class IndexedDBDatabaseOperationTest : public testing::Test {
|
| public:
|
| - IndexedDBDatabaseOperationTest() : commit_success_(leveldb::Status::OK()) {}
|
| + IndexedDBDatabaseOperationTest()
|
| + : commit_success_(leveldb::Status::OK()),
|
| + factory_(new MockIDBFactory()) {}
|
|
|
| virtual void SetUp() {
|
| backing_store_ = new IndexedDBFakeBackingStore();
|
| leveldb::Status s;
|
| db_ = IndexedDBDatabase::Create(ASCIIToUTF16("db"),
|
| backing_store_,
|
| - NULL /*factory*/,
|
| + factory_,
|
| IndexedDBDatabase::Identifier(),
|
| &s);
|
| ASSERT_TRUE(s.ok());
|
| @@ -274,6 +342,7 @@ class IndexedDBDatabaseOperationTest : public testing::Test {
|
|
|
| private:
|
| base::MessageLoop message_loop_;
|
| + scoped_refptr<MockIDBFactory> factory_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(IndexedDBDatabaseOperationTest);
|
| };
|
|
|