blob: a3c4613192a28a829bb15d0875cd442d3329cf8d [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 "chrome/browser/actor/actor_task_metadata.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h"
namespace actor {
class ActorTaskMetadataTest : public testing::Test {
public:
~ActorTaskMetadataTest() override = default;
};
TEST_F(ActorTaskMetadataTest, AddedWritableMainframeOrigins) {
// Empty ActorTaskMetadata.
{
ActorTaskMetadata metadata;
EXPECT_EQ(0u, metadata.added_writable_mainframe_origins().size());
}
// Actions proto does not have TaskMetadata.
{
optimization_guide::proto::Actions actions;
ActorTaskMetadata metadata(actions);
EXPECT_EQ(0u, metadata.added_writable_mainframe_origins().size());
}
// Actions proto does not have SecurityMetadata.
{
optimization_guide::proto::Actions actions;
optimization_guide::proto::TaskMetadata* task_metadata =
actions.mutable_task_metadata();
EXPECT_TRUE(task_metadata);
ActorTaskMetadata metadata(actions);
EXPECT_EQ(0u, metadata.added_writable_mainframe_origins().size());
}
// Actions has SecurityMetadata with no added origins.
{
optimization_guide::proto::Actions actions;
optimization_guide::proto::TaskMetadata* task_metadata =
actions.mutable_task_metadata();
EXPECT_TRUE(task_metadata);
optimization_guide::proto::SecurityMetadata* security =
task_metadata->mutable_security();
EXPECT_TRUE(security);
ActorTaskMetadata metadata(actions);
EXPECT_EQ(0u, metadata.added_writable_mainframe_origins().size());
}
// Actions adds writable mainframe origins.
{
optimization_guide::proto::Actions actions;
optimization_guide::proto::TaskMetadata* task_metadata =
actions.mutable_task_metadata();
EXPECT_TRUE(task_metadata);
optimization_guide::proto::SecurityMetadata* security =
task_metadata->mutable_security();
EXPECT_TRUE(security);
security->add_added_writable_mainframe_origins("https://a.foo.com");
security->add_added_writable_mainframe_origins("https://b.bar.com");
ActorTaskMetadata metadata(actions);
EXPECT_THAT(metadata.added_writable_mainframe_origins(),
testing::UnorderedElementsAre(
url::Origin::Create(GURL("https://a.foo.com")),
url::Origin::Create(GURL("https://b.bar.com"))));
}
}
} // namespace actor