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.
@@ -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, config: config, configs: configs, logger: logger})
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, config: config, configs: configs, logger: logger})
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, config: config, configs: configs, logger: logger})
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, config: config, configs: configs, logger: logger})
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, config: config, configs: configs, logger: logger})
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, config: config, configs: configs, logger: logger})
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, config: config, configs: configs, logger: logger})
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, config: config, configs: configs, logger: logger})
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, config: config, configs: configs, logger: logger})
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, config: config, configs: configs, logger: logger})
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, config: config, configs: configs, logger: logger})
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, config: config, configs: configs, logger: logger})
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, config: config, configs: configs, logger: logger})
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, config: config, configs: configs, logger: logger})
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, config: config, configs: configs, logger: logger})
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, config: config, configs: configs, logger: logger})
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, config: config, configs: configs, logger: logger})
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, config: config, configs: configs, logger: logger})
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, config: config, configs: configs, logger: logger})
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, config: config, configs: configs, logger: logger})
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(:check_devices, nil) do
153
- RokuBuilder::ErrorHandler.stub(:handle_device_codes, nil) do
154
- RokuBuilder::Controller.stub(:execute_commands, nil) do
155
- RokuBuilder::ErrorHandler.stub(:handle_command_codes, nil) do
156
- RokuBuilder::Controller.run(options: test[:options], logger: logger)
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