Add DefineShape tests

This commit is contained in:
Mike Welsh 2016-08-29 23:45:02 -07:00
parent fffe299cac
commit 648ad609a2
6 changed files with 88 additions and 4 deletions

View File

@ -534,10 +534,11 @@ impl<R: Read> Reader<R> {
#[cfg(test)]
mod tests {
use std::fs::File;
use types::*;
use super::*;
use std::io::{Cursor, Read};
use std::vec::Vec;
use super::*;
use types::*;
use tag_codes::TagCode;
fn reader(data: &[u8]) -> Reader<&[u8]> {
let default_version = 13;
@ -795,7 +796,48 @@ mod tests {
#[test]
fn read_define_shape() {
unimplemented!()
let tag_bytes = read_tag_from_file("test/swfs/define_shape.bin", 1);
let expected_tag = Tag::DefineShape(Shape {
version: 1,
id: 1,
shape_bounds: Rectangle { x_min: 0f32, x_max: 20f32, y_min: 0f32, y_max: 20f32 },
edge_bounds: Rectangle { x_min: 0f32, x_max: 20f32, y_min: 0f32, y_max: 20f32 },
styles: ShapeStyles {
fill_styles: vec![
FillStyle::Color(Color { r: 0, g: 0, b: 0, a: 255 })
],
line_styles: vec![],
num_fill_bits: 4,
num_line_bits: 0,
},
shape: vec![
ShapeRecord::StyleChange(StyleChangeData {
move_delta_x: 0f32,
move_delta_y: 0f32,
fill_style_0: None,
fill_style_1: Some(1),
line_style: None,
new_styles: None,
}),
ShapeRecord::StraightEdge {
delta_x: 20f32,
delta_y: 0f32,
},
ShapeRecord::StraightEdge {
delta_x: 0f32,
delta_y: 20f32,
},
ShapeRecord::StraightEdge {
delta_x: -20f32,
delta_y: 0f32,
},
ShapeRecord::StraightEdge {
delta_x: 0f32,
delta_y: -20f32,
},
]
});
assert_eq!(read_tag_from_file("test/swfs/define_shape.bin", 8), expected_tag);
}
#[test]

View File

@ -988,7 +988,49 @@ mod tests {
#[test]
fn write_define_shape() {
unimplemented!()
let tag = Tag::DefineShape(Shape {
version: 1,
id: 1,
shape_bounds: Rectangle { x_min: 0f32, x_max: 20f32, y_min: 0f32, y_max: 20f32 },
edge_bounds: Rectangle { x_min: 0f32, x_max: 20f32, y_min: 0f32, y_max: 20f32 },
styles: ShapeStyles {
fill_styles: vec![
FillStyle::Color(Color { r: 0, g: 0, b: 0, a: 255 })
],
line_styles: vec![],
num_fill_bits: 4,
num_line_bits: 0,
},
shape: vec![
ShapeRecord::StyleChange(StyleChangeData {
move_delta_x: 0f32,
move_delta_y: 0f32,
fill_style_0: None,
fill_style_1: Some(1),
line_style: None,
new_styles: None,
}),
ShapeRecord::StraightEdge {
delta_x: 20f32,
delta_y: 0f32,
},
ShapeRecord::StraightEdge {
delta_x: 0f32,
delta_y: 20f32,
},
ShapeRecord::StraightEdge {
delta_x: -20f32,
delta_y: 0f32,
},
ShapeRecord::StraightEdge {
delta_x: 0f32,
delta_y: -20f32,
},
]
});
assert_eq!(write_tag_to_buf(&tag, 1),
get_file_contents("test/swfs/define_shape.bin"));
}
#[test]

BIN
test/swfs/define_shape.bin Normal file

Binary file not shown.

BIN
test/swfs/define_shape.fla Normal file

Binary file not shown.

BIN
test/swfs/define_shape.swf Normal file

Binary file not shown.

Binary file not shown.