Popular sites on the NTP: check that experiment group StartsWith (rather than IS...
[chromium-blink-merge.git] / chrome / browser / media / webrtc_log_util_unittest.cc
blob8519be5914752247ce3926bb4050f44ba18b2598
1 // Copyright 2014 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.
5 #include "base/files/file_enumerator.h"
6 #include "base/files/file_path.h"
7 #include "base/files/file_util.h"
8 #include "base/files/scoped_temp_dir.h"
9 #include "base/message_loop/message_loop.h"
10 #include "base/time/time.h"
11 #include "chrome/browser/media/webrtc_log_util.h"
12 #include "content/public/test/test_browser_thread.h"
13 #include "testing/gtest/include/gtest/gtest.h"
15 const int kExpectedDaysToKeepLogFiles = 5;
17 class WebRtcLogUtilTest : public testing::Test {
18 public:
19 WebRtcLogUtilTest()
20 : file_thread_(content::BrowserThread::FILE, &message_loop_) {}
22 void SetUp() override {
23 // Create three files. One with modified date as of now, one with date one
24 // day younger than the keep limit, one with date one day older than the
25 // limit. The two former are expected to be kept and the last to be deleted
26 // when deleting old logs.
27 ASSERT_TRUE(dir_.CreateUniqueTempDir());
28 base::FilePath file;
29 ASSERT_TRUE(CreateTemporaryFileInDir(dir_.path(), &file));
30 ASSERT_TRUE(CreateTemporaryFileInDir(dir_.path(), &file));
31 base::Time time_expect_to_keep =
32 base::Time::Now() -
33 base::TimeDelta::FromDays(kExpectedDaysToKeepLogFiles - 1);
34 TouchFile(file, time_expect_to_keep, time_expect_to_keep);
35 ASSERT_TRUE(CreateTemporaryFileInDir(dir_.path(), &file));
36 base::Time time_expect_to_delete =
37 base::Time::Now() -
38 base::TimeDelta::FromDays(kExpectedDaysToKeepLogFiles + 1);
39 TouchFile(file, time_expect_to_delete, time_expect_to_delete);
42 void VerifyFiles(int expected_files) {
43 base::FileEnumerator files(dir_.path(), false, base::FileEnumerator::FILES);
44 int file_counter = 0;
45 for (base::FilePath name = files.Next(); !name.empty();
46 name = files.Next()) {
47 EXPECT_LT(base::Time::Now() - files.GetInfo().GetLastModifiedTime(),
48 base::TimeDelta::FromDays(kExpectedDaysToKeepLogFiles));
49 ++file_counter;
51 EXPECT_EQ(expected_files, file_counter);
54 base::MessageLoopForUI message_loop_;
55 content::TestBrowserThread file_thread_;
56 base::ScopedTempDir dir_;
59 TEST_F(WebRtcLogUtilTest, DeleteOldWebRtcLogFiles) {
60 WebRtcLogUtil::DeleteOldWebRtcLogFiles(dir_.path());
61 VerifyFiles(2);
64 TEST_F(WebRtcLogUtilTest, DeleteOldAndRecentWebRtcLogFiles) {
65 base::Time time_begin_delete =
66 base::Time::Now() - base::TimeDelta::FromDays(1);
67 WebRtcLogUtil::DeleteOldAndRecentWebRtcLogFiles(dir_.path(),
68 time_begin_delete);
69 VerifyFiles(1);