| Index: remoting/signaling/telemetry_log_writer_unittest.cc
|
| diff --git a/remoting/signaling/telemetry_log_writer_unittest.cc b/remoting/signaling/telemetry_log_writer_unittest.cc
|
| deleted file mode 100644
|
| index d9bcbddd2800e6e7d700faa619aa7f03893be521..0000000000000000000000000000000000000000
|
| --- a/remoting/signaling/telemetry_log_writer_unittest.cc
|
| +++ /dev/null
|
| @@ -1,209 +0,0 @@
|
| -// Copyright 2016 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "remoting/signaling/telemetry_log_writer.h"
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/bind_helpers.h"
|
| -#include "base/macros.h"
|
| -#include "base/memory/ptr_util.h"
|
| -#include "net/http/http_status_code.h"
|
| -#include "remoting/base/url_request.h"
|
| -#include "remoting/signaling/chromoting_event.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -namespace remoting {
|
| -
|
| -class FakeUrlRequest : public UrlRequest {
|
| - public:
|
| - FakeUrlRequest(const std::string& expected_post,
|
| - const UrlRequest::Result& returned_result)
|
| - : expected_post_(expected_post), returned_result_(returned_result) {}
|
| -
|
| - void Respond() { on_result_callback_.Run(returned_result_); }
|
| -
|
| - // UrlRequest overrides.
|
| - void SetPostData(const std::string& content_type,
|
| - const std::string& post_data) override {
|
| - EXPECT_EQ(content_type, "application/json");
|
| - EXPECT_EQ(post_data, expected_post_);
|
| - }
|
| -
|
| - void AddHeader(const std::string& value) override {}
|
| -
|
| - void Start(const OnResultCallback& on_result_callback) override {
|
| - on_result_callback_ = on_result_callback;
|
| - }
|
| -
|
| - private:
|
| - std::string expected_post_;
|
| - UrlRequest::Result returned_result_;
|
| - OnResultCallback on_result_callback_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(FakeUrlRequest);
|
| -};
|
| -
|
| -class FakeUrlRequestFactory : public UrlRequestFactory {
|
| - public:
|
| - ~FakeUrlRequestFactory() override { EXPECT_TRUE(expected_requests_.empty()); }
|
| -
|
| - // Returns a respond closure. Run this closure to respond to the URL request.
|
| - base::Closure AddExpectedRequest(const std::string& exp_post,
|
| - const UrlRequest::Result& ret_result) {
|
| - FakeUrlRequest* fakeRequest = new FakeUrlRequest(exp_post, ret_result);
|
| - base::Closure closure =
|
| - base::Bind(&FakeUrlRequest::Respond, base::Unretained(fakeRequest));
|
| - expected_requests_.push_back(std::unique_ptr<UrlRequest>(fakeRequest));
|
| - return closure;
|
| - }
|
| -
|
| - // request_factory_ override.
|
| - std::unique_ptr<UrlRequest> CreateUrlRequest(
|
| - UrlRequest::Type type,
|
| - const std::string& url) override {
|
| - EXPECT_FALSE(expected_requests_.empty());
|
| - if (expected_requests_.empty()) {
|
| - return std::unique_ptr<UrlRequest>(nullptr);
|
| - }
|
| - EXPECT_EQ(type, UrlRequest::Type::POST);
|
| - std::unique_ptr<UrlRequest> request(std::move(expected_requests_.front()));
|
| - expected_requests_.pop_front();
|
| - return request;
|
| - }
|
| -
|
| - private:
|
| - std::deque<std::unique_ptr<UrlRequest>> expected_requests_;
|
| -};
|
| -
|
| -class TelemetryLogWriterTest : public testing::Test {
|
| - public:
|
| - TelemetryLogWriterTest()
|
| - : request_factory_(new FakeUrlRequestFactory()),
|
| - log_writer_("", base::WrapUnique(request_factory_)) {
|
| - success_result_.success = true;
|
| - success_result_.status = 200;
|
| - success_result_.response_body = "{}";
|
| -
|
| - unauth_result_.success = false;
|
| - unauth_result_.status = net::HTTP_UNAUTHORIZED;
|
| - unauth_result_.response_body = "{}";
|
| - }
|
| -
|
| - protected:
|
| - void LogFakeEvent() {
|
| - ChromotingEvent entry;
|
| - entry.SetInteger("id", id_);
|
| - id_++;
|
| - log_writer_.Log(entry);
|
| - }
|
| -
|
| - void SetAuthClosure() {
|
| - log_writer_.SetAuthClosure(
|
| - base::Bind(&TelemetryLogWriterTest::SetAuth, base::Unretained(this)));
|
| - }
|
| -
|
| - UrlRequest::Result success_result_;
|
| - UrlRequest::Result unauth_result_;
|
| -
|
| - FakeUrlRequestFactory* request_factory_; // For peeking. No ownership.
|
| - TelemetryLogWriter log_writer_;
|
| -
|
| - int set_auth_count_ = 0;
|
| -
|
| - private:
|
| - void SetAuth() {
|
| - set_auth_count_++;
|
| - log_writer_.SetAuthToken("some token");
|
| - }
|
| -
|
| - int id_ = 0;
|
| -};
|
| -
|
| -// Test workflow: add request -> log event -> respond request.
|
| -// Test fails if req is incorrect or creates more/less reqs than expected
|
| -TEST_F(TelemetryLogWriterTest, PostOneLogImmediately) {
|
| - auto respond = request_factory_->AddExpectedRequest(
|
| - "{\"event\":[{\"id\":0}]}", success_result_);
|
| - LogFakeEvent();
|
| - respond.Run();
|
| -}
|
| -
|
| -TEST_F(TelemetryLogWriterTest, PostOneLogAndHaveTwoPendingLogs) {
|
| - auto respond1 = request_factory_->AddExpectedRequest(
|
| - "{\"event\":[{\"id\":0}]}", success_result_);
|
| - LogFakeEvent();
|
| -
|
| - auto respond2 = request_factory_->AddExpectedRequest(
|
| - "{\"event\":[{\"id\":1},{\"id\":2}]}", success_result_);
|
| - LogFakeEvent();
|
| - LogFakeEvent();
|
| - respond1.Run();
|
| - respond2.Run();
|
| -}
|
| -
|
| -TEST_F(TelemetryLogWriterTest, PostLogFailedAndRetry) {
|
| - // kMaxTries = 5
|
| - auto respond1 = request_factory_->AddExpectedRequest(
|
| - "{\"event\":[{\"id\":0}]}", UrlRequest::Result::Failed());
|
| - auto respond2 = request_factory_->AddExpectedRequest(
|
| - "{\"event\":[{\"id\":0}]}", UrlRequest::Result::Failed());
|
| - auto respond3 = request_factory_->AddExpectedRequest(
|
| - "{\"event\":[{\"id\":0}]}", UrlRequest::Result::Failed());
|
| - auto respond4 = request_factory_->AddExpectedRequest(
|
| - "{\"event\":[{\"id\":0}]}", UrlRequest::Result::Failed());
|
| - auto respond5 = request_factory_->AddExpectedRequest(
|
| - "{\"event\":[{\"id\":0}]}", UrlRequest::Result::Failed());
|
| -
|
| - LogFakeEvent();
|
| -
|
| - respond1.Run();
|
| - respond2.Run();
|
| - respond3.Run();
|
| - respond4.Run();
|
| - respond5.Run();
|
| -}
|
| -
|
| -TEST_F(TelemetryLogWriterTest, PostOneLogFailedResendWithTwoPendingLogs) {
|
| - auto respond1 = request_factory_->AddExpectedRequest(
|
| - "{\"event\":[{\"id\":0}]}", UrlRequest::Result::Failed());
|
| - LogFakeEvent();
|
| -
|
| - auto respond2 = request_factory_->AddExpectedRequest(
|
| - "{\"event\":[{\"id\":1},{\"id\":2},{\"id\":0}]}", success_result_);
|
| - LogFakeEvent();
|
| - LogFakeEvent();
|
| -
|
| - respond1.Run();
|
| - respond2.Run();
|
| -}
|
| -
|
| -TEST_F(TelemetryLogWriterTest, PostOneUnauthorizedCallClosureAndRetry) {
|
| - SetAuthClosure();
|
| -
|
| - auto respond1 = request_factory_->AddExpectedRequest(
|
| - "{\"event\":[{\"id\":0}]}", unauth_result_);
|
| - LogFakeEvent();
|
| -
|
| - auto respond2 = request_factory_->AddExpectedRequest(
|
| - "{\"event\":[{\"id\":0}]}", success_result_);
|
| - respond1.Run();
|
| - respond2.Run();
|
| -
|
| - EXPECT_EQ(1, set_auth_count_);
|
| -}
|
| -
|
| -TEST_F(TelemetryLogWriterTest, PostOneUnauthorizedAndJustRetry) {
|
| - auto respond1 = request_factory_->AddExpectedRequest(
|
| - "{\"event\":[{\"id\":0}]}", unauth_result_);
|
| - LogFakeEvent();
|
| -
|
| - auto respond2 = request_factory_->AddExpectedRequest(
|
| - "{\"event\":[{\"id\":0}]}", success_result_);
|
| - respond1.Run();
|
| - respond2.Run();
|
| -
|
| - EXPECT_EQ(0, set_auth_count_);
|
| -}
|
| -
|
| -} // namespace remoting
|
|
|