blob: aa5ee121352b513b7da43c88528ff0704a1eb3bf [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/threading/thread_restrictions.h"
#include "build/build_config.h"
#include "chrome/browser/apps/platform_apps/app_browsertest_util.h"
#include "chrome/common/chrome_switches.h"
#include "components/webrtc_logging/browser/text_log_list.h"
class WebrtcLoggingPrivateApiBrowserTest
: public extensions::PlatformAppBrowserTest {
public:
WebrtcLoggingPrivateApiBrowserTest() = default;
~WebrtcLoggingPrivateApiBrowserTest() override = default;
base::FilePath webrtc_logs_path() {
return webrtc_logging::TextLogList::
GetWebRtcLogDirectoryForBrowserContextPath(profile()->GetPath());
}
private:
DISALLOW_COPY_AND_ASSIGN(WebrtcLoggingPrivateApiBrowserTest);
};
#if defined(OS_LINUX) || defined(OS_CHROMEOS)
IN_PROC_BROWSER_TEST_F(WebrtcLoggingPrivateApiBrowserTest,
TestGetLogsDirectoryCreatesWebRtcLogsDirectory) {
base::ScopedAllowBlockingForTesting allow_blocking;
ASSERT_FALSE(base::PathExists(webrtc_logs_path()));
ASSERT_TRUE(RunPlatformAppTestWithArg(
"api_test/webrtc_logging_private/get_logs_directory",
"test_without_directory"))
<< message_;
ASSERT_TRUE(base::PathExists(webrtc_logs_path()));
ASSERT_TRUE(base::IsDirectoryEmpty(webrtc_logs_path()));
}
IN_PROC_BROWSER_TEST_F(WebrtcLoggingPrivateApiBrowserTest,
TestGetLogsDirectoryReadsFiles) {
base::ScopedAllowBlockingForTesting allow_blocking;
ASSERT_TRUE(base::CreateDirectory(webrtc_logs_path()));
base::FilePath test_file_path = webrtc_logs_path().AppendASCII("test.file");
std::string contents = "test file contents";
ASSERT_EQ(base::checked_cast<int>(contents.size()),
base::WriteFile(test_file_path, contents.c_str(), contents.size()));
ASSERT_TRUE(RunPlatformAppTestWithArg(
"api_test/webrtc_logging_private/get_logs_directory",
"test_with_file_in_directory"))
<< message_;
}
#endif // defined(OS_LINUX) || defined(OS_CHROMEOS)
IN_PROC_BROWSER_TEST_F(WebrtcLoggingPrivateApiBrowserTest,
TestNoGetLogsDirectoryPermissionsFromHangoutsExtension) {
ASSERT_TRUE(RunComponentExtensionTest(
"api_test/webrtc_logging_private/no_get_logs_directory_permissions"))
<< message_;
}
IN_PROC_BROWSER_TEST_F(WebrtcLoggingPrivateApiBrowserTest,
TestStartAudioDebugRecordingsForWebviewFromApp) {
base::CommandLine::ForCurrentProcess()->AppendSwitch(
switches::kEnableAudioDebugRecordingsFromExtension);
ASSERT_TRUE(
RunPlatformAppTest("api_test/webrtc_logging_private/audio_debug/"
"start_audio_debug_recordings_for_webview_from_app"))
<< message_;
}
#if defined(OS_LINUX) || defined(OS_CHROMEOS)
IN_PROC_BROWSER_TEST_F(
WebrtcLoggingPrivateApiBrowserTest,
TestStartAudioDebugRecordingsForWebviewFromAppWithoutSwitch) {
ASSERT_TRUE(
RunPlatformAppTest("api_test/webrtc_logging_private/audio_debug/"
"start_audio_debug_recordings_for_webview_from_app"))
<< message_;
}
#endif