| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "webkit/browser/dom_storage/session_storage_database.h" | 6 #include "webkit/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 53 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 64 | 64 | 
| 65   // Test data. | 65   // Test data. | 
| 66   const GURL kOrigin1; | 66   const GURL kOrigin1; | 
| 67   const GURL kOrigin2; | 67   const GURL kOrigin2; | 
| 68   const std::string kNamespace1; | 68   const std::string kNamespace1; | 
| 69   const std::string kNamespace2; | 69   const std::string kNamespace2; | 
| 70   const std::string kNamespaceClone; | 70   const std::string kNamespaceClone; | 
| 71   const base::string16 kKey1; | 71   const base::string16 kKey1; | 
| 72   const base::string16 kKey2; | 72   const base::string16 kKey2; | 
| 73   const base::string16 kKey3; | 73   const base::string16 kKey3; | 
| 74   const NullableString16 kValue1; | 74   const base::NullableString16 kValue1; | 
| 75   const NullableString16 kValue2; | 75   const base::NullableString16 kValue2; | 
| 76   const NullableString16 kValue3; | 76   const base::NullableString16 kValue3; | 
| 77   const NullableString16 kValue4; | 77   const base::NullableString16 kValue4; | 
| 78   const NullableString16 kValueNull; | 78   const base::NullableString16 kValueNull; | 
| 79 | 79 | 
| 80   DISALLOW_COPY_AND_ASSIGN(SessionStorageDatabaseTest); | 80   DISALLOW_COPY_AND_ASSIGN(SessionStorageDatabaseTest); | 
| 81 }; | 81 }; | 
| 82 | 82 | 
| 83 SessionStorageDatabaseTest::SessionStorageDatabaseTest() | 83 SessionStorageDatabaseTest::SessionStorageDatabaseTest() | 
| 84     : kOrigin1("http://www.origin1.com"), | 84     : kOrigin1("http://www.origin1.com"), | 
| 85       kOrigin2("http://www.origin2.com"), | 85       kOrigin2("http://www.origin2.com"), | 
| 86       kNamespace1("namespace1"), | 86       kNamespace1("namespace1"), | 
| 87       kNamespace2("namespace2"), | 87       kNamespace2("namespace2"), | 
| 88       kNamespaceClone("wascloned"), | 88       kNamespaceClone("wascloned"), | 
| 89       kKey1(ASCIIToUTF16("key1")), | 89       kKey1(ASCIIToUTF16("key1")), | 
| 90       kKey2(ASCIIToUTF16("key2")), | 90       kKey2(ASCIIToUTF16("key2")), | 
| 91       kKey3(ASCIIToUTF16("key3")), | 91       kKey3(ASCIIToUTF16("key3")), | 
| 92       kValue1(NullableString16(ASCIIToUTF16("value1"), false)), | 92       kValue1(base::NullableString16(ASCIIToUTF16("value1"), false)), | 
| 93       kValue2(NullableString16(ASCIIToUTF16("value2"), false)), | 93       kValue2(base::NullableString16(ASCIIToUTF16("value2"), false)), | 
| 94       kValue3(NullableString16(ASCIIToUTF16("value3"), false)), | 94       kValue3(base::NullableString16(ASCIIToUTF16("value3"), false)), | 
| 95       kValue4(NullableString16(ASCIIToUTF16("value4"), false)), | 95       kValue4(base::NullableString16(ASCIIToUTF16("value4"), false)), | 
| 96       kValueNull(NullableString16(true)) { } | 96       kValueNull(base::NullableString16(true)) { } | 
| 97 | 97 | 
| 98 SessionStorageDatabaseTest::~SessionStorageDatabaseTest() { } | 98 SessionStorageDatabaseTest::~SessionStorageDatabaseTest() { } | 
| 99 | 99 | 
| 100 void SessionStorageDatabaseTest::SetUp() { | 100 void SessionStorageDatabaseTest::SetUp() { | 
| 101   ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); | 101   ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); | 
| 102   ResetDatabase(); | 102   ResetDatabase(); | 
| 103 } | 103 } | 
| 104 | 104 | 
| 105 void SessionStorageDatabaseTest::ResetDatabase() { | 105 void SessionStorageDatabaseTest::ResetDatabase() { | 
| 106   db_ = new SessionStorageDatabase(temp_dir_.path()); | 106   db_ = new SessionStorageDatabase(temp_dir_.path()); | 
| (...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 323   CompareValuesMaps(values, reference); | 323   CompareValuesMaps(values, reference); | 
| 324 } | 324 } | 
| 325 | 325 | 
| 326 void SessionStorageDatabaseTest::CompareValuesMaps( | 326 void SessionStorageDatabaseTest::CompareValuesMaps( | 
| 327     const ValuesMap& map1, | 327     const ValuesMap& map1, | 
| 328     const ValuesMap& map2) const { | 328     const ValuesMap& map2) const { | 
| 329   ASSERT_EQ(map2.size(), map1.size()); | 329   ASSERT_EQ(map2.size(), map1.size()); | 
| 330   for (ValuesMap::const_iterator it = map1.begin(); it != map1.end(); ++it) { | 330   for (ValuesMap::const_iterator it = map1.begin(); it != map1.end(); ++it) { | 
| 331     base::string16 key = it->first; | 331     base::string16 key = it->first; | 
| 332     ASSERT_TRUE(map2.find(key) != map2.end()); | 332     ASSERT_TRUE(map2.find(key) != map2.end()); | 
| 333     NullableString16 val1 = it->second; | 333     base::NullableString16 val1 = it->second; | 
| 334     NullableString16 val2 = map2.find(key)->second; | 334     base::NullableString16 val2 = map2.find(key)->second; | 
| 335     EXPECT_EQ(val2.is_null(), val1.is_null()); | 335     EXPECT_EQ(val2.is_null(), val1.is_null()); | 
| 336     EXPECT_EQ(val2.string(), val1.string()); | 336     EXPECT_EQ(val2.string(), val1.string()); | 
| 337   } | 337   } | 
| 338 } | 338 } | 
| 339 | 339 | 
| 340 void SessionStorageDatabaseTest::CheckNamespaceIds( | 340 void SessionStorageDatabaseTest::CheckNamespaceIds( | 
| 341     const std::set<std::string>& expected_namespace_ids) const { | 341     const std::set<std::string>& expected_namespace_ids) const { | 
| 342   std::map<std::string, std::vector<GURL> > namespaces_and_origins; | 342   std::map<std::string, std::vector<GURL> > namespaces_and_origins; | 
| 343   EXPECT_TRUE(db_->ReadNamespacesAndOrigins(&namespaces_and_origins)); | 343   EXPECT_TRUE(db_->ReadNamespacesAndOrigins(&namespaces_and_origins)); | 
| 344   EXPECT_EQ(expected_namespace_ids.size(), namespaces_and_origins.size()); | 344   EXPECT_EQ(expected_namespace_ids.size(), namespaces_and_origins.size()); | 
| (...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 693   CheckAreaData(kNamespaceClone, kOrigin1, data1); | 693   CheckAreaData(kNamespaceClone, kOrigin1, data1); | 
| 694   CheckAreaData(kNamespaceClone, kOrigin2, data2); | 694   CheckAreaData(kNamespaceClone, kOrigin2, data2); | 
| 695 } | 695 } | 
| 696 | 696 | 
| 697 TEST_F(SessionStorageDatabaseTest, WriteRawBytes) { | 697 TEST_F(SessionStorageDatabaseTest, WriteRawBytes) { | 
| 698   // Write data which is not valid utf8 and contains null bytes. | 698   // 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}; | 699   unsigned char raw_data[10] = {255, 0, 0, 0, 1, 2, 3, 4, 5, 0}; | 
| 700   ValuesMap changes; | 700   ValuesMap changes; | 
| 701   base::string16 string_with_raw_data; | 701   base::string16 string_with_raw_data; | 
| 702   string_with_raw_data.assign(reinterpret_cast<char16*>(raw_data), 5); | 702   string_with_raw_data.assign(reinterpret_cast<char16*>(raw_data), 5); | 
| 703   changes[kKey1] = NullableString16(string_with_raw_data, false); | 703   changes[kKey1] = base::NullableString16(string_with_raw_data, false); | 
| 704   EXPECT_TRUE(db_->CommitAreaChanges(kNamespace1, kOrigin1, false, changes)); | 704   EXPECT_TRUE(db_->CommitAreaChanges(kNamespace1, kOrigin1, false, changes)); | 
| 705   CheckDatabaseConsistency(); | 705   CheckDatabaseConsistency(); | 
| 706   ValuesMap values; | 706   ValuesMap values; | 
| 707   db_->ReadAreaValues(kNamespace1, kOrigin1, &values); | 707   db_->ReadAreaValues(kNamespace1, kOrigin1, &values); | 
| 708   const unsigned char* data = | 708   const unsigned char* data = | 
| 709       reinterpret_cast<const unsigned char*>(values[kKey1].string().data()); | 709       reinterpret_cast<const unsigned char*>(values[kKey1].string().data()); | 
| 710   for (int i = 0; i < 10; ++i) | 710   for (int i = 0; i < 10; ++i) | 
| 711     EXPECT_EQ(raw_data[i], data[i]); | 711     EXPECT_EQ(raw_data[i], data[i]); | 
| 712 } | 712 } | 
| 713 | 713 | 
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 789   ASSERT_TRUE(db_->CommitAreaChanges(kNamespace1, kOrigin2, false, data2)); | 789   ASSERT_TRUE(db_->CommitAreaChanges(kNamespace1, kOrigin2, false, data2)); | 
| 790 | 790 | 
| 791   EXPECT_TRUE(db_->DeleteArea(kNamespace1, kOrigin1)); | 791   EXPECT_TRUE(db_->DeleteArea(kNamespace1, kOrigin1)); | 
| 792   EXPECT_TRUE(db_->DeleteArea(kNamespace1, kOrigin2)); | 792   EXPECT_TRUE(db_->DeleteArea(kNamespace1, kOrigin2)); | 
| 793   // Check that also the namespace start key was deleted. | 793   // Check that also the namespace start key was deleted. | 
| 794   CheckDatabaseConsistency(); | 794   CheckDatabaseConsistency(); | 
| 795 } | 795 } | 
| 796 | 796 | 
| 797 | 797 | 
| 798 }  // namespace dom_storage | 798 }  // namespace dom_storage | 
| OLD | NEW | 
|---|