A lot more fixtures, use chrono for date.
This commit is contained in:
@@ -7,7 +7,7 @@ fn from_html(document: &str) -> Result<Entry, ()> {
|
||||
let html = Html::parse_document(document);
|
||||
|
||||
let mut messages = Vec::new();
|
||||
let history = Vec::new();
|
||||
let mut history = Vec::new();
|
||||
let comments = Vec::new();
|
||||
|
||||
let selector = Selector::parse(".CompanyResultListItem h3.name > a").unwrap();
|
||||
@@ -19,6 +19,15 @@ fn from_html(document: &str) -> Result<Entry, ()> {
|
||||
messages.push(message);
|
||||
}
|
||||
|
||||
let selector = Selector::parse("div.PhoneNoHit div.search-info-container p").unwrap();
|
||||
|
||||
if let Some(element) = html.select(&selector).next() {
|
||||
let message = element.inner_html();
|
||||
let message = htmlescape::decode_html(&message).unwrap();
|
||||
|
||||
history.push(message);
|
||||
}
|
||||
|
||||
Ok(Entry {
|
||||
messages,
|
||||
history,
|
||||
@@ -59,8 +68,42 @@ impl Probe for Eniro {
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use pretty_assertions::assert_eq;
|
||||
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_0104754350() {
|
||||
let document = include_str!("../../fixtures/eniro/0104754350.html");
|
||||
|
||||
let expected = Entry {
|
||||
messages: vec![
|
||||
"Företaget bedriver telefonförsäljning eller marknadsundersökningar"
|
||||
.to_string(),
|
||||
],
|
||||
history: vec![],
|
||||
comments: vec![],
|
||||
};
|
||||
|
||||
assert_eq!(from_html(&document), Ok(expected));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_0313908905() {
|
||||
let document = include_str!("../../fixtures/eniro/0313908905.html");
|
||||
|
||||
let expected = Entry {
|
||||
messages: vec![],
|
||||
history: vec![
|
||||
"<strong>3464</strong> denna vecka och <strong>6637</strong> totalt.<!-- --> "
|
||||
.to_string(),
|
||||
],
|
||||
comments: vec![],
|
||||
};
|
||||
|
||||
assert_eq!(from_html(&document), Ok(expected));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_0702269893() {
|
||||
let document = include_str!("../../fixtures/eniro/0702269893.html");
|
||||
@@ -73,4 +116,68 @@ mod tests {
|
||||
|
||||
assert_eq!(from_html(&document), Ok(expected));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_0726443387() {
|
||||
let document = include_str!("../../fixtures/eniro/0726443387.html");
|
||||
|
||||
let expected = Entry {
|
||||
messages: vec![],
|
||||
history: vec![
|
||||
"<strong>16</strong> denna vecka och <strong>98</strong> totalt.<!-- --> "
|
||||
.to_string(),
|
||||
],
|
||||
comments: vec![],
|
||||
};
|
||||
|
||||
assert_eq!(from_html(&document), Ok(expected));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_0751793426() {
|
||||
let document = include_str!("../../fixtures/eniro/0751793426.html");
|
||||
|
||||
let expected = Entry {
|
||||
messages: vec![],
|
||||
history: vec![
|
||||
"<strong>20</strong> denna vecka och <strong>602</strong> totalt.<!-- --> "
|
||||
.to_string(),
|
||||
],
|
||||
comments: vec![],
|
||||
};
|
||||
|
||||
assert_eq!(from_html(&document), Ok(expected));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_0751793483() {
|
||||
let document = include_str!("../../fixtures/eniro/0751793483.html");
|
||||
|
||||
let expected = Entry {
|
||||
messages: vec![],
|
||||
history: vec![
|
||||
"<strong>29</strong> denna vecka och <strong>900</strong> totalt.<!-- --> "
|
||||
.to_string(),
|
||||
],
|
||||
comments: vec![],
|
||||
};
|
||||
|
||||
assert_eq!(from_html(&document), Ok(expected));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_0751793499() {
|
||||
let document = include_str!("../../fixtures/eniro/0751793499.html");
|
||||
|
||||
let expected = Entry {
|
||||
messages: vec![],
|
||||
history: vec![
|
||||
"<strong>303</strong> denna vecka och <strong>304</strong> totalt.<!-- --> "
|
||||
.to_string(),
|
||||
],
|
||||
comments: vec![],
|
||||
};
|
||||
|
||||
assert_eq!(from_html(&document), Ok(expected));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user