| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "remoting/client/client_telemetry_logger.h" | 5 #include "remoting/client/client_telemetry_logger.h" |
| 6 | 6 |
| 7 #include <deque> | 7 #include <deque> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 90 void FakeLogWriter::SetAuthClosure(const base::Closure& closure) { | 90 void FakeLogWriter::SetAuthClosure(const base::Closure& closure) { |
| 91 auth_closure_ = closure; | 91 auth_closure_ = closure; |
| 92 } | 92 } |
| 93 | 93 |
| 94 class ClientTelemetryLoggerTest : public testing::Test { | 94 class ClientTelemetryLoggerTest : public testing::Test { |
| 95 public: | 95 public: |
| 96 // testing::Test override. | 96 // testing::Test override. |
| 97 void SetUp() override; | 97 void SetUp() override; |
| 98 | 98 |
| 99 protected: | 99 protected: |
| 100 // |log_writer_| will be owned by |logger_| and freed when |logger_| | 100 std::unique_ptr<FakeLogWriter> log_writer_; |
| 101 // destructs. Feel free to use this reference in the test. | |
| 102 FakeLogWriter* log_writer_ = nullptr; | |
| 103 std::unique_ptr<ClientTelemetryLogger> logger_; | 101 std::unique_ptr<ClientTelemetryLogger> logger_; |
| 104 }; | 102 }; |
| 105 | 103 |
| 106 void ClientTelemetryLoggerTest::SetUp() { | 104 void ClientTelemetryLoggerTest::SetUp() { |
| 107 log_writer_ = new FakeLogWriter(); | 105 log_writer_.reset(new FakeLogWriter()); |
| 108 logger_.reset(new ClientTelemetryLogger(ChromotingEvent::Mode::ME2ME)); | 106 logger_.reset(new ClientTelemetryLogger(log_writer_.get(), |
| 109 logger_->StartForTest(base::WrapUnique(log_writer_)); | 107 ChromotingEvent::Mode::ME2ME)); |
| 110 } | 108 } |
| 111 | 109 |
| 112 TEST_F(ClientTelemetryLoggerTest, LogSessionStateChange) { | 110 TEST_F(ClientTelemetryLoggerTest, LogSessionStateChange) { |
| 113 ChromotingEvent event(ChromotingEvent::Type::SESSION_STATE); | 111 ChromotingEvent event(ChromotingEvent::Type::SESSION_STATE); |
| 114 event.SetEnum("session_state", ChromotingEvent::SessionState::CONNECTED); | 112 event.SetEnum("session_state", ChromotingEvent::SessionState::CONNECTED); |
| 115 event.SetEnum("connection_error", ChromotingEvent::ConnectionError::NONE); | 113 event.SetEnum("connection_error", ChromotingEvent::ConnectionError::NONE); |
| 116 log_writer_->AddExpectedEvent(event); | 114 log_writer_->AddExpectedEvent(event); |
| 117 logger_->LogSessionStateChange(ChromotingEvent::SessionState::CONNECTED, | 115 logger_->LogSessionStateChange(ChromotingEvent::SessionState::CONNECTED, |
| 118 ChromotingEvent::ConnectionError::NONE); | 116 ChromotingEvent::ConnectionError::NONE); |
| 119 | 117 |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 | 165 |
| 168 // kMaxSessionIdAgeDays = 1. Fake the generation time to be 2 days ago and | 166 // kMaxSessionIdAgeDays = 1. Fake the generation time to be 2 days ago and |
| 169 // force it to expire. | 167 // force it to expire. |
| 170 logger_->SetSessionIdGenerationTimeForTest(base::TimeTicks::Now() - | 168 logger_->SetSessionIdGenerationTimeForTest(base::TimeTicks::Now() - |
| 171 base::TimeDelta::FromDays(2)); | 169 base::TimeDelta::FromDays(2)); |
| 172 protocol::PerformanceTracker perf_tracker; | 170 protocol::PerformanceTracker perf_tracker; |
| 173 logger_->LogStatistics(&perf_tracker); | 171 logger_->LogStatistics(&perf_tracker); |
| 174 EXPECT_NE(last_id, logger_->session_id()); | 172 EXPECT_NE(last_id, logger_->session_id()); |
| 175 } | 173 } |
| 176 | 174 |
| 177 TEST_F(ClientTelemetryLoggerTest, PassesThroughAuthTokenAndClosure) { | |
| 178 std::string token("some token"); | |
| 179 base::Closure closure = base::Bind(&base::DoNothing); | |
| 180 logger_->SetAuthToken(token); | |
| 181 logger_->SetAuthClosure(closure); | |
| 182 EXPECT_EQ(token, log_writer_->auth_token()); | |
| 183 EXPECT_TRUE(closure.Equals(log_writer_->auth_closure())); | |
| 184 } | |
| 185 | |
| 186 } // namespace remoting | 175 } // namespace remoting |
| OLD | NEW |