| Index: chrome/browser/metrics/chrome_browser_main_extra_parts_metrics_unittest.cc
|
| diff --git a/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics_unittest.cc b/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3d179a91076793506d3c67b553524bfdb0dabb00
|
| --- /dev/null
|
| +++ b/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics_unittest.cc
|
| @@ -0,0 +1,121 @@
|
| +// Copyright 2015 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/metrics/chrome_browser_main_extra_parts_metrics.h"
|
| +
|
| +#include "base/macros.h"
|
| +#include "base/message_loop/message_loop.h"
|
| +#include "base/test/histogram_tester.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +#include "ui/aura/test/test_screen.h"
|
| +#include "ui/events/devices/device_data_manager.h"
|
| +#include "ui/events/test/device_data_manager_test_api.h"
|
| +#include "ui/gfx/geometry/size.h"
|
| +#include "ui/gfx/screen.h"
|
| +
|
| +namespace {
|
| +const char kTouchEventsEnabledHistogramName[] =
|
| + "Touchscreen.TouchEventsEnabled";
|
| +} // namespace
|
| +
|
| +// Test fixture for the ChromeBrowserMainExtraPartsMetricsTest class.
|
| +class ChromeBrowserMainExtraPartsMetricsTest : public testing::Test {
|
| + public:
|
| + ChromeBrowserMainExtraPartsMetricsTest();
|
| + ~ChromeBrowserMainExtraPartsMetricsTest() override;
|
| +
|
| + // testing::Test:
|
| + void SetUp() override;
|
| + void TearDown() override;
|
| +
|
| + private:
|
| + // Required by a ChromeBrowserMainExtraPartsMetrics test target.
|
| + base::MessageLoop message_loop_;
|
| +
|
| + // Dummy screen required by a ChromeBrowserMainExtraPartsMetrics test target.
|
| + scoped_ptr<aura::TestScreen> test_screen_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(ChromeBrowserMainExtraPartsMetricsTest);
|
| +};
|
| +
|
| +ChromeBrowserMainExtraPartsMetricsTest::
|
| + ChromeBrowserMainExtraPartsMetricsTest() {
|
| +}
|
| +
|
| +ChromeBrowserMainExtraPartsMetricsTest::
|
| + ~ChromeBrowserMainExtraPartsMetricsTest() {
|
| +}
|
| +
|
| +void ChromeBrowserMainExtraPartsMetricsTest::SetUp() {
|
| + ui::DeviceDataManager::CreateInstance();
|
| + test_screen_.reset(aura::TestScreen::Create(gfx::Size()));
|
| + gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, test_screen_.get());
|
| +}
|
| +
|
| +void ChromeBrowserMainExtraPartsMetricsTest::TearDown() {
|
| + gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, nullptr);
|
| +}
|
| +
|
| +// Verify a TouchEventsEnabled value isn't recorded during construction.
|
| +TEST_F(ChromeBrowserMainExtraPartsMetricsTest,
|
| + VerifyTouchEventsEnabledIsNotRecordedAfterConstruction) {
|
| + base::HistogramTester histogram_tester;
|
| + ChromeBrowserMainExtraPartsMetrics test_target;
|
| + histogram_tester.ExpectTotalCount(kTouchEventsEnabledHistogramName, 0);
|
| +}
|
| +
|
| +#if defined(USE_OZONE) || defined(USE_X11)
|
| +
|
| +// Verify a TouchEventsEnabled value isn't recorded during PostBrowserStart.
|
| +TEST_F(ChromeBrowserMainExtraPartsMetricsTest,
|
| + VerifyTouchEventsEnabledIsNotRecordedAfterPostBrowserStart) {
|
| + base::HistogramTester histogram_tester;
|
| + ChromeBrowserMainExtraPartsMetrics test_target;
|
| +
|
| + test_target.PostBrowserStart();
|
| + histogram_tester.ExpectTotalCount(kTouchEventsEnabledHistogramName, 0);
|
| +}
|
| +
|
| +// Verify a TouchEventsEnabled value is recorded when an asynchronous device
|
| +// scan completes.
|
| +TEST_F(ChromeBrowserMainExtraPartsMetricsTest,
|
| + VerifyTouchEventsEnabledIsRecordedWhenDeviceListsComplete) {
|
| + base::HistogramTester histogram_tester;
|
| + ChromeBrowserMainExtraPartsMetrics test_target;
|
| + ui::test::DeviceDataManagerTestAPI device_data_manager_test_api(
|
| + ui::DeviceDataManager::GetInstance());
|
| +
|
| + test_target.PostBrowserStart();
|
| + device_data_manager_test_api.NotifyObserversDeviceListsComplete();
|
| + histogram_tester.ExpectTotalCount(kTouchEventsEnabledHistogramName, 1);
|
| +}
|
| +
|
| +// Verify a TouchEventsEnabled value is only recorded once if multiple
|
| +// asynchronous device scans happen.
|
| +TEST_F(ChromeBrowserMainExtraPartsMetricsTest,
|
| + VerifyTouchEventsEnabledIsOnlyRecordedOnce) {
|
| + base::HistogramTester histogram_tester;
|
| + ChromeBrowserMainExtraPartsMetrics test_target;
|
| + ui::test::DeviceDataManagerTestAPI device_data_manager_test_api(
|
| + ui::DeviceDataManager::GetInstance());
|
| +
|
| + test_target.PostBrowserStart();
|
| + device_data_manager_test_api.NotifyObserversDeviceListsComplete();
|
| + device_data_manager_test_api.NotifyObserversDeviceListsComplete();
|
| + histogram_tester.ExpectTotalCount(kTouchEventsEnabledHistogramName, 1);
|
| +}
|
| +
|
| +#else
|
| +
|
| +// Verify a TouchEventsEnabled value is recorded during PostBrowserStart.
|
| +TEST_F(ChromeBrowserMainExtraPartsMetricsTest,
|
| + VerifyTouchEventsEnabledIsRecordedAfterPostBrowserStart) {
|
| + base::HistogramTester histogram_tester;
|
| + ChromeBrowserMainExtraPartsMetrics test_target;
|
| +
|
| + test_target.PostBrowserStart();
|
| + histogram_tester.ExpectTotalCount(kTouchEventsEnabledHistogramName, 0);
|
| +}
|
| +
|
| +#endif // defined(USE_OZONE) || defined(USE_X11)
|
|
|