| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/log/net_log_unittest.h" | 5 #include "net/log/net_log_unittest.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/memory/scoped_vector.h" | 8 #include "base/memory/scoped_vector.h" |
| 9 #include "base/synchronization/waitable_event.h" | 9 #include "base/synchronization/waitable_event.h" |
| 10 #include "base/threading/simple_thread.h" | 10 #include "base/threading/simple_thread.h" |
| 11 #include "base/values.h" | 11 #include "base/values.h" |
| 12 #include "net/base/net_errors.h" | 12 #include "net/base/net_errors.h" |
| 13 | 13 |
| 14 namespace net { | 14 namespace net { |
| 15 | 15 |
| 16 namespace { | 16 namespace { |
| 17 | 17 |
| 18 const int kThreads = 10; | 18 const int kThreads = 10; |
| 19 const int kEvents = 100; | 19 const int kEvents = 100; |
| 20 | 20 |
| 21 base::Value* NetLogLevelCallback(NetLog::LogLevel log_level) { | 21 base::Value* NetLogLevelCallback(NetLog::LogLevel log_level) { |
| 22 base::DictionaryValue* dict = new base::DictionaryValue(); | 22 base::DictionaryValue* dict = new base::DictionaryValue(); |
| 23 dict->SetInteger("log_level", log_level); | 23 dict->SetInteger("log_level", log_level); |
| 24 return dict; | 24 return dict; |
| 25 } | 25 } |
| 26 | 26 |
| 27 TEST(NetLogTest, Basic) { | 27 TEST(NetLogTest, Basic) { |
| 28 CapturingNetLog net_log; | 28 TestNetLog net_log; |
| 29 CapturingNetLog::CapturedEntryList entries; | 29 TestNetLog::CapturedEntryList entries; |
| 30 net_log.GetEntries(&entries); | 30 net_log.GetEntries(&entries); |
| 31 EXPECT_EQ(0u, entries.size()); | 31 EXPECT_EQ(0u, entries.size()); |
| 32 | 32 |
| 33 net_log.AddGlobalEntry(NetLog::TYPE_CANCELLED); | 33 net_log.AddGlobalEntry(NetLog::TYPE_CANCELLED); |
| 34 | 34 |
| 35 net_log.GetEntries(&entries); | 35 net_log.GetEntries(&entries); |
| 36 ASSERT_EQ(1u, entries.size()); | 36 ASSERT_EQ(1u, entries.size()); |
| 37 EXPECT_EQ(NetLog::TYPE_CANCELLED, entries[0].type); | 37 EXPECT_EQ(NetLog::TYPE_CANCELLED, entries[0].type); |
| 38 EXPECT_EQ(NetLog::SOURCE_NONE, entries[0].source.type); | 38 EXPECT_EQ(NetLog::SOURCE_NONE, entries[0].source.type); |
| 39 EXPECT_NE(NetLog::Source::kInvalidId, entries[0].source.id); | 39 EXPECT_NE(NetLog::Source::kInvalidId, entries[0].source.id); |
| 40 EXPECT_EQ(NetLog::PHASE_NONE, entries[0].phase); | 40 EXPECT_EQ(NetLog::PHASE_NONE, entries[0].phase); |
| 41 EXPECT_GE(base::TimeTicks::Now(), entries[0].time); | 41 EXPECT_GE(base::TimeTicks::Now(), entries[0].time); |
| 42 EXPECT_FALSE(entries[0].params); | 42 EXPECT_FALSE(entries[0].params); |
| 43 } | 43 } |
| 44 | 44 |
| 45 // Check that the correct LogLevel is sent to NetLog Value callbacks. | 45 // Check that the correct LogLevel is sent to NetLog Value callbacks. |
| 46 TEST(NetLogTest, LogLevels) { | 46 TEST(NetLogTest, LogLevels) { |
| 47 CapturingNetLog net_log; | 47 TestNetLog net_log; |
| 48 for (int log_level = NetLog::LOG_ALL; log_level < NetLog::LOG_NONE; | 48 for (int log_level = NetLog::LOG_ALL; log_level < NetLog::LOG_NONE; |
| 49 ++log_level) { | 49 ++log_level) { |
| 50 net_log.SetLogLevel(static_cast<NetLog::LogLevel>(log_level)); | 50 net_log.SetLogLevel(static_cast<NetLog::LogLevel>(log_level)); |
| 51 EXPECT_EQ(log_level, net_log.GetLogLevel()); | 51 EXPECT_EQ(log_level, net_log.GetLogLevel()); |
| 52 | 52 |
| 53 net_log.AddGlobalEntry(NetLog::TYPE_SOCKET_ALIVE, | 53 net_log.AddGlobalEntry(NetLog::TYPE_SOCKET_ALIVE, |
| 54 base::Bind(NetLogLevelCallback)); | 54 base::Bind(NetLogLevelCallback)); |
| 55 | 55 |
| 56 CapturingNetLog::CapturedEntryList entries; | 56 TestNetLog::CapturedEntryList entries; |
| 57 net_log.GetEntries(&entries); | 57 net_log.GetEntries(&entries); |
| 58 | 58 |
| 59 ASSERT_EQ(1u, entries.size()); | 59 ASSERT_EQ(1u, entries.size()); |
| 60 EXPECT_EQ(NetLog::TYPE_SOCKET_ALIVE, entries[0].type); | 60 EXPECT_EQ(NetLog::TYPE_SOCKET_ALIVE, entries[0].type); |
| 61 EXPECT_EQ(NetLog::SOURCE_NONE, entries[0].source.type); | 61 EXPECT_EQ(NetLog::SOURCE_NONE, entries[0].source.type); |
| 62 EXPECT_NE(NetLog::Source::kInvalidId, entries[0].source.id); | 62 EXPECT_NE(NetLog::Source::kInvalidId, entries[0].source.id); |
| 63 EXPECT_EQ(NetLog::PHASE_NONE, entries[0].phase); | 63 EXPECT_EQ(NetLog::PHASE_NONE, entries[0].phase); |
| 64 EXPECT_GE(base::TimeTicks::Now(), entries[0].time); | 64 EXPECT_GE(base::TimeTicks::Now(), entries[0].time); |
| 65 | 65 |
| 66 int logged_log_level; | 66 int logged_log_level; |
| (...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 345 NetLog net_log; | 345 NetLog net_log; |
| 346 | 346 |
| 347 // Run a bunch of threads to completion, each of which will repeatedly add | 347 // Run a bunch of threads to completion, each of which will repeatedly add |
| 348 // and remove an observer, and set its logging level. | 348 // and remove an observer, and set its logging level. |
| 349 RunTestThreads<AddRemoveObserverTestThread>(&net_log); | 349 RunTestThreads<AddRemoveObserverTestThread>(&net_log); |
| 350 } | 350 } |
| 351 | 351 |
| 352 } // namespace | 352 } // namespace |
| 353 | 353 |
| 354 } // namespace net | 354 } // namespace net |
| OLD | NEW |