// 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 #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_