4
4
#
5
5
6
6
defmodule Scenic.ViewPort.InputTest do
7
- use ExUnit.Case , async: false
7
+ use Scenic.Test.DataCase , async: false
8
8
doctest Scenic.ViewPort.Input
9
9
10
10
alias Scenic.ViewPort
@@ -46,86 +46,86 @@ defmodule Scenic.ViewPort.InputTest do
46
46
end
47
47
48
48
test "Test that capture/release/list_captures work" , % { vp: vp } do
49
- assert Input . fetch_captures ( vp ) == { :ok , [ ] }
49
+ assert Input . fetch_captures ( vp ) ~> { :ok , sorted_list ( [ ] ) }
50
50
51
51
:ok = Input . capture ( vp , :cursor_pos )
52
- assert Input . fetch_captures ( vp ) == { :ok , [ :cursor_pos ] }
52
+ assert Input . fetch_captures ( vp ) ~> { :ok , sorted_list ( [ :cursor_pos ] ) }
53
53
54
54
:ok = Input . capture ( vp , [ :key , :codepoint ] )
55
- assert Input . fetch_captures ( vp ) == { :ok , [ :key , :cursor_pos , :codepoint ] }
55
+ assert Input . fetch_captures ( vp ) ~> { :ok , sorted_list ( [ :key , :cursor_pos , :codepoint ] ) }
56
56
57
57
:ok = Input . release ( vp , :key )
58
- assert Input . fetch_captures ( vp ) == { :ok , [ :cursor_pos , :codepoint ] }
58
+ assert Input . fetch_captures ( vp ) ~> { :ok , sorted_list ( [ :cursor_pos , :codepoint ] ) }
59
59
60
60
:ok = Input . release ( vp , :all )
61
- assert Input . fetch_captures ( vp ) == { :ok , [ ] }
61
+ assert Input . fetch_captures ( vp ) ~> { :ok , sorted_list ( [ ] ) }
62
62
end
63
63
64
64
test "list_captures and list_captures! work" , % { vp: vp } do
65
- assert Input . fetch_captures ( vp ) == { :ok , [ ] }
66
- assert Input . fetch_captures! ( vp ) == { :ok , [ ] }
65
+ assert Input . fetch_captures ( vp ) ~> { :ok , sorted_list ( [ ] ) }
66
+ assert Input . fetch_captures! ( vp ) ~> { :ok , sorted_list ( [ ] ) }
67
67
68
68
Agent . start ( fn ->
69
69
:ok = Input . capture ( vp , [ :codepoint ] )
70
70
end )
71
71
72
- assert Input . fetch_captures ( vp ) == { :ok , [ ] }
73
- assert Input . fetch_captures! ( vp ) == { :ok , [ :codepoint ] }
72
+ assert Input . fetch_captures ( vp ) ~> { :ok , sorted_list ( [ ] ) }
73
+ assert Input . fetch_captures! ( vp ) ~> { :ok , sorted_list ( [ :codepoint ] ) }
74
74
75
75
:ok = Input . capture ( vp , :cursor_pos )
76
- assert Input . fetch_captures ( vp ) == { :ok , [ :cursor_pos ] }
77
- assert Input . fetch_captures! ( vp ) == { :ok , [ :codepoint , :cursor_pos ] }
76
+ assert Input . fetch_captures ( vp ) ~> { :ok , sorted_list ( [ :cursor_pos ] ) }
77
+ assert Input . fetch_captures! ( vp ) ~> { :ok , sorted_list ( [ :codepoint , :cursor_pos ] ) }
78
78
end
79
79
80
80
test "captures are cleaned up when the owning process stops" , % { vp: vp } do
81
81
# set up a capture
82
82
:ok = Input . capture ( vp , [ :codepoint ] )
83
- assert Input . fetch_captures! ( vp ) == { :ok , [ :codepoint ] }
83
+ assert Input . fetch_captures! ( vp ) ~> { :ok , sorted_list ( [ :codepoint ] ) }
84
84
85
85
# fake indicate this process went down
86
86
Process . send ( vp . pid , { :DOWN , make_ref ( ) , :process , self ( ) , :test } , [ ] )
87
87
88
- assert Input . fetch_captures! ( vp ) == { :ok , [ ] }
88
+ assert Input . fetch_captures! ( vp ) ~> { :ok , sorted_list ( [ ] ) }
89
89
end
90
90
91
91
test "Test that request/unrequest/list_requests work" , % { vp: vp } do
92
- assert Input . fetch_requests ( vp ) == { :ok , [ ] }
92
+ assert Input . fetch_requests ( vp ) ~> { :ok , sorted_list ( [ ] ) }
93
93
94
94
:ok = Input . request ( vp , :cursor_pos )
95
- assert Input . fetch_requests ( vp ) == { :ok , [ :cursor_pos ] }
95
+ assert Input . fetch_requests ( vp ) ~> { :ok , sorted_list ( [ :cursor_pos ] ) }
96
96
97
97
:ok = Input . request ( vp , [ :key , :codepoint ] )
98
- assert Input . fetch_requests ( vp ) == { :ok , [ :key , :cursor_pos , :codepoint ] }
98
+ assert Input . fetch_requests ( vp ) ~> { :ok , sorted_list ( [ :key , :cursor_pos , :codepoint ] ) }
99
99
100
100
:ok = Input . unrequest ( vp , :key )
101
- assert Input . fetch_requests ( vp ) == { :ok , [ :cursor_pos , :codepoint ] }
101
+ assert Input . fetch_requests ( vp ) ~> { :ok , sorted_list ( [ :cursor_pos , :codepoint ] ) }
102
102
103
103
:ok = Input . unrequest ( vp , :all )
104
- assert Input . fetch_requests ( vp ) == { :ok , [ ] }
104
+ assert Input . fetch_requests ( vp ) ~> { :ok , sorted_list ( [ ] ) }
105
105
end
106
106
107
107
test "fetch_requests and fetch_requests! work" , % { vp: vp } do
108
- assert Input . fetch_requests ( vp ) == { :ok , [ ] }
109
- assert Input . fetch_requests! ( vp ) == { :ok , [ ] }
108
+ assert Input . fetch_requests ( vp ) ~> { :ok , sorted_list ( [ ] ) }
109
+ assert Input . fetch_requests! ( vp ) ~> { :ok , sorted_list ( [ ] ) }
110
110
111
111
Agent . start ( fn ->
112
112
:ok = Input . request ( vp , [ :codepoint ] )
113
113
end )
114
114
115
- assert Input . fetch_captures ( vp ) == { :ok , [ ] }
116
- assert Input . fetch_requests! ( vp ) == { :ok , [ :codepoint ] }
115
+ assert Input . fetch_captures ( vp ) ~> { :ok , sorted_list ( [ ] ) }
116
+ assert Input . fetch_requests! ( vp ) ~> { :ok , sorted_list ( [ :codepoint ] ) }
117
117
118
118
:ok = Input . request ( vp , :cursor_pos )
119
- assert Input . fetch_requests ( vp ) == { :ok , [ :cursor_pos ] }
120
- assert Input . fetch_requests! ( vp ) == { :ok , [ :codepoint , :cursor_pos ] }
119
+ assert Input . fetch_requests ( vp ) ~> { :ok , sorted_list ( [ :cursor_pos ] ) }
120
+ assert Input . fetch_requests! ( vp ) ~> { :ok , sorted_list ( [ :codepoint , :cursor_pos ] ) }
121
121
end
122
122
123
123
test "requests are cleaned up with the owning process stops" , % { vp: vp , scene: scene } do
124
124
:ok = Input . request ( vp , :cursor_pos )
125
125
Scenic.Scene . request_input ( scene , :codepoint )
126
- assert Input . fetch_requests! ( vp ) == { :ok , [ :codepoint , :cursor_pos ] }
126
+ assert Input . fetch_requests! ( vp ) ~> { :ok , sorted_list ( [ :codepoint , :cursor_pos ] ) }
127
127
Scenic.Scene . stop ( scene )
128
- assert Input . fetch_requests! ( vp ) == { :ok , [ :cursor_pos ] }
128
+ assert Input . fetch_requests! ( vp ) ~> { :ok , sorted_list ( [ :cursor_pos ] ) }
129
129
end
130
130
131
131
# ----------------
@@ -135,7 +135,7 @@ defmodule Scenic.ViewPort.InputTest do
135
135
% { vp: vp , scene: scene } do
136
136
# make like a driver
137
137
GenServer . cast ( vp . pid , { :register_driver , self ( ) } )
138
- assert Input . fetch_requests! ( vp ) == { :ok , [ ] }
138
+ assert Input . fetch_requests! ( vp ) ~> { :ok , sorted_list ( [ ] ) }
139
139
140
140
graph =
141
141
Scenic.Graph . build ( )
@@ -162,7 +162,7 @@ defmodule Scenic.ViewPort.InputTest do
162
162
} do
163
163
# make like a driver
164
164
GenServer . cast ( vp . pid , { :register_driver , self ( ) } )
165
- assert Input . fetch_requests! ( vp ) == { :ok , [ ] }
165
+ assert Input . fetch_requests! ( vp ) ~> { :ok , sorted_list ( [ ] ) }
166
166
167
167
graph =
168
168
Scenic.Graph . build ( )
@@ -179,7 +179,7 @@ defmodule Scenic.ViewPort.InputTest do
179
179
} do
180
180
# make like a driver
181
181
GenServer . cast ( vp . pid , { :register_driver , self ( ) } )
182
- assert Input . fetch_requests! ( vp ) == { :ok , [ ] }
182
+ assert Input . fetch_requests! ( vp ) ~> { :ok , sorted_list ( [ ] ) }
183
183
184
184
graph =
185
185
Scenic.Graph . build ( )
@@ -193,7 +193,7 @@ defmodule Scenic.ViewPort.InputTest do
193
193
test ":cursor_pos only the input listed in a input style is requested" , % { vp: vp , scene: scene } do
194
194
# make like a driver
195
195
GenServer . cast ( vp . pid , { :register_driver , self ( ) } )
196
- assert Input . fetch_requests! ( vp ) == { :ok , [ ] }
196
+ assert Input . fetch_requests! ( vp ) ~> { :ok , sorted_list ( [ ] ) }
197
197
198
198
graph =
199
199
Scenic.Graph . build ( )
@@ -333,11 +333,11 @@ defmodule Scenic.ViewPort.InputTest do
333
333
# specific input types
334
334
335
335
test "cursor_scroll request works" , % { vp: vp } do
336
- assert Input . fetch_captures! ( vp ) == { :ok , [ ] }
337
- assert Input . fetch_requests ( vp ) == { :ok , [ ] }
336
+ assert Input . fetch_captures! ( vp ) ~> { :ok , sorted_list ( [ ] ) }
337
+ assert Input . fetch_requests ( vp ) ~> { :ok , sorted_list ( [ ] ) }
338
338
339
339
:ok = Input . request ( vp , :cursor_scroll )
340
- assert Input . fetch_requests ( vp ) == { :ok , [ :cursor_scroll ] }
340
+ assert Input . fetch_requests ( vp ) ~> { :ok , sorted_list ( [ :cursor_scroll ] ) }
341
341
342
342
assert Input . send ( vp , { :cursor_scroll , { { 1 , 2 } , { 3 , 4 } } } ) == :ok
343
343
@@ -348,11 +348,11 @@ defmodule Scenic.ViewPort.InputTest do
348
348
end
349
349
350
350
test "cursor_scroll capture works" , % { vp: vp } do
351
- assert Input . fetch_captures ( vp ) == { :ok , [ ] }
352
- assert Input . fetch_requests ( vp ) == { :ok , [ ] }
351
+ assert Input . fetch_captures ( vp ) ~> { :ok , sorted_list ( [ ] ) }
352
+ assert Input . fetch_requests ( vp ) ~> { :ok , sorted_list ( [ ] ) }
353
353
354
354
:ok = Input . capture ( vp , :cursor_scroll )
355
- assert Input . fetch_captures ( vp ) == { :ok , [ :cursor_scroll ] }
355
+ assert Input . fetch_captures ( vp ) ~> { :ok , sorted_list ( [ :cursor_scroll ] ) }
356
356
357
357
assert Input . send ( vp , { :cursor_scroll , { { 1 , 2 } , { 3 , 4 } } } ) == :ok
358
358
@@ -363,11 +363,11 @@ defmodule Scenic.ViewPort.InputTest do
363
363
end
364
364
365
365
test "cursor_pos request works" , % { vp: vp } do
366
- assert Input . fetch_captures! ( vp ) == { :ok , [ ] }
367
- assert Input . fetch_requests ( vp ) == { :ok , [ ] }
366
+ assert Input . fetch_captures! ( vp ) ~> { :ok , sorted_list ( [ ] ) }
367
+ assert Input . fetch_requests ( vp ) ~> { :ok , sorted_list ( [ ] ) }
368
368
369
369
:ok = Input . request ( vp , :cursor_pos )
370
- assert Input . fetch_requests ( vp ) == { :ok , [ :cursor_pos ] }
370
+ assert Input . fetch_requests ( vp ) ~> { :ok , sorted_list ( [ :cursor_pos ] ) }
371
371
372
372
assert Input . send ( vp , { :cursor_pos , { 1 , 2 } } ) == :ok
373
373
@@ -378,11 +378,11 @@ defmodule Scenic.ViewPort.InputTest do
378
378
end
379
379
380
380
test "cursor_pos capture works" , % { vp: vp } do
381
- assert Input . fetch_captures ( vp ) == { :ok , [ ] }
382
- assert Input . fetch_requests ( vp ) == { :ok , [ ] }
381
+ assert Input . fetch_captures ( vp ) ~> { :ok , sorted_list ( [ ] ) }
382
+ assert Input . fetch_requests ( vp ) ~> { :ok , sorted_list ( [ ] ) }
383
383
384
384
:ok = Input . capture ( vp , :cursor_pos )
385
- assert Input . fetch_captures ( vp ) == { :ok , [ :cursor_pos ] }
385
+ assert Input . fetch_captures ( vp ) ~> { :ok , sorted_list ( [ :cursor_pos ] ) }
386
386
387
387
assert Input . send ( vp , { :cursor_pos , { 1 , 2 } } ) == :ok
388
388
@@ -396,7 +396,7 @@ defmodule Scenic.ViewPort.InputTest do
396
396
# drivers are sent input updates
397
397
398
398
test "drivers are sent requested input updates" , % { vp: vp } do
399
- assert Input . fetch_requests! ( vp ) == { :ok , [ ] }
399
+ assert Input . fetch_requests! ( vp ) ~> { :ok , sorted_list ( [ ] ) }
400
400
:ok = Input . request ( vp , :cursor_button )
401
401
402
402
GenServer . cast ( vp . pid , { :register_driver , self ( ) } )
@@ -418,7 +418,7 @@ defmodule Scenic.ViewPort.InputTest do
418
418
test "drivers are sent requested input updates when a scene goes down" , % { vp: vp , scene: scene } do
419
419
Scenic.Scene . request_input ( scene , :cursor_button )
420
420
421
- assert Input . fetch_requests! ( vp ) == { :ok , [ :cursor_button ] }
421
+ assert Input . fetch_requests! ( vp ) ~> { :ok , sorted_list ( [ :cursor_button ] ) }
422
422
423
423
GenServer . cast ( vp . pid , { :register_driver , self ( ) } )
424
424
assert_receive ( { :_request_input_ , [ :cursor_button ] } , 100 )
@@ -432,8 +432,8 @@ defmodule Scenic.ViewPort.InputTest do
432
432
test "drivers are sent captured input updates" , % { vp: vp , scene: scene } do
433
433
Scenic.Scene . request_input ( scene , :cursor_button )
434
434
435
- assert Input . fetch_captures! ( vp ) == { :ok , [ ] }
436
- assert Input . fetch_requests! ( vp ) == { :ok , [ :cursor_button ] }
435
+ assert Input . fetch_captures! ( vp ) ~> { :ok , sorted_list ( [ ] ) }
436
+ assert Input . fetch_requests! ( vp ) ~> { :ok , sorted_list ( [ :cursor_button ] ) }
437
437
438
438
GenServer . cast ( vp . pid , { :register_driver , self ( ) } )
439
439
assert_receive ( { :_request_input_ , [ :cursor_button ] } , 100 )
@@ -454,7 +454,7 @@ defmodule Scenic.ViewPort.InputTest do
454
454
test "drivers are sent captured input updates when a scene goes down" , % { vp: vp , scene: scene } do
455
455
Scenic.Scene . request_input ( scene , :cursor_button )
456
456
457
- assert Input . fetch_requests! ( vp ) == { :ok , [ :cursor_button ] }
457
+ assert Input . fetch_requests! ( vp ) ~> { :ok , sorted_list ( [ :cursor_button ] ) }
458
458
self = self ( )
459
459
# have to have an agent do the capture so that it comes from a different pid than this
460
460
# test, which is pretending to be a driver...
@@ -479,7 +479,7 @@ defmodule Scenic.ViewPort.InputTest do
479
479
480
480
# should get an update when the owning pid goes down
481
481
# calling fetch_requests! makes sure the vp has processed the agent DOWN message
482
- assert Input . fetch_requests! ( vp ) == { :ok , [ :cursor_button ] }
482
+ assert Input . fetch_requests! ( vp ) ~> { :ok , sorted_list ( [ :cursor_button ] ) }
483
483
assert_receive ( { :_request_input_ , [ :cursor_button ] } , 100 )
484
484
end
485
485
0 commit comments