57 lines
2.0 KiB
Rust
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!");
|
|
}
|