roku_builder 3.11.0 → 3.11.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +10 -10
- data/README.md +4 -2
- data/bin/roku +3 -3
- data/config.json.example +2 -1
- data/lib/roku_builder.rb +4 -1
- data/lib/roku_builder/config_manager.rb +9 -10
- data/lib/roku_builder/config_parser.rb +35 -27
- data/lib/roku_builder/config_validator.rb +2 -7
- data/lib/roku_builder/controller.rb +17 -2
- data/lib/roku_builder/controller_commands.rb +23 -14
- data/lib/roku_builder/error_handler.rb +13 -0
- data/lib/roku_builder/keyer.rb +34 -25
- data/lib/roku_builder/loader.rb +17 -23
- data/lib/roku_builder/monitor.rb +15 -13
- data/lib/roku_builder/navigator.rb +31 -50
- data/lib/roku_builder/packager.rb +1 -1
- data/lib/roku_builder/tester.rb +1 -1
- data/lib/roku_builder/version.rb +1 -1
- data/roku_builder.gemspec +1 -1
- data/tests/roku_builder/config_manager_test.rb +58 -0
- data/tests/roku_builder/config_parser_test.rb +73 -2
- data/tests/roku_builder/config_validator_test.rb +36 -0
- data/tests/roku_builder/controller_commands_test.rb +20 -20
- data/tests/roku_builder/controller_test.rb +9 -5
- data/tests/roku_builder/error_handler_test.rb +9 -0
- data/tests/roku_builder/keyer_test.rb +53 -0
- data/tests/roku_builder/monitor_test.rb +2 -4
- data/tests/roku_builder/navigator_test.rb +144 -0
- data/tests/roku_builder/stager_test.rb +47 -0
- data/tests/roku_builder/test_helper.rb +10 -4
- data/tests/roku_builder/tester_test.rb +2 -2
- metadata +5 -5
@@ -127,10 +127,81 @@ class ConfigParserTest < Minitest::Test
|
|
127
127
|
def test_deeplink_app_config
|
128
128
|
args = {
|
129
129
|
config: {},
|
130
|
-
configs: {project_config: {directory: "dir"}, init_params: {}},
|
130
|
+
configs: {project_config: {directory: "dir"}, init_params: {}, out: {}},
|
131
131
|
options: {deeplink: "a:b", app_id: "xxxxxx"},
|
132
|
-
logger: Logger.new("/dev/null")
|
133
132
|
}
|
134
133
|
RokuBuilder::ConfigParser.send(:setup_simple_configs, **args)
|
135
134
|
end
|
135
|
+
|
136
|
+
def test_outfile_config
|
137
|
+
configs = {}
|
138
|
+
args = {
|
139
|
+
options: {out: nil},
|
140
|
+
configs: configs
|
141
|
+
}
|
142
|
+
RokuBuilder::ConfigParser.send(:setup_outfile, **args)
|
143
|
+
refute_nil configs[:out]
|
144
|
+
refute_nil configs[:out][:folder]
|
145
|
+
assert_nil configs[:out][:file]
|
146
|
+
assert_equal "/tmp", configs[:out][:folder]
|
147
|
+
|
148
|
+
configs = {}
|
149
|
+
args = {
|
150
|
+
options: {out: "/home/user"},
|
151
|
+
configs: configs
|
152
|
+
}
|
153
|
+
RokuBuilder::ConfigParser.send(:setup_outfile, **args)
|
154
|
+
refute_nil configs[:out]
|
155
|
+
refute_nil configs[:out][:folder]
|
156
|
+
assert_nil configs[:out][:file]
|
157
|
+
assert_equal "/home/user", configs[:out][:folder]
|
158
|
+
|
159
|
+
configs = {}
|
160
|
+
args = {
|
161
|
+
options: {out: "/home/user/file.pkg"},
|
162
|
+
configs: configs
|
163
|
+
}
|
164
|
+
RokuBuilder::ConfigParser.send(:setup_outfile, **args)
|
165
|
+
refute_nil configs[:out]
|
166
|
+
refute_nil configs[:out][:folder]
|
167
|
+
refute_nil configs[:out][:file]
|
168
|
+
assert_equal "/home/user", configs[:out][:folder]
|
169
|
+
assert_equal "file.pkg", configs[:out][:file]
|
170
|
+
|
171
|
+
configs = {}
|
172
|
+
args = {
|
173
|
+
options: {out: "/home/user/file.zip"},
|
174
|
+
configs: configs
|
175
|
+
}
|
176
|
+
RokuBuilder::ConfigParser.send(:setup_outfile, **args)
|
177
|
+
refute_nil configs[:out]
|
178
|
+
refute_nil configs[:out][:folder]
|
179
|
+
refute_nil configs[:out][:file]
|
180
|
+
assert_equal "/home/user", configs[:out][:folder]
|
181
|
+
assert_equal "file.zip", configs[:out][:file]
|
182
|
+
|
183
|
+
configs = {}
|
184
|
+
args = {
|
185
|
+
options: {out: "/home/user/file.jpg"},
|
186
|
+
configs: configs
|
187
|
+
}
|
188
|
+
RokuBuilder::ConfigParser.send(:setup_outfile, **args)
|
189
|
+
refute_nil configs[:out]
|
190
|
+
refute_nil configs[:out][:folder]
|
191
|
+
refute_nil configs[:out][:file]
|
192
|
+
assert_equal "/home/user", configs[:out][:folder]
|
193
|
+
assert_equal "file.jpg", configs[:out][:file]
|
194
|
+
|
195
|
+
configs = {}
|
196
|
+
args = {
|
197
|
+
options: {out: "file.jpg"},
|
198
|
+
configs: configs
|
199
|
+
}
|
200
|
+
RokuBuilder::ConfigParser.send(:setup_outfile, **args)
|
201
|
+
refute_nil configs[:out]
|
202
|
+
refute_nil configs[:out][:folder]
|
203
|
+
refute_nil configs[:out][:file]
|
204
|
+
assert_equal "/tmp", configs[:out][:folder]
|
205
|
+
assert_equal "file.jpg", configs[:out][:file]
|
206
|
+
end
|
136
207
|
end
|
@@ -157,4 +157,40 @@ class ConfigValidatorTest < Minitest::Test
|
|
157
157
|
codes = RokuBuilder::ConfigValidator.validate_config(config: config)
|
158
158
|
assert_equal [15], codes
|
159
159
|
end
|
160
|
+
|
161
|
+
def test_config_manager_validate_project_key
|
162
|
+
config = good_config
|
163
|
+
config[:projects][:project2][:stages][:production][:key] = "b"
|
164
|
+
codes = RokuBuilder::ConfigValidator.validate_config(config: config)
|
165
|
+
assert_equal [22], codes
|
166
|
+
end
|
167
|
+
|
168
|
+
def test_config_manager_validate_keys_pkg
|
169
|
+
config = good_config
|
170
|
+
config[:keys][:a][:keyed_pkg] = nil
|
171
|
+
codes = RokuBuilder::ConfigValidator.validate_config(config: config)
|
172
|
+
assert_equal [19], codes
|
173
|
+
config = good_config
|
174
|
+
config[:keys][:a][:keyed_pkg] = "<path/to/signed/package>"
|
175
|
+
codes = RokuBuilder::ConfigValidator.validate_config(config: config)
|
176
|
+
assert_equal [19], codes
|
177
|
+
end
|
178
|
+
|
179
|
+
def test_config_manager_validate_keys_password
|
180
|
+
config = good_config
|
181
|
+
config[:keys][:a][:password] = nil
|
182
|
+
codes = RokuBuilder::ConfigValidator.validate_config(config: config)
|
183
|
+
assert_equal [20], codes
|
184
|
+
config = good_config
|
185
|
+
config[:keys][:a][:password] = "<password>"
|
186
|
+
codes = RokuBuilder::ConfigValidator.validate_config(config: config)
|
187
|
+
assert_equal [20], codes
|
188
|
+
end
|
189
|
+
|
190
|
+
def test_config_manager_validate_input_mappings
|
191
|
+
config = good_config
|
192
|
+
config[:input_mapping]["a"] = ["home"]
|
193
|
+
codes = RokuBuilder::ConfigValidator.validate_config(config: config)
|
194
|
+
assert_equal [21], codes
|
195
|
+
end
|
160
196
|
end
|
@@ -27,7 +27,7 @@ class ControllerCommandsTest < Minitest::Test
|
|
27
27
|
|
28
28
|
RokuBuilder::Loader.stub(:new, loader) do
|
29
29
|
RokuBuilder::Stager.stub(:new, stager) do
|
30
|
-
code = RokuBuilder::Controller.send(:execute_commands, {options: options,
|
30
|
+
code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
|
31
31
|
end
|
32
32
|
end
|
33
33
|
assert_equal RokuBuilder::SUCCESS, code
|
@@ -39,7 +39,7 @@ class ControllerCommandsTest < Minitest::Test
|
|
39
39
|
loader.expect(:sideload, [RokuBuilder::FAILED_SIDELOAD, "build_version"], [configs[:sideload_config]])
|
40
40
|
RokuBuilder::Loader.stub(:new, loader) do
|
41
41
|
RokuBuilder::Stager.stub(:new, stager) do
|
42
|
-
code = RokuBuilder::Controller.send(:execute_commands, {options: options,
|
42
|
+
code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
|
43
43
|
end
|
44
44
|
end
|
45
45
|
assert_equal RokuBuilder::FAILED_SIDELOAD, code
|
@@ -76,7 +76,7 @@ class ControllerCommandsTest < Minitest::Test
|
|
76
76
|
RokuBuilder::Inspector.stub(:new, inspector) do
|
77
77
|
RokuBuilder::Stager.stub(:new, stager) do
|
78
78
|
Logger.stub(:new, logger) do
|
79
|
-
code = RokuBuilder::Controller.send(:execute_commands, {options: options,
|
79
|
+
code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
|
80
80
|
end
|
81
81
|
end
|
82
82
|
end
|
@@ -120,7 +120,7 @@ class ControllerCommandsTest < Minitest::Test
|
|
120
120
|
RokuBuilder::Inspector.stub(:new, inspector) do
|
121
121
|
RokuBuilder::Stager.stub(:new, stager) do
|
122
122
|
Logger.stub(:new, logger) do
|
123
|
-
code = RokuBuilder::Controller.send(:execute_commands, {options: options,
|
123
|
+
code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
|
124
124
|
end
|
125
125
|
end
|
126
126
|
end
|
@@ -153,7 +153,7 @@ class ControllerCommandsTest < Minitest::Test
|
|
153
153
|
RokuBuilder::Loader.stub(:new, loader) do
|
154
154
|
RokuBuilder::ManifestManager.stub(:build_version, "1") do
|
155
155
|
RokuBuilder::Stager.stub(:new, stager) do
|
156
|
-
code = RokuBuilder::Controller.send(:execute_commands, {options: options,
|
156
|
+
code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
|
157
157
|
end
|
158
158
|
end
|
159
159
|
end
|
@@ -178,7 +178,7 @@ class ControllerCommandsTest < Minitest::Test
|
|
178
178
|
RokuBuilder::ManifestManager.stub(:build_version, mock) do
|
179
179
|
RokuBuilder::ManifestManager.stub(:update_build, mock) do
|
180
180
|
RokuBuilder::Stager.stub(:new, stager) do
|
181
|
-
code = RokuBuilder::Controller.send(:execute_commands, {options: options,
|
181
|
+
code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
|
182
182
|
end
|
183
183
|
end
|
184
184
|
end
|
@@ -197,7 +197,7 @@ class ControllerCommandsTest < Minitest::Test
|
|
197
197
|
code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
|
198
198
|
mock.expect(:launch, "true", [configs[:deeplink_config]])
|
199
199
|
RokuBuilder::Linker.stub(:new, mock) do
|
200
|
-
code = RokuBuilder::Controller.send(:execute_commands, {options: options,
|
200
|
+
code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
|
201
201
|
end
|
202
202
|
mock.verify
|
203
203
|
assert_equal RokuBuilder::SUCCESS, code
|
@@ -217,7 +217,7 @@ class ControllerCommandsTest < Minitest::Test
|
|
217
217
|
mock.expect(:launch, "true", [configs[:deeplink_config]])
|
218
218
|
RokuBuilder::Linker.stub(:new, mock) do
|
219
219
|
RokuBuilder::ControllerCommands.stub(:sideload, sideload) do
|
220
|
-
code = RokuBuilder::Controller.send(:execute_commands, {options: options,
|
220
|
+
code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
|
221
221
|
end
|
222
222
|
end
|
223
223
|
mock.verify
|
@@ -238,7 +238,7 @@ class ControllerCommandsTest < Minitest::Test
|
|
238
238
|
stager.expect(:unstage, true)
|
239
239
|
RokuBuilder::Linker.stub(:new, mock) do
|
240
240
|
RokuBuilder::Stager.stub(:new, stager) do
|
241
|
-
code = RokuBuilder::Controller.send(:execute_commands, {options: options,
|
241
|
+
code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
|
242
242
|
end
|
243
243
|
end
|
244
244
|
mock.verify
|
@@ -255,7 +255,7 @@ class ControllerCommandsTest < Minitest::Test
|
|
255
255
|
code = nil
|
256
256
|
RokuBuilder::Loader.stub(:new, loader) do
|
257
257
|
RokuBuilder::ManifestManager.stub(:build_version, "1") do
|
258
|
-
code = RokuBuilder::Controller.send(:execute_commands, {options: options,
|
258
|
+
code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
|
259
259
|
end
|
260
260
|
end
|
261
261
|
assert_equal RokuBuilder::SUCCESS, code
|
@@ -272,7 +272,7 @@ class ControllerCommandsTest < Minitest::Test
|
|
272
272
|
code = nil
|
273
273
|
RokuBuilder::Monitor.stub(:new, monitor) do
|
274
274
|
RokuBuilder::ManifestManager.stub(:build_version, "1") do
|
275
|
-
code = RokuBuilder::Controller.send(:execute_commands, {options: options,
|
275
|
+
code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
|
276
276
|
end
|
277
277
|
end
|
278
278
|
assert_equal RokuBuilder::SUCCESS, code
|
@@ -288,7 +288,7 @@ class ControllerCommandsTest < Minitest::Test
|
|
288
288
|
navigator.expect(:nav, true, [configs[:navigate_config]])
|
289
289
|
code = nil
|
290
290
|
RokuBuilder::Navigator.stub(:new, navigator) do
|
291
|
-
code = RokuBuilder::Controller.send(:execute_commands, {options: options,
|
291
|
+
code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
|
292
292
|
end
|
293
293
|
assert_equal RokuBuilder::SUCCESS, code
|
294
294
|
navigator.verify
|
@@ -303,7 +303,7 @@ class ControllerCommandsTest < Minitest::Test
|
|
303
303
|
navigator.expect(:nav, nil, [configs[:navigate_config]])
|
304
304
|
code = nil
|
305
305
|
RokuBuilder::Navigator.stub(:new, navigator) do
|
306
|
-
code = RokuBuilder::Controller.send(:execute_commands, {options: options,
|
306
|
+
code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
|
307
307
|
end
|
308
308
|
assert_equal RokuBuilder::FAILED_NAVIGATING, code
|
309
309
|
navigator.verify
|
@@ -318,7 +318,7 @@ class ControllerCommandsTest < Minitest::Test
|
|
318
318
|
navigator.expect(:screen, true, [configs[:screen_config]])
|
319
319
|
code = nil
|
320
320
|
RokuBuilder::Navigator.stub(:new, navigator) do
|
321
|
-
code = RokuBuilder::Controller.send(:execute_commands, {options: options,
|
321
|
+
code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
|
322
322
|
end
|
323
323
|
assert_equal RokuBuilder::SUCCESS, code
|
324
324
|
navigator.verify
|
@@ -333,7 +333,7 @@ class ControllerCommandsTest < Minitest::Test
|
|
333
333
|
navigator.expect(:screens, true)
|
334
334
|
code = nil
|
335
335
|
RokuBuilder::Navigator.stub(:new, navigator) do
|
336
|
-
code = RokuBuilder::Controller.send(:execute_commands, {options: options,
|
336
|
+
code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
|
337
337
|
end
|
338
338
|
assert_equal RokuBuilder::SUCCESS, code
|
339
339
|
navigator.verify
|
@@ -348,7 +348,7 @@ class ControllerCommandsTest < Minitest::Test
|
|
348
348
|
navigator.expect(:type, true, [configs[:text_config]])
|
349
349
|
code = nil
|
350
350
|
RokuBuilder::Navigator.stub(:new, navigator) do
|
351
|
-
code = RokuBuilder::Controller.send(:execute_commands, {options: options,
|
351
|
+
code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
|
352
352
|
end
|
353
353
|
assert_equal RokuBuilder::SUCCESS, code
|
354
354
|
navigator.verify
|
@@ -363,7 +363,7 @@ class ControllerCommandsTest < Minitest::Test
|
|
363
363
|
tester.expect(:run_tests, true, [configs[:test_config]])
|
364
364
|
code = nil
|
365
365
|
RokuBuilder::Tester.stub(:new, tester) do
|
366
|
-
code = RokuBuilder::Controller.send(:execute_commands, {options: options,
|
366
|
+
code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
|
367
367
|
end
|
368
368
|
assert_equal RokuBuilder::SUCCESS, code
|
369
369
|
tester.verify
|
@@ -378,7 +378,7 @@ class ControllerCommandsTest < Minitest::Test
|
|
378
378
|
inspector.expect(:screencapture, true, [configs[:screencapture_config]])
|
379
379
|
code = nil
|
380
380
|
RokuBuilder::Inspector.stub(:new, inspector) do
|
381
|
-
code = RokuBuilder::Controller.send(:execute_commands, {options: options,
|
381
|
+
code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
|
382
382
|
end
|
383
383
|
assert_equal RokuBuilder::SUCCESS, code
|
384
384
|
inspector.verify
|
@@ -393,7 +393,7 @@ class ControllerCommandsTest < Minitest::Test
|
|
393
393
|
inspector.expect(:screencapture, false, [configs[:screencapture_config]])
|
394
394
|
code = nil
|
395
395
|
RokuBuilder::Inspector.stub(:new, inspector) do
|
396
|
-
code = RokuBuilder::Controller.send(:execute_commands, {options: options,
|
396
|
+
code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
|
397
397
|
end
|
398
398
|
assert_equal RokuBuilder::FAILED_SCREENCAPTURE, code
|
399
399
|
inspector.verify
|
@@ -413,7 +413,7 @@ class ControllerCommandsTest < Minitest::Test
|
|
413
413
|
|
414
414
|
RokuBuilder::Stager.stub(:new, stager) do
|
415
415
|
RokuBuilder::Scripter.stub(:print, print_check) do
|
416
|
-
code = RokuBuilder::Controller.send(:execute_commands, {options: options,
|
416
|
+
code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
|
417
417
|
end
|
418
418
|
end
|
419
419
|
assert_equal RokuBuilder::SUCCESS, code
|
@@ -149,11 +149,15 @@ class ControllerTest < Minitest::Test
|
|
149
149
|
RokuBuilder::ErrorHandler.stub(:handle_configure_codes, nil) do
|
150
150
|
RokuBuilder::ConfigManager.stub(:load_config, nil) do
|
151
151
|
RokuBuilder::ErrorHandler.stub(:handle_load_codes, nil) do
|
152
|
-
RokuBuilder::Controller.stub(:
|
153
|
-
RokuBuilder::ErrorHandler.stub(:
|
154
|
-
RokuBuilder::Controller.stub(:
|
155
|
-
RokuBuilder::ErrorHandler.stub(:
|
156
|
-
RokuBuilder::Controller.
|
152
|
+
RokuBuilder::Controller.stub(:validate_configs, nil) do
|
153
|
+
RokuBuilder::ErrorHandler.stub(:handle_configs_codes, nil) do
|
154
|
+
RokuBuilder::Controller.stub(:check_devices, nil) do
|
155
|
+
RokuBuilder::ErrorHandler.stub(:handle_device_codes, nil) do
|
156
|
+
RokuBuilder::Controller.stub(:execute_commands, nil) do
|
157
|
+
RokuBuilder::ErrorHandler.stub(:handle_command_codes, nil) do
|
158
|
+
RokuBuilder::Controller.run(options: test[:options], logger: logger)
|
159
|
+
end
|
160
|
+
end
|
157
161
|
end
|
158
162
|
end
|
159
163
|
end
|
@@ -43,7 +43,11 @@ class ErrorHandlerTest < Minitest::Test
|
|
43
43
|
RokuBuilder::FAILED_DEEPLINKING,
|
44
44
|
RokuBuilder::FAILED_NAVIGATING,
|
45
45
|
RokuBuilder::FAILED_SCREENCAPTURE,
|
46
|
+
RokuBuilder::MISSING_MANIFEST,
|
46
47
|
RokuBuilder::BAD_PRINT_ATTRIBUTE
|
48
|
+
],
|
49
|
+
configs_code: [
|
50
|
+
RokuBuilder::MISSING_OUT_FOLDER
|
47
51
|
]
|
48
52
|
},
|
49
53
|
info: {
|
@@ -61,6 +65,11 @@ class ErrorHandlerTest < Minitest::Test
|
|
61
65
|
options_code: [
|
62
66
|
RokuBuilder::DEPRICATED
|
63
67
|
]
|
68
|
+
},
|
69
|
+
debug: {
|
70
|
+
configs_code: [
|
71
|
+
RokuBuilder::VALID
|
72
|
+
]
|
64
73
|
}
|
65
74
|
}
|
66
75
|
error_groups.each_pair do |type,errors|
|
@@ -123,4 +123,57 @@ class KeyerTest < Minitest::Test
|
|
123
123
|
io.verify
|
124
124
|
response.verify
|
125
125
|
end
|
126
|
+
|
127
|
+
def test_keyer_generate_new_key
|
128
|
+
connection = Minitest::Mock.new
|
129
|
+
|
130
|
+
connection.expect(:puts, nil, ["genkey"])
|
131
|
+
connection.expect(:waitfor, nil) do |config, &blk|
|
132
|
+
assert_equal(/./, config['Match'])
|
133
|
+
assert_equal(false, config['Timeout'])
|
134
|
+
txt = "Password: password\nDevID: devid\n"
|
135
|
+
blk.call(txt)
|
136
|
+
true
|
137
|
+
end
|
138
|
+
connection.expect(:close, nil, [])
|
139
|
+
|
140
|
+
device_config = {
|
141
|
+
ip: "111.222.333",
|
142
|
+
user: "user",
|
143
|
+
password: "password",
|
144
|
+
logger: Logger.new("/dev/null")
|
145
|
+
}
|
146
|
+
keyer = RokuBuilder::Keyer.new(**device_config)
|
147
|
+
Net::Telnet.stub(:new, connection) do
|
148
|
+
keyer.send(:generate_new_key)
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
def test_keyer_genkey
|
153
|
+
loader = Minitest::Mock.new
|
154
|
+
packager = Minitest::Mock.new
|
155
|
+
|
156
|
+
loader.expect(:sideload, nil)
|
157
|
+
packager.expect(:package, nil, [app_name_version: "key_dev_id", out_file: "/tmp/key_dev_id.pkg", password: "password"])
|
158
|
+
|
159
|
+
device_config = {
|
160
|
+
ip: "111.222.333",
|
161
|
+
user: "user",
|
162
|
+
password: "password",
|
163
|
+
logger: Logger.new("/dev/null")
|
164
|
+
}
|
165
|
+
|
166
|
+
keyer = RokuBuilder::Keyer.new(**device_config)
|
167
|
+
|
168
|
+
RokuBuilder::Loader.stub(:new, loader) do
|
169
|
+
RokuBuilder::Packager.stub(:new, packager) do
|
170
|
+
keyer.stub(:generate_new_key, ["password", "dev_id"]) do
|
171
|
+
keyer.genkey
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
loader.verify
|
177
|
+
packager.verify
|
178
|
+
end
|
126
179
|
end
|
@@ -124,12 +124,8 @@ class MonitorTest < Minitest::Test
|
|
124
124
|
def monitor.puts(input)
|
125
125
|
@mock.puts(input)
|
126
126
|
end
|
127
|
-
def monitor.print(input)
|
128
|
-
@mock.print(input)
|
129
|
-
end
|
130
127
|
|
131
128
|
mock.expect(:puts, nil, ["midline split\n"])
|
132
|
-
mock.expect(:print, nil, ["BrightScript Debugger> "])
|
133
129
|
|
134
130
|
all_text = "midline "
|
135
131
|
txt = "split\nBrightScript Debugger> "
|
@@ -138,5 +134,7 @@ class MonitorTest < Minitest::Test
|
|
138
134
|
|
139
135
|
assert_equal "", result
|
140
136
|
|
137
|
+
mock.verify
|
138
|
+
|
141
139
|
end
|
142
140
|
end
|
@@ -140,4 +140,148 @@ class NavigatorTest < Minitest::Test
|
|
140
140
|
|
141
141
|
logger.verify
|
142
142
|
end
|
143
|
+
|
144
|
+
def test_navigator_read_char
|
145
|
+
getc = Minitest::Mock.new
|
146
|
+
chr = Minitest::Mock.new
|
147
|
+
|
148
|
+
getc.expect(:call, chr)
|
149
|
+
chr.expect(:chr, "a")
|
150
|
+
|
151
|
+
device_config = {
|
152
|
+
ip: "111.222.333",
|
153
|
+
user: "user",
|
154
|
+
password: "password",
|
155
|
+
logger: Logger.new("/dev/null"),
|
156
|
+
init_params: {mappings: {}}
|
157
|
+
}
|
158
|
+
|
159
|
+
input = nil
|
160
|
+
navigator = RokuBuilder::Navigator.new(**device_config)
|
161
|
+
STDIN.stub(:echo=, nil) do
|
162
|
+
STDIN.stub(:raw!, nil) do
|
163
|
+
STDIN.stub(:getc, getc) do
|
164
|
+
assert_equal "a", navigator.read_char
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
168
|
+
getc.verify
|
169
|
+
chr.verify
|
170
|
+
end
|
171
|
+
|
172
|
+
def test_navigator_read_char_multichar
|
173
|
+
getc = Minitest::Mock.new
|
174
|
+
chr = Minitest::Mock.new
|
175
|
+
read_nonblock = Minitest::Mock.new
|
176
|
+
|
177
|
+
getc.expect(:call, chr)
|
178
|
+
chr.expect(:chr, "\e")
|
179
|
+
read_nonblock.expect(:call, "a", [3])
|
180
|
+
read_nonblock.expect(:call, "b", [2])
|
181
|
+
|
182
|
+
device_config = {
|
183
|
+
ip: "111.222.333",
|
184
|
+
user: "user",
|
185
|
+
password: "password",
|
186
|
+
logger: Logger.new("/dev/null"),
|
187
|
+
init_params: {mappings: {}}
|
188
|
+
}
|
189
|
+
|
190
|
+
input = nil
|
191
|
+
navigator = RokuBuilder::Navigator.new(**device_config)
|
192
|
+
STDIN.stub(:echo=, nil) do
|
193
|
+
STDIN.stub(:raw!, nil) do
|
194
|
+
STDIN.stub(:getc, getc) do
|
195
|
+
STDIN.stub(:read_nonblock, read_nonblock) do
|
196
|
+
assert_equal "\eab", navigator.read_char
|
197
|
+
end
|
198
|
+
end
|
199
|
+
end
|
200
|
+
end
|
201
|
+
getc.verify
|
202
|
+
chr.verify
|
203
|
+
end
|
204
|
+
|
205
|
+
def test_navigator_interactive
|
206
|
+
device_config = {
|
207
|
+
ip: "111.222.333",
|
208
|
+
user: "user",
|
209
|
+
password: "password",
|
210
|
+
logger: Logger.new("/dev/null"),
|
211
|
+
init_params: {mappings: {}}
|
212
|
+
}
|
213
|
+
navigator = RokuBuilder::Navigator.new(**device_config)
|
214
|
+
navigator.stub(:read_char, "\u0003") do
|
215
|
+
navigator.interactive
|
216
|
+
end
|
217
|
+
end
|
218
|
+
|
219
|
+
def test_navigator_interactive_nav
|
220
|
+
|
221
|
+
device_config = {
|
222
|
+
ip: "111.222.333",
|
223
|
+
user: "user",
|
224
|
+
password: "password",
|
225
|
+
logger: Logger.new("/dev/null"),
|
226
|
+
init_params: {mappings: {}}
|
227
|
+
}
|
228
|
+
|
229
|
+
read_char = lambda {
|
230
|
+
@i ||= 0
|
231
|
+
char = nil
|
232
|
+
case(@i)
|
233
|
+
when 0
|
234
|
+
char = "<"
|
235
|
+
when 1
|
236
|
+
char = "\u0003"
|
237
|
+
end
|
238
|
+
@i += 1
|
239
|
+
char
|
240
|
+
}
|
241
|
+
|
242
|
+
nav = lambda { |args|
|
243
|
+
assert_equal :rev, args[:commands][0]
|
244
|
+
}
|
245
|
+
|
246
|
+
navigator = RokuBuilder::Navigator.new(**device_config)
|
247
|
+
navigator.stub(:read_char, read_char) do
|
248
|
+
navigator.stub(:nav, nav) do
|
249
|
+
navigator.interactive
|
250
|
+
end
|
251
|
+
end
|
252
|
+
end
|
253
|
+
def test_navigator_interactive_text
|
254
|
+
|
255
|
+
device_config = {
|
256
|
+
ip: "111.222.333",
|
257
|
+
user: "user",
|
258
|
+
password: "password",
|
259
|
+
logger: Logger.new("/dev/null"),
|
260
|
+
init_params: {mappings: {}}
|
261
|
+
}
|
262
|
+
|
263
|
+
read_char = lambda {
|
264
|
+
@i ||= 0
|
265
|
+
char = nil
|
266
|
+
case(@i)
|
267
|
+
when 0
|
268
|
+
char = "a"
|
269
|
+
when 1
|
270
|
+
char = "\u0003"
|
271
|
+
end
|
272
|
+
@i += 1
|
273
|
+
char
|
274
|
+
}
|
275
|
+
|
276
|
+
type = lambda { |args|
|
277
|
+
assert_equal "a", args[:text]
|
278
|
+
}
|
279
|
+
|
280
|
+
navigator = RokuBuilder::Navigator.new(**device_config)
|
281
|
+
navigator.stub(:read_char, read_char) do
|
282
|
+
navigator.stub(:type, type) do
|
283
|
+
navigator.interactive
|
284
|
+
end
|
285
|
+
end
|
286
|
+
end
|
143
287
|
end
|