30 lines
1.1 KiB
Rust
30 lines
1.1 KiB
Rust
//! The Width tool in the UI: its cursors and hint.
|
|
|
|
use serde_json::json;
|
|
use vectorcraft_engine::Session;
|
|
use vectorcraft_tools::Cursor;
|
|
|
|
use crate::{VectorcraftApp, chrome, tests_labels::painted_text};
|
|
|
|
#[test]
|
|
fn the_width_tool_has_its_own_cursors() {
|
|
let ctx = egui::Context::default();
|
|
let mut out = ctx.run_ui(egui::RawInput::default(), |ui| {
|
|
let painter = ui.painter().clone();
|
|
for c in [Cursor::Width, Cursor::WidthAdd, Cursor::WidthPoint] {
|
|
assert!(crate::cursors::paint(&painter, c, egui::pos2(50.0, 50.0)), "{c:?} is drawn");
|
|
}
|
|
});
|
|
out.textures_delta.clear();
|
|
assert!(out.shapes.len() > 3, "{} shapes", out.shapes.len());
|
|
}
|
|
|
|
#[test]
|
|
fn the_hint_bar_explains_the_width_tool() {
|
|
let mut app = VectorcraftApp::new(Session::new(), Default::default());
|
|
app.run("file.new", json!({"width": 300, "height": 300})).unwrap();
|
|
app.run("tool.select", json!({"tool": "width"})).unwrap();
|
|
let text = painted_text(&mut app, chrome::hint_bar).replace('\n', "");
|
|
assert!(text.contains("add a width point") && text.contains("one side") && text.contains("remove points"), "{text}");
|
|
}
|