mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2025-07-08 00:05:00 +00:00
Test that select tool GRS works with only one anchor (#2502)
* one-anchor-point-testing implementation * merge conflict * merge conflict * ci cd error
This commit is contained in:
parent
fb17b9389c
commit
6de235f80c
1 changed files with 37 additions and 4 deletions
|
@ -702,12 +702,14 @@ impl MessageHandler<TransformLayerMessage, TransformData<'_>> for TransformLayer
|
|||
|
||||
#[cfg(test)]
|
||||
mod test_transform_layer {
|
||||
use crate::messages::portfolio::document::graph_operation::transform_utils;
|
||||
use crate::messages::{
|
||||
portfolio::document::graph_operation::{transform_utils, utility_types::ModifyInputsContext},
|
||||
prelude::Message,
|
||||
tool::transform_layer::transform_layer_message_handler::VectorModificationType,
|
||||
};
|
||||
use crate::test_utils::test_prelude::*;
|
||||
// Use ModifyInputsContext to locate the transform node
|
||||
use crate::messages::portfolio::document::graph_operation::utility_types::ModifyInputsContext;
|
||||
use crate::messages::prelude::Message;
|
||||
use glam::DAffine2;
|
||||
use graphene_core::vector::PointId;
|
||||
use std::collections::VecDeque;
|
||||
|
||||
async fn get_layer_transform(editor: &mut EditorTestUtils, layer: LayerNodeIdentifier) -> Option<DAffine2> {
|
||||
|
@ -1064,4 +1066,35 @@ mod test_transform_layer {
|
|||
let angle_change = ((angle_change % 360.0) + 360.0) % 360.0;
|
||||
assert!((angle_change - 90.0).abs() < 0.1, "Expected rotation of 90 degrees, got: {}", angle_change);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn test_grs_single_anchor() {
|
||||
let mut editor = EditorTestUtils::create();
|
||||
editor.new_document().await;
|
||||
editor.handle_message(DocumentMessage::CreateEmptyFolder).await;
|
||||
let document = editor.active_document();
|
||||
let layer = document.metadata().all_layers().next().unwrap();
|
||||
|
||||
let point_id = PointId::generate();
|
||||
let modification_type = VectorModificationType::InsertPoint {
|
||||
id: point_id,
|
||||
position: DVec2::new(100.0, 100.0),
|
||||
};
|
||||
editor.handle_message(GraphOperationMessage::Vector { layer, modification_type }).await;
|
||||
editor.handle_message(ToolMessage::ActivateTool { tool_type: ToolType::Select }).await;
|
||||
|
||||
// Testing grab operation - just checking that it doesn't crash.
|
||||
editor.handle_message(TransformLayerMessage::BeginGrab).await;
|
||||
editor.move_mouse(150.0, 150.0, ModifierKeys::empty(), MouseKeys::NONE).await;
|
||||
editor
|
||||
.handle_message(TransformLayerMessage::PointerMove {
|
||||
slow_key: Key::Shift,
|
||||
increments_key: Key::Control,
|
||||
})
|
||||
.await;
|
||||
editor.handle_message(TransformLayerMessage::ApplyTransformOperation { final_transform: true }).await;
|
||||
|
||||
let final_transform = get_layer_transform(&mut editor, layer).await;
|
||||
assert!(final_transform.is_some(), "Transform node should exist after grab operation");
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue