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,2137 +0,0 @@
1
- require './lib/screen/stb/spectrum/spectrum_screen'
2
- # DO NOT ADD DSL REQUIRES HERE. Load them in methods that need them, otherwise syntax completion will be slow.
3
-
4
- # Defines Spectrum-specific methods on the OnDemand screen.
5
-
6
- class SpectrumOnDemand < SpectrumScreen
7
-
8
- # Public: Navigates to VOD from Live TV.
9
- #
10
- # Returns nothing.
11
- def navigate_from_live_tv
12
- dut.press_key.ON_DEMAND
13
- end
14
-
15
- # Public: Checks that On Demand screen is displayed successfully
16
- #
17
- # timeout - Integer total milliseconds to wait for the screen to display after navigation (default: 10.sec).
18
- #
19
- # Returns true if screen is displayed successfully, otherwise false
20
- def displayed?(args={})
21
- dut.roi.text.on_demand_headline.displayed?(args)
22
- end
23
-
24
- # Public: Get the total count of the category or the assets , compute number of rows
25
- #
26
- # Returns number of rows
27
- def vod_get_number_of_rows?
28
- categoryCountPerRow=7.0
29
- begin
30
- ########
31
- #Step-1# To retrieve the category name and count text displayed on the screen
32
- ########
33
- categoryCountText=dut.roi.text.assetCount_inEachCategory.retrieve
34
- ########
35
- #Step-2# Extracting only numerical value from the string
36
- ########
37
- totalCategoryCount=(categoryCountText.split("("))[1].delete("^0-9")
38
- ########
39
- #Step-3# Computing the number of rows that contain 7 assets/categories
40
- ########
41
- numberOfFullRows=(totalCategoryCount.to_i) / categoryCountPerRow
42
- numberOfFullRows=(numberOfFullRows.to_i)
43
- ########
44
- #Step-4# To get the count of assets/categories present in the last row
45
- ########
46
- numberOfCategoriesInLastRow=(totalCategoryCount.to_i) % (categoryCountPerRow.to_i)
47
- loginfo 'Number of rows having 7 assets/categories= '+"#{numberOfFullRows}"
48
- loginfo 'Number of assets or categores present in last row= '+"#{numberOfCategoriesInLastRow}"
49
- loginfo 'Total number of assets or categories='+"#{totalCategoryCount}"
50
- loginfo 'Category name and count '+"#{categoryCountText}"
51
- ########
52
- #Step-5# Increase the count of number of rows by one if last row count is more that 0
53
- ########
54
- if (numberOfCategoriesInLastRow.to_i) > 0
55
- numberOfFullRows=numberOfFullRows + 1
56
- end
57
- loginfo 'Total number of Rows='+"#{numberOfFullRows}"
58
- ########
59
- #Step-6# Return the number of rows
60
- ########
61
- if(numberOfFullRows==1)
62
- numberOfCategoriesInLastRow=totalCategoryCount
63
- end
64
- return numberOfFullRows,numberOfCategoriesInLastRow
65
- rescue => exception
66
- loginfo "********INSIDE RESCUE BLOCK*********"
67
- loginfo exception.message
68
- loginfo exception.backtrace
69
- loginfo "********END OF RESCUE BLOCK*********"
70
- return 0
71
- end #End of rescue block
72
-
73
-
74
- end
75
-
76
- # Public: Verify if a category has sublist
77
- #
78
- # Author : Raghavendra
79
- #
80
- # Returns true or false
81
- def vod_check_sublist_present?
82
- ##############
83
- #PreRequisite# Navigated inside a category or network
84
- ##############
85
- begin
86
- ########
87
- #Step-1# Verify if the image ROI is displayed
88
- ########
89
- return dut.roi.image.vod_sublist_poster.displayed?(:timeout => 7000) #Return the value of whether its displayed or not
90
- rescue => exception
91
- loginfo "********INSIDE RESCUE BLOCK*********"
92
- loginfo exception.message
93
- loginfo exception.backtrace
94
- loginfo "********END OF RESCUE BLOCK*********"
95
- return false #Return false if an exception is thrown
96
- end
97
- end
98
-
99
- # Public: To go back to previous screen and move to next tile
100
- #
101
- #Author : Raghavendra
102
- #
103
- #Purpose : Used in navigation through various networks ,categories,sublists and assets in a VOD environment
104
- #
105
- # Returns true or false
106
- def vod_go_back_move_next_tile?
107
- ##############
108
- #PreRequisite# Navigated inside a category or network or assets list or sublists
109
- ##############
110
- begin
111
- ########
112
- #Step-1# Press last key and move to right to next tile
113
- ########
114
- dut.press_key('last', :sleep_time=>3.sec)
115
- if dut.roi.image.assetsScreen_SortBy_Label.displayed?(:timeout => 3000)
116
- loginfo "vod_go_back_move_next_tile :: Last key press successful"
117
- else
118
- loginfo "vod_go_back_move_next_tile :: Last key press failed returning false without moving to next tile"
119
- end
120
- dut.press_key('right_arrow', :sleep_time=>3.sec)
121
- return true
122
- rescue => exception
123
- loginfo "********INSIDE RESCUE BLOCK*********"
124
- loginfo exception.message
125
- loginfo exception.backtrace
126
- loginfo "********END OF RESCUE BLOCK*********"
127
- return false #Return false if an exception is thrown
128
- end
129
- end
130
-
131
- # Public: To move to next row first tile
132
- #
133
- #Author : Raghavendra
134
- #
135
- #Purpose : Used in navigation through various networks ,categories,sublists and assets in a VOD environment
136
- #
137
- # Returns true or false
138
- def vod_go_to_next_row_first_tile?
139
- ##############
140
- #PreRequisite# Navigated inside a category or network or assets list or sublists
141
- ##############
142
- begin
143
- ########
144
- #Step-1# Press left till left menu is displayed
145
- ########
146
- dut.roi.image.spectrumLogo_leftmenu.press_key_until_displayed?(key='left_arrow', :timeout => 30000, :try_every => 3000)
147
- ########
148
- #Step-2# Move right to come back to first tile of the current row
149
- ########
150
- dut.press_key('right_arrow', :sleep_time=>3.sec)
151
- ########
152
- #Step-3# Move down to get to first tile of the next row
153
- ########
154
- dut.press_key('down_arrow', :sleep_time=>3.sec)
155
- return true
156
- rescue => exception
157
- loginfo "********INSIDE RESCUE BLOCK*********"
158
- loginfo exception.message
159
- loginfo exception.backtrace
160
- loginfo "********END OF RESCUE BLOCK*********"
161
- return false #Return false if an exception is thrown
162
- end
163
- end
164
-
165
- # Public: Fetch Asset Details and post the details to TWB
166
- #
167
- # category_name - category of the asset.
168
- # report_name - report name to which the data needs to be put
169
- # asset_name - name of the asset fetched from asset listing screen
170
- #
171
- #Author : Raghavendra
172
- # cat_name - category for subkist
173
- #
174
- # Returns true if posting data is successfull else returns false
175
- def vod_fetch_asset_details_and_post_to_twb?(category_name,report_name,asset_name,cat_name)
176
- begin
177
- ###############
178
- #Pre-requisite# Verify the screen the control is present on
179
- ###############
180
- dut.screens.movies.displayed?(:timeout => 3000)
181
- ########
182
- #Step-1# Assign all default values to the attributes to be posted to TWB vod report
183
- ########
184
- if cat_name=='None'
185
- category="#{category_name}"
186
- else
187
- category="#{cat_name}"+"_"+"#{category_name}"
188
- end
189
-
190
- #category="#{category_name}"
191
- title="#{asset_name}"
192
- quantity='1'
193
- price='0.00'
194
- view_option='NA'
195
- playback_status='NA'
196
- banner_presence='ABSENT'
197
- season_number='NA'
198
- episode_number='NA'
199
- episode_name='NA'
200
- status='PRESENT'
201
- ########
202
- #Step-2# Fetch the text displayed for the first button to determine the view option provided for the asset
203
- ########
204
- view_option_text=dut.roi.text.asset_view_option_text.retrieve
205
- view_option_text=view_option_text.downcase
206
- ########
207
- #Step-3# Following conditions will determine what kind of view_option is provided for the current asset based on the text retrieved
208
- ########
209
- if view_option_text.include? "watch"
210
- if view_option_text.include? "add"
211
- if view_option_text.index('add') > view_option_text.index('watch')
212
- view_option='WATCH'
213
- else
214
- view_option='ADD TO WATCHLIST'
215
- end
216
- else
217
- view_option='WATCH'
218
- end
219
- elsif view_option_text.include? "browse"
220
- view_option='BROWSE EPISODES'
221
- elsif view_option_text.include? "restart"
222
- view_option='WATCH'
223
- elsif view_option_text.include? "resume"
224
- view_option='WATCH'
225
- elsif view_option_text.include? "rent"
226
- view_option='RENT'
227
- ind=view_option_text.index('$')
228
- if ind=='nil'
229
- price=1.0
230
- else
231
- price=view_option_text[ind..ind+6]
232
- end
233
- #If the view option is rent then the price is also retrieved from the text
234
- price=price.delete("^.0-9")
235
- elsif view_option_text.include? "listing"
236
- view_option='VIEW OTHER LISTINGS'
237
- end
238
- ########
239
- #Step-4# Determine whether poster/banner is displayed for the asset
240
- ########
241
- if dut.roi.image.assetOverview_movieBanner.displayed?(:timeout => 7000)
242
- banner_presence='ABSENT'
243
- else
244
- banner_presence='PRESENT'
245
- end
246
- ########
247
- #Step-5# Determine whether the asset is playable if the option provided is watch
248
- ########
249
- if view_option=='WATCH'
250
- dut.press_key('select', :sleep_time=>3.sec)
251
- dut.screens.on_demand.vod_handle_pin_prompts?(pin=[0,0,0,0])
252
- if dut.roi.text.confirm_rental_page.retrieve.include? "Confirm"
253
- dut.press_key('select', :sleep_time=>3.sec)
254
- end
255
- if dut.roi.video.fullscreen_motion.displayed?(:timeout => 7000)
256
- playback_status='PLAYABLE'
257
- else
258
- playback_status='NOT PLAYABLE'
259
- if dut.roi.image.unable_to_play_dialogue.displayed?(:timeout => 7000)
260
- playback_status='ERROR_UNABLE_TO_PLAY'
261
- dut.press_key('select', :sleep_time=>3.sec)
262
- end
263
- if dut.roi.text.Inco_pin_text.retrieve.include? "Incorrect"
264
- playback_status='NOT PLAYABLE'
265
- dut.press_key('right_arrow', :sleep_time=>3.sec)
266
- dut.press_key('select', :sleep_time=>3.sec)
267
- end
268
- end
269
- dut.press_key('stop', :sleep_time=>3.sec)
270
- end
271
- ########
272
- #Step-6# Form the hash of the all the attributes collected till now
273
- ########
274
- assetDetailHash = {"progress"=>$progressStatus,"report_name"=>"#{report_name}","category" => "#{category}" ,"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}"}
275
- #assetDetail=category + ',' + title + ',' + quantity + ',' + price + ',' + view_option + ',' + playback_status + ',' + banner_presence + ',' + season_number + ',' + episode_number + ',' + episode_name + ',' + status + '
276
- loginfo '****************Fetched Details*******************************'
277
- loginfo assetDetailHash
278
- loginfo '***********************************************'
279
- ########
280
- #Step-7# Post the details to TWB and verify whether it was sucessfull
281
- ########
282
- if dut.screens.movies.post_hash_data_to_TWB?(hashAssetDetails=assetDetailHash)
283
- return true
284
- else
285
- loginfo '**********************Failed to Post the data from function fetch and log v1*************************'
286
- return false
287
- end
288
- rescue => exception
289
- loginfo "********INSIDE RESCUE BLOCK*********"
290
- loginfo exception.message
291
- loginfo exception.backtrace
292
- loginfo "********END OF RESCUE BLOCK*********"
293
- return false
294
- end
295
- end
296
-
297
- # Public: Loop through all the assets in category and verify Playback of the asset
298
- #
299
- # report_name - report_name where the data has to be put
300
- #
301
- # Author : Raghavendra
302
- # cat_name - for extracting category name (default: 'None').
303
- #
304
- # Returns boolean true
305
- def vod_verify_all_movie_assets_in_a_category?(report_name,cat_name='None')
306
- asset_per_row=7.0
307
- current_asset_name='current_asset'
308
- asset_in_current_row=0.0
309
- asset_in_last_row=0.0
310
- if cat_name=='None'
311
- cat_name='None'
312
- end
313
- ########
314
- #Step-1# Get total number of asset rows present
315
- ########
316
- total_number_of_rows,asset_in_last_row=dut.screens.on_demand.vod_get_number_of_rows?
317
- ########
318
- #Step-2# Get category name from the screen and remove all the non-alphabetic characters
319
- ########
320
- category_name=dut.roi.text.assetCount_inEachCategory.retrieve
321
- category_name=category_name.delete("^a-zA-Z")
322
- ########
323
- #Step-3# Two loops: one to loop through every asset row and another to loop through every asset in a row
324
- ########
325
- for each_asset_row in 1..total_number_of_rows
326
- if(asset_in_last_row.to_i>0)
327
- if(each_asset_row.to_i==(total_number_of_rows).to_i)
328
- asset_in_current_row=asset_in_last_row.to_i
329
- else
330
- asset_in_current_row=asset_per_row
331
- end
332
- end
333
- for each_asset in 1..asset_in_current_row
334
- ########
335
- #Step-4# Fetch asset name from asset listing page
336
- ########
337
- asset_name_roi = dut.roi.text.new(:x => 80, :y => 835, :width => 1700, :height => 59, :similarity => 0, :text => "", :preprocessing => 20, :only_digits => false, :ref_img => "")
338
- asset_name=asset_name_roi.retrieve
339
- asset_name = "NULL" if asset_name.nil? || asset_name.empty?
340
- if (asset_name.split.first).length < 3
341
- asset_name=asset_name.split(' ')[1..-1].join(' ')
342
- end
343
- current_asset_name=asset_name
344
- ########
345
- #Step-5# Select asset from asset listing page to navigate to asset overview page
346
- ########
347
- dut.press_key('select', :sleep_time=>10.sec)
348
- ########
349
- #Step-6# Fetch all asset details from the asset overview page and post the collected data to TWB
350
- ########
351
- dut.screens.on_demand.vod_fetch_asset_details_and_post_to_twb?(category_name="#{category_name}", report_name="#{report_name}",asset_name="#{current_asset_name}",cat_name="#{cat_name}")
352
- ########
353
- #Step-7# Go back to asset listing page and move to next asset in the current row
354
- ########
355
- navigate_back_status=dut.screens.on_demand.vod_go_back_move_next_tile?
356
- loginfo "vod_verify_all_movie_assets_in_a_category :: Failed to navigate back"
357
- end
358
- ########
359
- #Step-8# Move to next row first tile , after reaching end of current row
360
- ########
361
- dut.screens.on_demand.vod_go_to_next_row_first_tile?
362
- asset_in_current_row=asset_per_row
363
- end
364
- return true
365
- end
366
-
367
- # Public: Return an access token for deluxe server accessing
368
- #
369
- # Author : Raghavendra
370
- #
371
- # Returns deluxe server access token
372
- def vod_get_deluxe_access_token?
373
- ###############
374
- #Pre_requisite# Import required libraries for parsing json response and sending http/https requests
375
- ###############
376
- require 'json'
377
- require 'net/http'
378
- require 'net/https'
379
- ###############
380
- #Pre_requisite# Store the request url and data parameters required to process the request
381
- ###############
382
- request_url='https://hal.d3nw.com/oauth/token'
383
- access_token_pay_load='client_id=3b49048555817a021af1726310c383cadee4717967378e81351dddc0dee425c1&client_secret=69956582eb4211d48d000802df7c24d3cacbf67b4e307e3c88de9004edbb9152&grant_type=client_credentials'
384
- begin
385
- ########
386
- #Step-1# Parse the input request url and create a URI object
387
- ########
388
- access_token_uri=URI.parse("#{request_url}")
389
- ########
390
- #Step-2# Create a request object with uri and content-type as the parameters
391
- ########
392
- access_token_request=Net::HTTP::Post.new(access_token_uri.request_uri,'Content-Type' => 'application/x-www-form-urlencoded')
393
- ########
394
- #Step-3# Create an http object and set the port and host with respect to the URI object
395
- ########
396
- http = Net::HTTP.new(access_token_uri.host, access_token_uri.port)
397
- ########
398
- #Step-4# Enable use_ssl property for the http object if the uri scheme is a https
399
-
400
- ########
401
- http.use_ssl = (access_token_uri.scheme == "https")
402
- ########
403
- #Step-5# Set the request body and send the pay load stored before in pre-requisite step
404
- ########
405
- access_token_request.body="#{access_token_pay_load}"
406
- ########
407
- #Step-6# process the the request and store the response in a response object for further reference
408
- ########
409
- access_token_response=http.request(access_token_request)
410
- loginfo "***********************************************"
411
- loginfo access_token_response.code
412
- loginfo access_token_response.body
413
- loginfo "***********************************************"
414
- ########
415
- #Step-7# Check if response status is 200 then retrieve the access token value and return it else return false
416
- ########
417
- if access_token_response.code=='200'
418
- json_response=JSON.parse(access_token_response.body)
419
- loginfo 'Access Token = '+json_response['access_token']
420
- return json_response['access_token']
421
- else
422
- return false
423
- end
424
- rescue => exception
425
- loginfo "vod_get_deluxe_access_token :: Threw An exception"
426
- loginfo exception.message
427
- loginfo exception.backtrace
428
- return false
429
- end #End of rescue block
430
- end
431
-
432
- # Public: Get start date and end dates for fetching the assets from Deluxe server
433
- #
434
- #Author : Raghavendra
435
- #
436
- # Returns licensing_window_start_date_lteq licensing_window_start_date_gteq licensing_window_end_date
437
- def vod_get_start_end_date?
438
- ###############
439
- #Pre_requisite# Import required libraries for parsing json response and sending http/https requests
440
- ###############
441
- require 'date'
442
- begin
443
- ########
444
- #Step-1# Get current date time
445
- ########
446
- now=DateTime.now
447
- ########
448
- #Step-2# Using the current date compute by adding 3 days to it
449
- ########
450
- end_date=now+3
451
- ########
452
- #Step-3# Cast the date object to string and store it in start_date
453
-
454
- ########
455
- start_date = now.to_s
456
- ########
457
- #Step-4# Compute the licensing window start date by adding one day to current date
458
- ########
459
- licensing_window_start_date_lteq=now+1
460
- ########
461
- #Step-5# cast the end date to string type and store it in the same variable
462
- ########
463
- end_date = (end_date).to_s
464
- ########
465
- #Step-6# Cast the licensing window start date lteq to string and save it in same variable
466
- ########
467
- licensing_window_start_date_lteq=(licensing_window_start_date_lteq).to_s
468
- ########
469
- #Step-7# To have the time start from 00:00 convert the value to string and append it by the desired time value
470
- ########
471
- licensing_window_start_date_gteq = (start_date.split("T"))[0] + 'T' + '00:00.000Z'
472
- licensing_window_start_date_lteq = (licensing_window_start_date_lteq.split("T"))[0] + 'T' + '00:00.000Z'
473
- licensing_window_end_date =end_date.split("T")[0] +'T' + '00:00.000Z'
474
- loginfo 'licensing_window_start_date_gteq='+licensing_window_start_date_gteq
475
- loginfo 'licensing_window_start_date_lteq='+licensing_window_start_date_lteq
476
- loginfo 'licensing_window_end_date='+licensing_window_end_date
477
- return licensing_window_start_date_gteq,licensing_window_start_date_lteq,licensing_window_end_date
478
- rescue => exception
479
- loginfo "********INSIDE RESCUE BLOCK*********"
480
- loginfo exception.message
481
- loginfo exception.backtrace
482
- loginfo "********END OF RESCUE BLOCK*********"
483
- return false
484
- end
485
- end
486
-
487
- # Public: To verify the presence of c3 deluxe asset ids from deluxe server in alphonso server
488
- #
489
- #Author : Raghavendra
490
- #
491
- #Todo : Create a Map to put all the details in it and return that metadata map to use reporting
492
- #
493
- # deluxe_asset_id_list - C3 ID LIST fetched from DELUXE server
494
- # output_file_name - Name of the file where the data fetched form server has to be stored (default: nil).
495
- #
496
- # Returns List of c3 deluxe asset ids found alphonso
497
- def vod_search_deluxe_asset_id_in_alphonso? (deluxe_asset_id_list,output_file_name=nil)
498
- require 'json'
499
- require 'net/http'
500
- require 'net/https'
501
- require 'set'
502
- require 'uri'
503
- err_msg_asset_not_found='Can not fetch Assets for AssetId Query Params'
504
- cableID_list = Set.new
505
- missing_cableID_list=Set.new
506
- cable_asset_id_set = Set.new
507
- missing_asset_counter = 0
508
- alphonso_twb_url = "https://twb.dev-charter.net/alphonso/vod/adis/search"
509
- head_end = "st_louis"
510
- alphonso_output_file="#{output_file_name}"
511
- loginfo 'Searching assets in Alphonso'
512
- deluxe_asset_id_list.each do |cable_id|
513
- begin
514
- cableID=cpid=pct=licenseStart=licenseEnd=nil
515
- id_list=(cable_id.to_s).split(",")
516
- cableID = id_list[0]
517
- cpid = id_list[1]
518
- pct = id_list[2]
519
- license_start = id_list[3]
520
- license_end = id_list[4]
521
- order_status=id_list[5]
522
- display_name=id_list[6]
523
- series_name=id_list[7]
524
- licenseStart=license_start
525
- (licenseStart.to_s)["T"]="-"
526
- m=licenseStart.index(".")
527
- licenseStart=licenseStart[0..m.to_i]
528
- licenseEnd=license_end
529
- (licenseEnd.to_s)["T"]="-"
530
- m=licenseEnd.index(".")
531
- licenseEnd=licenseEnd[0..m.to_i]
532
- cableID_list.add(cableID)
533
- rescue =>exception
534
- loginfo "********INSIDE ID_LIST PARSING RESCUE BLOCK*********"
535
- loginfo 'Following Exception Thrown'+exception.message
536
- if exception.message.include? "string not matched"
537
- loginfo 'Following Record Missing End Date'+cable_id.to_s
538
- loginfo 'Adding the record to the cabled id list'
539
- cableID_list.add(cableID)
540
- end
541
- loginfo 'Following is the exception Backtrace'
542
- loginfo exception.backtrace
543
- loginfo "********END OF ID_LIST PARSING RESCUE BLOCK*********"
544
- end
545
- begin
546
- alphonso_uri=URI.parse("#{alphonso_twb_url}")
547
- alphonso_uri.query=[alphonso_uri.query, "titleAssetId=#{cableID}", "headend=#{head_end}"].compact.join('&')
548
- alphonso_request=Net::HTTP::Get.new(alphonso_uri.request_uri)
549
- http = Net::HTTP.new(alphonso_uri.host, alphonso_uri.port)
550
- http.use_ssl = (alphonso_uri.scheme == "https")
551
- alphonso_response=http.request(alphonso_request)
552
- alphonso_res_txt=alphonso_response.body
553
- json_data=JSON.parse(alphonso_res_txt)
554
- if (json_data['message']!=nil)
555
- loginfo 'Following Asset not found in Alphonso :: '+json_data.to_s
556
- missing_asset_counter=missing_asset_counter+1
557
- missing_cableID_list.add(cableID)
558
- nline=cableID+","+"null"+","+licenseStart.to_s+","+licenseEnd.to_s+","+cpid.to_s+","+"No" + ',' + pct.to_s+ ',' + order_status + ','+ display_name + ',' + series_name
559
- cable_asset_id_set.add(nline)
560
- else
561
- loginfo 'Asset Found in Alphonso'
562
- loginfo 'Response From Alphonso when Asset Found'
563
- loginfo json_data.to_s
564
- var=json_data['content']
565
- listnew=var[0]
566
- aId=listnew['assetId']
567
- providerID=cpid
568
- pct=pct
569
- nline=cableID+","+aId+","+licenseStart+","+licenseEnd+","+providerID+","+"Yes" + ',' + pct+ ',' + order_status + ','+ display_name + ',' + series_name
570
- cable_asset_id_set.add(nline)
571
- end
572
- rescue => exception
573
- loginfo "********INSIDE RESCUE BLOCK*********"
574
- loginfo 'Following Exception Thrown'+exception.message
575
- loginfo 'Following is the exception Backtrace'
576
- loginfo exception.backtrace
577
- loginfo "********END OF RESCUE BLOCK*********"
578
- end
579
- end
580
- loginfo 'Total Number of Assets in Deluxe ='+(deluxe_asset_id_list.length).to_s
581
- loginfo 'Total Number of Assets Found in Alphonso ='+(cable_asset_id_set.length).to_s
582
- loginfo 'Total Number of Assets Not Found in Alphonso='+(missing_cableID_list.length).to_s
583
- loginfo 'Missing Assets Counter='+(missing_asset_counter).to_s
584
- missing_cableID_list.each do |missing_cable_id|
585
- loginfo missing_cable_id.to_s
586
- end
587
- loginfo 'Details of Assets Found in Alphonso'
588
- create_file=true
589
- cable_asset_id_set.each do |each_cable_asset_detail|
590
- if (create_file)
591
- create_file =false
592
- write_to_file "#{alphonso_output_file}", "#{each_cable_asset_detail}"+'##'
593
- else
594
- append_to_file "#{alphonso_output_file}", "#{each_cable_asset_detail}"+'##'
595
- end
596
- end
597
- loginfo 'Output of the details pushed to Alphonso Output file'
598
- loginfo read_from_file "#{alphonso_output_file}"
599
- $summary_line = $summary_line + ',' + ((cableID_list).length - missing_asset_counter).to_s
600
- loginfo "Alphonso Summary Line :: "+$summary_line
601
- end
602
-
603
- # Public: Verify the list of c3 assets from Deluxe server in digital smith
604
- #
605
- #Author : Raghavendra
606
- #
607
- # output_file_name - Name of the file where the output needs to be saved (default: nil).
608
- # alphonso_file_name - Name of the output file where alphonso server d (default: nil)........ata is saved
609
- #
610
- # Returns None
611
- def vod_search_deluxe_asset_id_in_digitalsmith?(output_file_name=nil,alphonso_file_name=nil)
612
- require 'date'
613
- require 'json'
614
- require 'net/http'
615
- require 'net/https'
616
- require 'set'
617
- require 'uri'
618
- asset_name = ""
619
- title = ""
620
- season_number = ""
621
- episode_number = ""
622
- package_id = ""
623
- missing_asset_counter = 0
624
- ds_missing_counter = 0
625
- rootId="NULL"
626
- ds_missing_assets = Array.new
627
- c3_input_list = Array.new
628
- c3_input_file="#{output_file_name}"
629
- alphonso_assets_lines=(read_from_file "#{alphonso_file_name}").split("##")
630
- loginfo 'Number of lines in Alphonso Output File = '+(alphonso_assets_lines.length).to_s
631
- alphonso_assets_lines.pop
632
- alphonso_assets_lines.each do |each_line|
633
- loginfo 'Current Line :: '+each_line.to_s
634
- time=DateTime.now
635
- timestamp=DateTime.now
636
- timestamp=(timestamp).to_s
637
- linelist=each_line.split(",")
638
- package_id=(linelist[1]).to_s
639
- cID=(linelist[0]).to_s
640
- alphonso_Flag=linelist[5]
641
- deluxe_flag ="Yes"
642
- pct = linelist[6]
643
- order_status=linelist[7]
644
- display_name=linelist[8]
645
- series_name=linelist[9]
646
- if(pct==nil)
647
- pct='Null'
648
- end
649
- cpid = linelist[4]
650
- begin
651
- 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'
652
- loginfo 'DS URL = '+ds_new_url
653
- ds_uri=URI.parse(ds_new_url)
654
- ds_request=Net::HTTP::Get.new(ds_uri.request_uri)
655
- http = Net::HTTP.new(ds_uri.host, ds_uri.port)
656
- http.use_ssl = (ds_uri.scheme == "https")
657
- response=http.request(ds_request)
658
- json_data=JSON.parse(response.body)
659
- loginfo 'Response from Digital Smith Server'
660
- loginfo json_data
661
- begin
662
- found_prog_type = false
663
- loginfo 'DATA_HITS LENGTH'+(json_data["hits"].length).to_s
664
- if json_data["hits"].length == 0
665
- if package_id.length > 0
666
- ds_missing_assets << package_id
667
- end
668
- 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
669
- c3_input_list << line
670
- ds_missing_counter += 1
671
- rootId="NULL"
672
- else
673
- data_hits=json_data["hits"]
674
- loginfo 'DATA HITS'
675
- loginfo data_hits
676
- if data_hits.size == 2
677
- content=data_hits[1]
678
- elsif data_hits.size == 1
679
- content=data_hits[0]
680
- end
681
- metadata=content["metadata"]
682
- asset_name=metadata["title"]
683
- forb_chars = ['<', '>', ':', '"', '/', '\\', '|', '?', '*', ',','&','-','_',".","!","'"]
684
- forb_chars.each do |char|
685
- asset_name=asset_name.delete("#{char}")
686
- end
687
- if(metadata["rootId"]!=nil)
688
- rootId=metadata["rootId"].to_s
689
- else
690
- rootId="NULL"
691
- end
692
- if(metadata["progType"]!= nil and metadata["progType"].to_s=='Series' and metadata["episodeInfo"] != nil)
693
- if(metadata["episodeInfo"]["title"]!=nil)
694
- title = metadata["episodeInfo"]["title"]
695
- forb_chars.each do |char|
696
- title=title.delete("#{char}")
697
- end
698
- else
699
- title="NULL"
700
- end
701
- if(metadata["episodeInfo"]["season"]!=nil)
702
- season_number = metadata["episodeInfo"]["season"]
703
- episode_number = metadata["episodeInfo"]["number"]
704
- else
705
- season_number = 'Null'
706
- episode_number = 'Null'
707
- end
708
- found_prog_type = true
709
- end
710
- if(metadata["progType"]!=nil)
711
- if(metadata["progType"].to_s=="Special")
712
- title=metadata["progType"].to_s
713
- forb_chars.each do |char|
714
- title=title.delete("#{char}")
715
- end
716
- episode_number = "Null"
717
- season_number = "Null"
718
- end
719
- if(metadata["progType"].to_s=="Feature Film")
720
- title = "Null"
721
- episode_number = "Null"
722
- season_number = "Null"
723
- end
724
- found_prog_type = true
725
- end
726
- if found_prog_type==true and asset_name !=nil
727
- 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
728
- c3_input_list <<(line)
729
- rootId="NULL"
730
- else
731
- 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
732
- c3_input_list <<(line)
733
- rootId="NULL"
734
- end
735
- end #End Else Part
736
- rescue => exception
737
- loginfo 'Start Rescue :: Exception Occured in Metadata Parsing'
738
- loginfo exception.message
739
- loginfo exception.backtrace
740
- 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
741
- loginfo "Package ID :: "+package_id
742
- c3_input_list <<(line)
743
- rootId="NULL"
744
- loginfo 'End Rescue :: Exception Occured in Metadata Parsing'
745
- end
746
- rescue => exception
747
- loginfo 'Start Rescue :: Exception Occurred while requesting ds server for asset details'
748
- loginfo 'DS URL = '+ds_new_url
749
- loginfo 'PACKAGE ID = '+package_id
750
- loginfo exception.message
751
- loginfo exception.backtrace
752
- loginfo 'End Rescue :: Exception Occurred while requesting ds server for asset details'
753
- end #End of Rescue block
754
- end #END of for each loop alphonso_assets_lines
755
- create_file=true
756
- c3_input_list.each do |each_line|
757
- if(create_file)
758
- create_file=false
759
- write_to_file "#{c3_input_file}", "#{each_line}"+"##"
760
- else
761
- append_to_file "#{c3_input_file}", "#{each_line}"+"##"
762
- end
763
- end
764
- loginfo "MISSING ASSET FROM DS COUNTER :: "+((ds_missing_counter).to_s)
765
- loginfo "C3 LENGTH :: " + ((c3_input_list).size).to_s
766
- loginfo "DS MISSING ASSETS ARE"
767
- loginfo ds_missing_assets
768
- $summary_line = $summary_line + ',' + ((c3_input_list).size - ds_missing_counter.to_i).to_s
769
- loginfo 'Summary Line :: ' + $summary_line
770
- end
771
-
772
- # Public: Get list of c3 assets from the deluxe server and store it in a txt file
773
- #
774
- #Author : Raghavendra
775
- #
776
- # output_file_name - Name of the file where the data fetched from the server has to be saved to (default: nil).
777
- #
778
- # Returns list of c3 asset details fetched from deluxe server
779
- def vod_get_asset_id_list_deluxe?(output_file_name=nil)
780
- require 'json'
781
- require 'net/http'
782
- require 'net/https'
783
- require 'set'
784
- require 'uri'
785
- ###############
786
- #Pre_requisite# store deluxe asset url,create set to store details and return,summary line,page number,next page available flag
787
- ###############
788
- deluxe_asset_query_url='https://hal.d3nw.com/customer_api/v1/titles?'
789
- id_list=Set.new
790
- page = 1
791
- next_page_available = true
792
- ########
793
- #Step-1# Get window start date, window end date
794
- ########
795
- licensing_window_start_date_gteq, licensing_window_start_date_lteq, licensing_window_end_date = dut.screens.on_demand.vod_get_start_end_date?
796
- ########
797
- #Step-2# Get the deluxe server access token
798
- ########
799
- deluxe_access_token=dut.screens.on_demand.vod_get_deluxe_access_token?
800
- ########
801
- #Step-3# Contruct file name to store the assets details fetched from deluxe server
802
- ########
803
- deluxe_file_name="#{output_file_name}"
804
- ########
805
- #Step-4# Using the file name created in above step write empty line into file just to create the file
806
- ########
807
- loginfo 'Deluxe File Name= '+deluxe_file_name
808
- ########
809
- #Step-5# Rerquest the deluxe server for 500 pages of data page by page and extract the c3 asset details till nothing is returned
810
- ########
811
- while (next_page_available)
812
- begin
813
- loginfo 'Getting Page :' + (page).to_s
814
- ##########
815
- #Step-5.1# Parse the URL of the deluxe server and store it in a URI object
816
- ##########
817
- deluxe_asset_list_uri=URI.parse("#{deluxe_asset_query_url}")
818
- ##########
819
- #Step-5.2# Contruct the URL with required window star tand end date parameteres and page number too
820
- ##########
821
- 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('&')
822
- ##########
823
- #Step-5.4# Create a http request object from the uri object created
824
- ##########
825
- deluxe_asset_list_request=Net::HTTP::Get.new(deluxe_asset_list_uri.request_uri)
826
- ##########
827
- #Step-5.5# Create a http object to process the request object and get the reponse
828
- ##########
829
- http = Net::HTTP.new(deluxe_asset_list_uri.host, deluxe_asset_list_uri.port)
830
- ##########
831
- #Step-5.6# set the ssl as true iff the url provided as https in it
832
- ##########
833
- http.use_ssl = (deluxe_asset_list_uri.scheme == "https")
834
- ##########
835
- #Step-5.6# Set the authorization parameter as the deluxe server access token
836
- ##########
837
- deluxe_asset_list_request["authorization"] = 'Bearer ' + "#{deluxe_access_token}"
838
- ##########
839
- #Step-5.7# Process the request and get the reponse into response object
840
- ##########
841
- response=http.request(deluxe_asset_list_request)
842
- ##########
843
- #Step-5.8# Verify if the response is not null
844
- ##########
845
- if (response.read_body).length <=2
846
- next_page_available=false
847
- break#break from while loop
848
- else
849
- next_page_available=true
850
- deluxe_response=response.read_body
851
- end#End if block
852
- ##########
853
- #Step-5.9# Parse the response into an JSON object and store it into data object
854
- ##########
855
- data=JSON.parse(deluxe_response)
856
- ##########
857
- #Step-5.10# Retrieve all the required c3 asset details from json data from the response received
858
- ##########
859
- for i in 0..((data).size-1)
860
- if data[i]['sla_type_code']=='c3'
861
- loginfo 'Found a C3 Asset'
862
- dname= data[i]['display_name'].to_s
863
- assetID= (data[i]['cablelabs_asset_id']).to_s
864
- cpid = (data[i]['cablelabs_provider_id']).to_s
865
- pct = (data[i]['custom_data']['provider_content_tier']).to_s
866
- license_start = (data[i]['licensing_window_start_date']).to_s
867
- license_end = (data[i]['licensing_window_end_date']).to_s
868
- if data[i]['status'] != nil
869
- order_status = (data[i]['status']).to_s
870
- else
871
- order_status="NULL"
872
- end
873
- if data[i]['display_name'] != nil
874
- display_name = (data[i]['display_name']).to_s
875
- else
876
- display_name="NULL"
877
- end
878
- if data[i]['series_name'] != nil
879
- series_name = (data[i]['series_name']).to_s
880
- else
881
- series_name="NULL"
882
- end
883
- msg = assetID + ',' + cpid + ',' + pct + ',' + license_start + ',' + license_end + ',' + order_status + ',' + display_name + ',' + series_name
884
- loginfo msg
885
- id_list.add(msg)
886
- end#End if block
887
- end#End of for loop
888
- page=page+1
889
-
890
- loginfo id_list.size
891
- create_file=true
892
- id_list.each do |n|
893
- if(create_file)
894
- create_file=false
895
- write_to_file "#{deluxe_file_name}", n+"##"
896
- else
897
- append_to_file "#{deluxe_file_name}", n+"##"
898
- end
899
- end#for each loop
900
- rescue => exception
901
- loginfo 'Exception occured while fetching c3 asset details from deluxe server'
902
- loginfo exception.message
903
- loginfo exception.backtrace
904
- break#break out of while loop on exception
905
- end
906
- end
907
- $summary_line=$summary_line+ ',' + ((id_list).size).to_s
908
- return id_list
909
- end
910
-
911
- # Public: To verify if the asset searched is present in the search result
912
- #
913
- #Author : Raghavendra
914
- #
915
- # search_term - The asset name that needs to be verified
916
- #
917
- # Returns true if asset found in search result or else returns false
918
- def vod_verify_asset_present_search_result? (search_term)
919
- #pre-requisite : Control should be at first search result
920
- begin
921
- search_term=search_term.strip
922
-
923
- if search_term.length>45
924
- search_term=search_term[0..44]
925
- end
926
- search_result_count=dut.roi.text.vod_search_result_all_text.retrieve
927
- search_result_count=search_result_count.delete('^0-9')
928
- search_result_count=search_result_count.to_i
929
- y=533
930
- loginfo "Search Result Count = "+search_result_count.to_s
931
- search_term=(search_term.to_s).strip
932
- loginfo "Search term is ="+search_term.to_s
933
- for search_result_num in 0..search_result_count
934
- loginfo "Inside For Loop Search Results List"
935
- if(search_result_num<5)
936
- text_roi = dut.roi.text.new(:x => 779, :y => y.to_i, :width => 891, :height => 92, :similarity => 80, :text => "#{search_term}", :preprocessing => 8, :only_digits => false, :ref_img => "")
937
- y=y+93
938
- loginfo "Value of Y"+y.to_s
939
- else
940
- text_roi = dut.roi.text.new(:x => 779, :y => 891, :width => 891, :height => 92, :similarity => 80, :text => "#{search_term}", :preprocessing => 8, :only_digits => false, :ref_img => "")
941
- end
942
- asset_name_status=text_roi.displayed?
943
- asset_name=text_roi.retrieve
944
-
945
- loginfo "Asset Text Retrieved = "+asset_name.to_s
946
- loginfo "Asset Search Term = "+search_term.to_s
947
- if(asset_name_status)
948
- loginfo "Asset Found"
949
- return true
950
- end
951
- dut.press_key('down_arrow', :sleep_time=>3.sec)
952
- end
953
-
954
- return false
955
- rescue => exception
956
- loginfo "vod_verify_asset_present_search_result :: Threw an exception "
957
- loginfo exception.message
958
- loginfo exception.backtrace
959
- end
960
- end
961
-
962
- # Public: To filter the the search term my removing the text that comes after the season number and also remove the resolution description like HD
963
- #
964
- #Author : Raghavendra
965
- #
966
- # search_term - Search term that needs to be refined
967
- #
968
- # Returns processed search term or else returns nil if any exception occurs
969
- def vod_remove_season_number_resolution? (search_term)
970
- begin
971
- numerical_index=search_term.index(/\d/)
972
- if(numerical_index!=nil)
973
- loginfo 'Numerical Index = '+numerical_index.to_s
974
- search_term=(search_term[0..numerical_index-1]).to_s
975
- end
976
- search_term.slice! " HD"
977
- search_term=search_term.strip
978
- return search_term
979
- rescue =>exception
980
- loginfo "remove_season_number_resolution :: Failed to filter the string and remove numerical charcaters"
981
-
982
- loginfo exception.message
983
- loginfo exception.backtrace
984
- return nil
985
- end
986
- end
987
-
988
- # Public: To Navigate to the first search result after entering the search term
989
- #
990
- #Author : Raghavendra
991
- #
992
- # Returns true in any case or else returns false if an exception is thrown
993
- def vod_go_to_first_search_result?
994
- begin
995
- 6.times{dut.press_key('up_arrow', :sleep_time=>3.sec)}
996
- 6.times{dut.press_key('right_arrow', :sleep_time=>3.sec)}
997
- dut.press_key('down_arrow', :sleep_time=>3.sec)
998
- return true
999
- rescue =>exception
1000
- loginfo "go_to_first_search_result :: Failed to Navigate to First Search Result"
1001
- loginfo exception.message
1002
- loginfo exception.backtrace
1003
- return false
1004
- end
1005
- end
1006
-
1007
-
1008
- # Public: Search the asset from global search and return if the asset is found in search result
1009
- #
1010
- # Author : Raghavendra
1011
- #
1012
- # search_term - Asset Name to be searched (default: "None").
1013
- #
1014
- # Returns true if found otherwise returns false
1015
- def vod_search_asset_verify_present?(search_term="None")
1016
- require './dsllib/common/screens/roku/virtual_search_keyboard_navigator'
1017
- begin
1018
- ########
1019
- #Step-1# Do a init to verify the box is ready for test execution
1020
- ########
1021
- dut.init?
1022
- ########
1023
- #Step-2# Go to main menu and verify spectrum guide is getting displayed
1024
- ########
1025
- dut.screens.main_menu.verify_spectrum_box_guide?
1026
- ########
1027
- #Step-3# Navigate to search menu and verify if its navigating successfully
1028
- ########
1029
- fail("Failed to navigate to search page") unless dut.screens.search.navigate?(:timeout => 10.sec)
1030
- ########
1031
- #Step-4# Refine the search term to eliminate season numbers and resolution description like HD
1032
- ########
1033
- ########
1034
- #Step-5# Log the search term and type the search term using the virtual key pad
1035
- ########
1036
- loginfo 'Search Term = '+search_term.to_s
1037
- search_term=search_term.to_s
1038
- if search_term.include?("&")
1039
- newterm=search_term.split("&")
1040
- nterm=newterm[0].to_s
1041
- virtual_keyboard_roku_write_text?(nterm)
1042
- elsif search_term.include?(":")
1043
- newterm=search_term.split(":")
1044
- nterm=newterm[0].to_s
1045
- virtual_keyboard_roku_write_text?(nterm)
1046
- else
1047
- virtual_keyboard_roku_write_text?(search_term.to_s)
1048
- end
1049
-
1050
- ########
1051
- #Step-6# Go to the first search result displayed
1052
- ########
1053
- dut.screens.on_demand.vod_go_to_first_search_result?
1054
- ########
1055
- #Step-7# Verify if the search term is present in the search result
1056
- ########
1057
- search_status=dut.screens.on_demand.vod_verify_asset_present_search_result?(search_term="#{search_term}")
1058
- loginfo "Search Status = "+search_status.to_s
1059
- return search_status
1060
- rescue => exception
1061
- loginfo 'Search Asset Run Main :: Failed to search the asset'
1062
- loginfo exception.message
1063
- loginfo exception.backtrace
1064
- return false
1065
- end
1066
- end
1067
-
1068
- # Public: Get the total name of category
1069
- #
1070
- # Returns category name
1071
- def vod_get_cat_name?
1072
-
1073
- begin
1074
- ########
1075
- #Step-1# To retrieve the category name
1076
- ########
1077
- cat_name=dut.roi.text.assetCount_inEachCategory.retrieve
1078
- cat_name=cat_name.delete("^a-zA-Z")
1079
- loginfo 'Category name '+"#{cat_name}"
1080
-
1081
-
1082
- return cat_name
1083
- rescue => exception
1084
- loginfo "********INSIDE RESCUE BLOCK*********"
1085
- loginfo exception.message
1086
- loginfo exception.backtrace
1087
- loginfo "********END OF RESCUE BLOCK*********"
1088
- return 0
1089
- end #End of rescue block
1090
-
1091
-
1092
-
1093
- end
1094
-
1095
- # Public: Verify if the asset is present in a particular alphonso server
1096
- #
1097
- #Author : Raghavendra
1098
- #
1099
- # package_id - The assets package id to search for
1100
- # alphonso_twb_url - The alphonso url to which the request has to be sent
1101
- #
1102
- # Returns true if present else return false and if any exception occurs returns nil
1103
- def vod_search_if_asset_present_alphonso_by_pkgid(package_id,alphonso_twb_url)
1104
- require 'json'
1105
- require 'net/http'
1106
- require 'net/https'
1107
- require 'set'
1108
- require 'uri'
1109
- begin
1110
- head_end = "st_louis"
1111
- alphonso_twb_url=alphonso_twb_url+package_id
1112
- alphonso_uri=URI.parse("#{alphonso_twb_url}")
1113
- #alphonso_uri.query=[alphonso_uri.query, "assetId=#{package_id}", "headend=#{head_end}"].compact.join('&')
1114
- alphonso_request=Net::HTTP::Get.new(alphonso_uri.request_uri)
1115
- http = Net::HTTP.new(alphonso_uri.host, alphonso_uri.port)
1116
- http.use_ssl = (alphonso_uri.scheme == "https")
1117
- alphonso_response=http.request(alphonso_request)
1118
- alphonso_res_txt=alphonso_response.body
1119
- json_data=JSON.parse(alphonso_res_txt)
1120
- if((alphonso_response.code.to_s)=="200")
1121
- loginfo "Asset Found in Alphonso"
1122
- return true
1123
- else
1124
- loginfo "Asset Not found in Alphonso Server"
1125
- loginfo "Alphonso URL USed ::"+alphonso_twb_url.to_s
1126
- loginfo "Asset Package ID Searched for :: "+package_id.to_s
1127
- loginfo "alphonso_response.code :: "+alphonso_response.code.to_s
1128
- loginfo "response received "+alphonso_res_txt.to_s
1129
- return false
1130
- end
1131
- rescue => exception
1132
- loginfo "vod_search_if_asset_present_alphonso_by_pkgid Threw An Exception"
1133
- loginfo exception.message
1134
- loginfo exception.backtrace
1135
- return nil
1136
- end
1137
- end
1138
-
1139
- # Public: To get asset details from digital smith server
1140
- #
1141
- #Author : Raghavendra
1142
- #
1143
- # package_id - The package id of the asset for which the details need to be retrieved.
1144
- #
1145
- # Returns Hashmap of asset details fetched from digital smith server
1146
- def vod_fetch_asset_details_from_ds? (package_id)
1147
- require 'date'
1148
- require 'json'
1149
- require 'net/http'
1150
- require 'net/https'
1151
- require 'set'
1152
- require 'uri'
1153
- title =""
1154
- season_number =""
1155
- episode_number =""
1156
- episode_name=""
1157
- program_type=""
1158
- begin
1159
- 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'
1160
- loginfo 'DS URL = '+ds_new_url
1161
- ds_uri=URI.parse(ds_new_url)
1162
- ds_request=Net::HTTP::Get.new(ds_uri.request_uri)
1163
- http = Net::HTTP.new(ds_uri.host, ds_uri.port)
1164
- http.use_ssl = (ds_uri.scheme == "https")
1165
- response=http.request(ds_request)
1166
- json_data=JSON.parse(response.body)
1167
- loginfo 'Response from Digital Smith Server'
1168
- loginfo json_data
1169
- begin
1170
- found_prog_type = false
1171
- if json_data["hits"].length == 0
1172
- loginfo "Hits Length is Zero hence Asset not found in Digital Smith"
1173
- return nil
1174
- else
1175
- data_hits=json_data["hits"]
1176
- loginfo 'DATA HITS'
1177
- loginfo data_hits
1178
- if data_hits.size == 2
1179
- content=data_hits[1]
1180
- elsif data_hits.size == 1
1181
- content=data_hits[0]
1182
- end
1183
- metadata=content["metadata"]
1184
- title=metadata["title"]
1185
- forb_chars = ['<', '>', ':', '"', '/', '\\', '|', '?', '*', ',','&','-','_',".","!","'"]
1186
- forb_chars.each do |char|
1187
- title=title.delete("#{char}")
1188
- end
1189
- if(metadata["progType"]!= nil and metadata["progType"].to_s=='Series' and metadata["episodeInfo"] != nil)
1190
- if(metadata["episodeInfo"]["title"]!=nil)
1191
- episode_name = metadata["episodeInfo"]["title"]
1192
- forb_chars.each do |char|
1193
- episode_name=episode_name.delete("#{char}")
1194
- end
1195
- else
1196
- episode_name="NULL"
1197
- end
1198
- if(metadata["episodeInfo"]["season"]!=nil)
1199
- season_number = metadata["episodeInfo"]["season"]
1200
- episode_number = metadata["episodeInfo"]["number"]
1201
- else
1202
- season_number = 'Null'
1203
- episode_number = 'Null'
1204
- end
1205
- found_prog_type = true
1206
- program_type="Series"
1207
- end
1208
- end#ProgType Series
1209
- if(metadata["progType"]!=nil)
1210
- if(metadata["progType"].to_s=="Special")
1211
- episode_name=metadata["progType"].to_s
1212
- forb_chars.each do |char|
1213
- episode_name=episode_name.delete("#{char}")
1214
- end
1215
- episode_number = "Null"
1216
- season_number = "Null"
1217
- program_type="Special"
1218
- end
1219
- if(metadata["progType"].to_s=="Feature Film")
1220
- title=metadata["title"]
1221
- forb_chars.each do |char|
1222
- title=title.delete("#{char}")
1223
- end
1224
- episode_number = "Null"
1225
- season_number = "Null"
1226
- program_type="Feature Film"
1227
- end
1228
- found_prog_type = true
1229
- end#Progtype Special and Feature Film
1230
- if(metadata["movieAsset"]!=nil and metadata["progType"]==nil)
1231
- program_type="Feature Film"
1232
- title=metadata["Title"]
1233
- forb_chars = ['<', '>', '"', '/', '\\', '|', '?', '*', ',','-','_',".","!","'"]
1234
- forb_chars.each do |char|
1235
- title=title.delete("#{char}")
1236
- end
1237
- episode_number = "Null"
1238
- season_number = "Null"
1239
- found_prog_type = true
1240
- end
1241
- if found_prog_type==true
1242
- asset_details_hash={"package_id"=>"#{package_id}","title"=>"#{title}","episode_number"=>"#{episode_number}","season_number"=>"#{season_number}","program_type"=>"#{program_type}","episode_name"=>"#{episode_name}","data_hits_count"=>json_data["hits"].length}
1243
- return asset_details_hash
1244
- else
1245
- return nil
1246
- end
1247
- rescue => exception
1248
- loginfo "vod_fetch_asset_details_from_ds :: Metadata parsing block threw an error"
1249
- loginfo exception.message
1250
- loginfo exception.backtrace
1251
- return nil
1252
- end#Metadata Rescue Block
1253
- rescue => exception
1254
- loginfo "vod_fetch_asset_details_from_ds :: Request Response Block threw an error"
1255
- loginfo exception.message
1256
- loginfo exception.backtrace
1257
- return nil
1258
- end#Request Response Rescue Block
1259
- end
1260
-
1261
- # Public: Verify trick play modes and return the value
1262
- #
1263
- # is_a_series - To verify if its a series or movie asset (default: false).
1264
- #
1265
- #Author : Raghavendra
1266
- #
1267
- # Returns true if trick play modes are successfull
1268
- def vod_get_trick_play_status?(is_a_series=false)
1269
- ff_status=false
1270
- rr_status=false
1271
- pp_status=false
1272
- trick_play_status=false
1273
- if(is_a_series==false)
1274
- view_option_text=dut.roi.text.asset_view_option_text.retrieve
1275
- view_option_text=view_option_text.downcase
1276
- if view_option_text.include? "watch"
1277
- if view_option_text.include? "add"
1278
- if view_option_text.index('add') > view_option_text.index('watch')
1279
- view_option='WATCH'
1280
- else
1281
- view_option='ADD TO WATCHLIST'
1282
- end
1283
- else
1284
- view_option='WATCH'
1285
- end
1286
- elsif view_option_text.include? "browse"
1287
- view_option='BROWSE EPISODES'
1288
- elsif view_option_text.include? "restart"
1289
- view_option='WATCH'
1290
- elsif view_option_text.include? "resume"
1291
- view_option='WATCH'
1292
- else
1293
- loginfo "Watch/Restart button is not displayed to play the movie"
1294
- return false
1295
- end
1296
- if not view_option=="WATCH"
1297
- loginfo "Watch Option Not Provided"
1298
- return false
1299
- else
1300
- if(true)
1301
- dut.press_key('select', :sleep_time=>3.sec)
1302
- dut.screens.on_demand.vod_handle_pin_prompts?(pin=[0,0,0,0])
1303
- if dut.roi.text.confirm_rental_page.retrieve.include? "Confirm"
1304
- dut.press_key('select', :sleep_time=>3.sec)
1305
- end
1306
- dut.press_key('fastforward', :sleep_time=>3.sec)
1307
- sleep(1.sec)
1308
- val=dut.roi.text.fast_forward_text.retrieve
1309
- if val.include?'x'
1310
- ff_status=true
1311
- else
1312
- ff_status=false
1313
- end
1314
- dut.press_key('play', :sleep_time=>3.sec)
1315
- if dut.roi.video.fullscreen_motion.displayed?
1316
- dut.press_key('pause', :sleep_time=>3.sec)
1317
- sleep(1.sec)
1318
- if dut.roi.video.fullscreen_motion.displayed?
1319
- pp_status=false
1320
- else
1321
- pp_status=true
1322
- end
1323
- end
1324
- dut.press_key('play', :sleep_time=>3.sec)
1325
- dut.press_key('rewind', :sleep_time=>3.sec)
1326
- sleep(1.sec)
1327
- val=dut.roi.text.fast_forward_text.retrieve
1328
- if val.include?'x'
1329
- rr_status=true
1330
- else
1331
- rr_status=false
1332
- end
1333
- end
1334
- end
1335
- else
1336
- if(true)
1337
- dut.press_key('select', :sleep_time=>3.sec)
1338
- dut.screens.on_demand.vod_handle_pin_prompts?(pin=[0,0,0,0])
1339
- if dut.roi.text.confirm_rental_page.retrieve.include? "Confirm"
1340
- dut.press_key('select', :sleep_time=>3.sec)
1341
- end
1342
- dut.press_key('fastforward', :sleep_time=>3.sec)
1343
- sleep(1.sec)
1344
- val=dut.roi.text.fast_forward_text.retrieve
1345
- if val.include?'x'
1346
- ff_status=true
1347
- else
1348
- ff_status=false
1349
- end
1350
- dut.press_key('play', :sleep_time=>3.sec)
1351
- if dut.roi.video.fullscreen_motion.displayed?
1352
- dut.press_key('pause', :sleep_time=>3.sec)
1353
- sleep(1.sec)
1354
- if dut.roi.video.fullscreen_motion.displayed?
1355
- pp_status=false
1356
- else
1357
- pp_status=true
1358
- end
1359
- end
1360
- dut.press_key('play', :sleep_time=>3.sec)
1361
- dut.press_key('rewind', :sleep_time=>3.sec)
1362
- sleep(1.sec)
1363
- val=dut.roi.text.fast_forward_text.retrieve
1364
- if val.include?'x'
1365
- rr_status=true
1366
- else
1367
- rr_status=false
1368
- end
1369
- end
1370
- end
1371
- if ff_status==true and pp_status==true and rr_status==true
1372
- trick_play_status=true
1373
- else
1374
- trick_play_status=false
1375
- end
1376
- return trick_play_status
1377
- end
1378
-
1379
-
1380
- # Public: Fetch Asset Details like view option,banner presence,playback status,trick play status,if its rent then rent amount
1381
- #
1382
- # asset_name - n (default: "None")............ame of the asset fetched from asset listing screen
1383
- # check_trick_play - flag to decide whether or not to verify trick play (default: false).
1384
- #
1385
- #Author : Raghavendra
1386
- #
1387
- # Returns Hash of all the details collected
1388
- def vod_fetch_asset_details?(asset_name="None",check_trick_play=false)
1389
- begin
1390
- ###############
1391
- #Pre-requisite# Verify the screen the control is present on
1392
- ###############
1393
- dut.screens.movies.displayed?(:timeout => 3000)
1394
- ########
1395
- #Step-1# Assign all default values to the attributes to be posted to TWB vod report
1396
- ########
1397
- title="#{asset_name}"
1398
- quantity='1'
1399
- price='0.00'
1400
- view_option='NA'
1401
- playback_status='NA'
1402
- banner_presence='ABSENT'
1403
- status='PRESENT'
1404
- season_number='NA'
1405
- episode_number='NA'
1406
- episode_name='NA'
1407
- play_trick_status='NA'
1408
- ########
1409
- #Step-2# Fetch the text displayed for the first button to determine the view option provided for the asset
1410
- ########
1411
- view_option_text=dut.roi.text.asset_view_option_text.retrieve
1412
- view_option_text=view_option_text.downcase
1413
- ########
1414
- #Step-3# Following conditions will determine what kind of view_option is provided for the current asset based on the text retrieved
1415
- ########
1416
- if view_option_text.include? "watch"
1417
- if view_option_text.include? "add"
1418
- if view_option_text.index('add') > view_option_text.index('watch')
1419
- view_option='WATCH'
1420
- else
1421
- view_option='ADD TO WATCHLIST'
1422
- end
1423
- else
1424
- view_option='WATCH'
1425
- end
1426
- elsif view_option_text.include? "restart"
1427
- view_option='RESTART'
1428
- elsif view_option_text.include? "browse"
1429
- view_option='BROWSE EPISODES'
1430
- elsif view_option_text.include? "rent"
1431
- view_option='RENT'
1432
- #If the view option is rent then the price is also retrieved from the text
1433
- ind=view_option_text.index('$')
1434
- if ind=='nil'
1435
- price='0.00'
1436
- else
1437
- price=view_option_text[ind..ind+5]
1438
- price=view_option_text.delete("^.0-9")
1439
- end
1440
- elsif view_option_text.include? "listing"
1441
- view_option='VIEW OTHER LISTINGS'
1442
- end
1443
- ########
1444
- #Step-4# Determine whether poster/banner is displayed for the asset
1445
- ########
1446
- if dut.roi.image.assetOverview_movieBanner.displayed?(:timeout => 7000)
1447
- banner_presence='ABSENT'
1448
- else
1449
- banner_presence='PRESENT'
1450
- end
1451
- ########
1452
- #Step-5# Determine whether the asset is playable if the option provided is watch
1453
- ########
1454
- if view_option=='WATCH' or view_option=='RESTART'
1455
- dut.press_key('select', :sleep_time=>3.sec)
1456
- dut.screens.on_demand.vod_handle_pin_prompts?(pin=[0,0,0,0])
1457
- if dut.roi.text.confirm_rental_page.retrieve.include? "Confirm"
1458
- dut.press_key('select', :sleep_time=>3.sec)
1459
- end
1460
- if dut.roi.video.fullscreen_motion.displayed?(:timeout => 7000)
1461
- playback_status='PLAYABLE'
1462
- else
1463
- playback_status='NOT PLAYABLE'
1464
- if dut.roi.image.unable_to_play_dialogue.displayed?(:timeout => 7000)
1465
- playback_status='ERROR_UNABLE_TO_PLAY'
1466
- dut.press_key('select', :sleep_time=>3.sec)
1467
- end
1468
- end
1469
- #dut.press_key('stop', :sleep_time=>3.sec)
1470
- #sleep(5.sec)
1471
-
1472
- if(check_trick_play and playback_status=="PLAYABLE")
1473
-
1474
- dut.press_key('fastforward', :sleep_time=>3.sec)
1475
- sleep(2.sec)
1476
- val=dut.roi.text.fast_forward_text.retrieve
1477
- if val.include?'x'
1478
- play_trick_status=true
1479
- else
1480
- play_trick_status=false
1481
- end
1482
- dut.press_key('play', :sleep_time=>3.sec)
1483
- if dut.roi.video.fullscreen_motion.displayed?
1484
- dut.press_key('pause', :sleep_time=>3.sec)
1485
- sleep(2.sec)
1486
- if dut.roi.video.fullscreen_motion.displayed?
1487
- play_trick_status=false
1488
- else
1489
- play_trick_status=true
1490
- end
1491
- end
1492
- dut.press_key('play', :sleep_time=>3.sec)
1493
- dut.press_key('rewind', :sleep_time=>3.sec)
1494
- sleep(2.sec)
1495
- val=dut.roi.text.fast_forward_text.retrieve
1496
- if val.include?'x'
1497
- play_trick_status=true
1498
- else
1499
- play_trick_status=false
1500
- end
1501
-
1502
- end
1503
- end
1504
- dut.press_key('stop', :sleep_time=>3.sec)
1505
- ########
1506
- #Step-6# Form the hash of the all the attributes collected till now
1507
- ########
1508
- 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}"}
1509
- #assetDetail=category + ',' + title + ',' + quantity + ',' + price + ',' + view_option + ',' + playback_status + ',' + banner_presence + ',' + season_number + ',' + episode_number + ',' + episode_name + ',' + status + '
1510
- loginfo '****************Fetched Details*******************************'
1511
- loginfo assetDetailHash
1512
- loginfo '***********************************************'
1513
- return assetDetailHash
1514
- rescue => exception
1515
- loginfo "********INSIDE RESCUE BLOCK*********"
1516
- loginfo "fetch_asset_details :: Threw an Exception"
1517
- loginfo exception.message
1518
- loginfo exception.backtrace
1519
- loginfo "********END OF RESCUE BLOCK*********"
1520
- return nil
1521
- end
1522
- end
1523
-
1524
- # Public: Get the package ids from the specified file
1525
- #
1526
- #Author : Raghavendra
1527
- #
1528
- # file_name - File Name from which the package id (default: "None").......s need to be retrieved
1529
- #
1530
- # Returns array of package id's if an exception is thrown returns nil
1531
- def vod_get_package_id_list_from_file?(file_name="None")
1532
- begin
1533
- placeHolder_String="pack0000000004166468,pack0000000004166469,pack0000000004166462,pack0000000004166463,pack0000000004310440,
1534
- pack0000000004310429,pack0000000004310444,pack0000000004310432,pack0000000004310436,pack0000000004310437,pack0000000004310433,
1535
- pack0000000004310428,pack0000000004310445,pack0000000004310515,pack0000000004310453,pack0000000004310519,pack0000000004310457,
1536
- pack0000000004310456,pack0000000004310449,pack0000000004310514,pack0000000004310518,pack0000000004310452,pack0000000004310448,
1537
- pack0000000004310441,pack0000000004327395,pack0000000004327397,pack0000000004326769,pack0000000004326770,pack0000000004327542,
1538
- pack0000000004327544,pack0000000004327603,pack0000000004327444,pack0000000004332506,pack0000000004327446,pack0000000004332504,
1539
- pack0000000004334187,pack0000000004334197,pack0000000004334199,pack0000000004334185,pack0000000004327601,pack0000000004334235,
1540
- pack0000000004334233,pack0000000004166426,pack0000000004334193,pack0000000004334203,pack0000000004334209,pack0000000004334205,
1541
- pack0000000004334191,pack0000000004334215,pack0000000004334211,pack0000000004166427,pack0000000004334179,pack0000000004334217,
1542
- pack0000000004334181,pack0000000004334161,pack0000000004334163,pack0000000004334169,pack0000000004334167,pack0000000004334173,
1543
- pack0000000004334175,pack0000000004334137,pack0000000004334269,pack0000000004334139,pack0000000004334271,pack0000000004334263,
1544
- pack0000000004334259,pack0000000004334239,pack0000000004334277,pack0000000004334275,pack0000000004334265,pack0000000004334241,
1545
- pack0000000004334257,pack0000000004334145pack0000000004334149,pack0000000004334155,pack0000000004334151,pack0000000004334157,
1546
- pack0000000004334251,pack0000000004334245,pack0000000004334253,pack0000000004334247,pack0000000004334143,pack0000000004341369,
1547
- pack0000000004341367,HHHD0000000000941092,HHHD0000000000959105,HHHD0000000000959109,HHHD0000000000994616,HHHD0000000000990614,HHSD0000000000990614,
1548
- HHHD0000000000959103,HHHD0000000000959107,HHHD0000000000973301,HHHD0000000000973305,HHHD0000000000973304,HHHD0100000000959105,
1549
- HHHD0100000000959107,HHHD0100000000941092,HHHD0200000000941092,HHHD0200000000959107,HHSD0000000000959109,HHSD0000000000959103,
1550
- HHSD0000000000959105,HHSD0000000000973301,HHSD0000000000973304,HHSD0000000000973305,HHSD0100000000959105,HHSD0100000000959107,
1551
- HHSD0100000000941092,HHSD0200000000941092,HHSD0200000000959107,HHHD0000000000984020,HHHD0000000000984028,HHSD0000000000984028,
1552
- HHSD0000000000984020,HHSD0000000000941091,HHHD0000000000941091,HHSD0000000000978851,HHSD0000000000941094,HHHD0000000000941094,
1553
- HHSD0000000000978711,HHHD0000000000978851,HHHD0000000000978711,HHSD0000000000919575,HHHD0000000000975824,HHHD0000000000919575,
1554
- HHSD0000000000975824,HHHD0000000000974018,HHSD0000000000974016,HHSD0000000000919573,HHHD0000000000974016,HHSD0000000000974020,
1555
- HHSD0000000000974018,HHHD0000000000919573,HHHD0000000000974020,HHSD0000000000966055,HHSD0000000000966191,HHHD0000000000966055,
1556
- HHSD0000000000956240,HHHD0000000000956240,HHHD0000000000966191,HHHD0000000000919577,HHSD0000000000919577,HHHD0000000000956244,
1557
- HHSD0000000000956244,HHSD0000000000956246,HHSD0000000000960964,HHSD0000000000960966,HHHD0000000000904919,HHSD0000000000906230,
1558
- HHHD0000000000960964,HHHD0000000000956246,HHHD0000000000960966,HHHD0000000000949017,HHSD0000000000947420,HHSD0000000000949017,
1559
- HHSD0000000000947422,HHHD0000000000947422,HHHD0000000000947420,HHSD0000000000904919,HHHD0000000000906230,HHSD0000000000943100,
1560
- HHSD0000000000943102,HHHD0000000000943100,HHHD0000000000943102,HHHD0000000000937038,HHSD0000000000938448,HHSD0000000000937038,
1561
- HHHD0000000000938448"
1562
- write_to_file "#{file_name}", "#{placeHolder_String}"
1563
- file_content=read_from_file "#{file_name}"
1564
- package_id_array=file_content.split(",")
1565
- return package_id_array
1566
- rescue=> exception
1567
- loginfo "vod_get_package_id_list_from_file :: Threw an exception"
1568
- loginfo exception.message
1569
- loginfo exception.backtrace
1570
- return nil
1571
- end
1572
- end
1573
-
1574
- # Public: Convert the hasmap data to json and post it to TWB
1575
- #
1576
- # data - hash map containing all the key value pairs to post the data into TWB VOD report (default: nil).
1577
- #
1578
- #Author : Raghavendra
1579
- #
1580
- # Returns true if response status is 200 else returns false
1581
- def vod_upload_to_twb?(data=nil)
1582
- begin
1583
- require 'json'
1584
- require 'net/http'
1585
- require 'net/https'
1586
- requestURL='https://twb.dev-charter.net/ords/preprod/vod/'
1587
- uri=URI.parse("#{requestURL}")
1588
- twbRequest=Net::HTTP::Post.new(uri.request_uri,'Content-Type' => 'application/json')
1589
- http = Net::HTTP.new(uri.host, uri.port)
1590
- http.use_ssl = (uri.scheme == "https")
1591
- jsonData=data.to_json
1592
- loginfo jsonData
1593
- twbRequest.body = jsonData
1594
- response=http.request(twbRequest)
1595
- raise "POST request to TWB failed" unless response.code=='200'
1596
- $progressStatus=100
1597
- return true
1598
- rescue => exception
1599
- loginfo "vod_upload_to_twb :: Threw an exception"
1600
- loginfo exception.message
1601
- loginfo exception.backtrace
1602
- loginfo "Response Code :: "+(response.code).to_s
1603
- loginfo "Response Body :: "+(response.body).to_s
1604
- return false
1605
- end
1606
- end
1607
-
1608
- # Public: Update c3 backend validation report data to TWB
1609
- #
1610
- #Author : Raghavendra
1611
- #
1612
- # ds_output_file_name - File name where DS upd (default: "None")......ated status is stored
1613
- # report_name - Name of the report that needs to be created on TWB (default: "None").
1614
- #
1615
- # Returns false if TWB update fails or any exception is thrown else returns true
1616
- def vod_c3_backend_update_twb?(ds_output_file_name="None",report_name="None")
1617
- begin
1618
- fileName="#{report_name}"
1619
- data=Hash.new
1620
- ds_lines=(read_from_file "#{ds_output_file_name}").split("##")
1621
- ds_lines.pop
1622
- ds_lines.each do |each_line|
1623
- f=each_line.split(",")
1624
- caid=f[0]
1625
- title = f[1]
1626
- season=f[2]
1627
- episode=f[3]
1628
- episode_name = f[4]
1629
- paid=f[5]
1630
- licenseStart=f[6]
1631
- licenseEnd=f[7]
1632
- pid=f[8]
1633
- category = f[9]
1634
- alphonso=f[10]
1635
- ds_status=f[11]
1636
- timestmp=f[12]
1637
- pct = f[13]
1638
- order_status=f[14]
1639
- display_name=f[15]
1640
- series_name=f[16]
1641
- root_id=f[17]
1642
- quantity = "NA"
1643
- price = "0"
1644
- view_option = "NA"
1645
- screenshot_string = "{\"images\":[]}"
1646
- data={"report_name"=> fileName,
1647
- "category"=> category,
1648
- "title"=> title,
1649
- "season_number"=> season,
1650
- "episode_number"=> episode,
1651
- "episode_name"=> episode_name,
1652
- "quantity"=> 1,
1653
- "price"=> price.to_f,
1654
- "view_option"=> view_option,
1655
- "deluxe_status" =>ds_status,
1656
- "alphonso_status"=> alphonso,
1657
- "status"=> "-",
1658
- "assetQuality"=>"HD",
1659
- "duplicate"=>"",
1660
- "pid"=>pid,
1661
- "paid"=>paid,
1662
- "license_start_date"=>licenseStart,
1663
- "license_end_date"=>licenseEnd,
1664
- "display_timestamp"=>timestmp,
1665
- "caid" => caid,
1666
- "provider_content_tier" => pct,
1667
- "progress" => $progressStatus,
1668
- "screenshots" => screenshot_string,
1669
- "root_id"=>root_id
1670
- }
1671
- raise("vod_c3_backend_update_twb :: TWB Update failed") unless dut.screens.on_demand.vod_upload_to_twb?(data = data)
1672
- data.clear
1673
- end
1674
- return true
1675
- rescue => exception
1676
- loginfo "vod_c3_backend_update_twb :: Failed Threw and exception"
1677
- loginfo exception.message
1678
- loginfo exception.backtrace
1679
- return false
1680
- end
1681
- end
1682
-
1683
-
1684
- # Public: To get the list asset details from output file in list of maps
1685
- #
1686
- #Author : Raghavendra
1687
- #
1688
- # file_name - The (default: "None")........ filename of Digital Smith output file
1689
- #
1690
- # Returns Hashmap of asset details fetched from digital smith server
1691
- def vod_fetch_asset_details_from_ds_output_file? (file_name="None")
1692
- begin
1693
- ds_output=read_from_file "#{file_name}"
1694
- ds_details_list=Array.new
1695
- ds_detail_hash=Hash.new
1696
- ds_output_line=ds_output.split("##")
1697
- ds_output_line.each do |each_line|
1698
- ds_values=each_line.split(",")
1699
- cid=ds_values[0]
1700
- asset_name=ds_values[1]
1701
- season_number=ds_values[2]
1702
- episode_number=ds_values[3]
1703
- title=ds_values[4]
1704
- package_id=ds_values[5]
1705
- start_date=ds_values[6]
1706
- end_date=ds_values[7]
1707
- cpid=ds_values[8]
1708
- prog_type=ds_values[9]
1709
- alphonso_flag=ds_values[10]
1710
- ds_flag=ds_values[11]
1711
- timestamp=ds_values[12]
1712
- pct=ds_values[13]
1713
- order_status=ds_values[14]
1714
- display_name=ds_values[15]
1715
- series_name=ds_values[16]
1716
- rootid=ds_values[17]
1717
- ds_detail_hash=Hash.new
1718
- 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,
1719
- "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}
1720
- ds_details_list << ds_detail_hash
1721
- end
1722
- return ds_details_list
1723
- rescue => exception
1724
- loginfo "vod_fetch_asset_details_from_ds_output_file :: Failed Threw an exception"
1725
- loginfo exception.message
1726
- loginfo exception.backtrace
1727
- return nil
1728
- end
1729
- end
1730
-
1731
- # Public: To get the asset details of targeted network provider
1732
- #
1733
- #Author : Raghavendra
1734
- #
1735
- # output_file_name - Name of the file where the details need to saved (default: nil).
1736
- # targeted_provider_list - List of all the netwrok providers whose asset details needs to be retrieved from deluxe server (default: nil).
1737
- #
1738
- # Returns list of assets details retrieved from deluxe server for matching network providers
1739
- def vod_get_deluze_asset_ids_targeted_provider?(output_file_name=nil,targeted_provider_list=nil)
1740
- require 'json'
1741
- require 'net/http'
1742
- require 'net/https'
1743
- require 'set'
1744
- require 'uri'
1745
- ###############
1746
- #Pre_requisite# store deluxe asset url,create set to store details and return,summary line,page number,next page available flag
1747
- ###############
1748
- deluxe_asset_query_url='https://hal.d3nw.com/customer_api/v1/titles?'
1749
- id_list=Set.new
1750
- create_file=true
1751
- #Step-1# Get Licensing Window Start Date and End Late
1752
- licensing_window_start_date_gteq, licensing_window_start_date_lteq, licensing_window_end_date = dut.screens.on_demand.vod_get_start_end_date?
1753
- #Step-2# Get the Access Token for Deluxe Server
1754
- deluxe_access_token=dut.screens.on_demand.vod_get_deluxe_access_token?
1755
- deluxe_file_name="#{output_file_name}"
1756
- loginfo 'Deluxe File Name= '+deluxe_file_name
1757
- #Step-3# Loop through each targeted network provider list and fetch the asset details from deluxe server
1758
- begin
1759
- targeted_provider_list.each do |each_target_provider|
1760
- next_page_available=true
1761
- page=1
1762
- while (next_page_available)
1763
- begin
1764
- loginfo 'Getting Page :' + (page).to_s
1765
- deluxe_asset_list_uri=URI.parse("#{deluxe_asset_query_url}")
1766
- 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}","cablelabs_provider_id=#{each_target_provider}","perpage=500", "page=#{page}"].compact.join('&')
1767
- deluxe_asset_list_request=Net::HTTP::Get.new(deluxe_asset_list_uri.request_uri)
1768
- http = Net::HTTP.new(deluxe_asset_list_uri.host, deluxe_asset_list_uri.port)
1769
- http.use_ssl = (deluxe_asset_list_uri.scheme == "https")
1770
- deluxe_asset_list_request["authorization"] = 'Bearer ' + "#{deluxe_access_token}"
1771
- response=http.request(deluxe_asset_list_request)
1772
- if (response.read_body).length <=2
1773
- next_page_available=false
1774
- break#break from while loop
1775
- else
1776
- next_page_available=true
1777
- deluxe_response=response.read_body
1778
- end#End if block
1779
- data=JSON.parse(deluxe_response)
1780
- for i in 0..((data).size-1)
1781
- loginfo "Found a Matching Asset for network Provider #{each_target_provider}"
1782
- dname= data[i]['display_name'].to_s
1783
- assetID= (data[i]['cablelabs_asset_id']).to_s
1784
- cpid = (data[i]['cablelabs_provider_id']).to_s
1785
- pct = (data[i]['custom_data']['provider_content_tier']).to_s
1786
- license_start = (data[i]['licensing_window_start_date']).to_s
1787
- license_end = (data[i]['licensing_window_end_date']).to_s
1788
- msg = assetID + ',' + cpid + ',' + pct + ',' + license_start + ',' + license_end
1789
- loginfo msg
1790
- id_list.add(msg)
1791
- end#End of for loop
1792
- page=page+1
1793
- loginfo id_list.size
1794
- rescue => exception
1795
- loginfo 'vod_get_deluze_asset_ids_targeted_provider :: Exception occured while fetching targeted network provider asset details from deluxe server'
1796
- loginfo exception.message
1797
- loginfo exception.backtrace
1798
- break#break out of while loop on exception
1799
- end
1800
- end # While block end
1801
- end #Each Target Provider block end
1802
- #Step-4# Put the retrieved data into a file
1803
- id_list.each do |n|
1804
- if(create_file)
1805
- create_file=false
1806
- write_to_file "#{deluxe_file_name}", n+"##"
1807
- else
1808
- append_to_file "#{deluxe_file_name}", n+"##"
1809
- end
1810
- end
1811
- #Step-5# Append the count to the summary line
1812
- $summary_line=$summary_line+ ',' + ((id_list).size).to_s
1813
- return id_list
1814
- rescue => exception
1815
- loginfo "vod_get_deluze_asset_ids_targeted_provider :: Failed threw an exception"
1816
- loginfo exception.message
1817
- loginfo exception.backtrace
1818
- return nil
1819
- end
1820
- end
1821
-
1822
- # Public: Handle various pin prompt when watch button is presses
1823
- #
1824
- #
1825
- #Author : Raghavendra
1826
- #
1827
- # pin - pin to be entered
1828
- #
1829
- # Returns nothing
1830
- def vod_handle_pin_prompts?(pin)
1831
- text_roi = dut.roi.text.new(:x => 746, :y => 247, :width => 390, :height => 99, :similarity => 80, :text => "Enter PIN", :preprocessing =>0, :only_digits => false, :ref_img => "")
1832
- begin
1833
- while(text_roi.displayed?)
1834
- dut.screens.settings.enter_valid_pin?(pin)
1835
- end
1836
- rescue =>exception
1837
- loginfo "vod_handle_pin_prompts :: Failed Threw and exception"
1838
- loginfo exception.message
1839
- loginfo exception.backtrace
1840
- end
1841
- end
1842
-
1843
- # Public: verifies seasojn onfo
1844
- #
1845
- # episode_name - episode name.
1846
- # episode_number - number.
1847
- # season_number - season number.
1848
- #
1849
- # Returns three values .
1850
- def vod_verify_episode_unavilable?(episode_name,episode_number,season_number)
1851
- current_episode_name="Current"
1852
- prev_episode_name="Previous"
1853
- episode_name_ret=""
1854
- episode_num_ret=""
1855
- season_num_ret=""
1856
- season_num_episode_num=""
1857
- episode_name_status=false
1858
- episode_number_status=false
1859
- season_number_status=false
1860
- end_of_season=false
1861
- count=0
1862
- begin
1863
- # eliminating the special characters if any
1864
- episode_name=episode_name.to_s
1865
- forb_chars = ['<', '>', ':', '"', '/', '\\', '|', '?', '*', ',','&','-','_',".","!","'"]
1866
- forb_chars.each do |char|
1867
- episode_name=episode_name.sub("#{char}","")
1868
- end
1869
- episode_number=episode_number.to_s
1870
- while current_episode_name!=prev_episode_name
1871
- text_roi = dut.roi.text.new(:x => 769, :y => 451, :width => 1020, :height => 164, :similarity => 0, :text => "", :preprocessing => 8, :only_digits => false, :ref_img => "")
1872
- episode_name_ret=text_roi.retrieve
1873
- episode_name_ret=episode_name_ret.to_s
1874
- forb_chars = ['<', '>', ':', '"', '/', '\\', '|', '?', '*', ',','&','-','_',".","!","'"]
1875
- forb_chars.each do |char|
1876
- episode_name_ret=episode_name_ret.sub("#{char}","")
1877
- end
1878
- episode_name_ret=episode_name_ret.gsub("\r",'')
1879
- episode_name_ret=episode_name_ret.gsub("\n",'')
1880
- prev_episode_name=episode_name_ret
1881
- if count==0
1882
- if episode_name_ret.include?(pre_epi_name)
1883
- end_of_season=true
1884
- break
1885
- else
1886
- pre_epi_name=episode_name_ret
1887
- end
1888
- end
1889
- text_roi = dut.roi.text.new(:x => 789, :y => 563, :width => 152, :height => 45, :similarity => 0, :text => "", :preprocessing => 8, :only_digits => false, :ref_img => "")
1890
- season_num_episode_num=text_roi.retrieve
1891
- season_num_episode_num=season_num_episode_num.to_s
1892
- loginfo "Season num episode num text before replacing "+season_num_episode_num.to_s
1893
- season_num_episode_num=season_num_episode_num.gsub('i','1')
1894
- season_num_episode_num=season_num_episode_num.gsub('I','1')
1895
- season_num_episode_num=season_num_episode_num.gsub('l','1')
1896
- loginfo "Season num episode num text after replacing "+season_num_episode_num.to_s
1897
- loginfo "Checking text in following string "+season_num_episode_num.to_s+" with "+ ("E"+episode_number.to_s)
1898
- loginfo "Checking text in following string "+season_num_episode_num.to_s+" with "+ ("S"+season_number.to_s)
1899
- loginfo "retrieved episode name is "+episode_name_ret.to_s
1900
- loginfo "episode name required is "+episode_name.to_s
1901
- if (episode_name_ret.include?("#{episode_name}"))
1902
- episode_name_status=true
1903
- end
1904
- text_roi = dut.roi.text.new(:x => 769, :y => 451, :width => 1020, :height => 164, :similarity => 90, :text => "#{episode_name}", :preprocessing => 8, :only_digits => false, :ref_img => "")
1905
- nstatus=text_roi.displayed?
1906
- if nstatus
1907
- episode_name_status=true
1908
- end
1909
- if episode_name_status
1910
- loginfo "Episode Found"
1911
- #break
1912
- end
1913
- if(season_num_episode_num.include?("S"+season_number.to_s))
1914
- season_number_status=true
1915
- loginfo "season_number"
1916
- loginfo season_num_episode_num
1917
- end
1918
- if(season_num_episode_num.include?("E"+episode_number.to_s))
1919
- episode_number_status=true
1920
- loginfo "episode number is "
1921
- loginfo episode_number
1922
- loginfo "episode number matched "
1923
- end
1924
- if (season_number_status==true and episode_number_status==true) or episode_name_status==true
1925
- loginfo "episode matched"
1926
- break
1927
- end
1928
- dut.press_key('down_arrow', :sleep_time=>3.sec)
1929
- text_roi = dut.roi.text.new(:x => 769, :y => 451, :width => 1020, :height => 164, :similarity => 0, :text => "", :preprocessing => 8, :only_digits => false, :ref_img => "")
1930
- current_episode_name=text_roi.retrieve
1931
- current_episode_name=current_episode_name.to_s
1932
- forb_chars.each do |char|
1933
- current_episode_name=current_episode_name.sub("#{char}","")
1934
- end
1935
- current_episode_name=current_episode_name.gsub("\r","")
1936
- current_episode_name=current_episode_name.gsub("\n","")
1937
- end
1938
- if episode_name_status==false and ( season_number_status==false or episode_number_status==false) and end_of_season==false
1939
- loginfo "Episode Not Found"
1940
- return nil
1941
- end
1942
- if end_of_season==true
1943
- loginfo "end of seasons reached"
1944
- return pre_epi,end_of_season,"none"
1945
- end
1946
- episode_found_details={"episode_name"=>episode_name_status,"episode_number"=>episode_number_status,"season_number"=>season_number_status}
1947
- return pre_epi,end_of_season,episode_found_details
1948
- rescue => exception
1949
- loginfo "vod_verify_episode_present : : Threw an exception"
1950
- loginfo exception.message
1951
- loginfo exception.backtrace
1952
- return nil
1953
- end
1954
- end
1955
-
1956
- # Public: To Go to Particular season when available to watch now is not present
1957
- #
1958
- # Author : Raghavendra
1959
- #
1960
- # season_num - Seaso (default: nil).n to search and navigate to
1961
- #
1962
- # Returns true on success
1963
- def vod_goto_particular_season(season_num=nil)
1964
- #Pre_requisite should be asset overview page
1965
- begin
1966
- count=0
1967
- season_num=season_num.delete("^0-9")
1968
- season="Season "+season_num.to_s
1969
- season_list=Array.new
1970
- season_ret="NULL"
1971
- #Select Browse Episodes Button
1972
- dut.press_key('select', :sleep_time=>3.sec)
1973
- available_text_roi=dut.roi.text.new(:x => 421, :y => 254, :width => 1045, :height => 578, :similarity => 0, :text => "", :preprocessing => 8, :only_digits => false, :ref_img => "")
1974
- available_text=available_text_roi.retrieve
1975
- raise "Season text is not found" unless available_text.include? "Season"
1976
- while(season_list.include?"#{season_ret}")==false
1977
- count=count+1
1978
- season_num_roi=dut.roi.text.new(:x => 62, :y => 279, :width => 241, :height => 93, :similarity => 0, :text => "", :preprocessing => 8, :only_digits => false, :ref_img => "")
1979
- loginfo "season text found"
1980
- #Select First season
1981
- dut.press_key('select', :sleep_time=>3.sec)
1982
- season_ret=season_num_roi.retrieve
1983
- season_list << season_ret
1984
- if season_ret.include? season
1985
- loginfo "Season Found"
1986
- return true
1987
- end
1988
- dut.press_key('up_arrow', :sleep_time=>3.sec)
1989
- dut.press_key('select', :sleep_time=>3.sec)
1990
- count.times{dut.press_key('down_arrow', :sleep_time=>3.sec)}
1991
- dut.press_key('select', :sleep_time=>3.sec)
1992
- season_ret=season_num_roi.retrieve
1993
- end #While end
1994
- loginfo season_list
1995
- raise "Rached end of Season List ; Season Not found"
1996
- rescue => exception
1997
- loginfo "vod_goto_particular_season :: Failed Threw an exception"
1998
- loginfo exception.message
1999
- loginfo exception.backtrace
2000
- return false
2001
- end
2002
- end
2003
-
2004
- # Public: Verifies if a episode is present and gets the details of the episode
2005
- #
2006
- # episode_name - Name of the episode to be searched for
2007
- # episode_number - Episode number of the episode - need to be a string but should contain only numerical value
2008
- # season_number - season number of the episode - need to be a string but should contain only numerical value
2009
- #
2010
- #Author: Raghavendra
2011
- #
2012
- # Returns hash of flags episode_name,episode_number,season_number
2013
- def vod_verify_episode_present?(episode_name,episode_number,season_number)
2014
- current_episode_name="Current"
2015
- prev_episode_name="Previous"
2016
- episode_name_ret=""
2017
- episode_num_ret=""
2018
- season_num_ret=""
2019
- season_num_episode_num=""
2020
- episode_name_status=false
2021
- episode_number_status=false
2022
- season_number_status=false
2023
- available_text_roi=dut.roi.text.new(:x => 421, :y => 254, :width => 1045, :height => 578, :similarity => 0, :text => "", :preprocessing => 8, :only_digits => false, :ref_img => "")
2024
- begin
2025
- # eliminating the special characters if any
2026
- episode_name=episode_name.to_s
2027
- forb_chars = ['<', '>', ':', '"', '/', '\\', '|', '?', '*', ',','&','-','_',".","!","'"]
2028
- forb_chars.each do |char|
2029
- episode_name=episode_name.sub("#{char}","")
2030
- end
2031
- episode_number=episode_number.to_s
2032
- #episode_number=episode_number.sub("1","i")
2033
- #Pre-requisite : Control should be present on asset overview page
2034
- view_option_text=dut.roi.text.asset_view_option_text.retrieve
2035
- view_option_text=view_option_text.downcase
2036
- if view_option_text.include? "browse"
2037
- loginfo "Browse Episode Option Is present"
2038
- dut.press_key('select', :sleep_time=>3.sec)
2039
- else
2040
- return nil
2041
- end
2042
- available_text=available_text_roi.retrieve
2043
- #Select Available video
2044
- if available_text.include? "Availab"
2045
- dut.press_key('select', :sleep_time=>3.sec)
2046
- else
2047
- dut.press_key('last', :sleep_time=>3.sec)
2048
- loginfo "Call go to particular season"
2049
- raise "Season not Found" unless dut.screens.on_demand.vod_goto_particular_season(season_num="#{season_number}")
2050
- end
2051
- #if(dut.roi.image.vod_browse_episodes_episode_listing.displayed?(:timeout => 3000))
2052
- #loginfo "Episode Listing page displayed"
2053
- #else
2054
- #loginfo "Episode Listing page not diplayed"
2055
- #return nil
2056
- #end
2057
- while current_episode_name!=prev_episode_name
2058
- text_roi = dut.roi.text.new(:x => 769, :y => 451, :width => 1020, :height => 164, :similarity => 0, :text => "", :preprocessing => 8, :only_digits => false, :ref_img => "")
2059
- episode_name_ret=text_roi.retrieve
2060
- episode_name_ret=episode_name_ret.to_s
2061
- forb_chars = ['<', '>', ':', '"', '/', '\\', '|', '?', '*', ',','&','-','_',".","!","'"]
2062
- forb_chars.each do |char|
2063
- episode_name_ret=episode_name_ret.sub("#{char}","")
2064
- end
2065
- episode_name_ret=episode_name_ret.gsub("\r",'')
2066
- episode_name_ret=episode_name_ret.gsub("\n",'')
2067
- prev_episode_name=episode_name_ret
2068
- text_roi = dut.roi.text.new(:x => 789, :y => 563, :width => 152, :height => 45, :similarity => 0, :text => "", :preprocessing => 8, :only_digits => false, :ref_img => "")
2069
- season_num_episode_num=text_roi.retrieve
2070
- season_num_episode_num=season_num_episode_num.to_s
2071
- loginfo "Season num episode num text before replacing "+season_num_episode_num.to_s
2072
- season_num_episode_num=season_num_episode_num.gsub('i','1')
2073
- season_num_episode_num=season_num_episode_num.gsub('I','1')
2074
- season_num_episode_num=season_num_episode_num.gsub('l','1')
2075
- loginfo "Season num episode num text after replacing "+season_num_episode_num.to_s
2076
- loginfo "Checking text in following string "+season_num_episode_num.to_s+" with "+ ("E"+episode_number.to_s)
2077
- loginfo "Checking text in following string "+season_num_episode_num.to_s+" with "+ ("S"+season_number.to_s)
2078
- loginfo "retrieved episode name is "+episode_name_ret.to_s
2079
- loginfo "episode name required is "+episode_name.to_s
2080
- if (episode_name_ret.include?("#{episode_name}"))
2081
- episode_name_status=true
2082
- end
2083
- text_roi = dut.roi.text.new(:x => 769, :y => 451, :width => 1020, :height => 164, :similarity => 90, :text => "#{episode_name}", :preprocessing => 8, :only_digits => false, :ref_img => "")
2084
- nstatus=text_roi.displayed?
2085
- if nstatus
2086
- episode_name_status=true
2087
- end
2088
- if episode_name_status
2089
- loginfo "Episode Found"
2090
- #break
2091
- end
2092
- if(season_num_episode_num.include?("S"+season_number.to_s))
2093
- season_number_status=true
2094
- loginfo "season_number"
2095
- loginfo season_num_episode_num
2096
- end
2097
- if(season_num_episode_num.include?("E"+episode_number.to_s))
2098
- episode_number_status=true
2099
- loginfo "episode number is "
2100
- loginfo episode_number
2101
- loginfo "episode number matched "
2102
- end
2103
- if (season_number_status==true and episode_number_status==true) or episode_name_status==true
2104
- loginfo "episode matched"
2105
- break
2106
- end
2107
- dut.press_key('down_arrow', :sleep_time=>3.sec)
2108
- text_roi = dut.roi.text.new(:x => 769, :y => 451, :width => 1020, :height => 164, :similarity => 0, :text => "", :preprocessing => 8, :only_digits => false, :ref_img => "")
2109
- current_episode_name=text_roi.retrieve
2110
- current_episode_name=current_episode_name.to_s
2111
- forb_chars.each do |char|
2112
- current_episode_name=current_episode_name.sub("#{char}","")
2113
- end
2114
- current_episode_name=current_episode_name.gsub("\r","")
2115
- current_episode_name=current_episode_name.gsub("\n","")
2116
- end
2117
- if episode_name_status==false and ( season_number_status==false or episode_number_status==false)
2118
- loginfo "Episode Not Found"
2119
- return nil
2120
- end
2121
- #if(season_num_episode_num.include?("S"+season_number.to_s))
2122
- # season_number_status=true
2123
- #end
2124
- #if(season_num_episode_num.include?("E"+episode_number.to_s))
2125
- # episode_number_status=true
2126
- #end
2127
- episode_found_details={"episode_name"=>episode_name_status,"episode_number"=>episode_number_status,"season_number"=>season_number_status}
2128
- return episode_found_details
2129
- rescue => exception
2130
- loginfo "vod_verify_episode_present : : Threw an exception"
2131
- loginfo exception.message
2132
- loginfo exception.backtrace
2133
- return nil
2134
- end
2135
- end
2136
-
2137
- end