use super::*;
pub trait HoldsElement {
fn element(&self) -> ElementWrapper;
}
pub trait DomQuery {
fn get_by_text<S: AsRef<str>>(&self, text: S) -> Result<TestElement, GetOneError>;
fn get_all_by_text<S: AsRef<str>>(&self, text: S) -> Vec<TestElement>;
fn get_by_text_contains<S: AsRef<str>>(&self, text: S) -> Result<TestElement, GetOneError>;
fn get_all_by_text_contains<S: AsRef<str>>(&self, text: S) -> Vec<TestElement>;
fn get_by_id<S: AsRef<str>>(&self, id: S) -> Result<TestElement, GetOneError>;
fn get_all_by_id<S: AsRef<str>>(&self, id: S) -> Vec<TestElement>;
fn get_by_id_contains<S: AsRef<str>>(&self, id: S) -> Result<TestElement, GetOneError>;
fn get_all_by_id_contains<S: AsRef<str>>(&self, id: S) -> Vec<TestElement>;
fn get_by_label<S: AsRef<str>>(&self, text: S) -> Result<TestElement, GetOneError>;
fn get_all_by_label<S: AsRef<str>>(&self, text: S) -> Vec<TestElement>;
fn get_by_label_contains<S: AsRef<str>>(&self, text: S) -> Result<TestElement, GetOneError>;
fn get_all_by_label_contains<S: AsRef<str>>(&self, text: S) -> Vec<TestElement>;
fn get_by_display_value<S: AsRef<str>>(&self, value: S) -> Result<TestElement, GetOneError>;
fn get_all_by_display_value<S: AsRef<str>>(&self, value: S) -> Vec<TestElement>;
fn get_by_role<S: AsRef<str>>(&self, role: S) -> Result<TestElement, GetOneError>;
fn get_all_by_role<S: AsRef<str>>(&self, role: S) -> Vec<TestElement>;
fn get_by_placeholder<S: AsRef<str>>(&self, placeholder: S)
-> Result<TestElement, GetOneError>;
fn get_all_by_placeholder<S: AsRef<str>>(&self, placeholder: S) -> Vec<TestElement>;
fn get_by_placeholder_contains<S: AsRef<str>>(
&self,
placeholder: S,
) -> Result<TestElement, GetOneError>;
fn get_all_by_placeholder_contains<S: AsRef<str>>(&self, placeholder: S) -> Vec<TestElement>;
}
impl<T> DomQuery for T
where
T: HoldsElement,
{
fn get_by_text<S: AsRef<str>>(&self, text: S) -> Result<TestElement, GetOneError> {
self.element().get_by_text(text)
}
fn get_all_by_text<S: AsRef<str>>(&self, text: S) -> Vec<TestElement> {
self.element().get_all_by_text(text)
}
fn get_by_text_contains<S: AsRef<str>>(&self, text: S) -> Result<TestElement, GetOneError> {
self.element().get_by_text_contains(text)
}
fn get_all_by_text_contains<S: AsRef<str>>(&self, text: S) -> Vec<TestElement> {
self.element().get_all_by_text_contains(text)
}
fn get_by_id<S: AsRef<str>>(&self, id: S) -> Result<TestElement, GetOneError> {
self.element().get_by_id(id)
}
fn get_all_by_id<S: AsRef<str>>(&self, id: S) -> Vec<TestElement> {
self.element().get_all_by_id(id)
}
fn get_by_id_contains<S: AsRef<str>>(&self, id: S) -> Result<TestElement, GetOneError> {
self.element().get_by_id_contains(id)
}
fn get_all_by_id_contains<S: AsRef<str>>(&self, id: S) -> Vec<TestElement> {
self.element().get_all_by_id_contains(id)
}
fn get_by_label<S: AsRef<str>>(&self, text: S) -> Result<TestElement, GetOneError> {
self.element().get_by_label(text)
}
fn get_all_by_label<S: AsRef<str>>(&self, text: S) -> Vec<TestElement> {
self.element().get_all_by_label(text)
}
fn get_by_label_contains<S: AsRef<str>>(&self, text: S) -> Result<TestElement, GetOneError> {
self.element().get_by_label_contains(text)
}
fn get_all_by_label_contains<S: AsRef<str>>(&self, text: S) -> Vec<TestElement> {
self.element().get_all_by_label_contains(text)
}
fn get_by_display_value<S: AsRef<str>>(&self, value: S) -> Result<TestElement, GetOneError> {
self.element().get_by_display_value(value)
}
fn get_all_by_display_value<S: AsRef<str>>(&self, value: S) -> Vec<TestElement> {
self.element().get_all_by_display_value(value)
}
fn get_by_role<S: AsRef<str>>(&self, role: S) -> Result<TestElement, GetOneError> {
self.element().get_by_role(role)
}
fn get_all_by_role<S: AsRef<str>>(&self, role: S) -> Vec<TestElement> {
self.element().get_all_by_role(role)
}
fn get_by_placeholder<S: AsRef<str>>(
&self,
placeholder: S,
) -> Result<TestElement, GetOneError> {
self.element().get_by_placeholder(placeholder)
}
fn get_all_by_placeholder<S: AsRef<str>>(&self, placeholder: S) -> Vec<TestElement> {
self.element().get_all_by_placeholder(placeholder)
}
fn get_by_placeholder_contains<S: AsRef<str>>(
&self,
placeholder: S,
) -> Result<TestElement, GetOneError> {
self.element().get_by_placeholder_contains(placeholder)
}
fn get_all_by_placeholder_contains<S: AsRef<str>>(&self, placeholder: S) -> Vec<TestElement> {
self.element().get_all_by_placeholder_contains(placeholder)
}
}