roku_builder 4.25.4 → 4.26.0
Sign up to get free protection for your applications and to get access to all the features.
- 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/indentation_inspector.rb +2 -2
- 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 +30 -11
- 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 -10
- 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
@@ -32,6 +32,7 @@ module RokuBuilder
|
|
32
32
|
assert options[:screencapture]
|
33
33
|
end
|
34
34
|
def test_inspector_inspect
|
35
|
+
|
35
36
|
logger = Minitest::Mock.new()
|
36
37
|
|
37
38
|
logger.expect(:formatter=, nil, [Proc])
|
@@ -77,9 +78,19 @@ module RokuBuilder
|
|
77
78
|
options = {inspect: true, in: File.join(test_files_path(InspectorTest), "test.pkg"), password: "password"}
|
78
79
|
config, options = build_config_options_objects(InspectorTest, options, false)
|
79
80
|
inspector = Inspector.new(config: config)
|
80
|
-
|
81
|
-
|
81
|
+
|
82
|
+
device_manager = Minitest::Mock.new
|
83
|
+
device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
|
84
|
+
device_manager.expect(:reserve_device, device, no_lock: false)
|
85
|
+
device_manager.expect(:release_device, nil, [device])
|
86
|
+
|
87
|
+
RokuBuilder.stub(:device_manager, device_manager) do
|
88
|
+
::Logger.stub(:new, logger) do
|
89
|
+
inspector.inspect(options: options)
|
90
|
+
end
|
82
91
|
end
|
92
|
+
logger.verify
|
93
|
+
device_manager.verify
|
83
94
|
end
|
84
95
|
def test_inspector_inspect_old_interface
|
85
96
|
logger = Minitest::Mock.new()
|
@@ -119,9 +130,20 @@ module RokuBuilder
|
|
119
130
|
options = {inspect: true, in: File.join(test_files_path(InspectorTest), "test.pkg"), password: "password"}
|
120
131
|
config, options = build_config_options_objects(InspectorTest, options, false)
|
121
132
|
inspector = Inspector.new(config: config)
|
122
|
-
|
123
|
-
|
133
|
+
|
134
|
+
device_manager = Minitest::Mock.new
|
135
|
+
device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
|
136
|
+
device_manager.expect(:reserve_device, device, no_lock: false)
|
137
|
+
device_manager.expect(:release_device, nil, [device])
|
138
|
+
|
139
|
+
RokuBuilder.stub(:device_manager, device_manager) do
|
140
|
+
::Logger.stub(:new, logger) do
|
141
|
+
inspector.inspect(options: options)
|
142
|
+
end
|
124
143
|
end
|
144
|
+
|
145
|
+
logger.verify
|
146
|
+
device_manager.verify
|
125
147
|
end
|
126
148
|
|
127
149
|
def test_screencapture
|
@@ -139,9 +161,19 @@ module RokuBuilder
|
|
139
161
|
options = {screencapture: true }
|
140
162
|
config, options = build_config_options_objects(InspectorTest, options, false)
|
141
163
|
inspector = Inspector.new(config: config)
|
142
|
-
|
143
|
-
|
164
|
+
|
165
|
+
device_manager = Minitest::Mock.new
|
166
|
+
device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
|
167
|
+
device_manager.expect(:reserve_device, device, no_lock: false)
|
168
|
+
device_manager.expect(:release_device, nil, [device])
|
169
|
+
|
170
|
+
RokuBuilder.stub(:device_manager, device_manager) do
|
171
|
+
File.stub(:open, nil, io) do
|
172
|
+
inspector.screencapture(options: options)
|
173
|
+
end
|
144
174
|
end
|
175
|
+
io.verify
|
176
|
+
device_manager.verify
|
145
177
|
end
|
146
178
|
def test_screencapture_png
|
147
179
|
body = "<hr /><img src=\"pkgs/dev.png?time=1455629573\">"
|
@@ -158,8 +190,16 @@ module RokuBuilder
|
|
158
190
|
options = {screencapture: true }
|
159
191
|
config, options = build_config_options_objects(InspectorTest, options, false)
|
160
192
|
inspector = Inspector.new(config: config)
|
161
|
-
|
162
|
-
|
193
|
+
|
194
|
+
device_manager = Minitest::Mock.new
|
195
|
+
device = RokuBuilder::Device.new("roku", config.raw[:devices][:roku])
|
196
|
+
device_manager.expect(:reserve_device, device, no_lock: false)
|
197
|
+
device_manager.expect(:release_device, nil, [device])
|
198
|
+
|
199
|
+
RokuBuilder.stub(:device_manager, device_manager) do
|
200
|
+
File.stub(:open, nil, io) do
|
201
|
+
inspector.screencapture(options: options)
|
202
|
+
end
|
163
203
|
end
|
164
204
|
end
|
165
205
|
end
|
@@ -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}
|