]> gitweb.factorcode.org Git - factor.git/blob - basis/ui/tools/listener/listener-tests.factor
Language change: tuple slot setter words with stack effect ( value object -- ) are...
[factor.git] / basis / ui / tools / listener / listener-tests.factor
1 USING: continuations documents
2 ui.tools.listener hashtables kernel namespaces parser sequences
3 tools.test ui.commands ui.gadgets ui.gadgets.editors
4 ui.gadgets.panes vocabs words ui.gadgets.debug slots.private
5 arrays generic threads accessors listener math
6 calendar concurrency.promises io ui.tools.common ;
7 IN: ui.tools.listener.tests
8
9 [
10     [ ] [ <interactor> <pane> <pane-stream> >>output "interactor" set ] unit-test
11
12     [ ] [ "interactor" get register-self ] unit-test
13
14     [ ] [ "[ 1 2 3" "interactor" get set-editor-string ] unit-test
15
16     [ ] [ <promise> "promise" set ] unit-test
17
18     [
19         self "interactor" get thread<<
20         "interactor" get stream-read-quot "promise" get fulfill
21     ] "Interactor test" spawn drop
22
23     ! This should not throw an exception
24     [ ] [ "interactor" get evaluate-input ] unit-test
25
26     [ ] [ [ "interactor" get interactor-busy? ] [ yield ] while ] unit-test
27
28     [ ] [ "[ 1 2 3 ]" "interactor" get set-editor-string ] unit-test
29
30     [ ] [ "interactor" get evaluate-input ] unit-test
31
32     [ [ [ 1 2 3 ] ] ] [ "promise" get 5 seconds ?promise-timeout ] unit-test
33 ] with-interactive-vocabs
34
35 [
36     [ ] [ <interactor> <pane> <pane-stream> >>output "interactor" set ] unit-test
37
38     [ ] [ "interactor" get register-self ] unit-test
39
40     [ ] [ <promise> "promise" set ] unit-test
41
42     [
43         self "interactor" get thread<<
44         "interactor" get stream-readln "promise" get fulfill
45     ] "Interactor test" spawn drop
46
47     [ ] [ "hi" "interactor" get set-editor-string ] unit-test
48
49     [ ] [ [ "interactor" get interactor-busy? ] [ yield ] while ] unit-test
50
51     [ ] [ "interactor" get evaluate-input ] unit-test
52
53     [ "hi" ] [ "promise" get 5 seconds ?promise-timeout ] unit-test
54 ] with-interactive-vocabs
55
56 ! Hang
57 [ ] [ <interactor> <pane> <pane-stream> >>output "interactor" set ] unit-test
58
59 [ ] [ [ "interactor" get stream-read-quot drop ] "A" spawn drop ] unit-test
60
61 [ ] [ [ "interactor" get stream-read-quot drop ] "B" spawn drop ] unit-test
62
63 [ ] [ 1 seconds sleep ] unit-test
64
65 [ ] [ "interactor" get interactor-eof ] unit-test
66
67 [ ] [ <interactor> <pane> <pane-stream> >>output "interactor" set ] unit-test
68
69 CONSTANT: text "Hello world.\nThis is a test."
70
71 [ ] [ text "interactor" get set-editor-string ] unit-test
72
73 [ ] [ <promise> "promise" set ] unit-test
74
75 [ ] [
76     [
77         "interactor" get register-self
78         "interactor" get stream-contents "promise" get fulfill
79     ] in-thread
80 ] unit-test
81
82 [ ] [ 100 milliseconds sleep ] unit-test
83
84 [ ] [ "interactor" get evaluate-input ] unit-test
85
86 [ ] [ 100 milliseconds sleep ] unit-test
87     
88 [ ] [ "interactor" get interactor-eof ] unit-test
89
90 [ t ] [ "promise" get 2 seconds ?promise-timeout text = ] unit-test
91
92 [ ] [ <interactor> <pane> <pane-stream> >>output "interactor" set ] unit-test
93
94 [ ] [ text "interactor" get set-editor-string ] unit-test
95
96 [ ] [ <promise> "promise" set ] unit-test
97
98 [ ] [
99     [
100         "interactor" get register-self
101         "interactor" get stream-read1 "promise" get fulfill
102     ] in-thread
103 ] unit-test
104
105 [ ] [ 100 milliseconds sleep ] unit-test
106
107 [ ] [ "interactor" get evaluate-input ] unit-test
108
109 [ CHAR: H ] [ "promise" get 2 seconds ?promise-timeout ] unit-test
110
111 [ ] [ <listener-gadget> [ ] with-grafted-gadget ] unit-test
112
113 [ ] [ <listener-gadget> "listener" set ] unit-test
114
115 "listener" get [
116     <interactor> <pane> <pane-stream> >>output "i" set
117
118     [ t ] [ "i" get interactor? ] unit-test
119
120     [ ] [ "SYMBOL:" "i" get set-editor-string ] unit-test
121
122     [ ] [
123         "i" get [ { "SYMBOL:" } parse-lines ] [ go-to-error ] recover
124     ] unit-test
125     
126     [ t ] [
127         "i" get model>> doc-end
128         "i" get editor-caret =
129     ] unit-test
130
131     ! Race condition discovered by SimonRC
132     [ ] [
133         [
134             "listener" get input>>
135             [ stream-read-quot drop ]
136             [ stream-read-quot drop ] bi
137         ] "OH, HAI" spawn drop
138     ] unit-test
139
140     [ ] [ "listener" get clear-output ] unit-test
141
142     [ ] [ "listener" get restart-listener ] unit-test
143
144     [ ] [ 1 seconds sleep ] unit-test
145
146     [ ] [ "listener" get com-end ] unit-test
147 ] with-grafted-gadget
148
149 [ ] [ \ + <interactor> manifest>> use-if-necessary ] unit-test
150
151 [ ] [ <listener-gadget> "l" set ] unit-test
152 [ ] [ "l" get com-scroll-up ] unit-test
153 [ ] [ "l" get com-scroll-down ] unit-test