summaryrefslogtreecommitdiffstats
path: root/remoting/jingle_glue
diff options
context:
space:
mode:
authorsergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-29 01:19:25 +0000
committersergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-29 01:19:25 +0000
commita05c0d82a604eee8c765c450ddc47bf603844642 (patch)
treedbbbc2071d8a6610ee9729f3218b1a52243576b5 /remoting/jingle_glue
parent667d3f576698a74703700a8cf0a005883a3ff624 (diff)
downloadchromium_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.cc10
-rw-r--r--remoting/jingle_glue/fake_signal_strategy.h9
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_;