OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 <set> | 5 #include <set> |
6 #include <string> | 6 #include <string> |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
10 | 10 |
11 #include "base/callback.h" | 11 #include "base/callback.h" |
12 #include "base/memory/ref_counted.h" | 12 #include "base/memory/ref_counted.h" |
13 #include "base/memory/scoped_ptr.h" | 13 #include "base/memory/scoped_ptr.h" |
14 #include "base/message_loop.h" | 14 #include "base/message_loop.h" |
15 #include "base/string16.h" | 15 #include "base/string16.h" |
16 #include "base/synchronization/waitable_event.h" | 16 #include "base/synchronization/waitable_event.h" |
17 #include "base/task.h" | 17 #include "base/task.h" |
18 #include "base/time.h" | 18 #include "base/time.h" |
| 19 #include "base/tracked.h" |
19 #include "base/utf_string_conversions.h" | 20 #include "base/utf_string_conversions.h" |
20 #include "chrome/browser/autofill/autofill_common_test.h" | 21 #include "chrome/browser/autofill/autofill_common_test.h" |
21 #include "chrome/browser/sync/abstract_profile_sync_service_test.h" | 22 #include "chrome/browser/sync/abstract_profile_sync_service_test.h" |
22 #include "chrome/browser/sync/engine/model_changing_syncer_command.h" | 23 #include "chrome/browser/sync/engine/model_changing_syncer_command.h" |
23 #include "chrome/browser/sync/engine/syncapi.h" | 24 #include "chrome/browser/sync/engine/syncapi.h" |
24 #include "chrome/browser/sync/glue/autofill_change_processor.h" | 25 #include "chrome/browser/sync/glue/autofill_change_processor.h" |
25 #include "chrome/browser/sync/glue/autofill_data_type_controller.h" | 26 #include "chrome/browser/sync/glue/autofill_data_type_controller.h" |
26 #include "chrome/browser/sync/glue/autofill_model_associator.h" | 27 #include "chrome/browser/sync/glue/autofill_model_associator.h" |
27 #include "chrome/browser/sync/glue/autofill_profile_change_processor.h" | 28 #include "chrome/browser/sync/glue/autofill_profile_change_processor.h" |
28 #include "chrome/browser/sync/glue/autofill_profile_data_type_controller.h" | 29 #include "chrome/browser/sync/glue/autofill_profile_data_type_controller.h" |
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
484 ProfileSyncServiceAutofillTest* test_; | 485 ProfileSyncServiceAutofillTest* test_; |
485 const std::vector<T>& entries_; | 486 const std::vector<T>& entries_; |
486 bool success_; | 487 bool success_; |
487 }; | 488 }; |
488 | 489 |
489 // Overload write transaction to use custom NotifyTransactionComplete | 490 // Overload write transaction to use custom NotifyTransactionComplete |
490 static const bool kLoggingInfo = true; | 491 static const bool kLoggingInfo = true; |
491 class WriteTransactionTest: public WriteTransaction { | 492 class WriteTransactionTest: public WriteTransaction { |
492 public: | 493 public: |
493 WriteTransactionTest(const syncable::ScopedDirLookup& directory, | 494 WriteTransactionTest(const syncable::ScopedDirLookup& directory, |
494 WriterTag writer, const char* source_file, | 495 WriterTag writer, |
495 int line, | 496 const tracked_objects::Location& from_here, |
496 scoped_ptr<WaitableEvent> *wait_for_syncapi) | 497 scoped_ptr<WaitableEvent> *wait_for_syncapi) |
497 : WriteTransaction(directory, writer, source_file, line), | 498 : WriteTransaction(directory, writer, from_here), |
498 wait_for_syncapi_(wait_for_syncapi) { } | 499 wait_for_syncapi_(wait_for_syncapi) { } |
499 | 500 |
500 virtual void NotifyTransactionComplete(syncable::ModelTypeBitSet types) { | 501 virtual void NotifyTransactionComplete(syncable::ModelTypeBitSet types) { |
501 // This is where we differ. Force a thread change here, giving another | 502 // This is where we differ. Force a thread change here, giving another |
502 // thread a chance to create a WriteTransaction | 503 // thread a chance to create a WriteTransaction |
503 (*wait_for_syncapi_)->Wait(); | 504 (*wait_for_syncapi_)->Wait(); |
504 | 505 |
505 WriteTransaction::NotifyTransactionComplete(types); | 506 WriteTransaction::NotifyTransactionComplete(types); |
506 } | 507 } |
507 | 508 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
545 | 546 |
546 sync_pb::EntitySpecifics entity_specifics; | 547 sync_pb::EntitySpecifics entity_specifics; |
547 entity_specifics.MutableExtension(sync_pb::autofill)-> | 548 entity_specifics.MutableExtension(sync_pb::autofill)-> |
548 CopyFrom(new_autofill); | 549 CopyFrom(new_autofill); |
549 | 550 |
550 { | 551 { |
551 // Tell main thread we've started | 552 // Tell main thread we've started |
552 (*wait_for_start_)->Signal(); | 553 (*wait_for_start_)->Signal(); |
553 | 554 |
554 // Create write transaction. | 555 // Create write transaction. |
555 WriteTransactionTest trans(dir, UNITTEST, __FILE__, __LINE__, | 556 WriteTransactionTest trans(dir, UNITTEST, FROM_HERE, |
556 wait_for_syncapi_); | 557 wait_for_syncapi_); |
557 | 558 |
558 // Create actual entry based on autofill protobuf information. | 559 // Create actual entry based on autofill protobuf information. |
559 // Simulates effects of SyncerUtil::UpdateLocalDataFromServerData | 560 // Simulates effects of SyncerUtil::UpdateLocalDataFromServerData |
560 MutableEntry parent(&trans, GET_BY_SERVER_TAG, kAutofillTag); | 561 MutableEntry parent(&trans, GET_BY_SERVER_TAG, kAutofillTag); |
561 MutableEntry item(&trans, CREATE, parent.Get(syncable::ID), tag); | 562 MutableEntry item(&trans, CREATE, parent.Get(syncable::ID), tag); |
562 ASSERT_TRUE(item.good()); | 563 ASSERT_TRUE(item.good()); |
563 item.Put(SPECIFICS, entity_specifics); | 564 item.Put(SPECIFICS, entity_specifics); |
564 item.Put(SERVER_SPECIFICS, entity_specifics); | 565 item.Put(SERVER_SPECIFICS, entity_specifics); |
565 item.Put(BASE_VERSION, 1); | 566 item.Put(BASE_VERSION, 1); |
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1080 std::vector<AutofillEntry> sync_entries; | 1081 std::vector<AutofillEntry> sync_entries; |
1081 std::vector<AutofillProfile> sync_profiles; | 1082 std::vector<AutofillProfile> sync_profiles; |
1082 ASSERT_TRUE(GetAutofillEntriesFromSyncDB(&sync_entries, &sync_profiles)); | 1083 ASSERT_TRUE(GetAutofillEntriesFromSyncDB(&sync_entries, &sync_profiles)); |
1083 EXPECT_EQ(3U, sync_entries.size()); | 1084 EXPECT_EQ(3U, sync_entries.size()); |
1084 EXPECT_EQ(0U, sync_profiles.size()); | 1085 EXPECT_EQ(0U, sync_profiles.size()); |
1085 for (size_t i = 0; i < sync_entries.size(); i++) { | 1086 for (size_t i = 0; i < sync_entries.size(); i++) { |
1086 VLOG(1) << "Entry " << i << ": " << sync_entries[i].key().name() | 1087 VLOG(1) << "Entry " << i << ": " << sync_entries[i].key().name() |
1087 << ", " << sync_entries[i].key().value(); | 1088 << ", " << sync_entries[i].key().value(); |
1088 } | 1089 } |
1089 } | 1090 } |
OLD | NEW |