test_default_google_search/
test_default_google_search.rs1use 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(r"C:\Users\abhis\.gemini\antigravity-ide\brain\c08da294-7846-44b1-9403-559e0d23ce0f");
13 let evidence_dir = Path::new("evidence");
14 fs::create_dir_all(evidence_dir)?;
15
16 let mut tab = BrowserTab::with_profile(DeviceProfile::ChromeWindows)?;
17
18 let query = "headless browser pure rust engine for AI agents";
20 println!("[1/2] Executing default search: tab.search(\"{}\")...", query);
21 let nav = tab.search(query).await?;
22 println!(" -> Final URL: {}", nav.final_url);
23 println!(" -> Page Title: {}", nav.page_title);
24 println!(" -> Status: {}", nav.status);
25 println!(" -> HTML Payload: {} bytes", nav.html_bytes);
26
27 let md = tab.extract_markdown(None).unwrap_or_default();
28 println!(" -> Distilled Markdown Size: {} bytes", md.len());
29
30 fs::write(evidence_dir.join("google_normal_search_distilled.md"), &md)?;
31 fs::write(artifact_dir.join("google_normal_search_distilled.md"), &md)?;
32
33 println!("\n>>> DISTILLED GOOGLE SEARCH MARKDOWN:\n--------------------------------------------------------------------------------");
34 println!("{}", md);
35 println!("--------------------------------------------------------------------------------");
36
37 let ai_query = "Rust programming language concurrency patterns";
39 println!("\n[2/2] Executing Google AI Mode search: tab.search_google(\"{}\", Some(\"ai\"))...", ai_query);
40 let ai_nav = tab.search_google(ai_query, Some("ai")).await?;
41 println!(" -> Final URL: {}", ai_nav.final_url);
42 println!(" -> Page Title: {}", ai_nav.page_title);
43 println!(" -> HTML Payload: {} bytes", ai_nav.html_bytes);
44
45 let ai_md = tab.extract_markdown(None).unwrap_or_default();
46 println!(" -> Distilled Markdown Size: {} bytes", ai_md.len());
47
48 fs::write(evidence_dir.join("google_aimode_distilled.md"), &ai_md)?;
49 fs::write(artifact_dir.join("google_aimode_distilled.md"), &ai_md)?;
50
51 println!("\n>>> DISTILLED GOOGLE AI MODE MARKDOWN:\n--------------------------------------------------------------------------------");
52 println!("{}", ai_md);
53 println!("--------------------------------------------------------------------------------");
54
55 println!("\n================================================================================");
56 println!(">>> GOOGLE DEFAULT SEARCH ENGINE VERIFICATION COMPLETE!");
57 println!("================================================================================");
58
59 Ok(())
60}