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
"
.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));
}
}