blob: 2f600ec01917f1705363b81586fb9e26f775b4bc [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/contextual_tasks/public/contextual_task.h"
#include <string>
#include "base/uuid.h"
#include "components/sessions/core/session_id.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h"
namespace contextual_tasks {
TEST(ContextualTaskTest, GetTaskId) {
base::Uuid task_id = base::Uuid::GenerateRandomV4();
ContextualTask task(task_id);
EXPECT_EQ(task_id, task.GetTaskId());
}
TEST(ContextualTaskTest, AddAndRemoveUrl) {
base::Uuid task_id = base::Uuid::GenerateRandomV4();
ContextualTask task(task_id);
GURL url("https://www.google.com");
task.AddUrl(url);
task.AddUrl(url);
EXPECT_EQ(1u, task.GetUrls().size());
task.RemoveUrl(url);
EXPECT_EQ(0u, task.GetUrls().size());
}
TEST(ContextualTaskTest, AddThread) {
base::Uuid task_id = base::Uuid::GenerateRandomV4();
ContextualTask task(task_id);
ThreadType type = ThreadType::kAiMode;
std::string server_id = "server_id";
std::string title = "foo";
std::string conversation_turn_id = "conversation_turn_id";
task.AddThread(Thread(type, server_id, title, conversation_turn_id));
EXPECT_TRUE(task.GetThread().has_value());
EXPECT_EQ(task.GetThread()->type, type);
EXPECT_EQ(task.GetThread()->server_id, server_id);
EXPECT_EQ(task.GetThread()->title, title);
EXPECT_EQ(task.GetThread()->conversation_turn_id, conversation_turn_id);
std::string server_id_2 = "server_id_2";
std::string title_2 = "foo_2";
std::string conversation_turn_id_2 = "conversation_turn_id_2";
task.AddThread(Thread(type, server_id_2, title_2, conversation_turn_id_2));
EXPECT_TRUE(task.GetThread().has_value());
EXPECT_EQ(task.GetThread()->type, type);
EXPECT_EQ(task.GetThread()->server_id, server_id_2);
EXPECT_EQ(task.GetThread()->title, title_2);
EXPECT_EQ(task.GetThread()->conversation_turn_id, conversation_turn_id_2);
}
TEST(ContextualTaskTest, RemoveThread) {
base::Uuid task_id = base::Uuid::GenerateRandomV4();
ContextualTask task(task_id);
ThreadType type = ThreadType::kAiMode;
std::string server_id = "server_id";
std::string title = "foo";
std::string conversation_turn_id = "conversation_turn_id";
task.AddThread(Thread(type, server_id, title, conversation_turn_id));
EXPECT_TRUE(task.GetThread().has_value());
task.RemoveThread(type, "wrong_server_id");
EXPECT_TRUE(task.GetThread().has_value());
task.RemoveThread(type, server_id);
EXPECT_FALSE(task.GetThread().has_value());
}
TEST(ContextualTaskTest, AddAndRemoveSessionId) {
base::Uuid task_id = base::Uuid::GenerateRandomV4();
ContextualTask task(task_id);
SessionID session_id = SessionID::FromSerializedValue(1);
task.AddSessionId(session_id);
task.AddSessionId(session_id);
EXPECT_EQ(1u, task.GetSessionIds().size());
task.RemoveSessionId(session_id);
EXPECT_EQ(0u, task.GetSessionIds().size());
}
} // namespace contextual_tasks