| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 44 using namespace WebCore; | 44 using namespace WebCore; |
| 45 using WebKit::IDBDatabaseCallbacksProxy; | 45 using WebKit::IDBDatabaseCallbacksProxy; |
| 46 using WebKit::WebIDBDatabase; | 46 using WebKit::WebIDBDatabase; |
| 47 using WebKit::WebIDBDatabaseImpl; | 47 using WebKit::WebIDBDatabaseImpl; |
| 48 using WebKit::WebIDBDatabaseCallbacksImpl; | 48 using WebKit::WebIDBDatabaseCallbacksImpl; |
| 49 | 49 |
| 50 namespace { | 50 namespace { |
| 51 | 51 |
| 52 TEST(IDBDatabaseBackendTest, BackingStoreRetention) | 52 TEST(IDBDatabaseBackendTest, BackingStoreRetention) |
| 53 { | 53 { |
| 54 RefPtr<IDBFakeBackingStore> backingStore = adoptRef(new IDBFakeBackingStore(
)); | 54 RefPtr<IDBFakeBackingStore> backingStore; |
| 55 EXPECT_TRUE(backingStore->hasOneRef()); | 55 { |
| 56 backingStore = adoptRef(new IDBFakeBackingStore()); |
| 57 EXPECT_TRUE(backingStore->hasOneRef()); |
| 56 | 58 |
| 57 IDBFactoryBackendImpl* factory = 0; | 59 IDBFactoryBackendImpl* factory = 0; |
| 58 RefPtr<IDBDatabaseBackendImpl> db = IDBDatabaseBackendImpl::create("db", bac
kingStore.get(), factory, "uniqueid"); | 60 IDBDatabaseBackendImpl::create("db", backingStore.get(), factory, "uniqu
eid"); |
| 59 EXPECT_GT(backingStore->refCount(), 1); | 61 EXPECT_GT(backingStore->refCount(), 1); |
| 60 | 62 } |
| 61 db.clear(); | 63 Heap::collectGarbage(ThreadState::NoHeapPointersOnStack); |
| 62 EXPECT_TRUE(backingStore->hasOneRef()); | 64 EXPECT_TRUE(backingStore->hasOneRef()); |
| 63 } | 65 } |
| 64 | 66 |
| 65 class MockIDBCallbacks : public IDBCallbacks { | 67 class MockIDBCallbacks : public IDBCallbacks { |
| 66 public: | 68 public: |
| 67 static PassRefPtr<MockIDBCallbacks> create() { return adoptRef(new MockIDBCa
llbacks()); } | 69 static PassRefPtr<MockIDBCallbacks> create() { return adoptRef(new MockIDBCa
llbacks()); } |
| 68 virtual ~MockIDBCallbacks() | 70 virtual ~MockIDBCallbacks() |
| 69 { | 71 { |
| 70 EXPECT_TRUE(m_wasSuccessDBCalled); | 72 EXPECT_TRUE(m_wasSuccessDBCalled); |
| 71 } | 73 } |
| 72 virtual void onError(PassRefPtr<IDBDatabaseError>) OVERRIDE { } | 74 virtual void onError(PassRefPtr<IDBDatabaseError>) OVERRIDE { } |
| 73 virtual void onSuccess(const Vector<String>&) OVERRIDE { } | 75 virtual void onSuccess(const Vector<String>&) OVERRIDE { } |
| 74 virtual void onSuccess(PassRefPtr<IDBCursorBackendInterface>, PassRefPtr<IDB
Key>, PassRefPtr<IDBKey>, PassRefPtr<SharedBuffer>) OVERRIDE { } | 76 virtual void onSuccess(PassRefPtr<IDBCursorBackendInterface>, PassRefPtr<IDB
Key>, PassRefPtr<IDBKey>, PassRefPtr<SharedBuffer>) OVERRIDE { } |
| 75 virtual void onSuccess(PassRefPtr<IDBDatabaseBackendInterface>, const IDBDat
abaseMetadata&) OVERRIDE | 77 virtual void onSuccess(IDBDatabaseBackendInterface*, const IDBDatabaseMetada
ta&) OVERRIDE |
| 76 { | 78 { |
| 77 m_wasSuccessDBCalled = true; | 79 m_wasSuccessDBCalled = true; |
| 78 } | 80 } |
| 79 virtual void onSuccess(PassRefPtr<IDBKey>) OVERRIDE { } | 81 virtual void onSuccess(PassRefPtr<IDBKey>) OVERRIDE { } |
| 80 virtual void onSuccess(PassRefPtr<SharedBuffer>) OVERRIDE { } | 82 virtual void onSuccess(PassRefPtr<SharedBuffer>) OVERRIDE { } |
| 81 virtual void onSuccess(PassRefPtr<SharedBuffer>, PassRefPtr<IDBKey>, const I
DBKeyPath&) OVERRIDE { }; | 83 virtual void onSuccess(PassRefPtr<SharedBuffer>, PassRefPtr<IDBKey>, const I
DBKeyPath&) OVERRIDE { }; |
| 82 virtual void onSuccess(int64_t) OVERRIDE { } | 84 virtual void onSuccess(int64_t) OVERRIDE { } |
| 83 virtual void onSuccess() OVERRIDE { } | 85 virtual void onSuccess() OVERRIDE { } |
| 84 virtual void onSuccess(PassRefPtr<IDBKey>, PassRefPtr<IDBKey>, PassRefPtr<Sh
aredBuffer>) OVERRIDE { }; | 86 virtual void onSuccess(PassRefPtr<IDBKey>, PassRefPtr<IDBKey>, PassRefPtr<Sh
aredBuffer>) OVERRIDE { }; |
| 85 virtual void onSuccessWithPrefetch(const Vector<RefPtr<IDBKey> >&, const Vec
tor<RefPtr<IDBKey> >&, const Vector<RefPtr<SharedBuffer> >&) OVERRIDE { } | 87 virtual void onSuccessWithPrefetch(const Vector<RefPtr<IDBKey> >&, const Vec
tor<RefPtr<IDBKey> >&, const Vector<RefPtr<SharedBuffer> >&) OVERRIDE { } |
| 86 private: | 88 private: |
| 87 MockIDBCallbacks() | 89 MockIDBCallbacks() |
| 88 : m_wasSuccessDBCalled(false) { } | 90 : m_wasSuccessDBCalled(false) { } |
| 89 bool m_wasSuccessDBCalled; | 91 bool m_wasSuccessDBCalled; |
| 90 }; | 92 }; |
| 91 | 93 |
| 92 class FakeIDBDatabaseCallbacks : public IDBDatabaseCallbacks { | 94 class FakeIDBDatabaseCallbacks : public IDBDatabaseCallbacks { |
| 93 public: | 95 public: |
| 94 static PassRefPtr<FakeIDBDatabaseCallbacks> create() { return adoptRef(new F
akeIDBDatabaseCallbacks()); } | 96 static FakeIDBDatabaseCallbacks* create() { return new FakeIDBDatabaseCallba
cks(); } |
| 95 virtual ~FakeIDBDatabaseCallbacks() { } | 97 virtual ~FakeIDBDatabaseCallbacks() { } |
| 96 virtual void onVersionChange(int64_t oldVersion, int64_t newVersion) OVERRID
E { } | 98 virtual void onVersionChange(int64_t oldVersion, int64_t newVersion) OVERRID
E { } |
| 97 virtual void onForcedClose() OVERRIDE { } | 99 virtual void onForcedClose() OVERRIDE { } |
| 98 virtual void onAbort(int64_t transactionId, PassRefPtr<IDBDatabaseError> err
or) OVERRIDE { } | 100 virtual void onAbort(int64_t transactionId, PassRefPtr<IDBDatabaseError> err
or) OVERRIDE { } |
| 99 virtual void onComplete(int64_t transactionId) OVERRIDE { } | 101 virtual void onComplete(int64_t transactionId) OVERRIDE { } |
| 102 virtual void trace(Visitor*) const OVERRIDE { } |
| 100 private: | 103 private: |
| 101 FakeIDBDatabaseCallbacks() { } | 104 FakeIDBDatabaseCallbacks() { } |
| 102 }; | 105 }; |
| 103 | 106 |
| 104 TEST(IDBDatabaseBackendTest, ConnectionLifecycle) | 107 TEST(IDBDatabaseBackendTest, ConnectionLifecycle) |
| 105 { | 108 { |
| 106 RefPtr<IDBFakeBackingStore> backingStore = adoptRef(new IDBFakeBackingStore(
)); | 109 RefPtr<IDBFakeBackingStore> backingStore = adoptRef(new IDBFakeBackingStore(
)); |
| 107 EXPECT_TRUE(backingStore->hasOneRef()); | 110 EXPECT_TRUE(backingStore->hasOneRef()); |
| 108 | 111 |
| 109 IDBFactoryBackendImpl* factory = 0; | 112 IDBFactoryBackendImpl* factory = 0; |
| 110 RefPtr<IDBDatabaseBackendImpl> db = IDBDatabaseBackendImpl::create("db", bac
kingStore.get(), factory, "uniqueid"); | 113 IDBDatabaseBackendImpl* db = IDBDatabaseBackendImpl::create("db", backingSto
re.get(), factory, "uniqueid"); |
| 111 EXPECT_GT(backingStore->refCount(), 1); | 114 EXPECT_GT(backingStore->refCount(), 1); |
| 112 | 115 |
| 113 RefPtr<MockIDBCallbacks> request1 = MockIDBCallbacks::create(); | 116 RefPtr<MockIDBCallbacks> request1 = MockIDBCallbacks::create(); |
| 114 RefPtr<FakeIDBDatabaseCallbacks> connection1 = FakeIDBDatabaseCallbacks::cre
ate(); | 117 FakeIDBDatabaseCallbacks* connection1 = FakeIDBDatabaseCallbacks::create(); |
| 115 db->openConnection(request1, connection1, 1, IDBDatabaseMetadata::DefaultInt
Version); | 118 db->openConnection(request1, connection1, 1, IDBDatabaseMetadata::DefaultInt
Version); |
| 116 | 119 |
| 117 RefPtr<MockIDBCallbacks> request2 = MockIDBCallbacks::create(); | 120 RefPtr<MockIDBCallbacks> request2 = MockIDBCallbacks::create(); |
| 118 RefPtr<FakeIDBDatabaseCallbacks> connection2 = FakeIDBDatabaseCallbacks::cre
ate(); | 121 FakeIDBDatabaseCallbacks* connection2 = FakeIDBDatabaseCallbacks::create(); |
| 119 db->openConnection(request2, connection2, 2, IDBDatabaseMetadata::DefaultInt
Version); | 122 db->openConnection(request2, connection2, 2, IDBDatabaseMetadata::DefaultInt
Version); |
| 120 | 123 |
| 121 db->close(connection1); | 124 db->close(connection1); |
| 122 EXPECT_GT(backingStore->refCount(), 1); | 125 EXPECT_GT(backingStore->refCount(), 1); |
| 123 | 126 |
| 124 db->close(connection2); | 127 db->close(connection2); |
| 125 EXPECT_TRUE(backingStore->hasOneRef()); | 128 EXPECT_TRUE(backingStore->hasOneRef()); |
| 126 } | 129 } |
| 127 | 130 |
| 128 class MockIDBDatabaseBackendProxy : public IDBDatabaseBackendInterface { | 131 class MockIDBDatabaseBackendProxy : public IDBDatabaseBackendInterface { |
| 129 public: | 132 public: |
| 130 static PassRefPtr<MockIDBDatabaseBackendProxy> create(WebIDBDatabaseImpl* da
tabase) | 133 static MockIDBDatabaseBackendProxy* create(WebIDBDatabaseImpl* database) |
| 131 { | 134 { |
| 132 return adoptRef(new MockIDBDatabaseBackendProxy(database)); | 135 return new MockIDBDatabaseBackendProxy(database); |
| 133 } | 136 } |
| 134 | 137 |
| 135 ~MockIDBDatabaseBackendProxy() | 138 ~MockIDBDatabaseBackendProxy() |
| 136 { | 139 { |
| 137 EXPECT_TRUE(m_wasCloseCalled); | 140 EXPECT_TRUE(m_wasCloseCalled); |
| 138 delete m_webDatabase; | 141 delete m_webDatabase; |
| 139 } | 142 } |
| 140 | 143 |
| 141 virtual IDBDatabaseMetadata metadata() const { return IDBDatabaseMetadata();
} | 144 virtual IDBDatabaseMetadata metadata() const { return IDBDatabaseMetadata();
} |
| 142 virtual void createObjectStore(int64_t transactionId, int64_t objectStoreId,
const String& name, const IDBKeyPath&, bool autoIncrement) OVERRIDE { }; | 145 virtual void createObjectStore(int64_t transactionId, int64_t objectStoreId,
const String& name, const IDBKeyPath&, bool autoIncrement) OVERRIDE { }; |
| 143 virtual void deleteObjectStore(int64_t transactionId, int64_t objectStoreId)
OVERRIDE { } | 146 virtual void deleteObjectStore(int64_t transactionId, int64_t objectStoreId)
OVERRIDE { } |
| 144 virtual void createTransaction(int64_t, PassRefPtr<IDBDatabaseCallbacks>, co
nst Vector<int64_t>&, unsigned short mode) OVERRIDE { } | 147 virtual void createTransaction(int64_t, IDBDatabaseCallbacks*, const Vector<
int64_t>&, unsigned short mode) OVERRIDE { } |
| 145 | 148 |
| 146 virtual void close(PassRefPtr<IDBDatabaseCallbacks>) OVERRIDE | 149 virtual void close(IDBDatabaseCallbacks*) OVERRIDE |
| 147 { | 150 { |
| 148 m_wasCloseCalled = true; | 151 m_wasCloseCalled = true; |
| 149 m_webDatabase->close(); | 152 m_webDatabase->close(); |
| 150 } | 153 } |
| 151 | 154 |
| 152 virtual void abort(int64_t transactionId) OVERRIDE { } | 155 virtual void abort(int64_t transactionId) OVERRIDE { } |
| 153 virtual void abort(int64_t transactionId, PassRefPtr<IDBDatabaseError>) OVER
RIDE { } | 156 virtual void abort(int64_t transactionId, PassRefPtr<IDBDatabaseError>) OVER
RIDE { } |
| 154 virtual void commit(int64_t transactionId) OVERRIDE { } | 157 virtual void commit(int64_t transactionId) OVERRIDE { } |
| 155 | 158 |
| 156 virtual void openCursor(int64_t transactionId, int64_t objectStoreId, int64_
t indexId, PassRefPtr<IDBKeyRange>, IndexedDB::CursorDirection, bool keyOnly, Ta
skType, PassRefPtr<IDBCallbacks>) OVERRIDE { } | 159 virtual void openCursor(int64_t transactionId, int64_t objectStoreId, int64_
t indexId, PassRefPtr<IDBKeyRange>, IndexedDB::CursorDirection, bool keyOnly, Ta
skType, PassRefPtr<IDBCallbacks>) OVERRIDE { } |
| 157 virtual void count(int64_t objectStoreId, int64_t indexId, int64_t transacti
onId, PassRefPtr<IDBKeyRange>, PassRefPtr<IDBCallbacks>) OVERRIDE { } | 160 virtual void count(int64_t objectStoreId, int64_t indexId, int64_t transacti
onId, PassRefPtr<IDBKeyRange>, PassRefPtr<IDBCallbacks>) OVERRIDE { } |
| 158 virtual void get(int64_t objectStoreId, int64_t indexId, int64_t transaction
Id, PassRefPtr<IDBKeyRange>, bool keyOnly, PassRefPtr<IDBCallbacks>) OVERRIDE {
} | 161 virtual void get(int64_t objectStoreId, int64_t indexId, int64_t transaction
Id, PassRefPtr<IDBKeyRange>, bool keyOnly, PassRefPtr<IDBCallbacks>) OVERRIDE {
} |
| 159 virtual void put(int64_t transactionId, int64_t objectStoreId, PassRefPtr<Sh
aredBuffer>, PassRefPtr<IDBKey>, PutMode, PassRefPtr<IDBCallbacks>, const Vector
<int64_t>& indexIds, const Vector<IndexKeys>&) OVERRIDE { } | 162 virtual void put(int64_t transactionId, int64_t objectStoreId, PassRefPtr<Sh
aredBuffer>, PassRefPtr<IDBKey>, PutMode, PassRefPtr<IDBCallbacks>, const Vector
<int64_t>& indexIds, const Vector<IndexKeys>&) OVERRIDE { } |
| 160 virtual void setIndexKeys(int64_t transactionId, int64_t objectStoreId, Pass
RefPtr<IDBKey> prpPrimaryKey, const Vector<int64_t>& indexIds, const Vector<Inde
xKeys>&) OVERRIDE { } | 163 virtual void setIndexKeys(int64_t transactionId, int64_t objectStoreId, Pass
RefPtr<IDBKey> prpPrimaryKey, const Vector<int64_t>& indexIds, const Vector<Inde
xKeys>&) OVERRIDE { } |
| 161 virtual void setIndexesReady(int64_t transactionId, int64_t objectStoreId, c
onst Vector<int64_t>& indexIds) OVERRIDE { } | 164 virtual void setIndexesReady(int64_t transactionId, int64_t objectStoreId, c
onst Vector<int64_t>& indexIds) OVERRIDE { } |
| 162 virtual void deleteRange(int64_t transactionId, int64_t objectStoreId, PassR
efPtr<IDBKeyRange>, PassRefPtr<IDBCallbacks>) OVERRIDE { } | 165 virtual void deleteRange(int64_t transactionId, int64_t objectStoreId, PassR
efPtr<IDBKeyRange>, PassRefPtr<IDBCallbacks>) OVERRIDE { } |
| 163 virtual void clear(int64_t transactionId, int64_t objectStoreId, PassRefPtr<
IDBCallbacks>) OVERRIDE { } | 166 virtual void clear(int64_t transactionId, int64_t objectStoreId, PassRefPtr<
IDBCallbacks>) OVERRIDE { } |
| 164 | 167 |
| 165 virtual void createIndex(int64_t transactionId, int64_t objectStoreId, int64
_t indexId, const String& name, const IDBKeyPath&, bool unique, bool multiEntry)
OVERRIDE { ASSERT_NOT_REACHED(); } | 168 virtual void createIndex(int64_t transactionId, int64_t objectStoreId, int64
_t indexId, const String& name, const IDBKeyPath&, bool unique, bool multiEntry)
OVERRIDE { ASSERT_NOT_REACHED(); } |
| 166 virtual void deleteIndex(int64_t transactionId, int64_t objectStoreId, int64
_t indexId) OVERRIDE { ASSERT_NOT_REACHED(); } | 169 virtual void deleteIndex(int64_t transactionId, int64_t objectStoreId, int64
_t indexId) OVERRIDE { ASSERT_NOT_REACHED(); } |
| 167 | 170 |
| 171 virtual void trace(Visitor*) const { } |
| 172 |
| 168 private: | 173 private: |
| 169 MockIDBDatabaseBackendProxy(WebIDBDatabaseImpl* webDatabase) | 174 MockIDBDatabaseBackendProxy(WebIDBDatabaseImpl* webDatabase) |
| 170 : m_wasCloseCalled(false) | 175 : m_wasCloseCalled(false) |
| 171 , m_webDatabase(webDatabase) { } | 176 , m_webDatabase(webDatabase) { } |
| 172 | 177 |
| 173 bool m_wasCloseCalled; | 178 bool m_wasCloseCalled; |
| 174 | 179 |
| 175 WebIDBDatabaseImpl* m_webDatabase; | 180 WebIDBDatabaseImpl* m_webDatabase; |
| 176 }; | 181 }; |
| 177 | 182 |
| 178 class MockIDBDatabaseCallbacks : public IDBDatabaseCallbacks { | 183 class MockIDBDatabaseCallbacks : public IDBDatabaseCallbacks { |
| 179 public: | 184 public: |
| 180 static PassRefPtr<MockIDBDatabaseCallbacks> create() { return adoptRef(new M
ockIDBDatabaseCallbacks()); } | 185 static MockIDBDatabaseCallbacks* create() { return new MockIDBDatabaseCallba
cks(); } |
| 181 virtual ~MockIDBDatabaseCallbacks() | 186 virtual ~MockIDBDatabaseCallbacks() |
| 182 { | 187 { |
| 183 EXPECT_TRUE(m_wasAbortCalled); | 188 EXPECT_TRUE(m_wasAbortCalled); |
| 184 } | 189 } |
| 185 virtual void onVersionChange(int64_t oldVersion, int64_t newVersion) OVERRID
E { } | 190 virtual void onVersionChange(int64_t oldVersion, int64_t newVersion) OVERRID
E { } |
| 186 virtual void onForcedClose() OVERRIDE { } | 191 virtual void onForcedClose() OVERRIDE { } |
| 187 virtual void onAbort(int64_t transactionId, PassRefPtr<IDBDatabaseError> err
or) OVERRIDE | 192 virtual void onAbort(int64_t transactionId, PassRefPtr<IDBDatabaseError> err
or) OVERRIDE |
| 188 { | 193 { |
| 189 m_wasAbortCalled = true; | 194 m_wasAbortCalled = true; |
| 190 } | 195 } |
| 191 virtual void onComplete(int64_t transactionId) OVERRIDE { } | 196 virtual void onComplete(int64_t transactionId) OVERRIDE { } |
| 197 virtual void trace(Visitor*) const OVERRIDE { } |
| 192 private: | 198 private: |
| 193 MockIDBDatabaseCallbacks() | 199 MockIDBDatabaseCallbacks() |
| 194 : m_wasAbortCalled(false) { } | 200 : m_wasAbortCalled(false) { } |
| 195 bool m_wasAbortCalled; | 201 bool m_wasAbortCalled; |
| 196 }; | 202 }; |
| 197 | 203 |
| 198 TEST(IDBDatabaseBackendTest, ForcedClose) | 204 TEST(IDBDatabaseBackendTest, ForcedClose) |
| 199 { | 205 { |
| 200 RefPtr<IDBFakeBackingStore> backingStore = adoptRef(new IDBFakeBackingStore(
)); | 206 RefPtr<IDBFakeBackingStore> backingStore = adoptRef(new IDBFakeBackingStore(
)); |
| 201 EXPECT_TRUE(backingStore->hasOneRef()); | 207 EXPECT_TRUE(backingStore->hasOneRef()); |
| 202 | 208 |
| 203 IDBFactoryBackendImpl* factory = 0; | 209 IDBFactoryBackendImpl* factory = 0; |
| 204 RefPtr<IDBDatabaseBackendImpl> backend = IDBDatabaseBackendImpl::create("db"
, backingStore.get(), factory, "uniqueid"); | 210 IDBDatabaseBackendImpl* backend = IDBDatabaseBackendImpl::create("db", backi
ngStore.get(), factory, "uniqueid"); |
| 205 EXPECT_GT(backingStore->refCount(), 1); | 211 EXPECT_GT(backingStore->refCount(), 1); |
| 206 | 212 |
| 207 RefPtr<MockIDBDatabaseCallbacks> connection = MockIDBDatabaseCallbacks::crea
te(); | 213 MockIDBDatabaseCallbacks* connection = MockIDBDatabaseCallbacks::create(); |
| 208 RefPtr<IDBDatabaseCallbacksProxy> connectionProxy = IDBDatabaseCallbacksProx
y::create(adoptPtr(new WebIDBDatabaseCallbacksImpl(connection))); | 214 IDBDatabaseCallbacksProxy* connectionProxy = IDBDatabaseCallbacksProxy::crea
te(adoptPtr(new WebIDBDatabaseCallbacksImpl(connection))); |
| 209 WebIDBDatabaseImpl* webDatabase = new WebIDBDatabaseImpl(backend, connection
Proxy); | 215 WebIDBDatabaseImpl* webDatabase = new WebIDBDatabaseImpl(backend, connection
Proxy); |
| 210 | 216 |
| 211 RefPtr<MockIDBDatabaseBackendProxy> proxy = MockIDBDatabaseBackendProxy::cre
ate(webDatabase); | 217 MockIDBDatabaseBackendProxy* proxy = MockIDBDatabaseBackendProxy::create(web
Database); |
| 212 RefPtr<MockIDBCallbacks> request = MockIDBCallbacks::create(); | 218 RefPtr<MockIDBCallbacks> request = MockIDBCallbacks::create(); |
| 213 const int64_t upgradeTransactionId = 3; | 219 const int64_t upgradeTransactionId = 3; |
| 214 backend->openConnection(request, connectionProxy, upgradeTransactionId, IDBD
atabaseMetadata::DefaultIntVersion); | 220 backend->openConnection(request, connectionProxy, upgradeTransactionId, IDBD
atabaseMetadata::DefaultIntVersion); |
| 215 | 221 |
| 216 ScriptExecutionContext* context = nullptr; | 222 ScriptExecutionContext* context = nullptr; |
| 217 RefPtr<IDBDatabase> idbDatabase = IDBDatabase::create(context, proxy, connec
tion); | 223 RefPtr<IDBDatabase> idbDatabase = IDBDatabase::create(context, proxy, connec
tion); |
| 218 | 224 |
| 219 const int64_t transactionId = 123; | 225 const int64_t transactionId = 123; |
| 220 const Vector<int64_t> scope; | 226 const Vector<int64_t> scope; |
| 221 backend->createTransaction(transactionId, connectionProxy, scope, IndexedDB:
:TransactionReadOnly); | 227 backend->createTransaction(transactionId, connectionProxy, scope, IndexedDB:
:TransactionReadOnly); |
| 222 | 228 |
| 223 webDatabase->forceClose(); | 229 webDatabase->forceClose(); |
| 224 | 230 |
| 225 EXPECT_TRUE(backingStore->hasOneRef()); | 231 EXPECT_TRUE(backingStore->hasOneRef()); |
| 226 } | 232 } |
| 227 | 233 |
| 228 } // namespace | 234 } // namespace |
| OLD | NEW |