blob: 91ecb69626ae597e7a0089ef870d62a578460852 [file] [log] [blame]
// Copyright 2004 Google, Inc. All Rights Reserved.
// Author: Joe Beda
#include <string>
#include <sstream>
#include <iostream>
#include "talk/base/gunit.h"
#include "talk/xmllite/xmlelement.h"
#include "talk/xmpp/xmppengine.h"
#include "talk/xmpp/util_unittest.h"
namespace buzz {
void XmppTestHandler::WriteOutput(const char * bytes, size_t len) {
output_ << std::string(bytes, len);
}
void XmppTestHandler::StartTls(const std::string & cname) {
output_ << "[START-TLS " << cname << "]";
}
void XmppTestHandler::CloseConnection() {
output_ << "[CLOSED]";
}
void XmppTestHandler::OnStateChange(int state) {
switch (static_cast<XmppEngine::State>(state)) {
case XmppEngine::STATE_START:
session_ << "[START]";
break;
case XmppEngine::STATE_OPENING:
session_ << "[OPENING]";
break;
case XmppEngine::STATE_OPEN:
session_ << "[OPEN]";
break;
case XmppEngine::STATE_CLOSED:
session_ << "[CLOSED]";
switch (engine_->GetError(NULL)) {
case XmppEngine::ERROR_NONE:
// do nothing
break;
case XmppEngine::ERROR_XML:
session_ << "[ERROR-XML]";
break;
case XmppEngine::ERROR_STREAM:
session_ << "[ERROR-STREAM]";
break;
case XmppEngine::ERROR_VERSION:
session_ << "[ERROR-VERSION]";
break;
case XmppEngine::ERROR_UNAUTHORIZED:
session_ << "[ERROR-UNAUTHORIZED]";
break;
case XmppEngine::ERROR_TLS:
session_ << "[ERROR-TLS]";
break;
case XmppEngine::ERROR_AUTH:
session_ << "[ERROR-AUTH]";
break;
case XmppEngine::ERROR_BIND:
session_ << "[ERROR-BIND]";
break;
case XmppEngine::ERROR_CONNECTION_CLOSED:
session_ << "[ERROR-CONNECTION-CLOSED]";
break;
case XmppEngine::ERROR_DOCUMENT_CLOSED:
session_ << "[ERROR-DOCUMENT-CLOSED]";
break;
}
break;
}
}
bool XmppTestHandler::HandleStanza(const XmlElement * stanza) {
stanza_ << stanza->Str();
return true;
}
std::string XmppTestHandler::OutputActivity() {
std::string result = output_.str();
output_.str("");
return result;
}
std::string XmppTestHandler::SessionActivity() {
std::string result = session_.str();
session_.str("");
return result;
}
std::string XmppTestHandler::StanzaActivity() {
std::string result = stanza_.str();
stanza_.str("");
return result;
}
} // namespace buzz