cadcraft/crates/engine/tests/plot_styles.rs

21 lines
1.1 KiB
Rust

//! PAGESETUP: the plot style table and "Display plot styles" of a layout (issue #410).
use cadcraft_engine::Session;
use serde_json::json;
#[test]
fn pagesetup_sets_table_and_display_flag() {
let mut s = Session::new();
let r = s.execute("pagesetup", &json!({"layout": "Layout1", "plotStyleTable": "monochrome.ctb", "displayPlotStyles": true})).unwrap();
assert_eq!(r["page"]["plotStyleTable"], "monochrome.ctb");
assert_eq!(r["page"]["showPlotStyles"], true);
let page = &s.doc().unwrap().layout("Layout1").unwrap().page;
assert!(page.show_plot_styles && page.plot_style_table == "monochrome.ctb");
// The report lists the built-in tables.
let report = s.execute("pagesetup", &json!({})).unwrap();
let tables: Vec<&str> = report["plotStyleTables"].as_array().unwrap().iter().filter_map(|v| v.as_str()).collect();
assert!(tables.contains(&"monochrome.ctb") && tables.contains(&"grayscale.ctb"), "{tables:?}");
s.execute("pagesetup", &json!({"layout": "Layout1", "displayPlotStyles": false})).unwrap();
assert!(!s.doc().unwrap().layout("Layout1").unwrap().page.show_plot_styles);
}