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

Side by Side Diff: chrome/browser/sync/internal_api/syncapi_unittest.cc

Issue 9460047: sync: remove use of protobuf extensions in protocol to reduce static init overhead. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix nigori access in testserver Created 8 years, 9 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 (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 // Unit tests for the SyncApi. Note that a lot of the underlying 5 // Unit tests for the SyncApi. Note that a lot of the underlying
6 // functionality is provided by the Syncable layer, which has its own 6 // functionality is provided by the Syncable layer, which has its own
7 // unit tests. We'll test SyncApi specific things in this harness. 7 // unit tests. We'll test SyncApi specific things in this harness.
8 8
9 #include <cstddef> 9 #include <cstddef>
10 #include <map> 10 #include <map>
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after
502 } 502 }
503 503
504 TEST_F(SyncApiTest, BaseNodeSetSpecifics) { 504 TEST_F(SyncApiTest, BaseNodeSetSpecifics) {
505 int64 child_id = MakeNode(test_user_share_.user_share(), 505 int64 child_id = MakeNode(test_user_share_.user_share(),
506 syncable::BOOKMARKS, "testtag"); 506 syncable::BOOKMARKS, "testtag");
507 WriteTransaction trans(FROM_HERE, test_user_share_.user_share()); 507 WriteTransaction trans(FROM_HERE, test_user_share_.user_share());
508 WriteNode node(&trans); 508 WriteNode node(&trans);
509 EXPECT_TRUE(node.InitByIdLookup(child_id)); 509 EXPECT_TRUE(node.InitByIdLookup(child_id));
510 510
511 sync_pb::EntitySpecifics entity_specifics; 511 sync_pb::EntitySpecifics entity_specifics;
512 entity_specifics.MutableExtension(sync_pb::bookmark)-> 512 entity_specifics.mutable_bookmark()->set_url("http://www.google.com");
513 set_url("http://www.google.com");
514 513
515 EXPECT_NE(entity_specifics.SerializeAsString(), 514 EXPECT_NE(entity_specifics.SerializeAsString(),
516 node.GetEntitySpecifics().SerializeAsString()); 515 node.GetEntitySpecifics().SerializeAsString());
517 node.SetEntitySpecifics(entity_specifics); 516 node.SetEntitySpecifics(entity_specifics);
518 EXPECT_EQ(entity_specifics.SerializeAsString(), 517 EXPECT_EQ(entity_specifics.SerializeAsString(),
519 node.GetEntitySpecifics().SerializeAsString()); 518 node.GetEntitySpecifics().SerializeAsString());
520 } 519 }
521 520
522 TEST_F(SyncApiTest, BaseNodeSetSpecificsPreservesUnknownFields) { 521 TEST_F(SyncApiTest, BaseNodeSetSpecificsPreservesUnknownFields) {
523 int64 child_id = MakeNode(test_user_share_.user_share(), 522 int64 child_id = MakeNode(test_user_share_.user_share(),
524 syncable::BOOKMARKS, "testtag"); 523 syncable::BOOKMARKS, "testtag");
525 WriteTransaction trans(FROM_HERE, test_user_share_.user_share()); 524 WriteTransaction trans(FROM_HERE, test_user_share_.user_share());
526 WriteNode node(&trans); 525 WriteNode node(&trans);
527 EXPECT_TRUE(node.InitByIdLookup(child_id)); 526 EXPECT_TRUE(node.InitByIdLookup(child_id));
528 EXPECT_TRUE(node.GetEntitySpecifics().unknown_fields().empty()); 527 EXPECT_TRUE(node.GetEntitySpecifics().unknown_fields().empty());
529 528
530 sync_pb::EntitySpecifics entity_specifics; 529 sync_pb::EntitySpecifics entity_specifics;
531 entity_specifics.MutableExtension(sync_pb::bookmark)-> 530 entity_specifics.mutable_bookmark()->set_url("http://www.google.com");
532 set_url("http://www.google.com");
533 entity_specifics.mutable_unknown_fields()->AddFixed32(5, 100); 531 entity_specifics.mutable_unknown_fields()->AddFixed32(5, 100);
534 node.SetEntitySpecifics(entity_specifics); 532 node.SetEntitySpecifics(entity_specifics);
535 EXPECT_FALSE(node.GetEntitySpecifics().unknown_fields().empty()); 533 EXPECT_FALSE(node.GetEntitySpecifics().unknown_fields().empty());
536 534
537 entity_specifics.mutable_unknown_fields()->Clear(); 535 entity_specifics.mutable_unknown_fields()->Clear();
538 node.SetEntitySpecifics(entity_specifics); 536 node.SetEntitySpecifics(entity_specifics);
539 EXPECT_FALSE(node.GetEntitySpecifics().unknown_fields().empty()); 537 EXPECT_FALSE(node.GetEntitySpecifics().unknown_fields().empty());
540 } 538 }
541 539
542 namespace { 540 namespace {
(...skipping 1272 matching lines...) Expand 10 before | Expand all | Expand 10 after
1815 "testtag"); 1813 "testtag");
1816 int64 node_id2 = MakeNode(sync_manager_.GetUserShare(), 1814 int64 node_id2 = MakeNode(sync_manager_.GetUserShare(),
1817 syncable::BOOKMARKS, 1815 syncable::BOOKMARKS,
1818 "testtag2"); 1816 "testtag2");
1819 { 1817 {
1820 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 1818 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
1821 WriteNode node(&trans); 1819 WriteNode node(&trans);
1822 EXPECT_TRUE(node.InitByIdLookup(node_id1)); 1820 EXPECT_TRUE(node.InitByIdLookup(node_id1));
1823 1821
1824 sync_pb::EntitySpecifics entity_specifics; 1822 sync_pb::EntitySpecifics entity_specifics;
1825 entity_specifics.MutableExtension(sync_pb::bookmark)->set_url(url); 1823 entity_specifics.mutable_bookmark()->set_url(url);
1826 node.SetEntitySpecifics(entity_specifics); 1824 node.SetEntitySpecifics(entity_specifics);
1827 1825
1828 // Set the old style title. 1826 // Set the old style title.
1829 syncable::MutableEntry* node_entry = node.entry_; 1827 syncable::MutableEntry* node_entry = node.entry_;
1830 node_entry->Put(syncable::NON_UNIQUE_NAME, title); 1828 node_entry->Put(syncable::NON_UNIQUE_NAME, title);
1831 1829
1832 WriteNode node2(&trans); 1830 WriteNode node2(&trans);
1833 EXPECT_TRUE(node2.InitByIdLookup(node_id2)); 1831 EXPECT_TRUE(node2.InitByIdLookup(node_id2));
1834 1832
1835 sync_pb::EntitySpecifics entity_specifics2; 1833 sync_pb::EntitySpecifics entity_specifics2;
1836 entity_specifics2.MutableExtension(sync_pb::bookmark)->set_url(url2); 1834 entity_specifics2.mutable_bookmark()->set_url(url2);
1837 node2.SetEntitySpecifics(entity_specifics2); 1835 node2.SetEntitySpecifics(entity_specifics2);
1838 1836
1839 // Set the old style title. 1837 // Set the old style title.
1840 syncable::MutableEntry* node_entry2 = node2.entry_; 1838 syncable::MutableEntry* node_entry2 = node2.entry_;
1841 node_entry2->Put(syncable::NON_UNIQUE_NAME, title2); 1839 node_entry2->Put(syncable::NON_UNIQUE_NAME, title2);
1842 } 1840 }
1843 1841
1844 { 1842 {
1845 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 1843 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
1846 ReadNode node(&trans); 1844 ReadNode node(&trans);
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
1932 EXPECT_EQ(title, node.GetTitle()); 1930 EXPECT_EQ(title, node.GetTitle());
1933 EXPECT_EQ(url, node.GetURL()); 1931 EXPECT_EQ(url, node.GetURL());
1934 } 1932 }
1935 } 1933 }
1936 1934
1937 // Verifies WriteNode::UpdateEntryWithEncryption does not make unnecessary 1935 // Verifies WriteNode::UpdateEntryWithEncryption does not make unnecessary
1938 // changes. 1936 // changes.
1939 TEST_F(SyncManagerTest, UpdateEntryWithEncryption) { 1937 TEST_F(SyncManagerTest, UpdateEntryWithEncryption) {
1940 std::string client_tag = "title"; 1938 std::string client_tag = "title";
1941 sync_pb::EntitySpecifics entity_specifics; 1939 sync_pb::EntitySpecifics entity_specifics;
1942 entity_specifics.MutableExtension(sync_pb::bookmark)->set_url("url"); 1940 entity_specifics.mutable_bookmark()->set_url("url");
1943 entity_specifics.MutableExtension(sync_pb::bookmark)->set_title("title"); 1941 entity_specifics.mutable_bookmark()->set_title("title");
1944 MakeServerNode(sync_manager_.GetUserShare(), syncable::BOOKMARKS, client_tag, 1942 MakeServerNode(sync_manager_.GetUserShare(), syncable::BOOKMARKS, client_tag,
1945 BaseNode::GenerateSyncableHash(syncable::BOOKMARKS, 1943 BaseNode::GenerateSyncableHash(syncable::BOOKMARKS,
1946 client_tag), 1944 client_tag),
1947 entity_specifics); 1945 entity_specifics);
1948 // New node shouldn't start off unsynced. 1946 // New node shouldn't start off unsynced.
1949 EXPECT_FALSE(ResetUnsyncedEntry(syncable::BOOKMARKS, client_tag)); 1947 EXPECT_FALSE(ResetUnsyncedEntry(syncable::BOOKMARKS, client_tag));
1950 // Manually change to the same data. Should not set is_unsynced. 1948 // Manually change to the same data. Should not set is_unsynced.
1951 { 1949 {
1952 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 1950 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
1953 WriteNode node(&trans); 1951 WriteNode node(&trans);
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
2041 EXPECT_FALSE(node_entry->Get(IS_UNSYNCED)); 2039 EXPECT_FALSE(node_entry->Get(IS_UNSYNCED));
2042 EXPECT_EQ(kEncryptedString, node_entry->Get(NON_UNIQUE_NAME)); 2040 EXPECT_EQ(kEncryptedString, node_entry->Get(NON_UNIQUE_NAME));
2043 Cryptographer* cryptographer = trans.GetCryptographer(); 2041 Cryptographer* cryptographer = trans.GetCryptographer();
2044 EXPECT_TRUE(cryptographer->CanDecryptUsingDefaultKey( 2042 EXPECT_TRUE(cryptographer->CanDecryptUsingDefaultKey(
2045 specifics.encrypted())); 2043 specifics.encrypted()));
2046 } 2044 }
2047 EXPECT_FALSE(ResetUnsyncedEntry(syncable::BOOKMARKS, client_tag)); 2045 EXPECT_FALSE(ResetUnsyncedEntry(syncable::BOOKMARKS, client_tag));
2048 2046
2049 // Manually change to different data. Should set is_unsynced. 2047 // Manually change to different data. Should set is_unsynced.
2050 { 2048 {
2051 entity_specifics.MutableExtension(sync_pb::bookmark)->set_url("url2"); 2049 entity_specifics.mutable_bookmark()->set_url("url2");
2052 entity_specifics.MutableExtension(sync_pb::bookmark)->set_title("title2"); 2050 entity_specifics.mutable_bookmark()->set_title("title2");
2053 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 2051 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
2054 WriteNode node(&trans); 2052 WriteNode node(&trans);
2055 EXPECT_TRUE(node.InitByClientTagLookup(syncable::BOOKMARKS, client_tag)); 2053 EXPECT_TRUE(node.InitByClientTagLookup(syncable::BOOKMARKS, client_tag));
2056 node.SetEntitySpecifics(entity_specifics); 2054 node.SetEntitySpecifics(entity_specifics);
2057 const syncable::Entry* node_entry = node.GetEntry(); 2055 const syncable::Entry* node_entry = node.GetEntry();
2058 const sync_pb::EntitySpecifics& specifics = node_entry->Get(SPECIFICS); 2056 const sync_pb::EntitySpecifics& specifics = node_entry->Get(SPECIFICS);
2059 EXPECT_TRUE(specifics.has_encrypted()); 2057 EXPECT_TRUE(specifics.has_encrypted());
2060 EXPECT_TRUE(node_entry->Get(IS_UNSYNCED)); 2058 EXPECT_TRUE(node_entry->Get(IS_UNSYNCED));
2061 EXPECT_EQ(kEncryptedString, node_entry->Get(NON_UNIQUE_NAME)); 2059 EXPECT_EQ(kEncryptedString, node_entry->Get(NON_UNIQUE_NAME));
2062 Cryptographer* cryptographer = trans.GetCryptographer(); 2060 Cryptographer* cryptographer = trans.GetCryptographer();
2063 EXPECT_TRUE(cryptographer->CanDecryptUsingDefaultKey( 2061 EXPECT_TRUE(cryptographer->CanDecryptUsingDefaultKey(
2064 specifics.encrypted())); 2062 specifics.encrypted()));
2065 } 2063 }
2066 } 2064 }
2067 2065
2068 // Passwords have their own handling for encryption. Verify it does not result 2066 // Passwords have their own handling for encryption. Verify it does not result
2069 // in unnecessary writes via SetEntitySpecifics. 2067 // in unnecessary writes via SetEntitySpecifics.
2070 TEST_F(SyncManagerTest, UpdatePasswordSetEntitySpecificsNoChange) { 2068 TEST_F(SyncManagerTest, UpdatePasswordSetEntitySpecificsNoChange) {
2071 std::string client_tag = "title"; 2069 std::string client_tag = "title";
2072 EXPECT_TRUE(SetUpEncryption(WRITE_TO_NIGORI, DEFAULT_ENCRYPTION)); 2070 EXPECT_TRUE(SetUpEncryption(WRITE_TO_NIGORI, DEFAULT_ENCRYPTION));
2073 sync_pb::EntitySpecifics entity_specifics; 2071 sync_pb::EntitySpecifics entity_specifics;
2074 { 2072 {
2075 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 2073 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
2076 Cryptographer* cryptographer = trans.GetCryptographer(); 2074 Cryptographer* cryptographer = trans.GetCryptographer();
2077 sync_pb::PasswordSpecificsData data; 2075 sync_pb::PasswordSpecificsData data;
2078 data.set_password_value("secret"); 2076 data.set_password_value("secret");
2079 cryptographer->Encrypt( 2077 cryptographer->Encrypt(
2080 data, 2078 data,
2081 entity_specifics.MutableExtension(sync_pb::password)-> 2079 entity_specifics.mutable_password()->
2082 mutable_encrypted()); 2080 mutable_encrypted());
2083 } 2081 }
2084 MakeServerNode(sync_manager_.GetUserShare(), syncable::PASSWORDS, client_tag, 2082 MakeServerNode(sync_manager_.GetUserShare(), syncable::PASSWORDS, client_tag,
2085 BaseNode::GenerateSyncableHash(syncable::PASSWORDS, 2083 BaseNode::GenerateSyncableHash(syncable::PASSWORDS,
2086 client_tag), 2084 client_tag),
2087 entity_specifics); 2085 entity_specifics);
2088 // New node shouldn't start off unsynced. 2086 // New node shouldn't start off unsynced.
2089 EXPECT_FALSE(ResetUnsyncedEntry(syncable::PASSWORDS, client_tag)); 2087 EXPECT_FALSE(ResetUnsyncedEntry(syncable::PASSWORDS, client_tag));
2090 2088
2091 // Manually change to the same data via SetEntitySpecifics. Should not set 2089 // Manually change to the same data via SetEntitySpecifics. Should not set
(...skipping 13 matching lines...) Expand all
2105 std::string client_tag = "title"; 2103 std::string client_tag = "title";
2106 EXPECT_TRUE(SetUpEncryption(WRITE_TO_NIGORI, DEFAULT_ENCRYPTION)); 2104 EXPECT_TRUE(SetUpEncryption(WRITE_TO_NIGORI, DEFAULT_ENCRYPTION));
2107 sync_pb::EntitySpecifics entity_specifics; 2105 sync_pb::EntitySpecifics entity_specifics;
2108 { 2106 {
2109 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 2107 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
2110 Cryptographer* cryptographer = trans.GetCryptographer(); 2108 Cryptographer* cryptographer = trans.GetCryptographer();
2111 sync_pb::PasswordSpecificsData data; 2109 sync_pb::PasswordSpecificsData data;
2112 data.set_password_value("secret"); 2110 data.set_password_value("secret");
2113 cryptographer->Encrypt( 2111 cryptographer->Encrypt(
2114 data, 2112 data,
2115 entity_specifics.MutableExtension(sync_pb::password)-> 2113 entity_specifics.mutable_password()->
2116 mutable_encrypted()); 2114 mutable_encrypted());
2117 } 2115 }
2118 MakeServerNode(sync_manager_.GetUserShare(), syncable::PASSWORDS, client_tag, 2116 MakeServerNode(sync_manager_.GetUserShare(), syncable::PASSWORDS, client_tag,
2119 BaseNode::GenerateSyncableHash(syncable::PASSWORDS, 2117 BaseNode::GenerateSyncableHash(syncable::PASSWORDS,
2120 client_tag), 2118 client_tag),
2121 entity_specifics); 2119 entity_specifics);
2122 // New node shouldn't start off unsynced. 2120 // New node shouldn't start off unsynced.
2123 EXPECT_FALSE(ResetUnsyncedEntry(syncable::PASSWORDS, client_tag)); 2121 EXPECT_FALSE(ResetUnsyncedEntry(syncable::PASSWORDS, client_tag));
2124 2122
2125 // Manually change to the same data via SetPasswordSpecifics. Should not set 2123 // Manually change to the same data via SetPasswordSpecifics. Should not set
2126 // is_unsynced. 2124 // is_unsynced.
2127 { 2125 {
2128 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 2126 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
2129 WriteNode node(&trans); 2127 WriteNode node(&trans);
2130 EXPECT_TRUE(node.InitByClientTagLookup(syncable::PASSWORDS, client_tag)); 2128 EXPECT_TRUE(node.InitByClientTagLookup(syncable::PASSWORDS, client_tag));
2131 node.SetPasswordSpecifics(node.GetPasswordSpecifics()); 2129 node.SetPasswordSpecifics(node.GetPasswordSpecifics());
2132 } 2130 }
2133 EXPECT_FALSE(ResetUnsyncedEntry(syncable::PASSWORDS, client_tag)); 2131 EXPECT_FALSE(ResetUnsyncedEntry(syncable::PASSWORDS, client_tag));
2134 2132
2135 // Manually change to different data. Should set is_unsynced. 2133 // Manually change to different data. Should set is_unsynced.
2136 { 2134 {
2137 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 2135 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
2138 WriteNode node(&trans); 2136 WriteNode node(&trans);
2139 EXPECT_TRUE(node.InitByClientTagLookup(syncable::PASSWORDS, client_tag)); 2137 EXPECT_TRUE(node.InitByClientTagLookup(syncable::PASSWORDS, client_tag));
2140 Cryptographer* cryptographer = trans.GetCryptographer(); 2138 Cryptographer* cryptographer = trans.GetCryptographer();
2141 sync_pb::PasswordSpecificsData data; 2139 sync_pb::PasswordSpecificsData data;
2142 data.set_password_value("secret2"); 2140 data.set_password_value("secret2");
2143 cryptographer->Encrypt( 2141 cryptographer->Encrypt(
2144 data, 2142 data,
2145 entity_specifics.MutableExtension(sync_pb::password)-> 2143 entity_specifics.mutable_password()->mutable_encrypted());
2146 mutable_encrypted());
2147 node.SetPasswordSpecifics(data); 2144 node.SetPasswordSpecifics(data);
2148 const syncable::Entry* node_entry = node.GetEntry(); 2145 const syncable::Entry* node_entry = node.GetEntry();
2149 EXPECT_TRUE(node_entry->Get(IS_UNSYNCED)); 2146 EXPECT_TRUE(node_entry->Get(IS_UNSYNCED));
2150 } 2147 }
2151 } 2148 }
2152 2149
2153 // Passwords have their own handling for encryption. Verify setting a new 2150 // Passwords have their own handling for encryption. Verify setting a new
2154 // passphrase updates the data. 2151 // passphrase updates the data.
2155 TEST_F(SyncManagerTest, UpdatePasswordNewPassphrase) { 2152 TEST_F(SyncManagerTest, UpdatePasswordNewPassphrase) {
2156 std::string client_tag = "title"; 2153 std::string client_tag = "title";
2157 EXPECT_TRUE(SetUpEncryption(WRITE_TO_NIGORI, DEFAULT_ENCRYPTION)); 2154 EXPECT_TRUE(SetUpEncryption(WRITE_TO_NIGORI, DEFAULT_ENCRYPTION));
2158 sync_pb::EntitySpecifics entity_specifics; 2155 sync_pb::EntitySpecifics entity_specifics;
2159 { 2156 {
2160 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 2157 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
2161 Cryptographer* cryptographer = trans.GetCryptographer(); 2158 Cryptographer* cryptographer = trans.GetCryptographer();
2162 sync_pb::PasswordSpecificsData data; 2159 sync_pb::PasswordSpecificsData data;
2163 data.set_password_value("secret"); 2160 data.set_password_value("secret");
2164 cryptographer->Encrypt( 2161 cryptographer->Encrypt(
2165 data, 2162 data,
2166 entity_specifics.MutableExtension(sync_pb::password)-> 2163 entity_specifics.mutable_password()->mutable_encrypted());
2167 mutable_encrypted());
2168 } 2164 }
2169 MakeServerNode(sync_manager_.GetUserShare(), syncable::PASSWORDS, client_tag, 2165 MakeServerNode(sync_manager_.GetUserShare(), syncable::PASSWORDS, client_tag,
2170 BaseNode::GenerateSyncableHash(syncable::PASSWORDS, 2166 BaseNode::GenerateSyncableHash(syncable::PASSWORDS,
2171 client_tag), 2167 client_tag),
2172 entity_specifics); 2168 entity_specifics);
2173 // New node shouldn't start off unsynced. 2169 // New node shouldn't start off unsynced.
2174 EXPECT_FALSE(ResetUnsyncedEntry(syncable::PASSWORDS, client_tag)); 2170 EXPECT_FALSE(ResetUnsyncedEntry(syncable::PASSWORDS, client_tag));
2175 2171
2176 // Set a new passphrase. Should set is_unsynced. 2172 // Set a new passphrase. Should set is_unsynced.
2177 testing::Mock::VerifyAndClearExpectations(&observer_); 2173 testing::Mock::VerifyAndClearExpectations(&observer_);
(...skipping 10 matching lines...) Expand all
2188 std::string client_tag = "title"; 2184 std::string client_tag = "title";
2189 EXPECT_TRUE(SetUpEncryption(WRITE_TO_NIGORI, DEFAULT_ENCRYPTION)); 2185 EXPECT_TRUE(SetUpEncryption(WRITE_TO_NIGORI, DEFAULT_ENCRYPTION));
2190 sync_pb::EntitySpecifics entity_specifics; 2186 sync_pb::EntitySpecifics entity_specifics;
2191 { 2187 {
2192 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 2188 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
2193 Cryptographer* cryptographer = trans.GetCryptographer(); 2189 Cryptographer* cryptographer = trans.GetCryptographer();
2194 sync_pb::PasswordSpecificsData data; 2190 sync_pb::PasswordSpecificsData data;
2195 data.set_password_value("secret"); 2191 data.set_password_value("secret");
2196 cryptographer->Encrypt( 2192 cryptographer->Encrypt(
2197 data, 2193 data,
2198 entity_specifics.MutableExtension(sync_pb::password)-> 2194 entity_specifics.mutable_password()->mutable_encrypted());
2199 mutable_encrypted());
2200 } 2195 }
2201 MakeServerNode(sync_manager_.GetUserShare(), syncable::PASSWORDS, client_tag, 2196 MakeServerNode(sync_manager_.GetUserShare(), syncable::PASSWORDS, client_tag,
2202 BaseNode::GenerateSyncableHash(syncable::PASSWORDS, 2197 BaseNode::GenerateSyncableHash(syncable::PASSWORDS,
2203 client_tag), 2198 client_tag),
2204 entity_specifics); 2199 entity_specifics);
2205 // New node shouldn't start off unsynced. 2200 // New node shouldn't start off unsynced.
2206 EXPECT_FALSE(ResetUnsyncedEntry(syncable::PASSWORDS, client_tag)); 2201 EXPECT_FALSE(ResetUnsyncedEntry(syncable::PASSWORDS, client_tag));
2207 2202
2208 // Force a re-encrypt everything. Should not set is_unsynced. 2203 // Force a re-encrypt everything. Should not set is_unsynced.
2209 testing::Mock::VerifyAndClearExpectations(&observer_); 2204 testing::Mock::VerifyAndClearExpectations(&observer_);
2210 EXPECT_CALL(observer_, OnEncryptionComplete()); 2205 EXPECT_CALL(observer_, OnEncryptionComplete());
2211 sync_manager_.RefreshNigori(base::Bind(&SyncManagerTest::EmptyClosure, 2206 sync_manager_.RefreshNigori(base::Bind(&SyncManagerTest::EmptyClosure,
2212 base::Unretained(this))); 2207 base::Unretained(this)));
2213 scoped_refptr<base::ThreadTestHelper> helper( 2208 scoped_refptr<base::ThreadTestHelper> helper(
2214 new base::ThreadTestHelper( 2209 new base::ThreadTestHelper(
2215 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE))); 2210 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE)));
2216 ASSERT_TRUE(helper->Run()); 2211 ASSERT_TRUE(helper->Run());
2217 PumpLoop(); 2212 PumpLoop();
2218 EXPECT_FALSE(ResetUnsyncedEntry(syncable::PASSWORDS, client_tag)); 2213 EXPECT_FALSE(ResetUnsyncedEntry(syncable::PASSWORDS, client_tag));
2219 } 2214 }
2220 2215
2221 // Verify SetTitle(..) doesn't unnecessarily set IS_UNSYNCED for bookmarks 2216 // Verify SetTitle(..) doesn't unnecessarily set IS_UNSYNCED for bookmarks
2222 // when we write the same data, but does set it when we write new data. 2217 // when we write the same data, but does set it when we write new data.
2223 TEST_F(SyncManagerTest, SetBookmarkTitle) { 2218 TEST_F(SyncManagerTest, SetBookmarkTitle) {
2224 std::string client_tag = "title"; 2219 std::string client_tag = "title";
2225 sync_pb::EntitySpecifics entity_specifics; 2220 sync_pb::EntitySpecifics entity_specifics;
2226 entity_specifics.MutableExtension(sync_pb::bookmark)->set_url("url"); 2221 entity_specifics.mutable_bookmark()->set_url("url");
2227 entity_specifics.MutableExtension(sync_pb::bookmark)->set_title("title"); 2222 entity_specifics.mutable_bookmark()->set_title("title");
2228 MakeServerNode(sync_manager_.GetUserShare(), syncable::BOOKMARKS, client_tag, 2223 MakeServerNode(sync_manager_.GetUserShare(), syncable::BOOKMARKS, client_tag,
2229 BaseNode::GenerateSyncableHash(syncable::BOOKMARKS, 2224 BaseNode::GenerateSyncableHash(syncable::BOOKMARKS,
2230 client_tag), 2225 client_tag),
2231 entity_specifics); 2226 entity_specifics);
2232 // New node shouldn't start off unsynced. 2227 // New node shouldn't start off unsynced.
2233 EXPECT_FALSE(ResetUnsyncedEntry(syncable::BOOKMARKS, client_tag)); 2228 EXPECT_FALSE(ResetUnsyncedEntry(syncable::BOOKMARKS, client_tag));
2234 2229
2235 // Manually change to the same title. Should not set is_unsynced. 2230 // Manually change to the same title. Should not set is_unsynced.
2236 { 2231 {
2237 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 2232 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
(...skipping 12 matching lines...) Expand all
2250 } 2245 }
2251 EXPECT_TRUE(ResetUnsyncedEntry(syncable::BOOKMARKS, client_tag)); 2246 EXPECT_TRUE(ResetUnsyncedEntry(syncable::BOOKMARKS, client_tag));
2252 } 2247 }
2253 2248
2254 // Verify SetTitle(..) doesn't unnecessarily set IS_UNSYNCED for encrypted 2249 // Verify SetTitle(..) doesn't unnecessarily set IS_UNSYNCED for encrypted
2255 // bookmarks when we write the same data, but does set it when we write new 2250 // bookmarks when we write the same data, but does set it when we write new
2256 // data. 2251 // data.
2257 TEST_F(SyncManagerTest, SetBookmarkTitleWithEncryption) { 2252 TEST_F(SyncManagerTest, SetBookmarkTitleWithEncryption) {
2258 std::string client_tag = "title"; 2253 std::string client_tag = "title";
2259 sync_pb::EntitySpecifics entity_specifics; 2254 sync_pb::EntitySpecifics entity_specifics;
2260 entity_specifics.MutableExtension(sync_pb::bookmark)->set_url("url"); 2255 entity_specifics.mutable_bookmark()->set_url("url");
2261 entity_specifics.MutableExtension(sync_pb::bookmark)->set_title("title"); 2256 entity_specifics.mutable_bookmark()->set_title("title");
2262 MakeServerNode(sync_manager_.GetUserShare(), syncable::BOOKMARKS, client_tag, 2257 MakeServerNode(sync_manager_.GetUserShare(), syncable::BOOKMARKS, client_tag,
2263 BaseNode::GenerateSyncableHash(syncable::BOOKMARKS, 2258 BaseNode::GenerateSyncableHash(syncable::BOOKMARKS,
2264 client_tag), 2259 client_tag),
2265 entity_specifics); 2260 entity_specifics);
2266 // New node shouldn't start off unsynced. 2261 // New node shouldn't start off unsynced.
2267 EXPECT_FALSE(ResetUnsyncedEntry(syncable::BOOKMARKS, client_tag)); 2262 EXPECT_FALSE(ResetUnsyncedEntry(syncable::BOOKMARKS, client_tag));
2268 2263
2269 // Encrypt the datatatype, should set is_unsynced. 2264 // Encrypt the datatatype, should set is_unsynced.
2270 EXPECT_CALL(observer_, 2265 EXPECT_CALL(observer_,
2271 OnEncryptedTypesChanged( 2266 OnEncryptedTypesChanged(
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
2308 EXPECT_EQ(kEncryptedString, node_entry->Get(NON_UNIQUE_NAME)); 2303 EXPECT_EQ(kEncryptedString, node_entry->Get(NON_UNIQUE_NAME));
2309 } 2304 }
2310 EXPECT_TRUE(ResetUnsyncedEntry(syncable::BOOKMARKS, client_tag)); 2305 EXPECT_TRUE(ResetUnsyncedEntry(syncable::BOOKMARKS, client_tag));
2311 } 2306 }
2312 2307
2313 // Verify SetTitle(..) doesn't unnecessarily set IS_UNSYNCED for non-bookmarks 2308 // Verify SetTitle(..) doesn't unnecessarily set IS_UNSYNCED for non-bookmarks
2314 // when we write the same data, but does set it when we write new data. 2309 // when we write the same data, but does set it when we write new data.
2315 TEST_F(SyncManagerTest, SetNonBookmarkTitle) { 2310 TEST_F(SyncManagerTest, SetNonBookmarkTitle) {
2316 std::string client_tag = "title"; 2311 std::string client_tag = "title";
2317 sync_pb::EntitySpecifics entity_specifics; 2312 sync_pb::EntitySpecifics entity_specifics;
2318 entity_specifics.MutableExtension(sync_pb::preference)->set_name("name"); 2313 entity_specifics.mutable_preference()->set_name("name");
2319 entity_specifics.MutableExtension(sync_pb::preference)->set_value("value"); 2314 entity_specifics.mutable_preference()->set_value("value");
2320 MakeServerNode(sync_manager_.GetUserShare(), 2315 MakeServerNode(sync_manager_.GetUserShare(),
2321 syncable::PREFERENCES, 2316 syncable::PREFERENCES,
2322 client_tag, 2317 client_tag,
2323 BaseNode::GenerateSyncableHash(syncable::PREFERENCES, 2318 BaseNode::GenerateSyncableHash(syncable::PREFERENCES,
2324 client_tag), 2319 client_tag),
2325 entity_specifics); 2320 entity_specifics);
2326 // New node shouldn't start off unsynced. 2321 // New node shouldn't start off unsynced.
2327 EXPECT_FALSE(ResetUnsyncedEntry(syncable::PREFERENCES, client_tag)); 2322 EXPECT_FALSE(ResetUnsyncedEntry(syncable::PREFERENCES, client_tag));
2328 2323
2329 // Manually change to the same title. Should not set is_unsynced. 2324 // Manually change to the same title. Should not set is_unsynced.
(...skipping 14 matching lines...) Expand all
2344 } 2339 }
2345 EXPECT_TRUE(ResetUnsyncedEntry(syncable::PREFERENCES, client_tag)); 2340 EXPECT_TRUE(ResetUnsyncedEntry(syncable::PREFERENCES, client_tag));
2346 } 2341 }
2347 2342
2348 // Verify SetTitle(..) doesn't unnecessarily set IS_UNSYNCED for encrypted 2343 // Verify SetTitle(..) doesn't unnecessarily set IS_UNSYNCED for encrypted
2349 // non-bookmarks when we write the same data or when we write new data 2344 // non-bookmarks when we write the same data or when we write new data
2350 // data (should remained kEncryptedString). 2345 // data (should remained kEncryptedString).
2351 TEST_F(SyncManagerTest, SetNonBookmarkTitleWithEncryption) { 2346 TEST_F(SyncManagerTest, SetNonBookmarkTitleWithEncryption) {
2352 std::string client_tag = "title"; 2347 std::string client_tag = "title";
2353 sync_pb::EntitySpecifics entity_specifics; 2348 sync_pb::EntitySpecifics entity_specifics;
2354 entity_specifics.MutableExtension(sync_pb::preference)->set_name("name"); 2349 entity_specifics.mutable_preference()->set_name("name");
2355 entity_specifics.MutableExtension(sync_pb::preference)->set_value("value"); 2350 entity_specifics.mutable_preference()->set_value("value");
2356 MakeServerNode(sync_manager_.GetUserShare(), 2351 MakeServerNode(sync_manager_.GetUserShare(),
2357 syncable::PREFERENCES, 2352 syncable::PREFERENCES,
2358 client_tag, 2353 client_tag,
2359 BaseNode::GenerateSyncableHash(syncable::PREFERENCES, 2354 BaseNode::GenerateSyncableHash(syncable::PREFERENCES,
2360 client_tag), 2355 client_tag),
2361 entity_specifics); 2356 entity_specifics);
2362 // New node shouldn't start off unsynced. 2357 // New node shouldn't start off unsynced.
2363 EXPECT_FALSE(ResetUnsyncedEntry(syncable::PREFERENCES, client_tag)); 2358 EXPECT_FALSE(ResetUnsyncedEntry(syncable::PREFERENCES, client_tag));
2364 2359
2365 // Encrypt the datatatype, should set is_unsynced. 2360 // Encrypt the datatatype, should set is_unsynced.
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
2413 std::string client_tag = "tag"; 2408 std::string client_tag = "tag";
2414 std::string url = "url"; 2409 std::string url = "url";
2415 std::string url2 = "new_url"; 2410 std::string url2 = "new_url";
2416 std::string title = "title"; 2411 std::string title = "title";
2417 sync_pb::EntitySpecifics entity_specifics; 2412 sync_pb::EntitySpecifics entity_specifics;
2418 EXPECT_TRUE(SetUpEncryption(WRITE_TO_NIGORI, DEFAULT_ENCRYPTION)); 2413 EXPECT_TRUE(SetUpEncryption(WRITE_TO_NIGORI, DEFAULT_ENCRYPTION));
2419 { 2414 {
2420 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 2415 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
2421 browser_sync::Cryptographer* crypto = trans.GetCryptographer(); 2416 browser_sync::Cryptographer* crypto = trans.GetCryptographer();
2422 sync_pb::EntitySpecifics bm_specifics; 2417 sync_pb::EntitySpecifics bm_specifics;
2423 bm_specifics.MutableExtension(sync_pb::bookmark)->set_title("title"); 2418 bm_specifics.mutable_bookmark()->set_title("title");
2424 bm_specifics.MutableExtension(sync_pb::bookmark)->set_url("url"); 2419 bm_specifics.mutable_bookmark()->set_url("url");
2425 sync_pb::EncryptedData encrypted; 2420 sync_pb::EncryptedData encrypted;
2426 crypto->Encrypt(bm_specifics, &encrypted); 2421 crypto->Encrypt(bm_specifics, &encrypted);
2427 entity_specifics.mutable_encrypted()->CopyFrom(encrypted); 2422 entity_specifics.mutable_encrypted()->CopyFrom(encrypted);
2428 syncable::AddDefaultExtensionValue(syncable::BOOKMARKS, &entity_specifics); 2423 syncable::AddDefaultExtensionValue(syncable::BOOKMARKS, &entity_specifics);
2429 } 2424 }
2430 MakeServerNode(sync_manager_.GetUserShare(), syncable::BOOKMARKS, client_tag, 2425 MakeServerNode(sync_manager_.GetUserShare(), syncable::BOOKMARKS, client_tag,
2431 BaseNode::GenerateSyncableHash(syncable::BOOKMARKS, 2426 BaseNode::GenerateSyncableHash(syncable::BOOKMARKS,
2432 client_tag), 2427 client_tag),
2433 entity_specifics); 2428 entity_specifics);
2434 2429
(...skipping 22 matching lines...) Expand all
2457 EXPECT_EQ(title, node.GetTitle()); 2452 EXPECT_EQ(title, node.GetTitle());
2458 EXPECT_EQ(GURL(url2), node.GetURL()); 2453 EXPECT_EQ(GURL(url2), node.GetURL());
2459 const syncable::Entry* node_entry = node.GetEntry(); 2454 const syncable::Entry* node_entry = node.GetEntry();
2460 EXPECT_EQ(kEncryptedString, node_entry->Get(NON_UNIQUE_NAME)); 2455 EXPECT_EQ(kEncryptedString, node_entry->Get(NON_UNIQUE_NAME));
2461 const sync_pb::EntitySpecifics& specifics = node_entry->Get(SPECIFICS); 2456 const sync_pb::EntitySpecifics& specifics = node_entry->Get(SPECIFICS);
2462 EXPECT_TRUE(specifics.has_encrypted()); 2457 EXPECT_TRUE(specifics.has_encrypted());
2463 } 2458 }
2464 } 2459 }
2465 2460
2466 } // namespace browser_sync 2461 } // namespace browser_sync
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698