OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/indexed_db/indexed_db_database.h" | 5 #include "content/browser/indexed_db/indexed_db_database.h" |
6 | 6 |
7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "base/run_loop.h" | 9 #include "base/run_loop.h" |
10 #include "base/strings/string16.h" | 10 #include "base/strings/string16.h" |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 upgrade_transaction_id, | 135 upgrade_transaction_id, |
136 IndexedDBDatabaseMetadata::DEFAULT_INT_VERSION); | 136 IndexedDBDatabaseMetadata::DEFAULT_INT_VERSION); |
137 database->OpenConnection(connection); | 137 database->OpenConnection(connection); |
138 EXPECT_EQ(database, request->connection()->database()); | 138 EXPECT_EQ(database, request->connection()->database()); |
139 | 139 |
140 const int64 transaction_id = 123; | 140 const int64 transaction_id = 123; |
141 const std::vector<int64> scope; | 141 const std::vector<int64> scope; |
142 database->CreateTransaction(transaction_id, | 142 database->CreateTransaction(transaction_id, |
143 request->connection(), | 143 request->connection(), |
144 scope, | 144 scope, |
145 indexed_db::TRANSACTION_READ_ONLY); | 145 blink::WebIDBTransactionModeReadOnly); |
146 | 146 |
147 request->connection()->ForceClose(); | 147 request->connection()->ForceClose(); |
148 | 148 |
149 EXPECT_TRUE(backing_store->HasOneRef()); // local | 149 EXPECT_TRUE(backing_store->HasOneRef()); // local |
150 EXPECT_TRUE(callbacks->abort_called()); | 150 EXPECT_TRUE(callbacks->abort_called()); |
151 } | 151 } |
152 | 152 |
153 class MockDeleteCallbacks : public IndexedDBCallbacks { | 153 class MockDeleteCallbacks : public IndexedDBCallbacks { |
154 public: | 154 public: |
155 MockDeleteCallbacks() | 155 MockDeleteCallbacks() |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
243 kFakeChildProcessId, | 243 kFakeChildProcessId, |
244 transaction_id, | 244 transaction_id, |
245 IndexedDBDatabaseMetadata::DEFAULT_INT_VERSION)); | 245 IndexedDBDatabaseMetadata::DEFAULT_INT_VERSION)); |
246 EXPECT_EQ(IndexedDBDatabaseMetadata::NO_INT_VERSION, | 246 EXPECT_EQ(IndexedDBDatabaseMetadata::NO_INT_VERSION, |
247 db_->metadata().int_version); | 247 db_->metadata().int_version); |
248 | 248 |
249 transaction_ = new IndexedDBTransaction( | 249 transaction_ = new IndexedDBTransaction( |
250 transaction_id, | 250 transaction_id, |
251 callbacks_, | 251 callbacks_, |
252 std::set<int64>() /*scope*/, | 252 std::set<int64>() /*scope*/, |
253 indexed_db::TRANSACTION_VERSION_CHANGE, | 253 blink::WebIDBTransactionModeVersionChange, |
254 db_, | 254 db_, |
255 new IndexedDBFakeBackingStore::FakeTransaction(commit_success_)); | 255 new IndexedDBFakeBackingStore::FakeTransaction(commit_success_)); |
256 db_->TransactionCreated(transaction_); | 256 db_->TransactionCreated(transaction_); |
257 | 257 |
258 // Add a dummy task which takes the place of the VersionChangeOperation | 258 // Add a dummy task which takes the place of the VersionChangeOperation |
259 // which kicks off the upgrade. This ensures that the transaction has | 259 // which kicks off the upgrade. This ensures that the transaction has |
260 // processed at least one task before the CreateObjectStore call. | 260 // processed at least one task before the CreateObjectStore call. |
261 transaction_->ScheduleTask(base::Bind(&DummyOperation)); | 261 transaction_->ScheduleTask(base::Bind(&DummyOperation)); |
262 } | 262 } |
263 | 263 |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
388 ScopedVector<webkit_blob::BlobDataHandle> handles; | 388 ScopedVector<webkit_blob::BlobDataHandle> handles; |
389 scoped_ptr<IndexedDBKey> key(new IndexedDBKey("key")); | 389 scoped_ptr<IndexedDBKey> key(new IndexedDBKey("key")); |
390 std::vector<IndexedDBDatabase::IndexKeys> index_keys; | 390 std::vector<IndexedDBDatabase::IndexKeys> index_keys; |
391 scoped_refptr<MockIndexedDBCallbacks> request( | 391 scoped_refptr<MockIndexedDBCallbacks> request( |
392 new MockIndexedDBCallbacks(false)); | 392 new MockIndexedDBCallbacks(false)); |
393 db_->Put(transaction_->id(), | 393 db_->Put(transaction_->id(), |
394 store_id, | 394 store_id, |
395 &value, | 395 &value, |
396 &handles, | 396 &handles, |
397 key.Pass(), | 397 key.Pass(), |
398 IndexedDBDatabase::ADD_ONLY, | 398 blink::WebIDBPutModeAddOnly, |
399 request, | 399 request, |
400 index_keys); | 400 index_keys); |
401 | 401 |
402 // Deletion is asynchronous. | 402 // Deletion is asynchronous. |
403 db_->DeleteObjectStore(transaction_->id(), | 403 db_->DeleteObjectStore(transaction_->id(), |
404 store_id); | 404 store_id); |
405 EXPECT_EQ(1ULL, db_->metadata().object_stores.size()); | 405 EXPECT_EQ(1ULL, db_->metadata().object_stores.size()); |
406 | 406 |
407 // This will execute the Put then Delete. | 407 // This will execute the Put then Delete. |
408 RunPostedTasks(); | 408 RunPostedTasks(); |
409 EXPECT_EQ(0ULL, db_->metadata().object_stores.size()); | 409 EXPECT_EQ(0ULL, db_->metadata().object_stores.size()); |
410 | 410 |
411 transaction_->Commit(); // Cleans up the object hierarchy. | 411 transaction_->Commit(); // Cleans up the object hierarchy. |
412 } | 412 } |
413 | 413 |
414 } // namespace content | 414 } // namespace content |
OLD | NEW |