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

Unified 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: Rebase Created 6 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/login/error_screens_histogram_helper_unittest.cc
diff --git a/chrome/browser/chromeos/login/error_screens_histogram_helper_unittest.cc b/chrome/browser/chromeos/login/error_screens_histogram_helper_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..768a10c19d4cca5004fb7188703ff406207f3a2c
--- /dev/null
+++ b/chrome/browser/chromeos/login/error_screens_histogram_helper_unittest.cc
@@ -0,0 +1,116 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/chromeos/login/error_screens_histogram_helper.h"
+
+#include "base/metrics/statistics_recorder.h"
+#include "chrome/test/base/uma_histogram_helper.h"
+#include "content/public/test/test_browser_thread_bundle.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace chromeos {
+
+namespace {
+
+const char* const kHistogramsToSnapshot[] = {
+ "OOBE.NetworkErrorShown.TestScreen",
+ "OOBE.ErrorScreensTime.TestScreen.Portal"};
+}
+
+class ErrorScreensHistogramHelperTest : public testing::Test {
+ public:
+ virtual void SetUp() OVERRIDE {
+ {
+ // For histograms creation
+ ErrorScreensHistogramHelper thelp("TestScreen");
+ thelp.OnScreenShow();
+ thelp.OnErrorShow(ErrorScreen::ERROR_STATE_PORTAL);
+ }
+ histograms_.PrepareSnapshot(kHistogramsToSnapshot,
+ arraysize(kHistogramsToSnapshot));
+ histograms_.Fetch();
+ helper_.reset(new ErrorScreensHistogramHelper("TestScreen"));
+ }
ygorshenin1 2014/08/26 14:33:14 nit: could you please add a blank line after the c
Roman Sorokin (ftl) 2014/09/04 13:26:47 Done.
+ content::TestBrowserThreadBundle thread_bundle_;
+ UMAHistogramHelper histograms_;
+ scoped_ptr<ErrorScreensHistogramHelper> helper_;
+};
+
+// No errors when screen was not shown.
+TEST_F(ErrorScreensHistogramHelperTest, DoesNotShowScreen) {
+ helper_.reset();
+ histograms_.ExpectTotalCount("OOBE.NetworkErrorShown.TestScreen", 0);
+}
+
+// No errors when screen was shown and error was not.
+TEST_F(ErrorScreensHistogramHelperTest, ShowScreenWithoutError) {
+ helper_->OnScreenShow();
+ helper_.reset();
+ histograms_.ExpectUniqueSample(
+ "OOBE.NetworkErrorShown.TestScreen", ErrorScreen::ERROR_STATE_NONE, 1);
+}
+
+// Show 3 offline errors and 1 portal error. Make sure in time histograms logged
+// portal error only.
+TEST_F(ErrorScreensHistogramHelperTest, ShowScreenAndError) {
+ helper_->OnScreenShow();
+ helper_->OnErrorShow(ErrorScreen::ERROR_STATE_OFFLINE);
+ helper_->OnErrorShow(ErrorScreen::ERROR_STATE_OFFLINE);
+ helper_->OnErrorHide();
+ helper_->OnErrorShow(ErrorScreen::ERROR_STATE_OFFLINE);
+ histograms_.ExpectUniqueSample(
+ "OOBE.NetworkErrorShown.TestScreen", ErrorScreen::ERROR_STATE_OFFLINE, 3);
+ helper_->OnErrorShow(ErrorScreen::ERROR_STATE_PORTAL);
+ histograms_.ExpectBucketCount(
+ "OOBE.NetworkErrorShown.TestScreen", ErrorScreen::ERROR_STATE_PORTAL, 1);
+ histograms_.ExpectTotalCount("OOBE.ErrorScreensTime.TestScreen.Portal", 0);
+ helper_.reset();
+ histograms_.ExpectTotalCount("OOBE.ErrorScreensTime.TestScreen.Portal", 1);
+}
+
+// Show error and hide it after 1 sec.
+TEST_F(ErrorScreensHistogramHelperTest, TestShowHideTime) {
+ helper_->OnScreenShow();
+ base::Time now = base::Time::Now();
+ helper_->OnErrorShowTime(ErrorScreen::ERROR_STATE_PORTAL, now);
+ now += base::TimeDelta::FromMilliseconds(1000);
+ helper_->OnErrorHideTime(now);
+ helper_.reset();
+ histograms_.ExpectUniqueSample(
+ "OOBE.ErrorScreensTime.TestScreen.Portal", 1000, 1);
+}
+
+// Show, hide, show, hide error with 1 sec interval. Make sure time logged in
+// histogram is 2 sec.
+TEST_F(ErrorScreensHistogramHelperTest, TestShowHideShowHideTime) {
+ helper_->OnScreenShow();
+ base::Time now = base::Time::Now();
+ helper_->OnErrorShowTime(ErrorScreen::ERROR_STATE_PROXY, now);
+ now += base::TimeDelta::FromMilliseconds(1000);
+ helper_->OnErrorHideTime(now);
+ now += base::TimeDelta::FromMilliseconds(1000);
+ helper_->OnErrorShowTime(ErrorScreen::ERROR_STATE_PORTAL, now);
+ now += base::TimeDelta::FromMilliseconds(1000);
+ helper_->OnErrorHideTime(now);
+ helper_.reset();
+ histograms_.ExpectUniqueSample(
+ "OOBE.ErrorScreensTime.TestScreen.Portal", 2000, 1);
+}
+
+// Show, show, hide error with 1 sec interval. Make sure time logged in
+// histogram is 2 sec.
+TEST_F(ErrorScreensHistogramHelperTest, TestShowShowHideTime) {
+ helper_->OnScreenShow();
+ base::Time now = base::Time::Now();
+ helper_->OnErrorShowTime(ErrorScreen::ERROR_STATE_PROXY, now);
+ now += base::TimeDelta::FromMilliseconds(1000);
+ helper_->OnErrorShowTime(ErrorScreen::ERROR_STATE_PORTAL, now);
+ now += base::TimeDelta::FromMilliseconds(1000);
+ helper_->OnErrorHideTime(now);
+ helper_.reset();
+ histograms_.ExpectUniqueSample(
+ "OOBE.ErrorScreensTime.TestScreen.Portal", 2000, 1);
+}
+
+} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698