Home | History | Annotate | Download | only in signaling
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include <map>
      6 #include <set>
      7 #include <string>
      8 
      9 namespace buzz {
     10 class XmlElement;
     11 }  // namespace buzz
     12 
     13 namespace remoting {
     14 
     15 extern const char kJabberClientNamespace[];
     16 extern const char kChromotingNamespace[];
     17 
     18 // Verifies that |stanza| contains a <log> element and returns it. Otherwise
     19 // returns NULL and records a test failure.
     20 buzz::XmlElement* GetLogElementFromStanza(buzz::XmlElement* stanza);
     21 
     22 // Verifies that |stanza| contains only 1 log entry, and returns the <entry>
     23 // element. Otherwise returns NULL and records a test failure.
     24 buzz::XmlElement* GetSingleLogEntryFromStanza(buzz::XmlElement* stanza);
     25 
     26 // Verifies a logging stanza.
     27 // |keyValuePairs| lists the keys that must have specified values, and |keys|
     28 // lists the keys that must be present, but may have arbitrary values.
     29 // There must be no other keys.
     30 bool VerifyStanza(
     31     const std::map<std::string, std::string>& key_value_pairs,
     32     const std::set<std::string> keys,
     33     const buzz::XmlElement* elem,
     34     std::string* error);
     35 
     36 }  // namespace remoting
     37