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

Side by Side Diff: components/previews/previews_data_savings_unittest.cc

Issue 2333003002: Changed previews component to be a layered component. (Closed)
Patch Set: Rebased on master Created 4 years, 3 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 unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "components/previews/previews_data_savings.h"
6
7 #include <stdint.h>
8
9 #include <memory>
10 #include <string>
11
12 #include "base/test/histogram_tester.h"
13 #include "components/data_reduction_proxy/core/common/data_savings_recorder.h"
14 #include "testing/gtest/include/gtest/gtest.h"
15
16 namespace previews {
17
18 namespace {
19
20 class TestDataSavingsRecorder
21 : public data_reduction_proxy::DataSavingsRecorder {
22 public:
23 TestDataSavingsRecorder()
24 : data_saver_enabled_(false), data_used_(0), original_size_(0) {}
25 ~TestDataSavingsRecorder() {}
26
27 // data_reduction_proxy::DataSavingsRecorder implementation:
28 bool UpdateDataSavings(const std::string& host,
29 int64_t data_used,
30 int64_t original_size) override {
31 if (!data_saver_enabled_) {
32 return false;
33 }
34 last_host_ = host;
35 data_used_ += data_used;
36 original_size_ += original_size;
37 return true;
38 }
39
40 void set_data_saver_enabled(bool data_saver_enabled) {
41 data_saver_enabled_ = data_saver_enabled;
42 }
43
44 std::string last_host() const { return last_host_; }
45
46 int64_t data_used() const { return data_used_; }
47
48 int64_t original_size() const { return original_size_; }
49
50 private:
51 bool data_saver_enabled_;
52 std::string last_host_;
53 int64_t data_used_;
54 int64_t original_size_;
55 };
56
57 } // namespace
58
59 class PreviewsDataSavingsTest : public testing::Test {
60 public:
61 PreviewsDataSavingsTest()
62 : test_data_savings_recorder_(new TestDataSavingsRecorder()),
63 data_savings_(
64 new PreviewsDataSavings(test_data_savings_recorder_.get())) {}
65 ~PreviewsDataSavingsTest() override {}
66
67 PreviewsDataSavings* data_savings() const { return data_savings_.get(); }
68
69 TestDataSavingsRecorder* test_data_savings_recorder() const {
70 return test_data_savings_recorder_.get();
71 }
72
73 base::HistogramTester* histogram_tester() { return &histogram_tester_; }
74
75 private:
76 base::HistogramTester histogram_tester_;
77
78 std::unique_ptr<TestDataSavingsRecorder> test_data_savings_recorder_;
79 std::unique_ptr<PreviewsDataSavings> data_savings_;
80 };
81
82 TEST_F(PreviewsDataSavingsTest, RecordDataSavings) {
83 int64_t original_size = 200;
84 int64_t data_used = 100;
85 std::string host = "host";
86
87 EXPECT_EQ(0, test_data_savings_recorder()->data_used());
88 EXPECT_EQ(0, test_data_savings_recorder()->original_size());
89 test_data_savings_recorder()->set_data_saver_enabled(false);
90 data_savings()->RecordDataSavings(host, data_used, original_size);
91
92 EXPECT_EQ(0, test_data_savings_recorder()->data_used());
93 EXPECT_EQ(0, test_data_savings_recorder()->original_size());
94 EXPECT_EQ(std::string(), test_data_savings_recorder()->last_host());
95
96 test_data_savings_recorder()->set_data_saver_enabled(true);
97 data_savings()->RecordDataSavings(host, data_used, original_size);
98
99 EXPECT_EQ(data_used, test_data_savings_recorder()->data_used());
100 EXPECT_EQ(original_size, test_data_savings_recorder()->original_size());
101 EXPECT_EQ(host, test_data_savings_recorder()->last_host());
102 }
103
104 TEST_F(PreviewsDataSavingsTest, RecordDataSavingsHistograms) {
105 int64_t twenty_kb = 20480;
106 int64_t twenty = twenty_kb >> 10;
107 int64_t ten_kb = 10240;
108 int64_t ten = ten_kb >> 10;
109 std::string host = "host";
110
111 test_data_savings_recorder()->set_data_saver_enabled(false);
112 data_savings()->RecordDataSavings(host, ten_kb, twenty_kb);
113
114 // The histograms record bytes in KB.
115 histogram_tester()->ExpectUniqueSample(
116 "Previews.OriginalContentLength.DataSaverDisabled", twenty, 1);
117 histogram_tester()->ExpectUniqueSample(
118 "Previews.ContentLength.DataSaverDisabled", ten, 1);
119 histogram_tester()->ExpectUniqueSample(
120 "Previews.DataSavings.DataSaverDisabled", twenty - ten, 1);
121 histogram_tester()->ExpectUniqueSample(
122 "Previews.DataSavingsPercent.DataSaverDisabled",
123 (twenty_kb - ten_kb) * 100 / twenty_kb, 1);
124
125 data_savings()->RecordDataSavings(host, twenty_kb, ten_kb);
126
127 // The histograms record bytes in KB.
128 histogram_tester()->ExpectBucketCount(
129 "Previews.OriginalContentLength.DataSaverDisabled", ten, 1);
130 histogram_tester()->ExpectBucketCount(
131 "Previews.ContentLength.DataSaverDisabled", twenty, 1);
132 histogram_tester()->ExpectUniqueSample(
133 "Previews.DataInflation.DataSaverDisabled", twenty - ten, 1);
134 histogram_tester()->ExpectUniqueSample(
135 "Previews.DataInflationPercent.DataSaverDisabled",
136 (twenty_kb - ten_kb) * 100 / twenty_kb, 1);
137
138 test_data_savings_recorder()->set_data_saver_enabled(true);
139 data_savings()->RecordDataSavings(host, ten_kb, twenty_kb);
140
141 // The histograms record bytes in KB.
142 histogram_tester()->ExpectUniqueSample(
143 "Previews.OriginalContentLength.DataSaverEnabled", twenty, 1);
144 histogram_tester()->ExpectUniqueSample(
145 "Previews.ContentLength.DataSaverEnabled", ten, 1);
146 histogram_tester()->ExpectUniqueSample(
147 "Previews.DataSavings.DataSaverEnabled", twenty - ten, 1);
148 histogram_tester()->ExpectUniqueSample(
149 "Previews.DataSavingsPercent.DataSaverEnabled",
150 (twenty_kb - ten_kb) * 100 / twenty_kb, 1);
151
152 data_savings()->RecordDataSavings(host, twenty_kb, ten_kb);
153
154 // The histograms record bytes in KB.
155 histogram_tester()->ExpectBucketCount(
156 "Previews.OriginalContentLength.DataSaverEnabled", ten, 1);
157 histogram_tester()->ExpectBucketCount(
158 "Previews.ContentLength.DataSaverEnabled", twenty, 1);
159 histogram_tester()->ExpectUniqueSample(
160 "Previews.DataInflation.DataSaverEnabled", twenty - ten, 1);
161 histogram_tester()->ExpectUniqueSample(
162 "Previews.DataInflationPercent.DataSaverEnabled",
163 (twenty_kb - ten_kb) * 100 / twenty_kb, 1);
164 }
165
166 } // namespace previews
OLDNEW
« no previous file with comments | « components/previews/previews_data_savings.cc ('k') | components/previews/previews_experiments.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698