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.
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"
14 using buzz::XmlElement
;
18 TEST(ServerLogEntryHostTest
, MakeForSessionStateChange
) {
19 scoped_ptr
<ServerLogEntry
> entry(MakeLogEntryForSessionStateChange(true));
20 scoped_ptr
<XmlElement
> stanza
= entry
->ToStanza();
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
))
31 TEST(ServerLogEntryHostTest
, MakeForHeartbeat
) {
32 scoped_ptr
<ServerLogEntry
> entry(MakeLogEntryForHeartbeat());
33 scoped_ptr
<XmlElement
> stanza
= entry
->ToStanza();
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
))
43 TEST(ServerLogEntryHostTest
, AddHostFields
) {
44 scoped_ptr
<ServerLogEntry
> entry(MakeLogEntryForSessionStateChange(true));
45 AddHostFieldsToLogEntry(entry
.get());
46 scoped_ptr
<XmlElement
> stanza
= entry
->ToStanza();
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
;
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";
66 key_value_pairs
["host-version"] = STRINGIZE(VERSION
);
67 ASSERT_TRUE(VerifyStanza(key_value_pairs
, keys
, stanza
.get(), &error
)) <<
71 TEST(ServerLogEntryHostTest
, AddModeField1
) {
72 scoped_ptr
<ServerLogEntry
> entry(MakeLogEntryForSessionStateChange(true));
73 entry
->AddModeField(ServerLogEntry::IT2ME
);
74 scoped_ptr
<XmlElement
> stanza
= entry
->ToStanza();
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
)) <<
86 TEST(ServerLogEntryHostTest
, AddModeField2
) {
87 scoped_ptr
<ServerLogEntry
> entry(MakeLogEntryForSessionStateChange(true));
88 entry
->AddModeField(ServerLogEntry::ME2ME
);
89 scoped_ptr
<XmlElement
> stanza
= entry
->ToStanza();
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
)) <<
101 } // namespace remoting