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

Side by Side Diff: ash/metrics/task_switch_time_tracker_unittest.cc

Issue 1133123003: Added metrics to track the time between task switches done via the shelf. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added ASH_EXPORT to TaskSwitchTimeTracker. Created 5 years, 7 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 unified diff | Download patch
« no previous file with comments | « ash/metrics/task_switch_time_tracker.cc ('k') | ash/metrics/user_metrics_recorder.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "ash/metrics/task_switch_time_tracker.h"
6
7 #include <string>
8
9 #include "ash/test/task_switch_time_tracker_test_api.h"
10 #include "base/test/histogram_tester.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12
13 namespace ash {
14
15 namespace {
16
17 // A dummy histogram name.
18 const std::string kHistogramName = "Dummy.Histogram";
19
20 } // namespace
21
22 class TaskSwitchTimeTrackerTest : public testing::Test {
23 public:
24 TaskSwitchTimeTrackerTest();
25 ~TaskSwitchTimeTrackerTest() override;
26
27 // testing::Test:
28 void SetUp() override;
29 void TearDown() override;
30
31 // Wrapper to the test targets OnTaskSwitch() method.
32 void OnTaskSwitch();
33
34 TaskSwitchTimeTracker* time_tracker() {
35 return time_tracker_test_api_->time_tracker();
36 }
37
38 protected:
39 // Used to verify recorded histogram data.
40 scoped_ptr<base::HistogramTester> histogram_tester_;
41
42 // A Test API that wraps the test target.
43 scoped_ptr<test::TaskSwitchTimeTrackerTestAPI> time_tracker_test_api_;
44
45 private:
46 DISALLOW_COPY_AND_ASSIGN(TaskSwitchTimeTrackerTest);
47 };
48
49 TaskSwitchTimeTrackerTest::TaskSwitchTimeTrackerTest() {
50 }
51
52 TaskSwitchTimeTrackerTest::~TaskSwitchTimeTrackerTest() {
53 }
54
55 void TaskSwitchTimeTrackerTest::SetUp() {
56 testing::Test::SetUp();
57
58 histogram_tester_.reset(new base::HistogramTester());
59 time_tracker_test_api_.reset(
60 new test::TaskSwitchTimeTrackerTestAPI(kHistogramName));
61 // The TaskSwitchTimeTracker interprets a value of base::TimeTicks() as if the
62 // |last_action_time_| has not been set.
63 time_tracker_test_api_->Advance(base::TimeDelta::FromMilliseconds(1));
64 }
65
66 void TaskSwitchTimeTrackerTest::TearDown() {
67 testing::Test::TearDown();
68 time_tracker_test_api_.reset();
69 histogram_tester_.reset();
70 }
71
72 void TaskSwitchTimeTrackerTest::OnTaskSwitch() {
73 time_tracker()->OnTaskSwitch();
74 }
75
76 // Verifies TaskSwitchTimeTracker::HasLastActionTime() returns false after
77 // construction.
78 TEST_F(TaskSwitchTimeTrackerTest,
79 HasLastActionTimeShouldBeFalseAfterConstruction) {
80 EXPECT_FALSE(time_tracker_test_api_->HasLastActionTime());
81 }
82
83 // Verifies TaskSwitchTimeTracker::HasLastActionTime() returns true after the
84 // first call to TaskSwitchTimeTracker::OnTaskSwitch() and no histogram data was
85 // recorded.
86 TEST_F(TaskSwitchTimeTrackerTest,
87 HasLastActionTimeShouldBeTrueAfterOnTaskSwitch) {
88 OnTaskSwitch();
89 histogram_tester_->ExpectTotalCount(kHistogramName, 0);
90 }
91
92 // Verfies that the histogram data is recorded in the correct buckets.
93 TEST_F(TaskSwitchTimeTrackerTest, RecordAfterTwoTaskSwitches) {
94 OnTaskSwitch();
95
96 time_tracker_test_api_->Advance(base::TimeDelta::FromMilliseconds(2));
97 OnTaskSwitch();
98 histogram_tester_->ExpectTotalCount(kHistogramName, 1);
99 histogram_tester_->ExpectBucketCount(kHistogramName, 0, 1);
100
101 time_tracker_test_api_->Advance(base::TimeDelta::FromSeconds(1));
102 OnTaskSwitch();
103 histogram_tester_->ExpectTotalCount(kHistogramName, 2);
104 histogram_tester_->ExpectBucketCount(kHistogramName, 1, 1);
105 }
106
107 } // namespace ash
OLDNEW
« no previous file with comments | « ash/metrics/task_switch_time_tracker.cc ('k') | ash/metrics/user_metrics_recorder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698