10e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org// Copyright 2004 Google, Inc. All Rights Reserved. 20e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org// Author: Joe Beda 30e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 40e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org#include <iostream> 5cf81adffe15fa8ea0f333432e41f6d504148f18abuildbot@webrtc.org#include <sstream> 6cf81adffe15fa8ea0f333432e41f6d504148f18abuildbot@webrtc.org#include <string> 713b2d035e2e7f2f18e3a4d3377bc1a09f43a4ff9buildbot@webrtc.org#include "webrtc/libjingle/xmllite/xmlelement.h" 80e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org#include "talk/xmpp/util_unittest.h" 9cf81adffe15fa8ea0f333432e41f6d504148f18abuildbot@webrtc.org#include "talk/xmpp/xmppengine.h" 10cf81adffe15fa8ea0f333432e41f6d504148f18abuildbot@webrtc.org#include "webrtc/base/gunit.h" 110e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 120e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgnamespace buzz { 130e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 140e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgvoid XmppTestHandler::WriteOutput(const char * bytes, size_t len) { 150e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org output_ << std::string(bytes, len); 160e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org} 170e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 180e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgvoid XmppTestHandler::StartTls(const std::string & cname) { 190e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org output_ << "[START-TLS " << cname << "]"; 200e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org} 210e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 220e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgvoid XmppTestHandler::CloseConnection() { 230e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org output_ << "[CLOSED]"; 240e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org} 250e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 260e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgvoid XmppTestHandler::OnStateChange(int state) { 270e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org switch (static_cast<XmppEngine::State>(state)) { 280e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case XmppEngine::STATE_START: 290e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org session_ << "[START]"; 300e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org break; 310e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case XmppEngine::STATE_OPENING: 320e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org session_ << "[OPENING]"; 330e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org break; 340e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case XmppEngine::STATE_OPEN: 350e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org session_ << "[OPEN]"; 360e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org break; 370e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case XmppEngine::STATE_CLOSED: 380e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org session_ << "[CLOSED]"; 390e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org switch (engine_->GetError(NULL)) { 400e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case XmppEngine::ERROR_NONE: 410e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org // do nothing 420e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org break; 430e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case XmppEngine::ERROR_XML: 440e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org session_ << "[ERROR-XML]"; 450e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org break; 460e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case XmppEngine::ERROR_STREAM: 470e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org session_ << "[ERROR-STREAM]"; 480e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org break; 490e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case XmppEngine::ERROR_VERSION: 500e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org session_ << "[ERROR-VERSION]"; 510e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org break; 520e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case XmppEngine::ERROR_UNAUTHORIZED: 530e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org session_ << "[ERROR-UNAUTHORIZED]"; 540e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org break; 550e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case XmppEngine::ERROR_TLS: 560e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org session_ << "[ERROR-TLS]"; 570e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org break; 580e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case XmppEngine::ERROR_AUTH: 590e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org session_ << "[ERROR-AUTH]"; 600e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org break; 610e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case XmppEngine::ERROR_BIND: 620e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org session_ << "[ERROR-BIND]"; 630e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org break; 640e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case XmppEngine::ERROR_CONNECTION_CLOSED: 650e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org session_ << "[ERROR-CONNECTION-CLOSED]"; 660e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org break; 670e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org case XmppEngine::ERROR_DOCUMENT_CLOSED: 680e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org session_ << "[ERROR-DOCUMENT-CLOSED]"; 690e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org break; 700e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org default: 710e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org break; 720e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org } 730e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org break; 740e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org default: 750e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org break; 760e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org } 770e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org} 780e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 790e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgbool XmppTestHandler::HandleStanza(const XmlElement * stanza) { 800e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org stanza_ << stanza->Str(); 810e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return true; 820e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org} 830e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 840e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgstd::string XmppTestHandler::OutputActivity() { 850e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org std::string result = output_.str(); 860e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org output_.str(""); 870e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return result; 880e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org} 890e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 900e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgstd::string XmppTestHandler::SessionActivity() { 910e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org std::string result = session_.str(); 920e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org session_.str(""); 930e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return result; 940e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org} 950e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 960e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgstd::string XmppTestHandler::StanzaActivity() { 970e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org std::string result = stanza_.str(); 980e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org stanza_.str(""); 990e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org return result; 1000e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org} 1010e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org 1020e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org} // namespace buzz 103