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

Side by Side Diff: chrome/browser/metrics/tab_reactivation_tracker_browsertest.cc

Issue 2335203003: Add metrics to keep track of the tab activate/deactivate cycle (Closed)
Patch Set: Tab discarding resistant Created 4 years, 2 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
OLDNEW
(Empty)
1 // Copyright 2016 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 "chrome/browser/metrics/tab_reactivation_tracker.h"
6 #include "chrome/browser/ui/browser.h"
7 #include "chrome/browser/ui/tabs/tab_strip_model.h"
8 #include "chrome/common/url_constants.h"
9 #include "chrome/test/base/in_process_browser_test.h"
10
11 namespace metrics {
12
13 // Simple test fixture that just counts the notification received by a
14 // TabReactivationTracker.
15 class TabReactivationTrackerTest : public InProcessBrowserTest,
16 public TabReactivationTracker::Delegate {
17 public:
18 TabReactivationTrackerTest()
19 : tab_reactivation_count_(0), tab_deactivation_count_(0) {}
20
21 // TabReactivationTracker::Delegate:
22 void OnTabReactivated(content::WebContents* contents) override;
23 void OnTabDeactivated(content::WebContents* contents) override;
24
25 int tab_reactivation_count() { return tab_reactivation_count_; }
26 int tab_deactivation_count() { return tab_deactivation_count_; }
27
28 private:
29 int tab_reactivation_count_;
30 int tab_deactivation_count_;
31 };
32
33 void TabReactivationTrackerTest::OnTabReactivated(
34 content::WebContents* contents) {
35 tab_reactivation_count_++;
36 }
37
38 void TabReactivationTrackerTest::OnTabDeactivated(
39 content::WebContents* contents) {
40 tab_deactivation_count_++;
41 }
42
43 IN_PROC_BROWSER_TEST_F(TabReactivationTrackerTest, CorrectTracking) {
44 content::OpenURLParams open1(
45 GURL(chrome::kChromeUIAboutURL), content::Referrer(),
46 WindowOpenDisposition::CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false);
47
48 content::OpenURLParams open2(GURL(chrome::kChromeUIAboutURL),
49 content::Referrer(),
50 WindowOpenDisposition::NEW_FOREGROUND_TAB,
51 ui::PAGE_TRANSITION_TYPED, false);
52
53 TabReactivationTracker tab_reactivation_tracker(this);
54
55 EXPECT_EQ(0, tab_reactivation_count());
56 EXPECT_EQ(0, tab_deactivation_count());
57
58 // Open one tab.
59 browser()->OpenURL(open1);
60 ASSERT_EQ(1, browser()->tab_strip_model()->count());
61 EXPECT_EQ(0, tab_reactivation_count());
62 EXPECT_EQ(0, tab_deactivation_count());
63
64 // Open a second tab.
65 browser()->OpenURL(open2);
66 ASSERT_EQ(2, browser()->tab_strip_model()->count());
67 EXPECT_EQ(0, tab_reactivation_count());
68 EXPECT_EQ(1, tab_deactivation_count());
69
70 // Reactivate the first tab.
71 browser()->tab_strip_model()->ActivateTabAt(0, false);
72 EXPECT_EQ(1, tab_reactivation_count());
73 EXPECT_EQ(2, tab_deactivation_count());
74
75 // Closing a tab doesn't count as a deactivation.
76 browser()->tab_strip_model()->CloseWebContentsAt(1, 0);
77 ASSERT_EQ(1, browser()->tab_strip_model()->count());
78 EXPECT_EQ(1, tab_reactivation_count());
79 EXPECT_EQ(2, tab_deactivation_count());
80 }
81
82 } // namespace metrics
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698