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 tools.test.ui slots.private
5 threads arrays generic threads accessors listener math
6 calendar concurrency.promises io ui.tools.common ;
7 IN: ui.tools.listener.tests
9 \ <interactor> must-infer
12 [ ] [ <pane> <pane-stream> <interactor> "interactor" set ] unit-test
14 [ ] [ "interactor" get register-self ] unit-test
16 [ ] [ "[ 1 2 3" "interactor" get set-editor-string ] unit-test
18 [ ] [ <promise> "promise" set ] unit-test
21 self "interactor" get (>>thread)
22 "interactor" get stream-read-quot "promise" get fulfill
23 ] "Interactor test" spawn drop
25 ! This should not throw an exception
26 [ ] [ "interactor" get evaluate-input ] unit-test
28 [ ] [ [ "interactor" get interactor-busy? ] [ yield ] [ ] while ] unit-test
30 [ ] [ "[ 1 2 3 ]" "interactor" get set-editor-string ] unit-test
32 [ ] [ "interactor" get evaluate-input ] unit-test
34 [ [ [ 1 2 3 ] ] ] [ "promise" get 5 seconds ?promise-timeout ] unit-test
35 ] with-interactive-vocabs
38 [ ] [ <pane> <pane-stream> <interactor> "interactor" set ] unit-test
40 [ ] [ "interactor" get register-self ] unit-test
42 [ ] [ <promise> "promise" set ] unit-test
45 self "interactor" get (>>thread)
46 "interactor" get stream-readln "promise" get fulfill
47 ] "Interactor test" spawn drop
49 [ ] [ "hi" "interactor" get set-editor-string ] unit-test
51 [ ] [ [ "interactor" get interactor-busy? ] [ yield ] [ ] while ] unit-test
53 [ ] [ "interactor" get evaluate-input ] unit-test
55 [ "hi" ] [ "promise" get 5 seconds ?promise-timeout ] unit-test
56 ] with-interactive-vocabs
59 [ ] [ <pane> <pane-stream> <interactor> "interactor" set ] unit-test
61 [ ] [ [ "interactor" get stream-read-quot drop ] "A" spawn drop ] unit-test
63 [ ] [ [ "interactor" get stream-read-quot drop ] "B" spawn drop ] unit-test
65 [ ] [ 1 seconds sleep ] unit-test
67 [ ] [ "interactor" get interactor-eof ] unit-test
69 [ ] [ <pane> <pane-stream> <interactor> "interactor" set ] unit-test
71 : text "Hello world.\nThis is a test." ;
73 [ ] [ text "interactor" get set-editor-string ] unit-test
75 [ ] [ <promise> "promise" set ] unit-test
79 "interactor" get register-self
80 "interactor" get contents "promise" get fulfill
84 [ ] [ 100 milliseconds sleep ] unit-test
86 [ ] [ "interactor" get evaluate-input ] unit-test
88 [ ] [ 100 milliseconds sleep ] unit-test
90 [ ] [ "interactor" get interactor-eof ] unit-test
92 [ t ] [ "promise" get 2 seconds ?promise-timeout text = ] unit-test
94 [ ] [ <pane> <pane-stream> <interactor> "interactor" set ] unit-test
96 [ ] [ text "interactor" get set-editor-string ] unit-test
98 [ ] [ <promise> "promise" set ] unit-test
102 "interactor" get register-self
103 "interactor" get stream-read1 "promise" get fulfill
107 [ ] [ 100 milliseconds sleep ] unit-test
109 [ ] [ "interactor" get evaluate-input ] unit-test
111 [ CHAR: H ] [ "promise" get 2 seconds ?promise-timeout ] unit-test
113 [ ] [ <listener-gadget> [ ] with-grafted-gadget ] unit-test
115 [ ] [ <listener-gadget> "listener" set ] unit-test
118 <pane> <interactor> "i" set
120 [ t ] [ "i" get interactor? ] unit-test
122 [ ] [ "SYMBOL:" "i" get set-editor-string ] unit-test
125 "i" get [ { "SYMBOL:" } parse-lines ] [ go-to-error ] recover
129 "i" get model>> doc-end
130 "i" get editor-caret =
133 ! Race condition discovered by SimonRC
136 "listener" get input>>
137 [ stream-read-quot drop ]
138 [ stream-read-quot drop ] bi
139 ] "OH, HAI" spawn drop
142 [ ] [ "listener" get clear-output ] unit-test
144 [ ] [ "listener" get restart-listener ] unit-test
146 [ ] [ 1 seconds sleep ] unit-test
148 [ ] [ "listener" get com-end ] unit-test
149 ] with-grafted-gadget
151 [ ] [ \ + <pane> <interactor> interactor-use use-if-necessary ] unit-test
153 [ ] [ <listener-gadget> "l" set ] unit-test
154 [ ] [ "l" get com-scroll-up ] unit-test
155 [ ] [ "l" get com-scroll-down ] unit-test
156 [ ] [ "l" get hide-popup ] unit-test
157 [ ] [ <gadget> "l" get show-popup ] unit-test
158 [ ] [ "l" get hide-popup ] unit-test
161 <gadget> "l" get show-popup
162 <gadget> "l" get show-popup