Home | History | Annotate | Download | only in host
      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 "base/memory/scoped_ptr.h"
      6 #include "base/strings/stringize_macros.h"
      7 #include "remoting/host/server_log_entry_host.h"
      8 #include "remoting/signaling/server_log_entry.h"
      9 #include "remoting/signaling/server_log_entry_unittest.h"
     10 #include "testing/gtest/include/gtest/gtest.h"
     11 #include "third_party/webrtc/libjingle/xmllite/xmlelement.h"
     12 
     13 using buzz::XmlAttr;
     14 using buzz::XmlElement;
     15 
     16 namespace remoting {
     17 
     18 TEST(ServerLogEntryHostTest, MakeForSessionStateChange) {
     19   scoped_ptr<ServerLogEntry> entry(MakeLogEntryForSessionStateChange(true));
     20   scoped_ptr<XmlElement> stanza = entry->ToStanza();
     21   std::string error;
     22   std::map<std::string, std::string> key_value_pairs;
     23   key_value_pairs["role"] = "host";
     24   key_value_pairs["event-name"] = "session-state";
     25   key_value_pairs["session-state"] = "connected";
     26   std::set<std::string> keys;
     27   ASSERT_TRUE(VerifyStanza(key_value_pairs, keys, stanza.get(), &error))
     28       << error;
     29 }
     30 
     31 TEST(ServerLogEntryHostTest, MakeForHeartbeat) {
     32   scoped_ptr<ServerLogEntry> entry(MakeLogEntryForHeartbeat());
     33   scoped_ptr<XmlElement> stanza = entry->ToStanza();
     34   std::string error;
     35   std::map<std::string, std::string> key_value_pairs;
     36   key_value_pairs["role"] = "host";
     37   key_value_pairs["event-name"] = "heartbeat";
     38   std::set<std::string> keys;
     39   ASSERT_TRUE(VerifyStanza(key_value_pairs, keys, stanza.get(), &error))
     40       << error;
     41 }
     42 
     43 TEST(ServerLogEntryHostTest, AddHostFields) {
     44   scoped_ptr<ServerLogEntry> entry(MakeLogEntryForSessionStateChange(true));
     45   AddHostFieldsToLogEntry(entry.get());
     46   scoped_ptr<XmlElement> stanza = entry->ToStanza();
     47   std::string error;
     48   std::map<std::string, std::string> key_value_pairs;
     49   key_value_pairs["role"] = "host";
     50   key_value_pairs["event-name"] = "session-state";
     51   key_value_pairs["session-state"] = "connected";
     52   std::set<std::string> keys;
     53   keys.insert("cpu");
     54 #if defined(OS_WIN)
     55   key_value_pairs["os-name"] = "Windows";
     56   keys.insert("os-version");
     57 #elif defined(OS_MACOSX)
     58   key_value_pairs["os-name"] = "Mac";
     59   keys.insert("os-version");
     60 #elif defined(OS_CHROMEOS)
     61   key_value_pairs["os-name"] = "ChromeOS";
     62   keys.insert("os-version");
     63 #elif defined(OS_LINUX)
     64   key_value_pairs["os-name"] = "Linux";
     65 #endif
     66   key_value_pairs["host-version"] = STRINGIZE(VERSION);
     67   ASSERT_TRUE(VerifyStanza(key_value_pairs, keys, stanza.get(), &error)) <<
     68       error;
     69 }
     70 
     71 TEST(ServerLogEntryHostTest, AddModeField1) {
     72   scoped_ptr<ServerLogEntry> entry(MakeLogEntryForSessionStateChange(true));
     73   entry->AddModeField(ServerLogEntry::IT2ME);
     74   scoped_ptr<XmlElement> stanza = entry->ToStanza();
     75   std::string error;
     76   std::map<std::string, std::string> key_value_pairs;
     77   key_value_pairs["role"] = "host";
     78   key_value_pairs["event-name"] = "session-state";
     79   key_value_pairs["session-state"] = "connected";
     80   key_value_pairs["mode"] = "it2me";
     81   std::set<std::string> keys;
     82   ASSERT_TRUE(VerifyStanza(key_value_pairs, keys, stanza.get(), &error)) <<
     83       error;
     84 }
     85 
     86 TEST(ServerLogEntryHostTest, AddModeField2) {
     87   scoped_ptr<ServerLogEntry> entry(MakeLogEntryForSessionStateChange(true));
     88   entry->AddModeField(ServerLogEntry::ME2ME);
     89   scoped_ptr<XmlElement> stanza = entry->ToStanza();
     90   std::string error;
     91   std::map<std::string, std::string> key_value_pairs;
     92   key_value_pairs["role"] = "host";
     93   key_value_pairs["event-name"] = "session-state";
     94   key_value_pairs["session-state"] = "connected";
     95   key_value_pairs["mode"] = "me2me";
     96   std::set<std::string> keys;
     97   ASSERT_TRUE(VerifyStanza(key_value_pairs, keys, stanza.get(), &error)) <<
     98       error;
     99 }
    100 
    101 }  // namespace remoting
    102