chore: audit all components (#2)
Reviewed-on: #2
This commit was merged in pull request #2.
This commit is contained in:
+22
-17
@@ -112,6 +112,28 @@ fn click(visual: &mut VisualTestContext, position: gpui::Point<gpui::Pixels>) {
|
||||
visual.simulate_mouse_up(position, MouseButton::Left, Modifiers::default());
|
||||
}
|
||||
|
||||
/// Every action row renders at the platform's stated menu row height,
|
||||
/// whatever its content — the metric is the whole row, not a floor under
|
||||
/// padding. Item 1 of the harness menu is a separator, so it is skipped.
|
||||
#[test]
|
||||
fn rows_render_at_the_stated_menu_row_height() {
|
||||
let (cx, mut visual, _window, _changes, _activated) = menu_window(true);
|
||||
|
||||
let stated = cx.update(|cx| Theme::global(cx).sizes.medium.menu_item_height);
|
||||
for index in [0, 2, 3, 4] {
|
||||
let selector: &'static str = Box::leak(format!("menu-item-{index}").into_boxed_str());
|
||||
let row = visual
|
||||
.debug_bounds(selector)
|
||||
.unwrap_or_else(|| panic!("row {index} should have been laid out"));
|
||||
// Painted bounds are snapped to device pixels; allow half a pixel.
|
||||
assert!(
|
||||
(row.size.height - stated).abs() <= px(0.5),
|
||||
"row {index} is {:?} tall, stated menu row height is {stated:?}",
|
||||
row.size.height
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn arrow_navigation_skips_separators_and_disabled_items() {
|
||||
let (_cx, mut visual, _window, changes, activated) = menu_window(true);
|
||||
@@ -163,14 +185,6 @@ fn clicking_outside_dismisses_and_swallows_the_click() {
|
||||
assert_eq!(*changes.borrow(), vec![false]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn clicking_the_trigger_toggles() {
|
||||
let (_cx, mut visual, _window, changes, _activated) = menu_window(false);
|
||||
|
||||
click(&mut visual, point(px(10.), px(16.)));
|
||||
assert_eq!(*changes.borrow(), vec![true]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn clicking_an_item_activates_and_closes() {
|
||||
let (_cx, mut visual, _window, changes, activated) = menu_window(true);
|
||||
@@ -180,12 +194,3 @@ fn clicking_an_item_activates_and_closes() {
|
||||
assert_eq!(*activated.borrow(), vec!["cut"]);
|
||||
assert_eq!(*changes.borrow(), vec![false]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn enter_activates_the_selected_item_and_closes() {
|
||||
let (_cx, mut visual, _window, changes, activated) = menu_window(true);
|
||||
|
||||
visual.simulate_keystrokes("enter");
|
||||
assert_eq!(*activated.borrow(), vec!["cut"]);
|
||||
assert_eq!(*changes.borrow(), vec![false]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user