]> gitweb.factorcode.org Git - factor.git/blob - basis/ui/gadgets/tables/tables-tests.factor
b92f72a2dd97327709a933a4337b98bf1cfa18b0
[factor.git] / basis / ui / gadgets / tables / tables-tests.factor
1 IN: ui.gadgets.tables.tests
2 USING: ui.gadgets.tables ui.gadgets.scrollers ui.gadgets.debug accessors
3 models namespaces tools.test kernel combinators prettyprint arrays ;
4
5 SINGLETON: test-renderer
6
7 M: test-renderer row-columns drop ;
8
9 M: test-renderer column-titles drop { "First" "Last" } ;
10
11 : test-table ( -- table )
12     {
13         { "Britney" "Spears" }
14         { "Justin" "Timberlake" }
15         { "Don" "Stewart" }
16     } <model> test-renderer <table> ;
17
18 [ ] [
19     test-table "table" set
20 ] unit-test
21
22 [ ] [
23     "table" get <scroller> "scroller" set
24 ] unit-test
25
26 [ { "Justin" "Timberlake" } { "Britney" "Spears" } ] [
27     test-table t >>selection-required? dup [
28         {
29             [ 1 select-row ]
30             [
31                 model>> {
32                     { "Justin" "Timberlake" }
33                     { "Britney" "Spears" }
34                     { "Don" "Stewart" }
35                 } swap set-model
36             ]
37             [ selected-row drop ]
38             [
39                 model>> {
40                     { "Britney" "Spears" }
41                     { "Don" "Stewart" }
42                 } swap set-model
43             ]
44             [ selected-row drop ]
45         } cleave
46     ] with-grafted-gadget
47 ] unit-test
48
49 SINGLETON: silly-renderer
50
51 M: silly-renderer row-columns drop unparse 1array ;
52
53 M: silly-renderer column-titles drop { "Foo" } ;
54
55 : test-table-2 ( -- table )
56     { 1 2 f } <model> silly-renderer <table> ;
57
58 [ f f ] [
59     test-table dup [
60         selected-row
61     ] with-grafted-gadget
62 ] unit-test