framework_gem 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (876) hide show
  1. checksums.yaml +4 -4
  2. data/{lib/EXECUTION_ENGINE.md → EXECUTION_ENGINE.md} +0 -0
  3. data/{lib/Gemfile → Gemfile} +4 -1
  4. data/{lib/README.md → README.md} +0 -0
  5. data/{lib/config → config}/ConfigParams.xml +0 -0
  6. data/{lib/config → config}/ImageROI.xml +0 -0
  7. data/{lib/config → config}/ROI.xml +0 -0
  8. data/{lib/config → config}/Userlog4j.xml +0 -0
  9. data/{lib/config → config}/schema-docs/mode.xsd +0 -0
  10. data/{lib/config → config}/schema-docs/processTestJobs.xsd +0 -0
  11. data/{lib/config → config}/schema-docs/rackip.xsd +0 -0
  12. data/{lib/copy_ref_images.rb → copy_ref_images.rb} +0 -0
  13. data/{lib/copy_repo.rb → copy_repo.rb} +0 -0
  14. data/{lib/dsllib → dsllib}/common/dncs/dncs_utils.rb +0 -0
  15. data/{lib/dsllib → dsllib}/common/mas_db/mas_conductor.rb +0 -0
  16. data/{lib/dsllib → dsllib}/common/mas_db/mas_db.rb +0 -0
  17. data/{lib/dsllib → dsllib}/common/mas_db/mas_publish.rb +0 -0
  18. data/{lib/dsllib → dsllib}/common/mas_db/mas_rest_services.rb +0 -0
  19. data/{lib/dsllib → dsllib}/common/mas_db/mas_soap_services.rb +0 -0
  20. data/{lib/dsllib → dsllib}/common/mas_db/mas_utils.rb +0 -0
  21. data/{lib/dsllib → dsllib}/common/remote_diagnostics/mdn_remote_diagnostics.rb +0 -0
  22. data/{lib/dsllib → dsllib}/common/remote_diagnostics/odn_web_server.rb +0 -0
  23. data/{lib/dsllib → dsllib}/common/utils/excel_export.rb +0 -0
  24. data/{lib/dsllib → dsllib}/common/utils/excel_module.rb +0 -0
  25. data/{lib/dsllib → dsllib}/common/utils/server_components_utils.rb +0 -0
  26. data/{lib/dsllib → dsllib}/common/utils/stb_health_check_utils.rb +0 -0
  27. data/{lib/dsllib → dsllib}/common/utils/sword_utils.rb +0 -0
  28. data/{lib/dsllib → dsllib}/common/utils/tmc_utils.rb +0 -0
  29. data/{lib/dsllib → dsllib}/common/utils/virtual_keyboard_navigator.rb +0 -0
  30. data/{lib/dsllib → dsllib}/common/utils/virtual_keyboard_vp_navigator.rb +0 -0
  31. data/{lib/dsllib → dsllib}/performance/DTA/roi.rb +0 -0
  32. data/{lib/dsllib → dsllib}/performance/DTA/utils.rb +0 -0
  33. data/{lib/dsllib → dsllib}/performance/iguide_concurrent_test/ROI.rb +0 -0
  34. data/{lib/dsllib → dsllib}/performance/iguide_concurrent_test/utils.rb +0 -0
  35. data/{lib/dsllib → dsllib}/performance/measure_tune.rb +0 -0
  36. data/{lib/dsllib → dsllib}/performance/perf_lib.rb +0 -0
  37. data/framework_gem.rb +3 -0
  38. data/lib/{lib/data_services → data_services}/channel.rb +0 -0
  39. data/lib/{lib/data_services → data_services}/data_services.rb +0 -0
  40. data/lib/{lib/data_services → data_services}/guide.rb +0 -0
  41. data/lib/{lib/data_services → data_services}/lineup.rb +0 -0
  42. data/lib/{lib/data_services → data_services}/program.rb +0 -0
  43. data/lib/{lib/data_services → data_services}/schedule.rb +0 -0
  44. data/lib/{lib/data_services → data_services}/splunk_connector.rb +0 -0
  45. data/lib/{lib/data_services → data_services}/splunk_data_reader.rb +0 -0
  46. data/lib/{lib/element → element}/element.rb +0 -0
  47. data/lib/{lib/extensions → extensions}/array_extensions.rb +0 -0
  48. data/lib/{lib/extensions → extensions}/datetime_extensions.rb +0 -0
  49. data/lib/{lib/extensions → extensions}/extensions.rb +0 -0
  50. data/lib/{lib/extensions → extensions}/file_extensions.rb +0 -0
  51. data/lib/{lib/extensions → extensions}/float_extensions.rb +0 -0
  52. data/lib/{lib/extensions → extensions}/integer_extensions.rb +0 -0
  53. data/lib/{lib/extensions → extensions}/nethttp_extensions.rb +0 -0
  54. data/lib/{lib/extensions → extensions}/object_extensions.rb +0 -0
  55. data/lib/{lib/extensions → extensions}/string_extensions.rb +0 -0
  56. data/lib/helpers/tmc_helpers/core_helper/core_helper.rb +29 -0
  57. data/lib/{lib/helpers → helpers}/tmc_helpers/csv_helper/csv_helper.rb +0 -0
  58. data/lib/{lib/helpers → helpers}/tmc_helpers/email_helper/email_helper.rb +0 -0
  59. data/lib/{lib/helpers → helpers}/tmc_helpers/http_helper/http_helper.rb +0 -0
  60. data/lib/{lib/helpers → helpers}/tmc_helpers/roi_helper/roi_helper.rb +0 -0
  61. data/lib/{lib/helpers → helpers}/tmc_helpers/snmp_helper/snmp_helper.rb +0 -0
  62. data/lib/{lib/helpers → helpers}/tmc_helpers/ssh_helper/ssh_helper.rb +0 -0
  63. data/lib/{lib/helpers → helpers}/tmc_helpers/tmc_helpers.rb +0 -0
  64. data/lib/{lib/keyboard → keyboard}/apple_tv/apple_tv_password_keyboard.rb +0 -0
  65. data/lib/{lib/keyboard → keyboard}/apple_tv/apple_tv_search_keyboard.rb +0 -0
  66. data/lib/{lib/keyboard → keyboard}/apple_tv/apple_tv_username_keyboard.rb +0 -0
  67. data/lib/{lib/keyboard → keyboard}/keyboard.rb +0 -0
  68. data/lib/{lib/keyboard → keyboard}/keyboard_layout.rb +0 -0
  69. data/lib/{lib/keyboard → keyboard}/roku/roku_reset_pin_keyboard.rb +0 -0
  70. data/lib/{lib/keyboard → keyboard}/roku/roku_rsg_search_keyboard.rb +0 -0
  71. data/lib/{lib/keyboard → keyboard}/roku/roku_rsg_signin_keyboard.rb +0 -0
  72. data/lib/{lib/keyboard → keyboard}/roku/roku_search_keyboard.rb +0 -0
  73. data/lib/{lib/keyboard → keyboard}/roku/roku_signin_keyboard.rb +0 -0
  74. data/lib/{lib/keyboard → keyboard}/samsung_tv/samsung_tv_search_keyboard.rb +0 -0
  75. data/lib/{lib/keyboard → keyboard}/samsung_tv/samsung_tv_signin_keyboard.rb +0 -0
  76. data/lib/{lib/keyboard → keyboard}/stb/odn/odn_on_demand_search_keyboard.rb +0 -0
  77. data/lib/{lib/keyboard → keyboard}/stb/odn/odn_search_keyboard.rb +0 -0
  78. data/lib/{lib/keyboard → keyboard}/stb/spectrum/spectrum_netflix_email_keyboard.rb +0 -0
  79. data/lib/{lib/keyboard → keyboard}/stb/spectrum/spectrum_netflix_keyboard.rb +0 -0
  80. data/lib/{lib/keyboard → keyboard}/stb/spectrum/spectrum_netflix_name_keyboard.rb +0 -0
  81. data/lib/{lib/keyboard → keyboard}/stb/spectrum/spectrum_search_keyboard.rb +0 -0
  82. data/lib/{lib/keyboard → keyboard}/tivo/tivo_password_keyboard.rb +0 -0
  83. data/lib/{lib/keyboard → keyboard}/tivo/tivo_search_keyboard.rb +0 -0
  84. data/lib/{lib/keyboard → keyboard}/tivo/tivo_username_keyboard.rb +0 -0
  85. data/lib/{lib/keys → keys}/apple_tv/apple_tv_keys.rb +0 -0
  86. data/lib/{lib/keys → keys}/base_keys.rb +0 -0
  87. data/lib/{lib/keys → keys}/dta/dta_keys.rb +0 -0
  88. data/lib/{lib/keys → keys}/mdn/mdn_keys.rb +0 -0
  89. data/lib/{lib/keys → keys}/passport/passport_keys.rb +0 -0
  90. data/lib/{lib/keys → keys}/roku/roku_keys.rb +0 -0
  91. data/lib/{lib/keys → keys}/roku_tv/roku_tv_keys.rb +0 -0
  92. data/lib/{lib/keys → keys}/samsung_tv/samsung_tv_keys.rb +0 -0
  93. data/lib/{lib/keys → keys}/sara/sara_keys.rb +0 -0
  94. data/lib/{lib/keys → keys}/stb/iguide/iguide_keys.rb +0 -0
  95. data/lib/{lib/keys → keys}/stb/odn/odn_keys.rb +0 -0
  96. data/lib/{lib/keys → keys}/stb/spectrum/spectrum_keys.rb +0 -0
  97. data/lib/{lib/keys → keys}/stb/stb_keys.rb +0 -0
  98. data/lib/{lib/keys → keys}/tivo/tivo_keys.rb +0 -0
  99. data/lib/{lib/logger → logger}/multi_io.rb +0 -0
  100. data/lib/{lib/logger → logger}/tmc_dut_logger.rb +0 -0
  101. data/lib/{lib/logger → logger}/tmc_logger.rb +0 -0
  102. data/lib/{lib/mixins → mixins}/assignable.rb +0 -0
  103. data/lib/{lib/mixins → mixins}/can_have_special_methods.rb +0 -0
  104. data/lib/{lib/mixins → mixins}/enumish.rb +0 -0
  105. data/lib/{lib/new_platform.rb → new_platform.rb} +0 -0
  106. data/lib/{lib/new_sub_platform.rb → new_sub_platform.rb} +0 -0
  107. data/lib/{lib/platform → platform}/apple_tv/apple_tv.rb +0 -0
  108. data/lib/{lib/platform → platform}/apple_tv/apple_tv_1080/apple_tv_1080.rb +0 -0
  109. data/lib/{lib/platform → platform}/apple_tv/apple_tv_720/apple_tv_720.rb +0 -0
  110. data/lib/{lib/platform → platform}/dta/dta.rb +0 -0
  111. data/lib/{lib/platform → platform}/dta/dta_1080/dta_1080.rb +0 -0
  112. data/lib/{lib/platform → platform}/dta/dta_720/dta_720.rb +0 -0
  113. data/lib/{lib/platform → platform}/mdn/mdn.rb +0 -0
  114. data/lib/{lib/platform → platform}/mdn/mdn_1080/mdn_1080.rb +0 -0
  115. data/lib/{lib/platform → platform}/mdn/mdn_720/mdn_720.rb +0 -0
  116. data/lib/{lib/platform → platform}/mobile/android/android.rb +0 -0
  117. data/lib/{lib/platform → platform}/mobile/android/android_phone/android_phone.rb +0 -0
  118. data/lib/{lib/platform → platform}/mobile/android/android_tablet/android_tablet.rb +0 -0
  119. data/lib/{lib/platform → platform}/mobile/ios/ios.rb +0 -0
  120. data/lib/{lib/platform → platform}/mobile/ios/ios_phone/ios_phone.rb +0 -0
  121. data/lib/{lib/platform → platform}/mobile/ios/ios_tablet/ios_tablet.rb +0 -0
  122. data/lib/{lib/platform → platform}/mobile/mobile.rb +0 -0
  123. data/lib/{lib/platform → platform}/passport/passport.rb +0 -0
  124. data/lib/{lib/platform → platform}/passport/passport1080/passport_1080.rb +0 -0
  125. data/lib/{lib/platform → platform}/passport/passport_720/passport_720.rb +0 -0
  126. data/lib/{lib/platform → platform}/platform.rb +0 -0
  127. data/lib/{lib/platform → platform}/roku/roku.rb +0 -0
  128. data/lib/{lib/platform → platform}/roku/roku_720/roku_720.rb +0 -0
  129. data/lib/{lib/platform → platform}/roku_tv/roku_tv.rb +0 -0
  130. data/lib/{lib/platform → platform}/roku_tv/roku_tv_1080/roku_tv_1080.rb +0 -0
  131. data/lib/{lib/platform → platform}/roku_tv/roku_tv_720/roku_tv_720.rb +0 -0
  132. data/lib/{lib/platform → platform}/samsung_tv/samsung_tv.rb +0 -0
  133. data/lib/{lib/platform → platform}/samsung_tv/samsung_tv_1080/samsung_tv_1080.rb +0 -0
  134. data/lib/{lib/platform → platform}/samsung_tv/samsung_tv_720/samsung_tv_720.rb +0 -0
  135. data/lib/{lib/platform → platform}/sara/sara.rb +0 -0
  136. data/lib/{lib/platform → platform}/sara/sara_1080/sara_1080.rb +0 -0
  137. data/lib/{lib/platform → platform}/sara/sara_720/sara_720.rb +0 -0
  138. data/lib/{lib/platform → platform}/stb/iguide/iguide.rb +0 -0
  139. data/lib/{lib/platform → platform}/stb/iguide/iguide_1080/iguide_1080.rb +0 -0
  140. data/lib/{lib/platform → platform}/stb/iguide/iguide_720/iguide_720.rb +0 -0
  141. data/lib/{lib/platform → platform}/stb/odn/odn.rb +0 -0
  142. data/lib/{lib/platform → platform}/stb/odn/odn_1080/odn_1080.rb +0 -0
  143. data/lib/{lib/platform → platform}/stb/odn/odn_720/odn_720.rb +0 -0
  144. data/lib/{lib/platform → platform}/stb/odn/odn_720/odn_720_moto/odn_720_moto.rb +0 -0
  145. data/lib/{lib/platform → platform}/stb/odn/odn_720/odn_720_sa/odn_720_sa.rb +0 -0
  146. data/lib/{lib/platform → platform}/stb/odn/odn_720/odn_720_samsung/odn_720_samsung.rb +0 -0
  147. data/lib/{lib/platform → platform}/stb/spectrum/spectrum.rb +0 -0
  148. data/lib/{lib/platform → platform}/stb/spectrum/spectrum_1080/spectrum_1080.rb +0 -0
  149. data/lib/{lib/platform → platform}/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis.rb +0 -0
  150. data/lib/{lib/platform → platform}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris.rb +0 -0
  151. data/lib/{lib/platform → platform}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax.rb +0 -0
  152. data/lib/{lib/platform → platform}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch.rb +0 -0
  153. data/lib/{lib/platform → platform}/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace.rb +0 -0
  154. data/lib/{lib/platform → platform}/stb/spectrum/spectrum_720/spectrum_720.rb +0 -0
  155. data/lib/{lib/platform → platform}/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris.rb +0 -0
  156. data/lib/{lib/platform → platform}/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax.rb +0 -0
  157. data/lib/{lib/platform → platform}/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch.rb +0 -0
  158. data/lib/{lib/platform → platform}/stb/stb.rb +0 -0
  159. data/lib/{lib/platform → platform}/template.txt +0 -0
  160. data/lib/{lib/platform → platform}/tivo/tivo.rb +0 -0
  161. data/lib/{lib/platform → platform}/tivo/tivo_1080/tivo_1080.rb +0 -0
  162. data/lib/{lib/platform → platform}/tivo/tivo_720/tivo_720.rb +0 -0
  163. data/lib/{lib/platform → platform}/web/web.rb +0 -0
  164. data/lib/{lib/platform_libs → platform_libs}/roku/roku_controller.rb +0 -0
  165. data/lib/{lib/prereqs → prereqs}/prereqs.rb +0 -0
  166. data/lib/{lib/prereqs → prereqs}/prereqs_for_dut.rb +0 -0
  167. data/lib/{lib/prereqs → prereqs}/prereqs_for_test.rb +0 -0
  168. data/lib/{lib/remotes → remotes}/remotes.rb +0 -0
  169. data/lib/{lib/remotes → remotes}/stb/spectrum/spectrum_remotes.rb +0 -0
  170. data/lib/{lib/roi → roi}/black/black_roi.rb +0 -0
  171. data/lib/{lib/roi → roi}/color/color_roi.rb +0 -0
  172. data/lib/{lib/roi → roi}/image/image_roi.rb +0 -0
  173. data/lib/{lib/roi → roi}/roi.rb +0 -0
  174. data/lib/{lib/roi → roi}/template_roi.txt +0 -0
  175. data/lib/{lib/roi → roi}/text/text_roi.rb +0 -0
  176. data/lib/{lib/roi → roi}/video/video_roi.rb +0 -0
  177. data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_1080/apple_tv_1080_black_rois.rb +0 -0
  178. data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_1080/apple_tv_1080_color_rois.rb +0 -0
  179. data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_1080/apple_tv_1080_image_rois.rb +0 -0
  180. data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_1080/apple_tv_1080_rois.rb +0 -0
  181. data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_1080/apple_tv_1080_text_rois.rb +0 -0
  182. data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_1080/apple_tv_1080_video_rois.rb +2 -1
  183. data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_720/apple_tv_720_black_rois.rb +0 -0
  184. data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_720/apple_tv_720_color_rois.rb +0 -0
  185. data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_720/apple_tv_720_image_rois.rb +0 -0
  186. data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_720/apple_tv_720_rois.rb +0 -0
  187. data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_720/apple_tv_720_text_rois.rb +0 -0
  188. data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_720/apple_tv_720_video_rois.rb +0 -0
  189. data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_black_rois.rb +0 -0
  190. data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_color_rois.rb +0 -0
  191. data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_image_rois.rb +0 -0
  192. data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_rois.rb +0 -0
  193. data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_text_rois.rb +0 -0
  194. data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_video_rois.rb +0 -0
  195. data/lib/{User_Lib/rois → rois}/black_rois.rb +0 -0
  196. data/lib/{User_Lib/rois → rois}/color_rois.rb +0 -0
  197. data/lib/{User_Lib/rois → rois}/dta/dta_1080/dta_1080_black_rois.rb +0 -0
  198. data/lib/{User_Lib/rois → rois}/dta/dta_1080/dta_1080_color_rois.rb +0 -0
  199. data/lib/{User_Lib/rois → rois}/dta/dta_1080/dta_1080_image_rois.rb +0 -0
  200. data/lib/{User_Lib/rois → rois}/dta/dta_1080/dta_1080_rois.rb +0 -0
  201. data/lib/{User_Lib/rois → rois}/dta/dta_1080/dta_1080_text_rois.rb +0 -0
  202. data/lib/{User_Lib/rois → rois}/dta/dta_1080/dta_1080_video_rois.rb +0 -0
  203. data/lib/{User_Lib/rois → rois}/dta/dta_720/dta_720_black_rois.rb +0 -0
  204. data/lib/{User_Lib/rois → rois}/dta/dta_720/dta_720_color_rois.rb +0 -0
  205. data/lib/{User_Lib/rois → rois}/dta/dta_720/dta_720_image_rois.rb +0 -0
  206. data/lib/{User_Lib/rois → rois}/dta/dta_720/dta_720_rois.rb +0 -0
  207. data/lib/{User_Lib/rois → rois}/dta/dta_720/dta_720_text_rois.rb +0 -0
  208. data/lib/{User_Lib/rois → rois}/dta/dta_720/dta_720_video_rois.rb +0 -0
  209. data/lib/{User_Lib/rois → rois}/dta/dta_black_rois.rb +0 -0
  210. data/lib/{User_Lib/rois → rois}/dta/dta_color_rois.rb +0 -0
  211. data/lib/{User_Lib/rois → rois}/dta/dta_image_rois.rb +0 -0
  212. data/lib/{User_Lib/rois → rois}/dta/dta_rois.rb +0 -0
  213. data/lib/{User_Lib/rois → rois}/dta/dta_text_rois.rb +0 -0
  214. data/lib/{User_Lib/rois → rois}/dta/dta_video_rois.rb +0 -0
  215. data/lib/{User_Lib/rois → rois}/image_rois.rb +0 -0
  216. data/lib/{User_Lib/rois → rois}/mdn/mdn_1080/mdn_1080_black_rois.rb +0 -0
  217. data/lib/{User_Lib/rois → rois}/mdn/mdn_1080/mdn_1080_color_rois.rb +0 -0
  218. data/lib/{User_Lib/rois → rois}/mdn/mdn_1080/mdn_1080_image_rois.rb +0 -0
  219. data/lib/{User_Lib/rois → rois}/mdn/mdn_1080/mdn_1080_rois.rb +0 -0
  220. data/lib/{User_Lib/rois → rois}/mdn/mdn_1080/mdn_1080_text_rois.rb +0 -0
  221. data/lib/{User_Lib/rois → rois}/mdn/mdn_1080/mdn_1080_video_rois.rb +0 -0
  222. data/lib/{User_Lib/rois → rois}/mdn/mdn_720/mdn_720_black_rois.rb +0 -0
  223. data/lib/{User_Lib/rois → rois}/mdn/mdn_720/mdn_720_color_rois.rb +0 -0
  224. data/lib/{User_Lib/rois → rois}/mdn/mdn_720/mdn_720_image_rois.rb +0 -0
  225. data/lib/{User_Lib/rois → rois}/mdn/mdn_720/mdn_720_rois.rb +0 -0
  226. data/lib/{User_Lib/rois → rois}/mdn/mdn_720/mdn_720_text_rois.rb +0 -0
  227. data/lib/{User_Lib/rois → rois}/mdn/mdn_720/mdn_720_video_rois.rb +0 -0
  228. data/lib/{User_Lib/rois → rois}/mdn/mdn_black_rois.rb +0 -0
  229. data/lib/{User_Lib/rois → rois}/mdn/mdn_color_rois.rb +0 -0
  230. data/lib/{User_Lib/rois → rois}/mdn/mdn_image_rois.rb +0 -0
  231. data/lib/{User_Lib/rois → rois}/mdn/mdn_rois.rb +0 -0
  232. data/lib/{User_Lib/rois → rois}/mdn/mdn_text_rois.rb +0 -0
  233. data/lib/{User_Lib/rois → rois}/mdn/mdn_video_rois.rb +0 -0
  234. data/lib/{User_Lib/rois → rois}/mobile/android/android_black_rois.rb +0 -0
  235. data/lib/{User_Lib/rois → rois}/mobile/android/android_color_rois.rb +0 -0
  236. data/lib/{User_Lib/rois → rois}/mobile/android/android_image_rois.rb +0 -0
  237. data/lib/{User_Lib/rois → rois}/mobile/android/android_phone/android_phone_black_rois.rb +0 -0
  238. data/lib/{User_Lib/rois → rois}/mobile/android/android_phone/android_phone_color_rois.rb +0 -0
  239. data/lib/{User_Lib/rois → rois}/mobile/android/android_phone/android_phone_image_rois.rb +0 -0
  240. data/lib/{User_Lib/rois → rois}/mobile/android/android_phone/android_phone_rois.rb +0 -0
  241. data/lib/{User_Lib/rois → rois}/mobile/android/android_phone/android_phone_text_rois.rb +0 -0
  242. data/lib/{User_Lib/rois → rois}/mobile/android/android_phone/android_phone_video_rois.rb +0 -0
  243. data/lib/{User_Lib/rois → rois}/mobile/android/android_rois.rb +0 -0
  244. data/lib/{User_Lib/rois → rois}/mobile/android/android_tablet/android_tablet_black_rois.rb +0 -0
  245. data/lib/{User_Lib/rois → rois}/mobile/android/android_tablet/android_tablet_color_rois.rb +0 -0
  246. data/lib/{User_Lib/rois → rois}/mobile/android/android_tablet/android_tablet_image_rois.rb +0 -0
  247. data/lib/{User_Lib/rois → rois}/mobile/android/android_tablet/android_tablet_rois.rb +0 -0
  248. data/lib/{User_Lib/rois → rois}/mobile/android/android_tablet/android_tablet_text_rois.rb +0 -0
  249. data/lib/{User_Lib/rois → rois}/mobile/android/android_tablet/android_tablet_video_rois.rb +0 -0
  250. data/lib/{User_Lib/rois → rois}/mobile/android/android_text_rois.rb +0 -0
  251. data/lib/{User_Lib/rois → rois}/mobile/android/android_video_rois.rb +0 -0
  252. data/lib/{User_Lib/rois → rois}/mobile/ios/ios_black_rois.rb +0 -0
  253. data/lib/{User_Lib/rois → rois}/mobile/ios/ios_color_rois.rb +0 -0
  254. data/lib/{User_Lib/rois → rois}/mobile/ios/ios_image_rois.rb +0 -0
  255. data/lib/{User_Lib/rois → rois}/mobile/ios/ios_phone/ios_phone_black_rois.rb +0 -0
  256. data/lib/{User_Lib/rois → rois}/mobile/ios/ios_phone/ios_phone_color_rois.rb +0 -0
  257. data/lib/{User_Lib/rois → rois}/mobile/ios/ios_phone/ios_phone_image_rois.rb +0 -0
  258. data/lib/{User_Lib/rois → rois}/mobile/ios/ios_phone/ios_phone_rois.rb +0 -0
  259. data/lib/{User_Lib/rois → rois}/mobile/ios/ios_phone/ios_phone_text_rois.rb +0 -0
  260. data/lib/{User_Lib/rois → rois}/mobile/ios/ios_phone/ios_phone_video_rois.rb +0 -0
  261. data/lib/{User_Lib/rois → rois}/mobile/ios/ios_rois.rb +0 -0
  262. data/lib/{User_Lib/rois → rois}/mobile/ios/ios_tablet/ios_tablet_black_rois.rb +0 -0
  263. data/lib/{User_Lib/rois → rois}/mobile/ios/ios_tablet/ios_tablet_color_rois.rb +0 -0
  264. data/lib/{User_Lib/rois → rois}/mobile/ios/ios_tablet/ios_tablet_image_rois.rb +0 -0
  265. data/lib/{User_Lib/rois → rois}/mobile/ios/ios_tablet/ios_tablet_rois.rb +0 -0
  266. data/lib/{User_Lib/rois → rois}/mobile/ios/ios_tablet/ios_tablet_text_rois.rb +0 -0
  267. data/lib/{User_Lib/rois → rois}/mobile/ios/ios_tablet/ios_tablet_video_rois.rb +0 -0
  268. data/lib/{User_Lib/rois → rois}/mobile/ios/ios_text_rois.rb +0 -0
  269. data/lib/{User_Lib/rois → rois}/mobile/ios/ios_video_rois.rb +0 -0
  270. data/lib/{User_Lib/rois → rois}/mobile/mobile_black_rois.rb +0 -0
  271. data/lib/{User_Lib/rois → rois}/mobile/mobile_color_rois.rb +0 -0
  272. data/lib/{User_Lib/rois → rois}/mobile/mobile_image_rois.rb +0 -0
  273. data/lib/{User_Lib/rois → rois}/mobile/mobile_rois.rb +0 -0
  274. data/lib/{User_Lib/rois → rois}/mobile/mobile_text_rois.rb +0 -0
  275. data/lib/{User_Lib/rois → rois}/mobile/mobile_video_rois.rb +0 -0
  276. data/lib/{User_Lib/rois → rois}/passport/passport_1080/passport_1080_black_rois.rb +0 -0
  277. data/lib/{User_Lib/rois → rois}/passport/passport_1080/passport_1080_color_rois.rb +0 -0
  278. data/lib/{User_Lib/rois → rois}/passport/passport_1080/passport_1080_image_rois.rb +0 -0
  279. data/lib/{User_Lib/rois → rois}/passport/passport_1080/passport_1080_rois.rb +0 -0
  280. data/lib/{User_Lib/rois → rois}/passport/passport_1080/passport_1080_text_rois.rb +0 -0
  281. data/lib/{User_Lib/rois → rois}/passport/passport_1080/passport_1080_video_rois.rb +0 -0
  282. data/lib/{User_Lib/rois → rois}/passport/passport_720/passport_720_black_rois.rb +0 -0
  283. data/lib/{User_Lib/rois → rois}/passport/passport_720/passport_720_color_rois.rb +0 -0
  284. data/lib/{User_Lib/rois → rois}/passport/passport_720/passport_720_image_rois.rb +0 -0
  285. data/lib/{User_Lib/rois → rois}/passport/passport_720/passport_720_rois.rb +0 -0
  286. data/lib/{User_Lib/rois → rois}/passport/passport_720/passport_720_text_rois.rb +0 -0
  287. data/lib/{User_Lib/rois → rois}/passport/passport_720/passport_720_video_rois.rb +0 -0
  288. data/lib/{User_Lib/rois → rois}/passport/passport_black_rois.rb +0 -0
  289. data/lib/{User_Lib/rois → rois}/passport/passport_color_rois.rb +0 -0
  290. data/lib/{User_Lib/rois → rois}/passport/passport_image_rois.rb +0 -0
  291. data/lib/{User_Lib/rois → rois}/passport/passport_rois.rb +0 -0
  292. data/lib/{User_Lib/rois → rois}/passport/passport_text_rois.rb +0 -0
  293. data/lib/{User_Lib/rois → rois}/passport/passport_video_rois.rb +0 -0
  294. data/lib/{User_Lib/rois → rois}/rois.rb +0 -0
  295. data/lib/{User_Lib/rois → rois}/roku/roku_720/roku_720_black_rois.rb +0 -0
  296. data/lib/{User_Lib/rois → rois}/roku/roku_720/roku_720_color_rois.rb +0 -0
  297. data/lib/{User_Lib/rois → rois}/roku/roku_720/roku_720_image_rois.rb +0 -0
  298. data/lib/{User_Lib/rois → rois}/roku/roku_720/roku_720_rois.rb +0 -0
  299. data/lib/{User_Lib/rois → rois}/roku/roku_720/roku_720_text_rois.rb +0 -0
  300. data/lib/{User_Lib/rois → rois}/roku/roku_720/roku_720_video_rois.rb +0 -0
  301. data/lib/{User_Lib/rois → rois}/roku/roku_black_rois.rb +0 -0
  302. data/lib/{User_Lib/rois → rois}/roku/roku_color_rois.rb +0 -0
  303. data/lib/{User_Lib/rois → rois}/roku/roku_image_rois.rb +0 -0
  304. data/lib/{User_Lib/rois → rois}/roku/roku_rois.rb +0 -0
  305. data/lib/{User_Lib/rois → rois}/roku/roku_text_rois.rb +0 -0
  306. data/lib/{User_Lib/rois → rois}/roku/roku_video_rois.rb +0 -0
  307. data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_1080/roku_tv_1080_black_rois.rb +0 -0
  308. data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_1080/roku_tv_1080_color_rois.rb +0 -0
  309. data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_1080/roku_tv_1080_image_rois.rb +0 -0
  310. data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_1080/roku_tv_1080_rois.rb +0 -0
  311. data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_1080/roku_tv_1080_text_rois.rb +0 -0
  312. data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_1080/roku_tv_1080_video_rois.rb +0 -0
  313. data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_720/roku_tv_720_black_rois.rb +0 -0
  314. data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_720/roku_tv_720_color_rois.rb +0 -0
  315. data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_720/roku_tv_720_image_rois.rb +0 -0
  316. data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_720/roku_tv_720_rois.rb +0 -0
  317. data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_720/roku_tv_720_text_rois.rb +0 -0
  318. data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_720/roku_tv_720_video_rois.rb +0 -0
  319. data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_black_rois.rb +0 -0
  320. data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_color_rois.rb +0 -0
  321. data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_image_rois.rb +0 -0
  322. data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_rois.rb +0 -0
  323. data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_text_rois.rb +0 -0
  324. data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_video_rois.rb +0 -0
  325. data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_1080/samsung_tv_1080_black_rois.rb +0 -0
  326. data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_1080/samsung_tv_1080_color_rois.rb +0 -0
  327. data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_1080/samsung_tv_1080_image_rois.rb +0 -0
  328. data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_1080/samsung_tv_1080_rois.rb +0 -0
  329. data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_1080/samsung_tv_1080_text_rois.rb +0 -0
  330. data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_1080/samsung_tv_1080_video_rois.rb +0 -0
  331. data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_720/samsung_tv_720_black_rois.rb +0 -0
  332. data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_720/samsung_tv_720_color_rois.rb +0 -0
  333. data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_720/samsung_tv_720_image_rois.rb +0 -0
  334. data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_720/samsung_tv_720_rois.rb +0 -0
  335. data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_720/samsung_tv_720_text_rois.rb +0 -0
  336. data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_720/samsung_tv_720_video_rois.rb +0 -0
  337. data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_black_rois.rb +0 -0
  338. data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_color_rois.rb +0 -0
  339. data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_image_rois.rb +0 -0
  340. data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_rois.rb +0 -0
  341. data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_text_rois.rb +0 -0
  342. data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_video_rois.rb +0 -0
  343. data/lib/{User_Lib/rois → rois}/sara/sara_1080/sara_1080_black_rois.rb +0 -0
  344. data/lib/{User_Lib/rois → rois}/sara/sara_1080/sara_1080_color_rois.rb +0 -0
  345. data/lib/{User_Lib/rois → rois}/sara/sara_1080/sara_1080_image_rois.rb +0 -0
  346. data/lib/{User_Lib/rois → rois}/sara/sara_1080/sara_1080_rois.rb +0 -0
  347. data/lib/{User_Lib/rois → rois}/sara/sara_1080/sara_1080_text_rois.rb +0 -0
  348. data/lib/{User_Lib/rois → rois}/sara/sara_1080/sara_1080_video_rois.rb +0 -0
  349. data/lib/{User_Lib/rois → rois}/sara/sara_720/sara_720_black_rois.rb +0 -0
  350. data/lib/{User_Lib/rois → rois}/sara/sara_720/sara_720_color_rois.rb +0 -0
  351. data/lib/{User_Lib/rois → rois}/sara/sara_720/sara_720_image_rois.rb +0 -0
  352. data/lib/{User_Lib/rois → rois}/sara/sara_720/sara_720_rois.rb +0 -0
  353. data/lib/{User_Lib/rois → rois}/sara/sara_720/sara_720_text_rois.rb +0 -0
  354. data/lib/{User_Lib/rois → rois}/sara/sara_720/sara_720_video_rois.rb +0 -0
  355. data/lib/{User_Lib/rois → rois}/sara/sara_black_rois.rb +0 -0
  356. data/lib/{User_Lib/rois → rois}/sara/sara_color_rois.rb +0 -0
  357. data/lib/{User_Lib/rois → rois}/sara/sara_image_rois.rb +0 -0
  358. data/lib/{User_Lib/rois → rois}/sara/sara_rois.rb +0 -0
  359. data/lib/{User_Lib/rois → rois}/sara/sara_text_rois.rb +0 -0
  360. data/lib/{User_Lib/rois → rois}/sara/sara_video_rois.rb +0 -0
  361. data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_1080/iguide_1080_black_rois.rb +0 -0
  362. data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_1080/iguide_1080_color_rois.rb +0 -0
  363. data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_1080/iguide_1080_image_rois.rb +0 -0
  364. data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_1080/iguide_1080_rois.rb +0 -0
  365. data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_1080/iguide_1080_text_rois.rb +0 -0
  366. data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_1080/iguide_1080_video_rois.rb +0 -0
  367. data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_720/iguide_720_black_rois.rb +0 -0
  368. data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_720/iguide_720_color_rois.rb +0 -0
  369. data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_720/iguide_720_image_rois.rb +0 -0
  370. data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_720/iguide_720_rois.rb +0 -0
  371. data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_720/iguide_720_text_rois.rb +0 -0
  372. data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_720/iguide_720_video_rois.rb +0 -0
  373. data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_black_rois.rb +0 -0
  374. data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_color_rois.rb +0 -0
  375. data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_image_rois.rb +0 -0
  376. data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_rois.rb +0 -0
  377. data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_text_rois.rb +0 -0
  378. data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_video_rois.rb +0 -0
  379. data/lib/{User_Lib/rois → rois}/stb/odn/odn_1080/odn_1080_black_rois.rb +0 -0
  380. data/lib/{User_Lib/rois → rois}/stb/odn/odn_1080/odn_1080_color_rois.rb +0 -0
  381. data/lib/{User_Lib/rois → rois}/stb/odn/odn_1080/odn_1080_image_rois.rb +0 -0
  382. data/lib/{User_Lib/rois → rois}/stb/odn/odn_1080/odn_1080_rois.rb +0 -0
  383. data/lib/{User_Lib/rois → rois}/stb/odn/odn_1080/odn_1080_text_rois.rb +0 -0
  384. data/lib/{User_Lib/rois → rois}/stb/odn/odn_1080/odn_1080_video_rois.rb +0 -0
  385. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_black_rois.rb +0 -0
  386. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_color_rois.rb +0 -0
  387. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_image_rois.rb +0 -0
  388. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_moto/odn_720_moto_black_rois.rb +0 -0
  389. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_moto/odn_720_moto_color_rois.rb +0 -0
  390. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_moto/odn_720_moto_image_rois.rb +0 -0
  391. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_moto/odn_720_moto_rois.rb +0 -0
  392. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_moto/odn_720_moto_text_rois.rb +0 -0
  393. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_moto/odn_720_moto_video_rois.rb +0 -0
  394. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_rois.rb +0 -0
  395. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_sa/odn_720_sa_black_rois.rb +0 -0
  396. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_sa/odn_720_sa_color_rois.rb +0 -0
  397. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_sa/odn_720_sa_image_rois.rb +0 -0
  398. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_sa/odn_720_sa_rois.rb +0 -0
  399. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_sa/odn_720_sa_text_rois.rb +0 -0
  400. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_sa/odn_720_sa_video_rois.rb +0 -0
  401. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_black_rois.rb +0 -0
  402. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_color_rois.rb +0 -0
  403. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_image_rois.rb +0 -0
  404. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_rois.rb +0 -0
  405. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_text_rois.rb +0 -0
  406. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_video_rois.rb +0 -0
  407. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_text_rois.rb +0 -0
  408. data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_video_rois.rb +0 -0
  409. data/lib/{User_Lib/rois → rois}/stb/odn/odn_black_rois.rb +0 -0
  410. data/lib/{User_Lib/rois → rois}/stb/odn/odn_color_rois.rb +0 -0
  411. data/lib/{User_Lib/rois → rois}/stb/odn/odn_image_rois.rb +0 -0
  412. data/lib/{User_Lib/rois → rois}/stb/odn/odn_rois.rb +0 -0
  413. data/lib/{User_Lib/rois → rois}/stb/odn/odn_text_rois.rb +0 -0
  414. data/lib/{User_Lib/rois → rois}/stb/odn/odn_video_rois.rb +0 -0
  415. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_black_rois.rb +0 -0
  416. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_color_rois.rb +0 -0
  417. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_black_rois.rb +0 -0
  418. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_color_rois.rb +0 -0
  419. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_image_rois.rb +0 -0
  420. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_rois.rb +0 -0
  421. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_text_rois.rb +0 -0
  422. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_video_rois.rb +0 -0
  423. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_black_rois.rb +0 -0
  424. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_color_rois.rb +0 -0
  425. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_image_rois.rb +0 -0
  426. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_rois.rb +0 -0
  427. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_text_rois.rb +0 -0
  428. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_video_rois.rb +0 -0
  429. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_black_rois.rb +0 -0
  430. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_color_rois.rb +0 -0
  431. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_image_rois.rb +0 -0
  432. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_rois.rb +0 -0
  433. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_text_rois.rb +0 -0
  434. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_video_rois.rb +0 -0
  435. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_black_rois.rb +0 -0
  436. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_color_rois.rb +0 -0
  437. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_image_rois.rb +0 -0
  438. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_rois.rb +0 -0
  439. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_text_rois.rb +0 -0
  440. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_video_rois.rb +0 -0
  441. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_image_rois.rb +0 -0
  442. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_black_rois.rb +0 -0
  443. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_color_rois.rb +0 -0
  444. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_image_rois.rb +0 -0
  445. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_rois.rb +0 -0
  446. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_text_rois.rb +0 -0
  447. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_video_rois.rb +0 -0
  448. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_rois.rb +0 -0
  449. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_text_rois.rb +0 -0
  450. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_video_rois.rb +0 -0
  451. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_black_rois.rb +0 -0
  452. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_color_rois.rb +0 -0
  453. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_black_rois.rb +0 -0
  454. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_color_rois.rb +0 -0
  455. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_image_rois.rb +0 -0
  456. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_rois.rb +0 -0
  457. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_text_rois.rb +0 -0
  458. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_video_rois.rb +0 -0
  459. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_black_rois.rb +0 -0
  460. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_color_rois.rb +0 -0
  461. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_image_rois.rb +0 -0
  462. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_rois.rb +0 -0
  463. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_text_rois.rb +0 -0
  464. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_video_rois.rb +0 -0
  465. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_black_rois.rb +0 -0
  466. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_color_rois.rb +0 -0
  467. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_image_rois.rb +0 -0
  468. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_rois.rb +0 -0
  469. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_text_rois.rb +0 -0
  470. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_video_rois.rb +0 -0
  471. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_image_rois.rb +0 -0
  472. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_rois.rb +0 -0
  473. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_text_rois.rb +0 -0
  474. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_video_rois.rb +0 -0
  475. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_black_rois.rb +0 -0
  476. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_color_rois.rb +0 -0
  477. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_image_rois.rb +0 -0
  478. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_rois.rb +0 -0
  479. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_text_rois.rb +0 -0
  480. data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_video_rois.rb +0 -0
  481. data/lib/{User_Lib/rois → rois}/stb/stb_black_rois.rb +0 -0
  482. data/lib/{User_Lib/rois → rois}/stb/stb_color_rois.rb +0 -0
  483. data/lib/{User_Lib/rois → rois}/stb/stb_image_rois.rb +0 -0
  484. data/lib/{User_Lib/rois → rois}/stb/stb_rois.rb +0 -0
  485. data/lib/{User_Lib/rois → rois}/stb/stb_text_rois.rb +0 -0
  486. data/lib/{User_Lib/rois → rois}/stb/stb_video_rois.rb +0 -0
  487. data/lib/{User_Lib/rois → rois}/template.txt +0 -0
  488. data/lib/{User_Lib/rois → rois}/text_rois.rb +0 -0
  489. data/lib/{User_Lib/rois → rois}/tivo/tivo_1080/tivo_1080_black_rois.rb +0 -0
  490. data/lib/{User_Lib/rois → rois}/tivo/tivo_1080/tivo_1080_color_rois.rb +0 -0
  491. data/lib/{User_Lib/rois → rois}/tivo/tivo_1080/tivo_1080_image_rois.rb +0 -0
  492. data/lib/{User_Lib/rois → rois}/tivo/tivo_1080/tivo_1080_rois.rb +0 -0
  493. data/lib/{User_Lib/rois → rois}/tivo/tivo_1080/tivo_1080_text_rois.rb +0 -0
  494. data/lib/{User_Lib/rois → rois}/tivo/tivo_1080/tivo_1080_video_rois.rb +0 -0
  495. data/lib/{User_Lib/rois → rois}/tivo/tivo_720/tivo_720_black_rois.rb +0 -0
  496. data/lib/{User_Lib/rois → rois}/tivo/tivo_720/tivo_720_color_rois.rb +0 -0
  497. data/lib/{User_Lib/rois → rois}/tivo/tivo_720/tivo_720_image_rois.rb +0 -0
  498. data/lib/{User_Lib/rois → rois}/tivo/tivo_720/tivo_720_rois.rb +0 -0
  499. data/lib/{User_Lib/rois → rois}/tivo/tivo_720/tivo_720_text_rois.rb +0 -0
  500. data/lib/{User_Lib/rois → rois}/tivo/tivo_720/tivo_720_video_rois.rb +0 -0
  501. data/lib/{User_Lib/rois → rois}/tivo/tivo_black_rois.rb +0 -0
  502. data/lib/{User_Lib/rois → rois}/tivo/tivo_color_rois.rb +0 -0
  503. data/lib/{User_Lib/rois → rois}/tivo/tivo_image_rois.rb +0 -0
  504. data/lib/{User_Lib/rois → rois}/tivo/tivo_rois.rb +0 -0
  505. data/lib/{User_Lib/rois → rois}/tivo/tivo_text_rois.rb +0 -0
  506. data/lib/{User_Lib/rois → rois}/tivo/tivo_video_rois.rb +0 -0
  507. data/lib/{User_Lib/rois → rois}/video_rois.rb +0 -0
  508. data/lib/{lib/screen → screen}/screen.rb +0 -0
  509. data/lib/{lib/screen → screen}/template.txt +0 -0
  510. data/lib/{lib/screen → screen}/template_screen.txt +0 -0
  511. data/lib/{lib/screens → screens}/apple_tv/apple_tv_screens.rb +0 -0
  512. data/lib/{lib/screens → screens}/dta/dta_screens.rb +0 -0
  513. data/lib/{lib/screens → screens}/mdn/mdn_screens.rb +0 -0
  514. data/lib/{lib/screens → screens}/mobile/android/android_phone/android_phone_screens.rb +0 -0
  515. data/lib/{lib/screens → screens}/mobile/android/android_screens.rb +0 -0
  516. data/lib/{lib/screens → screens}/mobile/android/android_tablet/android_tablet_screens.rb +0 -0
  517. data/lib/{lib/screens → screens}/mobile/ios/ios_phone/ios_phone_screens.rb +0 -0
  518. data/lib/{lib/screens → screens}/mobile/ios/ios_screens.rb +0 -0
  519. data/lib/{lib/screens → screens}/mobile/ios/ios_tablet/ios_tablet_screens.rb +0 -0
  520. data/lib/{lib/screens → screens}/mobile/mobile_screens.rb +0 -0
  521. data/lib/{lib/screens → screens}/passport/passport_screens.rb +0 -0
  522. data/lib/{lib/screens → screens}/roku/roku_screens.rb +0 -0
  523. data/lib/{lib/screens → screens}/roku_tv/roku_tv_screens.rb +0 -0
  524. data/lib/{lib/screens → screens}/samsung_tv/samsung_tv_screens.rb +0 -0
  525. data/lib/{lib/screens → screens}/sara/sara_screens.rb +0 -0
  526. data/lib/{lib/screens → screens}/screens.rb +0 -0
  527. data/lib/{lib/screens → screens}/stb/iguide/iguide_1080/iguide_1080_screens.rb +0 -0
  528. data/lib/{lib/screens → screens}/stb/iguide/iguide_720/iguide_720_screens.rb +0 -0
  529. data/lib/{lib/screens → screens}/stb/iguide/iguide_screens.rb +0 -0
  530. data/lib/{lib/screens → screens}/stb/odn/odn_screens.rb +0 -0
  531. data/lib/{lib/screens → screens}/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_screens.rb +0 -0
  532. data/lib/{lib/screens → screens}/stb/spectrum/spectrum_screens.rb +0 -0
  533. data/lib/{lib/screens → screens}/stb/stb_screens.rb +0 -0
  534. data/lib/{lib/screens → screens}/template.txt +0 -0
  535. data/lib/{lib/screens → screens}/tivo/tivo_screens.rb +0 -0
  536. data/lib/{lib/selenium → selenium}/appium/appium.rb +0 -0
  537. data/lib/{lib/selenium → selenium}/selenium.rb +0 -0
  538. data/lib/{lib/selenium → selenium}/webdriver/webdriver.rb +0 -0
  539. data/lib/{lib/test_case → test_case}/boilerplate/functional.rb +0 -0
  540. data/lib/{lib/test_case → test_case}/boilerplate/performance.rb +0 -0
  541. data/lib/{lib/test_case → test_case}/ci_test.rb +0 -0
  542. data/lib/{lib/test_case → test_case}/functional_test_case.rb +0 -0
  543. data/lib/{lib/test_case → test_case}/make_boilerplate.rb +0 -0
  544. data/lib/{lib/test_case → test_case}/monitoring/apple_monitor.rb +0 -0
  545. data/lib/{lib/test_case → test_case}/monitoring/base_monitor.rb +0 -0
  546. data/lib/{lib/test_case → test_case}/monitoring/dta_monitor.rb +0 -0
  547. data/lib/{lib/test_case → test_case}/monitoring/iguide_monitor.rb +0 -0
  548. data/lib/{lib/test_case → test_case}/monitoring/mdn_monitor.rb +0 -0
  549. data/lib/{lib/test_case → test_case}/monitoring/monitoring_test.rb +0 -0
  550. data/lib/{lib/test_case → test_case}/monitoring/odn_monitor.rb +0 -0
  551. data/lib/{lib/test_case → test_case}/monitoring/passport_monitor.rb +0 -0
  552. data/lib/{lib/test_case → test_case}/monitoring/report_monitor.rb +0 -0
  553. data/lib/{lib/test_case → test_case}/monitoring/roku_monitor.rb +0 -0
  554. data/lib/{lib/test_case → test_case}/monitoring/sara_monitor.rb +0 -0
  555. data/lib/{lib/test_case → test_case}/monitoring/spec_monitor.rb +0 -0
  556. data/lib/{lib/test_case → test_case}/performance_test_case.rb +0 -0
  557. data/lib/{lib/test_case → test_case}/test_case.rb +0 -0
  558. data/lib/{lib/test_case → test_case}/test_error.rb +0 -0
  559. data/lib/{lib/test_case → test_case}/test_exception.rb +0 -0
  560. data/lib/{lib/test_case → test_case}/test_status.rb +0 -0
  561. data/lib/{lib/test_case → test_case}/test_step.rb +0 -0
  562. data/lib/{lib/test_case → test_case}/test_trace.rb +0 -0
  563. data/lib/{lib/test_data.rb → test_data.rb} +0 -0
  564. data/lib/test_wrapper.rb +95 -0
  565. data/{lib/misc → misc}/get_latest_android.sh +0 -0
  566. data/{lib/misc → misc}/get_latest_ios.sh +0 -0
  567. data/{lib/package-lock.json → package-lock.json} +0 -0
  568. data/{lib/syntax_eval.rb → syntax_eval.rb} +27 -35
  569. data/tmc-core.gemspec +9 -0
  570. data/{lib/tools → tools}/convert_old_scripts.rb +0 -0
  571. data/{lib/tools → tools}/find_duplicate_rois.rb +0 -0
  572. data/{lib/tools → tools}/roku/inspector.rb +0 -0
  573. data/{lib/tools → tools}/syntax_checker.rb +2 -4
  574. data/{lib/upload_ref_images.rb → upload_ref_images.rb} +0 -0
  575. metadata +576 -873
  576. data/lib/User_Lib/helpers/helpers.rb +0 -13
  577. data/lib/User_Lib/screen/apple_tv/apple_tv_dvr.rb +0 -25
  578. data/lib/User_Lib/screen/apple_tv/apple_tv_guide.rb +0 -25
  579. data/lib/User_Lib/screen/apple_tv/apple_tv_library.rb +0 -25
  580. data/lib/User_Lib/screen/apple_tv/apple_tv_live_tv.rb +0 -17
  581. data/lib/User_Lib/screen/apple_tv/apple_tv_login.rb +0 -24
  582. data/lib/User_Lib/screen/apple_tv/apple_tv_main_menu.rb +0 -25
  583. data/lib/User_Lib/screen/apple_tv/apple_tv_mini_guide.rb +0 -25
  584. data/lib/User_Lib/screen/apple_tv/apple_tv_movies.rb +0 -25
  585. data/lib/User_Lib/screen/apple_tv/apple_tv_on_demand.rb +0 -25
  586. data/lib/User_Lib/screen/apple_tv/apple_tv_parental_controls.rb +0 -25
  587. data/lib/User_Lib/screen/apple_tv/apple_tv_product_page.rb +0 -25
  588. data/lib/User_Lib/screen/apple_tv/apple_tv_screen.rb +0 -23
  589. data/lib/User_Lib/screen/apple_tv/apple_tv_search.rb +0 -31
  590. data/lib/User_Lib/screen/apple_tv/apple_tv_settings.rb +0 -25
  591. data/lib/User_Lib/screen/apple_tv/apple_tv_tv_shows.rb +0 -25
  592. data/lib/User_Lib/screen/apple_tv/apple_tv_video_store.rb +0 -25
  593. data/lib/User_Lib/screen/dta/dta_dvr.rb +0 -26
  594. data/lib/User_Lib/screen/dta/dta_guide.rb +0 -26
  595. data/lib/User_Lib/screen/dta/dta_library.rb +0 -26
  596. data/lib/User_Lib/screen/dta/dta_live_tv.rb +0 -26
  597. data/lib/User_Lib/screen/dta/dta_log_in.rb +0 -26
  598. data/lib/User_Lib/screen/dta/dta_main_menu.rb +0 -26
  599. data/lib/User_Lib/screen/dta/dta_mini_guide.rb +0 -26
  600. data/lib/User_Lib/screen/dta/dta_movies.rb +0 -26
  601. data/lib/User_Lib/screen/dta/dta_on_demand.rb +0 -26
  602. data/lib/User_Lib/screen/dta/dta_parental_controls.rb +0 -26
  603. data/lib/User_Lib/screen/dta/dta_product_page.rb +0 -26
  604. data/lib/User_Lib/screen/dta/dta_screen.rb +0 -24
  605. data/lib/User_Lib/screen/dta/dta_search.rb +0 -26
  606. data/lib/User_Lib/screen/dta/dta_settings.rb +0 -26
  607. data/lib/User_Lib/screen/dta/dta_tv_shows.rb +0 -26
  608. data/lib/User_Lib/screen/dta/dta_video_store.rb +0 -26
  609. data/lib/User_Lib/screen/mdn/mdn_dvr.rb +0 -26
  610. data/lib/User_Lib/screen/mdn/mdn_guide.rb +0 -26
  611. data/lib/User_Lib/screen/mdn/mdn_library.rb +0 -26
  612. data/lib/User_Lib/screen/mdn/mdn_live_tv.rb +0 -26
  613. data/lib/User_Lib/screen/mdn/mdn_log_in.rb +0 -26
  614. data/lib/User_Lib/screen/mdn/mdn_main_menu.rb +0 -26
  615. data/lib/User_Lib/screen/mdn/mdn_mini_guide.rb +0 -26
  616. data/lib/User_Lib/screen/mdn/mdn_movies.rb +0 -26
  617. data/lib/User_Lib/screen/mdn/mdn_on_demand.rb +0 -26
  618. data/lib/User_Lib/screen/mdn/mdn_parental_controls.rb +0 -26
  619. data/lib/User_Lib/screen/mdn/mdn_product_page.rb +0 -26
  620. data/lib/User_Lib/screen/mdn/mdn_screen.rb +0 -24
  621. data/lib/User_Lib/screen/mdn/mdn_search.rb +0 -26
  622. data/lib/User_Lib/screen/mdn/mdn_settings.rb +0 -26
  623. data/lib/User_Lib/screen/mdn/mdn_tv_shows.rb +0 -26
  624. data/lib/User_Lib/screen/mdn/mdn_video_store.rb +0 -26
  625. data/lib/User_Lib/screen/mobile/android/android_devices.rb +0 -35
  626. data/lib/User_Lib/screen/mobile/android/android_dvr.rb +0 -337
  627. data/lib/User_Lib/screen/mobile/android/android_favorites.rb +0 -164
  628. data/lib/User_Lib/screen/mobile/android/android_guide.rb +0 -256
  629. data/lib/User_Lib/screen/mobile/android/android_live_tv.rb +0 -372
  630. data/lib/User_Lib/screen/mobile/android/android_login.rb +0 -111
  631. data/lib/User_Lib/screen/mobile/android/android_main_menu.rb +0 -53
  632. data/lib/User_Lib/screen/mobile/android/android_on_demand.rb +0 -402
  633. data/lib/User_Lib/screen/mobile/android/android_parental_controls.rb +0 -73
  634. data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_dvr.rb +0 -31
  635. data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_guide.rb +0 -39
  636. data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_live_tv.rb +0 -104
  637. data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_main_menu.rb +0 -27
  638. data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_on_demand.rb +0 -35
  639. data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_product_page.rb +0 -7
  640. data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_search.rb +0 -26
  641. data/lib/User_Lib/screen/mobile/android/android_privacy_legal.rb +0 -54
  642. data/lib/User_Lib/screen/mobile/android/android_product_page.rb +0 -484
  643. data/lib/User_Lib/screen/mobile/android/android_screen.rb +0 -56
  644. data/lib/User_Lib/screen/mobile/android/android_search.rb +0 -39
  645. data/lib/User_Lib/screen/mobile/android/android_settings.rb +0 -90
  646. data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_dvr.rb +0 -58
  647. data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_guide.rb +0 -24
  648. data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_live_tv.rb +0 -24
  649. data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_main_menu.rb +0 -19
  650. data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_on_demand.rb +0 -16
  651. data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_product_page.rb +0 -45
  652. data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_search.rb +0 -14
  653. data/lib/User_Lib/screen/mobile/devices_mobile.rb +0 -53
  654. data/lib/User_Lib/screen/mobile/dvr_mobile.rb +0 -5
  655. data/lib/User_Lib/screen/mobile/favorites_mobile.rb +0 -5
  656. data/lib/User_Lib/screen/mobile/guide_mobile.rb +0 -5
  657. data/lib/User_Lib/screen/mobile/ios/ios_devices.rb +0 -43
  658. data/lib/User_Lib/screen/mobile/ios/ios_dvr.rb +0 -231
  659. data/lib/User_Lib/screen/mobile/ios/ios_favorites.rb +0 -79
  660. data/lib/User_Lib/screen/mobile/ios/ios_guide.rb +0 -53
  661. data/lib/User_Lib/screen/mobile/ios/ios_live_tv.rb +0 -413
  662. data/lib/User_Lib/screen/mobile/ios/ios_login.rb +0 -76
  663. data/lib/User_Lib/screen/mobile/ios/ios_main_menu.rb +0 -38
  664. data/lib/User_Lib/screen/mobile/ios/ios_on_demand.rb +0 -371
  665. data/lib/User_Lib/screen/mobile/ios/ios_parental_controls.rb +0 -104
  666. data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_dvr.rb +0 -14
  667. data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_live_tv.rb +0 -36
  668. data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_main_menu.rb +0 -7
  669. data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_on_demand.rb +0 -7
  670. data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_search.rb +0 -13
  671. data/lib/User_Lib/screen/mobile/ios/ios_privacy_legal.rb +0 -56
  672. data/lib/User_Lib/screen/mobile/ios/ios_product_page.rb +0 -441
  673. data/lib/User_Lib/screen/mobile/ios/ios_screen.rb +0 -60
  674. data/lib/User_Lib/screen/mobile/ios/ios_search.rb +0 -145
  675. data/lib/User_Lib/screen/mobile/ios/ios_settings.rb +0 -34
  676. data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_live_tv.rb +0 -34
  677. data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_main_menu.rb +0 -7
  678. data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_on_demand.rb +0 -7
  679. data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_search.rb +0 -13
  680. data/lib/User_Lib/screen/mobile/live_tv_mobile.rb +0 -73
  681. data/lib/User_Lib/screen/mobile/login_mobile.rb +0 -5
  682. data/lib/User_Lib/screen/mobile/main_menu_mobile.rb +0 -83
  683. data/lib/User_Lib/screen/mobile/mobile_screen.rb +0 -232
  684. data/lib/User_Lib/screen/mobile/on_demand_mobile.rb +0 -70
  685. data/lib/User_Lib/screen/mobile/parental_controls_mobile.rb +0 -5
  686. data/lib/User_Lib/screen/mobile/privacy_legal_mobile.rb +0 -5
  687. data/lib/User_Lib/screen/mobile/product_page_mobile.rb +0 -5
  688. data/lib/User_Lib/screen/mobile/search_mobile.rb +0 -5
  689. data/lib/User_Lib/screen/mobile/settings_mobile.rb +0 -33
  690. data/lib/User_Lib/screen/passport/passport_dvr.rb +0 -25
  691. data/lib/User_Lib/screen/passport/passport_guide.rb +0 -37
  692. data/lib/User_Lib/screen/passport/passport_library.rb +0 -25
  693. data/lib/User_Lib/screen/passport/passport_live_tv.rb +0 -17
  694. data/lib/User_Lib/screen/passport/passport_main_menu.rb +0 -25
  695. data/lib/User_Lib/screen/passport/passport_mini_guide.rb +0 -25
  696. data/lib/User_Lib/screen/passport/passport_movies.rb +0 -25
  697. data/lib/User_Lib/screen/passport/passport_on_demand.rb +0 -25
  698. data/lib/User_Lib/screen/passport/passport_parental_controls.rb +0 -25
  699. data/lib/User_Lib/screen/passport/passport_product_page.rb +0 -25
  700. data/lib/User_Lib/screen/passport/passport_screen.rb +0 -23
  701. data/lib/User_Lib/screen/passport/passport_search.rb +0 -25
  702. data/lib/User_Lib/screen/passport/passport_settings.rb +0 -25
  703. data/lib/User_Lib/screen/passport/passport_tv_shows.rb +0 -25
  704. data/lib/User_Lib/screen/passport/passport_video_store.rb +0 -25
  705. data/lib/User_Lib/screen/roku/brs/roku_guide_brs.rb +0 -12
  706. data/lib/User_Lib/screen/roku/brs/roku_home_brs.rb +0 -12
  707. data/lib/User_Lib/screen/roku/brs/roku_live_tv_brs.rb +0 -12
  708. data/lib/User_Lib/screen/roku/brs/roku_login_brs.rb +0 -103
  709. data/lib/User_Lib/screen/roku/brs/roku_main_menu_brs.rb +0 -46
  710. data/lib/User_Lib/screen/roku/brs/roku_on_demand_brs.rb +0 -12
  711. data/lib/User_Lib/screen/roku/brs/roku_product_page_brs.rb +0 -12
  712. data/lib/User_Lib/screen/roku/brs/roku_screen_brs.rb +0 -9
  713. data/lib/User_Lib/screen/roku/brs/roku_search_brs.rb +0 -12
  714. data/lib/User_Lib/screen/roku/brs/roku_settings_brs.rb +0 -42
  715. data/lib/User_Lib/screen/roku/brs/roku_watch_later_brs.rb +0 -12
  716. data/lib/User_Lib/screen/roku/brs/roku_welcome_brs.rb +0 -12
  717. data/lib/User_Lib/screen/roku/roku_dvr.rb +0 -7
  718. data/lib/User_Lib/screen/roku/roku_guide.rb +0 -590
  719. data/lib/User_Lib/screen/roku/roku_home.rb +0 -346
  720. data/lib/User_Lib/screen/roku/roku_library.rb +0 -26
  721. data/lib/User_Lib/screen/roku/roku_live_tv.rb +0 -210
  722. data/lib/User_Lib/screen/roku/roku_login.rb +0 -795
  723. data/lib/User_Lib/screen/roku/roku_main_menu.rb +0 -425
  724. data/lib/User_Lib/screen/roku/roku_mini_guide.rb +0 -7
  725. data/lib/User_Lib/screen/roku/roku_on_demand.rb +0 -479
  726. data/lib/User_Lib/screen/roku/roku_product_page.rb +0 -483
  727. data/lib/User_Lib/screen/roku/roku_screen.rb +0 -85
  728. data/lib/User_Lib/screen/roku/roku_search.rb +0 -229
  729. data/lib/User_Lib/screen/roku/roku_settings.rb +0 -304
  730. data/lib/User_Lib/screen/roku/roku_watch_later.rb +0 -51
  731. data/lib/User_Lib/screen/roku/roku_welcome.rb +0 -10
  732. data/lib/User_Lib/screen/roku_tv/roku_tv_dvr.rb +0 -14
  733. data/lib/User_Lib/screen/roku_tv/roku_tv_guide.rb +0 -14
  734. data/lib/User_Lib/screen/roku_tv/roku_tv_home.rb +0 -14
  735. data/lib/User_Lib/screen/roku_tv/roku_tv_library.rb +0 -14
  736. data/lib/User_Lib/screen/roku_tv/roku_tv_live_tv.rb +0 -14
  737. data/lib/User_Lib/screen/roku_tv/roku_tv_login.rb +0 -14
  738. data/lib/User_Lib/screen/roku_tv/roku_tv_main_menu.rb +0 -14
  739. data/lib/User_Lib/screen/roku_tv/roku_tv_mini_guide.rb +0 -14
  740. data/lib/User_Lib/screen/roku_tv/roku_tv_on_demand.rb +0 -26
  741. data/lib/User_Lib/screen/roku_tv/roku_tv_product_page.rb +0 -14
  742. data/lib/User_Lib/screen/roku_tv/roku_tv_screen.rb +0 -7
  743. data/lib/User_Lib/screen/roku_tv/roku_tv_search.rb +0 -14
  744. data/lib/User_Lib/screen/roku_tv/roku_tv_settings.rb +0 -14
  745. data/lib/User_Lib/screen/roku_tv/roku_tv_watch_later.rb +0 -14
  746. data/lib/User_Lib/screen/roku_tv/roku_tv_welcome.rb +0 -14
  747. data/lib/User_Lib/screen/samsung_tv/samsung_tv_dvr.rb +0 -24
  748. data/lib/User_Lib/screen/samsung_tv/samsung_tv_guide.rb +0 -24
  749. data/lib/User_Lib/screen/samsung_tv/samsung_tv_library.rb +0 -24
  750. data/lib/User_Lib/screen/samsung_tv/samsung_tv_live_tv.rb +0 -21
  751. data/lib/User_Lib/screen/samsung_tv/samsung_tv_login.rb +0 -13
  752. data/lib/User_Lib/screen/samsung_tv/samsung_tv_main_menu.rb +0 -64
  753. data/lib/User_Lib/screen/samsung_tv/samsung_tv_mini_guide.rb +0 -24
  754. data/lib/User_Lib/screen/samsung_tv/samsung_tv_movies.rb +0 -140
  755. data/lib/User_Lib/screen/samsung_tv/samsung_tv_on_demand.rb +0 -76
  756. data/lib/User_Lib/screen/samsung_tv/samsung_tv_parental_controls.rb +0 -24
  757. data/lib/User_Lib/screen/samsung_tv/samsung_tv_product_page.rb +0 -24
  758. data/lib/User_Lib/screen/samsung_tv/samsung_tv_screen.rb +0 -74
  759. data/lib/User_Lib/screen/samsung_tv/samsung_tv_search.rb +0 -29
  760. data/lib/User_Lib/screen/samsung_tv/samsung_tv_settings.rb +0 -189
  761. data/lib/User_Lib/screen/samsung_tv/samsung_tv_tv_shows.rb +0 -24
  762. data/lib/User_Lib/screen/samsung_tv/samsung_tv_video_store.rb +0 -24
  763. data/lib/User_Lib/screen/sara/sara_dvr.rb +0 -26
  764. data/lib/User_Lib/screen/sara/sara_guide.rb +0 -43
  765. data/lib/User_Lib/screen/sara/sara_library.rb +0 -26
  766. data/lib/User_Lib/screen/sara/sara_live_tv.rb +0 -26
  767. data/lib/User_Lib/screen/sara/sara_log_in.rb +0 -26
  768. data/lib/User_Lib/screen/sara/sara_main_menu.rb +0 -26
  769. data/lib/User_Lib/screen/sara/sara_mini_guide.rb +0 -26
  770. data/lib/User_Lib/screen/sara/sara_movies.rb +0 -26
  771. data/lib/User_Lib/screen/sara/sara_on_demand.rb +0 -26
  772. data/lib/User_Lib/screen/sara/sara_parental_controls.rb +0 -26
  773. data/lib/User_Lib/screen/sara/sara_product_page.rb +0 -26
  774. data/lib/User_Lib/screen/sara/sara_screen.rb +0 -24
  775. data/lib/User_Lib/screen/sara/sara_search.rb +0 -26
  776. data/lib/User_Lib/screen/sara/sara_settings.rb +0 -26
  777. data/lib/User_Lib/screen/sara/sara_tv_shows.rb +0 -26
  778. data/lib/User_Lib/screen/sara/sara_video_store.rb +0 -26
  779. data/lib/User_Lib/screen/stb/iguide/iguide_devices.rb +0 -10
  780. data/lib/User_Lib/screen/stb/iguide/iguide_dvr.rb +0 -10
  781. data/lib/User_Lib/screen/stb/iguide/iguide_favorites.rb +0 -10
  782. data/lib/User_Lib/screen/stb/iguide/iguide_guide.rb +0 -39
  783. data/lib/User_Lib/screen/stb/iguide/iguide_home.rb +0 -10
  784. data/lib/User_Lib/screen/stb/iguide/iguide_library.rb +0 -10
  785. data/lib/User_Lib/screen/stb/iguide/iguide_live_tv.rb +0 -59
  786. data/lib/User_Lib/screen/stb/iguide/iguide_login.rb +0 -10
  787. data/lib/User_Lib/screen/stb/iguide/iguide_main_menu.rb +0 -10
  788. data/lib/User_Lib/screen/stb/iguide/iguide_mini_guide.rb +0 -10
  789. data/lib/User_Lib/screen/stb/iguide/iguide_movies.rb +0 -10
  790. data/lib/User_Lib/screen/stb/iguide/iguide_on_demand.rb +0 -531
  791. data/lib/User_Lib/screen/stb/iguide/iguide_parental_controls.rb +0 -10
  792. data/lib/User_Lib/screen/stb/iguide/iguide_privacy_legal.rb +0 -10
  793. data/lib/User_Lib/screen/stb/iguide/iguide_product_page.rb +0 -10
  794. data/lib/User_Lib/screen/stb/iguide/iguide_quick_menu.rb +0 -7
  795. data/lib/User_Lib/screen/stb/iguide/iguide_screen.rb +0 -21
  796. data/lib/User_Lib/screen/stb/iguide/iguide_search.rb +0 -10
  797. data/lib/User_Lib/screen/stb/iguide/iguide_settings.rb +0 -10
  798. data/lib/User_Lib/screen/stb/iguide/iguide_tv_shows.rb +0 -10
  799. data/lib/User_Lib/screen/stb/iguide/iguide_video_store.rb +0 -10
  800. data/lib/User_Lib/screen/stb/login_stb.rb +0 -5
  801. data/lib/User_Lib/screen/stb/odn/odn_dvr.rb +0 -59
  802. data/lib/User_Lib/screen/stb/odn/odn_favorites.rb +0 -8
  803. data/lib/User_Lib/screen/stb/odn/odn_guide.rb +0 -177
  804. data/lib/User_Lib/screen/stb/odn/odn_live_tv.rb +0 -115
  805. data/lib/User_Lib/screen/stb/odn/odn_login.rb +0 -8
  806. data/lib/User_Lib/screen/stb/odn/odn_main_menu.rb +0 -175
  807. data/lib/User_Lib/screen/stb/odn/odn_on_demand.rb +0 -1170
  808. data/lib/User_Lib/screen/stb/odn/odn_on_demand_kids.rb +0 -23
  809. data/lib/User_Lib/screen/stb/odn/odn_on_demand_left_menu.rb +0 -180
  810. data/lib/User_Lib/screen/stb/odn/odn_parental_controls.rb +0 -9
  811. data/lib/User_Lib/screen/stb/odn/odn_product_page.rb +0 -8
  812. data/lib/User_Lib/screen/stb/odn/odn_screen.rb +0 -111
  813. data/lib/User_Lib/screen/stb/odn/odn_search.rb +0 -167
  814. data/lib/User_Lib/screen/stb/odn/odn_settings.rb +0 -142
  815. data/lib/User_Lib/screen/stb/spectrum/spectrum_diagnostics.rb +0 -27
  816. data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/screen_spectrum_docsis.rb +0 -12
  817. data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_guide.rb +0 -10
  818. data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_main_menu.rb +0 -10
  819. data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_settings.rb +0 -10
  820. data/lib/User_Lib/screen/stb/spectrum/spectrum_dvr.rb +0 -1781
  821. data/lib/User_Lib/screen/stb/spectrum/spectrum_guide.rb +0 -841
  822. data/lib/User_Lib/screen/stb/spectrum/spectrum_library.rb +0 -384
  823. data/lib/User_Lib/screen/stb/spectrum/spectrum_live_tv.rb +0 -259
  824. data/lib/User_Lib/screen/stb/spectrum/spectrum_main_menu.rb +0 -223
  825. data/lib/User_Lib/screen/stb/spectrum/spectrum_mini_guide.rb +0 -404
  826. data/lib/User_Lib/screen/stb/spectrum/spectrum_movies.rb +0 -420
  827. data/lib/User_Lib/screen/stb/spectrum/spectrum_netflix.rb +0 -37
  828. data/lib/User_Lib/screen/stb/spectrum/spectrum_on_demand.rb +0 -2137
  829. data/lib/User_Lib/screen/stb/spectrum/spectrum_parental_controls.rb +0 -528
  830. data/lib/User_Lib/screen/stb/spectrum/spectrum_pay_per_view.rb +0 -26
  831. data/lib/User_Lib/screen/stb/spectrum/spectrum_product_page.rb +0 -58
  832. data/lib/User_Lib/screen/stb/spectrum/spectrum_screen.rb +0 -48
  833. data/lib/User_Lib/screen/stb/spectrum/spectrum_search.rb +0 -92
  834. data/lib/User_Lib/screen/stb/spectrum/spectrum_settings.rb +0 -1657
  835. data/lib/User_Lib/screen/stb/spectrum/spectrum_tv_shows.rb +0 -1532
  836. data/lib/User_Lib/screen/stb/spectrum/spectrum_video_store.rb +0 -1598
  837. data/lib/User_Lib/screen/stb/stb_screen.rb +0 -7
  838. data/lib/User_Lib/screen/tivo/tivo_dvr.rb +0 -25
  839. data/lib/User_Lib/screen/tivo/tivo_guide.rb +0 -25
  840. data/lib/User_Lib/screen/tivo/tivo_library.rb +0 -25
  841. data/lib/User_Lib/screen/tivo/tivo_live_tv.rb +0 -17
  842. data/lib/User_Lib/screen/tivo/tivo_login.rb +0 -25
  843. data/lib/User_Lib/screen/tivo/tivo_main_menu.rb +0 -25
  844. data/lib/User_Lib/screen/tivo/tivo_mini_guide.rb +0 -25
  845. data/lib/User_Lib/screen/tivo/tivo_movies.rb +0 -25
  846. data/lib/User_Lib/screen/tivo/tivo_on_demand.rb +0 -25
  847. data/lib/User_Lib/screen/tivo/tivo_parental_controls.rb +0 -25
  848. data/lib/User_Lib/screen/tivo/tivo_product_page.rb +0 -25
  849. data/lib/User_Lib/screen/tivo/tivo_screen.rb +0 -20
  850. data/lib/User_Lib/screen/tivo/tivo_search.rb +0 -31
  851. data/lib/User_Lib/screen/tivo/tivo_settings.rb +0 -25
  852. data/lib/User_Lib/screen/tivo/tivo_tv_shows.rb +0 -25
  853. data/lib/User_Lib/screen/tivo/tivo_video_store.rb +0 -25
  854. data/lib/diagnostics/conductor/conductor_checkup.tmc +0 -24
  855. data/lib/diagnostics/db/mad_db_check.tmc +0 -56
  856. data/lib/diagnostics/db/mas_db_checkup.tmc +0 -24
  857. data/lib/diagnostics/db/mas_db_checkup_gem.tmc +0 -20
  858. data/lib/diagnostics/db/mas_db_checkup_jar.tmc +0 -50
  859. data/lib/diagnostics/iguide/iguide_nvram_reset.tmc +0 -23
  860. data/lib/diagnostics/iguide/iguide_prepare_stb.tmc +0 -33
  861. data/lib/diagnostics/iguide/iguide_prepare_stb_and_health_check.tmc +0 -63
  862. data/lib/diagnostics/iguide/iguide_stb_health_check.tmc +0 -54
  863. data/lib/diagnostics/prepare_stb.tmc +0 -30
  864. data/lib/diagnostics/prepare_stb_and_health_check.tmc +0 -56
  865. data/lib/diagnostics/script_options/options_checkup.tmc +0 -145
  866. data/lib/diagnostics/server_components_check.tmc +0 -62
  867. data/lib/diagnostics/ssh/dncs_checkup.tmc +0 -24
  868. data/lib/diagnostics/ssh/mas_checkup.tmc +0 -24
  869. data/lib/diagnostics/stb_health_check.tmc +0 -46
  870. data/lib/diagnostics/stb_ip_check.tmc +0 -120
  871. data/lib/diagnostics/webservices/mas_rest_services_checkup.tmc +0 -24
  872. data/lib/diagnostics/webservices/mas_soap_services_checkup.tmc +0 -24
  873. data/lib/end_iteration.rb +0 -4
  874. data/lib/lib/test_wrapper.rb +0 -146
  875. data/lib/run_test.rb +0 -4
  876. data/lib/script_validator.rb +0 -48
@@ -1,8 +0,0 @@
1
- require './lib/screen/stb/odn/odn_screen'
2
- # DO NOT ADD DSL REQUIRES HERE. Load them in methods that need them, otherwise syntax completion will be slow.
3
-
4
- # Defines Odn-specific methods on the Login screen.
5
-
6
- class OdnLogin < OdnScreen
7
-
8
- end
@@ -1,175 +0,0 @@
1
- require './lib/screen/stb/odn/odn_screen'
2
- # DO NOT ADD DSL REQUIRES HERE. Load them in methods that need them, otherwise syntax completion will be slow.
3
-
4
- # Defines Odn-specific methods on the MainMenu screen.
5
-
6
- class OdnMainMenu < OdnScreen
7
-
8
- attr_accessor :menuItemsKeywords, :menuItems
9
-
10
- # Public: Initializes Odn720MainMenu class
11
- def initialize(dut)
12
- super(dut)
13
- # these are our pre-defined keywords for the main menu. if we missed any, please simply add it to the list
14
- @menuItemsKeywords = ['WATCHTV', 'WATCHLIVETV', 'LIVETV', 'GUIDE', 'DVR', 'ONDEMAND', 'KIDS', 'SEARCH', 'CALLERID', 'SETTINGS', 'FEATURETOUR', 'TOUR', 'NEWS', 'SPORTS', 'MOVIES', 'GAMES', 'HELP']
15
-
16
- # place holder for our menu items
17
- @menuItems = []
18
- end
19
-
20
- # Public: Navigates to Main Menu from Live TV.
21
- #
22
- # Returns nothing.
23
- def navigate_from_live_tv
24
- dut.press_key.MENU(:sleep_time => 3.sec)
25
- end
26
-
27
- # Public: Checks if the current screen is displayed.
28
- #
29
- # timeout - Integer total milliseconds to check before timing out (default: 5.sec).
30
- #
31
- # Returns a Boolean true if the screen is displayed, otherwise false.
32
- def displayed?(args={})
33
- timeout = args.fetch(:timeout, 5.sec)
34
- dut.roi.color.menu_opened.displayed?(:timeout => timeout, :priority => :high)
35
- end
36
-
37
- # Public: Uses OCR result of the main menu area to generate our menu items array.
38
- #
39
- # Returns an array of the main menu items
40
- def generate_menu_map()
41
- ocr_text = dut.roi.text.main_menu_all_text.retrieve
42
-
43
- # convert the entire string to upper case first
44
- str_menu_all_text = ocr_text.upcase
45
- # remove all spaces
46
- str_menu_all_text = str_menu_all_text.gsub(/ /, '')
47
- # we assume everything before 'WATCHTV' is garbage and can be trimmed
48
- # str_menu_all_text = str_menu_all_text.gsub(/[.\s\S]*WATCHTV/, 'WATCHTV')
49
- # we assume everything after 'SETTINGS' is garbage and can be trimmed
50
- # str_menu_all_text = str_menu_all_text.gsub(/SETTINGS[.\s\S]*/, 'SETTINGS')
51
-
52
- # let's split the string (lines) into an array
53
- arMenuItems = str_menu_all_text.split(/[\n]/)
54
- outputMenuItemsArray = []
55
- arMenuItems.each do |m|
56
- # clean up our text from ocr a little more
57
- m = m.gsub(/\s/, '')
58
- @menuItemsKeywords.each do |k|
59
- # logger.info("m: #{m} k: #{k} score: #{get_string_similarity(k, m)}")
60
- if get_string_similarity(k, m) >= 0.70
61
- outputMenuItemsArray.push(k)
62
- end
63
- end
64
- end
65
- i = 0
66
- outputMenuItemsArray.each do |mi|
67
- logger.info("MAIN MENU ITEM #{i} -- #{mi}")
68
- i += 1
69
- end
70
- outputMenuItemsArray
71
- end
72
-
73
- # Public: get menu item index in the @menuItems
74
- #
75
- # item_name: menu item name
76
- #
77
- # Returns the index value in @menuItems, -1 if the item cannot be found
78
- def get_menu_item_index(item_name)
79
- if (@menuItems.length == 0)
80
- @menuItems = generate_menu_map
81
- end
82
- item_name = item_name.upcase.gsub(/ /, '')
83
- i = 0
84
- @menuItems.each do |mi|
85
- if (item_name == mi)
86
- return i
87
- end
88
- i += 1
89
- end
90
- -1
91
- end
92
-
93
- # Public: navigate to menu item in the main menu by providing the item name
94
- #
95
- # item_name: name of the item to navigate to
96
- #
97
- # Returns true if successful, false otherwise
98
- def navigate_to_menu_item_by_name?(item_name)
99
- if (@menuItems.length == 0)
100
- @menuItems = generate_menu_map
101
- end
102
- idx = get_menu_item_index(item_name)
103
- if (idx >= 0)
104
- idx.times{dut.press_key.ARROW_DOWN(:sleep_time => 1000)}
105
- dut.press_key.SELECT(:sleep_time => 0)
106
- true
107
- else
108
- false
109
- end
110
- end
111
-
112
- # Public: navigate to Watch TV via the main menu
113
- #
114
- # Returns true if successful, false otherwise
115
- def navigate_to_watch_tv?
116
- navigate_to_menu_item_by_name?("Watch TV")
117
- end
118
-
119
- # Public: navigate to Guide via the main menu
120
- #
121
- # Returns nothing.
122
- def navigate_to_guide?
123
- navigate_to_menu_item_by_name?("Guide")
124
- end
125
-
126
- # Public: navigate to DVR via the main menu
127
- #
128
- # Returns nothing.
129
- def navigate_to_dvr?
130
- navigate_to_menu_item_by_name?("DVR")
131
- end
132
-
133
- # Public: navigate to On Demand via the main menu
134
- #
135
- # Returns true if we naviagated to the On Demand screen
136
- def navigate_to_on_demand?
137
- navigate_to_menu_item_by_name?("On Demand")
138
- end
139
-
140
- # Public: navigate to Kids via the main menu
141
- #
142
- # Returns true if we found kids and clicked on select.
143
- def navigate_to_kids?
144
- navigate_to_menu_item_by_name?("Kids")
145
- end
146
-
147
- # Public: navigate to Search via the main menu
148
- #
149
- # Returns nothing.
150
- def navigate_to_search?
151
- navigate_to_menu_item_by_name?("Search")
152
- end
153
-
154
- # Public: navigate to Caller ID via the main menu
155
- #
156
- # Returns nothing.
157
- def navigate_to_callerid?
158
- navigate_to_menu_item_by_name?("Caller ID")
159
- end
160
-
161
- # Public: navigate to Settings via the main menu
162
- #
163
- # Returns true if we naviagated to the Settings screen
164
- def navigate_to_settings?
165
- navigate_to_menu_item_by_name?("Settings")
166
- end
167
-
168
- # Public: navigate to Feature Tour via the main menu
169
- #
170
- # Returns true if successful, false otherwise
171
- def navigate_to_featuretour?
172
- navigate_to_menu_item_by_name?("Feature Tour")
173
- end
174
-
175
- end
@@ -1,1170 +0,0 @@
1
- require './lib/screen/stb/odn/odn_screen'
2
- require './lib/keyboard/stb/odn/odn_on_demand_search_keyboard'
3
-
4
- # DO NOT ADD DSL REQUIRES HERE. Load them in methods that need them, otherwise syntax completion will be slow.
5
-
6
- # Defines Odn-specific methods on the OnDemand screen.
7
-
8
- class OdnOnDemand < OdnScreen
9
-
10
- def initialize(dut)
11
- super(dut)
12
- @keyboards << OdnOnDemandSearchKeyboard.new(dut)
13
- end
14
-
15
- # Public: To get the list asset details from output file in list of maps
16
- #
17
- #Author : Raghavendra
18
- #
19
- # file_name - The (default: "None")......... filename of Digital Smith output file
20
- #
21
- # Returns Hashmap of asset details fetched from digital smith server
22
- def vod_fetch_asset_details_from_ds_output_file? (file_name="None")
23
- begin
24
- ds_output=read_from_file "#{file_name}"
25
- ds_details_list=Array.new
26
- ds_detail_hash=Hash.new
27
- ds_output_line=ds_output.split("##")
28
- ds_output_line.each do |each_line|
29
- ds_values=each_line.split(",")
30
- cid=ds_values[0]
31
- asset_name=ds_values[1]
32
- season_number=ds_values[2]
33
- episode_number=ds_values[3]
34
- title=ds_values[4]
35
- package_id=ds_values[5]
36
- start_date=ds_values[6]
37
- end_date=ds_values[7]
38
- cpid=ds_values[8]
39
- prog_type=ds_values[9]
40
- alphonso_flag=ds_values[10]
41
- ds_flag=ds_values[11]
42
- timestamp=ds_values[12]
43
- pct=ds_values[13]
44
- order_status=ds_values[14]
45
- display_name=ds_values[15]
46
- series_name=ds_values[16]
47
- rootid=ds_values[17]
48
- ds_detail_hash=Hash.new
49
- ds_detail_hash={"cid"=>cid.to_s,"asset_name"=>asset_name.to_s,"episode_number"=>episode_number.to_s,"season_number"=>season_number.to_s,"title"=>title.to_s,"package_id"=>package_id.to_s,"start_date"=>start_date.to_s,
50
- "end_date"=>end_date.to_s,"cpid"=>cpid.to_s,"prog_type"=>prog_type,"alphonso_flag"=>alphonso_flag.to_s,"ds_flag"=>ds_flag.to_s,"timestamp"=>timestamp.to_s,"pct"=>pct.to_s,"root_id"=>rootid,"order_status"=>order_status,"display_name"=>display_name,"series_name"=>series_name}
51
- ds_details_list << ds_detail_hash
52
- end
53
- return ds_details_list
54
- rescue => exception
55
- loginfo "vod_fetch_asset_details_from_ds_output_file :: Failed Threw an exception"
56
- loginfo exception.message
57
- loginfo exception.backtrace
58
- return nil
59
- end
60
- end
61
-
62
- # Public: Convert the hasmap data to json and post it to TWB
63
- #
64
- # data - hash map containing all the key value pairs to post the data into TWB VOD report (default: nil).
65
- #
66
- #Author : Raghavendra
67
- #
68
- # Returns true if response status is 200 else returns false
69
- def vod_upload_to_twb?(data=nil)
70
- begin
71
- require 'json'
72
- require 'csv'
73
- require 'net/http'
74
- require 'net/https'
75
- requestURL='https://twb.dev-charter.net/ords/preprod/vod/'
76
- uri=URI.parse("#{requestURL}")
77
- twbRequest=Net::HTTP::Post.new(uri.request_uri,'Content-Type' => 'application/json')
78
- http = Net::HTTP.new(uri.host, uri.port)
79
- http.use_ssl = (uri.scheme == "https")
80
- jsonData=data.to_json
81
- loginfo jsonData
82
- twbRequest.body = jsonData
83
- response=http.request(twbRequest)
84
- if response.code=='200'
85
- $progressStatus=100
86
- return true
87
- else
88
- loginfo "vod_upload_to_twb :: Failed to upload to TWB"
89
- loginfo "Response Code :: "+(response.code).to_s
90
- loginfo "Response Body :: "+(response.body).to_s
91
- return false
92
- end
93
- rescue => exception
94
- loginfo "vod_upload_to_twb :: Threw an exception"
95
- loginfo exception.message
96
- loginfo exception.backtrace
97
- end
98
- end
99
-
100
- # Public: To fetch all the asset details like banner presence,view option,price,playback status for movies
101
- #
102
- # Author : Raghavendra
103
- #
104
- # is_series - flag t (default: false).o indicate the asset being manipulated is a series or not
105
- #
106
- # Returns hash of all the details retrieved
107
- def vod_fetch_asset_details?(is_series=false)
108
- begin
109
- ########
110
- #Step-1# Assign all default values to the attributes to be posted to TWB vod report
111
- ########
112
- title=dut.roi.text.odn_asset_overview_asset_name.retrieve
113
- quantity='1'
114
- price='0.00'
115
- view_option='NA'
116
- playback_status='NA'
117
- banner_presence='ABSENT'
118
- status='PRESENT'
119
- season_number='NA'
120
- episode_number='NA'
121
- episode_name='NA'
122
- play_trick_status='NA'
123
- ########
124
- #Step-2# Fetch the text displayed for the first button to determine the view option provided for the asset
125
- ########
126
- if(is_series)
127
- view_option_text=dut.roi.text.odn_asset_overview_season_text.retrieve
128
- else
129
- view_option_text=dut.roi.text.odn_movie_asset_view_option.retrieve
130
- end
131
- view_option_text=view_option_text.downcase
132
- ########
133
- #Step-3# Following conditions will determine what kind of view_option is provided for the current asset based on the text retrieved
134
- ########
135
- if view_option_text.include? "watch"
136
- if view_option_text.include? "add"
137
- if view_option_text.index('add') > view_option_text.index('watch')
138
- view_option='WATCH'
139
- else
140
- view_option='ADD TO WATCHLIST'
141
- end
142
- else
143
- view_option='WATCH'
144
- end
145
- elsif view_option_text.include? "restart"
146
- view_option='RESTART'
147
- elsif view_option_text.include? "season"
148
- view_option='BROWSE EPISODES'
149
- elsif view_option_text.include? "rent"
150
- view_option='RENT'
151
- #If the view option is rent then the price is also retrieved from the text
152
- rent_text=dut.roi.text.asset_overview_rent_price_text.retrieve
153
- ind=rent_text.index('$')
154
- if ind=='nil'
155
- price='0.00'
156
- else
157
- price=view_option_text[ind..ind+5]
158
- price=view_option_text.delete("^.0-9")
159
- end
160
- end
161
- ########
162
- #Step-4# Determine whether poster/banner is displayed for the asset
163
- ########
164
- if dut.roi.image.odn_asset_with_no_banner.displayed?(:timeout => 7000)
165
- banner_presence='ABSENT'
166
- else
167
- banner_presence='PRESENT'
168
- end
169
- ########
170
- #Step-5# Determine whether the asset is playable if the option provided is watch
171
- ########
172
- if view_option=='WATCH' or view_option=='RESTART'
173
- dut.press_key('select', :sleep_time=>3.sec)
174
- if dut.roi.image.asset_resume_option_image.displayed?(:timeout => 5000)
175
- dut.press_key('select', :sleep_time=>3.sec)
176
- end
177
- if dut.roi.video.odn_fullscreen_motion.displayed?(:timeout => 7000)
178
- playback_status='PLAYABLE'
179
- else
180
- playback_status='NOT PLAYABLE'
181
- end
182
- dut.press_key('stop', :sleep_time=>3.sec)
183
- end
184
- ########
185
- #Step-6# Form the hash of the all the attributes collected till now
186
- ########
187
- assetDetailHash = {"category"=>"NA","play_trick_status"=>"#{play_trick_status}","title" => "#{title}","quantity" => "#{quantity}","price" =>"#{price}","view_option"=>"#{view_option}","playback_status"=>"#{playback_status}","banner_presence"=>"#{banner_presence}","season_number"=>"#{season_number}","episode_number"=>"#{episode_number}","episode_name"=>"#{episode_name}","status"=>"#{status}"}
188
- loginfo assetDetailHash
189
- return assetDetailHash
190
- rescue => exception
191
- loginfo "fetch_asset_details :: Threw an Exception"
192
- loginfo exception.message
193
- loginfo exception.backtrace
194
- return nil
195
- end
196
- end
197
-
198
- # Public: To search for the episode based on episode name, number and season number
199
- #
200
- # Author : Raghavendra
201
- #
202
- # episode_name - Name of the episode to be searched for
203
- # episode_number - Episode number of the episode to be searched
204
- # season_number - season number of the episode to be searched
205
- #
206
- # Returns hash of all the status flags
207
- def vod_verify_episode_present?(episode_name,episode_number,season_number)
208
- current_episode_name="Current"
209
- prev_episode_name="Previous"
210
- episode_name_ret=""
211
- episode_num_ret=""
212
- season_num_ret=""
213
- season_num_episode_num=""
214
- episode_name_status=false
215
- episode_number_status=false
216
- season_number_status=false
217
- is_on_demand=false
218
- episode_list=Array.new
219
- begin
220
- # eliminating the special characters if any
221
- episode_name=episode_name.to_s
222
- forb_chars = ['<', '>', ':', '"', '/', '\\', '|', '?', '*', ',','&','-','_',".","!","'"]
223
- forb_chars.each do |char|
224
- episode_name=episode_name.sub("#{char}","")
225
- end
226
- episode_name_roi = dut.roi.text.new(:x => 753, :y => 362, :width => 719, :height => 73, :similarity => 80, :text => "#{episode_name}", :preprocessing => 8, :only_digits => false, :ref_img => "")
227
- episode_number=episode_number.to_s
228
- #Pre-requisite : Control should be present on asset overview page
229
- view_option_text=dut.roi.text.odn_asset_overview_season_text.retrieve
230
- view_option_text=view_option_text.downcase
231
- if view_option_text.include? "season"
232
- loginfo "Browse Episode Option Is present"
233
- else
234
- raise "vod_verify_episode_present :: Option to browse episode is absent; season listing label is absent"
235
- end
236
- if episode_number.length > 0
237
- raise "vod_verify_episode_present :: Season Not Found" unless dut.screens.on_demand.vod_goto_particular_season?(season = "#{season_number}")
238
- end
239
- while (episode_list.include? "#{current_episode_name}")==false
240
- episode_name_ret=dut.roi.text.episode_name_episode_listing_text.retrieve
241
- loginfo "Retrieved Episode Name "+episode_name_ret
242
- episode_name_ret=episode_name_ret.to_s
243
- forb_chars = ['<', '>', ':', '"', '/', '\\', '|', '?', '*', ',','&','-','_',".","!","'"]
244
- forb_chars.each do |char|
245
- episode_name_ret=episode_name_ret.sub("#{char}","")
246
- end
247
- episode_list << episode_name_ret
248
- episode_num_ret=dut.roi.text.episode_number_episode_lisitng_text.retrieve
249
- season_num_ret=dut.roi.text.odn_asset_overview_season_text.retrieve
250
- loginfo "Season Number Retrieved #{season_num_ret}"
251
- loginfo "Episode Number Retrieved #{episode_num_ret}"
252
- if (episode_name_roi.displayed?(:timeout => 5.sec))
253
- episode_name_status=true
254
- end
255
- if episode_name_status
256
- loginfo "Episode Found"
257
- #break
258
- end
259
- if(season_num_ret.include?("Season "+season_number.to_s))
260
- season_number_status=true
261
- loginfo "season_number"
262
- loginfo season_num_ret
263
- else
264
- raise "vod_verify_episode_present :: Searched all the episodes in the season , Episode not found"
265
- end
266
- if(episode_num_ret.include?("Ep "+episode_number.to_s))
267
- episode_number_status=true
268
- loginfo "episode number is "
269
- loginfo episode_number
270
- loginfo "episode number matched "
271
- end
272
- if (season_number_status==true and episode_number_status==true) or episode_name_status==true
273
- loginfo "episode matched"
274
- is_on_demand=dut.roi.text.episode_on_demand_indicator_text.retrieve
275
- if is_on_demand.include? "Demand"
276
- is_on_demand=true
277
- else
278
- is_on_demand=false
279
- end
280
- break
281
- end
282
- dut.press_key('down_arrow', :sleep_time=>3.sec)
283
- press_select_text=dut.roi.text.episodes_collapsed_select_text.retrieve
284
- if(press_select_text.include? "Press SELECT")
285
- press_select_text=''
286
- dut.press_key('select', :sleep_time=>3.sec)
287
- end
288
- current_episode_name=episode_name_roi.retrieve
289
- current_episode_name=current_episode_name.to_s
290
- forb_chars.each do |char|
291
- current_episode_name=current_episode_name.sub("#{char}","")
292
- end
293
- end
294
- if episode_name_status==false and (season_number_status==false or episode_number_status==false)
295
- loginfo episode_list
296
- raise "vod_verify_episode_present :: Episode Not Found"
297
- end
298
- episode_found_details={"episode_name"=>episode_name_status,"episode_number"=>episode_number_status,"season_number"=>season_number_status,"is_on_demand"=>is_on_demand}
299
- return episode_found_details
300
- rescue => exception
301
- loginfo "vod_verify_episode_present : : Threw an exception"
302
- loginfo exception.message
303
- loginfo exception.backtrace
304
- return nil
305
- end
306
- end
307
-
308
- # Public: Get list of c3 assets from the deluxe server and store it in a txt file
309
- #
310
- #Author : Raghavendra
311
- #
312
- # output_file_name - Name of the file where the data fetched from the server has to be saved to (default: nil).
313
- #
314
- # Returns list of c3 asset details fetched from deluxe server
315
- def vod_get_asset_id_list_deluxe?(output_file_name=nil)
316
- require 'json'
317
- require 'net/http'
318
- require 'net/https'
319
- require 'set'
320
- require 'uri'
321
- ###############
322
- #Pre_requisite# store deluxe asset url,create set to store details and return,summary line,page number,next page available flag
323
- ###############
324
- deluxe_asset_query_url='https://hal.d3nw.com/customer_api/v1/titles?'
325
- id_list=Set.new
326
- page = 1
327
- next_page_available = true
328
- ########
329
- #Step-1# Get window start date, window end date
330
- ########
331
- licensing_window_start_date_gteq, licensing_window_start_date_lteq, licensing_window_end_date = dut.screens.on_demand.vod_get_start_end_date?
332
- ########
333
- #Step-2# Get the deluxe server access token
334
- ########
335
- deluxe_access_token=dut.screens.on_demand.vod_get_deluxe_access_token?
336
- ########
337
- #Step-3# Contruct file name to store the assets details fetched from deluxe server
338
- ########
339
- deluxe_file_name="#{output_file_name}"
340
- ########
341
- #Step-4# Using the file name created in above step write empty line into file just to create the file
342
- ########
343
- loginfo 'Deluxe File Name= '+deluxe_file_name
344
- ########
345
- #Step-5# Rerquest the deluxe server for 500 pages of data page by page and extract the c3 asset details till nothing is returned
346
- ########
347
- while (next_page_available)
348
- begin
349
- loginfo 'Getting Page :' + (page).to_s
350
- ##########
351
- #Step-5.1# Parse the URL of the deluxe server and store it in a URI object
352
- ##########
353
- deluxe_asset_list_uri=URI.parse("#{deluxe_asset_query_url}")
354
- ##########
355
- #Step-5.2# Contruct the URL with required window star tand end date parameteres and page number too
356
- ##########
357
- deluxe_asset_list_uri.query=[deluxe_asset_list_uri.query,"licensing_window_start_date_gteq=#{licensing_window_start_date_gteq}", "licensing_window_start_date_lteq=#{licensing_window_start_date_lteq}", "perpage=500", "page=#{page}"].compact.join('&')
358
- ##########
359
- #Step-5.4# Create a http request object from the uri object created
360
- ##########
361
- deluxe_asset_list_request=Net::HTTP::Get.new(deluxe_asset_list_uri.request_uri)
362
- ##########
363
- #Step-5.5# Create a http object to process the request object and get the reponse
364
- ##########
365
- http = Net::HTTP.new(deluxe_asset_list_uri.host, deluxe_asset_list_uri.port)
366
- ##########
367
- #Step-5.6# set the ssl as true iff the url provided as https in it
368
- ##########
369
- http.use_ssl = (deluxe_asset_list_uri.scheme == "https")
370
- ##########
371
- #Step-5.6# Set the authorization parameter as the deluxe server access token
372
- ##########
373
- deluxe_asset_list_request["authorization"] = 'Bearer ' + "#{deluxe_access_token}"
374
- ##########
375
- #Step-5.7# Process the request and get the reponse into response object
376
- ##########
377
- response=http.request(deluxe_asset_list_request)
378
- ##########
379
- #Step-5.8# Verify if the response is not null
380
- ##########
381
- if (response.read_body).length <=2
382
- next_page_available=false
383
- break#break from while loop
384
- else
385
- next_page_available=true
386
- deluxe_response=response.read_body
387
- end#End if block
388
- ##########
389
- #Step-5.9# Parse the response into an JSON object and store it into data object
390
- ##########
391
- data=JSON.parse(deluxe_response)
392
- ##########
393
- #Step-5.10# Retrieve all the required c3 asset details from json data from the response received
394
- ##########
395
- for i in 0..((data).size-1)
396
- if(data[i]['sla_type_code']=='c3' || data[i]['sla_type_code']=='c3-lt-60' || data[i]['sla_type_code']=='c3-gt-60')
397
- loginfo 'Found a C3 Asset'
398
- dname= data[i]['display_name'].to_s
399
- assetID= (data[i]['cablelabs_asset_id']).to_s
400
- cpid = (data[i]['cablelabs_provider_id']).to_s
401
- pct = (data[i]['custom_data']['provider_content_tier']).to_s
402
- license_start = (data[i]['licensing_window_start_date']).to_s
403
- license_end = (data[i]['licensing_window_end_date']).to_s
404
- if data[i]['status'] != nil
405
- order_status = (data[i]['status']).to_s
406
- else
407
- order_status="NULL"
408
- end
409
- if data[i]['display_name'] != nil
410
- display_name = (data[i]['display_name']).to_s
411
- else
412
- display_name="NULL"
413
- end
414
- if data[i]['series_name'] != nil
415
- series_name = (data[i]['series_name']).to_s
416
- else
417
- series_name="NULL"
418
- end
419
- msg = assetID + ',' + cpid + ',' + pct + ',' + license_start + ',' + license_end + ',' + order_status + ',' + display_name + ',' + series_name
420
- loginfo msg
421
- id_list.add(msg)
422
- end#End if block
423
- end#End of for loop
424
- page=page+1
425
-
426
- loginfo id_list.size
427
- create_file=true
428
- id_list.each do |n|
429
- if(create_file)
430
- create_file=false
431
- write_to_file "#{deluxe_file_name}", n+"##"
432
- else
433
- append_to_file "#{deluxe_file_name}", n+"##"
434
- end
435
- end#for each loop
436
- rescue => exception
437
- loginfo 'Exception occured while fetching c3 asset details from deluxe server'
438
- loginfo exception.message
439
- loginfo exception.backtrace
440
- break#break out of while loop on exception
441
- end
442
- end
443
- $summary_line=$summary_line+ ',' + ((id_list).size).to_s
444
- return id_list
445
- end
446
-
447
- # Public: To verify the presence of c3 deluxe asset ids from deluxe server in alphonso server
448
- #
449
- #Author : Raghavendra
450
- #
451
- #Todo : Create a Map to put all the details in it and return that metadata map to use reporting
452
- #
453
- # deluxe_asset_id_list - C3 ID LIST fetched from DELUXE server
454
- # output_file_name - Name of the file where the data fetched form server has to be stored (default: nil).
455
- #
456
- # Returns List of c3 deluxe asset ids found alphonso
457
- def vod_search_deluxe_asset_id_in_alphonso? (deluxe_asset_id_list,output_file_name=nil)
458
- require 'json'
459
- require 'net/http'
460
- require 'net/https'
461
- require 'set'
462
- require 'uri'
463
- err_msg_asset_not_found='Can not fetch Assets for AssetId Query Params'
464
- cableID_list = Set.new
465
- missing_cableID_list=Set.new
466
- cable_asset_id_set = Set.new
467
- missing_asset_counter = 0
468
- alphonso_twb_url = "https://twb.dev-charter.net/alphonso/vod/adis/search"
469
- head_end = "st_louis"
470
- alphonso_output_file="#{output_file_name}"
471
- loginfo 'Searching assets in Alphonso'
472
- deluxe_asset_id_list.each do |cable_id|
473
- begin
474
- cableID=cpid=pct=licenseStart=licenseEnd=nil
475
- id_list=(cable_id.to_s).split(",")
476
- cableID = id_list[0]
477
- cpid = id_list[1]
478
- pct = id_list[2]
479
- license_start = id_list[3]
480
- license_end = id_list[4]
481
- order_status=id_list[5]
482
- display_name=id_list[6]
483
- series_name=id_list[7]
484
- licenseStart=license_start
485
- (licenseStart.to_s)["T"]="-"
486
- m=licenseStart.index(".")
487
- licenseStart=licenseStart[0..m.to_i]
488
- licenseEnd=license_end
489
- (licenseEnd.to_s)["T"]="-"
490
- m=licenseEnd.index(".")
491
- licenseEnd=licenseEnd[0..m.to_i]
492
- cableID_list.add(cableID)
493
- rescue =>exception
494
- loginfo "********INSIDE ID_LIST PARSING RESCUE BLOCK*********"
495
- loginfo 'Following Exception Thrown'+exception.message
496
- if exception.message.include? "string not matched"
497
- loginfo 'Following Record Missing End Date'+cable_id.to_s
498
- loginfo 'Adding the record to the cabled id list'
499
- cableID_list.add(cableID)
500
- end
501
- loginfo 'Following is the exception Backtrace'
502
- loginfo exception.backtrace
503
- loginfo "********END OF ID_LIST PARSING RESCUE BLOCK*********"
504
- end
505
- begin
506
- alphonso_uri=URI.parse("#{alphonso_twb_url}")
507
- alphonso_uri.query=[alphonso_uri.query, "titleAssetId=#{cableID}", "headend=#{head_end}"].compact.join('&')
508
- alphonso_request=Net::HTTP::Get.new(alphonso_uri.request_uri)
509
- http = Net::HTTP.new(alphonso_uri.host, alphonso_uri.port)
510
- http.use_ssl = (alphonso_uri.scheme == "https")
511
- alphonso_response=http.request(alphonso_request)
512
- alphonso_res_txt=alphonso_response.body
513
- json_data=JSON.parse(alphonso_res_txt)
514
- if (json_data['message']!=nil)
515
- loginfo 'Following Asset not found in Alphonso :: '+json_data.to_s
516
- missing_asset_counter=missing_asset_counter+1
517
- missing_cableID_list.add(cableID)
518
- nline=cableID+","+"null"+","+licenseStart.to_s+","+licenseEnd.to_s+","+cpid.to_s+","+"No" + ',' + pct.to_s+ ',' + order_status + ','+ display_name + ',' + series_name
519
- cable_asset_id_set.add(nline)
520
- else
521
- loginfo 'Asset Found in Alphonso'
522
- loginfo 'Response From Alphonso when Asset Found'
523
- loginfo json_data.to_s
524
- var=json_data['content']
525
- listnew=var[0]
526
- aId=listnew['assetId']
527
- providerID=cpid
528
- pct=pct
529
- nline=cableID+","+aId+","+licenseStart+","+licenseEnd+","+providerID+","+"Yes" + ',' + pct+ ',' + order_status + ','+ display_name + ',' + series_name
530
- cable_asset_id_set.add(nline)
531
- end
532
- rescue => exception
533
- loginfo "********INSIDE RESCUE BLOCK*********"
534
- loginfo 'Following Exception Thrown'+exception.message
535
- loginfo 'Following is the exception Backtrace'
536
- loginfo exception.backtrace
537
- loginfo "********END OF RESCUE BLOCK*********"
538
- end
539
- end
540
- loginfo 'Total Number of Assets in Deluxe ='+(deluxe_asset_id_list.length).to_s
541
- loginfo 'Total Number of Assets Found in Alphonso ='+(cable_asset_id_set.length).to_s
542
- loginfo 'Total Number of Assets Not Found in Alphonso='+(missing_cableID_list.length).to_s
543
- loginfo 'Missing Assets Counter='+(missing_asset_counter).to_s
544
- missing_cableID_list.each do |missing_cable_id|
545
- loginfo missing_cable_id.to_s
546
- end
547
- loginfo 'Details of Assets Found in Alphonso'
548
- create_file=true
549
- cable_asset_id_set.each do |each_cable_asset_detail|
550
- if (create_file)
551
- create_file =false
552
- write_to_file "#{alphonso_output_file}", "#{each_cable_asset_detail}"+'##'
553
- else
554
- append_to_file "#{alphonso_output_file}", "#{each_cable_asset_detail}"+'##'
555
- end
556
- end
557
- loginfo 'Output of the details pushed to Alphonso Output file'
558
- loginfo read_from_file "#{alphonso_output_file}"
559
- $summary_line = $summary_line + ',' + ((cableID_list).length - missing_asset_counter).to_s
560
- loginfo "Alphonso Summary Line :: "+$summary_line
561
- end
562
-
563
- # Public: Verify the list of c3 assets from Deluxe server in digital smith
564
- #
565
- #Author : Raghavendra
566
- #
567
- # output_file_name - Name of the file where the output needs to be saved (default: nil).
568
- # alphonso_file_name - Name of the output file where alphonso server d (default: nil).........ata is saved
569
- #
570
- # Returns None
571
- def vod_search_deluxe_asset_id_in_digitalsmith?(output_file_name=nil,alphonso_file_name=nil)
572
- require 'date'
573
- require 'json'
574
- require 'net/http'
575
- require 'net/https'
576
- require 'set'
577
- require 'uri'
578
- asset_name = ""
579
- title = ""
580
- season_number = ""
581
- episode_number = ""
582
- package_id = ""
583
- missing_asset_counter = 0
584
- ds_missing_counter = 0
585
- rootId="NULL"
586
- ds_missing_assets = Array.new
587
- c3_input_list = Array.new
588
- c3_input_file="#{output_file_name}"
589
- alphonso_assets_lines=(read_from_file "#{alphonso_file_name}").split("##")
590
- loginfo 'Number of lines in Alphonso Output File = '+(alphonso_assets_lines.length).to_s
591
- alphonso_assets_lines.pop
592
- alphonso_assets_lines.each do |each_line|
593
- loginfo 'Current Line :: '+each_line.to_s
594
- time=DateTime.now
595
- timestamp=DateTime.now
596
- timestamp=(timestamp).to_s
597
- linelist=each_line.split(",")
598
- package_id=(linelist[1]).to_s
599
- cID=(linelist[0]).to_s
600
- alphonso_Flag=linelist[5]
601
- deluxe_flag ="Yes"
602
- pct = linelist[6]
603
- order_status=linelist[7]
604
- display_name=linelist[8]
605
- series_name=linelist[9]
606
- if(pct==nil)
607
- pct='Null'
608
- end
609
- cpid = linelist[4]
610
- begin
611
- ds_new_url='http://charter-prod-elb.digitalsmiths.net/sd/charter/cores/assets-charter/search?q=*:*&schedule.q=type:VOD%20headendId:(st_louis)%20packageprovider:(*)%20packageassetid:('+"#{package_id}"+')%20&fl=*,relevantschedules.*&limit=1000&disableRemoveNonEnglish=true&includeAdult=true&join=%7B!left%20core=schedules-charter%20as=s1%20left=id%20right=itemIds%7D'
612
- loginfo 'DS URL = '+ds_new_url
613
- ds_uri=URI.parse(ds_new_url)
614
- ds_request=Net::HTTP::Get.new(ds_uri.request_uri)
615
- http = Net::HTTP.new(ds_uri.host, ds_uri.port)
616
- http.use_ssl = (ds_uri.scheme == "https")
617
- response=http.request(ds_request)
618
- json_data=JSON.parse(response.body)
619
- loginfo 'Response from Digital Smith Server'
620
- loginfo json_data
621
- begin
622
- found_prog_type = false
623
- loginfo 'DATA_HITS LENGTH'+(json_data["hits"].length).to_s
624
- if json_data["hits"].length == 0
625
- if package_id.length > 0
626
- ds_missing_assets << package_id
627
- end
628
- line = cID+","+"NO_INFO" + ', ' + 'NO_INFO' + ', ' + 'NO_INFO' + ', ' + 'NO_INFO'+","+(package_id).to_s+","+linelist[2]+","+linelist[3] + "," + cpid + ','+ 'NA' +',' +alphonso_Flag + "," + 'No'+"," + timestamp + ',' + pct + ',' + order_status + ',' + display_name +','+ series_name +','+ rootId
629
- c3_input_list << line
630
- ds_missing_counter += 1
631
- rootId="NULL"
632
- else
633
- data_hits=json_data["hits"]
634
- loginfo 'DATA HITS'
635
- loginfo data_hits
636
- if data_hits.size == 2
637
- content=data_hits[1]
638
- elsif data_hits.size == 1
639
- content=data_hits[0]
640
- end
641
- metadata=content["metadata"]
642
- asset_name=metadata["title"]
643
- forb_chars = ['<', '>', ':', '"', '/', '\\', '|', '?', '*', ',','&','-','_',".","!","'"]
644
- forb_chars.each do |char|
645
- asset_name=asset_name.delete("#{char}")
646
- end
647
- if(metadata["rootId"]!=nil)
648
- rootId=metadata["rootId"].to_s
649
- else
650
- rootId="NULL"
651
- end
652
- if(metadata["progType"]!= nil and metadata["progType"].to_s=='Series' and metadata["episodeInfo"] != nil)
653
- if(metadata["episodeInfo"]["title"]!=nil)
654
- title = metadata["episodeInfo"]["title"]
655
- forb_chars.each do |char|
656
- title=title.delete("#{char}")
657
- end
658
- else
659
- title="NULL"
660
- end
661
- if(metadata["episodeInfo"]["season"]!=nil)
662
- season_number = metadata["episodeInfo"]["season"]
663
- episode_number = metadata["episodeInfo"]["number"]
664
- else
665
- season_number = 'Null'
666
- episode_number = 'Null'
667
- end
668
- found_prog_type = true
669
- end
670
- if(metadata["progType"]!=nil)
671
- if(metadata["progType"].to_s=="Special")
672
- title=metadata["progType"].to_s
673
- forb_chars.each do |char|
674
- title=title.delete("#{char}")
675
- end
676
- episode_number = "Null"
677
- season_number = "Null"
678
- end
679
- if(metadata["progType"].to_s=="Feature Film")
680
- title = "Null"
681
- episode_number = "Null"
682
- season_number = "Null"
683
- end
684
- found_prog_type = true
685
- end
686
- if found_prog_type==true and asset_name !=nil
687
- line = cID+ ',' +asset_name + ', ' + 'Season ' + (season_number).to_s + ','+ 'Episode ' + (episode_number).to_s + ', ' + (title).to_s + ',' + (package_id).to_s + ','+ linelist[2]+ ',' + linelist[3] + ',' + cpid + ',' + metadata["progType"] + ',' + alphonso_Flag + ',' + 'Yes' + ',' + timestamp + ',' + pct + ',' + order_status + ',' + display_name +','+ series_name +','+ rootId
688
- c3_input_list <<(line)
689
- rootId="NULL"
690
- else
691
- line = cID+','+asset_name + ', ' + 'NO_INFO' + ', ' + 'NO_INFO' + ', ' + 'NO_INFO'+','+(package_id).to_s+','+linelist[2]+','+linelist[3] + ','+ cpid + ',' + 'NA' + ',' + alphonso_Flag + ',' + deluxe_flag + ',' + timestamp + ',' + pct + ',' + order_status + ',' + display_name +','+ series_name +','+ rootId
692
- c3_input_list <<(line)
693
- rootId="NULL"
694
- end
695
- end #End Else Part
696
- rescue => exception
697
- loginfo 'Start Rescue :: Exception Occured in Metadata Parsing'
698
- loginfo exception.message
699
- loginfo exception.backtrace
700
- line = cID+','+asset_name + ', ' + 'NO_INFO' + ', ' + 'NO_INFO' + ', ' + 'NO_INFO'+','+(package_id).to_s+','+linelist[2]+','+linelist[3]+',' + cpid + ',' + 'NA'+','+alphonso_Flag+','+'Yes'+','+timestamp + ',' + pct + ',' + order_status + ',' + display_name +','+ series_name +','+ rootId
701
- loginfo "Package ID :: "+package_id
702
- c3_input_list <<(line)
703
- rootId="NULL"
704
- loginfo 'End Rescue :: Exception Occured in Metadata Parsing'
705
- end
706
- rescue => exception
707
- loginfo 'Start Rescue :: Exception Occurred while requesting ds server for asset details'
708
- loginfo 'DS URL = '+ds_new_url
709
- loginfo 'PACKAGE ID = '+package_id
710
- loginfo exception.message
711
- loginfo exception.backtrace
712
- loginfo 'End Rescue :: Exception Occurred while requesting ds server for asset details'
713
- end #End of Rescue block
714
- end #END of for each loop alphonso_assets_lines
715
- create_file=true
716
- c3_input_list.each do |each_line|
717
- if(create_file)
718
- create_file=false
719
- write_to_file "#{c3_input_file}", "#{each_line}"+"##"
720
- else
721
- append_to_file "#{c3_input_file}", "#{each_line}"+"##"
722
- end
723
- end
724
- loginfo "MISSING ASSET FROM DS COUNTER :: "+((ds_missing_counter).to_s)
725
- loginfo "C3 LENGTH :: " + ((c3_input_list).size).to_s
726
- loginfo "DS MISSING ASSETS ARE"
727
- loginfo ds_missing_assets
728
- $summary_line = $summary_line + ',' + ((c3_input_list).size - ds_missing_counter.to_i).to_s
729
- loginfo 'Summary Line :: ' + $summary_line
730
- end
731
-
732
- # Public: Get start date and end dates for fetching the assets from Deluxe server
733
- #
734
- #Author : Raghavendra
735
- #
736
- # Returns licensing_window_start_date_lteq licensing_window_start_date_gteq licensing_window_end_date
737
- def vod_get_start_end_date?
738
- ###############
739
- #Pre_requisite# Import required libraries for parsing json response and sending http/https requests
740
- ###############
741
- require 'date'
742
- begin
743
- ########
744
- #Step-1# Get current date time
745
- ########
746
- now=DateTime.now
747
- ########
748
- #Step-2# Using the current date compute by adding 3 days to it
749
- ########
750
- end_date=now+3
751
- ########
752
- #Step-3# Cast the date object to string and store it in start_date
753
- ########
754
- start_date = now.to_s
755
- ########
756
- #Step-4# Compute the licensing window start date by adding one day to current date
757
- ########
758
- licensing_window_start_date_lteq=now+1
759
- ########
760
- #Step-5# cast the end date to string type and store it in the same variable
761
- ########
762
- end_date = (end_date).to_s
763
- ########
764
- #Step-6# Cast the licensing window start date lteq to string and save it in same variable
765
- ########
766
- licensing_window_start_date_lteq=(licensing_window_start_date_lteq).to_s
767
- ########
768
- #Step-7# To have the time start from 00:00 convert the value to string and append it by the desired time value
769
- ########
770
- licensing_window_start_date_gteq = (start_date.split("T"))[0] + 'T' + '00:00.000Z'
771
- licensing_window_start_date_lteq = (licensing_window_start_date_lteq.split("T"))[0] + 'T' + '00:00.000Z'
772
- licensing_window_end_date =end_date.split("T")[0] +'T' + '00:00.000Z'
773
- loginfo 'licensing_window_start_date_gteq='+licensing_window_start_date_gteq
774
- loginfo 'licensing_window_start_date_lteq='+licensing_window_start_date_lteq
775
- loginfo 'licensing_window_end_date='+licensing_window_end_date
776
- return licensing_window_start_date_gteq,licensing_window_start_date_lteq,licensing_window_end_date
777
- rescue => exception
778
- loginfo "********INSIDE RESCUE BLOCK*********"
779
- loginfo exception.message
780
- loginfo exception.backtrace
781
- loginfo "********END OF RESCUE BLOCK*********"
782
- return false
783
- end
784
- end
785
-
786
- # Public: Return an access token for deluxe server accessing
787
- #
788
- # Author : Raghavendra
789
- #
790
- # Returns deluxe server access token
791
- def vod_get_deluxe_access_token?
792
- ###############
793
- #Pre_requisite# Import required libraries for parsing json response and sending http/https requests
794
- ###############
795
- require 'json'
796
- require 'net/http'
797
- require 'net/https'
798
- ###############
799
- #Pre_requisite# Store the request url and data parameters required to process the request
800
- ###############
801
- request_url='https://hal.d3nw.com/oauth/token'
802
- access_token_pay_load='client_id=3b49048555817a021af1726310c383cadee4717967378e81351dddc0dee425c1&client_secret=69956582eb4211d48d000802df7c24d3cacbf67b4e307e3c88de9004edbb9152&grant_type=client_credentials'
803
- begin
804
- ########
805
- #Step-1# Parse the input request url and create a URI object
806
- ########
807
- access_token_uri=URI.parse("#{request_url}")
808
- ########
809
- #Step-2# Create a request object with uri and content-type as the parameters
810
- ########
811
- access_token_request=Net::HTTP::Post.new(access_token_uri.request_uri,'Content-Type' => 'application/x-www-form-urlencoded')
812
- ########
813
- #Step-3# Create an http object and set the port and host with respect to the URI object
814
- ########
815
- http = Net::HTTP.new(access_token_uri.host, access_token_uri.port)
816
- ########
817
- #Step-4# Enable use_ssl property for the http object if the uri scheme is a https
818
- ########
819
- http.use_ssl = (access_token_uri.scheme == "https")
820
- ########
821
- #Step-5# Set the request body and send the pay load stored before in pre-requisite step
822
- ########
823
- access_token_request.body="#{access_token_pay_load}"
824
- ########
825
- #Step-6# process the the request and store the response in a response object for further reference
826
- ########
827
- access_token_response=http.request(access_token_request)
828
- loginfo "***********************************************"
829
- loginfo access_token_response.code
830
- loginfo access_token_response.body
831
- loginfo "***********************************************"
832
- ########
833
- #Step-7# Check if response status is 200 then retrieve the access token value and return it else return false
834
- ########
835
- if access_token_response.code=='200'
836
- json_response=JSON.parse(access_token_response.body)
837
- loginfo 'Access Token = '+json_response['access_token']
838
- return json_response['access_token']
839
- else
840
- return false
841
- end
842
- rescue => exception
843
- loginfo "vod_get_deluxe_access_token :: Threw An exception"
844
- loginfo exception.message
845
- loginfo exception.backtrace
846
- return false
847
- end #End of rescue block
848
- end
849
-
850
- # Public: To navigate to particular season
851
- #
852
- # Author : Raghavendra
853
- #
854
- # season - Season number (default: nil).... to search for
855
- #
856
- # Returns true on success
857
- def vod_goto_particular_season?(season=nil)
858
- current_season="current"
859
- previous_season="prev"
860
- season=season.delete("^0-9")
861
- season="Season "+season.to_s
862
- begin
863
- while(current_season)!=season
864
- collapsed_episode_text=dut.roi.text.episodes_collapsed_select_text.retrieve
865
- if(collapsed_episode_text).include? "ress SELECT"
866
- season_text_roi=dut.roi.text.new(:x => 556, :y => 373, :width => 163, :height => 59, :similarity => 80, :text => "", :preprocessing => 6, :only_digits => false, :ref_img => "")
867
- else
868
- season_text_roi=dut.roi.text.new(:x => 553, :y => 318, :width => 1093, :height => 42, :similarity => 80, :text => "", :preprocessing => 0, :only_digits => false, :ref_img => "")
869
- end
870
- current_season=season_text_roi.retrieve
871
- if(current_season==previous_season)
872
- if(collapsed_episode_text).include? "ress SELECT"
873
- raise "vod_goto_particular_season :: Reached End Of Season List ; Season not Found"
874
- elsif(collapsed_episode_text).include? "Other Ep"
875
- raise "vod_goto_particular_season :: Reached End Of Season List ; Season not Found"
876
- end
877
- end
878
- loginfo "vod_goto_particular_season :: Comparing Season #{current_season} == #{season}"
879
- if(current_season==season)
880
- loginfo "vod_goto_particular_season :: Season Found"
881
- if(collapsed_episode_text).include? "ress SELECT"
882
- dut.press_key('select', :sleep_time=>3.sec)
883
- end
884
- return true
885
- else
886
- previous_season=current_season
887
- dut.press_key('down_arrow', :sleep_time=>5.sec)
888
- end
889
- end
890
- raise "vod_goto_particular_season :: Episode not Found"
891
- rescue => exception
892
- loginfo "vod_goto_particular_season :: Threw an exception"
893
- loginfo exception.message
894
- loginfo exception.backtrace
895
- return false
896
- end
897
- end
898
-
899
- # Public: Update c3 backend validation report data to TWB
900
- #
901
- #Author : Raghavendra
902
- #
903
- # ds_output_file_name - File name where DS upd (default: "None")......ated status is stored
904
- # report_name - Name of the report that needs to be created on TWB (default: "None").
905
- #
906
- # Returns false if TWB update fails or any exception is thrown else returns true
907
- def vod_c3_backend_update_twb?(ds_output_file_name="None",report_name="None")
908
- begin
909
- fileName="#{report_name}"
910
- data=Hash.new
911
- ds_lines=(read_from_file "#{ds_output_file_name}").split("##")
912
- ds_lines.pop
913
- ds_lines.each do |each_line|
914
- f=each_line.split(",")
915
- caid=f[0]
916
- title = f[1]
917
- season=f[2]
918
- episode=f[3]
919
- episode_name = f[4]
920
- paid=f[5]
921
- licenseStart=f[6]
922
- licenseEnd=f[7]
923
- pid=f[8]
924
- category = f[9]
925
- alphonso=f[10]
926
- ds_status=f[11]
927
- timestmp=f[12]
928
- pct = f[13]
929
- root_id=f[14]
930
- quantity = "NA"
931
- price = "0"
932
- view_option = "NA"
933
- screenshot_string = "{\"images\":[]}"
934
- data={"report_name"=> fileName,
935
- "category"=> category,
936
- "title"=> title,
937
- "season_number"=> season,
938
- "episode_number"=> episode,
939
- "episode_name"=> episode_name,
940
- "quantity"=> 1,
941
- "price"=> price.to_f,
942
- "view_option"=> view_option,
943
- "deluxe_status" =>ds_status,
944
- "alphonso_status"=> alphonso,
945
- "status"=> "-",
946
- "assetQuality"=>"HD",
947
- "duplicate"=>"",
948
- "pid"=>pid,
949
- "paid"=>paid,
950
- "license_start_date"=>licenseStart,
951
- "license_end_date"=>licenseEnd,
952
- "display_timestamp"=>timestmp,
953
- "caid" => caid,
954
- "provider_content_tier" => pct,
955
- "progress" => $progressStatus,
956
- "screenshots" => screenshot_string,
957
- "root_id"=>root_id
958
- }
959
- raise("vod_c3_backend_update_twb :: TWB Update failed") unless dut.screens.on_demand.vod_upload_to_twb?(data = data)
960
- data.clear
961
- end
962
- return true
963
- rescue => exception
964
- loginfo "vod_c3_backend_update_twb :: Failed Threw and exception"
965
- loginfo exception.message
966
- loginfo exception.backtrace
967
- return false
968
- end
969
- end
970
- # Public: Navigates to On Demand from Live TV.
971
- #
972
- # Returns nothing.
973
- def navigate_from_live_tv
974
- dut.screens.main_menu.navigate_from_live_tv
975
- dut.screens.main_menu.navigate_to_on_demand?
976
- end
977
-
978
- # Public: Check if the On Demand Page is displayed.
979
- #
980
- # timeout - Integer total milliseconds to check before timing out (default: 10.sec).
981
- #
982
- # Returns Boolean true/false if On Demand Page is/is not displayed
983
- def displayed?(args={})
984
- timeout = args.fetch(:timeout, 10.sec)
985
- dut.roi.text.ondemand.displayed?(:timeout => timeout, :priority => :high)
986
- end
987
-
988
- # Public: get current menu item name of the on demand screen
989
- #
990
- # Return the name of the current menu item name, or empty string if we failed to get the name
991
- def get_menu_item_name
992
- raw_menu_item_name = dut.roi.text.ondemand_menu_item_name.retrieve
993
- if raw_menu_item_name =~ /<\s*(.*[\S])\s*>/
994
- $1
995
- else
996
- ""
997
- end
998
- end
999
-
1000
- # Public: get current tab name of the On Demand screen
1001
- #
1002
- # Return the name of the current tab name, or empty string if we failed to get the name
1003
- def get_tab_name
1004
- raw_tab_name = dut.roi.text.ondemand_tab_name.retrieve
1005
- if raw_tab_name =~ /<\s*(.*[\S])\s*>/
1006
- $1
1007
- else
1008
- ""
1009
- end
1010
- end
1011
-
1012
- # Public: navigate to the menu item with the name user provided
1013
- #
1014
- # menu_item_name: name of menu item user wants to navigate to (case insensitive)
1015
- # :max_move: max number of times we should press the up arrow key before giving up (default is 15)
1016
- #
1017
- # Example
1018
- #
1019
- # navigate_to_menu_item?("ALL MOVIES")
1020
- #
1021
- # navigate_to_menu_item?("NEW RELEASE", :max_move => 15)
1022
- #
1023
- # Return true we sucessfully navigated to the desired menu item, false otherwise
1024
- def navigate_to_menu_item?(menu_item_name, args={})
1025
- menu_item_name_upcased = menu_item_name.upcase
1026
- max_move = args.fetch(:max_move, 15)
1027
-
1028
- curr_menu_item_name = get_menu_item_name.upcase
1029
- i = 0
1030
- while (curr_menu_item_name != menu_item_name_upcased) && (i < max_move)
1031
- dut.press_key.ARROW_UP(:sleep_time => 3.sec)
1032
- curr_menu_item_name = get_menu_item_name.upcase
1033
- i += 1
1034
- end
1035
- curr_menu_item_name == menu_item_name_upcased
1036
- end
1037
-
1038
- # Public: navigate to the tab with the name user provided
1039
- #
1040
- # tab_name: name of settings tab user wants to navigate to (case insensitive)
1041
- # :max_move: max number of times we should press the right arrow key before giving up (default is 15)
1042
- #
1043
- # Example
1044
- #
1045
- # navigate_to_tab?("DISPLAY")
1046
- #
1047
- # navigate_to_tab?("FAVORITE CHANNELS", :max_move => 15)
1048
- #
1049
- # Return true we sucessfully navigated to the desired tab, false otherwise
1050
- def navigate_to_tab?(tab_name, args={})
1051
- tab_name_upcased = tab_name.upcase
1052
- max_move = args.fetch(:max_move, 15)
1053
-
1054
- curr_tab_name = get_tab_name.upcase
1055
- i = 0
1056
- while (curr_tab_name != tab_name_upcased) && (i < max_move)
1057
- dut.press_key.ARROW_RIGHT(:sleep_time => 3.sec)
1058
- curr_tab_name = get_tab_name.upcase
1059
- i += 1
1060
- end
1061
- curr_tab_name == tab_name_upcased
1062
- end
1063
-
1064
- # Public: navigate to the sub-category with the name provided by the user
1065
- #
1066
- # category_name - name of the category we need to navigate to
1067
- #
1068
- # return true if successful, false otherwise
1069
- def navigate_to_sub_category?(category_name)
1070
- logger.info("navigating to sub-category #{category_name}")
1071
-
1072
- arr_categories = []
1073
- prev_cat = ""
1074
- cat1 = dut.roi.text.vod_portal_front_page_sub_category_row1.retrieve
1075
- while (prev_cat != cat1)
1076
- arr_categories.push(cat1)
1077
- prev_cat = cat1
1078
- dut.press_key.ARROW_DOWN( :sleep_time => 1.sec )
1079
- cat1 = dut.roi.text.vod_portal_front_page_sub_category_row1.retrieve
1080
- if (arr_categories.length == 1 and cat1 == prev_cat)
1081
- dut.press_key.ARROW_DOWN( :sleep_time => 600 )
1082
- cat1 = dut.roi.text.vod_portal_front_page_sub_category_row1.retrieve
1083
- end
1084
- end
1085
- last_cat = dut.roi.text.vod_portal_front_page_sub_category_row2.retrieve
1086
- if (last_cat != cat1)
1087
- arr_categories.push(last_cat)
1088
- end
1089
-
1090
- i = 0
1091
- arr_categories.each do |c|
1092
- logger.info("#{i} -- #{c}")
1093
- i += 1
1094
- end
1095
-
1096
- i = 0
1097
- i_target = -1
1098
- arr_categories.each do |c|
1099
- if (get_string_similarity(c, category_name) >= 0.80)
1100
- i_target = i
1101
- break
1102
- end
1103
- i += 1
1104
- end
1105
-
1106
- if (i_target >= 0)
1107
- num_arraow_up = arr_categories.length - i_target - 1
1108
- logger.info("going back up #{num_arraow_up} times")
1109
- num_arraow_up.times{ dut.press_key.ARROW_UP(:sleep_time => 500) }
1110
- final_cat = dut.roi.text.vod_portal_front_page_sub_category_row1.retrieve
1111
- logger.info("Category cursor stopped at '#{final_cat}'")
1112
- true
1113
- else
1114
- logger.info("Failed to locate the expected category '#{category_name}'")
1115
- false
1116
- end
1117
-
1118
- end
1119
-
1120
- # Public: keep moving left until the left menu is displayed
1121
- #
1122
- # Returns true if the left menu is displayed, otherwise false
1123
- def open_left_menu?()
1124
- 8.times do
1125
- return true if dut.screens.on_demand_left_menu.displayed?
1126
- dut.press_key.ARROW_LEFT
1127
- end
1128
- false
1129
- end
1130
-
1131
- # Public: Use it to play or resume an asset
1132
- #
1133
- # * *Args* :
1134
- # - +options+ -> Array of acceptable options e.g. 'Buy', Resume or 'Play'
1135
- # - +pin_check+ -> check for pin screen true/false
1136
- #
1137
- # Returns true if successful else false
1138
- def vp_screen_play_or_resume_asset2? options=['Watch', 'Rent', 'Rent SD', 'Rent HD', 'Resume', 'Play'], pin_check=false, options_check=false, whole_house_check=false,viewing_option='Play HD'
1139
- logger.info("Play or resume asset", :screenshot => true)
1140
- dut.key_press.SELECT(:sleep_time => 3.sec) unless vod_portal_product_first_menu_item_highlighted?
1141
- dut.key_press.SELECT(:sleep_time => 3.sec) if vod_portal_product_first_menu_item_highlighted?
1142
- dut.key_press.SELECT(:sleep_time => 3.sec) if dut.roi.text.vod_resume.displayed?
1143
- true
1144
- end
1145
-
1146
- # Public: Use it to verify if the first product page menu item is highlighted
1147
- #
1148
- # * *Args* :
1149
- # - +d_color+ -> e.g. 'New'
1150
- #
1151
- # Returns true if the first menu item is highlighted else false
1152
- def vod_portal_product_first_menu_item_highlighted? d_color='New'
1153
- found=false
1154
- if d_color=='New' or d_color=='Either'
1155
- color_rgb='0:97:148'
1156
- found = dut.roi.color.vod_portal_product_menu_item_highlight_new.displayed?
1157
- end
1158
- if ((found==false) and (d_color=='Classic' or d_color=='Either'))
1159
- color_rgb='197:160:56'
1160
- found = dut.roi.color.vod_portal_product_menu_item_highlight_classic.displayed?
1161
- end
1162
- if found
1163
- logger.info("VOD product page menu item IS highlighted style=#{d_color}, Color=#{color_rgb}, Region=#{search_region},", :screenshot => true)
1164
- else
1165
- logger.info("VOD product page menu item is NOT highlighted style=#{d_color}, Color=#{color_rgb}, Region=#{search_region},", :screenshot => true)
1166
- end
1167
- found
1168
- end
1169
-
1170
- end