| Index: remoting/signaling/fake_signal_strategy.cc
|
| diff --git a/remoting/signaling/fake_signal_strategy.cc b/remoting/signaling/fake_signal_strategy.cc
|
| index fffc047661422acb6e9c090de04f43c834579e63..132ce1b9ef86fa4009f94bfd8d3cbbbfa832f2cd 100644
|
| --- a/remoting/signaling/fake_signal_strategy.cc
|
| +++ b/remoting/signaling/fake_signal_strategy.cc
|
| @@ -63,6 +63,11 @@ void FakeSignalStrategy::SetLocalJid(const std::string& jid) {
|
| jid_ = jid;
|
| }
|
|
|
| +void FakeSignalStrategy::SimulatePackgeReordering() {
|
| + DCHECK(CalledOnValidThread());
|
| + simulate_reorder_ = true;
|
| +}
|
| +
|
| void FakeSignalStrategy::Connect() {
|
| DCHECK(CalledOnValidThread());
|
| for (auto& observer : listeners_)
|
| @@ -135,6 +140,26 @@ void FakeSignalStrategy::OnIncomingMessage(
|
| std::unique_ptr<buzz::XmlElement> stanza) {
|
| DCHECK(CalledOnValidThread());
|
|
|
| + if (!simulate_reorder_) {
|
| + NotifyListeners(std::move(stanza));
|
| + return;
|
| + }
|
| +
|
| + // Simulate IQ messages re-ordering by swapping the delivery order of
|
| + // next pair of messages.
|
| + if (pending_stanza_) {
|
| + NotifyListeners(std::move(stanza));
|
| + NotifyListeners(std::move(pending_stanza_));
|
| + pending_stanza_.reset();
|
| + } else {
|
| + pending_stanza_ = std::move(stanza);
|
| + }
|
| +}
|
| +
|
| +void FakeSignalStrategy::NotifyListeners(
|
| + std::unique_ptr<buzz::XmlElement> stanza) {
|
| + DCHECK(CalledOnValidThread());
|
| +
|
| buzz::XmlElement* stanza_ptr = stanza.get();
|
| received_messages_.push_back(stanza.release());
|
|
|
|
|