summaryrefslogtreecommitdiff
path: root/Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2013-09-13 12:51:20 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-19 20:50:05 +0200
commitd441d6f39bb846989d95bcf5caf387b42414718d (patch)
treee367e64a75991c554930278175d403c072de6bb8 /Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp
parent0060b2994c07842f4c59de64b5e3e430525c4b90 (diff)
downloadqtwebkit-d441d6f39bb846989d95bcf5caf387b42414718d.tar.gz
Import Qt5x2 branch of QtWebkit for Qt 5.2
Importing a new snapshot of webkit. Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp')
-rw-r--r--Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp202
1 files changed, 0 insertions, 202 deletions
diff --git a/Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp b/Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp
deleted file mode 100644
index 0eb7fae66..000000000
--- a/Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * Copyright (C) 2012 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "IDBBackingStore.h"
-#include "IDBCursorBackendInterface.h"
-#include "IDBDatabaseBackendImpl.h"
-#include "IDBDatabaseCallbacksProxy.h"
-#include "IDBFactoryBackendImpl.h"
-#include "IDBFakeBackingStore.h"
-#include "IDBIndexBackendImpl.h"
-#include "IDBObjectStoreBackendImpl.h"
-#include "WebIDBDatabaseCallbacksImpl.h"
-#include "WebIDBDatabaseImpl.h"
-
-#include <gtest/gtest.h>
-
-#if ENABLE(INDEXED_DATABASE)
-
-using namespace WebCore;
-using WebKit::IDBDatabaseCallbacksProxy;
-using WebKit::WebIDBDatabase;
-using WebKit::WebIDBDatabaseImpl;
-using WebKit::WebIDBDatabaseCallbacksImpl;
-
-namespace {
-
-TEST(IDBDatabaseBackendTest, BackingStoreRetention)
-{
- RefPtr<IDBFakeBackingStore> backingStore = adoptRef(new IDBFakeBackingStore());
- EXPECT_TRUE(backingStore->hasOneRef());
-
- IDBFactoryBackendImpl* factory = 0;
- RefPtr<IDBDatabaseBackendImpl> db = IDBDatabaseBackendImpl::create("db", backingStore.get(), factory, "uniqueid");
- EXPECT_GT(backingStore->refCount(), 1);
-
- const bool autoIncrement = false;
- RefPtr<IDBObjectStoreBackendImpl> store = IDBObjectStoreBackendImpl::create(db.get(), IDBObjectStoreMetadata("store", 1, IDBKeyPath("keyPath"), autoIncrement, 0));
- EXPECT_GT(backingStore->refCount(), 1);
-
- const bool unique = false;
- const bool multiEntry = false;
- RefPtr<IDBIndexBackendImpl> index = IDBIndexBackendImpl::create(db.get(), store.get(), IDBIndexMetadata("index", -1, IDBKeyPath("keyPath"), unique, multiEntry));
- EXPECT_GT(backingStore->refCount(), 1);
-
- db.clear();
- EXPECT_TRUE(backingStore->hasOneRef());
- store.clear();
- EXPECT_TRUE(backingStore->hasOneRef());
- index.clear();
- EXPECT_TRUE(backingStore->hasOneRef());
-}
-
-class MockIDBCallbacks : public IDBCallbacks {
-public:
- static PassRefPtr<MockIDBCallbacks> create() { return adoptRef(new MockIDBCallbacks()); }
- virtual ~MockIDBCallbacks()
- {
- EXPECT_TRUE(m_wasSuccessDBCalled);
- }
- virtual void onError(PassRefPtr<IDBDatabaseError>) OVERRIDE { }
- virtual void onSuccess(PassRefPtr<DOMStringList>) OVERRIDE { }
- virtual void onSuccess(PassRefPtr<IDBCursorBackendInterface>, PassRefPtr<IDBKey>, PassRefPtr<IDBKey>, PassRefPtr<SerializedScriptValue>) OVERRIDE { }
- virtual void onSuccess(PassRefPtr<IDBDatabaseBackendInterface>) OVERRIDE
- {
- m_wasSuccessDBCalled = true;
- }
- virtual void onSuccess(PassRefPtr<IDBKey>) OVERRIDE { }
- virtual void onSuccess(PassRefPtr<SerializedScriptValue>) OVERRIDE { }
- virtual void onSuccess(PassRefPtr<SerializedScriptValue>, PassRefPtr<IDBKey>, const IDBKeyPath&) OVERRIDE { };
- virtual void onSuccess(int64_t) OVERRIDE { }
- virtual void onSuccess() OVERRIDE { }
- virtual void onSuccess(PassRefPtr<IDBKey>, PassRefPtr<IDBKey>, PassRefPtr<SerializedScriptValue>) OVERRIDE { };
- virtual void onSuccessWithPrefetch(const Vector<RefPtr<IDBKey> >&, const Vector<RefPtr<IDBKey> >&, const Vector<RefPtr<SerializedScriptValue> >&) OVERRIDE { }
- virtual void onBlocked() OVERRIDE { }
-private:
- MockIDBCallbacks()
- : m_wasSuccessDBCalled(false) { }
- bool m_wasSuccessDBCalled;
-};
-
-class FakeIDBDatabaseCallbacks : public IDBDatabaseCallbacks {
-public:
- static PassRefPtr<FakeIDBDatabaseCallbacks> create() { return adoptRef(new FakeIDBDatabaseCallbacks()); }
- virtual ~FakeIDBDatabaseCallbacks() { }
- virtual void onVersionChange(const String& version) OVERRIDE { }
- virtual void onVersionChange(int64_t oldVersion, int64_t newVersion) OVERRIDE { }
- virtual void onForcedClose() OVERRIDE { }
-private:
- FakeIDBDatabaseCallbacks() { }
-};
-
-TEST(IDBDatabaseBackendTest, ConnectionLifecycle)
-{
- RefPtr<IDBFakeBackingStore> backingStore = adoptRef(new IDBFakeBackingStore());
- EXPECT_TRUE(backingStore->hasOneRef());
-
- IDBFactoryBackendImpl* factory = 0;
- RefPtr<IDBDatabaseBackendImpl> db = IDBDatabaseBackendImpl::create("db", backingStore.get(), factory, "uniqueid");
- EXPECT_GT(backingStore->refCount(), 1);
-
- RefPtr<MockIDBCallbacks> request1 = MockIDBCallbacks::create();
- RefPtr<FakeIDBDatabaseCallbacks> connection1 = FakeIDBDatabaseCallbacks::create();
- db->openConnectionWithVersion(request1, connection1, IDBDatabaseMetadata::NoIntVersion);
-
- RefPtr<MockIDBCallbacks> request2 = MockIDBCallbacks::create();
- RefPtr<FakeIDBDatabaseCallbacks> connection2 = FakeIDBDatabaseCallbacks::create();
- db->openConnectionWithVersion(request2, connection2, IDBDatabaseMetadata::NoIntVersion);
-
- db->close(connection1);
- EXPECT_GT(backingStore->refCount(), 1);
-
- db->close(connection2);
- EXPECT_TRUE(backingStore->hasOneRef());
-}
-
-class MockIDBDatabaseBackendProxy : public IDBDatabaseBackendInterface {
-public:
- static PassRefPtr<MockIDBDatabaseBackendProxy> create(WebIDBDatabaseImpl& database)
- {
- return adoptRef(new MockIDBDatabaseBackendProxy(database));
- }
-
- ~MockIDBDatabaseBackendProxy()
- {
- EXPECT_TRUE(m_wasCloseCalled);
- }
-
- virtual IDBDatabaseMetadata metadata() const { return IDBDatabaseMetadata(); }
- virtual PassRefPtr<IDBObjectStoreBackendInterface> createObjectStore(int64_t, const String& name, const IDBKeyPath&, bool autoIncrement, IDBTransactionBackendInterface*, ExceptionCode&) { return 0; }
- virtual void deleteObjectStore(const String& name, IDBTransactionBackendInterface*, ExceptionCode&) { }
- virtual void deleteObjectStore(int64_t, IDBTransactionBackendInterface*, ExceptionCode&) { }
- // FIXME: Remove this as part of https://bugs.webkit.org/show_bug.cgi?id=102733.
- virtual PassRefPtr<IDBTransactionBackendInterface> transaction(const Vector<int64_t>&, unsigned short mode) { return 0; }
- virtual PassRefPtr<IDBTransactionBackendInterface> createTransaction(int64_t, const Vector<int64_t>&, unsigned short mode) { return 0; }
-
- virtual void close(PassRefPtr<IDBDatabaseCallbacks>)
- {
- m_wasCloseCalled = true;
- m_webDatabase.close();
- }
-
-private:
- MockIDBDatabaseBackendProxy(WebIDBDatabaseImpl& webDatabase)
- : m_wasCloseCalled(false)
- , m_webDatabase(webDatabase) { }
-
- bool m_wasCloseCalled;
-
- WebIDBDatabaseImpl& m_webDatabase;
-};
-
-TEST(IDBDatabaseBackendTest, ForcedClose)
-{
- RefPtr<IDBFakeBackingStore> backingStore = adoptRef(new IDBFakeBackingStore());
- EXPECT_TRUE(backingStore->hasOneRef());
-
- IDBFactoryBackendImpl* factory = 0;
- RefPtr<IDBDatabaseBackendImpl> backend = IDBDatabaseBackendImpl::create("db", backingStore.get(), factory, "uniqueid");
- EXPECT_GT(backingStore->refCount(), 1);
-
- RefPtr<FakeIDBDatabaseCallbacks> connection = FakeIDBDatabaseCallbacks::create();
- RefPtr<IDBDatabaseCallbacksProxy> connectionProxy = IDBDatabaseCallbacksProxy::create(adoptPtr(new WebIDBDatabaseCallbacksImpl(connection)));
- WebIDBDatabaseImpl webDatabase(backend, connectionProxy);
-
- RefPtr<MockIDBDatabaseBackendProxy> proxy = MockIDBDatabaseBackendProxy::create(webDatabase);
- RefPtr<MockIDBCallbacks> request = MockIDBCallbacks::create();
- backend->openConnectionWithVersion(request, connectionProxy, IDBDatabaseMetadata::NoIntVersion);
-
- ScriptExecutionContext* context = 0;
- RefPtr<IDBDatabase> idbDatabase = IDBDatabase::create(context, proxy, connection);
-
- webDatabase.forceClose();
-
- EXPECT_TRUE(backingStore->hasOneRef());
-}
-
-} // namespace
-
-#endif // ENABLE(INDEXED_DATABASE)