Chromium Code Reviews| Index: chrome/browser/services/gcm/gcm_client_mock.cc |
| diff --git a/chrome/browser/services/gcm/gcm_client_mock.cc b/chrome/browser/services/gcm/gcm_client_mock.cc |
| index 45f434983bbb8d418df1164815844ded21a144ef..84991866877f8ef4cad03e159ead03f45dab36da 100644 |
| --- a/chrome/browser/services/gcm/gcm_client_mock.cc |
| +++ b/chrome/browser/services/gcm/gcm_client_mock.cc |
| @@ -13,9 +13,11 @@ |
| namespace gcm { |
| -GCMClientMock::GCMClientMock(Status status, ErrorSimulation error_simulation) |
| +GCMClientMock::GCMClientMock(CheckinDelay checkin_delay, |
| + ErrorSimulation error_simulation) |
| : delegate_(NULL), |
| - status_(status), |
| + status_(UNINITIALIZED), |
| + checkin_delay_(checkin_delay), |
| error_simulation_(error_simulation) { |
| } |
| @@ -32,8 +34,21 @@ void GCMClientMock::Initialize( |
| delegate_ = delegate; |
| } |
| +void GCMClientMock::CheckIn() { |
| + DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); |
|
fgorski
2014/02/20 22:18:40
Do you want to add a DCHECK that GCMClientMock is
jianli
2014/02/21 18:25:11
Done.
|
| + |
| + if (checkin_delay_ == CHECKIN_DELAY) |
| + return; |
| + |
| + base::MessageLoop::current()->PostTask( |
| + FROM_HERE, |
| + base::Bind(&GCMClientMock::CheckinFinished, |
| + base::Unretained(this))); |
| +} |
| + |
| void GCMClientMock::CheckOut() { |
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); |
| + status_ = CHECKED_OUT; |
| } |
| void GCMClientMock::Register(const std::string& app_id, |
| @@ -69,8 +84,15 @@ void GCMClientMock::Send(const std::string& app_id, |
| message.id)); |
| } |
| -bool GCMClientMock::IsReady() const { |
| - return status_ == READY; |
| +void GCMClientMock::PerformDelayedCheckIn() { |
| + DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
| + DCHECK_EQ(checkin_delay_, CHECKIN_DELAY); |
| + |
| + checkin_delay_ = NO_CHECKIN_DELAY; |
|
fgorski
2014/02/20 22:18:40
do you need to flip the flag here? why do you do i
jianli
2014/02/21 18:25:11
We flip the flag such that GCMClientMock::CheckIn
|
| + content::BrowserThread::PostTask( |
| + content::BrowserThread::IO, |
| + FROM_HERE, |
| + base::Bind(&GCMClientMock::CheckIn, base::Unretained(this))); |
| } |
| void GCMClientMock::ReceiveMessage(const std::string& app_id, |
| @@ -97,18 +119,6 @@ void GCMClientMock::DeleteMessages(const std::string& app_id) { |
| app_id)); |
| } |
| -void GCMClientMock::SetReady() { |
| - DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
| - DCHECK_EQ(status_, NOT_READY); |
| - |
| - status_ = READY; |
| - content::BrowserThread::PostTask( |
| - content::BrowserThread::IO, |
| - FROM_HERE, |
| - base::Bind(&GCMClientMock::SetReadyOnIO, |
| - base::Unretained(this))); |
| -} |
| - |
| // static |
| std::string GCMClientMock::GetRegistrationIdFromSenderIds( |
| const std::vector<std::string>& sender_ids) { |
| @@ -131,6 +141,11 @@ std::string GCMClientMock::GetRegistrationIdFromSenderIds( |
| return registration_id; |
| } |
| +void GCMClientMock::CheckinFinished() { |
| + status_ = CHECKED_IN; |
| + delegate_->OnGCMReady(); |
| +} |
| + |
| void GCMClientMock::RegisterFinished(const std::string& app_id, |
| const std::string& registrion_id) { |
| delegate_->OnRegisterFinished( |
| @@ -170,8 +185,4 @@ void GCMClientMock::MessageSendError(const std::string& app_id, |
| delegate_->OnMessageSendError(app_id, message_id, NETWORK_ERROR); |
| } |
| -void GCMClientMock::SetReadyOnIO() { |
| - delegate_->OnGCMReady(); |
| -} |
| - |
| } // namespace gcm |