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

Side by Side Diff: chrome/browser/push_messaging/push_messaging_app_identifier_unittest.cc

Issue 1141613003: Push API: Include origin in generated app_ids (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ident_test
Patch Set: Add test for reading old values from prefs Created 5 years, 7 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 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 "chrome/browser/push_messaging/push_messaging_app_identifier.h" 5 #include "chrome/browser/push_messaging/push_messaging_app_identifier.h"
6 6
7 #include "chrome/test/base/testing_profile.h" 7 #include "chrome/test/base/testing_profile.h"
8 #include "content/public/test/test_browser_thread_bundle.h" 8 #include "content/public/test/test_browser_thread_bundle.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 10
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 EXPECT_TRUE(GenerateId(GURL("https://www.example.com/"), -1).is_null()); 69 EXPECT_TRUE(GenerateId(GURL("https://www.example.com/"), -1).is_null());
70 } 70 }
71 71
72 TEST_F(PushMessagingAppIdentifierTest, UniqueGuids) { 72 TEST_F(PushMessagingAppIdentifierTest, UniqueGuids) {
73 EXPECT_NE(PushMessagingAppIdentifier::Generate( 73 EXPECT_NE(PushMessagingAppIdentifier::Generate(
74 GURL("https://www.example.com/"), 1).app_id(), 74 GURL("https://www.example.com/"), 1).app_id(),
75 PushMessagingAppIdentifier::Generate( 75 PushMessagingAppIdentifier::Generate(
76 GURL("https://www.example.com/"), 1).app_id()); 76 GURL("https://www.example.com/"), 1).app_id());
77 } 77 }
78 78
79 TEST_F(PushMessagingAppIdentifierTest, PersistAndGet) { 79 TEST_F(PushMessagingAppIdentifierTest, PersistAndFind) {
80 ASSERT_TRUE(PushMessagingAppIdentifier::Get(profile(), 80 ASSERT_TRUE(PushMessagingAppIdentifier::FindByAppId(
81 original_.app_id()).is_null()); 81 profile(), original_.app_id()).is_null());
82 ASSERT_TRUE(PushMessagingAppIdentifier::Get(profile(), original_.origin(), 82 ASSERT_TRUE(PushMessagingAppIdentifier::FindByServiceWorker(
83 original_.service_worker_registration_id()).is_null()); 83 profile(), original_.origin(), original_.service_worker_registration_id())
84 .is_null());
84 85
85 // Test basic PersistToPrefs round trips. 86 // Test basic PersistToPrefs round trips.
86 original_.PersistToPrefs(profile()); 87 original_.PersistToPrefs(profile());
87 { 88 {
88 PushMessagingAppIdentifier get_by_app_id = 89 PushMessagingAppIdentifier found_by_app_id =
89 PushMessagingAppIdentifier::Get(profile(), original_.app_id()); 90 PushMessagingAppIdentifier::FindByAppId(profile(), original_.app_id());
90 EXPECT_FALSE(get_by_app_id.is_null()); 91 EXPECT_FALSE(found_by_app_id.is_null());
91 ExpectAppIdentifiersEqual(original_, get_by_app_id); 92 ExpectAppIdentifiersEqual(original_, found_by_app_id);
92 } 93 }
93 { 94 {
94 PushMessagingAppIdentifier get_by_origin_and_swr_id = 95 PushMessagingAppIdentifier found_by_origin_and_swr_id =
95 PushMessagingAppIdentifier::Get(profile(), 96 PushMessagingAppIdentifier::FindByServiceWorker(profile(),
96 original_.origin(), original_.service_worker_registration_id()); 97 original_.origin(), original_.service_worker_registration_id());
97 EXPECT_FALSE(get_by_origin_and_swr_id.is_null()); 98 EXPECT_FALSE(found_by_origin_and_swr_id.is_null());
98 ExpectAppIdentifiersEqual(original_, get_by_origin_and_swr_id); 99 ExpectAppIdentifiersEqual(original_, found_by_origin_and_swr_id);
99 } 100 }
100 } 101 }
101 102
103 TEST_F(PushMessagingAppIdentifierTest, FindLegacy) {
104 const std::string legacy_app_id("wp:9CC55CCE-B8F9-4092-A364-3B0F73A3AB5F");
105 ASSERT_TRUE(PushMessagingAppIdentifier::FindByAppId(profile(),
106 legacy_app_id).is_null());
107 ASSERT_TRUE(PushMessagingAppIdentifier::FindByServiceWorker(
108 profile(), original_.origin(), original_.service_worker_registration_id())
109 .is_null());
110
111 // Create a legacy preferences entry (the test happens to use PersistToPrefs
112 // since that currently works, but it's ok to change the behavior of
113 // PersistToPrefs; if so, this test can just do a raw DictionaryPrefUpdate).
114 original_.app_id_ = legacy_app_id;
Peter Beverloo 2015/05/14 11:26:29 Eeuw!
johnme 2015/05/14 13:18:20 Acknowledged.
115 original_.PersistToPrefs(profile());
116
117 // Test that legacy entries can be read back from prefs.
118 {
119 PushMessagingAppIdentifier found_by_app_id =
120 PushMessagingAppIdentifier::FindByAppId(profile(), original_.app_id());
121 EXPECT_FALSE(found_by_app_id.is_null());
122 ExpectAppIdentifiersEqual(original_, found_by_app_id);
123 }
124 {
125 PushMessagingAppIdentifier found_by_origin_and_swr_id =
126 PushMessagingAppIdentifier::FindByServiceWorker(profile(),
127 original_.origin(), original_.service_worker_registration_id());
128 EXPECT_FALSE(found_by_origin_and_swr_id.is_null());
129 ExpectAppIdentifiersEqual(original_, found_by_origin_and_swr_id);
130 }
131 }
132
102 TEST_F(PushMessagingAppIdentifierTest, PersistOverwritesSameOriginAndSW) { 133 TEST_F(PushMessagingAppIdentifierTest, PersistOverwritesSameOriginAndSW) {
103 original_.PersistToPrefs(profile()); 134 original_.PersistToPrefs(profile());
104 135
105 // Test that PersistToPrefs overwrites when same origin and Service Worker. 136 // Test that PersistToPrefs overwrites when same origin and Service Worker.
106 ASSERT_NE(original_.app_id(), same_origin_and_sw_.app_id()); 137 ASSERT_NE(original_.app_id(), same_origin_and_sw_.app_id());
107 ASSERT_EQ(original_.origin(), same_origin_and_sw_.origin()); 138 ASSERT_EQ(original_.origin(), same_origin_and_sw_.origin());
108 ASSERT_EQ(original_.service_worker_registration_id(), 139 ASSERT_EQ(original_.service_worker_registration_id(),
109 same_origin_and_sw_.service_worker_registration_id()); 140 same_origin_and_sw_.service_worker_registration_id());
110 same_origin_and_sw_.PersistToPrefs(profile()); 141 same_origin_and_sw_.PersistToPrefs(profile());
111 { 142 {
112 PushMessagingAppIdentifier get_by_original_app_id = 143 PushMessagingAppIdentifier found_by_original_app_id =
113 PushMessagingAppIdentifier::Get(profile(), original_.app_id()); 144 PushMessagingAppIdentifier::FindByAppId(profile(), original_.app_id());
114 EXPECT_TRUE(get_by_original_app_id.is_null()); 145 EXPECT_TRUE(found_by_original_app_id.is_null());
115 } 146 }
116 { 147 {
117 PushMessagingAppIdentifier get_by_soas_app_id = 148 PushMessagingAppIdentifier found_by_soas_app_id =
118 PushMessagingAppIdentifier::Get(profile(), 149 PushMessagingAppIdentifier::FindByAppId(profile(),
119 same_origin_and_sw_.app_id()); 150 same_origin_and_sw_.app_id());
120 EXPECT_FALSE(get_by_soas_app_id.is_null()); 151 EXPECT_FALSE(found_by_soas_app_id.is_null());
121 ExpectAppIdentifiersEqual(same_origin_and_sw_, get_by_soas_app_id); 152 ExpectAppIdentifiersEqual(same_origin_and_sw_, found_by_soas_app_id);
122 } 153 }
123 { 154 {
124 PushMessagingAppIdentifier get_by_original_origin_and_swr_id = 155 PushMessagingAppIdentifier found_by_original_origin_and_swr_id =
125 PushMessagingAppIdentifier::Get(profile(), 156 PushMessagingAppIdentifier::FindByServiceWorker(profile(),
126 original_.origin(), original_.service_worker_registration_id()); 157 original_.origin(), original_.service_worker_registration_id());
127 EXPECT_FALSE(get_by_original_origin_and_swr_id.is_null()); 158 EXPECT_FALSE(found_by_original_origin_and_swr_id.is_null());
128 ExpectAppIdentifiersEqual(same_origin_and_sw_, 159 ExpectAppIdentifiersEqual(same_origin_and_sw_,
129 get_by_original_origin_and_swr_id); 160 found_by_original_origin_and_swr_id);
130 } 161 }
131 } 162 }
132 163
133 TEST_F(PushMessagingAppIdentifierTest, PersistDoesNotOverwriteDifferent) { 164 TEST_F(PushMessagingAppIdentifierTest, PersistDoesNotOverwriteDifferent) {
134 original_.PersistToPrefs(profile()); 165 original_.PersistToPrefs(profile());
135 166
136 // Test that PersistToPrefs doesn't overwrite when different origin or SW. 167 // Test that PersistToPrefs doesn't overwrite when different origin or SW.
137 ASSERT_NE(original_.app_id(), different_origin_.app_id()); 168 ASSERT_NE(original_.app_id(), different_origin_.app_id());
138 ASSERT_NE(original_.app_id(), different_sw_.app_id()); 169 ASSERT_NE(original_.app_id(), different_sw_.app_id());
139 different_origin_.PersistToPrefs(profile()); 170 different_origin_.PersistToPrefs(profile());
140 different_sw_.PersistToPrefs(profile()); 171 different_sw_.PersistToPrefs(profile());
141 { 172 {
142 PushMessagingAppIdentifier get_by_original_app_id = 173 PushMessagingAppIdentifier found_by_original_app_id =
143 PushMessagingAppIdentifier::Get(profile(), original_.app_id()); 174 PushMessagingAppIdentifier::FindByAppId(profile(), original_.app_id());
144 EXPECT_FALSE(get_by_original_app_id.is_null()); 175 EXPECT_FALSE(found_by_original_app_id.is_null());
145 ExpectAppIdentifiersEqual(original_, get_by_original_app_id); 176 ExpectAppIdentifiersEqual(original_, found_by_original_app_id);
146 } 177 }
147 { 178 {
148 PushMessagingAppIdentifier get_by_original_origin_and_swr_id = 179 PushMessagingAppIdentifier found_by_original_origin_and_swr_id =
149 PushMessagingAppIdentifier::Get(profile(), 180 PushMessagingAppIdentifier::FindByServiceWorker(profile(),
150 original_.origin(), original_.service_worker_registration_id()); 181 original_.origin(), original_.service_worker_registration_id());
151 EXPECT_FALSE(get_by_original_origin_and_swr_id.is_null()); 182 EXPECT_FALSE(found_by_original_origin_and_swr_id.is_null());
152 ExpectAppIdentifiersEqual(original_, get_by_original_origin_and_swr_id); 183 ExpectAppIdentifiersEqual(original_, found_by_original_origin_and_swr_id);
153 } 184 }
154 } 185 }
155 186
156 TEST_F(PushMessagingAppIdentifierTest, DeleteFromPrefs) { 187 TEST_F(PushMessagingAppIdentifierTest, DeleteFromPrefs) {
157 original_.PersistToPrefs(profile()); 188 original_.PersistToPrefs(profile());
158 different_origin_.PersistToPrefs(profile()); 189 different_origin_.PersistToPrefs(profile());
159 different_sw_.PersistToPrefs(profile()); 190 different_sw_.PersistToPrefs(profile());
160 191
161 // Test DeleteFromPrefs. Deleted app identifier should be deleted. 192 // Test DeleteFromPrefs. Deleted app identifier should be deleted.
162 original_.DeleteFromPrefs(profile()); 193 original_.DeleteFromPrefs(profile());
163 { 194 {
164 PushMessagingAppIdentifier get_by_original_app_id = 195 PushMessagingAppIdentifier found_by_original_app_id =
165 PushMessagingAppIdentifier::Get(profile(), original_.app_id()); 196 PushMessagingAppIdentifier::FindByAppId(profile(), original_.app_id());
166 EXPECT_TRUE(get_by_original_app_id.is_null()); 197 EXPECT_TRUE(found_by_original_app_id.is_null());
167 } 198 }
168 { 199 {
169 PushMessagingAppIdentifier get_by_original_origin_and_swr_id = 200 PushMessagingAppIdentifier found_by_original_origin_and_swr_id =
170 PushMessagingAppIdentifier::Get(profile(), 201 PushMessagingAppIdentifier::FindByServiceWorker(profile(),
171 original_.origin(), original_.service_worker_registration_id()); 202 original_.origin(), original_.service_worker_registration_id());
172 EXPECT_TRUE(get_by_original_origin_and_swr_id.is_null()); 203 EXPECT_TRUE(found_by_original_origin_and_swr_id.is_null());
173 } 204 }
174 } 205 }
175 206
176 TEST_F(PushMessagingAppIdentifierTest, GetAll) { 207 TEST_F(PushMessagingAppIdentifierTest, GetAll) {
177 original_.PersistToPrefs(profile()); 208 original_.PersistToPrefs(profile());
178 different_origin_.PersistToPrefs(profile()); 209 different_origin_.PersistToPrefs(profile());
179 different_sw_.PersistToPrefs(profile()); 210 different_sw_.PersistToPrefs(profile());
180 211
181 original_.DeleteFromPrefs(profile()); 212 original_.DeleteFromPrefs(profile());
182 213
183 // Test GetAll. Non-deleted app identifiers should all be listed. 214 // Test GetAll. Non-deleted app identifiers should all be listed.
184 std::vector<PushMessagingAppIdentifier> all_app_identifiers = 215 std::vector<PushMessagingAppIdentifier> all_app_identifiers =
185 PushMessagingAppIdentifier::GetAll(profile()); 216 PushMessagingAppIdentifier::GetAll(profile());
186 EXPECT_EQ(2u, all_app_identifiers.size()); 217 EXPECT_EQ(2u, all_app_identifiers.size());
187 // Order is unspecified. 218 // Order is unspecified.
188 bool contained_different_origin = false; 219 bool contained_different_origin = false;
189 bool contained_different_sw = false; 220 bool contained_different_sw = false;
190 for (const PushMessagingAppIdentifier& app_identifier : all_app_identifiers) { 221 for (const PushMessagingAppIdentifier& app_identifier : all_app_identifiers) {
191 if (app_identifier.app_id() == different_origin_.app_id()) { 222 if (app_identifier.app_id() == different_origin_.app_id()) {
192 ExpectAppIdentifiersEqual(different_origin_, app_identifier); 223 ExpectAppIdentifiersEqual(different_origin_, app_identifier);
193 contained_different_origin = true; 224 contained_different_origin = true;
194 } else { 225 } else {
195 ExpectAppIdentifiersEqual(different_sw_, app_identifier); 226 ExpectAppIdentifiersEqual(different_sw_, app_identifier);
196 contained_different_sw = true; 227 contained_different_sw = true;
197 } 228 }
198 } 229 }
199 EXPECT_TRUE(contained_different_origin); 230 EXPECT_TRUE(contained_different_origin);
200 EXPECT_TRUE(contained_different_sw); 231 EXPECT_TRUE(contained_different_sw);
201 } 232 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698