1
1
use std:: { any:: Any , ops:: Deref } ;
2
2
3
3
use anyhow:: Result ;
4
+ use log:: debug;
4
5
use test_engine:: {
5
6
refs:: { Own , Weak } ,
6
7
ui:: {
7
8
view, AfterSetup , Color , Container , Label , Sub , TableData , TableView , View , ViewData , ViewSetup ,
8
9
ViewSubviews ,
9
10
} ,
10
- App ,
11
+ ui_test:: inject_touches,
12
+ wait_for_next_frame, App ,
11
13
} ;
12
14
13
15
#[ view]
@@ -17,9 +19,8 @@ struct TestTableView {
17
19
18
20
impl ViewSetup for TestTableView {
19
21
fn setup ( self : Weak < Self > ) {
20
- self . table . place ( ) . all_sides ( 150 ) ;
22
+ self . table . place ( ) . lr ( 280 ) . tb ( 0 ) ;
21
23
self . table . set_data_source ( self . deref ( ) ) ;
22
- self . table . layout_cells ( ) ;
23
24
}
24
25
}
25
26
@@ -29,7 +30,7 @@ impl TableData for TestTableView {
29
30
}
30
31
31
32
fn number_of_cells ( & self ) -> usize {
32
- 500
33
+ 2_000_000
33
34
}
34
35
35
36
fn make_cell ( & self ) -> Own < dyn View > {
@@ -51,16 +52,68 @@ impl TableData for TestTableView {
51
52
52
53
fn setup_cell ( & self , cell : & mut dyn Any , index : usize ) {
53
54
let label = cell. downcast_mut :: < Label > ( ) . unwrap ( ) ;
54
- label. set_text ( format ! ( "Cell number: {index}" ) ) ;
55
+ label. set_text ( format ! ( "Cell number: {}" , index + 1 ) ) ;
55
56
}
56
57
}
57
58
58
59
pub async fn test_table_view ( ) -> Result < ( ) > {
59
- let mut _view = App :: init_test_view :: < TestTableView > ( ) . await ;
60
+ let view = App :: init_test_view :: < TestTableView > ( ) . await ;
60
61
61
62
App :: set_window_size ( ( 1000 , 1000 ) ) ;
62
63
63
- //record_ui_test().await;
64
+ wait_for_next_frame ( ) . await ;
65
+ wait_for_next_frame ( ) . await ;
66
+ wait_for_next_frame ( ) . await ;
67
+
68
+ assert_eq ! (
69
+ view. table. scroll. subviews( ) . last( ) . unwrap( ) . downcast:: <Label >( ) . unwrap( ) . text( ) ,
70
+ "Cell number: 26"
71
+ ) ;
72
+
73
+ inject_touches (
74
+ "
75
+ 865 126 m
76
+ 877 111 m
77
+ 745 74 m
78
+ 680 41 m
79
+ 691 28 m
80
+ 696 28 m
81
+ 699 27 m
82
+ 699 27 b
83
+ 698 36 m
84
+ 697 66 m
85
+ 697 123 m
86
+ 694 186 m
87
+ 693 228 m
88
+ 692 272 m
89
+ 692 323 m
90
+ 693 384 m
91
+ 696 422 m
92
+ 701 473 m
93
+ 707 536 m
94
+ 710 653 m
95
+ 707 736 m
96
+ 698 783 m
97
+ 691 820 m
98
+ 685 868 m
99
+ 678 925 m
100
+ 676 959 m
101
+ 675 978 m
102
+ 674 994 m
103
+ 674 1003 m
104
+ 672 994 e
105
+ 669 983 m
106
+ 678 896 m
107
+ " ,
108
+ )
109
+ . await ;
110
+
111
+ assert_eq ! (
112
+ view. table. scroll. subviews( ) . last( ) . unwrap( ) . downcast:: <Label >( ) . unwrap( ) . text( ) ,
113
+ "Cell number: 2000000"
114
+ ) ;
115
+
116
+ debug ! ( "Table view test: OK" ) ;
64
117
65
118
Ok ( ( ) )
66
119
}
0 commit comments