File: write.rs

package info (click to toggle)
rust-atom-syndication 0.12.7-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 472 kB
  • sloc: xml: 199; makefile: 4
file content (78 lines) | stat: -rw-r--r-- 1,947 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
extern crate atom_syndication as atom;

use std::fs::File;
use std::io::BufReader;

use crate::atom::{Content, Entry, Feed};

macro_rules! feed {
    ($f:expr) => {{
        let file = File::open($f).unwrap();
        let reader = BufReader::new(file);
        Feed::read_from(reader).unwrap()
    }};
}

#[test]
fn write_feed() {
    let feed = feed!("tests/data/feed.xml");
    assert_eq!(feed.to_string().parse::<Feed>().unwrap(), feed);
}

#[test]
fn write_entry() {
    let feed = feed!("tests/data/entry.xml");
    assert_eq!(feed.to_string().parse::<Feed>().unwrap(), feed);
}

#[test]
fn write_category() {
    let feed = feed!("tests/data/category.xml");
    assert_eq!(feed.to_string().parse::<Feed>().unwrap(), feed);
}

#[test]
fn write_generator() {
    let feed = feed!("tests/data/generator.xml");
    assert_eq!(feed.to_string().parse::<Feed>().unwrap(), feed);
}

#[test]
fn write_link() {
    let feed = feed!("tests/data/link.xml");
    assert_eq!(feed.to_string().parse::<Feed>().unwrap(), feed);
}

#[test]
fn write_person() {
    let feed = feed!("tests/data/person.xml");
    assert_eq!(feed.to_string().parse::<Feed>().unwrap(), feed);
}

#[test]
fn write_source() {
    let feed = feed!("tests/data/source.xml");
    assert_eq!(feed.to_string().parse::<Feed>().unwrap(), feed);
}

#[test]
fn write_extension() {
    let feed = feed!("tests/data/extension.xml");
    assert_eq!(feed.to_string().parse::<Feed>().unwrap(), feed);
}

#[test]
fn write_content_roundtrip() {
    let mut content = Content::default();
    content.set_base("http://example.com/blog/".to_string());
    content.set_content_type("html".to_string());
    content.set_value("<a href=\"2021-05-31/article.html\">Read more</a>".to_string());

    let mut entry = Entry::default();
    entry.set_content(content);

    let mut feed = Feed::default();
    feed.set_entries(vec![entry]);

    assert_eq!(feed.to_string().parse::<Feed>().unwrap(), feed);
}