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
{
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());
29 ASSERT_TRUE(CreateTemporaryFileInDir(dir_
.path(), &file
));
30 ASSERT_TRUE(CreateTemporaryFileInDir(dir_
.path(), &file
));
31 base::Time time_expect_to_keep
=
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
=
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
);
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
));
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());
64 TEST_F(WebRtcLogUtilTest
, DeleteOldAndRecentWebRtcLogFiles
) {
65 base::Time time_begin_delete
=
66 base::Time::Now() - base::TimeDelta::FromDays(1);
67 WebRtcLogUtil::DeleteOldAndRecentWebRtcLogFiles(dir_
.path(),