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
4OtherComp := Rectangle {
5 property <string> t <=> text.text;
6 property <string> get_text <=> text.text;
7 text := Text {
8 text: "to be overridden";
9 }
10 property <int> some_value: 42;
11 property <int> some_value_alias <=> some_value;
12}
13
14TestCase := Rectangle {
15
16 property <string> text1: "Hello";
17 property <string> text2: "Blah";
18 property <string> ti1_text: ti1.text;
19 property <string> ti2_text: ti2.text;
20 property <string> text_item_text: text_item.text;
21 property <string> othercomp_t: "real value";
22 property <string> othercomp_get_text: other_comp.get_text;
23 property <int> othercomp_some_value;
24 property <int> othercomp_some_value_alias <=> other_comp.some_value_alias;
25 property <int> othercomp_some_value_alias2;
26
27 ti1 := TextInput {
28 text <=> text1;
29 }
30
31 ti2 := TextInput {
32 text <=> text_item.text;
33 }
34
35 text_item := Text {
36 text: text2;
37 }
38
39 Text {
40 text <=> text1;
41 }
42
43 other_comp := OtherComp {
44 t <=> root.othercomp_t;
45 some_value <=> othercomp_some_value;
46 some_value_alias <=> othercomp_some_value_alias2;
47 }
48
49 callback set_ti1(string);
50 set_ti1(a) => { ti1.text = a; }
51 callback set_ti2(string);
52 set_ti2(a) => { ti2.text = a; }
53}
54
55
56/*
57
58```rust
59let instance = TestCase::new().unwrap();
60assert_eq!(instance.get_text1(), slint::SharedString::from("Hello"));
61assert_eq!(instance.get_text2(), slint::SharedString::from("Blah"));
62assert_eq!(instance.get_ti1_text(), slint::SharedString::from("Hello"));
63assert_eq!(instance.get_ti2_text(), slint::SharedString::from("Blah"));
64assert_eq!(instance.get_text_item_text(), slint::SharedString::from("Blah"));
65assert_eq!(instance.get_othercomp_t(), instance.get_othercomp_get_text());
66assert_eq!(instance.get_othercomp_t(), slint::SharedString::from("real value"));
67assert_eq!(instance.get_othercomp_get_text(), slint::SharedString::from("real value"));
68
69instance.set_text1(slint::SharedString::from("Text1New"));
70instance.set_text2(slint::SharedString::from("Text2New"));
71assert_eq!(instance.get_text1(), slint::SharedString::from("Text1New"));
72assert_eq!(instance.get_text2(), slint::SharedString::from("Text2New"));
73assert_eq!(instance.get_ti1_text(), slint::SharedString::from("Text1New"));
74assert_eq!(instance.get_ti2_text(), slint::SharedString::from("Text2New"));
75assert_eq!(instance.get_text_item_text(), slint::SharedString::from("Text2New"));
76
77instance.invoke_set_ti1(slint::SharedString::from("Hallo"));
78instance.invoke_set_ti2(slint::SharedString::from("Bonjour"));
79assert_eq!(instance.get_text1(), slint::SharedString::from("Hallo"));
80assert_eq!(instance.get_text2(), slint::SharedString::from("Text2New"));
81assert_eq!(instance.get_ti1_text(), slint::SharedString::from("Hallo"));
82assert_eq!(instance.get_ti2_text(), slint::SharedString::from("Bonjour"));
83assert_eq!(instance.get_text_item_text(), slint::SharedString::from("Bonjour"));
84
85assert_eq!(instance.get_othercomp_some_value(), 0);
86assert_eq!(instance.get_othercomp_some_value_alias(), 0);
87assert_eq!(instance.get_othercomp_some_value_alias2(), 0);
88instance.set_othercomp_some_value(88);
89assert_eq!(instance.get_othercomp_some_value(), 88);
90assert_eq!(instance.get_othercomp_some_value_alias(), 88);
91assert_eq!(instance.get_othercomp_some_value_alias2(), 88);
92instance.set_othercomp_some_value_alias(81);
93assert_eq!(instance.get_othercomp_some_value(), 81);
94assert_eq!(instance.get_othercomp_some_value_alias(), 81);
95assert_eq!(instance.get_othercomp_some_value_alias2(), 81);
96instance.set_othercomp_some_value_alias2(1);
97assert_eq!(instance.get_othercomp_some_value(), 1);
98assert_eq!(instance.get_othercomp_some_value_alias(), 1);
99assert_eq!(instance.get_othercomp_some_value_alias2(), 1);
100
101```
102
103
104
105```cpp
106auto handle = TestCase::create();
107const TestCase &instance = *handle;
108assert_eq(instance.get_text1(), slint::SharedString("Hello"));
109assert_eq(instance.get_text2(), slint::SharedString("Blah"));
110assert_eq(instance.get_ti1_text(), slint::SharedString("Hello"));
111assert_eq(instance.get_ti2_text(), slint::SharedString("Blah"));
112assert_eq(instance.get_text_item_text(), slint::SharedString("Blah"));
113assert_eq(instance.get_othercomp_t(), instance.get_othercomp_get_text());
114assert_eq(instance.get_othercomp_t(), slint::SharedString("real value"));
115assert_eq(instance.get_othercomp_get_text(), slint::SharedString("real value"));
116
117
118instance.set_text1(slint::SharedString("Text1New"));
119instance.set_text2(slint::SharedString("Text2New"));
120assert_eq(instance.get_text1(), slint::SharedString("Text1New"));
121assert_eq(instance.get_text2(), slint::SharedString("Text2New"));
122assert_eq(instance.get_ti1_text(), slint::SharedString("Text1New"));
123assert_eq(instance.get_ti2_text(), slint::SharedString("Text2New"));
124assert_eq(instance.get_text_item_text(), slint::SharedString("Text2New"));
125
126instance.invoke_set_ti1(slint::SharedString("Hallo"));
127instance.invoke_set_ti2(slint::SharedString("Bonjour"));
128assert_eq(instance.get_text1(), slint::SharedString("Hallo"));
129assert_eq(instance.get_text2(), slint::SharedString("Text2New"));
130assert_eq(instance.get_ti1_text(), slint::SharedString("Hallo"));
131assert_eq(instance.get_ti2_text(), slint::SharedString("Bonjour"));
132assert_eq(instance.get_text_item_text(), slint::SharedString("Bonjour"));
133
134assert_eq(instance.get_othercomp_some_value(), 0);
135assert_eq(instance.get_othercomp_some_value_alias(), 0);
136assert_eq(instance.get_othercomp_some_value_alias2(), 0);
137instance.set_othercomp_some_value(88);
138assert_eq(instance.get_othercomp_some_value(), 88);
139assert_eq(instance.get_othercomp_some_value_alias(), 88);
140assert_eq(instance.get_othercomp_some_value_alias2(), 88);
141instance.set_othercomp_some_value_alias(81);
142assert_eq(instance.get_othercomp_some_value(), 81);
143assert_eq(instance.get_othercomp_some_value_alias(), 81);
144assert_eq(instance.get_othercomp_some_value_alias2(), 81);
145instance.set_othercomp_some_value_alias2(1);
146assert_eq(instance.get_othercomp_some_value(), 1);
147assert_eq(instance.get_othercomp_some_value_alias(), 1);
148assert_eq(instance.get_othercomp_some_value_alias2(), 1);
149```
150
151
152```js
153let instance = new slint.TestCase({});
154assert.equal(instance.text1, "Hello");
155assert.equal(instance.text2, "Blah");
156assert.equal(instance.ti1_text, "Hello");
157assert.equal(instance.ti2_text, "Blah");
158assert.equal(instance.text_item_text, "Blah");
159assert.equal(instance.othercomp_t, instance.othercomp_get_text);
160assert.equal(instance.othercomp_t, "real value");
161assert.equal(instance.othercomp_get_text, "real value");
162
163instance.text1 = "Text1New";
164instance.text2 = "Text2New";
165assert.equal(instance.text1, "Text1New");
166assert.equal(instance.text2, "Text2New");
167assert.equal(instance.ti1_text, "Text1New");
168assert.equal(instance.ti2_text, "Text2New");
169assert.equal(instance.text_item_text, "Text2New");
170
171instance.set_ti1("Hallo");
172instance.set_ti2("Bonjour");
173assert.equal(instance.text1, "Hallo");
174assert.equal(instance.text2, "Text2New");
175assert.equal(instance.ti1_text, "Hallo");
176assert.equal(instance.ti2_text, "Bonjour");
177assert.equal(instance.text_item_text, "Bonjour");
178
179assert.equal(instance.othercomp_some_value, 0);
180assert.equal(instance.othercomp_some_value_alias, 0);
181assert.equal(instance.othercomp_some_value_alias2, 0);
182instance.othercomp_some_value = 88;
183assert.equal(instance.othercomp_some_value, 88);
184assert.equal(instance.othercomp_some_value_alias, 88);
185assert.equal(instance.othercomp_some_value_alias2, 88);
186instance.othercomp_some_value_alias = 81;
187assert.equal(instance.othercomp_some_value, 81);
188assert.equal(instance.othercomp_some_value_alias, 81);
189assert.equal(instance.othercomp_some_value_alias2, 81);
190instance.othercomp_some_value_alias2 = 1;
191assert.equal(instance.othercomp_some_value, 1);
192assert.equal(instance.othercomp_some_value_alias, 1);
193assert.equal(instance.othercomp_some_value_alias2, 1);
194```
195
196*/
197