diff --git a/src/bin/stub.rs b/src/bin/stub.rs deleted file mode 100644 index 0ecd41d..0000000 --- a/src/bin/stub.rs +++ /dev/null @@ -1,28 +0,0 @@ -extern crate webmetro; - -use std::io::{Cursor, stdout, Write}; -use webmetro::webm::*; - -pub fn main() { - let mut cursor = Cursor::new(Vec::new()); - - encode_webm_element(WebmElement::EbmlHead, &mut cursor).unwrap(); - encode_webm_element(WebmElement::Segment, &mut cursor).unwrap(); - - encode_webm_element(WebmElement::Tracks(&[]), &mut cursor).unwrap(); - - encode_webm_element(WebmElement::Cluster, &mut cursor).unwrap(); - encode_webm_element(WebmElement::Timecode(0), &mut cursor).unwrap(); - - encode_webm_element(WebmElement::SimpleBlock(SimpleBlock { - track: 3, - flags: 0x0, - timecode: 123, - data: "Hello, World".as_bytes() - }), &mut cursor).unwrap(); - - encode_webm_element(WebmElement::Cluster, &mut cursor).unwrap(); - encode_webm_element(WebmElement::Timecode(1000), &mut cursor).unwrap(); - - stdout().write_all(&cursor.get_ref()).unwrap(); -} diff --git a/src/data/encode_webm_test.webm b/src/data/encode_webm_test.webm new file mode 100644 index 0000000..badfef2 Binary files /dev/null and b/src/data/encode_webm_test.webm differ diff --git a/src/lib.rs b/src/lib.rs index b7cde9f..3e80f2b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -21,6 +21,7 @@ mod tests { use futures::future::{ok, Future}; pub const TEST_FILE: &'static [u8] = include_bytes!("data/test1.webm"); + pub const ENCODE_WEBM_TEST_FILE: &'static [u8] = include_bytes!("data/encode_webm_test.webm"); #[test] fn hello_futures() { diff --git a/src/webm.rs b/src/webm.rs index 5386b4a..6a48b60 100644 --- a/src/webm.rs +++ b/src/webm.rs @@ -131,7 +131,10 @@ pub fn encode_webm_element(element: WebmElement, output: &mut T #[cfg(test)] mod tests { - use tests::TEST_FILE; + use tests::{ + TEST_FILE, + ENCODE_WEBM_TEST_FILE + }; use webm::*; #[test] @@ -188,4 +191,30 @@ mod tests { assert_eq!(iter.next(), Some(WebmElement::Cues)); assert_eq!(iter.next(), None); } + + #[test] + fn encode_webm_test() { + let mut cursor = Cursor::new(Vec::new()); + + encode_webm_element(WebmElement::EbmlHead, &mut cursor).unwrap(); + encode_webm_element(WebmElement::Segment, &mut cursor).unwrap(); + + encode_webm_element(WebmElement::Tracks(&[]), &mut cursor).unwrap(); + + encode_webm_element(WebmElement::Cluster, &mut cursor).unwrap(); + encode_webm_element(WebmElement::Timecode(0), &mut cursor).unwrap(); + + encode_webm_element(WebmElement::SimpleBlock(SimpleBlock { + track: 3, + flags: 0x0, + timecode: 123, + data: "Hello, World".as_bytes() + }), &mut cursor).unwrap(); + + encode_webm_element(WebmElement::Cluster, &mut cursor).unwrap(); + encode_webm_element(WebmElement::Timecode(1000), &mut cursor).unwrap(); + + assert_eq!(cursor.get_ref(), &ENCODE_WEBM_TEST_FILE); + } + }