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

Side by Side Diff: chrome/browser/password_manager/native_backend_gnome_x_unittest.cc

Issue 316243002: Add date_synced to PasswordForm. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: +comment Created 6 years, 6 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 #include <stdarg.h> 5 #include <stdarg.h>
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/prefs/pref_service.h" 8 #include "base/prefs/pref_service.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "base/strings/string_number_conversions.h"
10 #include "base/strings/string_util.h" 11 #include "base/strings/string_util.h"
11 #include "base/strings/stringprintf.h" 12 #include "base/strings/stringprintf.h"
12 #include "base/strings/utf_string_conversions.h" 13 #include "base/strings/utf_string_conversions.h"
13 #include "base/time/time.h" 14 #include "base/time/time.h"
14 #include "chrome/browser/password_manager/native_backend_gnome_x.h" 15 #include "chrome/browser/password_manager/native_backend_gnome_x.h"
15 #include "chrome/test/base/testing_profile.h" 16 #include "chrome/test/base/testing_profile.h"
16 #include "components/autofill/core/common/password_form.h" 17 #include "components/autofill/core/common/password_form.h"
17 #include "components/password_manager/core/browser/psl_matching_helper.h" 18 #include "components/password_manager/core/browser/psl_matching_helper.h"
18 #include "components/password_manager/core/common/password_manager_pref_names.h" 19 #include "components/password_manager/core/common/password_manager_pref_names.h"
19 #include "content/public/test/test_browser_thread.h" 20 #include "content/public/test/test_browser_thread.h"
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 EXPECT_EQ(expected.submit_element, actual.submit_element); 298 EXPECT_EQ(expected.submit_element, actual.submit_element);
298 EXPECT_EQ(expected.signon_realm, actual.signon_realm); 299 EXPECT_EQ(expected.signon_realm, actual.signon_realm);
299 EXPECT_EQ(expected.ssl_valid, actual.ssl_valid); 300 EXPECT_EQ(expected.ssl_valid, actual.ssl_valid);
300 EXPECT_EQ(expected.preferred, actual.preferred); 301 EXPECT_EQ(expected.preferred, actual.preferred);
301 // We don't check the date created. It varies due to bug in the 302 // We don't check the date created. It varies due to bug in the
302 // serialization. Integer seconds are saved instead of microseconds. 303 // serialization. Integer seconds are saved instead of microseconds.
303 EXPECT_EQ(expected.blacklisted_by_user, actual.blacklisted_by_user); 304 EXPECT_EQ(expected.blacklisted_by_user, actual.blacklisted_by_user);
304 EXPECT_EQ(expected.type, actual.type); 305 EXPECT_EQ(expected.type, actual.type);
305 EXPECT_EQ(expected.times_used, actual.times_used); 306 EXPECT_EQ(expected.times_used, actual.times_used);
306 EXPECT_EQ(expected.scheme, actual.scheme); 307 EXPECT_EQ(expected.scheme, actual.scheme);
308 EXPECT_EQ(expected.date_synced, actual.date_synced);
307 } 309 }
308 } 310 }
309 311
310 } // anonymous namespace 312 } // anonymous namespace
311 313
312 class NativeBackendGnomeTest : public testing::Test { 314 class NativeBackendGnomeTest : public testing::Test {
313 protected: 315 protected:
314 enum UpdateType { // Used in CheckPSLUpdate(). 316 enum UpdateType { // Used in CheckPSLUpdate().
315 UPDATE_BY_UPDATELOGIN, 317 UPDATE_BY_UPDATELOGIN,
316 UPDATE_BY_ADDLOGIN, 318 UPDATE_BY_ADDLOGIN,
(...skipping 12 matching lines...) Expand all
329 form_google_.origin = GURL("http://www.google.com/"); 331 form_google_.origin = GURL("http://www.google.com/");
330 form_google_.action = GURL("http://www.google.com/login"); 332 form_google_.action = GURL("http://www.google.com/login");
331 form_google_.username_element = UTF8ToUTF16("user"); 333 form_google_.username_element = UTF8ToUTF16("user");
332 form_google_.username_value = UTF8ToUTF16("joeschmoe"); 334 form_google_.username_value = UTF8ToUTF16("joeschmoe");
333 form_google_.password_element = UTF8ToUTF16("pass"); 335 form_google_.password_element = UTF8ToUTF16("pass");
334 form_google_.password_value = UTF8ToUTF16("seekrit"); 336 form_google_.password_value = UTF8ToUTF16("seekrit");
335 form_google_.submit_element = UTF8ToUTF16("submit"); 337 form_google_.submit_element = UTF8ToUTF16("submit");
336 form_google_.signon_realm = "http://www.google.com/"; 338 form_google_.signon_realm = "http://www.google.com/";
337 form_google_.type = PasswordForm::TYPE_GENERATED; 339 form_google_.type = PasswordForm::TYPE_GENERATED;
338 form_google_.date_created = base::Time::Now(); 340 form_google_.date_created = base::Time::Now();
341 form_google_.date_synced = base::Time::Now();
339 342
340 form_facebook_.origin = GURL("http://www.facebook.com/"); 343 form_facebook_.origin = GURL("http://www.facebook.com/");
341 form_facebook_.action = GURL("http://www.facebook.com/login"); 344 form_facebook_.action = GURL("http://www.facebook.com/login");
342 form_facebook_.username_element = UTF8ToUTF16("user"); 345 form_facebook_.username_element = UTF8ToUTF16("user");
343 form_facebook_.username_value = UTF8ToUTF16("a"); 346 form_facebook_.username_value = UTF8ToUTF16("a");
344 form_facebook_.password_element = UTF8ToUTF16("password"); 347 form_facebook_.password_element = UTF8ToUTF16("password");
345 form_facebook_.password_value = UTF8ToUTF16("b"); 348 form_facebook_.password_value = UTF8ToUTF16("b");
346 form_facebook_.submit_element = UTF8ToUTF16("submit"); 349 form_facebook_.submit_element = UTF8ToUTF16("submit");
347 form_facebook_.signon_realm = "http://www.facebook.com/"; 350 form_facebook_.signon_realm = "http://www.facebook.com/";
348 form_facebook_.date_created = base::Time::Now(); 351 form_facebook_.date_created = base::Time::Now();
352 form_facebook_.date_synced = base::Time::Now();
349 353
350 form_isc_.origin = GURL("http://www.isc.org/"); 354 form_isc_.origin = GURL("http://www.isc.org/");
351 form_isc_.action = GURL("http://www.isc.org/auth"); 355 form_isc_.action = GURL("http://www.isc.org/auth");
352 form_isc_.username_element = UTF8ToUTF16("id"); 356 form_isc_.username_element = UTF8ToUTF16("id");
353 form_isc_.username_value = UTF8ToUTF16("janedoe"); 357 form_isc_.username_value = UTF8ToUTF16("janedoe");
354 form_isc_.password_element = UTF8ToUTF16("passwd"); 358 form_isc_.password_element = UTF8ToUTF16("passwd");
355 form_isc_.password_value = UTF8ToUTF16("ihazabukkit"); 359 form_isc_.password_value = UTF8ToUTF16("ihazabukkit");
356 form_isc_.submit_element = UTF8ToUTF16("login"); 360 form_isc_.submit_element = UTF8ToUTF16("login");
357 form_isc_.signon_realm = "http://www.isc.org/"; 361 form_isc_.signon_realm = "http://www.isc.org/";
358 form_isc_.date_created = base::Time::Now(); 362 form_isc_.date_created = base::Time::Now();
363 form_isc_.date_synced = base::Time::Now();
359 364
360 other_auth_.origin = GURL("http://www.example.com/"); 365 other_auth_.origin = GURL("http://www.example.com/");
361 other_auth_.username_value = UTF8ToUTF16("username"); 366 other_auth_.username_value = UTF8ToUTF16("username");
362 other_auth_.password_value = UTF8ToUTF16("pass"); 367 other_auth_.password_value = UTF8ToUTF16("pass");
363 other_auth_.signon_realm = "http://www.example.com/Realm"; 368 other_auth_.signon_realm = "http://www.example.com/Realm";
364 other_auth_.date_created = base::Time::Now(); 369 other_auth_.date_created = base::Time::Now();
370 other_auth_.date_synced = base::Time::Now();
365 } 371 }
366 372
367 virtual void TearDown() { 373 virtual void TearDown() {
368 base::MessageLoop::current()->PostTask(FROM_HERE, 374 base::MessageLoop::current()->PostTask(FROM_HERE,
369 base::MessageLoop::QuitClosure()); 375 base::MessageLoop::QuitClosure());
370 base::MessageLoop::current()->Run(); 376 base::MessageLoop::current()->Run();
371 db_thread_.Stop(); 377 db_thread_.Stop();
372 } 378 }
373 379
374 void RunBothThreads() { 380 void RunBothThreads() {
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 } 416 }
411 } 417 }
412 418
413 void CheckMockKeyringItem(const MockKeyringItem* item, 419 void CheckMockKeyringItem(const MockKeyringItem* item,
414 const PasswordForm& form, 420 const PasswordForm& form,
415 const std::string& app_string) { 421 const std::string& app_string) {
416 // We always add items to the login keyring. 422 // We always add items to the login keyring.
417 EXPECT_EQ("login", item->keyring); 423 EXPECT_EQ("login", item->keyring);
418 EXPECT_EQ(form.origin.spec(), item->display_name); 424 EXPECT_EQ(form.origin.spec(), item->display_name);
419 EXPECT_EQ(UTF16ToUTF8(form.password_value), item->password); 425 EXPECT_EQ(UTF16ToUTF8(form.password_value), item->password);
420 EXPECT_EQ(15u, item->attributes.size()); 426 EXPECT_EQ(16u, item->attributes.size());
421 CheckStringAttribute(item, "origin_url", form.origin.spec()); 427 CheckStringAttribute(item, "origin_url", form.origin.spec());
422 CheckStringAttribute(item, "action_url", form.action.spec()); 428 CheckStringAttribute(item, "action_url", form.action.spec());
423 CheckStringAttribute(item, "username_element", 429 CheckStringAttribute(item, "username_element",
424 UTF16ToUTF8(form.username_element)); 430 UTF16ToUTF8(form.username_element));
425 CheckStringAttribute(item, "username_value", 431 CheckStringAttribute(item, "username_value",
426 UTF16ToUTF8(form.username_value)); 432 UTF16ToUTF8(form.username_value));
427 CheckStringAttribute(item, "password_element", 433 CheckStringAttribute(item, "password_element",
428 UTF16ToUTF8(form.password_element)); 434 UTF16ToUTF8(form.password_element));
429 CheckStringAttribute(item, "submit_element", 435 CheckStringAttribute(item, "submit_element",
430 UTF16ToUTF8(form.submit_element)); 436 UTF16ToUTF8(form.submit_element));
431 CheckStringAttribute(item, "signon_realm", form.signon_realm); 437 CheckStringAttribute(item, "signon_realm", form.signon_realm);
432 CheckUint32Attribute(item, "ssl_valid", form.ssl_valid); 438 CheckUint32Attribute(item, "ssl_valid", form.ssl_valid);
433 CheckUint32Attribute(item, "preferred", form.preferred); 439 CheckUint32Attribute(item, "preferred", form.preferred);
434 // We don't check the date created. It varies. 440 // We don't check the date created. It varies.
435 CheckUint32Attribute(item, "blacklisted_by_user", form.blacklisted_by_user); 441 CheckUint32Attribute(item, "blacklisted_by_user", form.blacklisted_by_user);
436 CheckUint32Attribute(item, "type", form.type); 442 CheckUint32Attribute(item, "type", form.type);
437 CheckUint32Attribute(item, "times_used", form.times_used); 443 CheckUint32Attribute(item, "times_used", form.times_used);
438 CheckUint32Attribute(item, "scheme", form.scheme); 444 CheckUint32Attribute(item, "scheme", form.scheme);
439 CheckStringAttribute(item, "application", app_string); 445 CheckStringAttribute(item, "application", app_string);
446 CheckStringAttribute(item, "date_synced", base::Int64ToString(
447 form.date_synced.ToInternalValue()));
440 } 448 }
441 449
442 // Saves |credentials| and then gets logins matching |url| and |scheme|. 450 // Saves |credentials| and then gets logins matching |url| and |scheme|.
443 // Returns true when something is found, and in such case copies the result to 451 // Returns true when something is found, and in such case copies the result to
444 // |result| when |result| is not NULL. (Note that there can be max. 1 result, 452 // |result| when |result| is not NULL. (Note that there can be max. 1 result,
445 // derived from |credentials|.) 453 // derived from |credentials|.)
446 bool CheckCredentialAvailability(const PasswordForm& credentials, 454 bool CheckCredentialAvailability(const PasswordForm& credentials,
447 const GURL& url, 455 const GURL& url,
448 const PasswordForm::Scheme& scheme, 456 const PasswordForm::Scheme& scheme,
449 PasswordForm* result) { 457 PasswordForm* result) {
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after
934 // Quick check that we got two results back. 942 // Quick check that we got two results back.
935 EXPECT_EQ(2u, form_list.size()); 943 EXPECT_EQ(2u, form_list.size());
936 STLDeleteElements(&form_list); 944 STLDeleteElements(&form_list);
937 945
938 EXPECT_EQ(1u, mock_keyring_items.size()); 946 EXPECT_EQ(1u, mock_keyring_items.size());
939 if (mock_keyring_items.size() > 0) 947 if (mock_keyring_items.size() > 0)
940 CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome-42"); 948 CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome-42");
941 } 949 }
942 950
943 // TODO(mdm): add more basic tests here at some point. 951 // TODO(mdm): add more basic tests here at some point.
OLDNEW
« no previous file with comments | « chrome/browser/password_manager/native_backend_gnome_x.cc ('k') | chrome/browser/password_manager/native_backend_kwallet_x.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698