Skip to main content

test_default_google_search/
test_default_google_search.rs

1use anyhow::Result;
2use headless_engine::{BrowserTab, DeviceProfile};
3use std::fs;
4use std::path::Path;
5
6#[tokio::main]
7async fn main() -> Result<()> {
8    println!("================================================================================");
9    println!(">>> TESTING GOOGLE AS DEFAULT SEARCH ENGINE (PURE RUST)");
10    println!("================================================================================\n");
11
12    let artifact_dir = Path::new(
13        r"C:\Users\abhis\.gemini\antigravity-ide\brain\c08da294-7846-44b1-9403-559e0d23ce0f",
14    );
15    let evidence_dir = Path::new("evidence");
16    fs::create_dir_all(evidence_dir)?;
17
18    let mut tab = BrowserTab::with_profile(DeviceProfile::ChromeWindows)?;
19
20    // 1. Default Google Search
21    let query = "headless browser pure rust engine for AI agents";
22    println!(
23        "[1/2] Executing default search: tab.search(\"{}\")...",
24        query
25    );
26    let nav = tab.search(query).await?;
27    println!("  -> Final URL:     {}", nav.final_url);
28    println!("  -> Page Title:    {}", nav.page_title);
29    println!("  -> Status:        {}", nav.status);
30    println!("  -> HTML Payload:  {} bytes", nav.html_bytes);
31
32    let md = tab.extract_markdown(None).unwrap_or_default();
33    println!("  -> Distilled Markdown Size: {} bytes", md.len());
34
35    fs::write(evidence_dir.join("google_normal_search_distilled.md"), &md)?;
36    fs::write(artifact_dir.join("google_normal_search_distilled.md"), &md)?;
37
38    println!("\n>>> DISTILLED GOOGLE SEARCH MARKDOWN:\n--------------------------------------------------------------------------------");
39    println!("{}", md);
40    println!("--------------------------------------------------------------------------------");
41
42    // 2. Google AI Mode Search
43    let ai_query = "Rust programming language concurrency patterns";
44    println!(
45        "\n[2/2] Executing Google AI Mode search: tab.search_google(\"{}\", Some(\"ai\"))...",
46        ai_query
47    );
48    let ai_nav = tab.search_google(ai_query, Some("ai")).await?;
49    println!("  -> Final URL:     {}", ai_nav.final_url);
50    println!("  -> Page Title:    {}", ai_nav.page_title);
51    println!("  -> HTML Payload:  {} bytes", ai_nav.html_bytes);
52
53    let ai_md = tab.extract_markdown(None).unwrap_or_default();
54    println!("  -> Distilled Markdown Size: {} bytes", ai_md.len());
55
56    fs::write(evidence_dir.join("google_aimode_distilled.md"), &ai_md)?;
57    fs::write(artifact_dir.join("google_aimode_distilled.md"), &ai_md)?;
58
59    println!("\n>>> DISTILLED GOOGLE AI MODE MARKDOWN:\n--------------------------------------------------------------------------------");
60    println!("{}", ai_md);
61    println!("--------------------------------------------------------------------------------");
62
63    println!("\n================================================================================");
64    println!(">>> GOOGLE DEFAULT SEARCH ENGINE VERIFICATION COMPLETE!");
65    println!("================================================================================");
66
67    Ok(())
68}