Files
openclaw-backups/skills/fast-browser-use/tests/cookies_integration.rs

57 lines
2.0 KiB
Rust

use browser_use::{BrowserSession, LaunchOptions,
tools::{cookies::{CookieParam, GetCookiesParams, SetCookiesParams},
Tool, ToolContext, cookies::{GetCookiesTool, SetCookiesTool}}};
use log::info;
#[test]
#[ignore]
fn test_cookies_workflow() {
let session = BrowserSession::launch(LaunchOptions::new().headless(true)).expect("Failed to launch browser");
// Navigate to a domain first
session.navigate("https://example.com").expect("Failed to navigate");
// Create tool context
let mut context = ToolContext::new(&session);
let set_cookies_tool = SetCookiesTool::default();
let get_cookies_tool = GetCookiesTool::default();
// 1. Set a cookie
let cookie = CookieParam {
name: "test_cookie".to_string(),
value: "test_value".to_string(),
domain: Some("example.com".to_string()),
path: Some("/".to_string()),
secure: Some(false),
http_only: Some(false),
same_site: None,
expires: None,
url: Some("https://example.com".to_string()),
};
let set_result = set_cookies_tool
.execute_typed(SetCookiesParams { cookies: vec![cookie] }, &mut context)
.expect("Failed to execute set_cookies");
assert!(set_result.success, "set_cookies should succeed");
// 2. Get cookies
let get_result = get_cookies_tool
.execute_typed(GetCookiesParams { urls: None }, &mut context)
.expect("Failed to execute get_cookies");
assert!(get_result.success, "get_cookies should succeed");
let cookies_json = get_result.data.unwrap();
let cookies = cookies_json.as_array().expect("Data should be an array");
// Verify the cookie was set
let found = cookies.iter().any(|c| {
c["name"].as_str() == Some("test_cookie") && c["value"].as_str() == Some("test_value")
});
assert!(found, "Should find the set cookie");
info!("Successfully set and retrieved cookies!");
}