blob: 29d96a97351776113cb3aa965504b5fc0f5ce9d4 [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/headless/test/shared_test_util.h"
#include "base/files/file_path.h"
#include "components/headless/test/test_meta_info.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace headless {
namespace {
#define FP(path) base::FilePath(FILE_PATH_LITERAL(path))
TEST(HeadlessTestSharedTestUtil, IsSharedTest) {
static_assert(!IsSharedTestScript("sanity/test-script.js"));
static_assert(IsSharedTestScript("shared/test-script.js"));
}
class HeadlessTestExpectationsTest
: public ::testing::TestWithParam<HeadlessType> {
public:
base::FilePath GetTestExpectationFilePath(
const TestMetaInfo& test_meta_info) {
return headless::GetTestExpectationFilePath(
FP("shared/script-path.js"), test_meta_info, GetHeadlessType());
}
HeadlessType GetHeadlessType() { return GetParam(); }
};
INSTANTIATE_TEST_SUITE_P(
/* no prefix */,
HeadlessTestExpectationsTest,
::testing::Values(HeadlessType::kUnspecified,
HeadlessType::kHeadlessMode,
HeadlessType::kHeadlessShell));
TEST_P(HeadlessTestExpectationsTest, NormalTestExpectations) {
EXPECT_EQ(GetTestExpectationFilePath(TestMetaInfo()),
FP("shared/script-path-expected.txt"));
}
TEST_P(HeadlessTestExpectationsTest, ForkedHeadlessModeTestExpectations) {
TestMetaInfo test_meta_info;
test_meta_info.fork_headless_mode_expectations = true;
base::FilePath path = GetTestExpectationFilePath(test_meta_info);
switch (GetHeadlessType()) {
case HeadlessType::kUnspecified:
EXPECT_EQ(path, FP("shared/script-path-expected.txt"));
break;
case HeadlessType::kHeadlessMode:
EXPECT_EQ(path, FP("shared/script-path-headless-mode-expected.txt"));
break;
case HeadlessType::kHeadlessShell:
EXPECT_EQ(path, FP("shared/script-path-expected.txt"));
break;
}
}
TEST_P(HeadlessTestExpectationsTest, ForkedHeadlessShellTestExpectations) {
TestMetaInfo test_meta_info;
test_meta_info.fork_headless_shell_expectations = true;
base::FilePath path = GetTestExpectationFilePath(test_meta_info);
switch (GetHeadlessType()) {
case HeadlessType::kUnspecified:
EXPECT_EQ(path, FP("shared/script-path-expected.txt"));
break;
case HeadlessType::kHeadlessMode:
EXPECT_EQ(path, FP("shared/script-path-expected.txt"));
break;
case HeadlessType::kHeadlessShell:
EXPECT_EQ(path, FP("shared/script-path-headless-shell-expected.txt"));
break;
}
}
} // namespace
} // namespace headless