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

Unified Diff: chrome/browser/push_messaging/push_messaging_app_identifier_unittest.cc

Issue 1122403009: Add tests for PushMessagingAppIdentifier (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ident_refactor
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/push_messaging/push_messaging_app_identifier_unittest.cc
diff --git a/chrome/browser/push_messaging/push_messaging_app_identifier_unittest.cc b/chrome/browser/push_messaging/push_messaging_app_identifier_unittest.cc
index e79364d22d2b08bbb06beb12f30580f399cb1f57..a7b8aafa3e919aecb470e1ec09189cddf8bef2cf 100644
--- a/chrome/browser/push_messaging/push_messaging_app_identifier_unittest.cc
+++ b/chrome/browser/push_messaging/push_messaging_app_identifier_unittest.cc
@@ -3,8 +3,14 @@
// found in the LICENSE file.
#include "chrome/browser/push_messaging/push_messaging_app_identifier.h"
+
+#include "base/message_loop/message_loop.h"
+#include "chrome/test/base/testing_profile.h"
+#include "content/public/test/test_browser_thread.h"
#include "testing/gtest/include/gtest/gtest.h"
+using content::BrowserThread;
+
class PushMessagingAppIdentifierTest : public testing::Test {
protected:
PushMessagingAppIdentifier GenerateId(
@@ -38,3 +44,127 @@ TEST_F(PushMessagingAppIdentifierTest, UniqueGuids) {
PushMessagingAppIdentifier::Generate(
GURL("https://www.example.com/"), 1).app_id());
}
+
+namespace {
+
+void ExpectEq(const PushMessagingAppIdentifier& a,
Peter Beverloo 2015/05/12 13:55:40 I'd slightly prefer to define an (anonymous) equal
johnme 2015/05/13 13:46:20 Discussed offline, and we've agreed that it's ok t
+ const PushMessagingAppIdentifier& b) {
+ EXPECT_EQ(a.app_id(), b.app_id());
+ EXPECT_EQ(a.origin(), b.origin());
+ EXPECT_EQ(a.service_worker_registration_id(),
+ b.service_worker_registration_id());
+}
+
+} // namespace
+
+TEST_F(PushMessagingAppIdentifierTest, PersistAndDeleteFromPrefs) {
+ base::MessageLoop message_loop;
+ content::TestBrowserThread ui_thread(BrowserThread::UI, &message_loop);
Peter Beverloo 2015/05/12 13:55:40 Since we've already got the PushMessagingAppIdenti
johnme 2015/05/13 13:46:20 Done.
+ TestingProfile profile;
+
+ PushMessagingAppIdentifier original1 =
+ PushMessagingAppIdentifier::Generate(GURL("https://www.example.com/"), 1);
+ EXPECT_TRUE(PushMessagingAppIdentifier::Get(&profile,
+ original1.app_id()).is_null());
+ EXPECT_TRUE(PushMessagingAppIdentifier::Get(&profile, original1.origin(),
+ original1.service_worker_registration_id()).is_null());
+
+ // Test basic PersistToPrefs round trips.
Peter Beverloo 2015/05/12 13:55:40 nit: This can be a separate test.
johnme 2015/05/13 13:46:20 Done.
+ original1.PersistToPrefs(&profile);
+ {
+ PushMessagingAppIdentifier get_app_id_1 =
+ PushMessagingAppIdentifier::Get(&profile, original1.app_id());
+ EXPECT_FALSE(get_app_id_1.is_null());
+ ExpectEq(original1, get_app_id_1);
+ }
+ {
+ PushMessagingAppIdentifier get_origin_and_swr_id_1 =
+ PushMessagingAppIdentifier::Get(&profile,
+ original1.origin(), original1.service_worker_registration_id());
+ EXPECT_FALSE(get_origin_and_swr_id_1.is_null());
+ ExpectEq(original1, get_origin_and_swr_id_1);
+ }
+
+ // Test that PersistToPrefs overwrites (when same origin and Service Worker).
Peter Beverloo 2015/05/12 13:55:39 nit: This can be a separate test.
johnme 2015/05/13 13:46:20 Done.
+ PushMessagingAppIdentifier original2 =
+ PushMessagingAppIdentifier::Generate(GURL("https://www.example.com/"), 1);
+ EXPECT_NE(original1.app_id(), original2.app_id());
+ EXPECT_EQ(original1.origin(), original2.origin());
+ EXPECT_EQ(original1.service_worker_registration_id(),
+ original2.service_worker_registration_id());
+ original2.PersistToPrefs(&profile);
+ {
+ PushMessagingAppIdentifier get_app_id_1 =
+ PushMessagingAppIdentifier::Get(&profile, original1.app_id());
+ EXPECT_TRUE(get_app_id_1.is_null());
+ }
+ {
+ PushMessagingAppIdentifier get_app_id_2 =
+ PushMessagingAppIdentifier::Get(&profile, original2.app_id());
+ EXPECT_FALSE(get_app_id_2.is_null());
+ ExpectEq(original2, get_app_id_2);
+ }
+ {
+ PushMessagingAppIdentifier get_origin_and_swr_id_1 =
+ PushMessagingAppIdentifier::Get(&profile,
+ original1.origin(), original1.service_worker_registration_id());
+ EXPECT_FALSE(get_origin_and_swr_id_1.is_null());
+ ExpectEq(original2, get_origin_and_swr_id_1);
+ }
+
+ // Test that PersistToPrefs doesn't overwrite (when different origin or SW).
Peter Beverloo 2015/05/12 13:55:40 nit: This can be a separate test.
johnme 2015/05/13 13:46:20 Done.
+ PushMessagingAppIdentifier original3 =
+ PushMessagingAppIdentifier::Generate(GURL("https://foo.example.com/"), 1);
+ PushMessagingAppIdentifier original4 =
+ PushMessagingAppIdentifier::Generate(GURL("https://www.example.com/"), 2);
+ EXPECT_NE(original2.app_id(), original3.app_id());
+ EXPECT_NE(original2.app_id(), original4.app_id());
+ original3.PersistToPrefs(&profile);
+ original4.PersistToPrefs(&profile);
+ {
+ PushMessagingAppIdentifier get_app_id_2 =
+ PushMessagingAppIdentifier::Get(&profile, original2.app_id());
+ EXPECT_FALSE(get_app_id_2.is_null());
+ ExpectEq(original2, get_app_id_2);
+ }
+ {
+ PushMessagingAppIdentifier get_origin_and_swr_id_1 =
+ PushMessagingAppIdentifier::Get(&profile,
+ original1.origin(), original1.service_worker_registration_id());
+ EXPECT_FALSE(get_origin_and_swr_id_1.is_null());
+ ExpectEq(original2, get_origin_and_swr_id_1);
+ }
+
+ // Test DeleteFromPrefs. Deleted app identifier should be deleted.
Peter Beverloo 2015/05/12 13:55:39 nit: This can be a separate test.
johnme 2015/05/13 13:46:20 Done.
+ original2.DeleteFromPrefs(&profile);
+ {
+ PushMessagingAppIdentifier get_app_id_2 =
+ PushMessagingAppIdentifier::Get(&profile, original2.app_id());
+ EXPECT_TRUE(get_app_id_2.is_null());
+ }
+ {
+ PushMessagingAppIdentifier get_origin_and_swr_id_1 =
+ PushMessagingAppIdentifier::Get(&profile,
+ original1.origin(), original1.service_worker_registration_id());
+ EXPECT_TRUE(get_origin_and_swr_id_1.is_null());
+ }
+
+ // Test GetAll. Non-deleted app identifiers should all be listed.
Peter Beverloo 2015/05/12 13:55:39 nit: This can be a separate test.
johnme 2015/05/13 13:46:20 Done.
+ std::vector<PushMessagingAppIdentifier> all_app_identifiers =
+ PushMessagingAppIdentifier::GetAll(&profile);
+ EXPECT_EQ(2u, all_app_identifiers.size());
+ // Order is unspecified.
+ bool contained_3 = false;
+ bool contained_4 = false;
+ for (const PushMessagingAppIdentifier& app_identifier : all_app_identifiers) {
+ if (app_identifier.app_id() == original3.app_id()) {
+ ExpectEq(original3, app_identifier);
+ contained_3 = true;
+ } else {
+ ExpectEq(original4, app_identifier);
+ contained_4 = true;
+ }
+ }
+ EXPECT_TRUE(contained_3);
+ EXPECT_TRUE(contained_4);
+}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698