use http::StatusCode; use raspa::request::{Request, RequestBase}; use raspa::selector::{Selector, SelectorBase}; #[test] fn plain_text_selector() { let html = "

hello world

good bye

simple text " .to_string(); let sel = Selector::from_html(html); assert_eq!(sel.css::("h1")[0].html(), "

hello world

"); assert_eq!(sel.css::("#text")[0].content(), "good bye"); assert_eq!( sel.css_once::("body > a").unwrap().content(), "simple text" ); } #[test] fn simple_request() { let req: Request = RequestBase::new("https://httpbin.org/").unwrap(); let resp = req.launch(); assert_eq!(resp.status_code, StatusCode::OK); assert!(resp.css::("h2")[0].html().contains("httpbin.org")); } #[test] fn complex_selectors() { let html = "

good bye

simple text
  • 1
  • 2
  • 3
" .to_string(); let sel = Selector::from_html(html); assert_eq!( sel.css_once::("p").unwrap().attr("id").unwrap(), "text" ); assert_eq!( sel.css::("a")[0].attr("href").unwrap(), "http://google.com" ); for node in sel.css::("ul li").iter() { let text = node.content(); assert_eq!(node.attr("class").unwrap(), "item"); assert!(node.attr("id").unwrap().contains(&text)); } }