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

Side by Side Diff: chrome/browser/chromeos/login/error_screens_histogram_helper_unittest.cc

Issue 494633003: UMA: How often are different network error screens encountered during OOBE (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update after review Created 6 years, 2 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 2014 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/chromeos/login/error_screens_histogram_helper.h"
6
7 #include "base/metrics/statistics_recorder.h"
8 #include "base/test/histogram_tester.h"
9 #include "content/public/test/test_browser_thread_bundle.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 namespace chromeos {
13
14 class ErrorScreensHistogramHelperTest : public testing::Test {
15 public:
16 virtual void SetUp() override {
17 helper_.reset(new ErrorScreensHistogramHelper("TestScreen"));
18 second_helper_.reset(new ErrorScreensHistogramHelper("TestScreen2"));
19 }
20
21 content::TestBrowserThreadBundle thread_bundle_;
22 base::HistogramTester histograms_;
23 scoped_ptr<ErrorScreensHistogramHelper> helper_;
24 scoped_ptr<ErrorScreensHistogramHelper> second_helper_;
25 };
26
27 // No errors when screen was not shown.
28 TEST_F(ErrorScreensHistogramHelperTest, DoesNotShowScreen) {
29 helper_.reset();
30 histograms_.ExpectTotalCount("OOBE.NetworkErrorShown.TestScreen", 0);
31 }
32
33 // No errors when screen was shown and error was not.
34 TEST_F(ErrorScreensHistogramHelperTest, ShowScreenWithoutError) {
35 helper_->OnScreenShow();
36 helper_.reset();
37 second_helper_->OnScreenShow();
38 second_helper_.reset();
39 histograms_.ExpectUniqueSample(
40 "OOBE.NetworkErrorShown.TestScreen", ErrorScreen::ERROR_STATE_NONE, 1);
41 histograms_.ExpectUniqueSample(
42 "OOBE.NetworkErrorShown.TestScreen2", ErrorScreen::ERROR_STATE_NONE, 1);
43 }
44
45 // Show 3 offline errors and 1 portal error. Make sure in time histograms logged
46 // portal error only.
47 TEST_F(ErrorScreensHistogramHelperTest, ShowScreenAndError) {
48 helper_->OnScreenShow();
49 second_helper_->OnScreenShow();
50 helper_->OnErrorShow(ErrorScreen::ERROR_STATE_OFFLINE);
51 second_helper_->OnErrorShow(ErrorScreen::ERROR_STATE_PORTAL);
52 helper_->OnErrorShow(ErrorScreen::ERROR_STATE_OFFLINE);
53 helper_->OnErrorHide();
54 second_helper_->OnErrorHide();
55 helper_->OnErrorShow(ErrorScreen::ERROR_STATE_OFFLINE);
56 histograms_.ExpectUniqueSample(
57 "OOBE.NetworkErrorShown.TestScreen", ErrorScreen::ERROR_STATE_OFFLINE, 3);
58 histograms_.ExpectUniqueSample(
59 "OOBE.NetworkErrorShown.TestScreen2", ErrorScreen::ERROR_STATE_PORTAL, 1);
60 helper_->OnErrorShow(ErrorScreen::ERROR_STATE_PORTAL);
61 histograms_.ExpectBucketCount(
62 "OOBE.NetworkErrorShown.TestScreen", ErrorScreen::ERROR_STATE_PORTAL, 1);
63 histograms_.ExpectTotalCount("OOBE.ErrorScreensTime.TestScreen.Portal", 0);
64 helper_.reset();
65 histograms_.ExpectTotalCount("OOBE.ErrorScreensTime.TestScreen.Portal", 1);
66 }
67
68 // Show error and hide it after 1 sec.
69 TEST_F(ErrorScreensHistogramHelperTest, TestShowHideTime) {
70 helper_->OnScreenShow();
71 second_helper_->OnScreenShow();
72 base::Time now = base::Time::Now();
73 helper_->OnErrorShowTime(ErrorScreen::ERROR_STATE_PORTAL, now);
74 now += base::TimeDelta::FromMilliseconds(1000);
75 helper_->OnErrorHideTime(now);
76 helper_.reset();
77 histograms_.ExpectUniqueSample(
78 "OOBE.ErrorScreensTime.TestScreen.Portal", 1000, 1);
79 }
80
81 // Show, hide, show, hide error with 1 sec interval. Make sure time logged in
82 // histogram is 2 sec.
83 TEST_F(ErrorScreensHistogramHelperTest, TestShowHideShowHideTime) {
84 helper_->OnScreenShow();
85 second_helper_->OnScreenShow();
86 base::Time now = base::Time::Now();
87 helper_->OnErrorShowTime(ErrorScreen::ERROR_STATE_PROXY, now);
88 now += base::TimeDelta::FromMilliseconds(1000);
89 helper_->OnErrorHideTime(now);
90 now += base::TimeDelta::FromMilliseconds(1000);
91 helper_->OnErrorShowTime(ErrorScreen::ERROR_STATE_PORTAL, now);
92 now += base::TimeDelta::FromMilliseconds(1000);
93 helper_->OnErrorHideTime(now);
94 helper_.reset();
95 histograms_.ExpectUniqueSample(
96 "OOBE.ErrorScreensTime.TestScreen.Portal", 2000, 1);
97 }
98
99 // Show, show, hide error with 1 sec interval. Make sure time logged in
100 // histogram is 2 sec.
101 TEST_F(ErrorScreensHistogramHelperTest, TestShowShowHideTime) {
102 helper_->OnScreenShow();
103 second_helper_->OnScreenShow();
104 base::Time now = base::Time::Now();
105 helper_->OnErrorShowTime(ErrorScreen::ERROR_STATE_PROXY, now);
106 now += base::TimeDelta::FromMilliseconds(1000);
107 helper_->OnErrorShowTime(ErrorScreen::ERROR_STATE_PORTAL, now);
108 now += base::TimeDelta::FromMilliseconds(1000);
109 helper_->OnErrorHideTime(now);
110 helper_.reset();
111 histograms_.ExpectUniqueSample(
112 "OOBE.ErrorScreensTime.TestScreen.Portal", 2000, 1);
113 }
114
115 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/error_screens_histogram_helper.cc ('k') | chrome/browser/chromeos/login/screens/error_screen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698