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

Side by Side Diff: google_apis/gcm/engine/account_mapping_unittest.cc

Issue 491443004: [GCM] Adding GCMAccountMapper to link signed in profile to accounts. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressing feedback from Jian Li Created 6 years, 3 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 | Annotate | Revision Log
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 "google_apis/gcm/engine/account_mapping.h" 5 #include "google_apis/gcm/engine/account_mapping.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 10
11 namespace gcm { 11 namespace gcm {
12 12
13 namespace { 13 namespace {
14 14
15 TEST(AccountMappingTest, SerializeAccountMapping) { 15 TEST(AccountMappingTest, SerializeAccountMapping) {
16 AccountMapping account_mapping; 16 AccountMapping account_mapping;
17 account_mapping.account_id = "acc_id"; 17 account_mapping.account_id = "acc_id";
18 account_mapping.email = "test@example.com"; 18 account_mapping.email = "test@example.com";
19 account_mapping.access_token = "access_token"; 19 account_mapping.access_token = "access_token";
20 account_mapping.status = AccountMapping::NEW;
21 account_mapping.status_change_timestamp = base::Time();
22 account_mapping.last_message_id.clear();
23
24 EXPECT_EQ("test@example.com&new&0", account_mapping.SerializeAsString());
25
20 account_mapping.status = AccountMapping::ADDING; 26 account_mapping.status = AccountMapping::ADDING;
21 account_mapping.status_change_timestamp = base::Time(); 27 account_mapping.status_change_timestamp =
28 base::Time::FromInternalValue(1305797421259977LL);
22 account_mapping.last_message_id = "last_message_id_1"; 29 account_mapping.last_message_id = "last_message_id_1";
23 account_mapping.last_message_type = AccountMapping::MSG_ADD;
24 30
25 EXPECT_EQ("test@example.com&0&add&last_message_id_1", 31 EXPECT_EQ("test@example.com&adding&1305797421259977&last_message_id_1",
32 account_mapping.SerializeAsString());
33
34 account_mapping.status = AccountMapping::MAPPED;
35
36 EXPECT_EQ("test@example.com&mapped&1305797421259977&last_message_id_1",
37 account_mapping.SerializeAsString());
38
39 account_mapping.last_message_id.clear();
40
41 EXPECT_EQ("test@example.com&mapped&1305797421259977",
26 account_mapping.SerializeAsString()); 42 account_mapping.SerializeAsString());
27 43
28 account_mapping.account_id = "acc_id2"; 44 account_mapping.account_id = "acc_id2";
29 account_mapping.email = "test@gmail.com"; 45 account_mapping.email = "test@gmail.com";
30 account_mapping.access_token = "access_token"; // should be ignored. 46 account_mapping.access_token = "access_token"; // should be ignored.
31 account_mapping.status = AccountMapping::MAPPED; // should be ignored. 47 account_mapping.status = AccountMapping::REMOVING;
32 account_mapping.status_change_timestamp =
33 base::Time::FromInternalValue(1305797421259977LL);
34 account_mapping.last_message_id = "last_message_id_2"; 48 account_mapping.last_message_id = "last_message_id_2";
35 account_mapping.last_message_type = AccountMapping::MSG_REMOVE;
36 49
37 EXPECT_EQ("test@gmail.com&1305797421259977&remove&last_message_id_2", 50 EXPECT_EQ("test@gmail.com&removing&1305797421259977&last_message_id_2",
38 account_mapping.SerializeAsString());
39
40 account_mapping.last_message_type = AccountMapping::MSG_NONE;
41
42 EXPECT_EQ("test@gmail.com&1305797421259977&none",
43 account_mapping.SerializeAsString()); 51 account_mapping.SerializeAsString());
44 } 52 }
45 53
46 TEST(AccountMappingTest, DeserializeAccountMapping) { 54 TEST(AccountMappingTest, DeserializeAccountMapping) {
47 AccountMapping account_mapping; 55 AccountMapping account_mapping;
48 account_mapping.account_id = "acc_id"; 56 account_mapping.account_id = "acc_id";
49 EXPECT_TRUE(account_mapping.ParseFromString( 57
50 "test@example.com&0&add&last_message_id_1")); 58 EXPECT_TRUE(account_mapping.ParseFromString("test@example.com&new&0"));
51 EXPECT_EQ("acc_id", account_mapping.account_id); 59 EXPECT_EQ("acc_id", account_mapping.account_id);
52 EXPECT_EQ("test@example.com", account_mapping.email); 60 EXPECT_EQ("test@example.com", account_mapping.email);
53 EXPECT_TRUE(account_mapping.access_token.empty()); 61 EXPECT_TRUE(account_mapping.access_token.empty());
62 EXPECT_EQ(AccountMapping::NEW, account_mapping.status);
63 EXPECT_EQ(base::Time(), account_mapping.status_change_timestamp);
64 EXPECT_TRUE(account_mapping.last_message_id.empty());
65
66 EXPECT_TRUE(account_mapping.ParseFromString(
67 "test@gmail.com&adding&1305797421259977&last_message_id_1"));
68 EXPECT_EQ("acc_id", account_mapping.account_id);
69 EXPECT_EQ("test@gmail.com", account_mapping.email);
70 EXPECT_TRUE(account_mapping.access_token.empty());
54 EXPECT_EQ(AccountMapping::ADDING, account_mapping.status); 71 EXPECT_EQ(AccountMapping::ADDING, account_mapping.status);
55 EXPECT_EQ(base::Time(), account_mapping.status_change_timestamp); 72 EXPECT_EQ(base::Time::FromInternalValue(1305797421259977LL),
56 EXPECT_EQ(AccountMapping::MSG_ADD, account_mapping.last_message_type); 73 account_mapping.status_change_timestamp);
57 EXPECT_EQ("last_message_id_1", account_mapping.last_message_id); 74 EXPECT_EQ("last_message_id_1", account_mapping.last_message_id);
58 75
59 EXPECT_TRUE(account_mapping.ParseFromString( 76 EXPECT_TRUE(account_mapping.ParseFromString(
60 "test@gmail.com&1305797421259977&remove&last_message_id_2")); 77 "test@example.com&mapped&1305797421259977"));
78 EXPECT_EQ("acc_id", account_mapping.account_id);
79 EXPECT_EQ("test@example.com", account_mapping.email);
80 EXPECT_TRUE(account_mapping.access_token.empty());
81 EXPECT_EQ(AccountMapping::MAPPED, account_mapping.status);
82 EXPECT_EQ(base::Time::FromInternalValue(1305797421259977LL),
83 account_mapping.status_change_timestamp);
84 EXPECT_TRUE(account_mapping.last_message_id.empty());
85
86 EXPECT_TRUE(account_mapping.ParseFromString(
87 "test@gmail.com&mapped&1305797421259977&last_message_id_1"));
88 EXPECT_EQ("acc_id", account_mapping.account_id);
89 EXPECT_EQ("test@gmail.com", account_mapping.email);
90 EXPECT_TRUE(account_mapping.access_token.empty());
91 EXPECT_EQ(AccountMapping::MAPPED, account_mapping.status);
92 EXPECT_EQ(base::Time::FromInternalValue(1305797421259977LL),
93 account_mapping.status_change_timestamp);
94 EXPECT_EQ("last_message_id_1", account_mapping.last_message_id);
95
96 EXPECT_TRUE(account_mapping.ParseFromString(
97 "test@gmail.com&removing&1305797421259977&last_message_id_2"));
61 EXPECT_EQ("acc_id", account_mapping.account_id); 98 EXPECT_EQ("acc_id", account_mapping.account_id);
62 EXPECT_EQ("test@gmail.com", account_mapping.email); 99 EXPECT_EQ("test@gmail.com", account_mapping.email);
63 EXPECT_TRUE(account_mapping.access_token.empty()); 100 EXPECT_TRUE(account_mapping.access_token.empty());
64 EXPECT_EQ(AccountMapping::REMOVING, account_mapping.status); 101 EXPECT_EQ(AccountMapping::REMOVING, account_mapping.status);
65 EXPECT_EQ(base::Time::FromInternalValue(1305797421259977LL), 102 EXPECT_EQ(base::Time::FromInternalValue(1305797421259977LL),
66 account_mapping.status_change_timestamp); 103 account_mapping.status_change_timestamp);
67 EXPECT_EQ(AccountMapping::MSG_REMOVE, account_mapping.last_message_type);
68 EXPECT_EQ("last_message_id_2", account_mapping.last_message_id); 104 EXPECT_EQ("last_message_id_2", account_mapping.last_message_id);
69
70 EXPECT_TRUE(account_mapping.ParseFromString(
71 "test@gmail.com&1305797421259977&none"));
72 EXPECT_EQ("acc_id", account_mapping.account_id);
73 EXPECT_EQ("test@gmail.com", account_mapping.email);
74 EXPECT_TRUE(account_mapping.access_token.empty());
75 EXPECT_EQ(AccountMapping::MAPPED, account_mapping.status);
76 EXPECT_EQ(base::Time::FromInternalValue(1305797421259977LL),
77 account_mapping.status_change_timestamp);
78 EXPECT_EQ(AccountMapping::MSG_NONE, account_mapping.last_message_type);
79 EXPECT_EQ("", account_mapping.last_message_id);
80 } 105 }
81 106
82 TEST(AccountMappingTest, DeserializeAccountMappingInvalidInput) { 107 TEST(AccountMappingTest, DeserializeAccountMappingInvalidInput) {
83 AccountMapping account_mapping; 108 AccountMapping account_mapping;
84 account_mapping.account_id = "acc_id"; 109 account_mapping.account_id = "acc_id";
85 // Too many agruments. 110 // Too many agruments.
86 EXPECT_FALSE(account_mapping.ParseFromString( 111 EXPECT_FALSE(account_mapping.ParseFromString(
87 "test@example.com&1305797421259935" 112 "test@example.com&adding&1305797421259935&last_message_id_1&stuff_here"));
88 "&add&last_message_id_1&stuff_here"));
89 // Too few arguments. 113 // Too few arguments.
90 EXPECT_FALSE(account_mapping.ParseFromString( 114 EXPECT_FALSE(account_mapping.ParseFromString(
91 "test@example.com&1305797421259935&remove")); 115 "test@example.com&removing&1305797421259935"));
92 // Too few arguments. 116 // Too few arguments.
93 EXPECT_FALSE(account_mapping.ParseFromString( 117 EXPECT_FALSE(account_mapping.ParseFromString(
94 "test@example.com&1305797421259935")); 118 "test@example.com&adding&1305797421259935"));
119 // Too few arguments.
120 EXPECT_FALSE(account_mapping.ParseFromString(
121 "test@example.com&new"));
122 // Too few arguments.
123 EXPECT_FALSE(account_mapping.ParseFromString(
124 "test@example.com&mapped"));
95 // Missing email. 125 // Missing email.
96 EXPECT_FALSE(account_mapping.ParseFromString( 126 EXPECT_FALSE(account_mapping.ParseFromString(
97 "&1305797421259935&remove&last_message_id_2")); 127 "&remove&1305797421259935&last_message_id_2"));
128 // Missing mapping status.
129 EXPECT_FALSE(account_mapping.ParseFromString(
130 "test@example.com&&1305797421259935&last_message_id_2"));
131 // Unkown mapping status.
132 EXPECT_FALSE(account_mapping.ParseFromString(
133 "test@example.com&random&1305797421259935&last_message_id_2"));
98 // Missing mapping status change timestamp. 134 // Missing mapping status change timestamp.
99 EXPECT_FALSE(account_mapping.ParseFromString( 135 EXPECT_FALSE(account_mapping.ParseFromString(
100 "test@gmail.com&&remove&last_message_id_2")); 136 "test@gmail.com&removing&&last_message_id_2"));
101 // Last mapping status change timestamp not parseable. 137 // Last mapping status change timestamp not parseable.
102 EXPECT_FALSE(account_mapping.ParseFromString( 138 EXPECT_FALSE(account_mapping.ParseFromString(
103 "test@gmail.com&remove&asdfjkl&last_message_id_2")); 139 "test@gmail.com&removing&asdfjkl&last_message_id_2"));
104 // Missing message type.
105 EXPECT_FALSE(account_mapping.ParseFromString(
106 "test@example.com&1305797421259935&&last_message_id_2"));
107 // Unkown message type.
108 EXPECT_FALSE(account_mapping.ParseFromString(
109 "test@example.com&1305797421259935&random&last_message_id_2"));
110 // Message type is none when message details specified.
111 EXPECT_FALSE(account_mapping.ParseFromString(
112 "test@example.com&1305797421259935&none&last_message_id_2"));
113 // Message type is messed up.
114 EXPECT_FALSE(account_mapping.ParseFromString(
115 "test@example.com&1305797421259935&random"));
116 // Missing last message ID. 140 // Missing last message ID.
117 EXPECT_FALSE(account_mapping.ParseFromString( 141 EXPECT_FALSE(account_mapping.ParseFromString(
118 "test@example.com&1305797421259935&remove&")); 142 "test@example.com&removing&1305797421259935&"));
119 } 143 }
120 144
121 } // namespace 145 } // namespace
122 } // namespace gcm 146 } // namespace gcm
OLDNEW
« no previous file with comments | « google_apis/gcm/engine/account_mapping.cc ('k') | google_apis/gcm/engine/gcm_store_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698