roku_builder 3.13.0 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (226) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/CHANGELOG +12 -0
  4. data/Gemfile.lock +22 -7
  5. data/Guardfile +3 -3
  6. data/README.md +22 -398
  7. data/bin/roku +1 -194
  8. data/config.json.example +1 -1
  9. data/intergration/roku_builder/test_core.rb +52 -0
  10. data/intergration/roku_builder/test_files/core_intergration_test/manifest_template +7 -0
  11. data/intergration/roku_builder/test_files/core_intergration_test/test.pkg +0 -0
  12. data/intergration/roku_builder/test_files/inspector_intergration_test/components/rectanglescene.xml +28 -0
  13. data/intergration/roku_builder/test_files/inspector_intergration_test/images/rde_mm_focus_hd.jpg +0 -0
  14. data/intergration/roku_builder/test_files/inspector_intergration_test/images/rde_mm_focus_sd.jpg +0 -0
  15. data/intergration/roku_builder/test_files/inspector_intergration_test/images/rde_splash_fhd.jpg +0 -0
  16. data/intergration/roku_builder/test_files/inspector_intergration_test/images/rde_splash_hd.jpg +0 -0
  17. data/intergration/roku_builder/test_files/inspector_intergration_test/images/rde_splash_sd.jpg +0 -0
  18. data/intergration/roku_builder/test_files/inspector_intergration_test/images/rsgde_bg_hd.jpg +0 -0
  19. data/intergration/roku_builder/test_files/inspector_intergration_test/images/rsgde_mm_focus_hd.jpg +0 -0
  20. data/intergration/roku_builder/test_files/inspector_intergration_test/images/rsgde_splash_hd.jpg +0 -0
  21. data/intergration/roku_builder/test_files/inspector_intergration_test/manifest +21 -0
  22. data/intergration/roku_builder/test_files/inspector_intergration_test/source/main.brs +23 -0
  23. data/intergration/roku_builder/test_files/inspector_intergration_test/test.pkg +0 -0
  24. data/intergration/roku_builder/test_files/linker_intergration_test/components/rectanglescene.xml +29 -0
  25. data/intergration/roku_builder/test_files/linker_intergration_test/images/rde_mm_focus_hd.jpg +0 -0
  26. data/intergration/roku_builder/test_files/linker_intergration_test/images/rde_mm_focus_sd.jpg +0 -0
  27. data/intergration/roku_builder/test_files/linker_intergration_test/images/rde_splash_fhd.jpg +0 -0
  28. data/intergration/roku_builder/test_files/linker_intergration_test/images/rde_splash_hd.jpg +0 -0
  29. data/intergration/roku_builder/test_files/linker_intergration_test/images/rde_splash_sd.jpg +0 -0
  30. data/intergration/roku_builder/test_files/linker_intergration_test/images/rsgde_bg_hd.jpg +0 -0
  31. data/intergration/roku_builder/test_files/linker_intergration_test/images/rsgde_mm_focus_hd.jpg +0 -0
  32. data/intergration/roku_builder/test_files/linker_intergration_test/images/rsgde_splash_hd.jpg +0 -0
  33. data/intergration/roku_builder/test_files/linker_intergration_test/manifest +21 -0
  34. data/intergration/roku_builder/test_files/linker_intergration_test/source/main.brs +21 -0
  35. data/intergration/roku_builder/test_files/linker_intergration_test/test.pkg +0 -0
  36. data/intergration/roku_builder/test_files/loader_intergration_test/components/rectanglescene.xml +29 -0
  37. data/intergration/roku_builder/test_files/loader_intergration_test/images/rde_mm_focus_hd.jpg +0 -0
  38. data/intergration/roku_builder/test_files/loader_intergration_test/images/rde_mm_focus_sd.jpg +0 -0
  39. data/intergration/roku_builder/test_files/loader_intergration_test/images/rde_splash_fhd.jpg +0 -0
  40. data/intergration/roku_builder/test_files/loader_intergration_test/images/rde_splash_hd.jpg +0 -0
  41. data/intergration/roku_builder/test_files/loader_intergration_test/images/rde_splash_sd.jpg +0 -0
  42. data/intergration/roku_builder/test_files/loader_intergration_test/images/rsgde_bg_hd.jpg +0 -0
  43. data/intergration/roku_builder/test_files/loader_intergration_test/images/rsgde_mm_focus_hd.jpg +0 -0
  44. data/intergration/roku_builder/test_files/loader_intergration_test/images/rsgde_splash_hd.jpg +0 -0
  45. data/intergration/roku_builder/test_files/loader_intergration_test/manifest +21 -0
  46. data/intergration/roku_builder/test_files/loader_intergration_test/source/main.brs +21 -0
  47. data/intergration/roku_builder/test_files/loader_intergration_test/test.pkg +0 -0
  48. data/intergration/roku_builder/test_files/monitor_intergration_test/components/rectanglescene.xml +29 -0
  49. data/intergration/roku_builder/test_files/monitor_intergration_test/images/rde_mm_focus_hd.jpg +0 -0
  50. data/intergration/roku_builder/test_files/monitor_intergration_test/images/rde_mm_focus_sd.jpg +0 -0
  51. data/intergration/roku_builder/test_files/monitor_intergration_test/images/rde_splash_fhd.jpg +0 -0
  52. data/intergration/roku_builder/test_files/monitor_intergration_test/images/rde_splash_hd.jpg +0 -0
  53. data/intergration/roku_builder/test_files/monitor_intergration_test/images/rde_splash_sd.jpg +0 -0
  54. data/intergration/roku_builder/test_files/monitor_intergration_test/images/rsgde_bg_hd.jpg +0 -0
  55. data/intergration/roku_builder/test_files/monitor_intergration_test/images/rsgde_mm_focus_hd.jpg +0 -0
  56. data/intergration/roku_builder/test_files/monitor_intergration_test/images/rsgde_splash_hd.jpg +0 -0
  57. data/intergration/roku_builder/test_files/monitor_intergration_test/manifest +21 -0
  58. data/intergration/roku_builder/test_files/monitor_intergration_test/source/main.brs +21 -0
  59. data/intergration/roku_builder/test_files/monitor_intergration_test/test.pkg +0 -0
  60. data/intergration/roku_builder/test_files/navigator_intergration_test/components/rectanglescene.xml +29 -0
  61. data/intergration/roku_builder/test_files/navigator_intergration_test/images/rde_mm_focus_hd.jpg +0 -0
  62. data/intergration/roku_builder/test_files/navigator_intergration_test/images/rde_mm_focus_sd.jpg +0 -0
  63. data/intergration/roku_builder/test_files/navigator_intergration_test/images/rde_splash_fhd.jpg +0 -0
  64. data/intergration/roku_builder/test_files/navigator_intergration_test/images/rde_splash_hd.jpg +0 -0
  65. data/intergration/roku_builder/test_files/navigator_intergration_test/images/rde_splash_sd.jpg +0 -0
  66. data/intergration/roku_builder/test_files/navigator_intergration_test/images/rsgde_bg_hd.jpg +0 -0
  67. data/intergration/roku_builder/test_files/navigator_intergration_test/images/rsgde_mm_focus_hd.jpg +0 -0
  68. data/intergration/roku_builder/test_files/navigator_intergration_test/images/rsgde_splash_hd.jpg +0 -0
  69. data/intergration/roku_builder/test_files/navigator_intergration_test/manifest +21 -0
  70. data/intergration/roku_builder/test_files/navigator_intergration_test/source/main.brs +21 -0
  71. data/intergration/roku_builder/test_files/navigator_intergration_test/test.pkg +0 -0
  72. data/intergration/roku_builder/test_files/packager_intergration_test/components/rectanglescene.xml +29 -0
  73. data/intergration/roku_builder/test_files/packager_intergration_test/images/rde_mm_focus_hd.jpg +0 -0
  74. data/intergration/roku_builder/test_files/packager_intergration_test/images/rde_mm_focus_sd.jpg +0 -0
  75. data/intergration/roku_builder/test_files/packager_intergration_test/images/rde_splash_fhd.jpg +0 -0
  76. data/intergration/roku_builder/test_files/packager_intergration_test/images/rde_splash_hd.jpg +0 -0
  77. data/intergration/roku_builder/test_files/packager_intergration_test/images/rde_splash_sd.jpg +0 -0
  78. data/intergration/roku_builder/test_files/packager_intergration_test/images/rsgde_bg_hd.jpg +0 -0
  79. data/intergration/roku_builder/test_files/packager_intergration_test/images/rsgde_mm_focus_hd.jpg +0 -0
  80. data/intergration/roku_builder/test_files/packager_intergration_test/images/rsgde_splash_hd.jpg +0 -0
  81. data/intergration/roku_builder/test_files/packager_intergration_test/manifest +21 -0
  82. data/intergration/roku_builder/test_files/packager_intergration_test/source/main.brs +21 -0
  83. data/intergration/roku_builder/test_files/packager_intergration_test/test.pkg +0 -0
  84. data/intergration/roku_builder/test_files/profiler_intergration_test/components/rectanglescene.xml +29 -0
  85. data/intergration/roku_builder/test_files/profiler_intergration_test/images/rde_mm_focus_hd.jpg +0 -0
  86. data/intergration/roku_builder/test_files/profiler_intergration_test/images/rde_mm_focus_sd.jpg +0 -0
  87. data/intergration/roku_builder/test_files/profiler_intergration_test/images/rde_splash_fhd.jpg +0 -0
  88. data/intergration/roku_builder/test_files/profiler_intergration_test/images/rde_splash_hd.jpg +0 -0
  89. data/intergration/roku_builder/test_files/profiler_intergration_test/images/rde_splash_sd.jpg +0 -0
  90. data/intergration/roku_builder/test_files/profiler_intergration_test/images/rsgde_bg_hd.jpg +0 -0
  91. data/intergration/roku_builder/test_files/profiler_intergration_test/images/rsgde_mm_focus_hd.jpg +0 -0
  92. data/intergration/roku_builder/test_files/profiler_intergration_test/images/rsgde_splash_hd.jpg +0 -0
  93. data/intergration/roku_builder/test_files/profiler_intergration_test/manifest +21 -0
  94. data/intergration/roku_builder/test_files/profiler_intergration_test/source/main.brs +21 -0
  95. data/intergration/roku_builder/test_files/profiler_intergration_test/test.pkg +0 -0
  96. data/intergration/roku_builder/test_files/scripter_intergration_test/components/rectanglescene.xml +29 -0
  97. data/intergration/roku_builder/test_files/scripter_intergration_test/images/rde_mm_focus_hd.jpg +0 -0
  98. data/intergration/roku_builder/test_files/scripter_intergration_test/images/rde_mm_focus_sd.jpg +0 -0
  99. data/intergration/roku_builder/test_files/scripter_intergration_test/images/rde_splash_fhd.jpg +0 -0
  100. data/intergration/roku_builder/test_files/scripter_intergration_test/images/rde_splash_hd.jpg +0 -0
  101. data/intergration/roku_builder/test_files/scripter_intergration_test/images/rde_splash_sd.jpg +0 -0
  102. data/intergration/roku_builder/test_files/scripter_intergration_test/images/rsgde_bg_hd.jpg +0 -0
  103. data/intergration/roku_builder/test_files/scripter_intergration_test/images/rsgde_mm_focus_hd.jpg +0 -0
  104. data/intergration/roku_builder/test_files/scripter_intergration_test/images/rsgde_splash_hd.jpg +0 -0
  105. data/intergration/roku_builder/test_files/scripter_intergration_test/manifest +21 -0
  106. data/intergration/roku_builder/test_files/scripter_intergration_test/source/main.brs +21 -0
  107. data/intergration/roku_builder/test_files/scripter_intergration_test/test.pkg +0 -0
  108. data/intergration/roku_builder/test_files/tester_intergration_test/components/rectanglescene.xml +29 -0
  109. data/intergration/roku_builder/test_files/tester_intergration_test/images/rde_mm_focus_hd.jpg +0 -0
  110. data/intergration/roku_builder/test_files/tester_intergration_test/images/rde_mm_focus_sd.jpg +0 -0
  111. data/intergration/roku_builder/test_files/tester_intergration_test/images/rde_splash_fhd.jpg +0 -0
  112. data/intergration/roku_builder/test_files/tester_intergration_test/images/rde_splash_hd.jpg +0 -0
  113. data/intergration/roku_builder/test_files/tester_intergration_test/images/rde_splash_sd.jpg +0 -0
  114. data/intergration/roku_builder/test_files/tester_intergration_test/images/rsgde_bg_hd.jpg +0 -0
  115. data/intergration/roku_builder/test_files/tester_intergration_test/images/rsgde_mm_focus_hd.jpg +0 -0
  116. data/intergration/roku_builder/test_files/tester_intergration_test/images/rsgde_splash_hd.jpg +0 -0
  117. data/intergration/roku_builder/test_files/tester_intergration_test/manifest +21 -0
  118. data/intergration/roku_builder/test_files/tester_intergration_test/source/main.brs +21 -0
  119. data/intergration/roku_builder/test_files/tester_intergration_test/test.pkg +0 -0
  120. data/intergration/roku_builder/test_helper.rb +138 -0
  121. data/intergration/roku_builder/test_inspector.rb +35 -0
  122. data/intergration/roku_builder/test_linker.rb +32 -0
  123. data/intergration/roku_builder/test_loader.rb +38 -0
  124. data/intergration/roku_builder/test_monitor.rb +21 -0
  125. data/intergration/roku_builder/test_navigator.rb +34 -0
  126. data/intergration/roku_builder/test_packager.rb +41 -0
  127. data/intergration/roku_builder/test_profiler.rb +48 -0
  128. data/intergration/roku_builder/test_scripter.rb +38 -0
  129. data/intergration/roku_builder/test_tester.rb +21 -0
  130. data/lib/roku_builder.rb +143 -154
  131. data/lib/roku_builder/config.rb +17 -40
  132. data/lib/roku_builder/config_parser.rb +49 -200
  133. data/lib/roku_builder/config_validator.rb +1 -1
  134. data/lib/roku_builder/errors.rb +12 -0
  135. data/lib/roku_builder/git.rb +28 -0
  136. data/lib/roku_builder/hash.rb +8 -0
  137. data/lib/roku_builder/manifest.rb +121 -0
  138. data/lib/roku_builder/options.rb +68 -29
  139. data/lib/roku_builder/plugin.rb +30 -0
  140. data/lib/roku_builder/plugins/core.rb +117 -0
  141. data/lib/roku_builder/plugins/inspector.rb +104 -0
  142. data/lib/roku_builder/{linker.rb → plugins/linker.rb} +38 -12
  143. data/lib/roku_builder/plugins/loader.rb +152 -0
  144. data/lib/roku_builder/{monitor.rb → plugins/monitor.rb} +20 -9
  145. data/lib/roku_builder/{navigator.rb → plugins/navigator.rb} +136 -88
  146. data/lib/roku_builder/plugins/packager.rb +194 -0
  147. data/lib/roku_builder/plugins/profiler.rb +135 -0
  148. data/lib/roku_builder/plugins/scripter.rb +53 -0
  149. data/lib/roku_builder/{tester.rb → plugins/tester.rb} +28 -19
  150. data/lib/roku_builder/stager.rb +48 -12
  151. data/lib/roku_builder/string.rb +20 -0
  152. data/lib/roku_builder/util.rb +10 -34
  153. data/lib/roku_builder/version.rb +1 -1
  154. data/rakefile +5 -1
  155. data/roku_builder.gemspec +2 -0
  156. data/test/roku_builder/plugins/test_core.rb +112 -0
  157. data/test/roku_builder/plugins/test_inspector.rb +165 -0
  158. data/test/roku_builder/plugins/test_linker.rb +123 -0
  159. data/test/roku_builder/plugins/test_loader.rb +115 -0
  160. data/test/roku_builder/plugins/test_monitor.rb +141 -0
  161. data/test/roku_builder/plugins/test_navigator.rb +274 -0
  162. data/test/roku_builder/plugins/test_packager.rb +202 -0
  163. data/test/roku_builder/plugins/test_profiler.rb +127 -0
  164. data/test/roku_builder/plugins/test_scripter.rb +110 -0
  165. data/test/roku_builder/plugins/test_tester.rb +109 -0
  166. data/test/roku_builder/test_config.rb +51 -35
  167. data/test/roku_builder/test_config_parser.rb +76 -154
  168. data/test/roku_builder/test_config_validator.rb +18 -1
  169. data/test/roku_builder/test_files/{loader_test/manifest → config_parser_test/test.pkg} +0 -0
  170. data/test/roku_builder/test_files/config_test/config.json +3 -0
  171. data/test/roku_builder/test_files/controller_commands_test/manifest_template +7 -0
  172. data/test/roku_builder/test_files/core_test/manifest_template +7 -0
  173. data/test/roku_builder/test_files/core_test/test.pkg +0 -0
  174. data/test/roku_builder/test_files/inspector_test/manifest +6 -0
  175. data/test/roku_builder/test_files/inspector_test/test.pkg +0 -0
  176. data/test/roku_builder/test_files/linker_test/manifest +6 -0
  177. data/test/roku_builder/test_files/linker_test/test.pkg +0 -0
  178. data/test/roku_builder/test_files/loader_test/manifest_template +6 -0
  179. data/test/roku_builder/test_files/loader_test/test.pkg +0 -0
  180. data/test/roku_builder/test_files/loader_test/test.zip +0 -0
  181. data/test/roku_builder/test_files/manifest_test/manifest_comments +6 -0
  182. data/test/roku_builder/test_files/manifest_test/manifest_template +7 -0
  183. data/test/roku_builder/test_files/manifest_test/test.zip +0 -0
  184. data/test/roku_builder/test_files/packager_test/manifest +6 -0
  185. data/test/roku_builder/test_files/packager_test/scripter_test/manifest +6 -0
  186. data/test/roku_builder/test_files/packager_test/test.pkg +0 -0
  187. data/test/roku_builder/test_files/roku_builder_test/config.json +32 -0
  188. data/test/roku_builder/test_files/scripter_test/manifest +6 -0
  189. data/test/roku_builder/test_files/scripter_test/test.pkg +0 -0
  190. data/test/roku_builder/test_files/stager_test/test.pkg +0 -0
  191. data/test/roku_builder/test_files/tester_test/manifest +6 -0
  192. data/test/roku_builder/test_files/tester_test/test.pkg +0 -0
  193. data/test/roku_builder/test_helper.rb +44 -11
  194. data/test/roku_builder/test_logger.rb +1 -0
  195. data/test/roku_builder/test_manifest.rb +99 -0
  196. data/test/roku_builder/test_options.rb +106 -77
  197. data/test/roku_builder/test_options_plugins.rb +111 -0
  198. data/test/roku_builder/test_plugin.rb +48 -0
  199. data/test/roku_builder/test_roku_builder.rb +239 -0
  200. data/test/roku_builder/test_stager.rb +49 -101
  201. data/test/roku_builder/test_util.rb +19 -4
  202. metadata +241 -47
  203. data/lib/roku_builder/controller.rb +0 -98
  204. data/lib/roku_builder/controller_commands.rb +0 -224
  205. data/lib/roku_builder/error_handler.rb +0 -142
  206. data/lib/roku_builder/inspector.rb +0 -82
  207. data/lib/roku_builder/keyer.rb +0 -106
  208. data/lib/roku_builder/loader.rb +0 -131
  209. data/lib/roku_builder/manifest_manager.rb +0 -126
  210. data/lib/roku_builder/packager.rb +0 -43
  211. data/lib/roku_builder/profiler.rb +0 -96
  212. data/lib/roku_builder/scripter.rb +0 -39
  213. data/test/roku_builder/test_controller.rb +0 -70
  214. data/test/roku_builder/test_controller_commands.rb +0 -465
  215. data/test/roku_builder/test_error_handler.rb +0 -90
  216. data/test/roku_builder/test_inspector.rb +0 -298
  217. data/test/roku_builder/test_keyer.rb +0 -176
  218. data/test/roku_builder/test_linker.rb +0 -110
  219. data/test/roku_builder/test_loader.rb +0 -337
  220. data/test/roku_builder/test_manifest_manager.rb +0 -103
  221. data/test/roku_builder/test_monitor.rb +0 -137
  222. data/test/roku_builder/test_navigator.rb +0 -280
  223. data/test/roku_builder/test_packager.rb +0 -127
  224. data/test/roku_builder/test_profiler.rb +0 -35
  225. data/test/roku_builder/test_scripter.rb +0 -102
  226. data/test/roku_builder/test_tester.rb +0 -130
@@ -1,90 +0,0 @@
1
- # ********** Copyright Viacom, Inc. Apache 2.0 **********
2
-
3
- require_relative "test_helper.rb"
4
- module RokuBuilder
5
- class ErrorHandler
6
- class << self
7
- def abort
8
- #do nothing
9
- end
10
- end
11
- end
12
-
13
- class ErrorHandlerTest < Minitest::Test
14
- def test_handle_error_codes
15
- error_groups = {
16
- fatal: {
17
- options_code: [
18
- EXTRA_COMMANDS,
19
- NO_COMMANDS,
20
- EXTRA_SOURCES,
21
- NO_SOURCE,
22
- BAD_CURRENT,
23
- BAD_IN_FILE
24
- ],
25
- configure_code:[
26
- CONFIG_OVERWRITE,
27
- ],
28
- device_code: [
29
- BAD_DEVICE,
30
- NO_DEVICES,
31
- ],
32
- load_code: [
33
- MISSING_CONFIG,
34
- INVALID_CONFIG,
35
- MISSING_MANIFEST,
36
- UNKNOWN_DEVICE,
37
- UNKNOWN_PROJECT,
38
- UNKNOWN_STAGE,
39
- BAD_PROJECT_DIR,
40
- BAD_KEY_FILE
41
- ],
42
- command_code: [
43
- FAILED_SIDELOAD,
44
- FAILED_SIGNING,
45
- FAILED_DEEPLINKING,
46
- FAILED_NAVIGATING,
47
- FAILED_SCREENCAPTURE,
48
- MISSING_MANIFEST,
49
- BAD_PRINT_ATTRIBUTE
50
- ],
51
- configs_code: [
52
- MISSING_OUT_FOLDER
53
- ]
54
- },
55
- info: {
56
- device_code: [
57
- CHANGED_DEVICE
58
- ],
59
- configure_code:[
60
- SUCCESS
61
- ]
62
- },
63
- warn: {
64
- load_code: [
65
- DEPRICATED_CONFIG
66
- ]
67
- },
68
- debug: {
69
- configs_code: [
70
- VALID
71
- ]
72
- }
73
- }
74
- error_groups.each_pair do |type,errors|
75
- errors.each_pair do |key,value|
76
- value.each do |code|
77
- logger = Minitest::Mock.new
78
- options = {logger: logger}
79
- options[:options] = {deeplink_depricated: true} if key == :load_code or key == :options_code
80
- options[key] = code
81
- logger.expect(type, nil) {|string| string.class == String}
82
- method = "handle_#{key}s"
83
- ErrorHandler.send(method.to_sym, **options)
84
- logger.verify
85
- end
86
- end
87
- end
88
- end
89
- end
90
- end
@@ -1,298 +0,0 @@
1
- # ********** Copyright Viacom, Inc. Apache 2.0 **********
2
-
3
- require_relative "test_helper.rb"
4
- module RokuBuilder
5
- class InspectorTest < Minitest::Test
6
- def test_inspector_inspect
7
- connection = Minitest::Mock.new
8
- faraday = Minitest::Mock.new
9
- io = Minitest::Mock.new
10
- response = Minitest::Mock.new
11
-
12
- device_config = {
13
- ip: "111.222.333",
14
- user: "user",
15
- password: "password"
16
- }
17
- path = "/plugin_inspect"
18
- password = "password"
19
- payload ={
20
- mysubmit: "Inspect",
21
- password: password,
22
- archive: io
23
- }
24
- body = "r1.insertCell(0).innerHTML = 'App Name: ';"+
25
- " r1.insertCell(1).innerHTML = '<div class=\"roku-color-c3\">app_name</div>';"+
26
- ""+
27
- " var r2 = table.insertRow(1);"+
28
- " r2.insertCell(0).innerHTML = 'Dev ID: ';"+
29
- " r2.insertCell(1).innerHTML = '<div class=\"roku-color-c3\"><font face=\"Courier\">dev_id</font></div>';"+
30
- " "+
31
- " var dd = new Date(628232400);"+
32
- " var ddStr = \"\";"+
33
- " ddStr += (dd.getMonth()+1);"+
34
- " ddStr += \"/\";"+
35
- " ddStr += dd.getDate();"+
36
- " ddStr += \"/\";"+
37
- " ddStr += dd.getFullYear();"+
38
- " ddStr += \" \";"+
39
- " ddStr += dd.getHours();"+
40
- " ddStr += \":\";"+
41
- " ddStr += dd.getMinutes();"+
42
- " ddStr += \":\";"+
43
- " ddStr += dd.getSeconds(); "+
44
- " "+
45
- " var r3 = table.insertRow(2);"+
46
- " r3.insertCell(0).innerHTML = 'Creation Date: ';"+
47
- " r3.insertCell(1).innerHTML = '<div class=\"roku-color-c3\">'+ddStr+'</div>';"+
48
- " "+
49
- " var r4 = table.insertRow(3);"+
50
- " r4.insertCell(0).innerHTML = 'dev.zip: ';"+
51
- " r4.insertCell(1).innerHTML = '<div class=\"roku-color-c3\"><font face=\"Courier\">dev_zip</font></div>';"
52
-
53
- connection.expect(:post, response) do |arg1, arg2|
54
- assert_equal path, arg1
55
- assert_equal payload[:mysubmit], arg2[:mysubmit]
56
- assert_equal payload[:password], arg2[:passwd]
57
- assert payload[:archive] === arg2[:archive]
58
- end
59
- faraday.expect(:headers, {})
60
- faraday.expect(:request, nil, [:digest, device_config[:user], device_config[:password]])
61
- faraday.expect(:request, nil, [:multipart])
62
- faraday.expect(:request, nil, [:url_encoded])
63
- faraday.expect(:adapter, nil, [Faraday.default_adapter])
64
- response.expect(:body, body)
65
- response.expect(:body, body)
66
- response.expect(:body, body)
67
- response.expect(:body, body)
68
- response.expect(:body, body)
69
-
70
-
71
- package_info = {}
72
- inspector = Inspector.new(**device_config)
73
- Faraday.stub(:new, connection, faraday) do
74
- Faraday::UploadIO.stub(:new, io) do
75
- package_info = inspector.inspect(pkg: "pkg/path", password: password)
76
- end
77
- end
78
-
79
- assert_equal "app_name", package_info[:app_name]
80
- assert_equal "dev_id", package_info[:dev_id]
81
- assert_equal Time.at(628232400).to_s, package_info[:creation_date]
82
- assert_equal "dev_zip", package_info[:dev_zip]
83
-
84
- connection.verify
85
- faraday.verify
86
- io.verify
87
- response.verify
88
- end
89
- def test_inspector_inspect_old_interface
90
- connection = Minitest::Mock.new
91
- faraday = Minitest::Mock.new
92
- io = Minitest::Mock.new
93
- response = Minitest::Mock.new
94
-
95
- device_config = {
96
- ip: "111.222.333",
97
- user: "user",
98
- password: "password"
99
- }
100
- path = "/plugin_inspect"
101
- password = "password"
102
- payload ={
103
- mysubmit: "Inspect",
104
- password: password,
105
- archive: io
106
- }
107
- body = " <table cellpadding=\"2\">"+
108
- " <tbody><tr><td> App Name: </td><td> <font color=\"blue\">app_name</font> </td></tr>"+
109
- " <tr><td> Dev ID: </td><td> <font face=\"Courier\" color=\"blue\">dev_id</font> </td></tr>"+
110
- " <tr><td> Creation Date: </td><td> <font color=\"blue\">"+
111
- " <script type=\"text/javascript\">"+
112
- " var d = new Date(628232400)"+
113
- " document.write(d.getMonth()+1)"+
114
- " document.write(\"/\")"+
115
- " document.write(d.getDate())"+
116
- " document.write(\"/\");"+
117
- " document.write(d.getFullYear())"+
118
- " document.write(\" \")"+
119
- " document.write(d.getHours())"+
120
- " document.write(\":\")"+
121
- " document.write(d.getMinutes())"+
122
- " document.write(\":\")"+
123
- " document.write(d.getSeconds())"+
124
- " </script>1/17/1970 16:42:28"+
125
- " </font> </td></tr>"+
126
- " <tr><td> dev.zip: </td><td> <font face=\"Courier\" color=\"blue\">dev_zip</font> </td></tr>"+
127
- " </tbody></table>"
128
-
129
- connection.expect(:post, response) do |arg1, arg2|
130
- assert_equal path, arg1
131
- assert_equal payload[:mysubmit], arg2[:mysubmit]
132
- assert_equal payload[:password], arg2[:passwd]
133
- assert payload[:archive] === arg2[:archive]
134
- end
135
- faraday.expect(:headers, {})
136
- faraday.expect(:request, nil, [:digest, device_config[:user], device_config[:password]])
137
- faraday.expect(:request, nil, [:multipart])
138
- faraday.expect(:request, nil, [:url_encoded])
139
- faraday.expect(:adapter, nil, [Faraday.default_adapter])
140
- response.expect(:body, body)
141
- response.expect(:body, body)
142
- response.expect(:body, body)
143
- response.expect(:body, body)
144
-
145
-
146
- package_info = {}
147
- inspector = Inspector.new(**device_config)
148
- Faraday.stub(:new, connection, faraday) do
149
- Faraday::UploadIO.stub(:new, io) do
150
- package_info = inspector.inspect(pkg: "pkg/path", password: password)
151
- end
152
- end
153
-
154
- assert_equal "app_name", package_info[:app_name]
155
- assert_equal "dev_id", package_info[:dev_id]
156
- assert_equal Time.at(628232400).to_s, package_info[:creation_date]
157
- assert_equal "dev_zip", package_info[:dev_zip]
158
-
159
- connection.verify
160
- faraday.verify
161
- io.verify
162
- response.verify
163
- end
164
-
165
- def test_screencapture
166
- connection = Minitest::Mock.new
167
- faraday = Minitest::Mock.new
168
- response = Minitest::Mock.new
169
- io = Minitest::Mock.new
170
-
171
- device_config = {
172
- ip: "111.222.333",
173
- user: "user",
174
- password: "password"
175
- }
176
- screencapture_config = {
177
- out_folder: "out/folder/path",
178
- out_file: nil
179
- }
180
- path = "/plugin_inspect"
181
- password = "password"
182
- payload ={
183
- mysubmit: "Screenshot",
184
- password: password,
185
- archive: io
186
- }
187
- body = "<hr /><img src=\"pkgs/dev.jpg?time=1455629573\">"
188
- connection.expect(:post, response) do |arg1, arg2|
189
- assert_equal path, arg1
190
- assert_equal payload[:mysubmit], arg2[:mysubmit]
191
- assert_equal payload[:password], arg2[:passwd]
192
- assert payload[:archive] === arg2[:archive]
193
- end
194
- faraday.expect(:headers, {})
195
- faraday.expect(:request, nil, [:digest, device_config[:user], device_config[:password]])
196
- faraday.expect(:request, nil, [:multipart])
197
- faraday.expect(:request, nil, [:url_encoded])
198
- faraday.expect(:adapter, nil, [Faraday.default_adapter])
199
- response.expect(:body, body)
200
- response.expect(:body, body)
201
- response.expect(:body, body)
202
-
203
-
204
- path2 = "pkgs/dev.jpg?time=1455629573"
205
- body2 = "<screencapture>"
206
- connection.expect(:get, response, [path2])
207
- faraday.expect(:request, nil, [:digest, device_config[:user], device_config[:password]])
208
- faraday.expect(:adapter, nil, [Faraday.default_adapter])
209
- response.expect(:body, body2)
210
- response.expect(:success?, true)
211
- io.expect("write", nil, [body2])
212
-
213
-
214
- success = false
215
- inspector = Inspector.new(**device_config)
216
- Faraday.stub(:new, connection, faraday) do
217
- Faraday::UploadIO.stub(:new, io) do
218
- File.stub(:open, nil, io) do
219
- success = inspector.screencapture(**screencapture_config)
220
- end
221
- end
222
- end
223
-
224
- assert success
225
-
226
- connection.verify
227
- faraday.verify
228
- io.verify
229
- response.verify
230
- end
231
- def test_screencapture_png
232
- connection = Minitest::Mock.new
233
- faraday = Minitest::Mock.new
234
- response = Minitest::Mock.new
235
- io = Minitest::Mock.new
236
-
237
- device_config = {
238
- ip: "111.222.333",
239
- user: "user",
240
- password: "password"
241
- }
242
- screencapture_config = {
243
- out_folder: "out/folder/path",
244
- out_file: nil
245
- }
246
- path = "/plugin_inspect"
247
- password = "password"
248
- payload ={
249
- mysubmit: "Screenshot",
250
- password: password,
251
- archive: io
252
- }
253
- body = "<hr /><img src=\"pkgs/dev.png?time=1455629573\">"
254
- connection.expect(:post, response) do |arg1, arg2|
255
- assert_equal path, arg1
256
- assert_equal payload[:mysubmit], arg2[:mysubmit]
257
- assert_equal payload[:password], arg2[:passwd]
258
- assert payload[:archive] === arg2[:archive]
259
- end
260
- faraday.expect(:headers, {})
261
- faraday.expect(:request, nil, [:digest, device_config[:user], device_config[:password]])
262
- faraday.expect(:request, nil, [:multipart])
263
- faraday.expect(:request, nil, [:url_encoded])
264
- faraday.expect(:adapter, nil, [Faraday.default_adapter])
265
- response.expect(:body, body)
266
- response.expect(:body, body)
267
- response.expect(:body, body)
268
-
269
-
270
- path2 = "pkgs/dev.png?time=1455629573"
271
- body2 = "<screencapture>"
272
- connection.expect(:get, response, [path2])
273
- faraday.expect(:request, nil, [:digest, device_config[:user], device_config[:password]])
274
- faraday.expect(:adapter, nil, [Faraday.default_adapter])
275
- response.expect(:body, body2)
276
- response.expect(:success?, true)
277
- io.expect("write", nil, [body2])
278
-
279
-
280
- success = false
281
- inspector = Inspector.new(**device_config)
282
- Faraday.stub(:new, connection, faraday) do
283
- Faraday::UploadIO.stub(:new, io) do
284
- File.stub(:open, nil, io) do
285
- success = inspector.screencapture(**screencapture_config)
286
- end
287
- end
288
- end
289
-
290
- assert success
291
-
292
- connection.verify
293
- faraday.verify
294
- io.verify
295
- response.verify
296
- end
297
- end
298
- end
@@ -1,176 +0,0 @@
1
- # ********** Copyright Viacom, Inc. Apache 2.0 **********
2
-
3
- require_relative "test_helper.rb"
4
-
5
- module RokuBuilder
6
- class KeyerTest < Minitest::Test
7
- def test_keyer_dev_id
8
- connection = Minitest::Mock.new
9
- faraday = Minitest::Mock.new
10
- response = Minitest::Mock.new
11
-
12
- device_config = {
13
- ip: "111.222.333",
14
- user: "user",
15
- password: "password"
16
- }
17
- path = "/plugin_package"
18
- body = "v class=\"roku-font-5\"><label>Your Dev ID: &nbsp;</label> dev_id<hr></div>"
19
-
20
- connection.expect(:get, response, [path])
21
- faraday.expect(:request, nil, [:digest, device_config[:user], device_config[:password]])
22
- faraday.expect(:adapter, nil, [Faraday.default_adapter])
23
- response.expect(:body, body)
24
- response.expect(:body, body)
25
-
26
-
27
- dev_id = nil
28
- keyer = Keyer.new(**device_config)
29
- Faraday.stub(:new, connection, faraday) do
30
- dev_id = keyer.dev_id
31
- end
32
-
33
- assert_equal "dev_id", dev_id
34
-
35
- connection.verify
36
- faraday.verify
37
- response.verify
38
- end
39
- def test_keyer_dev_id_old_interface
40
- connection = Minitest::Mock.new
41
- faraday = Minitest::Mock.new
42
- response = Minitest::Mock.new
43
-
44
- device_config = {
45
- ip: "111.222.333",
46
- user: "user",
47
- password: "password"
48
- }
49
- path = "/plugin_package"
50
- body = "<p> Your Dev ID: <font face=\"Courier\">dev_id</font> </p>"
51
-
52
- connection.expect(:get, response, [path])
53
- faraday.expect(:request, nil, [:digest, device_config[:user], device_config[:password]])
54
- faraday.expect(:adapter, nil, [Faraday.default_adapter])
55
- response.expect(:body, body)
56
-
57
-
58
- dev_id = nil
59
- keyer = Keyer.new(**device_config)
60
- Faraday.stub(:new, connection, faraday) do
61
- dev_id = keyer.dev_id
62
- end
63
-
64
- assert_equal "dev_id", dev_id
65
-
66
- connection.verify
67
- faraday.verify
68
- response.verify
69
- end
70
-
71
- def test_keyer_rekey_changed
72
- connection = Minitest::Mock.new
73
- faraday = Minitest::Mock.new
74
- io = Minitest::Mock.new
75
- response = Minitest::Mock.new
76
-
77
- device_config = {
78
- ip: "111.222.333",
79
- user: "user",
80
- password: "password"
81
- }
82
- path = "/plugin_inspect"
83
- password = "password"
84
- payload ={
85
- mysubmit: "Rekey",
86
- password: password,
87
- archive: io
88
- }
89
-
90
- connection.expect(:post, response) do |arg1, arg2|
91
- assert_equal path, arg1
92
- assert_equal payload[:mysubmit], arg2[:mysubmit]
93
- assert_equal payload[:password], arg2[:passwd]
94
- assert payload[:archive] === arg2[:archive]
95
- end
96
- faraday.expect(:headers, {})
97
- faraday.expect(:request, nil, [:digest, device_config[:user], device_config[:password]])
98
- faraday.expect(:request, nil, [:multipart])
99
- faraday.expect(:request, nil, [:url_encoded])
100
- faraday.expect(:adapter, nil, [Faraday.default_adapter])
101
-
102
- # This test fails with the following seeds due to the random number
103
- # generator spitting out the same number twice
104
- # SEED=21894
105
- # SEED=31813
106
- dev_id = Proc.new {"#{Random.rand(100)}"}
107
- keyer = Keyer.new(**device_config)
108
- key_changed = nil
109
- Faraday.stub(:new, connection, faraday) do
110
- Faraday::UploadIO.stub(:new, io) do
111
- keyer.stub(:dev_id, dev_id) do
112
- key_changed = keyer.rekey(keyed_pkg: "pkg/path", password: password)
113
- end
114
- end
115
- end
116
-
117
- assert key_changed
118
-
119
- connection.verify
120
- faraday.verify
121
- io.verify
122
- response.verify
123
- end
124
-
125
- def test_keyer_generate_new_key
126
- connection = Minitest::Mock.new
127
-
128
- connection.expect(:puts, nil, ["genkey"])
129
- connection.expect(:waitfor, nil) do |config, &blk|
130
- assert_equal(/./, config['Match'])
131
- assert_equal(false, config['Timeout'])
132
- txt = "Password: password\nDevID: devid\n"
133
- blk.call(txt)
134
- true
135
- end
136
- connection.expect(:close, nil, [])
137
-
138
- device_config = {
139
- ip: "111.222.333",
140
- user: "user",
141
- password: "password"
142
- }
143
- keyer = Keyer.new(**device_config)
144
- Net::Telnet.stub(:new, connection) do
145
- keyer.send(:generate_new_key)
146
- end
147
- end
148
-
149
- def test_keyer_genkey
150
- loader = Minitest::Mock.new
151
- packager = Minitest::Mock.new
152
-
153
- loader.expect(:sideload, nil)
154
- packager.expect(:package, nil, [app_name_version: "key_dev_id", out_file: "/tmp/key_dev_id.pkg", password: "password"])
155
-
156
- device_config = {
157
- ip: "111.222.333",
158
- user: "user",
159
- password: "password"
160
- }
161
-
162
- keyer = Keyer.new(**device_config)
163
-
164
- Loader.stub(:new, loader) do
165
- Packager.stub(:new, packager) do
166
- keyer.stub(:generate_new_key, ["password", "dev_id"]) do
167
- keyer.genkey
168
- end
169
- end
170
- end
171
-
172
- loader.verify
173
- packager.verify
174
- end
175
- end
176
- end