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

Side by Side Diff: content/browser/indexed_db/indexed_db_database_unittest.cc

Issue 2160163002: [IndexedDB] Propogating Changes to Observer : Browser (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Browser changes Created 4 years, 5 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 unified diff | Download patch
OLDNEW
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 <stdint.h> 7 #include <stdint.h>
8 #include <set> 8 #include <set>
9 #include <utility> 9 #include <utility>
10 10
11 #include "base/auto_reset.h" 11 #include "base/auto_reset.h"
12 #include "base/logging.h" 12 #include "base/logging.h"
13 #include "base/macros.h" 13 #include "base/macros.h"
14 #include "base/memory/ptr_util.h"
14 #include "base/run_loop.h" 15 #include "base/run_loop.h"
15 #include "base/strings/string16.h" 16 #include "base/strings/string16.h"
16 #include "base/strings/utf_string_conversions.h" 17 #include "base/strings/utf_string_conversions.h"
17 #include "content/browser/indexed_db/indexed_db.h" 18 #include "content/browser/indexed_db/indexed_db.h"
18 #include "content/browser/indexed_db/indexed_db_backing_store.h" 19 #include "content/browser/indexed_db/indexed_db_backing_store.h"
19 #include "content/browser/indexed_db/indexed_db_callbacks.h" 20 #include "content/browser/indexed_db/indexed_db_callbacks.h"
20 #include "content/browser/indexed_db/indexed_db_class_factory.h" 21 #include "content/browser/indexed_db/indexed_db_class_factory.h"
21 #include "content/browser/indexed_db/indexed_db_connection.h" 22 #include "content/browser/indexed_db/indexed_db_connection.h"
22 #include "content/browser/indexed_db/indexed_db_cursor.h" 23 #include "content/browser/indexed_db/indexed_db_cursor.h"
23 #include "content/browser/indexed_db/indexed_db_fake_backing_store.h" 24 #include "content/browser/indexed_db/indexed_db_fake_backing_store.h"
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 ASSERT_TRUE(s.ok()); 232 ASSERT_TRUE(s.ok());
232 233
233 request_ = new MockIndexedDBCallbacks(); 234 request_ = new MockIndexedDBCallbacks();
234 callbacks_ = new MockIndexedDBDatabaseCallbacks(); 235 callbacks_ = new MockIndexedDBDatabaseCallbacks();
235 const int64_t transaction_id = 1; 236 const int64_t transaction_id = 1;
236 db_->OpenConnection(IndexedDBPendingConnection( 237 db_->OpenConnection(IndexedDBPendingConnection(
237 request_, callbacks_, kFakeChildProcessId, transaction_id, 238 request_, callbacks_, kFakeChildProcessId, transaction_id,
238 IndexedDBDatabaseMetadata::DEFAULT_VERSION)); 239 IndexedDBDatabaseMetadata::DEFAULT_VERSION));
239 EXPECT_EQ(IndexedDBDatabaseMetadata::NO_VERSION, db_->metadata().version); 240 EXPECT_EQ(IndexedDBDatabaseMetadata::NO_VERSION, db_->metadata().version);
240 241
242 connection_ = base::WrapUnique(new IndexedDBConnection(db_, callbacks_));
241 transaction_ = IndexedDBClassFactory::Get()->CreateIndexedDBTransaction( 243 transaction_ = IndexedDBClassFactory::Get()->CreateIndexedDBTransaction(
242 transaction_id, callbacks_, std::set<int64_t>() /*scope*/, 244 transaction_id, connection_->GetWeakPtr(),
243 blink::WebIDBTransactionModeVersionChange, db_.get(), 245 std::set<int64_t>() /*scope*/,
246 blink::WebIDBTransactionModeVersionChange,
244 new IndexedDBFakeBackingStore::FakeTransaction(commit_success_)); 247 new IndexedDBFakeBackingStore::FakeTransaction(commit_success_));
245 db_->TransactionCreated(transaction_.get()); 248 db_->TransactionCreated(transaction_.get());
246 249
247 // Add a dummy task which takes the place of the VersionChangeOperation 250 // Add a dummy task which takes the place of the VersionChangeOperation
248 // which kicks off the upgrade. This ensures that the transaction has 251 // which kicks off the upgrade. This ensures that the transaction has
249 // processed at least one task before the CreateObjectStore call. 252 // processed at least one task before the CreateObjectStore call.
250 transaction_->ScheduleTask(base::Bind(&DummyOperation)); 253 transaction_->ScheduleTask(base::Bind(&DummyOperation));
251 } 254 }
252 255
253 void RunPostedTasks() { base::RunLoop().RunUntilIdle(); } 256 void RunPostedTasks() { base::RunLoop().RunUntilIdle(); }
254 257
255 protected: 258 protected:
256 scoped_refptr<IndexedDBFakeBackingStore> backing_store_; 259 scoped_refptr<IndexedDBFakeBackingStore> backing_store_;
257 scoped_refptr<IndexedDBDatabase> db_; 260 scoped_refptr<IndexedDBDatabase> db_;
258 scoped_refptr<MockIndexedDBCallbacks> request_; 261 scoped_refptr<MockIndexedDBCallbacks> request_;
259 scoped_refptr<MockIndexedDBDatabaseCallbacks> callbacks_; 262 scoped_refptr<MockIndexedDBDatabaseCallbacks> callbacks_;
260 scoped_refptr<IndexedDBTransaction> transaction_; 263 scoped_refptr<IndexedDBTransaction> transaction_;
264 std::unique_ptr<IndexedDBConnection> connection_;
261 265
262 leveldb::Status commit_success_; 266 leveldb::Status commit_success_;
263 267
264 private: 268 private:
265 base::MessageLoop message_loop_; 269 base::MessageLoop message_loop_;
266 scoped_refptr<MockIndexedDBFactory> factory_; 270 scoped_refptr<MockIndexedDBFactory> factory_;
267 271
268 DISALLOW_COPY_AND_ASSIGN(IndexedDBDatabaseOperationTest); 272 DISALLOW_COPY_AND_ASSIGN(IndexedDBDatabaseOperationTest);
269 }; 273 };
270 274
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 EXPECT_EQ(1ULL, db_->metadata().object_stores.size()); 393 EXPECT_EQ(1ULL, db_->metadata().object_stores.size());
390 394
391 // This will execute the Put then Delete. 395 // This will execute the Put then Delete.
392 RunPostedTasks(); 396 RunPostedTasks();
393 EXPECT_EQ(0ULL, db_->metadata().object_stores.size()); 397 EXPECT_EQ(0ULL, db_->metadata().object_stores.size());
394 398
395 transaction_->Commit(); // Cleans up the object hierarchy. 399 transaction_->Commit(); // Cleans up the object hierarchy.
396 } 400 }
397 401
398 } // namespace content 402 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698