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
4TestCase := Rectangle {
5 property<bool> condition;
6 property<color> extra_color;
7 background: condition ? root.extra_color : red;
8 property<string> s1 : condition ? "abc" : 123;
9 property<string> s2 : condition ? 123 : "abc";
10
11 property <bool> test: s1 == "123" && s2 == "abc";
12}
13
14
15/*
16```cpp
17auto handle = TestCase::create();
18const TestCase &instance = *handle;
19instance.set_condition(true);
20assert_eq(instance.get_s1(), "abc");
21assert_eq(instance.get_s2(), "123");
22instance.set_condition(false);
23assert_eq(instance.get_s2(), "abc");
24assert_eq(instance.get_s1(), "123");
25```
26
27
28```rust
29let instance = TestCase::new().unwrap();
30instance.set_condition(true);
31assert_eq!(instance.get_s1(), "abc");
32assert_eq!(instance.get_s2(), "123");
33instance.set_condition(false);
34assert_eq!(instance.get_s2(), "abc");
35assert_eq!(instance.get_s1(), "123");
36```
37
38```js
39var instance = new slint.TestCase({});
40instance.condition = true;
41assert.equal(instance.s1, "abc");
42assert.equal(instance.s2, "123");
43instance.condition = false;
44assert.equal(instance.s1, "123");
45assert.equal(instance.s2, "abc");
46```
47*/
48