Index: ash/metrics/desktop_task_switch_metric_recorder_unittest.cc |
diff --git a/ash/metrics/desktop_task_switch_metric_recorder_unittest.cc b/ash/metrics/desktop_task_switch_metric_recorder_unittest.cc |
deleted file mode 100644 |
index 741407fc507dc8aa7355cda67cb9b187ed8e79e2..0000000000000000000000000000000000000000 |
--- a/ash/metrics/desktop_task_switch_metric_recorder_unittest.cc |
+++ /dev/null |
@@ -1,338 +0,0 @@ |
-// 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 "ash/metrics/desktop_task_switch_metric_recorder.h" |
- |
-#include "ash/shell.h" |
-#include "ash/test/ash_test_base.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "base/test/user_action_tester.h" |
-#include "ui/aura/test/test_window_delegate.h" |
-#include "ui/aura/window.h" |
-#include "ui/compositor/layer_type.h" |
-#include "ui/events/test/event_generator.h" |
-#include "ui/wm/public/activation_client.h" |
-#include "ui/wm/public/window_types.h" |
- |
-using aura::client::ActivationChangeObserver; |
- |
-namespace ash { |
-namespace { |
- |
-const char kDesktopTaskSwitchUserAction[] = "Desktop_SwitchTask"; |
- |
-// Test fixture for the DesktopTaskSwitchMetricsRecorder class. NOTE: This |
-// fixture extends AshTestBase so that the UserMetricsRecorder instance required |
-// by the test target can be obtained through Shell::GetInstance()->metrics() |
-// and the test target is not the same instance as the one owned by the |
-// UserMetricsRecorder instance. |
-class DesktopTaskSwitchMetricRecorderTest : public test::AshTestBase { |
- public: |
- DesktopTaskSwitchMetricRecorderTest(); |
- ~DesktopTaskSwitchMetricRecorderTest() override; |
- |
- // test::AshTestBase: |
- void SetUp() override; |
- void TearDown() override; |
- |
- // Resets the recorded user action counts. |
- void ResetActionCounts(); |
- |
- // Returns the number of times the "Desktop_SwitchTask" user action was |
- // recorded. |
- int GetActionCount() const; |
- |
- // Creates a positionable window such that wm::IsWindowUserPositionable(...) |
- // would retun true. |
- scoped_ptr<aura::Window> CreatePositionableWindow() const; |
- |
- // Creates a non-positionable window such that |
- // wm::IsWindowUserPositionable(...) would retun false. |
- scoped_ptr<aura::Window> CreateNonPositionableWindow() const; |
- |
- // Wrapper to notify the test target's OnWindowActivated(...) method that |
- // |window| was activated due to an INPUT_EVENT. |
- void ActiveTaskWindowWithUserInput(aura::Window* window); |
- |
- protected: |
- // Records UMA user action counts. |
- scoped_ptr<base::UserActionTester> user_action_tester_; |
- |
- // The test target. |
- scoped_ptr<DesktopTaskSwitchMetricRecorder> metrics_recorder_; |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(DesktopTaskSwitchMetricRecorderTest); |
-}; |
- |
-DesktopTaskSwitchMetricRecorderTest::DesktopTaskSwitchMetricRecorderTest() { |
-} |
- |
-DesktopTaskSwitchMetricRecorderTest::~DesktopTaskSwitchMetricRecorderTest() { |
-} |
- |
-void DesktopTaskSwitchMetricRecorderTest::SetUp() { |
- test::AshTestBase::SetUp(); |
- metrics_recorder_.reset(new DesktopTaskSwitchMetricRecorder); |
- user_action_tester_.reset(new base::UserActionTester); |
-} |
- |
-void DesktopTaskSwitchMetricRecorderTest::TearDown() { |
- user_action_tester_.reset(); |
- metrics_recorder_.reset(); |
- test::AshTestBase::TearDown(); |
-} |
- |
-void DesktopTaskSwitchMetricRecorderTest::ActiveTaskWindowWithUserInput( |
- aura::Window* window) { |
- metrics_recorder_->OnWindowActivated( |
- ActivationChangeObserver::ActivationReason::INPUT_EVENT, window, nullptr); |
-} |
- |
-void DesktopTaskSwitchMetricRecorderTest::ResetActionCounts() { |
- user_action_tester_->ResetCounts(); |
-} |
- |
-int DesktopTaskSwitchMetricRecorderTest::GetActionCount() const { |
- return user_action_tester_->GetActionCount(kDesktopTaskSwitchUserAction); |
-} |
- |
-scoped_ptr<aura::Window> |
-DesktopTaskSwitchMetricRecorderTest::CreatePositionableWindow() const { |
- scoped_ptr<aura::Window> window( |
- new aura::Window(new aura::test::TestWindowDelegate)); |
- window->SetType(ui::wm::WINDOW_TYPE_NORMAL); |
- window->Init(ui::LAYER_NOT_DRAWN); |
- return window.Pass(); |
-} |
- |
-scoped_ptr<aura::Window> |
-DesktopTaskSwitchMetricRecorderTest::CreateNonPositionableWindow() const { |
- scoped_ptr<aura::Window> window( |
- new aura::Window(new aura::test::TestWindowDelegate)); |
- window->SetType(ui::wm::WINDOW_TYPE_UNKNOWN); |
- window->Init(ui::LAYER_NOT_DRAWN); |
- return window.Pass(); |
-} |
- |
-// Verify user action is recorded when a positionable window is activated given |
-// that a null window was activated last. |
-TEST_F(DesktopTaskSwitchMetricRecorderTest, |
- ActivatePositionableWindowWhenNullWindowWasActivatedLast) { |
- scoped_ptr<aura::Window> null_window; |
- scoped_ptr<aura::Window> positionable_window = |
- CreatePositionableWindow().Pass(); |
- |
- ActiveTaskWindowWithUserInput(null_window.get()); |
- ResetActionCounts(); |
- |
- ActiveTaskWindowWithUserInput(positionable_window.get()); |
- EXPECT_EQ(1, GetActionCount()); |
-} |
- |
-// Verify user action is recorded whena positionable window is activated given |
-// a different positionable window was activated last. |
-TEST_F( |
- DesktopTaskSwitchMetricRecorderTest, |
- ActivatePositionableWindowWhenADifferentPositionableWindowWasActivatedLast) { |
- scoped_ptr<aura::Window> positionable_window_1 = |
- CreatePositionableWindow().Pass(); |
- scoped_ptr<aura::Window> positionable_window_2 = |
- CreatePositionableWindow().Pass(); |
- |
- ActiveTaskWindowWithUserInput(positionable_window_1.get()); |
- ResetActionCounts(); |
- |
- ActiveTaskWindowWithUserInput(positionable_window_2.get()); |
- EXPECT_EQ(1, GetActionCount()); |
-} |
- |
-// Verify user action is not recorded when a positionable window is activated |
-// given the same positionable window was activated last. |
-TEST_F( |
- DesktopTaskSwitchMetricRecorderTest, |
- ActivatePositionableWindowWhenTheSamePositionableWindowWasActivatedLast) { |
- scoped_ptr<aura::Window> positionable_window = |
- CreatePositionableWindow().Pass(); |
- |
- ActiveTaskWindowWithUserInput(positionable_window.get()); |
- ResetActionCounts(); |
- |
- ActiveTaskWindowWithUserInput(positionable_window.get()); |
- EXPECT_EQ(0, GetActionCount()); |
-} |
- |
-// Verify user action is recorded when a positionable window is activated given |
-// a non-positionable window was activated last. |
-TEST_F(DesktopTaskSwitchMetricRecorderTest, |
- ActivatePositionableWindowWhenANonPositionableWindowWasActivatedLast) { |
- scoped_ptr<aura::Window> non_positionable_window = |
- CreateNonPositionableWindow().Pass(); |
- scoped_ptr<aura::Window> positionable_window = |
- CreatePositionableWindow().Pass(); |
- |
- ActiveTaskWindowWithUserInput(non_positionable_window.get()); |
- ResetActionCounts(); |
- |
- ActiveTaskWindowWithUserInput(positionable_window.get()); |
- EXPECT_EQ(1, GetActionCount()); |
-} |
- |
-// Verify user action is not recorded when a non-positionable window is |
-// activated between two activations of the same positionable window. |
-TEST_F(DesktopTaskSwitchMetricRecorderTest, |
- ActivateNonPositionableWindowBetweenTwoPositionableWindowActivations) { |
- scoped_ptr<aura::Window> positionable_window = |
- CreatePositionableWindow().Pass(); |
- scoped_ptr<aura::Window> non_positionable_window = |
- CreateNonPositionableWindow().Pass(); |
- |
- ActiveTaskWindowWithUserInput(positionable_window.get()); |
- ResetActionCounts(); |
- |
- ActiveTaskWindowWithUserInput(non_positionable_window.get()); |
- EXPECT_EQ(0, GetActionCount()); |
- |
- ActiveTaskWindowWithUserInput(positionable_window.get()); |
- EXPECT_EQ(0, GetActionCount()); |
-} |
- |
-// Verify user action is not recorded when a null window is activated. |
-TEST_F(DesktopTaskSwitchMetricRecorderTest, ActivateNullWindow) { |
- scoped_ptr<aura::Window> positionable_window = |
- CreatePositionableWindow().Pass(); |
- scoped_ptr<aura::Window> null_window = nullptr; |
- |
- ActiveTaskWindowWithUserInput(positionable_window.get()); |
- ResetActionCounts(); |
- |
- ActiveTaskWindowWithUserInput(null_window.get()); |
- EXPECT_EQ(0, GetActionCount()); |
-} |
- |
-// Verify user action is not recorded when a non-positionable window is |
-// activated. |
-TEST_F(DesktopTaskSwitchMetricRecorderTest, ActivateNonPositionableWindow) { |
- scoped_ptr<aura::Window> positionable_window = |
- CreatePositionableWindow().Pass(); |
- scoped_ptr<aura::Window> non_positionable_window = |
- CreateNonPositionableWindow().Pass(); |
- |
- ActiveTaskWindowWithUserInput(positionable_window.get()); |
- ResetActionCounts(); |
- |
- ActiveTaskWindowWithUserInput(non_positionable_window.get()); |
- EXPECT_EQ(0, GetActionCount()); |
-} |
- |
-// Verify user action is not recorded when the ActivationReason is not an |
-// INPUT_EVENT. |
-TEST_F(DesktopTaskSwitchMetricRecorderTest, |
- ActivatePositionableWindowWithNonInputEventReason) { |
- scoped_ptr<aura::Window> positionable_window_1 = |
- CreatePositionableWindow().Pass(); |
- scoped_ptr<aura::Window> positionable_window_2 = |
- CreatePositionableWindow().Pass(); |
- |
- ActiveTaskWindowWithUserInput(positionable_window_1.get()); |
- ResetActionCounts(); |
- |
- metrics_recorder_->OnWindowActivated( |
- ActivationChangeObserver::ActivationReason::ACTIVATION_CLIENT, |
- positionable_window_2.get(), nullptr); |
- EXPECT_EQ(0, GetActionCount()); |
-} |
- |
-// Test fixture to test the integration of the DesktopTaskSwitchMetricsRecorder |
-// class with ash::Shell environment. |
-class DesktopTaskSwitchMetricRecorderWithShellIntegrationTest |
- : public test::AshTestBase { |
- public: |
- DesktopTaskSwitchMetricRecorderWithShellIntegrationTest(); |
- ~DesktopTaskSwitchMetricRecorderWithShellIntegrationTest() override; |
- |
- // test::AshTestBase: |
- void SetUp() override; |
- void TearDown() override; |
- |
- // Returns the number of times the "Desktop_SwitchTask" user action was |
- // recorded. |
- int GetActionCount() const; |
- |
- // Creates a positionable window with the given |bounds| such that |
- // wm::IsWindowUserPositionable(...) would retun true. |
- aura::Window* CreatePositionableWindowInShellWithBounds( |
- const gfx::Rect& bounds); |
- |
- protected: |
- // Records UMA user action counts. |
- scoped_ptr<base::UserActionTester> user_action_tester_; |
- |
- // Delegate used when creating new windows using the |
- // CreatePositionableWindowInShellWithBounds(...) method. |
- aura::test::TestWindowDelegate test_window_delegate_; |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN( |
- DesktopTaskSwitchMetricRecorderWithShellIntegrationTest); |
-}; |
- |
-DesktopTaskSwitchMetricRecorderWithShellIntegrationTest:: |
- DesktopTaskSwitchMetricRecorderWithShellIntegrationTest() { |
-} |
- |
-DesktopTaskSwitchMetricRecorderWithShellIntegrationTest:: |
- ~DesktopTaskSwitchMetricRecorderWithShellIntegrationTest() { |
-} |
- |
-void DesktopTaskSwitchMetricRecorderWithShellIntegrationTest::SetUp() { |
- test::AshTestBase::SetUp(); |
- user_action_tester_.reset(new base::UserActionTester); |
-} |
- |
-void DesktopTaskSwitchMetricRecorderWithShellIntegrationTest::TearDown() { |
- user_action_tester_.reset(); |
- test::AshTestBase::TearDown(); |
-} |
- |
-int DesktopTaskSwitchMetricRecorderWithShellIntegrationTest::GetActionCount() |
- const { |
- return user_action_tester_->GetActionCount(kDesktopTaskSwitchUserAction); |
-} |
- |
-aura::Window* DesktopTaskSwitchMetricRecorderWithShellIntegrationTest:: |
- CreatePositionableWindowInShellWithBounds(const gfx::Rect& bounds) { |
- return CreateTestWindowInShellWithDelegate(&test_window_delegate_, 0, bounds); |
-} |
- |
-// Verify a user action is recorded when a positionable window is activated by |
-// a INPUT_EVENT. |
-TEST_F(DesktopTaskSwitchMetricRecorderWithShellIntegrationTest, |
- ActivatePositionableWindowWithInputEvent) { |
- aura::Window* positionable_window = |
- CreatePositionableWindowInShellWithBounds(gfx::Rect(0, 0, 10, 10)); |
- |
- ui::test::EventGenerator event_generator(Shell::GetPrimaryRootWindow()); |
- |
- event_generator.MoveMouseToCenterOf(positionable_window); |
- event_generator.ClickLeftButton(); |
- |
- EXPECT_EQ(1, GetActionCount()); |
-} |
- |
-// Verify a user action is not recorded when a positionable window is activated |
-// by a non INPUT_EVENT. |
-TEST_F(DesktopTaskSwitchMetricRecorderWithShellIntegrationTest, |
- ActivatePositionableWindowWithNonInputEvent) { |
- aura::Window* positionable_window = |
- CreatePositionableWindowInShellWithBounds(gfx::Rect(0, 0, 10, 10)); |
- |
- Shell::GetInstance()->activation_client()->ActivateWindow( |
- positionable_window); |
- |
- EXPECT_EQ(0, GetActionCount()); |
-} |
- |
-} // namespace |
-} // namespace ash |