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,39 +0,0 @@
1
- # ********** Copyright Viacom, Inc. Apache 2.0 **********
2
-
3
- module RokuBuilder
4
-
5
- # Helper for extending for scripting
6
- class Scripter
7
-
8
- # Prints attributes from config or project to allow scripting
9
- # @param attribute [Symbol] attribute to print
10
- # @param configs [Hash] Parsed config hash
11
- def self.print(attribute:, configs:)
12
- attributes = [
13
- :title, :build_version, :app_version, :root_dir, :app_name
14
- ]
15
-
16
- unless attributes.include? attribute
17
- return BAD_PRINT_ATTRIBUTE
18
- end
19
-
20
- read_config = {root_dir: configs[:project_config][:directory]}
21
-
22
- case attribute
23
- when :root_dir
24
- printf "%s", configs[:project_config][:directory]
25
- when :app_name
26
- printf "%s", configs[:project_config][:app_name]
27
- when :title
28
- printf "%s", ManifestManager.read_manifest(**read_config)[:title]
29
- when :build_version
30
- printf "%s", ManifestManager.read_manifest(**read_config)[:build_version]
31
- when :app_version
32
- major = ManifestManager.read_manifest(**read_config)[:major_version]
33
- minor = ManifestManager.read_manifest(**read_config)[:minor_version]
34
- printf "%s.%s", major, minor
35
- end
36
- SUCCESS
37
- end
38
- end
39
- end
@@ -1,70 +0,0 @@
1
- # ********** Copyright Viacom, Inc. Apache 2.0 **********
2
-
3
- require_relative "test_helper.rb"
4
- module RokuBuilder
5
- class ControllerTest < Minitest::Test
6
- def test_controller_check_devices
7
- ping = Minitest::Mock.new
8
- options = build_options({sideload: true, device_given: false, working: true})
9
- raw = {
10
- devices: {
11
- a: {ip: "2.2.2.2"},
12
- b: {ip: "3.3.3.3"}
13
- }
14
- }
15
- parsed = {
16
- device_config: {ip: "1.1.1.1"}
17
- }
18
- config = Config.new(options: options)
19
- config.instance_variable_set(:@config, raw)
20
- config.instance_variable_set(:@parsed, parsed)
21
-
22
- Net::Ping::External.stub(:new, ping) do
23
-
24
- ping.expect(:ping?, true, [parsed[:device_config][:ip], 1, 0.2, 1])
25
- code, ret = Controller.send(:check_devices, {options: options, config: config})
26
- assert_equal GOOD_DEVICE, code
27
-
28
- ping.expect(:ping?, false, [parsed[:device_config][:ip], 1, 0.2, 1])
29
- ping.expect(:ping?, false, [raw[:devices][:a][:ip], 1, 0.2, 1])
30
- ping.expect(:ping?, false, [raw[:devices][:b][:ip], 1, 0.2, 1])
31
- code = Controller.send(:check_devices, {options: options, config: config})
32
- assert_equal NO_DEVICES, code
33
-
34
- ping.expect(:ping?, false, [parsed[:device_config][:ip], 1, 0.2, 1])
35
- ping.expect(:ping?, true, [raw[:devices][:a][:ip], 1, 0.2, 1])
36
- code = Controller.send(:check_devices, {options: options, config: config})
37
- assert_equal CHANGED_DEVICE, code
38
- assert_equal raw[:devices][:a][:ip], config.parsed[:device_config][:ip]
39
-
40
- options[:device_given] = true
41
- ping.expect(:ping?, false, [parsed[:device_config][:ip], 1, 0.2, 1])
42
- code = Controller.send(:check_devices, {options: options, config: config})
43
- assert_equal BAD_DEVICE, code
44
-
45
- options = build_options({build: true, device_given: false, working: true})
46
- code = Controller.send(:check_devices, {options: options, config: config})
47
- assert_equal GOOD_DEVICE, code
48
- end
49
- end
50
-
51
- def test_controller_run_debug
52
- tests = [
53
- {options: {debug: true}, method: :set_debug},
54
- {options: {verbose: true}, method: :set_info},
55
- {options: {}, method: :set_warn}
56
- ]
57
- tests.each do |test|
58
- logger = Minitest::Mock.new
59
- logger.expect(:call, nil)
60
-
61
- Logger.stub(test[:method], logger) do
62
- Controller.initialize_logger(options: test[:options])
63
- end
64
-
65
- logger.verify
66
- end
67
- end
68
- end
69
- end
70
-
@@ -1,465 +0,0 @@
1
- # ********** Copyright Viacom, Inc. Apache 2.0 **********
2
-
3
- require_relative "test_helper.rb"
4
- module RokuBuilder
5
- class ControllerCommandsTest < Minitest::Test
6
-
7
- def test_controller_commands_validate
8
- logger = Minitest::Mock.new
9
- Logger.class_variable_set(:@@instance, logger)
10
- logger.expect(:info, nil, ["Config validated"])
11
- code = ControllerCommands.validate()
12
- assert_equal SUCCESS, code
13
- logger.verify
14
- Logger.set_testing
15
- end
16
- def test_controller_commands_sideload
17
- loader = Minitest::Mock.new
18
- stager = Minitest::Mock.new
19
-
20
- options = build_options({sideload: true, config: "~/.roku_config.rb", working: true})
21
- config = Config.new(options: options)
22
- config.instance_variable_set(:@config, good_config)
23
- config.parse
24
- # Test Success
25
- loader.expect(:sideload, [SUCCESS, "build_version"], [config.parsed[:sideload_config]])
26
- stager.expect(:stage, true)
27
- stager.expect(:unstage, true)
28
- stager.expect(:method, :git)
29
-
30
- code = nil
31
- Loader.stub(:new, loader) do
32
- Stager.stub(:new, stager) do
33
- code = Controller.send(:execute_commands, {options: options, config: config})
34
- end
35
- end
36
- assert_equal SUCCESS, code
37
-
38
- stager.expect(:stage, true)
39
- stager.expect(:unstage, true)
40
-
41
- # Test Failure
42
- loader.expect(:sideload, [FAILED_SIDELOAD, "build_version"], [config.parsed[:sideload_config]])
43
- Loader.stub(:new, loader) do
44
- Stager.stub(:new, stager) do
45
- code = Controller.send(:execute_commands, {options: options, config: config})
46
- end
47
- end
48
- assert_equal FAILED_SIDELOAD, code
49
-
50
- loader.verify
51
- stager.verify
52
- end
53
-
54
- def test_controller_commands_package
55
- keyer = Minitest::Mock.new
56
- loader = Minitest::Mock.new
57
- stager = Minitest::Mock.new
58
- packager = Minitest::Mock.new
59
- inspector = Minitest::Mock.new
60
-
61
- options = build_options({package: true, inspect: true, out_folder: "/tmp", config: "~/.roku_config.json", set_stage: true})
62
- config = Config.new(options: options)
63
- config.instance_variable_set(:@config, good_config)
64
- config.parse
65
- info = {app_name: "app", dev_id: "id", creation_date: "date", dev_zip: ""}
66
-
67
- loader.expect(:sideload, [SUCCESS, "build_version"], [config.parsed[:sideload_config]])
68
- keyer.expect(:rekey, true, [config.parsed[:key]])
69
- packager.expect(:package, true, [config.parsed[:package_config]])
70
- inspector.expect(:inspect, info, [config.parsed[:inspect_config]])
71
- stager.expect(:stage, true)
72
- stager.expect(:unstage, true)
73
- stager.expect(:method, :git)
74
-
75
- code = nil
76
- Keyer.stub(:new, keyer) do
77
- Loader.stub(:new, loader) do
78
- Packager.stub(:new, packager) do
79
- Inspector.stub(:new, inspector) do
80
- Stager.stub(:new, stager) do
81
- ::Logger.stub(:new, ::Logger.new("/dev/null")) do
82
- code = Controller.send(:execute_commands, {options: options, config: config})
83
- end
84
- end
85
- end
86
- end
87
- end
88
- end
89
- assert_equal SUCCESS, code
90
-
91
- keyer.verify
92
- loader.verify
93
- stager.verify
94
- packager.verify
95
- inspector.verify
96
- end
97
-
98
- def test_controller_commands_package_outfile
99
- keyer = Minitest::Mock.new
100
- loader = Minitest::Mock.new
101
- stager = Minitest::Mock.new
102
- packager = Minitest::Mock.new
103
- inspector = Minitest::Mock.new
104
-
105
- options = build_options({package: true, inspect: true, out: "/tmp/out.pkg", config: "~/.roku_config.json", set_stage: true})
106
- config = Config.new(options: options)
107
- config.instance_variable_set(:@config, good_config)
108
- config.parse
109
- info = {app_name: "app", dev_id: "id", creation_date: "date", dev_zip: ""}
110
-
111
- loader.expect(:sideload, [SUCCESS, "build_version"], [config.parsed[:sideload_config]])
112
- keyer.expect(:rekey, true, [config.parsed[:key]])
113
- packager.expect(:package, true, [config.parsed[:package_config]])
114
- inspector.expect(:inspect, info, [config.parsed[:inspect_config]])
115
- stager.expect(:stage, true)
116
- stager.expect(:unstage, true)
117
- stager.expect(:method, :git)
118
-
119
- code = nil
120
- Keyer.stub(:new, keyer) do
121
- Loader.stub(:new, loader) do
122
- Packager.stub(:new, packager) do
123
- Inspector.stub(:new, inspector) do
124
- Stager.stub(:new, stager) do
125
- ::Logger.stub(:new, ::Logger.new("/dev/null")) do
126
- code = Controller.send(:execute_commands, {options: options, config: config})
127
- end
128
- end
129
- end
130
- end
131
- end
132
- end
133
- assert_equal SUCCESS, code
134
-
135
- keyer.verify
136
- loader.verify
137
- stager.verify
138
- packager.verify
139
- inspector.verify
140
- end
141
-
142
- def test_controller_commands_build
143
- loader = Minitest::Mock.new
144
- stager = Minitest::Mock.new
145
-
146
- code = nil
147
- options = build_options({build: true, out_folder: "/tmp", config: "~/.roku_config.json", working: true})
148
- config = Config.new(options: options)
149
- config.instance_variable_set(:@config, good_config)
150
- config.parse
151
- loader.expect(:build, "/tmp/build", [config.parsed[:build_config]])
152
- stager.expect(:stage, true)
153
- stager.expect(:unstage, true)
154
- stager.expect(:method, :git)
155
-
156
- Loader.stub(:new, loader) do
157
- ManifestManager.stub(:build_version, "1") do
158
- Stager.stub(:new, stager) do
159
- code = Controller.send(:execute_commands, {options: options, config: config})
160
- end
161
- end
162
- end
163
- assert_equal SUCCESS, code
164
- loader.verify
165
- stager.verify
166
- end
167
- def test_controller_commands_update
168
- mock = Minitest::Mock.new
169
- stager = Minitest::Mock.new
170
-
171
- code = nil
172
- options = build_options({update: true, out_folder: "/tmp", config: "~/.roku_config.json", working: true})
173
- config = Config.new(options: options)
174
- config.instance_variable_set(:@config, good_config)
175
- config.parse
176
- mock.expect(:call, "1", [config.parsed[:manifest_config]])
177
- mock.expect(:call, "2", [config.parsed[:manifest_config]])
178
- stager.expect(:stage, true)
179
- stager.expect(:unstage, true)
180
-
181
- ManifestManager.stub(:build_version, mock) do
182
- ManifestManager.stub(:update_build, mock) do
183
- Stager.stub(:new, stager) do
184
- code = Controller.send(:execute_commands, {options: options, config: config})
185
- end
186
- end
187
- end
188
- mock.verify
189
- stager.verify
190
- assert_equal SUCCESS, code
191
- end
192
-
193
- def test_controller_commands_deeplink
194
- mock = Minitest::Mock.new
195
-
196
- code = nil
197
- options = build_options({deeplink: true, deeplink_options: "a:b", config: "~/.roku_config.json"})
198
- config = Config.new(options: options)
199
- config.instance_variable_set(:@config, good_config)
200
- config.parse
201
- mock.expect(:launch, "true", [config.parsed[:deeplink_config]])
202
- Linker.stub(:new, mock) do
203
- code = Controller.send(:execute_commands, {options: options, config: config})
204
- end
205
- mock.verify
206
- assert_equal SUCCESS, code
207
- end
208
- def test_controller_commands_deeplink_sideload
209
- mock = Minitest::Mock.new
210
-
211
- ran_sideload = false
212
-
213
- sideload = Proc.new {|a, b, c| ran_sideload = true}
214
-
215
- code = nil
216
- options = build_options({deeplink: true, set_stage: true, deeplink_options: "a:b", config: "~/.roku_config.json"})
217
- config = Config.new(options: options)
218
- config.instance_variable_set(:@config, good_config)
219
- config.parse
220
- mock.expect(:launch, "true", [config.parsed[:deeplink_config]])
221
- Linker.stub(:new, mock) do
222
- ControllerCommands.stub(:sideload, sideload) do
223
- code = Controller.send(:execute_commands, {options: options, config: config})
224
- end
225
- end
226
- mock.verify
227
- assert_equal SUCCESS, code
228
- assert ran_sideload
229
- end
230
- def test_controller_commands_deeplink_fail
231
- mock = Minitest::Mock.new
232
- stager = Minitest::Mock.new
233
-
234
- code = nil
235
- options = build_options({deeplink: true, deeplink_options: "a:b", config: "~/.roku_config.json"})
236
- config = Config.new(options: options)
237
- config.instance_variable_set(:@config, good_config)
238
- config.parse
239
- mock.expect(:launch, false, [config.parsed[:deeplink_config]])
240
- stager.expect(:stage, true)
241
- stager.expect(:unstage, true)
242
- Linker.stub(:new, mock) do
243
- Stager.stub(:new, stager) do
244
- code = Controller.send(:execute_commands, {options: options, config: config})
245
- end
246
- end
247
- mock.verify
248
- assert_equal FAILED_DEEPLINKING, code
249
- end
250
- def test_controller_commands_delete
251
- loader = Minitest::Mock.new
252
-
253
- options = build_options({delete: true, config: "~/.roku_config.json"})
254
- config = Config.new(options: options)
255
- config.instance_variable_set(:@config, good_config)
256
- config.parse
257
- loader.expect(:unload, nil)
258
- code = nil
259
- Loader.stub(:new, loader) do
260
- ManifestManager.stub(:build_version, "1") do
261
- code = Controller.send(:execute_commands, {options: options, config: config})
262
- end
263
- end
264
- assert_equal SUCCESS, code
265
- loader.verify
266
- end
267
- def test_controller_commands_monitor
268
- monitor = Minitest::Mock.new
269
-
270
- options = build_options({monitor: "main", config: "~/.roku_config.json"})
271
- config = Config.new(options: options)
272
- config.instance_variable_set(:@config, good_config)
273
- config.parse
274
- monitor.expect(:monitor, nil, [config.parsed[:monitor_config]])
275
- code = nil
276
- Monitor.stub(:new, monitor) do
277
- ManifestManager.stub(:build_version, "1") do
278
- code = Controller.send(:execute_commands, {options: options, config: config})
279
- end
280
- end
281
- assert_equal SUCCESS, code
282
- monitor.verify
283
- end
284
- def test_controller_commands_navigate
285
- navigator = Minitest::Mock.new
286
-
287
- options = build_options({navigate: "up", config: "~/.roku_config.json"})
288
- config = Config.new(options: options)
289
- config.instance_variable_set(:@config, good_config)
290
- config.parse
291
- navigator.expect(:nav, true, [config.parsed[:navigate_config]])
292
- code = nil
293
- Navigator.stub(:new, navigator) do
294
- code = Controller.send(:execute_commands, {options: options, config: config})
295
- end
296
- assert_equal SUCCESS, code
297
- navigator.verify
298
- end
299
- def test_controller_commands_navigate_fail
300
- navigator = Minitest::Mock.new
301
-
302
- options = build_options({navigate: "up", config: ":execute_commands,/.roku_config.json"})
303
- config = Config.new(options: options)
304
- config.instance_variable_set(:@config, good_config)
305
- config.parse
306
- navigator.expect(:nav, nil, [config.parsed[:navigate_config]])
307
- code = nil
308
- Navigator.stub(:new, navigator) do
309
- code = Controller.send(:execute_commands, {options: options, config: config})
310
- end
311
- assert_equal FAILED_NAVIGATING, code
312
- navigator.verify
313
- end
314
- def test_controller_commands_screen
315
- navigator = Minitest::Mock.new
316
-
317
- options = build_options({screen: "secret", config: "~/.roku_config.json"})
318
- config = Config.new(options: options)
319
- config.instance_variable_set(:@config, good_config)
320
- config.parse
321
- navigator.expect(:screen, true, [config.parsed[:screen_config]])
322
- code = nil
323
- Navigator.stub(:new, navigator) do
324
- code = Controller.send(:execute_commands, {options: options, config: config})
325
- end
326
- assert_equal SUCCESS, code
327
- navigator.verify
328
- end
329
- def test_controller_commands_screens
330
- navigator = Minitest::Mock.new
331
-
332
- options = build_options({screens: true, config: "~/.roku_config.json"})
333
- config = Config.new(options: options)
334
- config.instance_variable_set(:@config, good_config)
335
- config.parse
336
- navigator.expect(:screens, true)
337
- code = nil
338
- Navigator.stub(:new, navigator) do
339
- code = Controller.send(:execute_commands, {options: options, config: config})
340
- end
341
- assert_equal SUCCESS, code
342
- navigator.verify
343
- end
344
- def test_controller_commands_text
345
- navigator = Minitest::Mock.new
346
-
347
- options = build_options({text: "text string", config: "~/.roku_config.json"})
348
- config = Config.new(options: options)
349
- config.instance_variable_set(:@config, good_config)
350
- config.parse
351
- navigator.expect(:type, true, [config.parsed[:text_config]])
352
- code = nil
353
- Navigator.stub(:new, navigator) do
354
- code = Controller.send(:execute_commands, {options: options, config: config})
355
- end
356
- assert_equal SUCCESS, code
357
- navigator.verify
358
- end
359
- def test_controller_commands_test
360
- tester = Minitest::Mock.new
361
- stager = Minitest::Mock.new
362
-
363
- options = build_options({test: true, config: "~/.roku_config.json", working: true})
364
- config = Config.new(options: options)
365
- config.instance_variable_set(:@config, good_config)
366
- config.parse
367
- tester.expect(:run_tests, true, [config.parsed[:test_config]])
368
- stager.expect(:stage, true)
369
- stager.expect(:unstage, true)
370
- code = nil
371
-
372
- Stager.stub(:new, stager) do
373
- Tester.stub(:new, tester) do
374
- code = Controller.send(:execute_commands, {options: options, config: config})
375
- end
376
- end
377
- assert_equal SUCCESS, code
378
- tester.verify
379
- stager.verify
380
- end
381
- def test_controller_commands_screencapture
382
- inspector = Minitest::Mock.new
383
-
384
- options = build_options({screencapture: true, out: "/tmp/capture.jpg", config: "~/.roku_config.json"})
385
- config = Config.new(options: options)
386
- config.instance_variable_set(:@config, good_config)
387
- config.parse
388
- inspector.expect(:screencapture, true, [config.parsed[:screencapture_config]])
389
- code = nil
390
- Inspector.stub(:new, inspector) do
391
- code = Controller.send(:execute_commands, {options: options, config: config})
392
- end
393
- assert_equal SUCCESS, code
394
- inspector.verify
395
- end
396
- def test_controller_commands_screencapture_fail
397
- inspector = Minitest::Mock.new
398
-
399
- options = build_options({screencapture: true, out: "/tmp", config: "~/.roku_config.json"})
400
- config = Config.new(options: options)
401
- config.instance_variable_set(:@config, good_config)
402
- config.parse
403
- inspector.expect(:screencapture, false, [config.parsed[:screencapture_config]])
404
- code = nil
405
- Inspector.stub(:new, inspector) do
406
- code = Controller.send(:execute_commands, {options: options, config: config })
407
- end
408
- assert_equal FAILED_SCREENCAPTURE, code
409
- inspector.verify
410
- end
411
- def test_controller_commands_print
412
- stager = Minitest::Mock.new
413
-
414
- options = build_options({print: 'title', config: "~/.roku_config.json", working: true})
415
- configs = {stage_config: {}}
416
- config = Config.new(options: options)
417
- config.instance_variable_set(:@parsed, configs)
418
- code = nil
419
- scripter_config = {attribute: :title, configs: configs}
420
- print_check = lambda {|print_config| SUCCESS if print_config == scripter_config }
421
- stager.expect(:stage, true)
422
- stager.expect(:unstage, true)
423
-
424
- Stager.stub(:new, stager) do
425
- Scripter.stub(:print, print_check) do
426
- code = Controller.send(:execute_commands, {options: options, config: config})
427
- end
428
- end
429
- assert_equal SUCCESS, code
430
- stager.verify
431
- end
432
- def test_controller_commands_dostage
433
- stager = Minitest::Mock.new
434
-
435
- options = build_options({dostage: true, config: "~/.roku_config.json"})
436
- config = Config.new(options: options)
437
- config.instance_variable_set(:@parsed, {stage_config: {}})
438
- code = nil
439
- stager.expect(:stage, true)
440
-
441
- Stager.stub(:new, stager) do
442
- code = Controller.send(:execute_commands, {options: options, config: config})
443
- end
444
- assert_equal true, code
445
- stager.verify
446
- end
447
-
448
- def test_controller_commands_dounstage
449
- stager = Minitest::Mock.new
450
-
451
- options = build_options({dounstage: true, config: "~/.roku_config.json"})
452
- configs = {stage_config: {}}
453
- config = Config.new(options: options)
454
- config.instance_variable_set(:@parsed, configs)
455
- code = nil
456
- stager.expect(:unstage, true)
457
-
458
- Stager.stub(:new, stager) do
459
- code = Controller.send(:execute_commands, {options: options, config: config})
460
- end
461
- assert_equal true, code
462
- stager.verify
463
- end
464
- end
465
- end