makepad_gen_plugin/
lib.rs1pub mod compiler;
3pub mod builtin;
5pub mod model;
7pub mod traits;
9pub mod from_gen;
11pub mod token;
13pub mod visitor;
14pub mod two_way_binding;
15pub mod script;
16
17
18#[cfg(test)]
19mod test_widget {
20 use std::path::PathBuf;
23
24 use gen_analyzer::Model;
25 use gen_utils::{
26 common::{fs, Source},
27 compiler::ToRs,
28 };
29
30 use crate::{compiler::{Context, RouterBuilder}, model::{SimpleAppMain, Widget}};
31
32
33 fn context() -> Context {
34 Context {
35 app_main: SimpleAppMain::default(),
36 define_widget_poll: Default::default(),
38 plugins: None,
39 dyn_processor: None,
40 lib_content: None,
41 router: Some(RouterBuilder::new("/Users/shengyifei/projects/gen_ui/made_with_GenUI/tests/router/router.toml", "").unwrap()),
42 }
43 }
44
45 #[test]
46 fn router_called(){
47 let source = Source::new(
49 "/Users/shengyifei/projects/gen_ui/made_with_GenUI/tests",
50 "router/views/home.gen",
51 "src_gen_0/src/router/views/home.rs",
52 );
53 handle(source);
54 }
55
56 #[test]
57 fn lifecycle_home(){
58 let source = Source::new(
60 "/Users/shengyifei/projects/gen_ui/made_with_GenUI/tests",
61 "lifecycle/views/home.gen",
62 "src_gen_0/src/lifecycle/views/home.rs",
63 );
64 handle(source);
65 }
66
67 #[test]
68 fn lifecycle_hello(){
69 let source = Source::new(
71 "/Users/shengyifei/projects/gen_ui/made_with_GenUI/lifecycle/tests",
72 "components/hello.gen",
73 "src_gen_0/src/components/hello.rs",
74 );
75 handle(source);
76 }
77
78 #[test]
79 fn update_lifecycle(){
80 let source = Source::new(
82 "/Users/shengyifei/projects/gen_ui/made_with_GenUI/tests",
83 "views/update.gen",
84 "src_gen_0/src/views/update.rs",
85 );
86 handle(source);
87 }
88
89 #[test]
90 fn if_nested(){
91 let source = Source::new(
93 "/Users/shengyifei/projects/gen_ui/made_with_GenUI/if_else_test/if_else",
94 "views/if_nested.gen",
95 "src_gen_0/src/views/if_nested.rs",
96 );
97 handle(source);
98 }
99
100 #[test]
101 fn if_all_multi(){
102 let source = Source::new(
104 "/Users/shengyifei/projects/gen_ui/made_with_GenUI/if_else_test/if_else",
105 "views/if_all_multi.gen",
106 "src_gen_0/src/views/if_all_multi.rs",
107 );
108 handle(source);
109 }
110
111 #[test]
112 fn if_else_and_if_else(){
113 let source = Source::new(
115 "/Users/shengyifei/projects/gen_ui/made_with_GenUI/if_else_test/if_else",
116 "views/if_else_and_if_else.gen",
117 "src_gen_0/src/views/if_else_and_if_else.rs",
118 );
119 handle(source);
120 }
121
122 #[test]
123 fn computed_with_args(){
124 let source = Source::new(
126 "/Users/shengyifei/projects/gen_ui/made_with_GenUI/if_else_test/if_else",
127 "views/if_multi_else_if.gen",
128 "src_gen_0/src/views/if_multi_else_if.rs",
129 );
130 handle(source);
131 }
132
133 #[test]
134 fn if_computed(){
135 let source = Source::new(
137 "/Users/shengyifei/projects/gen_ui/made_with_GenUI/if_else_test/if_else",
138 "views/if_else_if_else.gen",
139 "src_gen_0/src/views/if_else_if_else.rs",
140 );
141 handle(source);
142 }
143
144 #[test]
145 fn multi_if(){
146 let source = Source::new(
148 "/Users/shengyifei/projects/gen_ui/made_with_GenUI/if_else_test/if_else",
149 "views/multi_if.gen",
150 "src_gen_0/src/views/multi_if.rs",
151 );
152 handle(source);
153 }
154
155 #[test]
156 fn ui_root(){
157 let source = Source::new(
159 "/Users/shengyifei/projects/gen_ui/made_with_GenUI/if_else_test/if_else",
160 "views/root.gen",
161 "src_gen_0/src/views/root.rs",
162 );
163 handle(source);
164 }
165
166 #[test]
167 fn route_macro(){
168 let source = Source::new(
170 "/Users/shengyifei/projects/gen_ui/made_with_GenUI/tests",
171 "views/router_test.gen",
172 "src_gen_0/src/views/router_test.rs",
173 );
174 handle(source);
175 }
176
177 #[test]
178 fn only_if(){
179 let source = Source::new(
181 "/Users/shengyifei/projects/gen_ui/made_with_GenUI/if_else_test/if_else",
182 "views/home.gen",
183 "src_gen_0/src/views/home.rs",
184 );
185 handle(source);
186 }
187
188 #[test]
189 fn if_easy(){
190 let source = Source::new(
192 "/Users/shengyifei/projects/gen_ui/made_with_GenUI/tests",
193 "views/if_easy.gen",
194 "src_gen_0/src/views/if_easy.rs",
195 );
196 handle(source);
197 }
198
199 #[test]
200 fn if_else(){
201 let source = Source::new(
203 "/Users/shengyifei/projects/gen_ui/made_with_GenUI/if_else_test/if_else",
204 "views/if_else.gen",
205 "src_gen_0/src/views/if_else.rs",
206 );
207
208 handle(source);
209 }
210
211 #[test]
212 fn vis(){
213 let source = Source::new(
215 "/Users/shengyifei/projects/gen_ui/made_with_GenUI/tests",
216 "views/bind1.gen",
217 "src_gen_0/src/views/bind1.rs",
218 );
219
220 handle(source);
221 }
222
223 #[test]
224 fn script(){
225 let source = Source::new(
227 "/Users/shengyifei/projects/gen_ui/made_with_GenUI/tests",
228 "views/sc1.gen",
229 "src_gen_0/src/views/sc1.rs",
230 );
231 handle(source);
234 }
235
236 #[test]
237 fn script_pure(){
238 let source = Source::new(
240 "/Users/shengyifei/projects/gen_ui/made_with_GenUI/tests",
241 "views/sc_pure.gen",
242 "src_gen_0/src/views/sc_pure.rs",
243 );
244 handle(source);
247 }
248
249 #[test]
250 fn c_ref2() {
251 let source = Source::new(
252 "/Users/shengyifei/projects/gen_ui/made_with_GenUI/c_ref_test",
253 "c_ref/components/header.gen",
254 "src_gen_0/src/components/header.rs",
255 );
256
257 handle(source);
258 }
259
260 #[test]
262 fn c_ref() {
263 let source = Source::new(
264 "/Users/shengyifei/projects/gen_ui/made_with_GenUI/c_ref_test",
265 "c_ref/views/hello.gen",
266 "src_gen_0/src/views/hello.rs",
267 );
268
269 handle(source);
270 }
271
272
273 #[test]
274 fn for_loop() {
275 let source = Source::new(
277 "/Users/shengyifei/projects/gen_ui/made_with_GenUI/for_test",
278 "fors/components/hello.gen",
279 "src_gen_0/src/components/hello.rs",
280 );
281
282 handle(source);
283 }
284
285 #[test]
286 fn setting(){
287 let source = Source::new(
289 "/Users/shengyifei/projects/gen_ui/made_with_GenUI/others",
290 "others/views/home.gen",
291 "src_gen_0/src/views/home.rs",
292 );
293 handle(source);
294 }
295
296
297
298
299 fn handle(source: Source) {
300 let model = Model::new(source, true).unwrap();
301 let mut context = context();
303 let w = Widget::try_from((&mut context, model)).unwrap();
304 let content = w.content().unwrap().to_string();
306 let path = PathBuf::from("/Users/shengyifei/projects/gen_ui/GenUI/gen/mini_test.rs");
307 let _ = fs::write(path.as_path(), &content);
308 }
309
310}