| 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 | 5 |
| 6 #include "content/browser/dom_storage/session_storage_database.h" | 6 #include "content/browser/dom_storage/session_storage_database.h" |
| 7 | 7 |
| 8 #include <algorithm> | 8 #include <algorithm> |
| 9 #include <map> | 9 #include <map> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 296 | 296 |
| 297 void SessionStorageDatabaseTest::DumpData() const { | 297 void SessionStorageDatabaseTest::DumpData() const { |
| 298 LOG(WARNING) << "---- Session storage contents"; | 298 LOG(WARNING) << "---- Session storage contents"; |
| 299 scoped_ptr<leveldb::Iterator> it( | 299 scoped_ptr<leveldb::Iterator> it( |
| 300 db_->db_->NewIterator(leveldb::ReadOptions())); | 300 db_->db_->NewIterator(leveldb::ReadOptions())); |
| 301 for (it->SeekToFirst(); it->Valid(); it->Next()) { | 301 for (it->SeekToFirst(); it->Valid(); it->Next()) { |
| 302 int64 dummy_map_id; | 302 int64 dummy_map_id; |
| 303 if (IsMapValueKey(it->key().ToString(), &dummy_map_id)) { | 303 if (IsMapValueKey(it->key().ToString(), &dummy_map_id)) { |
| 304 // Convert the value back to base::string16. | 304 // Convert the value back to base::string16. |
| 305 base::string16 value; | 305 base::string16 value; |
| 306 size_t len = it->value().size() / sizeof(char16); | 306 size_t len = it->value().size() / sizeof(base::char16); |
| 307 value.resize(len); | 307 value.resize(len); |
| 308 value.assign(reinterpret_cast<const char16*>(it->value().data()), len); | 308 value.assign( |
| 309 reinterpret_cast<const base::char16*>(it->value().data()), len); |
| 309 LOG(WARNING) << it->key().ToString() << ": " << value; | 310 LOG(WARNING) << it->key().ToString() << ": " << value; |
| 310 } else { | 311 } else { |
| 311 LOG(WARNING) << it->key().ToString() << ": " << it->value().ToString(); | 312 LOG(WARNING) << it->key().ToString() << ": " << it->value().ToString(); |
| 312 } | 313 } |
| 313 } | 314 } |
| 314 LOG(WARNING) << "----"; | 315 LOG(WARNING) << "----"; |
| 315 } | 316 } |
| 316 | 317 |
| 317 void SessionStorageDatabaseTest::CheckAreaData( | 318 void SessionStorageDatabaseTest::CheckAreaData( |
| 318 const std::string& namespace_id, const GURL& origin, | 319 const std::string& namespace_id, const GURL& origin, |
| (...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 692 // But the copy persists. | 693 // But the copy persists. |
| 693 CheckAreaData(kNamespaceClone, kOrigin1, data1); | 694 CheckAreaData(kNamespaceClone, kOrigin1, data1); |
| 694 CheckAreaData(kNamespaceClone, kOrigin2, data2); | 695 CheckAreaData(kNamespaceClone, kOrigin2, data2); |
| 695 } | 696 } |
| 696 | 697 |
| 697 TEST_F(SessionStorageDatabaseTest, WriteRawBytes) { | 698 TEST_F(SessionStorageDatabaseTest, WriteRawBytes) { |
| 698 // Write data which is not valid utf8 and contains null bytes. | 699 // Write data which is not valid utf8 and contains null bytes. |
| 699 unsigned char raw_data[10] = {255, 0, 0, 0, 1, 2, 3, 4, 5, 0}; | 700 unsigned char raw_data[10] = {255, 0, 0, 0, 1, 2, 3, 4, 5, 0}; |
| 700 DOMStorageValuesMap changes; | 701 DOMStorageValuesMap changes; |
| 701 base::string16 string_with_raw_data; | 702 base::string16 string_with_raw_data; |
| 702 string_with_raw_data.assign(reinterpret_cast<char16*>(raw_data), 5); | 703 string_with_raw_data.assign(reinterpret_cast<base::char16*>(raw_data), 5); |
| 703 changes[kKey1] = base::NullableString16(string_with_raw_data, false); | 704 changes[kKey1] = base::NullableString16(string_with_raw_data, false); |
| 704 EXPECT_TRUE(db_->CommitAreaChanges(kNamespace1, kOrigin1, false, changes)); | 705 EXPECT_TRUE(db_->CommitAreaChanges(kNamespace1, kOrigin1, false, changes)); |
| 705 CheckDatabaseConsistency(); | 706 CheckDatabaseConsistency(); |
| 706 DOMStorageValuesMap values; | 707 DOMStorageValuesMap values; |
| 707 db_->ReadAreaValues(kNamespace1, kOrigin1, &values); | 708 db_->ReadAreaValues(kNamespace1, kOrigin1, &values); |
| 708 const unsigned char* data = | 709 const unsigned char* data = |
| 709 reinterpret_cast<const unsigned char*>(values[kKey1].string().data()); | 710 reinterpret_cast<const unsigned char*>(values[kKey1].string().data()); |
| 710 for (int i = 0; i < 10; ++i) | 711 for (int i = 0; i < 10; ++i) |
| 711 EXPECT_EQ(raw_data[i], data[i]); | 712 EXPECT_EQ(raw_data[i], data[i]); |
| 712 } | 713 } |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 789 ASSERT_TRUE(db_->CommitAreaChanges(kNamespace1, kOrigin2, false, data2)); | 790 ASSERT_TRUE(db_->CommitAreaChanges(kNamespace1, kOrigin2, false, data2)); |
| 790 | 791 |
| 791 EXPECT_TRUE(db_->DeleteArea(kNamespace1, kOrigin1)); | 792 EXPECT_TRUE(db_->DeleteArea(kNamespace1, kOrigin1)); |
| 792 EXPECT_TRUE(db_->DeleteArea(kNamespace1, kOrigin2)); | 793 EXPECT_TRUE(db_->DeleteArea(kNamespace1, kOrigin2)); |
| 793 // Check that also the namespace start key was deleted. | 794 // Check that also the namespace start key was deleted. |
| 794 CheckDatabaseConsistency(); | 795 CheckDatabaseConsistency(); |
| 795 } | 796 } |
| 796 | 797 |
| 797 | 798 |
| 798 } // namespace content | 799 } // namespace content |
| OLD | NEW |