| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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_backing_store.h" | 5 #include "content/browser/indexed_db/indexed_db_backing_store.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 923 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 934 KeyPrefix::kInvalidId, | 934 KeyPrefix::kInvalidId, |
| 935 index_id, | 935 index_id, |
| 936 m_key1, | 936 m_key1, |
| 937 &new_primary_key); | 937 &new_primary_key); |
| 938 EXPECT_FALSE(s.ok()); | 938 EXPECT_FALSE(s.ok()); |
| 939 } | 939 } |
| 940 | 940 |
| 941 TEST_F(IndexedDBBackingStoreTest, CreateDatabase) { | 941 TEST_F(IndexedDBBackingStoreTest, CreateDatabase) { |
| 942 const base::string16 database_name(ASCIIToUTF16("db1")); | 942 const base::string16 database_name(ASCIIToUTF16("db1")); |
| 943 int64_t database_id; | 943 int64_t database_id; |
| 944 const base::string16 version(ASCIIToUTF16("old_string_version")); | 944 const int64_t version = 9; |
| 945 const int64_t int_version = 9; | |
| 946 | 945 |
| 947 const int64_t object_store_id = 99; | 946 const int64_t object_store_id = 99; |
| 948 const base::string16 object_store_name(ASCIIToUTF16("object_store1")); | 947 const base::string16 object_store_name(ASCIIToUTF16("object_store1")); |
| 949 const bool auto_increment = true; | 948 const bool auto_increment = true; |
| 950 const IndexedDBKeyPath object_store_key_path( | 949 const IndexedDBKeyPath object_store_key_path( |
| 951 ASCIIToUTF16("object_store_key")); | 950 ASCIIToUTF16("object_store_key")); |
| 952 | 951 |
| 953 const int64_t index_id = 999; | 952 const int64_t index_id = 999; |
| 954 const base::string16 index_name(ASCIIToUTF16("index1")); | 953 const base::string16 index_name(ASCIIToUTF16("index1")); |
| 955 const bool unique = true; | 954 const bool unique = true; |
| 956 const bool multi_entry = true; | 955 const bool multi_entry = true; |
| 957 const IndexedDBKeyPath index_key_path(ASCIIToUTF16("index_key")); | 956 const IndexedDBKeyPath index_key_path(ASCIIToUTF16("index_key")); |
| 958 | 957 |
| 959 { | 958 { |
| 960 leveldb::Status s = backing_store_->CreateIDBDatabaseMetaData( | 959 leveldb::Status s = backing_store_->CreateIDBDatabaseMetaData( |
| 961 database_name, int_version, &database_id); | 960 database_name, version, &database_id); |
| 962 EXPECT_TRUE(s.ok()); | 961 EXPECT_TRUE(s.ok()); |
| 963 EXPECT_GT(database_id, 0); | 962 EXPECT_GT(database_id, 0); |
| 964 | 963 |
| 965 IndexedDBBackingStore::Transaction transaction(backing_store_.get()); | 964 IndexedDBBackingStore::Transaction transaction(backing_store_.get()); |
| 966 transaction.Begin(); | 965 transaction.Begin(); |
| 967 | 966 |
| 968 s = backing_store_->CreateObjectStore(&transaction, | 967 s = backing_store_->CreateObjectStore(&transaction, |
| 969 database_id, | 968 database_id, |
| 970 object_store_id, | 969 object_store_id, |
| 971 object_store_name, | 970 object_store_name, |
| (...skipping 22 matching lines...) Expand all Loading... |
| 994 | 993 |
| 995 { | 994 { |
| 996 IndexedDBDatabaseMetadata database; | 995 IndexedDBDatabaseMetadata database; |
| 997 bool found; | 996 bool found; |
| 998 leveldb::Status s = backing_store_->GetIDBDatabaseMetaData( | 997 leveldb::Status s = backing_store_->GetIDBDatabaseMetaData( |
| 999 database_name, &database, &found); | 998 database_name, &database, &found); |
| 1000 EXPECT_TRUE(s.ok()); | 999 EXPECT_TRUE(s.ok()); |
| 1001 EXPECT_TRUE(found); | 1000 EXPECT_TRUE(found); |
| 1002 | 1001 |
| 1003 // database.name is not filled in by the implementation. | 1002 // database.name is not filled in by the implementation. |
| 1004 EXPECT_EQ(int_version, database.int_version); | 1003 EXPECT_EQ(version, database.version); |
| 1005 EXPECT_EQ(database_id, database.id); | 1004 EXPECT_EQ(database_id, database.id); |
| 1006 | 1005 |
| 1007 s = backing_store_->GetObjectStores(database.id, &database.object_stores); | 1006 s = backing_store_->GetObjectStores(database.id, &database.object_stores); |
| 1008 EXPECT_TRUE(s.ok()); | 1007 EXPECT_TRUE(s.ok()); |
| 1009 | 1008 |
| 1010 EXPECT_EQ(1UL, database.object_stores.size()); | 1009 EXPECT_EQ(1UL, database.object_stores.size()); |
| 1011 IndexedDBObjectStoreMetadata object_store = | 1010 IndexedDBObjectStoreMetadata object_store = |
| 1012 database.object_stores[object_store_id]; | 1011 database.object_stores[object_store_id]; |
| 1013 EXPECT_EQ(object_store_name, object_store.name); | 1012 EXPECT_EQ(object_store_name, object_store.name); |
| 1014 EXPECT_EQ(object_store_key_path, object_store.key_path); | 1013 EXPECT_EQ(object_store_key_path, object_store.key_path); |
| 1015 EXPECT_EQ(auto_increment, object_store.auto_increment); | 1014 EXPECT_EQ(auto_increment, object_store.auto_increment); |
| 1016 | 1015 |
| 1017 EXPECT_EQ(1UL, object_store.indexes.size()); | 1016 EXPECT_EQ(1UL, object_store.indexes.size()); |
| 1018 IndexedDBIndexMetadata index = object_store.indexes[index_id]; | 1017 IndexedDBIndexMetadata index = object_store.indexes[index_id]; |
| 1019 EXPECT_EQ(index_name, index.name); | 1018 EXPECT_EQ(index_name, index.name); |
| 1020 EXPECT_EQ(index_key_path, index.key_path); | 1019 EXPECT_EQ(index_key_path, index.key_path); |
| 1021 EXPECT_EQ(unique, index.unique); | 1020 EXPECT_EQ(unique, index.unique); |
| 1022 EXPECT_EQ(multi_entry, index.multi_entry); | 1021 EXPECT_EQ(multi_entry, index.multi_entry); |
| 1023 } | 1022 } |
| 1024 } | 1023 } |
| 1025 | 1024 |
| 1026 TEST_F(IndexedDBBackingStoreTest, GetDatabaseNames) { | 1025 TEST_F(IndexedDBBackingStoreTest, GetDatabaseNames) { |
| 1027 const base::string16 db1_name(ASCIIToUTF16("db1")); | 1026 const base::string16 db1_name(ASCIIToUTF16("db1")); |
| 1028 const int64_t db1_version = 1LL; | 1027 const int64_t db1_version = 1LL; |
| 1029 int64_t db1_id; | 1028 int64_t db1_id; |
| 1030 | 1029 |
| 1031 // Database records with DEFAULT_INT_VERSION represent stale data, | 1030 // Database records with DEFAULT_VERSION represent stale data, |
| 1032 // and should not be enumerated. | 1031 // and should not be enumerated. |
| 1033 const base::string16 db2_name(ASCIIToUTF16("db2")); | 1032 const base::string16 db2_name(ASCIIToUTF16("db2")); |
| 1034 const int64_t db2_version = IndexedDBDatabaseMetadata::DEFAULT_INT_VERSION; | 1033 const int64_t db2_version = IndexedDBDatabaseMetadata::DEFAULT_VERSION; |
| 1035 int64_t db2_id; | 1034 int64_t db2_id; |
| 1036 | 1035 |
| 1037 leveldb::Status s = | 1036 leveldb::Status s = |
| 1038 backing_store_->CreateIDBDatabaseMetaData(db1_name, db1_version, &db1_id); | 1037 backing_store_->CreateIDBDatabaseMetaData(db1_name, db1_version, &db1_id); |
| 1039 EXPECT_TRUE(s.ok()); | 1038 EXPECT_TRUE(s.ok()); |
| 1040 EXPECT_GT(db1_id, 0LL); | 1039 EXPECT_GT(db1_id, 0LL); |
| 1041 | 1040 |
| 1042 s = backing_store_->CreateIDBDatabaseMetaData(db2_name, db2_version, &db2_id); | 1041 s = backing_store_->CreateIDBDatabaseMetaData(db2_name, db2_version, &db2_id); |
| 1043 EXPECT_TRUE(s.ok()); | 1042 EXPECT_TRUE(s.ok()); |
| 1044 EXPECT_GT(db2_id, db1_id); | 1043 EXPECT_GT(db2_id, db1_id); |
| 1045 | 1044 |
| 1046 std::vector<base::string16> names = backing_store_->GetDatabaseNames(&s); | 1045 std::vector<base::string16> names = backing_store_->GetDatabaseNames(&s); |
| 1047 EXPECT_TRUE(s.ok()); | 1046 EXPECT_TRUE(s.ok()); |
| 1048 EXPECT_EQ(names.size(), 1ULL); | 1047 EXPECT_EQ(names.size(), 1ULL); |
| 1049 EXPECT_EQ(names[0], db1_name); | 1048 EXPECT_EQ(names[0], db1_name); |
| 1050 } | 1049 } |
| 1051 | 1050 |
| 1052 } // namespace | 1051 } // namespace |
| 1053 | 1052 |
| 1054 } // namespace content | 1053 } // namespace content |
| OLD | NEW |