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

Side by Side Diff: chrome/browser/metrics/chrome_browser_main_extra_parts_metrics_unittest.cc

Issue 1182303005: Fixed the Touchscreen.TouchEventsEnabled histogram to record the correct values on X11 and Ozone ba… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created gfx::test::TestScreen and addressed other comments. Created 5 years, 5 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 2015 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 "chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h"
6
7 #include "base/macros.h"
8 #include "base/memory/scoped_ptr.h"
9 #include "base/message_loop/message_loop.h"
10 #include "base/test/histogram_tester.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12 #include "ui/events/test/device_data_manager_test_api.h"
13 #include "ui/gfx/geometry/size.h"
14 #include "ui/gfx/screen.h"
15 #include "ui/gfx/test/test_screen.h"
16
17 namespace {
18
19 const char kTouchEventsEnabledHistogramName[] =
20 "Touchscreen.TouchEventsEnabled";
21
22 } // namespace
23
24 class ChromeBrowserMainExtraPartsMetricsTest : public testing::Test {
25 public:
26 ChromeBrowserMainExtraPartsMetricsTest();
27 ~ChromeBrowserMainExtraPartsMetricsTest() override;
28
29 protected:
30 // Test API wrapping |device_data_manager_|.
31 scoped_ptr<ui::test::DeviceDataManagerTestAPI> device_data_manager_test_api_;
Alexei Svitkine (slow) 2015/07/09 15:17:05 Does this need to be a scoped_ptr? Seems like a di
bruthig 2015/07/10 15:38:42 Done.
32
33 private:
34 // Required by a ChromeBrowserMainExtraPartsMetrics test target.
35 base::MessageLoop message_loop_;
36
37 // Dummy screen required by a ChromeBrowserMainExtraPartsMetrics test target.
38 scoped_ptr<gfx::test::TestScreen> test_screen_;
Alexei Svitkine (slow) 2015/07/09 15:17:05 Ditto.
bruthig 2015/07/10 15:38:42 Done.
39
40 DISALLOW_COPY_AND_ASSIGN(ChromeBrowserMainExtraPartsMetricsTest);
41 };
42
43 ChromeBrowserMainExtraPartsMetricsTest::ChromeBrowserMainExtraPartsMetricsTest()
44 : device_data_manager_test_api_(new ui::test::DeviceDataManagerTestAPI()),
45 test_screen_(new gfx::test::TestScreen) {
46 device_data_manager_test_api_->CreateDeviceDataManagerInstance();
47 gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, test_screen_.get());
48 }
49
50 ChromeBrowserMainExtraPartsMetricsTest::
51 ~ChromeBrowserMainExtraPartsMetricsTest() {
52 gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, nullptr);
53 }
54
55 // Verify a TouchEventsEnabled value isn't recorded during construction.
56 TEST_F(ChromeBrowserMainExtraPartsMetricsTest,
57 VerifyTouchEventsEnabledIsNotRecordedAfterConstruction) {
58 base::HistogramTester histogram_tester;
59 ChromeBrowserMainExtraPartsMetrics test_target;
60 histogram_tester.ExpectTotalCount(kTouchEventsEnabledHistogramName, 0);
61 }
62
63 #if defined(USE_OZONE) || defined(USE_X11)
64
65 // Verify a TouchEventsEnabled value isn't recorded during PostBrowserStart if
66 // the device scan hasn't completed yet.
67 TEST_F(ChromeBrowserMainExtraPartsMetricsTest,
68 VerifyTouchEventsEnabledIsNotRecordedAfterPostBrowserStart) {
69 base::HistogramTester histogram_tester;
70
71 ChromeBrowserMainExtraPartsMetrics test_target;
72
73 test_target.PostBrowserStart();
74 histogram_tester.ExpectTotalCount(kTouchEventsEnabledHistogramName, 0);
75 }
76
77 // Verify a TouchEventsEnabled value is recorded during PostBrowserStart if the
78 // device scan has already completed.
79 TEST_F(ChromeBrowserMainExtraPartsMetricsTest,
80 VerifyTouchEventsEnabledIsRecordedAfterPostBrowserStart) {
81 base::HistogramTester histogram_tester;
82
83 device_data_manager_test_api_->OnDeviceListsComplete();
84
85 ChromeBrowserMainExtraPartsMetrics test_target;
86
87 test_target.PostBrowserStart();
88 histogram_tester.ExpectTotalCount(kTouchEventsEnabledHistogramName, 1);
89 }
90
91 // Verify a TouchEventsEnabled value is recorded when an asynchronous device
92 // scan completes.
93 TEST_F(ChromeBrowserMainExtraPartsMetricsTest,
94 VerifyTouchEventsEnabledIsRecordedWhenDeviceListsComplete) {
95 base::HistogramTester histogram_tester;
96 ChromeBrowserMainExtraPartsMetrics test_target;
97
98 test_target.PostBrowserStart();
99 device_data_manager_test_api_->NotifyObserversDeviceListsComplete();
100 histogram_tester.ExpectTotalCount(kTouchEventsEnabledHistogramName, 1);
101 }
102
103 // Verify a TouchEventsEnabled value is only recorded once if multiple
104 // asynchronous device scans happen.
105 TEST_F(ChromeBrowserMainExtraPartsMetricsTest,
106 VerifyTouchEventsEnabledIsOnlyRecordedOnce) {
107 base::HistogramTester histogram_tester;
108 ChromeBrowserMainExtraPartsMetrics test_target;
109
110 test_target.PostBrowserStart();
111 device_data_manager_test_api_->NotifyObserversDeviceListsComplete();
112 device_data_manager_test_api_->NotifyObserversDeviceListsComplete();
113 histogram_tester.ExpectTotalCount(kTouchEventsEnabledHistogramName, 1);
114 }
115
116 #else
117
118 // Verify a TouchEventsEnabled value is recorded during PostBrowserStart.
119 TEST_F(ChromeBrowserMainExtraPartsMetricsTest,
120 VerifyTouchEventsEnabledIsRecordedAfterPostBrowserStart) {
121 base::HistogramTester histogram_tester;
122 ChromeBrowserMainExtraPartsMetrics test_target;
123
124 test_target.PostBrowserStart();
125 histogram_tester.ExpectTotalCount(kTouchEventsEnabledHistogramName, 1);
126 }
127
128 #endif // defined(USE_OZONE) || defined(USE_X11)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698