Index: remoting/client/client_telemetry_logger_unittest.cc |
diff --git a/remoting/client/client_telemetry_logger_unittest.cc b/remoting/client/client_telemetry_logger_unittest.cc |
index faf5647fb1d825262410749f711fc92973502bd3..0f8c12c9fe7c2574a964a187d0d76f6d36d9f1b9 100644 |
--- a/remoting/client/client_telemetry_logger_unittest.cc |
+++ b/remoting/client/client_telemetry_logger_unittest.cc |
@@ -8,6 +8,7 @@ |
#include <string> |
#include "base/memory/ptr_util.h" |
+#include "base/memory/weak_ptr.h" |
#include "remoting/protocol/connection_to_host.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -47,6 +48,8 @@ namespace remoting { |
// 3. There are no more expected log entries when the writer destructs. |
class FakeLogWriter : public ChromotingEventLogWriter { |
public: |
+ FakeLogWriter(); |
+ |
~FakeLogWriter() override { |
EXPECT_TRUE(expected_events_.empty()) << "Sent less logs than expected."; |
} |
@@ -57,6 +60,8 @@ class FakeLogWriter : public ChromotingEventLogWriter { |
// more fields in addition to those in the expected entry. |
void AddExpectedEvent(const ChromotingEvent& entry); |
+ base::WeakPtr<FakeLogWriter> GetWeakPtr(); |
+ |
// ChromotingEventLogWriter overrides. |
void Log(const ChromotingEvent& entry) override; |
void SetAuthToken(const std::string& auth_token) override; |
@@ -69,12 +74,20 @@ class FakeLogWriter : public ChromotingEventLogWriter { |
std::deque<ChromotingEvent> expected_events_; |
std::string auth_token_; |
base::Closure auth_closure_; |
+ base::WeakPtrFactory<FakeLogWriter> weak_factory_; |
}; |
+FakeLogWriter::FakeLogWriter() : weak_factory_(this) { |
+} |
+ |
void FakeLogWriter::AddExpectedEvent(const ChromotingEvent& entry) { |
expected_events_.push_back(entry); |
} |
+base::WeakPtr<FakeLogWriter> FakeLogWriter::GetWeakPtr() { |
+ return weak_factory_.GetWeakPtr(); |
+} |
+ |
void FakeLogWriter::Log(const ChromotingEvent& entry) { |
ASSERT_FALSE(expected_events_.empty()) |
<< "Trying to send more logs than expected"; |
@@ -97,16 +110,14 @@ class ClientTelemetryLoggerTest : public testing::Test { |
void SetUp() override; |
protected: |
- // |log_writer_| will be owned by |logger_| and freed when |logger_| |
- // destructs. Feel free to use this reference in the test. |
- FakeLogWriter* log_writer_ = nullptr; |
+ std::unique_ptr<FakeLogWriter> log_writer_; |
std::unique_ptr<ClientTelemetryLogger> logger_; |
}; |
void ClientTelemetryLoggerTest::SetUp() { |
- log_writer_ = new FakeLogWriter(); |
- logger_.reset(new ClientTelemetryLogger(ChromotingEvent::Mode::ME2ME)); |
- logger_->StartForTest(base::WrapUnique(log_writer_)); |
+ log_writer_.reset(new FakeLogWriter()); |
+ logger_.reset(new ClientTelemetryLogger(log_writer_->GetWeakPtr(), |
+ ChromotingEvent::Mode::ME2ME)); |
} |
TEST_F(ClientTelemetryLoggerTest, LogSessionStateChange) { |
@@ -174,13 +185,4 @@ TEST_F(ClientTelemetryLoggerTest, SessionIdExpiration) { |
EXPECT_NE(last_id, logger_->session_id()); |
} |
-TEST_F(ClientTelemetryLoggerTest, PassesThroughAuthTokenAndClosure) { |
- std::string token("some token"); |
- base::Closure closure = base::Bind(&base::DoNothing); |
- logger_->SetAuthToken(token); |
- logger_->SetAuthClosure(closure); |
- EXPECT_EQ(token, log_writer_->auth_token()); |
- EXPECT_TRUE(closure.Equals(log_writer_->auth_closure())); |
-} |
- |
} // namespace remoting |