| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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 "base/test/simple_test_tick_clock.h" | 5 #include "base/test/simple_test_tick_clock.h" |
| 6 #include "extensions/browser/api/cast_channel/cast_auth_util.h" | 6 #include "extensions/browser/api/cast_channel/cast_auth_util.h" |
| 7 #include "extensions/browser/api/cast_channel/logger.h" | 7 #include "extensions/browser/api/cast_channel/logger.h" |
| 8 #include "extensions/browser/api/cast_channel/logger_util.h" | 8 #include "extensions/browser/api/cast_channel/logger_util.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 #include "third_party/zlib/zlib.h" | 10 #include "third_party/zlib/zlib.h" |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 class CastChannelLoggerTest : public testing::Test { | 23 class CastChannelLoggerTest : public testing::Test { |
| 24 public: | 24 public: |
| 25 // |logger_| will take ownership of |clock_|. | 25 // |logger_| will take ownership of |clock_|. |
| 26 CastChannelLoggerTest() | 26 CastChannelLoggerTest() |
| 27 : clock_(new base::SimpleTestTickClock), | 27 : clock_(new base::SimpleTestTickClock), |
| 28 logger_(new Logger(scoped_ptr<base::TickClock>(clock_), | 28 logger_(new Logger(scoped_ptr<base::TickClock>(clock_), |
| 29 base::TimeTicks())) {} | 29 base::TimeTicks())) {} |
| 30 virtual ~CastChannelLoggerTest() {} | 30 virtual ~CastChannelLoggerTest() {} |
| 31 | 31 |
| 32 bool Uncompress(const char* input, int length, std::string* output) { | 32 bool Uncompress(const char* input, int length, std::string* output) { |
| 33 z_stream stream = {0}; | 33 z_stream stream = {nullptr}; |
| 34 | 34 |
| 35 stream.next_in = reinterpret_cast<uint8*>(const_cast<char*>(input)); | 35 stream.next_in = reinterpret_cast<uint8*>(const_cast<char*>(input)); |
| 36 stream.avail_in = length; | 36 stream.avail_in = length; |
| 37 stream.next_out = reinterpret_cast<uint8*>(&(*output)[0]); | 37 stream.next_out = reinterpret_cast<uint8*>(&(*output)[0]); |
| 38 stream.avail_out = output->size(); | 38 stream.avail_out = output->size(); |
| 39 | 39 |
| 40 bool success = false; | 40 bool success = false; |
| 41 while (stream.avail_in > 0 && stream.avail_out > 0) { | 41 while (stream.avail_in > 0 && stream.avail_out > 0) { |
| 42 // 16 is added to read in gzip format. | 42 // 16 is added to read in gzip format. |
| 43 int result = inflateInit2(&stream, MAX_WBITS + 16); | 43 int result = inflateInit2(&stream, MAX_WBITS + 16); |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 111 logger_->LogSocketChallengeReplyEvent(2, auth_result); | 111 logger_->LogSocketChallengeReplyEvent(2, auth_result); |
| 112 | 112 |
| 113 LastErrors last_errors = logger_->GetLastErrors(2); | 113 LastErrors last_errors = logger_->GetLastErrors(2); |
| 114 EXPECT_EQ(last_errors.event_type, proto::AUTH_CHALLENGE_REPLY); | 114 EXPECT_EQ(last_errors.event_type, proto::AUTH_CHALLENGE_REPLY); |
| 115 EXPECT_EQ(last_errors.net_return_value, 0); | 115 EXPECT_EQ(last_errors.net_return_value, 0); |
| 116 EXPECT_EQ(last_errors.challenge_reply_error_type, | 116 EXPECT_EQ(last_errors.challenge_reply_error_type, |
| 117 proto::CHALLENGE_REPLY_ERROR_NSS_CERT_PARSING_FAILED); | 117 proto::CHALLENGE_REPLY_ERROR_NSS_CERT_PARSING_FAILED); |
| 118 EXPECT_EQ(last_errors.nss_error_code, kTestNssErrorCode); | 118 EXPECT_EQ(last_errors.nss_error_code, kTestNssErrorCode); |
| 119 | 119 |
| 120 scoped_ptr<Log> log = GetLog(); | 120 scoped_ptr<Log> log = GetLog(); |
| 121 ASSERT_TRUE(log.get() != NULL); | 121 ASSERT_TRUE(log.get() != nullptr); |
| 122 | 122 |
| 123 ASSERT_EQ(2, log->aggregated_socket_event_size()); | 123 ASSERT_EQ(2, log->aggregated_socket_event_size()); |
| 124 { | 124 { |
| 125 const AggregatedSocketEvent& aggregated_socket_event = | 125 const AggregatedSocketEvent& aggregated_socket_event = |
| 126 log->aggregated_socket_event(0); | 126 log->aggregated_socket_event(0); |
| 127 EXPECT_EQ(1, aggregated_socket_event.id()); | 127 EXPECT_EQ(1, aggregated_socket_event.id()); |
| 128 EXPECT_EQ(3, aggregated_socket_event.socket_event_size()); | 128 EXPECT_EQ(3, aggregated_socket_event.socket_event_size()); |
| 129 { | 129 { |
| 130 const SocketEvent& event = aggregated_socket_event.socket_event(0); | 130 const SocketEvent& event = aggregated_socket_event.socket_event(0); |
| 131 EXPECT_EQ(EventType::CAST_SOCKET_CREATED, event.type()); | 131 EXPECT_EQ(EventType::CAST_SOCKET_CREATED, event.type()); |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 193 clock_->Advance(base::TimeDelta::FromMicroseconds(1)); | 193 clock_->Advance(base::TimeDelta::FromMicroseconds(1)); |
| 194 | 194 |
| 195 logger_->LogSocketEventWithRv(2, EventType::SOCKET_READ, 100); | 195 logger_->LogSocketEventWithRv(2, EventType::SOCKET_READ, 100); |
| 196 clock_->Advance(base::TimeDelta::FromMicroseconds(1)); | 196 clock_->Advance(base::TimeDelta::FromMicroseconds(1)); |
| 197 logger_->LogSocketEventWithRv(2, EventType::SOCKET_WRITE, 100); | 197 logger_->LogSocketEventWithRv(2, EventType::SOCKET_WRITE, 100); |
| 198 clock_->Advance(base::TimeDelta::FromMicroseconds(1)); | 198 clock_->Advance(base::TimeDelta::FromMicroseconds(1)); |
| 199 logger_->LogSocketEventWithRv(2, EventType::SOCKET_WRITE, -5); | 199 logger_->LogSocketEventWithRv(2, EventType::SOCKET_WRITE, -5); |
| 200 clock_->Advance(base::TimeDelta::FromMicroseconds(1)); | 200 clock_->Advance(base::TimeDelta::FromMicroseconds(1)); |
| 201 | 201 |
| 202 scoped_ptr<Log> log = GetLog(); | 202 scoped_ptr<Log> log = GetLog(); |
| 203 ASSERT_TRUE(log.get() != NULL); | 203 ASSERT_TRUE(log.get() != nullptr); |
| 204 | 204 |
| 205 ASSERT_EQ(2, log->aggregated_socket_event_size()); | 205 ASSERT_EQ(2, log->aggregated_socket_event_size()); |
| 206 { | 206 { |
| 207 const AggregatedSocketEvent& aggregated_socket_event = | 207 const AggregatedSocketEvent& aggregated_socket_event = |
| 208 log->aggregated_socket_event(0); | 208 log->aggregated_socket_event(0); |
| 209 EXPECT_EQ(1, aggregated_socket_event.id()); | 209 EXPECT_EQ(1, aggregated_socket_event.id()); |
| 210 EXPECT_EQ(4, aggregated_socket_event.socket_event_size()); | 210 EXPECT_EQ(4, aggregated_socket_event.socket_event_size()); |
| 211 EXPECT_EQ(80, aggregated_socket_event.bytes_read()); | 211 EXPECT_EQ(80, aggregated_socket_event.bytes_read()); |
| 212 EXPECT_EQ(20, aggregated_socket_event.bytes_written()); | 212 EXPECT_EQ(20, aggregated_socket_event.bytes_written()); |
| 213 } | 213 } |
| 214 { | 214 { |
| 215 const AggregatedSocketEvent& aggregated_socket_event = | 215 const AggregatedSocketEvent& aggregated_socket_event = |
| 216 log->aggregated_socket_event(1); | 216 log->aggregated_socket_event(1); |
| 217 EXPECT_EQ(2, aggregated_socket_event.id()); | 217 EXPECT_EQ(2, aggregated_socket_event.id()); |
| 218 EXPECT_EQ(3, aggregated_socket_event.socket_event_size()); | 218 EXPECT_EQ(3, aggregated_socket_event.socket_event_size()); |
| 219 EXPECT_EQ(100, aggregated_socket_event.bytes_read()); | 219 EXPECT_EQ(100, aggregated_socket_event.bytes_read()); |
| 220 EXPECT_EQ(100, aggregated_socket_event.bytes_written()); | 220 EXPECT_EQ(100, aggregated_socket_event.bytes_written()); |
| 221 } | 221 } |
| 222 } | 222 } |
| 223 | 223 |
| 224 TEST_F(CastChannelLoggerTest, TooManySockets) { | 224 TEST_F(CastChannelLoggerTest, TooManySockets) { |
| 225 for (int i = 0; i < kMaxSocketsToLog + 5; i++) { | 225 for (int i = 0; i < kMaxSocketsToLog + 5; i++) { |
| 226 logger_->LogSocketEvent(i, EventType::CAST_SOCKET_CREATED); | 226 logger_->LogSocketEvent(i, EventType::CAST_SOCKET_CREATED); |
| 227 } | 227 } |
| 228 | 228 |
| 229 scoped_ptr<Log> log = GetLog(); | 229 scoped_ptr<Log> log = GetLog(); |
| 230 ASSERT_TRUE(log.get() != NULL); | 230 ASSERT_TRUE(log.get() != nullptr); |
| 231 | 231 |
| 232 ASSERT_EQ(kMaxSocketsToLog, log->aggregated_socket_event_size()); | 232 ASSERT_EQ(kMaxSocketsToLog, log->aggregated_socket_event_size()); |
| 233 EXPECT_EQ(5, log->num_evicted_aggregated_socket_events()); | 233 EXPECT_EQ(5, log->num_evicted_aggregated_socket_events()); |
| 234 EXPECT_EQ(5, log->num_evicted_socket_events()); | 234 EXPECT_EQ(5, log->num_evicted_socket_events()); |
| 235 | 235 |
| 236 const AggregatedSocketEvent& aggregated_socket_event = | 236 const AggregatedSocketEvent& aggregated_socket_event = |
| 237 log->aggregated_socket_event(0); | 237 log->aggregated_socket_event(0); |
| 238 EXPECT_EQ(5, aggregated_socket_event.id()); | 238 EXPECT_EQ(5, aggregated_socket_event.id()); |
| 239 } | 239 } |
| 240 | 240 |
| 241 TEST_F(CastChannelLoggerTest, TooManyEvents) { | 241 TEST_F(CastChannelLoggerTest, TooManyEvents) { |
| 242 for (int i = 0; i < kMaxEventsPerSocket + 5; i++) { | 242 for (int i = 0; i < kMaxEventsPerSocket + 5; i++) { |
| 243 logger_->LogSocketEvent(1, EventType::CAST_SOCKET_CREATED); | 243 logger_->LogSocketEvent(1, EventType::CAST_SOCKET_CREATED); |
| 244 clock_->Advance(base::TimeDelta::FromMicroseconds(1)); | 244 clock_->Advance(base::TimeDelta::FromMicroseconds(1)); |
| 245 } | 245 } |
| 246 | 246 |
| 247 scoped_ptr<Log> log = GetLog(); | 247 scoped_ptr<Log> log = GetLog(); |
| 248 ASSERT_TRUE(log.get() != NULL); | 248 ASSERT_TRUE(log.get() != nullptr); |
| 249 | 249 |
| 250 ASSERT_EQ(1, log->aggregated_socket_event_size()); | 250 ASSERT_EQ(1, log->aggregated_socket_event_size()); |
| 251 EXPECT_EQ(0, log->num_evicted_aggregated_socket_events()); | 251 EXPECT_EQ(0, log->num_evicted_aggregated_socket_events()); |
| 252 EXPECT_EQ(5, log->num_evicted_socket_events()); | 252 EXPECT_EQ(5, log->num_evicted_socket_events()); |
| 253 | 253 |
| 254 const AggregatedSocketEvent& aggregated_socket_event = | 254 const AggregatedSocketEvent& aggregated_socket_event = |
| 255 log->aggregated_socket_event(0); | 255 log->aggregated_socket_event(0); |
| 256 ASSERT_EQ(kMaxEventsPerSocket, aggregated_socket_event.socket_event_size()); | 256 ASSERT_EQ(kMaxEventsPerSocket, aggregated_socket_event.socket_event_size()); |
| 257 EXPECT_EQ(5, aggregated_socket_event.socket_event(0).timestamp_micros()); | 257 EXPECT_EQ(5, aggregated_socket_event.socket_event(0).timestamp_micros()); |
| 258 } | 258 } |
| 259 | 259 |
| 260 TEST_F(CastChannelLoggerTest, Reset) { | 260 TEST_F(CastChannelLoggerTest, Reset) { |
| 261 logger_->LogSocketEvent(1, EventType::CAST_SOCKET_CREATED); | 261 logger_->LogSocketEvent(1, EventType::CAST_SOCKET_CREATED); |
| 262 | 262 |
| 263 scoped_ptr<Log> log = GetLog(); | 263 scoped_ptr<Log> log = GetLog(); |
| 264 ASSERT_TRUE(log.get() != NULL); | 264 ASSERT_TRUE(log.get() != nullptr); |
| 265 | 265 |
| 266 EXPECT_EQ(1, log->aggregated_socket_event_size()); | 266 EXPECT_EQ(1, log->aggregated_socket_event_size()); |
| 267 | 267 |
| 268 logger_->Reset(); | 268 logger_->Reset(); |
| 269 | 269 |
| 270 log = GetLog(); | 270 log = GetLog(); |
| 271 ASSERT_TRUE(log.get() != NULL); | 271 ASSERT_TRUE(log.get() != nullptr); |
| 272 | 272 |
| 273 EXPECT_EQ(0, log->aggregated_socket_event_size()); | 273 EXPECT_EQ(0, log->aggregated_socket_event_size()); |
| 274 } | 274 } |
| 275 | 275 |
| 276 } // namespace cast_channel | 276 } // namespace cast_channel |
| 277 } // namespace api | 277 } // namespace api |
| 278 } // namespace extensions | 278 } // namespace extensions |
| OLD | NEW |