- decode HTML before detecting and loading static assets
- match "http://example.com/example.css", "/path/to/example.css", and "path/to/example.css" formatted paths for all types of static assets
- introduce
not_status()
,not_title()
,not_text()
,not_texts()
,not_header()
, andnot_header_value()
- in
drupal::log_in
o allowform_id
other than the default ofuser_login_form
o properly validate status code if configured o propery post login to configured path
- add support for building with rustls via the
rustls-tls
feature - API change: update goose to 0.17
- API change: Box
TransactionError
to avoid over-allocating memory on the stack (to match goose 0.17.0) load_static_elements
logs asset loading in multiple groups: css, js and img
- introduce
validate_page
to validate a page without loading static assets, an alternative tovalidate_and_load_static_assets
- update goose to 0.16
- update goose to 0.15
- find forms identified with either
id=
ordata-drupal-selector=
- API change: introduce
SearchParamsBuilder
to buildSearchParams
objects o ReplacesSearchParams::keys
,SearchParams::update_keys
,SearchParams::update_url
,SearchParams::update_submit
,SearchParams::update_title
o Builder pattern is:SearchParams::builder().keys("foo").url("custom/url").submit("Search").build();
- API change: introduce
LoginBuilder
to buildLogin
objects o ReplacesLogin::username
,Login::password
,Login::username_password
,Login::url
,Login::title
,Login::url_title
,Login::update_username
,Login::update_password
,Login::update_username_password
,Login::update_url
,Login::update_title
,Login::update_url_title
o Builder pattern is:Login::builder().username("username").password("password").url("custom/login/url").build();
- API change: introduce
ValidateBuilder
to buildValidate
objects o ReplacesValidate::new
,Validate::status
,Validate::title
,Validate::text
,Validate::texts
,Validate::title_text
,Validate::title_texts
,Validate::header
,Validate::headers
,Validate::redirect
,Validate::update_status
,Validate::update_title
,Valudate::update_text
,Validate::update_texts
,Validate::update_header
,Validate::update_header
o Builder pattern is:Validate::builder().status(200).text("foo").redirect(true).build();
- API change: remove
Header
struct, instead using a simple (&str, &str) tuple o RemovesHeader
and all associated functions o Builder pattern to validate headers isValidate::builder().header("cache").header_value("x-generator", "Drupal 7").build();
- API change: update goose to 0.14
- clippy cleanups: don't borrow references that are immediately dereferenced by the compiler: https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
- update
load_static_elements()
to use case-insensitive regex to find local static elements (images, js, and css) both with relative and absolute paths - match user-login-form even when it has additional classes
- remove extra and incorrect cut and paste example for
SearchParams::keys
- match headers
<head>
that include other attributes, such as<head profile="..">
- escape form element name so regex compiles if name includes characters such as
[]
- introduce drupal-specific
get_encoded_form_values
to efficiently load multiple encoded form values - introduce drupal-specific
search
function, configured withSearchParams
object controlling the search keys, and optionally setting a custom url and title for the search form page, and a custom submit button for the search form - add
examples/umami
, converting the example from Goose to use Goose Eggs for load testing Drupal 9 demo install profile
- introduce drupal-specific
get_form_values
to efficiently load multiple form values - allow validation of whether or not request redirected; rework how
Validate
object is built, allowing it to be changed - introduce mod
text
offering two helper functions,random_word
andrandom_words
- introduce drupal-specific
get_bigpipe_form
to extract a form that has been encoded to replace a BigPipe placeholder - introduce drupal-specific
get_encoded_form_value
to extract a value from an encoded form returned by an ajax callback or a BigPipe placeholder - introduce drupal-specific
get_updated_build_id
to update thebuild_id
which can happen after certain form actions, such as uploading a file
- validate
get_form
andget_form_value
succeed or throw warn! level log - lazy match in
get_form
regex to avoid matching multiple forms
- introduce
get_html_header()
helper, and invoke fromvalid_title()
- introduce
get_title()
helper, and invoke fromvalid_title()
- update
valid_title()
to verify that the title contains the specified string (whereas before it tested that it started with the specified string) - change
USER
toGOOSE_USER
andPASS
toGOOSE_PASS
to avoid conflicts with shell defaults - allow override of expected title after user login; rework how
Login
object is built, allowing it to be changed
- return loaded html as
String
fromvalidate_and_load_static_assets()
- validate response in the order information comes available (status code, headers, title and texts)
- introduce drupal-specific
get_form()
andget_form_value()
in new mod drupal - introduce drupal-specific
login()
function andLogin
object to override the default username, password, and url
- documentation fix,
load_static_elements()
isasync
and requires.await
- update goose dependency to
0.13
- add
headers
parameter toValidate
andheader_is_set()
andvalid_header_value()
helper functions; optionally validate headers fromvalidate_and_load_static_assets()
- make
Validate
andHeader
fields private, and provide numerous helpers for conveniently setting them
- introduce
load_static_elements()
,valid_text()
,valid_title()
,validate_and_load_static_assets()
, andValidate
; document - enable CI
- improve documentation; add CHANGELOG