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
10 [ ] [ <interactor> <pane> <pane-stream> >>output "interactor" set ] unit-test
12 [ ] [ "interactor" get register-self ] unit-test
14 [ ] [ "[ 1 2 3" "interactor" get set-editor-string ] unit-test
16 [ ] [ <promise> "promise" set ] unit-test
19 self "interactor" get (>>thread)
20 "interactor" get stream-read-quot "promise" get fulfill
21 ] "Interactor test" spawn drop
23 ! This should not throw an exception
24 [ ] [ "interactor" get evaluate-input ] unit-test
26 [ ] [ [ "interactor" get interactor-busy? ] [ yield ] while ] unit-test
28 [ ] [ "[ 1 2 3 ]" "interactor" get set-editor-string ] unit-test
30 [ ] [ "interactor" get evaluate-input ] unit-test
32 [ [ [ 1 2 3 ] ] ] [ "promise" get 5 seconds ?promise-timeout ] unit-test
33 ] with-interactive-vocabs
36 [ ] [ <interactor> <pane> <pane-stream> >>output "interactor" set ] unit-test
38 [ ] [ "interactor" get register-self ] unit-test
40 [ ] [ <promise> "promise" set ] unit-test
43 self "interactor" get (>>thread)
44 "interactor" get stream-readln "promise" get fulfill
45 ] "Interactor test" spawn drop
47 [ ] [ "hi" "interactor" get set-editor-string ] unit-test
49 [ ] [ [ "interactor" get interactor-busy? ] [ yield ] while ] unit-test
51 [ ] [ "interactor" get evaluate-input ] unit-test
53 [ "hi" ] [ "promise" get 5 seconds ?promise-timeout ] unit-test
54 ] with-interactive-vocabs
57 [ ] [ <interactor> <pane> <pane-stream> >>output "interactor" set ] unit-test
59 [ ] [ [ "interactor" get stream-read-quot drop ] "A" spawn drop ] unit-test
61 [ ] [ [ "interactor" get stream-read-quot drop ] "B" spawn drop ] unit-test
63 [ ] [ 1 seconds sleep ] unit-test
65 [ ] [ "interactor" get interactor-eof ] unit-test
67 [ ] [ <interactor> <pane> <pane-stream> >>output "interactor" set ] unit-test
69 CONSTANT: text "Hello world.\nThis is a test."
71 [ ] [ text "interactor" get set-editor-string ] unit-test
73 [ ] [ <promise> "promise" set ] unit-test
77 "interactor" get register-self
78 "interactor" get stream-contents "promise" get fulfill
82 [ ] [ 100 milliseconds sleep ] unit-test
84 [ ] [ "interactor" get evaluate-input ] unit-test
86 [ ] [ 100 milliseconds sleep ] unit-test
88 [ ] [ "interactor" get interactor-eof ] unit-test
90 [ t ] [ "promise" get 2 seconds ?promise-timeout text = ] unit-test
92 [ ] [ <interactor> <pane> <pane-stream> >>output "interactor" set ] unit-test
94 [ ] [ text "interactor" get set-editor-string ] unit-test
96 [ ] [ <promise> "promise" set ] unit-test
100 "interactor" get register-self
101 "interactor" get stream-read1 "promise" get fulfill
105 [ ] [ 100 milliseconds sleep ] unit-test
107 [ ] [ "interactor" get evaluate-input ] unit-test
109 [ CHAR: H ] [ "promise" get 2 seconds ?promise-timeout ] unit-test
111 [ ] [ <listener-gadget> [ ] with-grafted-gadget ] unit-test
113 [ ] [ <listener-gadget> "listener" set ] unit-test
116 <interactor> <pane> <pane-stream> >>output "i" set
118 [ t ] [ "i" get interactor? ] unit-test
120 [ ] [ "SYMBOL:" "i" get set-editor-string ] unit-test
123 "i" get [ { "SYMBOL:" } parse-lines ] [ go-to-error ] recover
127 "i" get model>> doc-end
128 "i" get editor-caret =
131 ! Race condition discovered by SimonRC
134 "listener" get input>>
135 [ stream-read-quot drop ]
136 [ stream-read-quot drop ] bi
137 ] "OH, HAI" spawn drop
140 [ ] [ "listener" get clear-output ] unit-test
142 [ ] [ "listener" get restart-listener ] unit-test
144 [ ] [ 1 seconds sleep ] unit-test
146 [ ] [ "listener" get com-end ] unit-test
147 ] with-grafted-gadget
149 [ ] [ \ + <interactor> manifest>> use-if-necessary ] unit-test
151 [ ] [ <listener-gadget> "l" set ] unit-test
152 [ ] [ "l" get com-scroll-up ] unit-test
153 [ ] [ "l" get com-scroll-down ] unit-test