diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-29 01:19:25 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-29 01:19:25 +0000 |
commit | a05c0d82a604eee8c765c450ddc47bf603844642 (patch) | |
tree | dbbbc2071d8a6610ee9729f3218b1a52243576b5 /remoting/jingle_glue | |
parent | 667d3f576698a74703700a8cf0a005883a3ff624 (diff) | |
download | chromium_src-a05c0d82a604eee8c765c450ddc47bf603844642.zip chromium_src-a05c0d82a604eee8c765c450ddc47bf603844642.tar.gz chromium_src-a05c0d82a604eee8c765c450ddc47bf603844642.tar.bz2 |
Fix JingleSession to properly set initiator field in session.
Previously session-initiate messages generated by JingleSession had
an empty initiator attribute. Also added tests that verify that
initiator field is set.
Review URL: https://chromiumcodereview.appspot.com/9477010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124081 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/jingle_glue')
-rw-r--r-- | remoting/jingle_glue/fake_signal_strategy.cc | 10 | ||||
-rw-r--r-- | remoting/jingle_glue/fake_signal_strategy.h | 9 |
2 files changed, 14 insertions, 5 deletions
diff --git a/remoting/jingle_glue/fake_signal_strategy.cc b/remoting/jingle_glue/fake_signal_strategy.cc index 160daba..a854502 100644 --- a/remoting/jingle_glue/fake_signal_strategy.cc +++ b/remoting/jingle_glue/fake_signal_strategy.cc @@ -30,9 +30,9 @@ FakeSignalStrategy::FakeSignalStrategy(const std::string& jid) } FakeSignalStrategy::~FakeSignalStrategy() { - while (!pending_messages_.empty()) { - delete pending_messages_.front(); - pending_messages_.pop(); + while (!received_messages_.empty()) { + delete received_messages_.front(); + received_messages_.pop_front(); } } @@ -87,7 +87,8 @@ std::string FakeSignalStrategy::GetNextId() { void FakeSignalStrategy::OnIncomingMessage( scoped_ptr<buzz::XmlElement> stanza) { - pending_messages_.push(stanza.release()); + pending_messages_.push(stanza.get()); + received_messages_.push_back(stanza.release()); MessageLoop::current()->PostTask( FROM_HERE, base::Bind(&FakeSignalStrategy::DeliverIncomingMessages, weak_factory_.GetWeakPtr())); @@ -112,7 +113,6 @@ void FakeSignalStrategy::DeliverIncomingMessages() { } pending_messages_.pop(); - delete stanza; } } diff --git a/remoting/jingle_glue/fake_signal_strategy.h b/remoting/jingle_glue/fake_signal_strategy.h index 7428836..f7f8db2 100644 --- a/remoting/jingle_glue/fake_signal_strategy.h +++ b/remoting/jingle_glue/fake_signal_strategy.h @@ -5,6 +5,7 @@ #ifndef REMOTING_JINGLE_GLUE_FAKE_SIGNAL_STRATEGY_H_ #define REMOTING_JINGLE_GLUE_FAKE_SIGNAL_STRATEGY_H_ +#include <list> #include <queue> #include <string> @@ -24,6 +25,10 @@ class FakeSignalStrategy : public SignalStrategy, FakeSignalStrategy(const std::string& jid); virtual ~FakeSignalStrategy(); + const std::list<buzz::XmlElement*>& received_messages() { + return received_messages_; + } + // SignalStrategy interface. virtual void Connect() OVERRIDE; virtual void Disconnect() OVERRIDE; @@ -46,6 +51,10 @@ class FakeSignalStrategy : public SignalStrategy, int last_id_; + // All received messages, includes thouse still in |pending_messages_|. + std::list<buzz::XmlElement*> received_messages_; + + // Queue of messages that have yet to be delivered to observers. std::queue<buzz::XmlElement*> pending_messages_; base::WeakPtrFactory<FakeSignalStrategy> weak_factory_; |