1// Copyright 2004 Google, Inc. All Rights Reserved. 2// Author: Joe Beda 3 4#include <iostream> 5#include <sstream> 6#include <string> 7#include "webrtc/libjingle/xmllite/xmlelement.h" 8#include "talk/xmpp/util_unittest.h" 9#include "talk/xmpp/xmppengine.h" 10#include "webrtc/base/gunit.h" 11 12namespace buzz { 13 14void XmppTestHandler::WriteOutput(const char * bytes, size_t len) { 15 output_ << std::string(bytes, len); 16} 17 18void XmppTestHandler::StartTls(const std::string & cname) { 19 output_ << "[START-TLS " << cname << "]"; 20} 21 22void XmppTestHandler::CloseConnection() { 23 output_ << "[CLOSED]"; 24} 25 26void XmppTestHandler::OnStateChange(int state) { 27 switch (static_cast<XmppEngine::State>(state)) { 28 case XmppEngine::STATE_START: 29 session_ << "[START]"; 30 break; 31 case XmppEngine::STATE_OPENING: 32 session_ << "[OPENING]"; 33 break; 34 case XmppEngine::STATE_OPEN: 35 session_ << "[OPEN]"; 36 break; 37 case XmppEngine::STATE_CLOSED: 38 session_ << "[CLOSED]"; 39 switch (engine_->GetError(NULL)) { 40 case XmppEngine::ERROR_NONE: 41 // do nothing 42 break; 43 case XmppEngine::ERROR_XML: 44 session_ << "[ERROR-XML]"; 45 break; 46 case XmppEngine::ERROR_STREAM: 47 session_ << "[ERROR-STREAM]"; 48 break; 49 case XmppEngine::ERROR_VERSION: 50 session_ << "[ERROR-VERSION]"; 51 break; 52 case XmppEngine::ERROR_UNAUTHORIZED: 53 session_ << "[ERROR-UNAUTHORIZED]"; 54 break; 55 case XmppEngine::ERROR_TLS: 56 session_ << "[ERROR-TLS]"; 57 break; 58 case XmppEngine::ERROR_AUTH: 59 session_ << "[ERROR-AUTH]"; 60 break; 61 case XmppEngine::ERROR_BIND: 62 session_ << "[ERROR-BIND]"; 63 break; 64 case XmppEngine::ERROR_CONNECTION_CLOSED: 65 session_ << "[ERROR-CONNECTION-CLOSED]"; 66 break; 67 case XmppEngine::ERROR_DOCUMENT_CLOSED: 68 session_ << "[ERROR-DOCUMENT-CLOSED]"; 69 break; 70 default: 71 break; 72 } 73 break; 74 default: 75 break; 76 } 77} 78 79bool XmppTestHandler::HandleStanza(const XmlElement * stanza) { 80 stanza_ << stanza->Str(); 81 return true; 82} 83 84std::string XmppTestHandler::OutputActivity() { 85 std::string result = output_.str(); 86 output_.str(""); 87 return result; 88} 89 90std::string XmppTestHandler::SessionActivity() { 91 std::string result = session_.str(); 92 session_.str(""); 93 return result; 94} 95 96std::string XmppTestHandler::StanzaActivity() { 97 std::string result = stanza_.str(); 98 stanza_.str(""); 99 return result; 100} 101 102} // namespace buzz 103