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

Unified Diff: content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc

Issue 2492793004: Add TimeToScrollUpdateSwapBegin2 in RAPPOR (Closed)
Patch Set: add tests Created 4 years 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
Index: content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc
diff --git a/content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc b/content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc
index 813735f5ef18a538c801a5d8309cc2b3ba9dc2f2..a511ed74e80db421206a205f0d3d0d13c4527063 100644
--- a/content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc
+++ b/content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc
@@ -3,9 +3,14 @@
// found in the LICENSE file.
#include "base/test/histogram_tester.h"
+#include "components/rappor/public/rappor_utils.h"
+#include "components/rappor/test_rappor_service.h"
#include "content/browser/renderer_host/input/render_widget_host_latency_tracker.h"
#include "content/common/input/synthetic_web_input_event_builders.h"
#include "content/public/browser/native_web_keyboard_event.h"
+#include "content/test/test_content_browser_client.h"
+#include "content/test/test_render_view_host.h"
+#include "content/test/test_web_contents.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -59,9 +64,29 @@ void AddRenderingScheduledComponent(ui::LatencyInfo* latency,
} // namespace
-class RenderWidgetHostLatencyTrackerTest : public testing::Test {
+class RenderWidgetHostLatencyTrackerTestBrowserClient
+ : public TestContentBrowserClient {
public:
- RenderWidgetHostLatencyTrackerTest() {
+ RenderWidgetHostLatencyTrackerTestBrowserClient() {}
+ ~RenderWidgetHostLatencyTrackerTestBrowserClient() override {}
+
+ rappor::RapporService* GetRapporService() override {
+ return &rappor_service_;
+ }
+
+ rappor::TestRapporServiceImpl* getTestRapporService() {
+ return &rappor_service_;
+ }
+
+ private:
+ rappor::TestRapporServiceImpl rappor_service_;
+ DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostLatencyTrackerTestBrowserClient);
+};
+
+class RenderWidgetHostLatencyTrackerTest
+ : public RenderViewHostImplTestHarness {
+ public:
+ RenderWidgetHostLatencyTrackerTest() : old_browser_client_(NULL) {
tracker_.Initialize(kTestRoutingId, kTestProcessId);
ResetHistograms();
}
@@ -88,12 +113,25 @@ class RenderWidgetHostLatencyTrackerTest : public testing::Test {
return *histogram_tester_;
}
- private:
+ void SetUp() override {
+ RenderViewHostImplTestHarness::SetUp();
+ old_browser_client_ = SetBrowserClientForTesting(&test_browser_client_);
+ tracker_.SetDelegate(contents());
+ }
+
+ void TearDown() override {
+ SetBrowserClientForTesting(old_browser_client_);
+ RenderViewHostImplTestHarness::TearDown();
+ }
+
+ protected:
DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostLatencyTrackerTest);
const int kTestRoutingId = 3;
const int kTestProcessId = 1;
std::unique_ptr<base::HistogramTester> histogram_tester_;
RenderWidgetHostLatencyTracker tracker_;
+ RenderWidgetHostLatencyTrackerTestBrowserClient test_browser_client_;
+ ContentBrowserClient* old_browser_client_;
};
TEST_F(RenderWidgetHostLatencyTrackerTest, TestWheelToFirstScrollHistograms) {
@@ -381,9 +419,13 @@ TEST_F(RenderWidgetHostLatencyTrackerTest, TestTouchToFirstScrollHistograms) {
}
TEST_F(RenderWidgetHostLatencyTrackerTest, TestTouchToScrollHistograms) {
+ const GURL url("http://www.foo.bar.com/subpage/1");
+ contents()->NavigateAndCommit(url);
for (bool rendering_on_main : {false, true}) {
for (bool is_running_navigation_hint_task : {false, true}) {
ResetHistograms();
+ EXPECT_EQ(0,
+ test_browser_client_.getTestRapporService()->GetReportsCount());
{
auto scroll = SyntheticWebGestureEventBuilder::BuildScrollUpdate(
5.f, -5.f, 0, blink::WebGestureDeviceTouchscreen);
@@ -430,6 +472,24 @@ TEST_F(RenderWidgetHostLatencyTrackerTest, TestTouchToScrollHistograms) {
is_running_navigation_hint_task);
}
+ // Rappor metrics
+ rappor::TestSample::Shadow* sample_obj =
+ test_browser_client_.getTestRapporService()
+ ->GetRecordedSampleForMetric(
+ "Event.Latency.ScrollUpdate.Touch."
+ "TimeToScrollUpdateSwapBegin2");
+ EXPECT_NE(nullptr, sample_obj);
+ const auto& domain_it = sample_obj->string_fields.find("Domain");
+ EXPECT_NE(domain_it, sample_obj->string_fields.end());
+ EXPECT_EQ("bar.com", domain_it->second);
+ const auto& latency_it = sample_obj->uint64_fields.find("Latency");
+ EXPECT_NE(latency_it, sample_obj->uint64_fields.end());
+ EXPECT_EQ(rappor::NO_NOISE, latency_it->second.second);
+
+ EXPECT_EQ(2,
+ test_browser_client_.getTestRapporService()->GetReportsCount());
+
+ // UMA histograms
EXPECT_TRUE(HistogramSizeEq(
"Event.Latency.ScrollBegin.Touch.TimeToScrollUpdateSwapBegin2", 0));
EXPECT_TRUE(HistogramSizeEq(

Powered by Google App Engine
This is Rietveld 408576698