Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/service_worker/service_worker_database.h" | 5 #include "content/browser/service_worker/service_worker_database.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <string> | 10 #include <string> |
| (...skipping 1076 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1087 EXPECT_EQ( | 1087 EXPECT_EQ( |
| 1088 ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND, | 1088 ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND, |
| 1089 database->ReadUserData(data.registration_id, {"key3"}, &user_data_out)); | 1089 database->ReadUserData(data.registration_id, {"key3"}, &user_data_out)); |
| 1090 EXPECT_EQ( | 1090 EXPECT_EQ( |
| 1091 ServiceWorkerDatabase::STATUS_OK, | 1091 ServiceWorkerDatabase::STATUS_OK, |
| 1092 database->ReadUserData(data.registration_id, {"key4"}, &user_data_out)); | 1092 database->ReadUserData(data.registration_id, {"key4"}, &user_data_out)); |
| 1093 ASSERT_EQ(1u, user_data_out.size()); | 1093 ASSERT_EQ(1u, user_data_out.size()); |
| 1094 EXPECT_EQ("data4", user_data_out[0]); | 1094 EXPECT_EQ("data4", user_data_out[0]); |
| 1095 } | 1095 } |
| 1096 | 1096 |
| 1097 TEST(ServiceWorkerDatabaseTest, | |
| 1098 UserData_ReadUserDataForAllRegistrationsByKeyPrefix) { | |
| 1099 std::unique_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); | |
| 1100 const GURL kOrigin("http://example.com"); | |
| 1101 | |
| 1102 // Add registration 1. | |
| 1103 RegistrationData data1; | |
| 1104 data1.registration_id = 100; | |
| 1105 data1.scope = URL(kOrigin, "/foo"); | |
| 1106 data1.script = URL(kOrigin, "/script1.js"); | |
| 1107 data1.version_id = 200; | |
| 1108 data1.resources_total_size_bytes = 100; | |
| 1109 std::vector<Resource> resources1; | |
| 1110 resources1.push_back(CreateResource(1, data1.script, 100)); | |
| 1111 | |
| 1112 // Add registration 2. | |
| 1113 RegistrationData data2; | |
| 1114 data2.registration_id = 101; | |
| 1115 data2.scope = URL(kOrigin, "/bar"); | |
| 1116 data2.script = URL(kOrigin, "/script2.js"); | |
| 1117 data2.version_id = 201; | |
| 1118 data2.resources_total_size_bytes = 200; | |
| 1119 std::vector<Resource> resources2; | |
| 1120 resources2.push_back(CreateResource(2, data2.script, 200)); | |
| 1121 | |
| 1122 ServiceWorkerDatabase::RegistrationData deleted_version; | |
| 1123 std::vector<int64_t> newly_purgeable_resources; | |
| 1124 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, | |
| 1125 database->WriteRegistration(data1, resources1, &deleted_version, | |
| 1126 &newly_purgeable_resources)); | |
| 1127 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, | |
| 1128 database->WriteRegistration(data2, resources2, &deleted_version, | |
| 1129 &newly_purgeable_resources)); | |
| 1130 | |
| 1131 // Write user data associated with the registration1. | |
| 1132 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, | |
| 1133 database->WriteUserData(data1.registration_id, kOrigin, | |
| 1134 {{"key_prefix:key1", "value1"}})); | |
| 1135 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, | |
| 1136 database->WriteUserData(data1.registration_id, kOrigin, | |
| 1137 {{"key_prefix:key2", "value2"}})); | |
| 1138 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, | |
| 1139 database->WriteUserData(data1.registration_id, kOrigin, | |
| 1140 {{"key_prefix:key3", "value3"}})); | |
| 1141 | |
| 1142 // Write user data associated with the registration2. | |
| 1143 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, | |
| 1144 database->WriteUserData(data2.registration_id, kOrigin, | |
| 1145 {{"key_prefix:key1", "value1"}})); | |
| 1146 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, | |
| 1147 database->WriteUserData(data2.registration_id, kOrigin, | |
| 1148 {{"key_prefix:key2", "value2"}})); | |
|
nhiroki
2017/05/11 07:12:40
Can you write one more user data that has a differ
zino
2017/05/11 14:21:05
Done.
| |
| 1149 | |
| 1150 // Get all registrations with user data by key prefix. | |
| 1151 std::vector<std::pair<int64_t, std::string>> user_data_list; | |
| 1152 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, | |
| 1153 database->ReadUserDataForAllRegistrationsByKeyPrefix( | |
| 1154 "key_prefix:", &user_data_list)); | |
| 1155 ASSERT_EQ(5u, user_data_list.size()); | |
| 1156 | |
| 1157 EXPECT_EQ(data1.registration_id, user_data_list[0].first); | |
| 1158 EXPECT_EQ("value1", user_data_list[0].second); | |
| 1159 EXPECT_EQ(data2.registration_id, user_data_list[1].first); | |
| 1160 EXPECT_EQ("value1", user_data_list[1].second); | |
| 1161 EXPECT_EQ(data1.registration_id, user_data_list[2].first); | |
| 1162 EXPECT_EQ("value2", user_data_list[2].second); | |
| 1163 EXPECT_EQ(data2.registration_id, user_data_list[3].first); | |
| 1164 EXPECT_EQ("value2", user_data_list[3].second); | |
| 1165 EXPECT_EQ(data1.registration_id, user_data_list[4].first); | |
| 1166 EXPECT_EQ("value3", user_data_list[4].second); | |
| 1167 } | |
| 1168 | |
| 1097 TEST(ServiceWorkerDatabaseTest, UserData_DataIsolation) { | 1169 TEST(ServiceWorkerDatabaseTest, UserData_DataIsolation) { |
| 1098 std::unique_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); | 1170 std::unique_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); |
| 1099 const GURL kOrigin("http://example.com"); | 1171 const GURL kOrigin("http://example.com"); |
| 1100 | 1172 |
| 1101 // Add registration 1. | 1173 // Add registration 1. |
| 1102 RegistrationData data1; | 1174 RegistrationData data1; |
| 1103 data1.registration_id = 100; | 1175 data1.registration_id = 100; |
| 1104 data1.scope = URL(kOrigin, "/foo"); | 1176 data1.scope = URL(kOrigin, "/foo"); |
| 1105 data1.script = URL(kOrigin, "/script1.js"); | 1177 data1.script = URL(kOrigin, "/script1.js"); |
| 1106 data1.version_id = 200; | 1178 data1.version_id = 200; |
| (...skipping 704 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1811 // The database should detect lack of the main resource (i.e. "/resource1"). | 1883 // The database should detect lack of the main resource (i.e. "/resource1"). |
| 1812 RegistrationData data_out; | 1884 RegistrationData data_out; |
| 1813 std::vector<Resource> resources_out; | 1885 std::vector<Resource> resources_out; |
| 1814 EXPECT_EQ(ServiceWorkerDatabase::STATUS_ERROR_CORRUPTED, | 1886 EXPECT_EQ(ServiceWorkerDatabase::STATUS_ERROR_CORRUPTED, |
| 1815 database->ReadRegistration(data.registration_id, origin, &data_out, | 1887 database->ReadRegistration(data.registration_id, origin, &data_out, |
| 1816 &resources_out)); | 1888 &resources_out)); |
| 1817 EXPECT_TRUE(resources_out.empty()); | 1889 EXPECT_TRUE(resources_out.empty()); |
| 1818 } | 1890 } |
| 1819 | 1891 |
| 1820 } // namespace content | 1892 } // namespace content |
| OLD | NEW |