1// Copyright © SixtyFPS GmbH <info@slint.dev>
2// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
3
4import { CheckBox } from "std-widgets.slint";
5export component TestCase inherits Window {
6
7 in-out property <string> toggled;
8 in-out property <bool> checked <=> a.checked;
9
10 HorizontalLayout {
11 alignment: start;
12 a := CheckBox {
13 text: "Aaa";
14 toggled => {
15 root.toggled += "a";
16 }
17 }
18 }
19}
20
21/*
22```rust
23use slint::{SharedString};
24
25let instance = TestCase::new().unwrap();
26
27assert_eq!(instance.get_checked(), false);
28
29let mut result = slint_testing::ElementHandle::find_by_element_id(&instance, "TestCase::a").collect::<Vec<_>>();
30assert_eq!(result.len(), 1);
31let aaa = result.pop().unwrap();
32assert_eq!(aaa.accessible_label().unwrap(), "Aaa");
33assert_eq!(aaa.accessible_value(), None);
34assert_eq!(aaa.accessible_value_maximum(), None);
35assert_eq!(aaa.accessible_value_minimum(), None);
36assert_eq!(aaa.accessible_value_step(), None);
37assert_eq!(aaa.accessible_checked(), Some(false));
38assert_eq!(aaa.accessible_checkable(), Some(true));
39aaa.invoke_accessible_default_action();
40assert_eq!(instance.get_checked(), true, "CheckBox a was not checked");
41assert_eq!(aaa.accessible_checked(), Some(true));
42assert_eq!(instance.get_toggled(), SharedString::from("a"));
43```
44
45```cpp
46auto handle = TestCase::create();
47const TestCase &instance = *handle;
48
49auto label_search = slint::testing::ElementHandle::find_by_element_id(handle, "TestCase::a");
50assert(label_search.size() == 1);
51auto aaa = label_search[0];
52assert_eq(aaa.accessible_label().value(), "Aaa");
53assert(!aaa.accessible_value());
54assert(!aaa.accessible_value_maximum());
55assert(!aaa.accessible_value_minimum());
56assert(!aaa.accessible_value_step());
57assert_eq(aaa.accessible_checked().value(), false);
58assert_eq(aaa.accessible_checkable().value(), true);
59aaa.invoke_accessible_default_action();
60assert_eq(instance.get_checked(), true);
61assert_eq(aaa.accessible_checked().value(), true);
62assert_eq(instance.get_toggled(), "a");
63
64```
65
66*/
67