Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(422)

Unified Diff: remoting/signaling/telemetry_log_writer_unittest.cc

Issue 1972793002: TelemetryLogWriter cleanups (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Reviewer's Feedback Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/signaling/telemetry_log_writer.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « remoting/signaling/telemetry_log_writer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698