Chromium Code Reviews| Index: remoting/protocol/protocol_mock_objects.cc |
| diff --git a/remoting/protocol/protocol_mock_objects.cc b/remoting/protocol/protocol_mock_objects.cc |
| index f558769cc919d8e819872171ba6b233e70e3c1df..233a8d2316dfcc567a89d0c84fc2f39d3536cbb7 100644 |
| --- a/remoting/protocol/protocol_mock_objects.cc |
| +++ b/remoting/protocol/protocol_mock_objects.cc |
| @@ -48,7 +48,8 @@ MockSessionManager::MockSessionManager() {} |
| MockSessionManager::~MockSessionManager() {} |
| -MockPairingRegistryDelegate::MockPairingRegistryDelegate() { |
| +MockPairingRegistryDelegate::MockPairingRegistryDelegate() |
| + : run_save_callback_automatically_(true) { |
| } |
| MockPairingRegistryDelegate::~MockPairingRegistryDelegate() { |
| @@ -57,6 +58,20 @@ MockPairingRegistryDelegate::~MockPairingRegistryDelegate() { |
| void MockPairingRegistryDelegate::Save( |
| const std::string& pairings_json, |
| const PairingRegistry::SaveCallback& callback) { |
| + DCHECK(load_callback_.is_null()); |
|
Lambros
2013/07/18 20:34:51
Use ASSERT_TRUE here and elsewhere instead of DCHE
Jamie
2013/07/18 22:44:56
Done.
|
| + DCHECK(save_callback_.is_null()); |
| + if (run_save_callback_automatically_) { |
| + SetPairingsJsonAndRunCallback(pairings_json, callback); |
| + } else { |
| + save_callback_ = base::Bind( |
| + &MockPairingRegistryDelegate::SetPairingsJsonAndRunCallback, |
| + base::Unretained(this), pairings_json, callback); |
| + } |
| +} |
| + |
| +void MockPairingRegistryDelegate::SetPairingsJsonAndRunCallback( |
| + const std::string& pairings_json, |
| + const PairingRegistry::SaveCallback& callback) { |
| pairings_json_ = pairings_json; |
| if (!callback.is_null()) { |
| callback.Run(true); |
| @@ -65,13 +80,22 @@ void MockPairingRegistryDelegate::Save( |
| void MockPairingRegistryDelegate::Load( |
| const PairingRegistry::LoadCallback& callback) { |
| + DCHECK(load_callback_.is_null()); |
| + DCHECK(save_callback_.is_null()); |
| load_callback_ = base::Bind(base::Bind(callback), pairings_json_); |
|
Lambros
2013/07/18 20:34:51
optional: Remove inner base::Bind ?
|
| } |
| void MockPairingRegistryDelegate::RunCallback() { |
| - DCHECK(!load_callback_.is_null()); |
| - load_callback_.Run(); |
| - load_callback_.Reset(); |
| + DCHECK(load_callback_.is_null() ^ save_callback_.is_null()); |
|
Lambros
2013/07/18 20:34:51
Split this up, otherwise the test output won't tel
Jamie
2013/07/18 22:44:56
Done.
|
| + if (!load_callback_.is_null()) { |
| + base::Closure load_callback = load_callback_; |
| + load_callback_.Reset(); |
| + load_callback.Run(); |
| + } else { |
| + base::Closure save_callback = save_callback_; |
| + save_callback_.Reset(); |
| + save_callback.Run(); |
| + } |
| } |
| } // namespace protocol |