Function goose_eggs::valid_text [−][src]
pub fn valid_text(html: &str, text: &str) -> bool
Expand description
Returns a bool
indicating whether or not an arbitrary str (case sensitive) is found
within the html.
Returns true
if the expected str is found, otherwise returns false
.
This function is case sensitive, if the text “foo” is specified it will only match “foo”, not “Foo” or “FOO”.
While you can invoke this function directly, it’s generally preferred to invoke
validate_and_load_static_assets
which in turn invokes this function.
Example
use goose::prelude::*;
use goose_eggs::valid_text;
task!(validate_text).set_on_start();
async fn validate_text(user: &mut GooseUser) -> GooseTaskResult {
let mut goose = user.get("/").await?;
match goose.response {
Ok(response) => {
// Copy the headers so we have them for logging if there are errors.
let headers = &response.headers().clone();
match response.text().await {
Ok(html) => {
let text = r#"<code class="language-console">$ cargo new hello_world --bin"#;
if !valid_text(&html, text) {
return user.set_failure(
&format!("{}: text not found: {}", goose.request.raw.url, text),
&mut goose.request,
Some(headers),
Some(&html),
);
}
}
Err(e) => {
return user.set_failure(
&format!("{}: failed to parse page: {}", goose.request.raw.url, e),
&mut goose.request,
Some(headers),
None,
);
}
}
}
Err(e) => {
return user.set_failure(
&format!("{}: no response from server: {}", goose.request.raw.url, e),
&mut goose.request,
None,
None,
);
}
}
Ok(())
}