mirror of
https://github.com/slint-ui/slint.git
synced 2025-10-22 08:12:48 +00:00
114 lines
3.8 KiB
Text
114 lines
3.8 KiB
Text
// Copyright © SixtyFPS GmbH <info@slint.dev>
|
|
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
|
|
|
|
import { Button, GroupBox, TabWidget, VerticalBox } from "std-widgets.slint";
|
|
|
|
export component TestCase inherits Window {
|
|
TabWidget {
|
|
Tab {
|
|
title: "First Tab";
|
|
|
|
VerticalBox {
|
|
alignment: start;
|
|
|
|
GroupBox {
|
|
title: "Content of first tab";
|
|
|
|
Button {
|
|
text: "Button 1";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
Tab {
|
|
title: "Second Tab";
|
|
|
|
VerticalBox {
|
|
alignment: start;
|
|
|
|
GroupBox {
|
|
title: "Content of second tab";
|
|
|
|
Button {
|
|
text: "Button 2";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
Tab {
|
|
title: "Third Tab";
|
|
|
|
VerticalBox {
|
|
alignment: start;
|
|
|
|
GroupBox {
|
|
title: "Content of third tab";
|
|
|
|
Button {
|
|
text: "Button 3";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
```rust
|
|
let instance = TestCase::new().unwrap();
|
|
|
|
let mut tabbar_search = slint_testing::ElementHandle::find_by_element_id(&instance, "TabBarImpl::root");
|
|
let tabbar = tabbar_search.next().unwrap();
|
|
assert_eq!(tabbar.accessible_item_count(), Some(3));
|
|
|
|
let mut tab1_search = slint_testing::ElementHandle::find_by_accessible_label(&instance, "First Tab");
|
|
let tab1 = tab1_search.next().unwrap();
|
|
// First tab panel is visible and has the same accessible label
|
|
assert!(tab1_search.next().is_some());
|
|
assert!(tab1_search.next().is_none());
|
|
|
|
let mut tab2_search = slint_testing::ElementHandle::find_by_accessible_label(&instance, "Second Tab");
|
|
let tab2 = tab2_search.next().unwrap();
|
|
// Second tab panel is not active at first, so it is hidden.
|
|
assert!(tab2_search.next().is_none());
|
|
|
|
let mut tab3_search = slint_testing::ElementHandle::find_by_accessible_label(&instance, "Third Tab");
|
|
let tab3 = tab3_search.next().unwrap();
|
|
// Third tab panel is not active at first, so it is hidden.
|
|
assert!(tab3_search.next().is_none());
|
|
|
|
|
|
assert_eq!(tab1.accessible_item_index(), Some(0));
|
|
assert_eq!(tab1.accessible_item_selectable(), Some(true));
|
|
assert_eq!(tab1.accessible_item_selected(), Some(true));
|
|
|
|
assert_eq!(tab2.accessible_item_index(), Some(1));
|
|
assert_eq!(tab2.accessible_item_selectable(), Some(true));
|
|
assert_eq!(tab2.accessible_item_selected(), Some(false));
|
|
|
|
assert_eq!(tab3.accessible_item_index(), Some(2));
|
|
assert_eq!(tab3.accessible_item_selectable(), Some(true));
|
|
assert_eq!(tab3.accessible_item_selected(), Some(false));
|
|
|
|
// The accessible default action of tabs change the active tab panel
|
|
tab2.invoke_accessible_default_action();
|
|
assert_eq!(tab2.accessible_item_selectable(), Some(true));
|
|
assert_eq!(tab2.accessible_item_selected(), Some(true));
|
|
assert_eq!(slint_testing::ElementHandle::find_by_accessible_label(&instance, "Second Tab").count(), 2);
|
|
|
|
assert_eq!(tab1.accessible_item_selectable(), Some(true));
|
|
assert_eq!(tab1.accessible_item_selected(), Some(false));
|
|
assert_eq!(slint_testing::ElementHandle::find_by_accessible_label(&instance, "First Tab").count(), 1);
|
|
|
|
tab3.invoke_accessible_default_action();
|
|
assert_eq!(tab3.accessible_item_selectable(), Some(true));
|
|
assert_eq!(tab3.accessible_item_selected(), Some(true));
|
|
assert_eq!(slint_testing::ElementHandle::find_by_accessible_label(&instance, "Third Tab").count(), 2);
|
|
|
|
assert_eq!(tab2.accessible_item_selectable(), Some(true));
|
|
assert_eq!(tab2.accessible_item_selected(), Some(false));
|
|
assert_eq!(slint_testing::ElementHandle::find_by_accessible_label(&instance, "Second Tab").count(), 1);
|
|
```
|
|
*/
|