Skip to content

Commit a8c619c

Browse files
committed
Fix issues in markup5ever
- After enabling ALL tests there were some issues - Also using `$ crate` instead `::markup5ever` - Removed unused crate
1 parent 4b5d7f7 commit a8c619c

File tree

6 files changed

+89
-82
lines changed

6 files changed

+89
-82
lines changed

markup5ever/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,4 @@ heapsize_derive = { version = "0.1", optional = true }
2525
string_cache_codegen = "0.4"
2626
phf_codegen = "0.7.3"
2727
rustc-serialize = "0.3.15"
28-
syn = { version = "0.11", features = ["full", "visit"] }
2928

markup5ever/build.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
extern crate string_cache_codegen;
1111
extern crate phf_codegen;
1212
extern crate rustc_serialize;
13-
extern crate syn;
1413

1514
use rustc_serialize::json::{Json, Decoder};
1615
use rustc_serialize::Decodable;

markup5ever/interface/mod.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ impl QualName {
9191
QualName {
9292
ns: ns!(),
9393
local: local,
94-
prefix: Some(prefix),
94+
prefix: Some(prefix),
9595
}
9696
}
9797
}
@@ -129,14 +129,14 @@ mod tests {
129129
#[test]
130130
fn qualname() {
131131
assert_eq!(QualName::new(ns!(), local_name!("")),
132-
QualName { ns: ns!(), local: LocalName::from("") });
132+
QualName { ns: ns!(), local: LocalName::from(""), prefix: None });
133133
assert_eq!(QualName::new(ns!(xml), local_name!("base")),
134-
QualName { ns: ns!(xml), local: local_name!("base") });
134+
QualName { ns: ns!(xml), local: local_name!("base"), prefix: None });
135135
}
136136

137137
#[test]
138138
fn qualname_macro() {
139-
assert_eq!(qualname!("", ""), QualName { ns: ns!(), local: local_name!("") });
140-
assert_eq!(qualname!(xml, "base"), QualName { ns: ns!(xml), local: local_name!("base") });
139+
assert_eq!(qualname!("", ""), QualName { ns: ns!(), local: local_name!(""), prefix: None });
140+
assert_eq!(qualname!(xml, "base"), QualName { ns: ns!(xml), local: local_name!("base"), prefix: None });
141141
}
142142
}

markup5ever/lib.rs

Lines changed: 83 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,30 +17,110 @@ extern crate tendril;
1717
#[macro_export]
1818
macro_rules! qualname {
1919
("", $local:tt) => {
20-
::markup5ever::QualName {
20+
$ crate::QualName {
2121
ns: ns!(),
2222
prefix: None,
2323
local: local_name!($local),
2424
}
2525
};
2626
($ns:tt, $local:tt) => {
27-
::markup5ever::QualName {
27+
$ crate::QualName {
2828
ns: ns!($ns),
2929
prefix: None,
3030
local: local_name!($local),
3131
}
3232
}
3333
}
3434

35+
#[macro_export]
36+
macro_rules! small_char_set ( ($($e:expr)+) => (
37+
$ crate ::SmallCharSet {
38+
bits: $( (1 << ($e as usize)) )|+
39+
}
40+
));
41+
3542
include!(concat!(env!("OUT_DIR"), "/generated.rs"));
3643

3744

3845
pub mod data;
3946
pub mod interface;
4047
pub mod util {
41-
pub mod buffer_queue;
4248
pub mod smallcharset;
49+
pub mod buffer_queue;
50+
4351
}
4452

4553
pub use interface::{QualName, Attribute};
4654
pub use util::smallcharset::SmallCharSet;
55+
56+
57+
58+
#[cfg(test)]
59+
#[allow(non_snake_case)]
60+
mod test {
61+
use std::ascii::AsciiExt;
62+
use tendril::SliceExt;
63+
64+
use super::{QualName};
65+
use super::util::buffer_queue::{BufferQueue, FromSet, NotFromSet};
66+
67+
68+
69+
#[test]
70+
fn smoke_test() {
71+
let mut bq = BufferQueue::new();
72+
assert_eq!(bq.peek(), None);
73+
assert_eq!(bq.next(), None);
74+
75+
bq.push_back("abc".to_tendril());
76+
assert_eq!(bq.peek(), Some('a'));
77+
assert_eq!(bq.next(), Some('a'));
78+
assert_eq!(bq.peek(), Some('b'));
79+
assert_eq!(bq.peek(), Some('b'));
80+
assert_eq!(bq.next(), Some('b'));
81+
assert_eq!(bq.peek(), Some('c'));
82+
assert_eq!(bq.next(), Some('c'));
83+
assert_eq!(bq.peek(), None);
84+
assert_eq!(bq.next(), None);
85+
}
86+
87+
#[test]
88+
fn can_unconsume() {
89+
let mut bq = BufferQueue::new();
90+
bq.push_back("abc".to_tendril());
91+
assert_eq!(bq.next(), Some('a'));
92+
93+
bq.push_front("xy".to_tendril());
94+
assert_eq!(bq.next(), Some('x'));
95+
assert_eq!(bq.next(), Some('y'));
96+
assert_eq!(bq.next(), Some('b'));
97+
assert_eq!(bq.next(), Some('c'));
98+
assert_eq!(bq.next(), None);
99+
}
100+
101+
#[test]
102+
fn can_pop_except_set() {
103+
let mut bq = BufferQueue::new();
104+
bq.push_back("abc&def".to_tendril());
105+
let mut pop = || bq.pop_except_from(small_char_set!('&'));
106+
assert_eq!(pop(), Some(NotFromSet("abc".to_tendril())));
107+
assert_eq!(pop(), Some(FromSet('&')));
108+
assert_eq!(pop(), Some(NotFromSet("def".to_tendril())));
109+
assert_eq!(pop(), None);
110+
}
111+
112+
#[test]
113+
fn can_eat() {
114+
// This is not very comprehensive. We rely on the tokenizer
115+
// integration tests for more thorough testing with many
116+
// different input buffer splits.
117+
let mut bq = BufferQueue::new();
118+
bq.push_back("a".to_tendril());
119+
bq.push_back("bc".to_tendril());
120+
assert_eq!(bq.eat("abcd", u8::eq_ignore_ascii_case), None);
121+
assert_eq!(bq.eat("ax", u8::eq_ignore_ascii_case), Some(false));
122+
assert_eq!(bq.eat("ab", u8::eq_ignore_ascii_case), Some(true));
123+
assert_eq!(bq.next(), Some('c'));
124+
assert_eq!(bq.next(), None);
125+
}
126+
}

markup5ever/util/buffer_queue.rs

Lines changed: 0 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -161,69 +161,3 @@ impl BufferQueue {
161161
Some(true)
162162
}
163163
}
164-
165-
#[cfg(test)]
166-
#[allow(non_snake_case)]
167-
mod test {
168-
use std::ascii::AsciiExt;
169-
use tendril::SliceExt;
170-
use super::{BufferQueue, FromSet, NotFromSet};
171-
172-
#[test]
173-
fn smoke_test() {
174-
let mut bq = BufferQueue::new();
175-
assert_eq!(bq.peek(), None);
176-
assert_eq!(bq.next(), None);
177-
178-
bq.push_back("abc".to_tendril());
179-
assert_eq!(bq.peek(), Some('a'));
180-
assert_eq!(bq.next(), Some('a'));
181-
assert_eq!(bq.peek(), Some('b'));
182-
assert_eq!(bq.peek(), Some('b'));
183-
assert_eq!(bq.next(), Some('b'));
184-
assert_eq!(bq.peek(), Some('c'));
185-
assert_eq!(bq.next(), Some('c'));
186-
assert_eq!(bq.peek(), None);
187-
assert_eq!(bq.next(), None);
188-
}
189-
190-
#[test]
191-
fn can_unconsume() {
192-
let mut bq = BufferQueue::new();
193-
bq.push_back("abc".to_tendril());
194-
assert_eq!(bq.next(), Some('a'));
195-
196-
bq.push_front("xy".to_tendril());
197-
assert_eq!(bq.next(), Some('x'));
198-
assert_eq!(bq.next(), Some('y'));
199-
assert_eq!(bq.next(), Some('b'));
200-
assert_eq!(bq.next(), Some('c'));
201-
assert_eq!(bq.next(), None);
202-
}
203-
204-
#[test]
205-
fn can_pop_except_set() {
206-
let mut bq = BufferQueue::new();
207-
bq.push_back("abc&def".to_tendril());
208-
let mut pop = || bq.pop_except_from(small_char_set!('&'));
209-
assert_eq!(pop(), Some(NotFromSet("abc".to_tendril())));
210-
assert_eq!(pop(), Some(FromSet('&')));
211-
assert_eq!(pop(), Some(NotFromSet("def".to_tendril())));
212-
assert_eq!(pop(), None);
213-
}
214-
215-
#[test]
216-
fn can_eat() {
217-
// This is not very comprehensive. We rely on the tokenizer
218-
// integration tests for more thorough testing with many
219-
// different input buffer splits.
220-
let mut bq = BufferQueue::new();
221-
bq.push_back("a".to_tendril());
222-
bq.push_back("bc".to_tendril());
223-
assert_eq!(bq.eat("abcd", u8::eq_ignore_ascii_case), None);
224-
assert_eq!(bq.eat("ax", u8::eq_ignore_ascii_case), Some(false));
225-
assert_eq!(bq.eat("ab", u8::eq_ignore_ascii_case), Some(true));
226-
assert_eq!(bq.next(), Some('c'));
227-
assert_eq!(bq.next(), None);
228-
}
229-
}

markup5ever/util/smallcharset.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,7 @@
77
// option. This file may not be copied, modified, or distributed
88
// except according to those terms.
99

10-
#[macro_export]
11-
macro_rules! small_char_set ( ($($e:expr)+) => (
12-
::markup5ever::SmallCharSet {
13-
bits: $( (1 << ($e as usize)) )|+
14-
}
15-
));
10+
1611

1712
/// Represents a set of "small characters", those with Unicode scalar
1813
/// values less than 64.

0 commit comments

Comments
 (0)