1 // Copyright (c) 2013 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 "net/base/net_log_unittest.h"
8 #include "base/values.h"
9 #include "net/base/net_errors.h"
15 base::Value
* NetLogLevelCallback(NetLog::LogLevel log_level
) {
16 base::DictionaryValue
* dict
= new base::DictionaryValue();
17 dict
->SetInteger("log_level", log_level
);
21 TEST(NetLogTest
, Basic
) {
22 CapturingNetLog net_log
;
23 net::CapturingNetLog::CapturedEntryList entries
;
24 net_log
.GetEntries(&entries
);
25 EXPECT_EQ(0u, entries
.size());
27 net_log
.AddGlobalEntry(NetLog::TYPE_CANCELLED
);
29 net_log
.GetEntries(&entries
);
30 ASSERT_EQ(1u, entries
.size());
31 EXPECT_EQ(NetLog::TYPE_CANCELLED
, entries
[0].type
);
32 EXPECT_EQ(NetLog::SOURCE_NONE
, entries
[0].source
.type
);
33 EXPECT_NE(NetLog::Source::kInvalidId
, entries
[0].source
.id
);
34 EXPECT_EQ(NetLog::PHASE_NONE
, entries
[0].phase
);
35 EXPECT_GE(base::TimeTicks::Now(), entries
[0].time
);
36 EXPECT_FALSE(entries
[0].params
);
39 // Check that the correct LogLevel is sent to NetLog Value callbacks, and that
40 // LOG_NONE logs no events.
41 TEST(NetLogTest
, LogLevels
) {
42 CapturingNetLog net_log
;
43 for (int log_level
= NetLog::LOG_ALL
; log_level
<= NetLog::LOG_NONE
;
45 net_log
.SetLogLevel(static_cast<NetLog::LogLevel
>(log_level
));
46 EXPECT_EQ(log_level
, net_log
.GetLogLevel());
48 net_log
.AddGlobalEntry(NetLog::TYPE_SOCKET_ALIVE
,
49 base::Bind(NetLogLevelCallback
));
51 net::CapturingNetLog::CapturedEntryList entries
;
52 net_log
.GetEntries(&entries
);
54 if (log_level
== NetLog::LOG_NONE
) {
55 EXPECT_EQ(0u, entries
.size());
57 ASSERT_EQ(1u, entries
.size());
58 EXPECT_EQ(NetLog::TYPE_SOCKET_ALIVE
, entries
[0].type
);
59 EXPECT_EQ(NetLog::SOURCE_NONE
, entries
[0].source
.type
);
60 EXPECT_NE(NetLog::Source::kInvalidId
, entries
[0].source
.id
);
61 EXPECT_EQ(NetLog::PHASE_NONE
, entries
[0].phase
);
62 EXPECT_GE(base::TimeTicks::Now(), entries
[0].time
);
65 ASSERT_TRUE(entries
[0].GetIntegerValue("log_level", &logged_log_level
));
66 EXPECT_EQ(log_level
, logged_log_level
);