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 |