roku_builder 4.25.5 → 4.26.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/intergration/roku_builder/test_helper.rb +2 -3
- data/intergration/roku_builder/test_profiler.rb +1 -1
- data/lib/roku_builder/config_parser.rb +4 -5
- data/lib/roku_builder/device_manager.rb +100 -0
- data/lib/roku_builder/plugins/core.rb +3 -1
- data/lib/roku_builder/plugins/inspector.rb +36 -26
- data/lib/roku_builder/plugins/line_inspector.rb +27 -6
- data/lib/roku_builder/plugins/linker.rb +29 -22
- data/lib/roku_builder/plugins/loader.rb +36 -15
- data/lib/roku_builder/plugins/monitor.rb +19 -17
- data/lib/roku_builder/plugins/navigator.rb +40 -34
- data/lib/roku_builder/plugins/packager.rb +109 -92
- data/lib/roku_builder/plugins/profiler.rb +24 -15
- data/lib/roku_builder/plugins/tester.rb +15 -13
- data/lib/roku_builder/util.rb +39 -17
- data/lib/roku_builder/version.rb +1 -1
- data/lib/roku_builder.rb +3 -19
- data/roku_builder.gemspec +3 -2
- data/test/roku_builder/plugins/test_analyzer.rb +19 -0
- data/test/roku_builder/plugins/test_core.rb +2 -3
- data/test/roku_builder/plugins/test_inspector.rb +48 -8
- data/test/roku_builder/plugins/test_linker.rb +66 -10
- data/test/roku_builder/plugins/test_loader.rb +44 -15
- data/test/roku_builder/plugins/test_monitor.rb +33 -16
- data/test/roku_builder/plugins/test_navigator.rb +55 -14
- data/test/roku_builder/plugins/test_packager.rb +118 -34
- data/test/roku_builder/plugins/test_profiler.rb +153 -78
- data/test/roku_builder/plugins/test_tester.rb +20 -5
- data/test/roku_builder/test_device_manager.rb +187 -0
- data/test/roku_builder/test_files/analyzer_test/dont_use_hello_world.json +11 -0
- data/test/roku_builder/test_files/analyzer_test/linter_positive_match.json +13 -0
- data/test/roku_builder/test_helper.rb +6 -0
- data/test/roku_builder/test_roku_builder.rb +5 -42
- metadata +27 -6
@@ -9,10 +9,12 @@ module RokuBuilder
|
|
9
9
|
RokuBuilder.class_variable_set(:@@dev, false)
|
10
10
|
RokuBuilder.setup_plugins
|
11
11
|
register_plugins(Linker)
|
12
|
+
@device_manager = Minitest::Mock.new
|
12
13
|
@requests = []
|
13
14
|
end
|
14
15
|
def teardown
|
15
16
|
@requests.each {|req| remove_request_stub(req)}
|
17
|
+
@device_manager.verify
|
16
18
|
end
|
17
19
|
def test_linker_parse_options_long
|
18
20
|
parser = OptionParser.new
|
@@ -41,8 +43,14 @@ module RokuBuilder
|
|
41
43
|
options = {deeplink: 'a:A, b:B:C, d:a\b'}
|
42
44
|
config, options = build_config_options_objects(LinkerTest, options, false)
|
43
45
|
|
46
|
+
device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
|
47
|
+
@device_manager.expect(:reserve_device, device, no_lock: false)
|
48
|
+
@device_manager.expect(:release_device, nil, [device])
|
49
|
+
|
44
50
|
linker = Linker.new(config: config)
|
45
|
-
|
51
|
+
RokuBuilder.stub(:device_manager, @device_manager) do
|
52
|
+
linker.deeplink(options: options)
|
53
|
+
end
|
46
54
|
end
|
47
55
|
def test_linker_link_sideload
|
48
56
|
@requests.push(stub_request(:post, "http://192.168.0.100:8060/launch/dev?a=A&b=B:C&d=a%5Cb").
|
@@ -55,8 +63,14 @@ module RokuBuilder
|
|
55
63
|
options = {deeplink: 'a:A, b:B:C, d:a\b', working: true}
|
56
64
|
config, options = build_config_options_objects(LinkerTest, options, false)
|
57
65
|
|
66
|
+
device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
|
67
|
+
@device_manager.expect(:reserve_device, device, no_lock: false)
|
68
|
+
@device_manager.expect(:release_device, nil, [device])
|
69
|
+
|
58
70
|
linker = Linker.new(config: config)
|
59
|
-
|
71
|
+
RokuBuilder.stub(:device_manager, @device_manager) do
|
72
|
+
linker.deeplink(options: options)
|
73
|
+
end
|
60
74
|
end
|
61
75
|
def test_linker_link_sideload_current
|
62
76
|
@requests.push(stub_request(:post, "http://192.168.0.100:8060/launch/dev?a=A&b=B:C&d=a%5Cb").
|
@@ -72,8 +86,14 @@ module RokuBuilder
|
|
72
86
|
config, options = build_config_options_objects(LinkerTest, options, false)
|
73
87
|
end
|
74
88
|
|
89
|
+
device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
|
90
|
+
@device_manager.expect(:reserve_device, device, no_lock: false)
|
91
|
+
@device_manager.expect(:release_device, nil, [device])
|
92
|
+
|
75
93
|
linker = Linker.new(config: config)
|
76
|
-
|
94
|
+
RokuBuilder.stub(:device_manager, @device_manager) do
|
95
|
+
linker.deeplink(options: options)
|
96
|
+
end
|
77
97
|
end
|
78
98
|
def test_linker_link_app
|
79
99
|
@requests.push(stub_request(:post, "http://192.168.0.100:8060/launch/1234?a=A&b=B:C&d=a%5Cb").
|
@@ -82,8 +102,14 @@ module RokuBuilder
|
|
82
102
|
options = {deeplink: 'a:A, b:B:C, d:a\b', app_id: "1234"}
|
83
103
|
config, options = build_config_options_objects(LinkerTest, options, false)
|
84
104
|
|
105
|
+
device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
|
106
|
+
@device_manager.expect(:reserve_device, device, no_lock: false)
|
107
|
+
@device_manager.expect(:release_device, nil, [device])
|
108
|
+
|
85
109
|
linker = Linker.new(config: config)
|
86
|
-
|
110
|
+
RokuBuilder.stub(:device_manager, @device_manager) do
|
111
|
+
linker.deeplink(options: options)
|
112
|
+
end
|
87
113
|
end
|
88
114
|
def test_linker_link_nothing
|
89
115
|
@requests.push(stub_request(:post, "http://192.168.0.100:8060/launch/dev").
|
@@ -92,8 +118,14 @@ module RokuBuilder
|
|
92
118
|
options = {deeplink: ''}
|
93
119
|
config, options = build_config_options_objects(LinkerTest, options, false)
|
94
120
|
|
121
|
+
device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
|
122
|
+
@device_manager.expect(:reserve_device, device, no_lock: false)
|
123
|
+
@device_manager.expect(:release_device, nil, [device])
|
124
|
+
|
95
125
|
linker = Linker.new(config: config)
|
96
|
-
|
126
|
+
RokuBuilder.stub(:device_manager, @device_manager) do
|
127
|
+
linker.deeplink(options: options)
|
128
|
+
end
|
97
129
|
end
|
98
130
|
def test_linker_link_sideload_input
|
99
131
|
@requests.push(stub_request(:post, "http://192.168.0.100:8060/input?a=A&b=B:C&d=a%5Cb").
|
@@ -106,8 +138,14 @@ module RokuBuilder
|
|
106
138
|
options = {input: 'a:A, b:B:C, d:a\b', working: true}
|
107
139
|
config, options = build_config_options_objects(LinkerTest, options, false)
|
108
140
|
|
141
|
+
device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
|
142
|
+
@device_manager.expect(:reserve_device, device, no_lock: false)
|
143
|
+
@device_manager.expect(:release_device, nil, [device])
|
144
|
+
|
109
145
|
linker = Linker.new(config: config)
|
110
|
-
|
146
|
+
RokuBuilder.stub(:device_manager, @device_manager) do
|
147
|
+
linker.input(options: options)
|
148
|
+
end
|
111
149
|
end
|
112
150
|
def test_linker_link_app_input
|
113
151
|
@requests.push(stub_request(:post, "http://192.168.0.100:8060/input?a=A&b=B:C&d=a%5Cb").
|
@@ -116,8 +154,14 @@ module RokuBuilder
|
|
116
154
|
options = {input: 'a:A, b:B:C, d:a\b', app_id: "1234"}
|
117
155
|
config, options = build_config_options_objects(LinkerTest, options, false)
|
118
156
|
|
157
|
+
device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
|
158
|
+
@device_manager.expect(:reserve_device, device, no_lock: false)
|
159
|
+
@device_manager.expect(:release_device, nil, [device])
|
160
|
+
|
119
161
|
linker = Linker.new(config: config)
|
120
|
-
|
162
|
+
RokuBuilder.stub(:device_manager, @device_manager) do
|
163
|
+
linker.input(options: options)
|
164
|
+
end
|
121
165
|
end
|
122
166
|
def test_linker_link_nothing_input
|
123
167
|
@requests.push(stub_request(:post, "http://192.168.0.100:8060/input").
|
@@ -126,8 +170,14 @@ module RokuBuilder
|
|
126
170
|
options = {input: ''}
|
127
171
|
config, options = build_config_options_objects(LinkerTest, options, false)
|
128
172
|
|
173
|
+
device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
|
174
|
+
@device_manager.expect(:reserve_device, device, no_lock: false)
|
175
|
+
@device_manager.expect(:release_device, nil, [device])
|
176
|
+
|
129
177
|
linker = Linker.new(config: config)
|
130
|
-
|
178
|
+
RokuBuilder.stub(:device_manager, @device_manager) do
|
179
|
+
linker.input(options: options)
|
180
|
+
end
|
131
181
|
end
|
132
182
|
|
133
183
|
def test_linker_list
|
@@ -143,13 +193,19 @@ module RokuBuilder
|
|
143
193
|
options = {applist: true}
|
144
194
|
config, options = build_config_options_objects(LinkerTest, options, false)
|
145
195
|
|
196
|
+
device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
|
197
|
+
@device_manager.expect(:reserve_device, device, no_lock: false)
|
198
|
+
@device_manager.expect(:release_device, nil, [device])
|
199
|
+
|
146
200
|
linker = Linker.new(config: config)
|
147
201
|
|
148
202
|
print_count = 0
|
149
203
|
did_print = Proc.new { |msg| print_count+=1 }
|
150
204
|
|
151
|
-
|
152
|
-
linker.
|
205
|
+
RokuBuilder.stub(:device_manager, @device_manager) do
|
206
|
+
linker.stub(:printf, did_print) do
|
207
|
+
linker.applist(options: options)
|
208
|
+
end
|
153
209
|
end
|
154
210
|
|
155
211
|
assert_equal 6, print_count
|
@@ -10,14 +10,19 @@ module RokuBuilder
|
|
10
10
|
RokuBuilder.setup_plugins
|
11
11
|
register_plugins(Loader)
|
12
12
|
@config, @options = build_config_options_objects(LoaderTest, {sideload: true, working: true}, false)
|
13
|
+
RokuBuilder.class_variable_set(:@@config, @config)
|
14
|
+
RokuBuilder.class_variable_set(:@@options, @options)
|
13
15
|
@root_dir = @config.root_dir
|
14
|
-
@device_config = @config.
|
16
|
+
@device_config = @config.devices.first.last
|
15
17
|
FileUtils.cp(File.join(@root_dir, "manifest_template"), File.join(@root_dir, "manifest"))
|
16
18
|
@request_stubs = []
|
19
|
+
@device_manager = Minitest::Mock.new
|
20
|
+
@device = RokuBuilder::Device.new("roku", @config.raw[:devices][:roku])
|
17
21
|
end
|
18
22
|
def teardown
|
19
23
|
FileUtils.rm(File.join(@root_dir, "manifest"))
|
20
24
|
@request_stubs.each {|req| remove_request_stub(req)}
|
25
|
+
@device_manager.verify
|
21
26
|
end
|
22
27
|
def test_loader_parse_options_long
|
23
28
|
parser = OptionParser.new
|
@@ -47,9 +52,13 @@ module RokuBuilder
|
|
47
52
|
to_return(status: 200, body: "", headers: {}))
|
48
53
|
@request_stubs.push(stub_request(:post, "http://#{@device_config[:ip]}/plugin_install").
|
49
54
|
to_return(status: 200, body: "Install Success", headers: {}))
|
55
|
+
@device_manager.expect(:reserve_device, @device, no_lock: false)
|
56
|
+
@device_manager.expect(:release_device, nil, [@device])
|
50
57
|
|
51
|
-
|
52
|
-
|
58
|
+
RokuBuilder.stub(:device_manager, @device_manager) do
|
59
|
+
loader = Loader.new(config: @config)
|
60
|
+
loader.sideload(options: @options)
|
61
|
+
end
|
53
62
|
end
|
54
63
|
def test_loader_sideload_infile
|
55
64
|
infile = File.join(@root_dir, "test.zip")
|
@@ -62,9 +71,13 @@ module RokuBuilder
|
|
62
71
|
to_return(status: 200, body: "", headers: {}))
|
63
72
|
@request_stubs.push(stub_request(:post, "http://#{@device_config[:ip]}/plugin_install").
|
64
73
|
to_return(status: 200, body: "Install Success", headers: {}))
|
74
|
+
@device_manager.expect(:reserve_device, @device, no_lock: false)
|
75
|
+
@device_manager.expect(:release_device, nil, [@device])
|
65
76
|
|
66
|
-
|
67
|
-
|
77
|
+
RokuBuilder.stub(:device_manager, @device_manager) do
|
78
|
+
loader = Loader.new(config: @config)
|
79
|
+
loader.sideload(options: @options)
|
80
|
+
end
|
68
81
|
end
|
69
82
|
def test_loader_build_defining_folder_and_files
|
70
83
|
loader = Loader.new(config: @config)
|
@@ -100,33 +113,49 @@ module RokuBuilder
|
|
100
113
|
def test_loader_unload
|
101
114
|
@request_stubs.push(stub_request(:post, "http://#{@device_config[:ip]}/plugin_install").
|
102
115
|
to_return(status: 200, body: "Delete Succeeded", headers: {}))
|
116
|
+
@device_manager.expect(:reserve_device, @device, no_lock: false)
|
117
|
+
@device_manager.expect(:release_device, nil, [@device])
|
103
118
|
|
104
|
-
|
105
|
-
|
119
|
+
RokuBuilder.stub(:device_manager, @device_manager) do
|
120
|
+
loader = Loader.new(config: @config)
|
121
|
+
loader.delete(options: @options)
|
122
|
+
end
|
106
123
|
end
|
107
124
|
def test_loader_unload_fail
|
108
125
|
@request_stubs.push(stub_request(:post, "http://#{@device_config[:ip]}/plugin_install").
|
109
126
|
to_return(status: 200, body: "Delete Failed", headers: {}))
|
127
|
+
@device_manager.expect(:reserve_device, @device, no_lock: false)
|
128
|
+
@device_manager.expect(:release_device, nil, [@device])
|
110
129
|
|
111
|
-
|
112
|
-
|
113
|
-
|
130
|
+
RokuBuilder.stub(:device_manager, @device_manager) do
|
131
|
+
loader = Loader.new(config: @config)
|
132
|
+
assert_raises ExecutionError do
|
133
|
+
loader.delete(options: @options)
|
134
|
+
end
|
114
135
|
end
|
115
136
|
end
|
116
137
|
def test_loader_squash
|
117
138
|
@request_stubs.push(stub_request(:post, "http://#{@device_config[:ip]}/plugin_install").
|
118
139
|
to_return(status: 200, body: "Conversion succeeded", headers: {}))
|
140
|
+
@device_manager.expect(:reserve_device, @device, no_lock: false)
|
141
|
+
@device_manager.expect(:release_device, nil, [@device])
|
119
142
|
|
120
|
-
|
121
|
-
|
143
|
+
RokuBuilder.stub(:device_manager, @device_manager) do
|
144
|
+
loader = Loader.new(config: @config)
|
145
|
+
loader.squash(options: @options)
|
146
|
+
end
|
122
147
|
end
|
123
148
|
def test_loader_squash_fail
|
124
149
|
@request_stubs.push(stub_request(:post, "http://#{@device_config[:ip]}/plugin_install").
|
125
150
|
to_return(status: 200, body: "Conversion failed", headers: {}))
|
151
|
+
@device_manager.expect(:reserve_device, @device, no_lock: false)
|
152
|
+
@device_manager.expect(:release_device, nil, [@device])
|
126
153
|
|
127
|
-
|
128
|
-
|
129
|
-
|
154
|
+
RokuBuilder.stub(:device_manager, @device_manager) do
|
155
|
+
loader = Loader.new(config: @config)
|
156
|
+
assert_raises ExecutionError do
|
157
|
+
loader.squash(options: @options)
|
158
|
+
end
|
130
159
|
end
|
131
160
|
end
|
132
161
|
def test_copy_files
|
@@ -21,8 +21,12 @@ module RokuBuilder
|
|
21
21
|
user: "user",
|
22
22
|
password: "password"
|
23
23
|
}
|
24
|
-
@config.instance_variable_set(:@parsed, {device_config: device_config, init_params: {}})
|
25
24
|
@monitor = Monitor.new(config: @config)
|
25
|
+
@device_manager = Minitest::Mock.new
|
26
|
+
@device = RokuBuilder::Device.new("roku", device_config)
|
27
|
+
end
|
28
|
+
def teardown
|
29
|
+
@device_manager.verify
|
26
30
|
end
|
27
31
|
def test_scripter_parse_options_long
|
28
32
|
parser = OptionParser.new
|
@@ -51,11 +55,15 @@ module RokuBuilder
|
|
51
55
|
sleep(0.1)
|
52
56
|
"q"
|
53
57
|
}
|
58
|
+
@device_manager.expect(:reserve_device, @device, no_lock: true)
|
59
|
+
@device_manager.expect(:release_device, nil, [@device])
|
54
60
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
@
|
61
|
+
RokuBuilder.stub(:device_manager, @device_manager) do
|
62
|
+
Readline.stub(:readline, readline) do
|
63
|
+
Net::Telnet.stub(:new, @connection) do
|
64
|
+
@connection.stub(:waitfor, waitfor, "txt") do
|
65
|
+
@monitor.monitor(options: @options)
|
66
|
+
end
|
59
67
|
end
|
60
68
|
end
|
61
69
|
end
|
@@ -73,11 +81,16 @@ module RokuBuilder
|
|
73
81
|
sleep(0.1)
|
74
82
|
"q"
|
75
83
|
}
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
84
|
+
@device_manager.expect(:reserve_device, @device, no_lock: true)
|
85
|
+
@device_manager.expect(:release_device, nil, [@device])
|
86
|
+
|
87
|
+
RokuBuilder.stub(:device_manager, @device_manager) do
|
88
|
+
Readline.stub(:readline, readline) do
|
89
|
+
Net::Telnet.stub(:new, @connection) do
|
90
|
+
@connection.stub(:waitfor, waitfor, "txt") do
|
91
|
+
@monitor.stub(:manage_text, "") do
|
92
|
+
@monitor.monitor(options: @options)
|
93
|
+
end
|
81
94
|
end
|
82
95
|
end
|
83
96
|
end
|
@@ -110,12 +123,16 @@ module RokuBuilder
|
|
110
123
|
"q"
|
111
124
|
end
|
112
125
|
}
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
126
|
+
@device_manager.expect(:reserve_device, @device, no_lock: true)
|
127
|
+
@device_manager.expect(:release_device, nil, [@device])
|
128
|
+
|
129
|
+
RokuBuilder.stub(:device_manager, @device_manager) do
|
130
|
+
Readline.stub(:readline, readline) do
|
131
|
+
Net::Telnet.stub(:new, @connection) do
|
132
|
+
@connection.stub(:waitfor, waitfor, "txt") do
|
133
|
+
@connection.stub(:puts, puts) do
|
134
|
+
@monitor.monitor(options: @options)
|
135
|
+
end
|
119
136
|
end
|
120
137
|
end
|
121
138
|
end
|
@@ -82,14 +82,23 @@ module RokuBuilder
|
|
82
82
|
options = {}
|
83
83
|
options[type] = input.to_s
|
84
84
|
config, options = build_config_options_objects(NavigatorTest, options, false)
|
85
|
+
|
86
|
+
device_manager = Minitest::Mock.new
|
87
|
+
device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
|
88
|
+
device_manager.expect(:reserve_device, device, no_lock: true)
|
89
|
+
device_manager.expect(:release_device, nil, [device])
|
90
|
+
|
85
91
|
navigator = Navigator.new(config: config)
|
86
|
-
|
87
|
-
|
88
|
-
else
|
89
|
-
assert_raises ExecutionError do
|
92
|
+
RokuBuilder.stub(:device_manager, device_manager) do
|
93
|
+
if success
|
90
94
|
navigator.send(type, options: options)
|
95
|
+
else
|
96
|
+
assert_raises ExecutionError do
|
97
|
+
navigator.send(type, options: options)
|
98
|
+
end
|
91
99
|
end
|
92
100
|
end
|
101
|
+
device_manager.verify
|
93
102
|
end
|
94
103
|
|
95
104
|
def test_navigator_screen_secret
|
@@ -116,8 +125,16 @@ module RokuBuilder
|
|
116
125
|
logger.expect(:debug, nil, ["Send Command: /keypress/Rev"])
|
117
126
|
end
|
118
127
|
|
119
|
-
|
128
|
+
device_manager = Minitest::Mock.new
|
129
|
+
device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
|
130
|
+
device_manager.expect(:reserve_device, device, no_lock: true)
|
131
|
+
device_manager.expect(:release_device, nil, [device])
|
132
|
+
|
133
|
+
RokuBuilder.stub(:device_manager, device_manager) do
|
134
|
+
navigator.screen(options: options)
|
135
|
+
end
|
120
136
|
|
137
|
+
device_manager.verify
|
121
138
|
logger.verify
|
122
139
|
Logger.set_testing
|
123
140
|
end
|
@@ -231,9 +248,18 @@ module RokuBuilder
|
|
231
248
|
options = {navigate: true}
|
232
249
|
config, options = build_config_options_objects(NavigatorTest, options, false)
|
233
250
|
navigator = Navigator.new(config: config)
|
234
|
-
|
235
|
-
|
251
|
+
|
252
|
+
device_manager = Minitest::Mock.new
|
253
|
+
device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
|
254
|
+
device_manager.expect(:reserve_device, device, no_lock: true)
|
255
|
+
device_manager.expect(:release_device, nil, [device])
|
256
|
+
|
257
|
+
RokuBuilder.stub(:device_manager, device_manager) do
|
258
|
+
navigator.stub(:read_char, "\u0003") do
|
259
|
+
navigator.navigate(options: options)
|
260
|
+
end
|
236
261
|
end
|
262
|
+
device_manager.verify
|
237
263
|
end
|
238
264
|
|
239
265
|
def test_navigator_interactive_nav
|
@@ -249,7 +275,7 @@ module RokuBuilder
|
|
249
275
|
@i += 1
|
250
276
|
char
|
251
277
|
}
|
252
|
-
thread_new = lambda { |char|
|
278
|
+
thread_new = lambda { |char,device|
|
253
279
|
assert_equal "<", char
|
254
280
|
}
|
255
281
|
@requests.push(stub_request(:post, "http://192.168.0.100:8060/keypress/Rev").
|
@@ -257,19 +283,31 @@ module RokuBuilder
|
|
257
283
|
options = {navigate: true}
|
258
284
|
config, options = build_config_options_objects(NavigatorTest, options, false)
|
259
285
|
navigator = Navigator.new(config: config)
|
260
|
-
|
261
|
-
|
262
|
-
|
286
|
+
|
287
|
+
device_manager = Minitest::Mock.new
|
288
|
+
device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
|
289
|
+
device_manager.expect(:reserve_device, device, no_lock: true)
|
290
|
+
device_manager.expect(:release_device, nil, [device])
|
291
|
+
|
292
|
+
RokuBuilder.stub(:device_manager, device_manager) do
|
293
|
+
navigator.stub(:read_char, read_char) do
|
294
|
+
Thread.stub(:new, thread_new, "<") do
|
295
|
+
navigator.navigate(options: options)
|
296
|
+
end
|
263
297
|
end
|
264
298
|
end
|
299
|
+
device_manager.verify
|
265
300
|
end
|
266
|
-
def
|
301
|
+
def test_navigator_handle_interactive_text
|
267
302
|
@requests.push(stub_request(:post, "http://192.168.0.100:8060/keypress/LIT_b").
|
268
303
|
to_return(status: 200, body: "", headers: {}))
|
269
304
|
options = {navigate: true}
|
270
305
|
config, options = build_config_options_objects(NavigatorTest, options, false)
|
271
306
|
navigator = Navigator.new(config: config)
|
272
|
-
|
307
|
+
|
308
|
+
device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
|
309
|
+
|
310
|
+
navigator.send(:handle_navigate_input, "b", device)
|
273
311
|
end
|
274
312
|
def test_navigator_hendle_interactive_command
|
275
313
|
@requests.push(stub_request(:post, "http://192.168.0.100:8060/keypress/Play").
|
@@ -277,7 +315,10 @@ module RokuBuilder
|
|
277
315
|
options = {navigate: true}
|
278
316
|
config, options = build_config_options_objects(NavigatorTest, options, false)
|
279
317
|
navigator = Navigator.new(config: config)
|
280
|
-
|
318
|
+
|
319
|
+
device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
|
320
|
+
|
321
|
+
navigator.send(:handle_navigate_input, "=", device)
|
281
322
|
end
|
282
323
|
def test_navigator_generate_mappings
|
283
324
|
options = {navigate: true}
|