blob: 36ce337eae99fd8922541be739a0b0505fdbf952 [file] [log] [blame]
// 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.
#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_ERROR_SCREENS_HISTOGRAM_HELPER_H_
#define CHROME_BROWSER_CHROMEOS_LOGIN_ERROR_SCREENS_HISTOGRAM_HELPER_H_
#include <string>
#include "base/gtest_prod_util.h"
#include "base/time/time.h"
#include "chrome/browser/chromeos/login/screens/network_error.h"
namespace chromeos {
FORWARD_DECLARE_TEST(ErrorScreensHistogramHelperTest, TestShowHideTime);
FORWARD_DECLARE_TEST(ErrorScreensHistogramHelperTest, TestShowHideShowHideTime);
FORWARD_DECLARE_TEST(ErrorScreensHistogramHelperTest, TestShowShowHideTime);
class ErrorScreensHistogramHelper {
public:
explicit ErrorScreensHistogramHelper(const std::string& screen_name);
void OnScreenShow();
void OnErrorShow(NetworkError::ErrorState error);
void OnErrorHide();
~ErrorScreensHistogramHelper();
private:
FRIEND_TEST_ALL_PREFIXES(ErrorScreensHistogramHelperTest, TestShowHideTime);
FRIEND_TEST_ALL_PREFIXES(ErrorScreensHistogramHelperTest,
TestShowHideShowHideTime);
FRIEND_TEST_ALL_PREFIXES(ErrorScreensHistogramHelperTest,
TestShowShowHideTime);
// functions for testing.
void OnErrorShowTime(NetworkError::ErrorState error, base::Time now);
void OnErrorHideTime(base::Time now);
std::string screen_name_;
bool was_shown_;
NetworkError::ErrorState last_error_shown_;
base::Time error_screen_start_time_;
base::TimeDelta time_on_error_screens_;
};
} // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_LOGIN_ERROR_SCREENS_HISTOGRAM_HELPER_H_