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";
67 // The check below will compile but fail if VERSION isn't defined (STRINGIZE
68 // silently converts undefined values).
70 #error VERSION must be defined
72 key_value_pairs
["host-version"] = STRINGIZE(VERSION
);
73 ASSERT_TRUE(VerifyStanza(key_value_pairs
, keys
, stanza
.get(), &error
)) <<
77 TEST(ServerLogEntryHostTest
, AddModeField1
) {
78 scoped_ptr
<ServerLogEntry
> entry(MakeLogEntryForSessionStateChange(true));
79 entry
->AddModeField(ServerLogEntry::IT2ME
);
80 scoped_ptr
<XmlElement
> stanza
= entry
->ToStanza();
82 std::map
<std::string
, std::string
> key_value_pairs
;
83 key_value_pairs
["role"] = "host";
84 key_value_pairs
["event-name"] = "session-state";
85 key_value_pairs
["session-state"] = "connected";
86 key_value_pairs
["mode"] = "it2me";
87 std::set
<std::string
> keys
;
88 ASSERT_TRUE(VerifyStanza(key_value_pairs
, keys
, stanza
.get(), &error
)) <<
92 TEST(ServerLogEntryHostTest
, AddModeField2
) {
93 scoped_ptr
<ServerLogEntry
> entry(MakeLogEntryForSessionStateChange(true));
94 entry
->AddModeField(ServerLogEntry::ME2ME
);
95 scoped_ptr
<XmlElement
> stanza
= entry
->ToStanza();
97 std::map
<std::string
, std::string
> key_value_pairs
;
98 key_value_pairs
["role"] = "host";
99 key_value_pairs
["event-name"] = "session-state";
100 key_value_pairs
["session-state"] = "connected";
101 key_value_pairs
["mode"] = "me2me";
102 std::set
<std::string
> keys
;
103 ASSERT_TRUE(VerifyStanza(key_value_pairs
, keys
, stanza
.get(), &error
)) <<
107 } // namespace remoting