| OLD | NEW |
| 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 "sync/internal_api/js_sync_manager_observer.h" | 5 #include "sync/internal_api/js_sync_manager_observer.h" |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/location.h" | 8 #include "base/location.h" |
| 9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| 11 #include "sync/internal_api/public/sessions/sync_session_snapshot.h" | 11 #include "sync/internal_api/public/sessions/sync_session_snapshot.h" |
| 12 #include "sync/internal_api/public/syncable/model_type.h" | 12 #include "sync/internal_api/public/syncable/model_type.h" |
| 13 #include "sync/internal_api/public/util/weak_handle.h" | 13 #include "sync/internal_api/public/util/weak_handle.h" |
| 14 #include "sync/js/js_event_details.h" | 14 #include "sync/js/js_event_details.h" |
| 15 #include "sync/js/js_test_util.h" | 15 #include "sync/js/js_test_util.h" |
| 16 #include "sync/protocol/sync_protocol_error.h" | 16 #include "sync/protocol/sync_protocol_error.h" |
| 17 #include "testing/gtest/include/gtest/gtest.h" | 17 #include "testing/gtest/include/gtest/gtest.h" |
| 18 | 18 |
| 19 namespace csync { | 19 namespace syncer { |
| 20 namespace { | 20 namespace { |
| 21 | 21 |
| 22 using ::testing::InSequence; | 22 using ::testing::InSequence; |
| 23 using ::testing::StrictMock; | 23 using ::testing::StrictMock; |
| 24 | 24 |
| 25 class JsSyncManagerObserverTest : public testing::Test { | 25 class JsSyncManagerObserverTest : public testing::Test { |
| 26 protected: | 26 protected: |
| 27 JsSyncManagerObserverTest() { | 27 JsSyncManagerObserverTest() { |
| 28 js_sync_manager_observer_.SetJsEventHandler( | 28 js_sync_manager_observer_.SetJsEventHandler( |
| 29 mock_js_event_handler_.AsWeakHandle()); | 29 mock_js_event_handler_.AsWeakHandle()); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 | 85 |
| 86 EXPECT_CALL(mock_js_event_handler_, | 86 EXPECT_CALL(mock_js_event_handler_, |
| 87 HandleJsEvent("onSyncCycleCompleted", | 87 HandleJsEvent("onSyncCycleCompleted", |
| 88 HasDetailsAsDictionary(expected_details))); | 88 HasDetailsAsDictionary(expected_details))); |
| 89 | 89 |
| 90 js_sync_manager_observer_.OnSyncCycleCompleted(snapshot); | 90 js_sync_manager_observer_.OnSyncCycleCompleted(snapshot); |
| 91 PumpLoop(); | 91 PumpLoop(); |
| 92 } | 92 } |
| 93 | 93 |
| 94 TEST_F(JsSyncManagerObserverTest, OnActionableError) { | 94 TEST_F(JsSyncManagerObserverTest, OnActionableError) { |
| 95 csync::SyncProtocolError sync_error; | 95 syncer::SyncProtocolError sync_error; |
| 96 sync_error.action = csync::CLEAR_USER_DATA_AND_RESYNC; | 96 sync_error.action = syncer::CLEAR_USER_DATA_AND_RESYNC; |
| 97 sync_error.error_type = csync::TRANSIENT_ERROR; | 97 sync_error.error_type = syncer::TRANSIENT_ERROR; |
| 98 DictionaryValue expected_details; | 98 DictionaryValue expected_details; |
| 99 expected_details.Set("syncError", sync_error.ToValue()); | 99 expected_details.Set("syncError", sync_error.ToValue()); |
| 100 | 100 |
| 101 EXPECT_CALL(mock_js_event_handler_, | 101 EXPECT_CALL(mock_js_event_handler_, |
| 102 HandleJsEvent("onActionableError", | 102 HandleJsEvent("onActionableError", |
| 103 HasDetailsAsDictionary(expected_details))); | 103 HasDetailsAsDictionary(expected_details))); |
| 104 | 104 |
| 105 js_sync_manager_observer_.OnActionableError(sync_error); | 105 js_sync_manager_observer_.OnActionableError(sync_error); |
| 106 PumpLoop(); | 106 PumpLoop(); |
| 107 } | 107 } |
| 108 | 108 |
| 109 | 109 |
| 110 TEST_F(JsSyncManagerObserverTest, OnConnectionStatusChange) { | 110 TEST_F(JsSyncManagerObserverTest, OnConnectionStatusChange) { |
| 111 const csync::ConnectionStatus kStatus = | 111 const syncer::ConnectionStatus kStatus = |
| 112 csync::CONNECTION_AUTH_ERROR; | 112 syncer::CONNECTION_AUTH_ERROR; |
| 113 DictionaryValue expected_details; | 113 DictionaryValue expected_details; |
| 114 expected_details.SetString("status", | 114 expected_details.SetString("status", |
| 115 csync::ConnectionStatusToString(kStatus)); | 115 syncer::ConnectionStatusToString(kStatus)); |
| 116 | 116 |
| 117 EXPECT_CALL(mock_js_event_handler_, | 117 EXPECT_CALL(mock_js_event_handler_, |
| 118 HandleJsEvent("onConnectionStatusChange", | 118 HandleJsEvent("onConnectionStatusChange", |
| 119 HasDetailsAsDictionary(expected_details))); | 119 HasDetailsAsDictionary(expected_details))); |
| 120 | 120 |
| 121 js_sync_manager_observer_.OnConnectionStatusChange(kStatus); | 121 js_sync_manager_observer_.OnConnectionStatusChange(kStatus); |
| 122 PumpLoop(); | 122 PumpLoop(); |
| 123 } | 123 } |
| 124 | 124 |
| 125 TEST_F(JsSyncManagerObserverTest, OnPassphraseRequired) { | 125 TEST_F(JsSyncManagerObserverTest, OnPassphraseRequired) { |
| 126 InSequence dummy; | 126 InSequence dummy; |
| 127 | 127 |
| 128 DictionaryValue reason_passphrase_not_required_details; | 128 DictionaryValue reason_passphrase_not_required_details; |
| 129 DictionaryValue reason_encryption_details; | 129 DictionaryValue reason_encryption_details; |
| 130 DictionaryValue reason_decryption_details; | 130 DictionaryValue reason_decryption_details; |
| 131 | 131 |
| 132 reason_passphrase_not_required_details.SetString( | 132 reason_passphrase_not_required_details.SetString( |
| 133 "reason", | 133 "reason", |
| 134 csync::PassphraseRequiredReasonToString( | 134 syncer::PassphraseRequiredReasonToString( |
| 135 csync::REASON_PASSPHRASE_NOT_REQUIRED)); | 135 syncer::REASON_PASSPHRASE_NOT_REQUIRED)); |
| 136 reason_encryption_details.SetString( | 136 reason_encryption_details.SetString( |
| 137 "reason", | 137 "reason", |
| 138 csync::PassphraseRequiredReasonToString(csync::REASON_ENCRYPTION)); | 138 syncer::PassphraseRequiredReasonToString(syncer::REASON_ENCRYPTION)); |
| 139 reason_decryption_details.SetString( | 139 reason_decryption_details.SetString( |
| 140 "reason", | 140 "reason", |
| 141 csync::PassphraseRequiredReasonToString(csync::REASON_DECRYPTION)); | 141 syncer::PassphraseRequiredReasonToString(syncer::REASON_DECRYPTION)); |
| 142 | 142 |
| 143 EXPECT_CALL(mock_js_event_handler_, | 143 EXPECT_CALL(mock_js_event_handler_, |
| 144 HandleJsEvent("onPassphraseRequired", | 144 HandleJsEvent("onPassphraseRequired", |
| 145 HasDetailsAsDictionary( | 145 HasDetailsAsDictionary( |
| 146 reason_passphrase_not_required_details))); | 146 reason_passphrase_not_required_details))); |
| 147 EXPECT_CALL(mock_js_event_handler_, | 147 EXPECT_CALL(mock_js_event_handler_, |
| 148 HandleJsEvent("onPassphraseRequired", | 148 HandleJsEvent("onPassphraseRequired", |
| 149 HasDetailsAsDictionary(reason_encryption_details))); | 149 HasDetailsAsDictionary(reason_encryption_details))); |
| 150 EXPECT_CALL(mock_js_event_handler_, | 150 EXPECT_CALL(mock_js_event_handler_, |
| 151 HandleJsEvent("onPassphraseRequired", | 151 HandleJsEvent("onPassphraseRequired", |
| 152 HasDetailsAsDictionary(reason_decryption_details))); | 152 HasDetailsAsDictionary(reason_decryption_details))); |
| 153 | 153 |
| 154 js_sync_manager_observer_.OnPassphraseRequired( | 154 js_sync_manager_observer_.OnPassphraseRequired( |
| 155 csync::REASON_PASSPHRASE_NOT_REQUIRED, | 155 syncer::REASON_PASSPHRASE_NOT_REQUIRED, |
| 156 sync_pb::EncryptedData()); | 156 sync_pb::EncryptedData()); |
| 157 js_sync_manager_observer_.OnPassphraseRequired(csync::REASON_ENCRYPTION, | 157 js_sync_manager_observer_.OnPassphraseRequired(syncer::REASON_ENCRYPTION, |
| 158 sync_pb::EncryptedData()); | 158 sync_pb::EncryptedData()); |
| 159 js_sync_manager_observer_.OnPassphraseRequired(csync::REASON_DECRYPTION, | 159 js_sync_manager_observer_.OnPassphraseRequired(syncer::REASON_DECRYPTION, |
| 160 sync_pb::EncryptedData()); | 160 sync_pb::EncryptedData()); |
| 161 PumpLoop(); | 161 PumpLoop(); |
| 162 } | 162 } |
| 163 | 163 |
| 164 TEST_F(JsSyncManagerObserverTest, SensitiveNotifiations) { | 164 TEST_F(JsSyncManagerObserverTest, SensitiveNotifiations) { |
| 165 DictionaryValue redacted_token_details; | 165 DictionaryValue redacted_token_details; |
| 166 redacted_token_details.SetString("token", "<redacted>"); | 166 redacted_token_details.SetString("token", "<redacted>"); |
| 167 DictionaryValue redacted_bootstrap_token_details; | 167 DictionaryValue redacted_bootstrap_token_details; |
| 168 redacted_bootstrap_token_details.SetString("bootstrapToken", "<redacted>"); | 168 redacted_bootstrap_token_details.SetString("bootstrapToken", "<redacted>"); |
| 169 | 169 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 199 EXPECT_CALL(mock_js_event_handler_, | 199 EXPECT_CALL(mock_js_event_handler_, |
| 200 HandleJsEvent("onEncryptedTypesChanged", | 200 HandleJsEvent("onEncryptedTypesChanged", |
| 201 HasDetailsAsDictionary(expected_details))); | 201 HasDetailsAsDictionary(expected_details))); |
| 202 | 202 |
| 203 js_sync_manager_observer_.OnEncryptedTypesChanged( | 203 js_sync_manager_observer_.OnEncryptedTypesChanged( |
| 204 encrypted_types, encrypt_everything); | 204 encrypted_types, encrypt_everything); |
| 205 PumpLoop(); | 205 PumpLoop(); |
| 206 } | 206 } |
| 207 | 207 |
| 208 } // namespace | 208 } // namespace |
| 209 } // namespace csync | 209 } // namespace syncer |
| OLD | NEW |