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

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: Added logging.h include to device_data_manager_test_api_stub.cc. 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 ui::test::DeviceDataManagerTestAPI device_data_manager_test_api_;
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 gfx::test::TestScreen test_screen_;
39
40 DISALLOW_COPY_AND_ASSIGN(ChromeBrowserMainExtraPartsMetricsTest);
41 };
42
43 ChromeBrowserMainExtraPartsMetricsTest::ChromeBrowserMainExtraPartsMetricsTest()
44 : device_data_manager_test_api_() {
45 device_data_manager_test_api_.CreateDeviceDataManagerInstance();
46 gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, &test_screen_);
47 }
48
49 ChromeBrowserMainExtraPartsMetricsTest::
50 ~ChromeBrowserMainExtraPartsMetricsTest() {
51 gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, nullptr);
52 }
53
54 // Verify a TouchEventsEnabled value isn't recorded during construction.
55 TEST_F(ChromeBrowserMainExtraPartsMetricsTest,
56 VerifyTouchEventsEnabledIsNotRecordedAfterConstruction) {
57 base::HistogramTester histogram_tester;
58 ChromeBrowserMainExtraPartsMetrics test_target;
59 histogram_tester.ExpectTotalCount(kTouchEventsEnabledHistogramName, 0);
60 }
61
62 #if defined(USE_OZONE) || defined(USE_X11)
63
64 // Verify a TouchEventsEnabled value isn't recorded during PostBrowserStart if
65 // the device scan hasn't completed yet.
66 TEST_F(ChromeBrowserMainExtraPartsMetricsTest,
67 VerifyTouchEventsEnabledIsNotRecordedAfterPostBrowserStart) {
68 base::HistogramTester histogram_tester;
69
70 ChromeBrowserMainExtraPartsMetrics test_target;
71
72 test_target.PostBrowserStart();
73 histogram_tester.ExpectTotalCount(kTouchEventsEnabledHistogramName, 0);
74 }
75
76 // Verify a TouchEventsEnabled value is recorded during PostBrowserStart if the
77 // device scan has already completed.
78 TEST_F(ChromeBrowserMainExtraPartsMetricsTest,
79 VerifyTouchEventsEnabledIsRecordedAfterPostBrowserStart) {
80 base::HistogramTester histogram_tester;
81
82 device_data_manager_test_api_.OnDeviceListsComplete();
83
84 ChromeBrowserMainExtraPartsMetrics test_target;
85
86 test_target.PostBrowserStart();
87 histogram_tester.ExpectTotalCount(kTouchEventsEnabledHistogramName, 1);
88 }
89
90 // Verify a TouchEventsEnabled value is recorded when an asynchronous device
91 // scan completes.
92 TEST_F(ChromeBrowserMainExtraPartsMetricsTest,
93 VerifyTouchEventsEnabledIsRecordedWhenDeviceListsComplete) {
94 base::HistogramTester histogram_tester;
95 ChromeBrowserMainExtraPartsMetrics test_target;
96
97 test_target.PostBrowserStart();
98 device_data_manager_test_api_.NotifyObserversDeviceListsComplete();
99 histogram_tester.ExpectTotalCount(kTouchEventsEnabledHistogramName, 1);
100 }
101
102 // Verify a TouchEventsEnabled value is only recorded once if multiple
103 // asynchronous device scans happen.
104 TEST_F(ChromeBrowserMainExtraPartsMetricsTest,
105 VerifyTouchEventsEnabledIsOnlyRecordedOnce) {
106 base::HistogramTester histogram_tester;
107 ChromeBrowserMainExtraPartsMetrics test_target;
108
109 test_target.PostBrowserStart();
110 device_data_manager_test_api_.NotifyObserversDeviceListsComplete();
111 device_data_manager_test_api_.NotifyObserversDeviceListsComplete();
112 histogram_tester.ExpectTotalCount(kTouchEventsEnabledHistogramName, 1);
113 }
114
115 #else
116
117 // Verify a TouchEventsEnabled value is recorded during PostBrowserStart.
118 TEST_F(ChromeBrowserMainExtraPartsMetricsTest,
119 VerifyTouchEventsEnabledIsRecordedAfterPostBrowserStart) {
120 base::HistogramTester histogram_tester;
121 ChromeBrowserMainExtraPartsMetrics test_target;
122
123 test_target.PostBrowserStart();
124 histogram_tester.ExpectTotalCount(kTouchEventsEnabledHistogramName, 1);
125 }
126
127 #endif // defined(USE_OZONE) || defined(USE_X11)
OLDNEW
« no previous file with comments | « chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc ('k') | chrome/chrome_tests_unit.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698