Chromium Code Reviews| Index: chrome/browser/android/data_usage/tab_data_use_entry_unittest.cc |
| diff --git a/chrome/browser/android/data_usage/tab_data_use_entry_unittest.cc b/chrome/browser/android/data_usage/tab_data_use_entry_unittest.cc |
| index cba4c83c9eac884405a7b4d1bccfdf43ecdd5acc..ceed31e1bf6227776e286317bc152de52c89f64d 100644 |
| --- a/chrome/browser/android/data_usage/tab_data_use_entry_unittest.cc |
| +++ b/chrome/browser/android/data_usage/tab_data_use_entry_unittest.cc |
| @@ -10,6 +10,7 @@ |
| #include "base/memory/scoped_ptr.h" |
| #include "base/strings/stringprintf.h" |
| +#include "base/test/histogram_tester.h" |
| #include "base/time/time.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| @@ -462,6 +463,64 @@ TEST_F(MockTabDataUseEntryTest, CompactTabSessionHistory) { |
| } |
| } |
| +TEST_F(MockTabDataUseEntryTest, TrackingSessionLifetimeHistogram) { |
| + const char kUMATrackingSessionLifetimeSecondsHistogram[] = |
| + "DataUse.TabModel.TrackingSessionLifetime"; |
| + base::HistogramTester histogram_tester; |
| + |
| + // Tracking session from time=20 to time=30, lifetime of 10 seconds. |
| + tab_entry_->SetNowOffsetInSeconds(20); |
| + EXPECT_TRUE(tab_entry_->StartTracking(kTestLabel1)); |
| + tab_entry_->SetNowOffsetInSeconds(30); |
| + EXPECT_TRUE(tab_entry_->EndTracking()); |
| + |
| + histogram_tester.ExpectTotalCount(kUMATrackingSessionLifetimeSecondsHistogram, |
| + 1); |
| + histogram_tester.ExpectBucketCount( |
| + kUMATrackingSessionLifetimeSecondsHistogram, 10, 1); |
| + |
| + // Tracking session from time=40 to time=70, lifetime of 30 seconds. |
| + tab_entry_->SetNowOffsetInSeconds(40); |
| + EXPECT_TRUE(tab_entry_->StartTracking(kTestLabel1)); |
| + tab_entry_->SetNowOffsetInSeconds(70); |
| + EXPECT_TRUE(tab_entry_->EndTracking()); |
| + |
| + histogram_tester.ExpectTotalCount(kUMATrackingSessionLifetimeSecondsHistogram, |
| + 2); |
| + histogram_tester.ExpectBucketCount( |
| + kUMATrackingSessionLifetimeSecondsHistogram, 30, 1); |
| +} |
| + |
| +TEST_F(MockTabDataUseEntryTest, OldInactiveSessionRemovaltimeHistogram) { |
| + const char kUMAOldInactiveSessionRemovaltimeSecondsHistogram[] = |
| + "DataUse.TabModel.OldInactiveSessionRemovaltime"; |
| + base::HistogramTester histogram_tester; |
| + const size_t max_sessions_per_tab = |
| + TabDataUseEntry::GetMaxSessionsPerTabForTests(); |
| + |
| + // Start a tracking session at time=20, and end it at time=30. |
| + tab_entry_->SetNowOffsetInSeconds(20); |
| + EXPECT_TRUE(tab_entry_->StartTracking(kTestLabel1)); |
| + tab_entry_->SetNowOffsetInSeconds(30); |
| + EXPECT_TRUE(tab_entry_->EndTracking()); |
| + |
| + for (size_t session = 1; session < max_sessions_per_tab; session++) { |
|
tbansal1
2015/11/16 17:17:38
++session
Raj
2015/11/16 20:09:37
Done.
|
| + EXPECT_TRUE(tab_entry_->StartTracking(kTestLabel1)); |
| + EXPECT_TRUE(tab_entry_->EndTracking()); |
| + } |
| + |
| + // Add one more session at time=60. This removes the first inactive tracking |
| + // session that ended at time=30, with removal duration of 30 seconds. |
| + tab_entry_->SetNowOffsetInSeconds(60); |
| + EXPECT_TRUE(tab_entry_->StartTracking(kTestLabel1)); |
| + EXPECT_TRUE(tab_entry_->EndTracking()); |
| + |
| + histogram_tester.ExpectTotalCount( |
| + kUMAOldInactiveSessionRemovaltimeSecondsHistogram, 1); |
| + histogram_tester.ExpectBucketCount( |
| + kUMAOldInactiveSessionRemovaltimeSecondsHistogram, 30, 1); |
| +} |
| + |
| } // namespace android |
| } // namespace chrome |