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,73 +0,0 @@
1
- require './lib/screen/mobile/android/android_screen'
2
- require './lib/screen/mobile/parental_controls_mobile'
3
-
4
- # Defines Android-specific methods on the Parental Controls screen
5
-
6
- class AndroidParentalControls < AndroidScreen
7
- include ParentalControlsMobile
8
-
9
- # Chooses the named parental control
10
- def choose_control?(name)
11
- dut.tap?({:text=> name, :type => 'android.widget.TextView'})
12
- end
13
-
14
- # Returns true if the prompt to create a PIN is displayed, otherwise false
15
- def is_create_pin_prompt?
16
- dut.element?({:name => 'com.TWCableTV:id/createPINText', :text => 'regexp:(?i-mx:create)'})
17
- end
18
-
19
- # Returns true if the prompt to confirm a new PIN is displayed, otherwise false
20
- def is_confirm_pin_prompt?
21
- dut.element?({:name => 'com.TWCableTV:id/createPINText', :text => 'regexp:(?i-mx:confirm)'})
22
- end
23
-
24
- # Returns true if successfully chose to reset PIN, otherwise false
25
- def choose_reset_pin?
26
- dut.tap?({:name => 'com.TWCableTV:id/resetPinButton'})
27
- end
28
-
29
- # Returns true if successfully continued to reset PIN, otherwise false
30
- def continue_reset_pin?
31
- choose_reset_pin?
32
- end
33
-
34
- # Returns true if successfully typed password, otherwise false
35
- def enter_password?(password=nil)
36
- dut.type?({:keys => password || $password || dut.password})
37
- end
38
-
39
- # Returns true if the password prompt is displayed, otherwise false
40
- def is_password_prompt?
41
- dut.element(:name => 'com.TWCableTV:id/passwordHeaderText') != nil
42
- end
43
-
44
- # Returns true if the Channel Blocking page is displayed, otherwise false
45
- def is_channel_block_visible?
46
- dut.element?({:name => 'com.TWCableTV:id/channelBlockHeaderText',
47
- :text => 'Turning Channel Block on will allow you to block any network selected below'})
48
- end
49
-
50
- # Returns true if successfully enabled parental controls, otherwise false
51
- def enable?
52
- dut.tap?({:name => 'com.TWCableTV:id/parentalControlsToggleButton', :text => 'Parental Controls OFF',
53
- :timeout => 5.sec})
54
- end
55
-
56
- # Returns true if parental controls is currently enabled, otherwise false
57
- def enabled?
58
- dut.element?({:name => 'com.TWCableTV:id/parentalControlsToggleButton', :text => 'Parental Controls ON',
59
- :timeout => 5.sec})
60
- end
61
-
62
- # Returns true if the password was invalid, otherwise false
63
- def is_password_invalid?
64
- dut.element?({:name => 'com.TWCableTV:id/invalidPassword'})
65
- end
66
-
67
- # Returns true if successfully selected option to cancel PIN reset, otherwise false
68
- def cancel_reset_pin?
69
- return false unless dut.back?
70
- dut.back?
71
- end
72
-
73
- end
@@ -1,31 +0,0 @@
1
- require './lib/screen/mobile/android/android_dvr'
2
-
3
- class AndroidPhoneDvr < AndroidDvr
4
-
5
- # Public: Navigates out of and back into the DVR Series Manager
6
- #
7
- # Returns true if it successfully navigates out of and back into the Series Manager
8
- def restart_series_manager?
9
- dut.tap?({:text => 'Home'})
10
- logger.info("On Home, navigating back to DVR Manager")
11
- sleep(15000)
12
- tcfail("Failed to navigate to DVR Manager!") unless dut.tap?({:name => 'com.TWCableTV:id/homeDvr'})
13
- logger.info("Tapping on Series Manager tab")
14
- tcfail("Failed to tap on Series Manager tab") unless dut.tap?({:name => 'com.TWCableTV:id/seriesPriority'})
15
- sleep(30000)
16
- end
17
-
18
- # Public: Navigates out of and back into the Series Manager scheduled tab
19
- #
20
- # Returns true if it successfully navigates out of and back into the Series Manager scheduled tab
21
- def restart_scheduled_tab?
22
- dut.tap?({:text => 'Home'})
23
- logger.info("On Home, navigating back to DVR Manager")
24
- sleep(15000)
25
- tcfail("Failed to navigate to DVR Manager!") unless dut.tap?({:name => 'com.TWCableTV:id/homeDvr'})
26
- logger.info("Tapping on Scheduled tab")
27
- tcfail("Failed to tap on Scheduled tab") unless dut.tap?({:name => 'com.TWCableTV:id/scheduled'})
28
- sleep(30000)
29
- end
30
-
31
- end
@@ -1,39 +0,0 @@
1
- require './lib/screen/mobile/android/android_guide'
2
-
3
- class AndroidPhoneGuide < AndroidGuide
4
-
5
- # Look for Home button
6
- def home_button_exists?
7
- return dut.element?({:text => 'Home'})
8
- end
9
-
10
- # Tap on Home button
11
- def tap_home_button?
12
- return dut.tap?({:text => 'Home'})
13
- end
14
-
15
- # Navigate to Main Menu
16
- def navigate_to_main_menu?
17
- if dut.element?({:description => 'Open navigation drawer'})
18
- logger.info("Navigation drawer visible")
19
- return dut.element?({:description => 'Open navigation drawer'})
20
- else
21
- logger.info("Navigation drawer not visible, tapping back button")
22
- dut.back?()
23
- sleep(5000)
24
- if dut.element?({:description => 'Open navigation drawer'})
25
- logger.info("Navigation drawer still not visible")
26
- return dut.element?({:description => 'Open navigation drawer'})
27
- else
28
- logger.info("Navigation drawer visible")
29
- return dut.element?({:description => 'Open navigation drawer'})
30
- end
31
- end
32
- end
33
-
34
- # Taps the button to select filter
35
- def go_to_filter?
36
- return dut.tap?({:name => 'com.TWCableTV:id/channel_filter_spinner'})
37
- end
38
-
39
- end
@@ -1,104 +0,0 @@
1
- require './lib/screen/mobile/android/android_live_tv'
2
-
3
- # Defines Android Phone-specific methods on the Live TV screen
4
-
5
- class AndroidPhoneLiveTv < AndroidLiveTv
6
-
7
- # Gets the name of the currently-playing show
8
- def get_playing_now
9
- # Videoshowtitle disappears after a few seconds, you can get
10
- # it back briefly by going to full screen and then back
11
- dut.tap?({:name => 'com.TWCableTV:id/liveTv2HorizontalScrollView'})
12
- sleep 5.sec
13
- dut.tap?({:name => 'com.TWCableTV:id/liveTv2HorizontalScrollView'})
14
-
15
- ret = dut.element({:name => 'com.TWCableTV:id/liveTv2VideoShowTitle', :timeout => 60.sec, :info => [:text]})
16
- logger.info("Playing now: #{ret}")
17
- ret
18
- end
19
-
20
- # Returns the element for the video area
21
- def video_area
22
- dut.element({:name => 'com.TWCableTV:id/liveTv2HorizontalScrollView', :info => [:x, :y, :width, :height]})
23
- end
24
-
25
- # Returns true if successfully tapped the playing Live TV video content, otherwise false
26
- def tap_video?
27
- dut.tap?({:name => 'com.TWCableTV:id/liveTv2HorizontalScrollView'})
28
- end
29
-
30
- def cancel_fullscreen?
31
- super
32
- dut.rotate_portrait?
33
- end
34
-
35
-
36
- # Attempts to "watch" n channels by just clicking on them. Returns a list of the watched show titles if successful,
37
- # otherwise fails the test.
38
- #
39
- # override n for android phone. Arguably I should test for phone in the test
40
- # and do this there, or specialize how the phone watch_channels works,
41
- # but this should still work pretty well.
42
-
43
- def watch_channels(n, args={})
44
- n = 4
45
- logger.info("-------------------------------------------------------")
46
- logger.info("Android phone watch channels");
47
- logger.info("-------------------------------------------------------")
48
- watched = args.fetch(:already_watched, [])
49
- timeout_s = args.fetch(:timeout, 300.sec) / 1000
50
- start_time = Time.now
51
- while (Time.now - start_time) <= timeout_s
52
- chans = dut.elements({:name => 'com.TWCableTV:id/liveTvChannelListNowTitle'}).map {|title| title[:text]}
53
- # Watch all the visible chans
54
- chans.each do |chan|
55
- next if watched.include?(chan) # no need to watch the same channel twice
56
- if !dismissed_hint? && dut.tap?({:name => 'com.TWCableTV:id/liveTv2HintText1', :timeout => 0.sec})
57
- dismissed_hint = true # this is a setter method, keep it!
58
- loginfo2('Dismissed hint')
59
- end
60
- y_pct = chan == chans.first ? 0.99 : 0.01
61
- tcfail "Failed to tap #{chan}!" unless dut.tap?({:name => 'com.TWCableTV:id/liveTvChannelListNowTitle',
62
- :text => chan, :index => 1,
63
- :y => y_pct,}, :sleep_time => 5.sec)
64
- enter_pin_once
65
- watched << chan
66
- break if watched.count == n
67
- end
68
- break if watched.count == n
69
- # Swipe up from the last to the 2nd channel (because the 1st one may be partially hidden under "All Channels" now)
70
- tcfail 'Failed to swipe!' unless dut.swipe?({:from => {:name => 'com.TWCableTV:id/liveTvChannelListNowTitle',
71
- :text => chans[-1],
72
- :timeout => 10.sec},
73
- :to=> {:name => 'com.TWCableTV:id/liveTvChannelListNowTitle',
74
- :text => chans[1],
75
- :timeout => 10.sec}})
76
- end
77
- tcfail "Failed to watch #{n} channels!" unless watched.count == n
78
- watched
79
- end
80
-
81
-
82
-
83
- def verify_recently_watched(chan_list)
84
- logger.info("-------------------------------------------------------")
85
- logger.info("Android Phone Verify Recently watched")
86
- logger.info("-------------------------------------------------------")
87
- logger.info("Channels in passed-in channel list: ")
88
- chan_list.each do |chan|
89
- logger.info("#{chan.inspect}")
90
- end
91
- dut.swipe?({:from =>
92
- {:name => 'com.TWCableTV:id/liveTv2HorizontalScrollView', :x => 0.96, :y => 0.47},
93
- :to =>
94
- {:name => 'com.TWCableTV:id/liveTv2HorizontalScrollView', :x => 0.13, :y => 0.56}, :duration => 500})
95
-
96
- tcfail "No recently watched channels found" unless dut.elements?({:name => "com.TWCableTV:id/showCard"})
97
- dut.tap?({:name => 'com.TWCableTV:id/showCard', :index => 1})
98
- playing_now_text = get_playing_now()
99
- should_playing_text = chan_list.pop()
100
- tcfail "Playing channel is not the channel that should be playing" unless playing_now_text == should_playing_text
101
-
102
- end
103
-
104
- end
@@ -1,27 +0,0 @@
1
- require './lib/screen/mobile/android/android_main_menu'
2
-
3
- # Defines Android Phone-specific methods on the Android Main Menu screen
4
-
5
- class AndroidPhoneMainMenu < AndroidMainMenu
6
-
7
- # Internal: Chooses to navigate to the screen with the given name
8
- #
9
- # name - Name of screen to navigate to
10
- #
11
- # Examples:
12
- #
13
- # dut.screens.main_menu.navigate_to?("Live TV")
14
- #
15
- # dut.screens.main_menu.navigate_to?("Settings")
16
- #
17
- # Returns a boolean value of true if the app successfully navigates to
18
- # the correct screen, elser returns false
19
- def navigate_to?(name)
20
- return false unless super(name)
21
- if dut.screens.live_tv.is_pin_prompt?
22
- tcfail 'Failed to enter PIN!' unless dut.screens.live_tv.enter_pin?
23
- end
24
- true
25
- end
26
-
27
- end
@@ -1,35 +0,0 @@
1
- require './lib/screen/mobile/android/android_on_demand'
2
-
3
- # Defines Android Phone-specific methods on the On Demand screen
4
-
5
- class AndroidPhoneOnDemand < AndroidOnDemand
6
-
7
- # Number of assets in a row for the "featured" tab
8
- # (May need to make portrait/landscape ones)
9
-
10
- def featured_row_asset_count
11
- return 4
12
- end
13
-
14
- def alphabet_picker_visible?
15
- dut.element?({:name => 'com.TWCableTV:id/fastNavIndexView'})
16
- end
17
-
18
- def pick_alphabet?(letter)
19
- logger.info("--- Picking #{letter} on alphabet picker")
20
- e = dut.element({:name => 'com.TWCableTV:id/fastNavIndexView'})
21
- tcfail "Couldn't find alphabet picker" unless nil != e
22
- x = 0.5
23
- max_height = e[:height]
24
- letter_loc = letter[0] - 'A'[0] + 1.0
25
- letter_pct = letter_loc.to_f / 27.0 # ( '#' through 'Z')
26
- logger.info("--- max_height = #{max_height} letter_loc = #{letter_loc} letter_pct = #{letter_pct}")
27
- y = max_height * letter_pct;
28
- #
29
- # This doesn't actually seem to work with int x/y coordinates or
30
- # percentages
31
- #
32
- dut.tap?({:name => 'com.TWCableTV:id/fastNavIndexView', :x => x, :y => letter_pct})
33
- end
34
-
35
- end
@@ -1,7 +0,0 @@
1
- require './lib/screen/mobile/android/android_product_page'
2
-
3
- class AndroidPhoneProductPage < AndroidProductPage
4
-
5
-
6
-
7
- end
@@ -1,26 +0,0 @@
1
- require './lib/screen/mobile/android/android_search'
2
-
3
- # Defines Android phone-specific methods on the Search screen
4
-
5
- class AndroidPhoneSearch < AndroidSearch
6
-
7
- # Public: Checks if matches were found
8
- #
9
- # Returns true if no matches were found, otherwise false.
10
- def no_matches_found?
11
- dut.element?({:name => 'com.TWCableTV:id/quickResultsLoading', :text => 'No matches found'})
12
- end
13
-
14
- # Public: Checks if search screen is displayed
15
- #
16
- # Returns true if search screen is displayed, otherwise false
17
- def displayed?
18
- logger.info("AndroidPhoneSearch::displayed?")
19
- #sleep 10.sec # Tests seem to fail without this
20
- #retval = dut.elements?({:name => 'com.TWCableTV:id/unifiedSearchText'})
21
- retval = dut.element?({:name => 'com.TWCableTV:id/search_src_text'})
22
- logger.info("retval == #{retval}")
23
- return retval
24
- end
25
-
26
- end
@@ -1,54 +0,0 @@
1
- require './lib/screen/mobile/android/android_screen'
2
- require './lib/screen/mobile/privacy_legal_mobile'
3
-
4
- # Defines Android-specific methods on the Privacy/Legal screen
5
-
6
- class AndroidPrivacyLegal < AndroidScreen
7
- include PrivacyLegalMobile
8
-
9
- # Returns true if Privacy Policy and Terms and Conditions are displayed, otherwise false
10
- def displayed?
11
- (dut.element?({:name => 'com.TWCableTV:id/privacyPolicyButton'}) &&
12
- dut.element?({:name => 'com.TWCableTV:id/legalButton'}))
13
- end
14
-
15
- # Returns true if the named option was selected, otherwise false
16
- def select?(option)
17
- dut.tap?({:text => option})
18
- end
19
-
20
- # Fails the test unless Terms and Conditions successfully verified
21
- def verify_terms_and_conditions
22
- tcfail 'Failed to display Terms and Conditions!' unless is_terms_and_conditions?
23
- end
24
-
25
- # Returns true if Terms and Conditions is displayed, otherwise false
26
- def is_terms_and_conditions?
27
- dut.element?({:name => 'com.TWCableTV:id/legalHeaderText'})
28
- end
29
-
30
- # Returns true if able to exit Terms and Conditions, otherwise false
31
- def quit_terms_and_conditions?
32
- dut.tap?({:name => 'com.TWCableTV:id/phoneHeaderBackButton'})
33
- end
34
-
35
- # Returns true if able to cancel opening browser, otherwise false
36
- def cancel_browser?
37
- dut.tap?({:text => 'No'})
38
- end
39
-
40
- # Returns true if able to confirm opening browser, otherwise false
41
- def confirm_browser?
42
- dut.tap?({:text => 'Yes'})
43
- if dut.element?({:text => 'Complete action using', :timeout => 5.sec})
44
- # Pick "Chrome" if we see this dialog
45
- dut.tap?({:text => 'Chrome'})
46
- end
47
- end
48
-
49
- # Returns true if Privacy Policy is displayed, otherwise false
50
- def is_privacy_policy?
51
- dut.element?({:description => 'TWC PRIVACY NOTICES', :is_tappable => true, :timeout => 60.sec})
52
- end
53
-
54
- end
@@ -1,484 +0,0 @@
1
- require './lib/screen/mobile/android/android_screen'
2
- require './lib/screen/mobile/product_page_mobile'
3
-
4
- # Defines Android-specific methods on the Product Page screen
5
-
6
- class AndroidProductPage < AndroidScreen
7
- include ProductPageMobile
8
-
9
- # Returns true if the Product Page title matches the given title, otherwise false
10
- def title?(check_title)
11
- logger.info("Checking if title equals #{check_title.inspect}")
12
- title == check_title
13
- end
14
-
15
- def title
16
- logger.info('Getting product page title')
17
- retval = nil
18
- title = dut.element({:name => 'com.TWCableTV:id/minorCatName'})
19
- if (nil != title)
20
- retval = title.text
21
- end
22
- logger.info("Got title: #{retval}")
23
- return retval
24
- end
25
-
26
- # Returns true if play option found, otherwise false
27
- def playable?
28
- # dut.element?({:name => 'com.TWCableTV:id/actionName', :text => 'regexp:^(On Demand|Resume)$'})
29
- retval = dut.element?({:name => 'com.TWCableTV:id/actionName', :text => 'On Demand', :index => 1, :timeout => 5.sec}) || dut.element?({:name => 'com.TWCableTV:id/actionName', :index => 1, :text => 'Resume', :timeout => 5.sec})
30
- if !retval
31
- retval = dut.elements?({:name => 'com.TWCableTV:id/actionName', :text => 'On Demand', :timeout => 5.sec}) || dut.elements?({:name => 'com.TWCableTV:id/actionName', :text => 'Resume', :timeout => 5.sec})
32
- end
33
- retval
34
- end
35
-
36
- # Returns true if successfully started to play asset, otherwise false
37
- def play?
38
- # dut.tap?({:name => 'com.TWCableTV:id/actionName', :text => 'regexp:^(On Demand|Resume)$'})
39
- dut.tap?({:name => 'com.TWCableTV:id/actionName', :text => 'On Demand', :index => 1, :timeout => 5.sec}) || dut.tap?({:name => 'com.TWCableTV:id/actionName', :text => 'Resume', :index => 1, :timeout => 5.sec})
40
- end
41
-
42
- # Returns true if product page, with optional title verification, is displayed, otherwise false
43
- def displayed?(title=nil)
44
- logger.info("--- Product page displayed? With title == #{title}")
45
-
46
- if ! dut.element?({:name => 'com.TWCableTV:id/backgroundImage'})
47
- logger.info("Could not find backgroundImage")
48
- return false
49
- end
50
- unless title.nil?
51
- return false unless title?(title)
52
- end
53
- true
54
- end
55
-
56
- # Returns the element for the network logo
57
- def network_logo
58
- logger.info('Getting network logo element')
59
- dut.element({:name => 'com.TWCableTV:id/networkLogo'})
60
- end
61
-
62
- # Returns the description of the asset
63
- def description
64
- logger.info('Getting asset description')
65
- desc = dut.element({:name => 'com.TWCableTV:id/description', :info => [:text]})
66
- desc.sub!(/^rating\s*\d+\s*/, '')
67
- logger.info("Got description: #{desc}")
68
- desc
69
- end
70
-
71
- # Returns the asset rating
72
- def rating
73
- rating = nil
74
- logger.info('Getting asset rating')
75
- # OCR it from the description
76
- desc = dut.element({:name => 'com.TWCableTV:id/description'})
77
- # Gets a string with the ROI text in it
78
- desc_ocr = dut.roi.text.new(:element => desc, :preprocessing => 7).retrieve
79
- re = desc_ocr.match(/^\s*([^\s]+)/)
80
- if (! re.nil? )
81
- rating = desc_ocr.match(/^\s*([^\s]+)/).captures.first.upcase
82
- logger.info("Got rating: #{rating}")
83
- else
84
- # Arguably I could tcfail here, but the guy writing the test
85
- # might not want that
86
- logger.info("Did not find rating in description")
87
- end
88
- rating
89
- end
90
-
91
- # Returns the asset release year
92
- def year
93
- logger.info('Getting asset release year')
94
- desc = dut.element({:name => 'com.TWCableTV:id/releaseDate', :info => [:text]})
95
- if desc.nil?
96
- desc = dut.element({:name => 'com.TWCableTV:id/description', :info => [:text]})
97
- year = desc.match(/^rating\s*(\d+)/).captures.first
98
- else
99
- year = desc.match(/(\d+)$/).captures.first
100
- end
101
- logger.info("Got year: #{year}")
102
- begin
103
- year.to_i
104
- rescue => e
105
- raise "Cannot parse year from #{year.inspect}: #{e}"
106
- end
107
- end
108
-
109
- # Returns a list of available buttons
110
- def buttons
111
- logger.info('Getting buttons')
112
- buttons = until_not_empty(:timeout => 2.min) do
113
- elems = dut.elements({:name => 'com.TWCableTV:id/actionName'})
114
- if (elems.empty?)
115
- scroll_down_a_little()
116
- else
117
- elems = elems.map { |b| b[:text] }
118
- logger.info("Got buttons: #{elems.inspect}")
119
- end
120
- elems
121
- end
122
- buttons
123
- end
124
-
125
- # Returns the scroll area
126
- def scroll_area
127
- logger.info('Getting product page scroll area')
128
- area = dut.element({:name => 'regexp:com.TWCableTV:id/(scrollView|viewPager)'})
129
- logger.info("Got area: #{[area[:x], area[:y], area[:width], area[:height]].inspect}")
130
- area
131
- end
132
-
133
- # Returns the list of visible cast and crew
134
- def cast_and_crew
135
- scrolled_down = 0
136
- logger.info('Getting cast and crew')
137
- viewport = scroll_area
138
- cast_crew = until_not_empty do
139
- elems = dut.elements({:name => 'com.TWCableTV:id/crewName', :timeout => 10.sec})
140
- # Scroll until we find the cast and crew
141
- if elems.empty?
142
- logger.info("Scrolling down to try to find cast and crew...")
143
- scrolled_down = scrolled_down + 1
144
- tcfail 'Failed to scroll!' unless scroll_down_a_little()
145
- end
146
- elems
147
- end
148
- cast_crew = cast_crew.map { |b| b[:text] }
149
- logger.info("Got cast and crew: #{cast_crew.inspect}")
150
- if (scrolled_down > 0)
151
- scroll_up_a_little()
152
- end
153
- cast_crew
154
- end
155
-
156
- # Returns the director's name
157
- def director
158
- detail('Director')
159
- end
160
-
161
- # Returns the runtime
162
- def runtime
163
- rt_ms = 0
164
- rt = detail('Runtime')
165
- return nil if rt.nil?
166
- hr = rt.match(/(\d+)\s*hr/)
167
- if hr
168
- rt_ms += hr.captures.first.to_i.hr
169
- end
170
- min = rt.match(/(\d+)\s*min/)
171
- if min
172
- rt_ms += min.captures.first.to_i.min
173
- end
174
- rt_ms > 0 ? rt_ms : nil
175
- end
176
-
177
- # Returns the list of genres
178
- def genres
179
- genres = detail('Genres')
180
- return nil if genres.nil?
181
- genres.split(/,\s*/)
182
- end
183
-
184
- # Returns the list of details related to format
185
- def formats
186
- details.reject { |d| d.eql?('CC') }
187
- end
188
-
189
- # Returns true if closed captioning is available, otherwise false
190
- def cc?
191
- details.include?('CC')
192
- end
193
-
194
- # Returns the list of details
195
- def details
196
- (detail('Details') || []).split(/,\s*/)
197
- end
198
-
199
- # Returns the expiration date
200
- def available_until
201
- detail('Available until')
202
- end
203
-
204
- def scroll_down_a_little
205
- logger.info("--- Scrolling down a little ---")
206
- dut.swipe?({:from => {:x => 590, :y => 1577, :coordinates => true}, :to => {:x => 610, :y => 990, :coordinates => true}, :duration => 500})
207
- end
208
-
209
- def scroll_up_a_little
210
- logger.info("--- Scrolling up a little ---")
211
- dut.swipe?({:from => {:x => 573, :y => 713, :coordinates => true}, :to => {:x => 590, :y => 1203, :coordinates => true}, :duration => 500})
212
- end
213
-
214
- # Returns the value of the given asset detail, i.e. "Director", "Genres", etc.
215
- def detail(name)
216
- scrolled_down = 0
217
- logger.info("Getting detail: #{name}")
218
- # Scroll until we find the desired detail, metacritic rating, common sense rating, or related to
219
- viewport = scroll_area
220
- until_equals(true, :timeout => 2.min) do
221
- if dut.element?({:name => 'com.TWCableTV:id/metacriticRating', :text => name, :timeout => 0.sec}) ||
222
- dut.element?({:name => 'com.TWCableTV:id/metacriticRating', :timeout => 0.sec}) ||
223
- dut.element?({:name => 'com.TWCableTV:id/commonSenseRating', :timeout => 0.sec}) ||
224
- dut.element?({:name => 'com.TWCableTV:id/relatedLabel', :timeout => 0.sec}) ||
225
- dut.element({:name => 'com.TWCableTV:id/unifiedAttributeName', :text => name, :timeout => 0.sec})
226
- true
227
- else
228
- logger.info("Scrolling down to find detail: #{name}")
229
- scrolled_down = scrolled_down + 1
230
- tcfail 'Failed to scroll!' unless scroll_down_a_little()
231
- false
232
- end
233
- end
234
- visible_details = dut.elements({:name => 'com.TWCableTV:id/unifiedAttributeName', :info => [:text]})
235
- i = visible_details.index(name)
236
- return if i.nil?
237
- visible_values = dut.elements({:name => 'com.TWCableTV:id/unifiedAttributeValue', :info => [:text]})
238
- value = visible_values[i]
239
- logger.info("Got #{name}: #{value}")
240
- if (scrolled_down > 0)
241
- scroll_up_a_little()
242
- end
243
- value
244
- end
245
-
246
- # Returns the Common Sense rating
247
- def common_sense_rating
248
- logger.info('Getting Common Sense rating')
249
- scrolled_down = 0
250
- # Scroll until we find common sense rating or related to
251
- viewport = scroll_area
252
- csr = nil
253
- until_equals(true, :timeout => 2.min) do
254
- csr = dut.element({:name => 'com.TWCableTV:id/commonSenseRating', :is_on_screen => true, :timeout => 0.sec})
255
- if csr || dut.element?({:name => 'com.TWCableTV:id/relatedLabel', :timeout => 0.sec})
256
- true
257
- else
258
- scrolled_down = scrolled_down + 1
259
- tcfail 'Failed to scroll!' unless scroll_down_a_little()
260
- false
261
- end
262
- end
263
- return nil if csr.nil?
264
- csr = dut.roi.text.new(:element => csr, :preprocessing => 8).retrieve.strip
265
- logger.info("Got Common Sense rating: #{csr.inspect}")
266
- if (scrolled_down > 0)
267
- scroll_up_a_little()
268
- end
269
- csr
270
- end
271
-
272
- # Returns the Metacritic rating
273
- def metacritic_rating
274
- logger.info('Getting Metacritic rating')
275
- scrolled_down = 0
276
- # Scroll until we find metacritic rating, common sense rating, or related to
277
- viewport = scroll_area
278
- mcr = nil
279
- until_equals(true, :timeout => 2.min) do
280
- mcr = dut.element({:name => 'com.TWCableTV:id/metacriticRating', :is_on_screen => true, :timeout => 0.sec})
281
- if mcr || dut.element?({:name => 'com.TWCableTV:id/commonSenseRating', :timeout => 0.sec}) ||
282
- dut.element?({:name => 'com.TWCableTV:id/relatedLabel', :timeout => 0.sec})
283
- true
284
- else
285
- scrolled_down = scrolled_down + 1
286
- tcfail 'Failed to scroll!' unless scroll_down_a_little()
287
- false
288
- end
289
- end
290
- if (scrolled_down > 0)
291
- scroll_up_a_little()
292
- end
293
- return nil if mcr.nil?
294
- mcr = dut.roi.text.new(:element => mcr, :preprocessing => 18, :threshold => 35).retrieve.scan(/\d+/).first.to_i
295
- logger.info("Got Metacritic rating: #{mcr.inspect}")
296
- mcr
297
- end
298
-
299
- # Returns true if related titles are shown, otherwise false
300
- def related_to?
301
- logger.info('Checking if related titles are shown')
302
- scrolled_down = 0
303
- viewport = scroll_area
304
- related_to = until_not_empty(:timeout => 1.min) do
305
- elems = dut.elements({:name => 'com.TWCableTV:id/relatedShowCard', :timeout => 10.sec})
306
- # Scroll until we find related titles
307
- if elems.empty?
308
- scrolled_down = scrolled_down + 1
309
- tcfail 'Failed to scroll!' unless scroll_down_a_little()
310
- end
311
- elems
312
- end
313
- if (scrolled_down > 0)
314
- scroll_up_a_little()
315
- end
316
- !related_to.empty?
317
- end
318
-
319
- # Returns true if other ways to watch are shown, otherwise false
320
- def ways_to_watch?
321
- logger.info('Checking if other ways to watch are shown')
322
- scrolled_down = 0
323
- viewport = scroll_area
324
- wtw = until_not_empty(:timeout => 1.min) do
325
- elems = dut.elements({:name => 'com.TWCableTV:id/owtwType', :timeout => 10.sec})
326
- # Scroll until we find other ways to watch
327
- if elems.empty?
328
- tcfail 'Failed to scroll!' unless scroll_down_a_little()
329
- scrolled_down = scrolled_down + 1
330
- end
331
- elems
332
- end
333
- if (scrolled_down > 0)
334
- scroll_up_a_little()
335
- end
336
- !wtw.empty?
337
- end
338
-
339
- # Returns true if Episodes button is present, otherwise false
340
- def episodes_button?
341
- logger.info('Checking for Episodes button')
342
-
343
- # Scroll up until the Episodes button is visible
344
- viewport = scroll_area
345
- until_equals(true, :timeout => 2.min) do
346
- found = dut.element?({:text => 'Episodes', :type => 'android.widget.TextView'})
347
- unless found
348
- dut.screens.product_page.scroll_up?(1, :area => viewport)
349
- end
350
- found
351
- end
352
- end
353
-
354
- # Returns true if Info button is present, otherwise false
355
- def info_button?
356
- logger.info('Checking for Info button')
357
- # Scroll up until the Info button is visible
358
- viewport = scroll_area
359
- until_equals(true, :timeout => 2.min) do
360
- found = dut.element?({:text => 'Info', :type => 'android.widget.TextView'})
361
- unless found
362
- dut.screens.product_page.scroll_up?(1, :area => viewport)
363
- end
364
- found
365
- end
366
- end
367
-
368
- # Returns true if the Episodes is selected, otherwise false
369
- def episodes_selected?
370
- logger.info('Checking if Episodes is selected')
371
- # Scroll up until the Episodes button is visible
372
- viewport = scroll_area
373
- until_equals(true, :timeout => 2.min) do
374
- button = dut.element({:text => 'Episodes', :type => 'android.widget.TextView'})
375
- if button.nil?
376
- dut.screens.product_page.scroll_up?(1, :area => viewport)
377
- false
378
- else
379
- return button[:is_selected]
380
- end
381
- end
382
- false
383
- end
384
-
385
- # Returns the names of the visible episodes
386
- def episode_titles
387
- logger.info('Getting visible episode titles')
388
- elems = dut.elements({:name => 'com.TWCableTV:id/episodeTitle'})
389
- titles = elems.map { |e| e[:text] }
390
- logger.info("Got visible episode titles: #{titles.inspect}")
391
- titles
392
- end
393
-
394
- # Returns the airing types of the visible episodes
395
- def episode_airing_types
396
- logger.info('Getting visible episode airing types')
397
- elems = dut.elements({:name => 'regexp:^com.TWCableTV:id/(airingText|episodeRowProgressBar)$'})
398
- airtypes = elems.map { |e| e[:text].empty? ? 'IN PROGRESS' : e[:text] }
399
- logger.info("Got visible episode airing types: #{airtypes.inspect}")
400
- airtypes
401
- end
402
-
403
- # Returns the airing dates of the visible episodes
404
- def episode_airing_dates
405
- logger.info('Getting visible episode airing dates')
406
- elems = dut.elements({:name => 'com.TWCableTV:id/episodeAiringTime'})
407
- airdates = elems.map { |e| e[:text] }
408
- logger.info("Got visible episode airing dates: #{airdates.inspect}")
409
- airdates
410
- end
411
-
412
- # Returns the numbers of the visible episodes
413
- def episode_numbers
414
- logger.info('Getting visible episode numbers')
415
- elems = dut.elements({:name => 'com.TWCableTV:id/episodeNumber'})
416
- nums = elems.map { |e| e[:text].delete('.').to_i }
417
- logger.info("Got visible episode numbers: #{nums.inspect}")
418
- nums
419
- end
420
-
421
- # Returns the names of the visible seasons
422
- def seasons
423
- logger.info('Getting visible seasons')
424
- elems = dut.elements({:name => 'com.TWCableTV:id/seasonHeader'})
425
- seasons = elems.map { |e| e[:text].upcase }
426
- logger.info("Got visible seasons: #{seasons.inspect}")
427
- seasons
428
- end
429
-
430
- # Returns the visible episode description, or nil if there isn't one
431
- def episode_description
432
- logger.info('Getting visible episode description')
433
- elem = dut.element({:name => 'com.TWCableTV:id/episodeDescription'})
434
- return nil if elem.nil?
435
- desc = elem[:text]
436
- logger.info("Got visible episode description: #{desc}")
437
- desc
438
- end
439
-
440
- # Returns true if successfully selected "Other" / "Other Ways to Watch" button, otherwise false
441
- def select_other?
442
- logger.info('Selecting "Other" / "Other Ways to Watch" button')
443
- dut.tap?({:name => 'com.TWCableTV:id/actionName', :text => 'regexp:^Other( Ways to Watch)?'})
444
- end
445
-
446
- # Returns true if the "Watch Here" button is present in the "Other Ways to Watch" menu
447
- def watch_here_button?
448
- logger.info('Checking if "Watch Here" button is present')
449
- dut.element?({:name => 'com.TWCableTV:id/otherWaysToWatchColumnHeader2', :text => 'Watch Here', :timeout => 10.sec})
450
- end
451
-
452
- # Returns true if the "Watch on TV" button is present in the "Other Ways to Watch" menu
453
- def watch_on_tv_button?
454
- logger.info('Checking if "Watch on TV" button is present')
455
- dut.element?({:name => 'com.TWCableTV:id/otherWaysToWatchColumnHeader2', :text => 'Watch on TV', :timeout => 10.sec})
456
- end
457
-
458
- # Returns true if successfully selected "Info", otherwise false
459
- def select_info?
460
- logger.info('Selecting "Info"')
461
- viewport = scroll_area
462
- until_equals(true, :timeout => 5.min) do
463
- dut.screens.product_page.scroll_up?(1, :area => viewport)
464
- dut.screens.product_page.info_button?
465
- end
466
- dut.tap?({:type => 'android.widget.TextView', :text => 'Info'})
467
- end
468
-
469
- # Returns the number of episodes available
470
- def episodes_available
471
- logger.info('Getting number of available episodes')
472
- elem = dut.element({:name => 'com.TWCableTV:id/episodesAvailable'})
473
- num = elem[:text].match(/^\d+/).to_s.to_i
474
- logger.info("Got number of available episodes: #{num}")
475
- num
476
- end
477
-
478
- # Returns true if successfully selected random Cast or Crew, otherwise false
479
- def select_random_cast_and_crew?
480
- logger.info('Selecting random Cast and Crew member')
481
- dut.tap?({:name => 'com.TWCableTV:id/crewImage', :index => rand(cast_and_crew.count) + 1})
482
- end
483
-
484
- end