framework_gem 0.1.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 (872) hide show
  1. checksums.yaml +7 -0
  2. data/lib/EXECUTION_ENGINE.md +282 -0
  3. data/lib/Gemfile +12 -0
  4. data/lib/README.md +138 -0
  5. data/lib/User_Lib/helpers/helpers.rb +13 -0
  6. data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_black_rois.rb +7 -0
  7. data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_color_rois.rb +9 -0
  8. data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_image_rois.rb +7 -0
  9. data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_rois.rb +23 -0
  10. data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_text_rois.rb +48 -0
  11. data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_video_rois.rb +11 -0
  12. data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_black_rois.rb +7 -0
  13. data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_color_rois.rb +7 -0
  14. data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_image_rois.rb +7 -0
  15. data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_rois.rb +23 -0
  16. data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_text_rois.rb +7 -0
  17. data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_video_rois.rb +11 -0
  18. data/lib/User_Lib/rois/apple_tv/apple_tv_black_rois.rb +7 -0
  19. data/lib/User_Lib/rois/apple_tv/apple_tv_color_rois.rb +7 -0
  20. data/lib/User_Lib/rois/apple_tv/apple_tv_image_rois.rb +7 -0
  21. data/lib/User_Lib/rois/apple_tv/apple_tv_rois.rb +23 -0
  22. data/lib/User_Lib/rois/apple_tv/apple_tv_text_rois.rb +7 -0
  23. data/lib/User_Lib/rois/apple_tv/apple_tv_video_rois.rb +7 -0
  24. data/lib/User_Lib/rois/black_rois.rb +33 -0
  25. data/lib/User_Lib/rois/color_rois.rb +38 -0
  26. data/lib/User_Lib/rois/dta/dta_1080/dta_1080_black_rois.rb +8 -0
  27. data/lib/User_Lib/rois/dta/dta_1080/dta_1080_color_rois.rb +8 -0
  28. data/lib/User_Lib/rois/dta/dta_1080/dta_1080_image_rois.rb +8 -0
  29. data/lib/User_Lib/rois/dta/dta_1080/dta_1080_rois.rb +26 -0
  30. data/lib/User_Lib/rois/dta/dta_1080/dta_1080_text_rois.rb +8 -0
  31. data/lib/User_Lib/rois/dta/dta_1080/dta_1080_video_rois.rb +8 -0
  32. data/lib/User_Lib/rois/dta/dta_720/dta_720_black_rois.rb +8 -0
  33. data/lib/User_Lib/rois/dta/dta_720/dta_720_color_rois.rb +8 -0
  34. data/lib/User_Lib/rois/dta/dta_720/dta_720_image_rois.rb +8 -0
  35. data/lib/User_Lib/rois/dta/dta_720/dta_720_rois.rb +26 -0
  36. data/lib/User_Lib/rois/dta/dta_720/dta_720_text_rois.rb +8 -0
  37. data/lib/User_Lib/rois/dta/dta_720/dta_720_video_rois.rb +8 -0
  38. data/lib/User_Lib/rois/dta/dta_black_rois.rb +9 -0
  39. data/lib/User_Lib/rois/dta/dta_color_rois.rb +9 -0
  40. data/lib/User_Lib/rois/dta/dta_image_rois.rb +9 -0
  41. data/lib/User_Lib/rois/dta/dta_rois.rb +26 -0
  42. data/lib/User_Lib/rois/dta/dta_text_rois.rb +9 -0
  43. data/lib/User_Lib/rois/dta/dta_video_rois.rb +9 -0
  44. data/lib/User_Lib/rois/image_rois.rb +38 -0
  45. data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_black_rois.rb +8 -0
  46. data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_color_rois.rb +8 -0
  47. data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_image_rois.rb +8 -0
  48. data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_rois.rb +26 -0
  49. data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_text_rois.rb +8 -0
  50. data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_video_rois.rb +8 -0
  51. data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_black_rois.rb +8 -0
  52. data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_color_rois.rb +8 -0
  53. data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_image_rois.rb +8 -0
  54. data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_rois.rb +26 -0
  55. data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_text_rois.rb +8 -0
  56. data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_video_rois.rb +8 -0
  57. data/lib/User_Lib/rois/mdn/mdn_black_rois.rb +9 -0
  58. data/lib/User_Lib/rois/mdn/mdn_color_rois.rb +9 -0
  59. data/lib/User_Lib/rois/mdn/mdn_image_rois.rb +9 -0
  60. data/lib/User_Lib/rois/mdn/mdn_rois.rb +26 -0
  61. data/lib/User_Lib/rois/mdn/mdn_text_rois.rb +13 -0
  62. data/lib/User_Lib/rois/mdn/mdn_video_rois.rb +9 -0
  63. data/lib/User_Lib/rois/mobile/android/android_black_rois.rb +8 -0
  64. data/lib/User_Lib/rois/mobile/android/android_color_rois.rb +8 -0
  65. data/lib/User_Lib/rois/mobile/android/android_image_rois.rb +8 -0
  66. data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_black_rois.rb +8 -0
  67. data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_color_rois.rb +8 -0
  68. data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_image_rois.rb +43 -0
  69. data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_rois.rb +22 -0
  70. data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_text_rois.rb +8 -0
  71. data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_video_rois.rb +8 -0
  72. data/lib/User_Lib/rois/mobile/android/android_rois.rb +22 -0
  73. data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_black_rois.rb +8 -0
  74. data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_color_rois.rb +8 -0
  75. data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_image_rois.rb +54 -0
  76. data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_rois.rb +22 -0
  77. data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_text_rois.rb +8 -0
  78. data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_video_rois.rb +8 -0
  79. data/lib/User_Lib/rois/mobile/android/android_text_rois.rb +8 -0
  80. data/lib/User_Lib/rois/mobile/android/android_video_rois.rb +8 -0
  81. data/lib/User_Lib/rois/mobile/ios/ios_black_rois.rb +8 -0
  82. data/lib/User_Lib/rois/mobile/ios/ios_color_rois.rb +8 -0
  83. data/lib/User_Lib/rois/mobile/ios/ios_image_rois.rb +8 -0
  84. data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_black_rois.rb +8 -0
  85. data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_color_rois.rb +8 -0
  86. data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_image_rois.rb +8 -0
  87. data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_rois.rb +22 -0
  88. data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_text_rois.rb +8 -0
  89. data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_video_rois.rb +8 -0
  90. data/lib/User_Lib/rois/mobile/ios/ios_rois.rb +22 -0
  91. data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_black_rois.rb +8 -0
  92. data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_color_rois.rb +8 -0
  93. data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_image_rois.rb +8 -0
  94. data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_rois.rb +22 -0
  95. data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_text_rois.rb +8 -0
  96. data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_video_rois.rb +8 -0
  97. data/lib/User_Lib/rois/mobile/ios/ios_text_rois.rb +8 -0
  98. data/lib/User_Lib/rois/mobile/ios/ios_video_rois.rb +8 -0
  99. data/lib/User_Lib/rois/mobile/mobile_black_rois.rb +8 -0
  100. data/lib/User_Lib/rois/mobile/mobile_color_rois.rb +12 -0
  101. data/lib/User_Lib/rois/mobile/mobile_image_rois.rb +38 -0
  102. data/lib/User_Lib/rois/mobile/mobile_rois.rb +22 -0
  103. data/lib/User_Lib/rois/mobile/mobile_text_rois.rb +8 -0
  104. data/lib/User_Lib/rois/mobile/mobile_video_rois.rb +8 -0
  105. data/lib/User_Lib/rois/passport/passport_1080/passport_1080_black_rois.rb +7 -0
  106. data/lib/User_Lib/rois/passport/passport_1080/passport_1080_color_rois.rb +9 -0
  107. data/lib/User_Lib/rois/passport/passport_1080/passport_1080_image_rois.rb +7 -0
  108. data/lib/User_Lib/rois/passport/passport_1080/passport_1080_rois.rb +23 -0
  109. data/lib/User_Lib/rois/passport/passport_1080/passport_1080_text_rois.rb +8 -0
  110. data/lib/User_Lib/rois/passport/passport_1080/passport_1080_video_rois.rb +8 -0
  111. data/lib/User_Lib/rois/passport/passport_720/passport_720_black_rois.rb +7 -0
  112. data/lib/User_Lib/rois/passport/passport_720/passport_720_color_rois.rb +7 -0
  113. data/lib/User_Lib/rois/passport/passport_720/passport_720_image_rois.rb +7 -0
  114. data/lib/User_Lib/rois/passport/passport_720/passport_720_rois.rb +23 -0
  115. data/lib/User_Lib/rois/passport/passport_720/passport_720_text_rois.rb +7 -0
  116. data/lib/User_Lib/rois/passport/passport_720/passport_720_video_rois.rb +7 -0
  117. data/lib/User_Lib/rois/passport/passport_black_rois.rb +7 -0
  118. data/lib/User_Lib/rois/passport/passport_color_rois.rb +7 -0
  119. data/lib/User_Lib/rois/passport/passport_image_rois.rb +7 -0
  120. data/lib/User_Lib/rois/passport/passport_rois.rb +23 -0
  121. data/lib/User_Lib/rois/passport/passport_text_rois.rb +7 -0
  122. data/lib/User_Lib/rois/passport/passport_video_rois.rb +7 -0
  123. data/lib/User_Lib/rois/rois.rb +22 -0
  124. data/lib/User_Lib/rois/roku/roku_720/roku_720_black_rois.rb +37 -0
  125. data/lib/User_Lib/rois/roku/roku_720/roku_720_color_rois.rb +336 -0
  126. data/lib/User_Lib/rois/roku/roku_720/roku_720_image_rois.rb +235 -0
  127. data/lib/User_Lib/rois/roku/roku_720/roku_720_rois.rb +23 -0
  128. data/lib/User_Lib/rois/roku/roku_720/roku_720_text_rois.rb +1523 -0
  129. data/lib/User_Lib/rois/roku/roku_720/roku_720_video_rois.rb +32 -0
  130. data/lib/User_Lib/rois/roku/roku_black_rois.rb +14 -0
  131. data/lib/User_Lib/rois/roku/roku_color_rois.rb +9 -0
  132. data/lib/User_Lib/rois/roku/roku_image_rois.rb +13 -0
  133. data/lib/User_Lib/rois/roku/roku_rois.rb +23 -0
  134. data/lib/User_Lib/rois/roku/roku_text_rois.rb +9 -0
  135. data/lib/User_Lib/rois/roku/roku_video_rois.rb +9 -0
  136. data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_black_rois.rb +12 -0
  137. data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_color_rois.rb +11 -0
  138. data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_image_rois.rb +12 -0
  139. data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_rois.rb +23 -0
  140. data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_text_rois.rb +12 -0
  141. data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_video_rois.rb +12 -0
  142. data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_black_rois.rb +12 -0
  143. data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_color_rois.rb +12 -0
  144. data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_image_rois.rb +12 -0
  145. data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_rois.rb +23 -0
  146. data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_text_rois.rb +12 -0
  147. data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_video_rois.rb +12 -0
  148. data/lib/User_Lib/rois/roku_tv/roku_tv_black_rois.rb +12 -0
  149. data/lib/User_Lib/rois/roku_tv/roku_tv_color_rois.rb +12 -0
  150. data/lib/User_Lib/rois/roku_tv/roku_tv_image_rois.rb +12 -0
  151. data/lib/User_Lib/rois/roku_tv/roku_tv_rois.rb +23 -0
  152. data/lib/User_Lib/rois/roku_tv/roku_tv_text_rois.rb +12 -0
  153. data/lib/User_Lib/rois/roku_tv/roku_tv_video_rois.rb +12 -0
  154. data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_black_rois.rb +13 -0
  155. data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_color_rois.rb +29 -0
  156. data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_image_rois.rb +9 -0
  157. data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_rois.rb +23 -0
  158. data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_text_rois.rb +92 -0
  159. data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_video_rois.rb +11 -0
  160. data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_black_rois.rb +9 -0
  161. data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_color_rois.rb +9 -0
  162. data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_image_rois.rb +9 -0
  163. data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_rois.rb +23 -0
  164. data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_text_rois.rb +12 -0
  165. data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_video_rois.rb +11 -0
  166. data/lib/User_Lib/rois/samsung_tv/samsung_tv_black_rois.rb +9 -0
  167. data/lib/User_Lib/rois/samsung_tv/samsung_tv_color_rois.rb +9 -0
  168. data/lib/User_Lib/rois/samsung_tv/samsung_tv_image_rois.rb +9 -0
  169. data/lib/User_Lib/rois/samsung_tv/samsung_tv_rois.rb +23 -0
  170. data/lib/User_Lib/rois/samsung_tv/samsung_tv_text_rois.rb +12 -0
  171. data/lib/User_Lib/rois/samsung_tv/samsung_tv_video_rois.rb +9 -0
  172. data/lib/User_Lib/rois/sara/sara_1080/sara_1080_black_rois.rb +8 -0
  173. data/lib/User_Lib/rois/sara/sara_1080/sara_1080_color_rois.rb +8 -0
  174. data/lib/User_Lib/rois/sara/sara_1080/sara_1080_image_rois.rb +8 -0
  175. data/lib/User_Lib/rois/sara/sara_1080/sara_1080_rois.rb +26 -0
  176. data/lib/User_Lib/rois/sara/sara_1080/sara_1080_text_rois.rb +8 -0
  177. data/lib/User_Lib/rois/sara/sara_1080/sara_1080_video_rois.rb +8 -0
  178. data/lib/User_Lib/rois/sara/sara_720/sara_720_black_rois.rb +8 -0
  179. data/lib/User_Lib/rois/sara/sara_720/sara_720_color_rois.rb +8 -0
  180. data/lib/User_Lib/rois/sara/sara_720/sara_720_image_rois.rb +8 -0
  181. data/lib/User_Lib/rois/sara/sara_720/sara_720_rois.rb +26 -0
  182. data/lib/User_Lib/rois/sara/sara_720/sara_720_text_rois.rb +8 -0
  183. data/lib/User_Lib/rois/sara/sara_720/sara_720_video_rois.rb +8 -0
  184. data/lib/User_Lib/rois/sara/sara_black_rois.rb +9 -0
  185. data/lib/User_Lib/rois/sara/sara_color_rois.rb +9 -0
  186. data/lib/User_Lib/rois/sara/sara_image_rois.rb +9 -0
  187. data/lib/User_Lib/rois/sara/sara_rois.rb +26 -0
  188. data/lib/User_Lib/rois/sara/sara_text_rois.rb +9 -0
  189. data/lib/User_Lib/rois/sara/sara_video_rois.rb +9 -0
  190. data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_black_rois.rb +9 -0
  191. data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_color_rois.rb +17 -0
  192. data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_image_rois.rb +19 -0
  193. data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_rois.rb +23 -0
  194. data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_text_rois.rb +47 -0
  195. data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_video_rois.rb +23 -0
  196. data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_black_rois.rb +9 -0
  197. data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_color_rois.rb +9 -0
  198. data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_image_rois.rb +9 -0
  199. data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_rois.rb +23 -0
  200. data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_text_rois.rb +17 -0
  201. data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_video_rois.rb +11 -0
  202. data/lib/User_Lib/rois/stb/iguide/iguide_black_rois.rb +9 -0
  203. data/lib/User_Lib/rois/stb/iguide/iguide_color_rois.rb +9 -0
  204. data/lib/User_Lib/rois/stb/iguide/iguide_image_rois.rb +9 -0
  205. data/lib/User_Lib/rois/stb/iguide/iguide_rois.rb +23 -0
  206. data/lib/User_Lib/rois/stb/iguide/iguide_text_rois.rb +9 -0
  207. data/lib/User_Lib/rois/stb/iguide/iguide_video_rois.rb +9 -0
  208. data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_black_rois.rb +8 -0
  209. data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_color_rois.rb +8 -0
  210. data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_image_rois.rb +12 -0
  211. data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_rois.rb +23 -0
  212. data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_text_rois.rb +23 -0
  213. data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_video_rois.rb +11 -0
  214. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_black_rois.rb +46 -0
  215. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_color_rois.rb +142 -0
  216. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_image_rois.rb +103 -0
  217. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_black_rois.rb +6 -0
  218. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_color_rois.rb +6 -0
  219. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_image_rois.rb +6 -0
  220. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_rois.rb +23 -0
  221. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_text_rois.rb +7 -0
  222. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_video_rois.rb +7 -0
  223. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_rois.rb +23 -0
  224. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_black_rois.rb +6 -0
  225. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_color_rois.rb +6 -0
  226. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_image_rois.rb +6 -0
  227. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_rois.rb +23 -0
  228. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_text_rois.rb +7 -0
  229. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_video_rois.rb +7 -0
  230. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_black_rois.rb +6 -0
  231. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_color_rois.rb +77 -0
  232. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_image_rois.rb +67 -0
  233. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_rois.rb +23 -0
  234. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_text_rois.rb +159 -0
  235. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_video_rois.rb +17 -0
  236. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_text_rois.rb +221 -0
  237. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_video_rois.rb +26 -0
  238. data/lib/User_Lib/rois/stb/odn/odn_black_rois.rb +10 -0
  239. data/lib/User_Lib/rois/stb/odn/odn_color_rois.rb +10 -0
  240. data/lib/User_Lib/rois/stb/odn/odn_image_rois.rb +58 -0
  241. data/lib/User_Lib/rois/stb/odn/odn_rois.rb +23 -0
  242. data/lib/User_Lib/rois/stb/odn/odn_text_rois.rb +70 -0
  243. data/lib/User_Lib/rois/stb/odn/odn_video_rois.rb +19 -0
  244. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_black_rois.rb +16 -0
  245. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_color_rois.rb +373 -0
  246. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_black_rois.rb +7 -0
  247. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_color_rois.rb +7 -0
  248. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_image_rois.rb +7 -0
  249. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_rois.rb +23 -0
  250. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_text_rois.rb +7 -0
  251. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_video_rois.rb +7 -0
  252. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_black_rois.rb +8 -0
  253. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_color_rois.rb +8 -0
  254. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_image_rois.rb +8 -0
  255. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_rois.rb +26 -0
  256. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_text_rois.rb +8 -0
  257. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_video_rois.rb +8 -0
  258. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_black_rois.rb +8 -0
  259. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_color_rois.rb +8 -0
  260. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_image_rois.rb +8 -0
  261. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_rois.rb +26 -0
  262. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_text_rois.rb +8 -0
  263. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_video_rois.rb +8 -0
  264. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_black_rois.rb +8 -0
  265. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_color_rois.rb +8 -0
  266. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_image_rois.rb +8 -0
  267. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_rois.rb +26 -0
  268. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_text_rois.rb +8 -0
  269. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_video_rois.rb +8 -0
  270. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_image_rois.rb +1592 -0
  271. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_black_rois.rb +7 -0
  272. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_color_rois.rb +7 -0
  273. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_image_rois.rb +7 -0
  274. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_rois.rb +23 -0
  275. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_text_rois.rb +7 -0
  276. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_video_rois.rb +7 -0
  277. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_rois.rb +23 -0
  278. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_text_rois.rb +2489 -0
  279. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_video_rois.rb +64 -0
  280. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_black_rois.rb +7 -0
  281. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_color_rois.rb +63 -0
  282. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_black_rois.rb +8 -0
  283. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_color_rois.rb +8 -0
  284. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_image_rois.rb +8 -0
  285. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_rois.rb +26 -0
  286. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_text_rois.rb +8 -0
  287. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_video_rois.rb +8 -0
  288. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_black_rois.rb +8 -0
  289. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_color_rois.rb +8 -0
  290. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_image_rois.rb +8 -0
  291. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_rois.rb +26 -0
  292. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_text_rois.rb +8 -0
  293. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_video_rois.rb +8 -0
  294. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_black_rois.rb +8 -0
  295. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_color_rois.rb +8 -0
  296. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_image_rois.rb +8 -0
  297. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_rois.rb +26 -0
  298. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_text_rois.rb +8 -0
  299. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_video_rois.rb +8 -0
  300. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_image_rois.rb +117 -0
  301. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_rois.rb +23 -0
  302. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_text_rois.rb +84 -0
  303. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_video_rois.rb +35 -0
  304. data/lib/User_Lib/rois/stb/spectrum/spectrum_black_rois.rb +9 -0
  305. data/lib/User_Lib/rois/stb/spectrum/spectrum_color_rois.rb +17 -0
  306. data/lib/User_Lib/rois/stb/spectrum/spectrum_image_rois.rb +49 -0
  307. data/lib/User_Lib/rois/stb/spectrum/spectrum_rois.rb +23 -0
  308. data/lib/User_Lib/rois/stb/spectrum/spectrum_text_rois.rb +51 -0
  309. data/lib/User_Lib/rois/stb/spectrum/spectrum_video_rois.rb +9 -0
  310. data/lib/User_Lib/rois/stb/stb_black_rois.rb +9 -0
  311. data/lib/User_Lib/rois/stb/stb_color_rois.rb +9 -0
  312. data/lib/User_Lib/rois/stb/stb_image_rois.rb +9 -0
  313. data/lib/User_Lib/rois/stb/stb_rois.rb +23 -0
  314. data/lib/User_Lib/rois/stb/stb_text_rois.rb +9 -0
  315. data/lib/User_Lib/rois/stb/stb_video_rois.rb +9 -0
  316. data/lib/User_Lib/rois/template.txt +23 -0
  317. data/lib/User_Lib/rois/text_rois.rb +36 -0
  318. data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_black_rois.rb +7 -0
  319. data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_color_rois.rb +9 -0
  320. data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_image_rois.rb +7 -0
  321. data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_rois.rb +23 -0
  322. data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_text_rois.rb +9 -0
  323. data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_video_rois.rb +7 -0
  324. data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_black_rois.rb +7 -0
  325. data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_color_rois.rb +7 -0
  326. data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_image_rois.rb +7 -0
  327. data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_rois.rb +23 -0
  328. data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_text_rois.rb +7 -0
  329. data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_video_rois.rb +7 -0
  330. data/lib/User_Lib/rois/tivo/tivo_black_rois.rb +7 -0
  331. data/lib/User_Lib/rois/tivo/tivo_color_rois.rb +7 -0
  332. data/lib/User_Lib/rois/tivo/tivo_image_rois.rb +7 -0
  333. data/lib/User_Lib/rois/tivo/tivo_rois.rb +23 -0
  334. data/lib/User_Lib/rois/tivo/tivo_text_rois.rb +7 -0
  335. data/lib/User_Lib/rois/tivo/tivo_video_rois.rb +7 -0
  336. data/lib/User_Lib/rois/video_rois.rb +33 -0
  337. data/lib/User_Lib/screen/apple_tv/apple_tv_dvr.rb +25 -0
  338. data/lib/User_Lib/screen/apple_tv/apple_tv_guide.rb +25 -0
  339. data/lib/User_Lib/screen/apple_tv/apple_tv_library.rb +25 -0
  340. data/lib/User_Lib/screen/apple_tv/apple_tv_live_tv.rb +17 -0
  341. data/lib/User_Lib/screen/apple_tv/apple_tv_login.rb +24 -0
  342. data/lib/User_Lib/screen/apple_tv/apple_tv_main_menu.rb +25 -0
  343. data/lib/User_Lib/screen/apple_tv/apple_tv_mini_guide.rb +25 -0
  344. data/lib/User_Lib/screen/apple_tv/apple_tv_movies.rb +25 -0
  345. data/lib/User_Lib/screen/apple_tv/apple_tv_on_demand.rb +25 -0
  346. data/lib/User_Lib/screen/apple_tv/apple_tv_parental_controls.rb +25 -0
  347. data/lib/User_Lib/screen/apple_tv/apple_tv_product_page.rb +25 -0
  348. data/lib/User_Lib/screen/apple_tv/apple_tv_screen.rb +23 -0
  349. data/lib/User_Lib/screen/apple_tv/apple_tv_search.rb +31 -0
  350. data/lib/User_Lib/screen/apple_tv/apple_tv_settings.rb +25 -0
  351. data/lib/User_Lib/screen/apple_tv/apple_tv_tv_shows.rb +25 -0
  352. data/lib/User_Lib/screen/apple_tv/apple_tv_video_store.rb +25 -0
  353. data/lib/User_Lib/screen/dta/dta_dvr.rb +26 -0
  354. data/lib/User_Lib/screen/dta/dta_guide.rb +26 -0
  355. data/lib/User_Lib/screen/dta/dta_library.rb +26 -0
  356. data/lib/User_Lib/screen/dta/dta_live_tv.rb +26 -0
  357. data/lib/User_Lib/screen/dta/dta_log_in.rb +26 -0
  358. data/lib/User_Lib/screen/dta/dta_main_menu.rb +26 -0
  359. data/lib/User_Lib/screen/dta/dta_mini_guide.rb +26 -0
  360. data/lib/User_Lib/screen/dta/dta_movies.rb +26 -0
  361. data/lib/User_Lib/screen/dta/dta_on_demand.rb +26 -0
  362. data/lib/User_Lib/screen/dta/dta_parental_controls.rb +26 -0
  363. data/lib/User_Lib/screen/dta/dta_product_page.rb +26 -0
  364. data/lib/User_Lib/screen/dta/dta_screen.rb +24 -0
  365. data/lib/User_Lib/screen/dta/dta_search.rb +26 -0
  366. data/lib/User_Lib/screen/dta/dta_settings.rb +26 -0
  367. data/lib/User_Lib/screen/dta/dta_tv_shows.rb +26 -0
  368. data/lib/User_Lib/screen/dta/dta_video_store.rb +26 -0
  369. data/lib/User_Lib/screen/mdn/mdn_dvr.rb +26 -0
  370. data/lib/User_Lib/screen/mdn/mdn_guide.rb +26 -0
  371. data/lib/User_Lib/screen/mdn/mdn_library.rb +26 -0
  372. data/lib/User_Lib/screen/mdn/mdn_live_tv.rb +26 -0
  373. data/lib/User_Lib/screen/mdn/mdn_log_in.rb +26 -0
  374. data/lib/User_Lib/screen/mdn/mdn_main_menu.rb +26 -0
  375. data/lib/User_Lib/screen/mdn/mdn_mini_guide.rb +26 -0
  376. data/lib/User_Lib/screen/mdn/mdn_movies.rb +26 -0
  377. data/lib/User_Lib/screen/mdn/mdn_on_demand.rb +26 -0
  378. data/lib/User_Lib/screen/mdn/mdn_parental_controls.rb +26 -0
  379. data/lib/User_Lib/screen/mdn/mdn_product_page.rb +26 -0
  380. data/lib/User_Lib/screen/mdn/mdn_screen.rb +24 -0
  381. data/lib/User_Lib/screen/mdn/mdn_search.rb +26 -0
  382. data/lib/User_Lib/screen/mdn/mdn_settings.rb +26 -0
  383. data/lib/User_Lib/screen/mdn/mdn_tv_shows.rb +26 -0
  384. data/lib/User_Lib/screen/mdn/mdn_video_store.rb +26 -0
  385. data/lib/User_Lib/screen/mobile/android/android_devices.rb +35 -0
  386. data/lib/User_Lib/screen/mobile/android/android_dvr.rb +337 -0
  387. data/lib/User_Lib/screen/mobile/android/android_favorites.rb +164 -0
  388. data/lib/User_Lib/screen/mobile/android/android_guide.rb +256 -0
  389. data/lib/User_Lib/screen/mobile/android/android_live_tv.rb +372 -0
  390. data/lib/User_Lib/screen/mobile/android/android_login.rb +111 -0
  391. data/lib/User_Lib/screen/mobile/android/android_main_menu.rb +53 -0
  392. data/lib/User_Lib/screen/mobile/android/android_on_demand.rb +402 -0
  393. data/lib/User_Lib/screen/mobile/android/android_parental_controls.rb +73 -0
  394. data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_dvr.rb +31 -0
  395. data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_guide.rb +39 -0
  396. data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_live_tv.rb +104 -0
  397. data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_main_menu.rb +27 -0
  398. data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_on_demand.rb +35 -0
  399. data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_product_page.rb +7 -0
  400. data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_search.rb +26 -0
  401. data/lib/User_Lib/screen/mobile/android/android_privacy_legal.rb +54 -0
  402. data/lib/User_Lib/screen/mobile/android/android_product_page.rb +484 -0
  403. data/lib/User_Lib/screen/mobile/android/android_screen.rb +56 -0
  404. data/lib/User_Lib/screen/mobile/android/android_search.rb +39 -0
  405. data/lib/User_Lib/screen/mobile/android/android_settings.rb +90 -0
  406. data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_dvr.rb +58 -0
  407. data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_guide.rb +24 -0
  408. data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_live_tv.rb +24 -0
  409. data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_main_menu.rb +19 -0
  410. data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_on_demand.rb +16 -0
  411. data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_product_page.rb +45 -0
  412. data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_search.rb +14 -0
  413. data/lib/User_Lib/screen/mobile/devices_mobile.rb +53 -0
  414. data/lib/User_Lib/screen/mobile/dvr_mobile.rb +5 -0
  415. data/lib/User_Lib/screen/mobile/favorites_mobile.rb +5 -0
  416. data/lib/User_Lib/screen/mobile/guide_mobile.rb +5 -0
  417. data/lib/User_Lib/screen/mobile/ios/ios_devices.rb +43 -0
  418. data/lib/User_Lib/screen/mobile/ios/ios_dvr.rb +231 -0
  419. data/lib/User_Lib/screen/mobile/ios/ios_favorites.rb +79 -0
  420. data/lib/User_Lib/screen/mobile/ios/ios_guide.rb +53 -0
  421. data/lib/User_Lib/screen/mobile/ios/ios_live_tv.rb +413 -0
  422. data/lib/User_Lib/screen/mobile/ios/ios_login.rb +76 -0
  423. data/lib/User_Lib/screen/mobile/ios/ios_main_menu.rb +38 -0
  424. data/lib/User_Lib/screen/mobile/ios/ios_on_demand.rb +371 -0
  425. data/lib/User_Lib/screen/mobile/ios/ios_parental_controls.rb +104 -0
  426. data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_dvr.rb +14 -0
  427. data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_live_tv.rb +36 -0
  428. data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_main_menu.rb +7 -0
  429. data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_on_demand.rb +7 -0
  430. data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_search.rb +13 -0
  431. data/lib/User_Lib/screen/mobile/ios/ios_privacy_legal.rb +56 -0
  432. data/lib/User_Lib/screen/mobile/ios/ios_product_page.rb +441 -0
  433. data/lib/User_Lib/screen/mobile/ios/ios_screen.rb +60 -0
  434. data/lib/User_Lib/screen/mobile/ios/ios_search.rb +145 -0
  435. data/lib/User_Lib/screen/mobile/ios/ios_settings.rb +34 -0
  436. data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_live_tv.rb +34 -0
  437. data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_main_menu.rb +7 -0
  438. data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_on_demand.rb +7 -0
  439. data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_search.rb +13 -0
  440. data/lib/User_Lib/screen/mobile/live_tv_mobile.rb +73 -0
  441. data/lib/User_Lib/screen/mobile/login_mobile.rb +5 -0
  442. data/lib/User_Lib/screen/mobile/main_menu_mobile.rb +83 -0
  443. data/lib/User_Lib/screen/mobile/mobile_screen.rb +232 -0
  444. data/lib/User_Lib/screen/mobile/on_demand_mobile.rb +70 -0
  445. data/lib/User_Lib/screen/mobile/parental_controls_mobile.rb +5 -0
  446. data/lib/User_Lib/screen/mobile/privacy_legal_mobile.rb +5 -0
  447. data/lib/User_Lib/screen/mobile/product_page_mobile.rb +5 -0
  448. data/lib/User_Lib/screen/mobile/search_mobile.rb +5 -0
  449. data/lib/User_Lib/screen/mobile/settings_mobile.rb +33 -0
  450. data/lib/User_Lib/screen/passport/passport_dvr.rb +25 -0
  451. data/lib/User_Lib/screen/passport/passport_guide.rb +37 -0
  452. data/lib/User_Lib/screen/passport/passport_library.rb +25 -0
  453. data/lib/User_Lib/screen/passport/passport_live_tv.rb +17 -0
  454. data/lib/User_Lib/screen/passport/passport_main_menu.rb +25 -0
  455. data/lib/User_Lib/screen/passport/passport_mini_guide.rb +25 -0
  456. data/lib/User_Lib/screen/passport/passport_movies.rb +25 -0
  457. data/lib/User_Lib/screen/passport/passport_on_demand.rb +25 -0
  458. data/lib/User_Lib/screen/passport/passport_parental_controls.rb +25 -0
  459. data/lib/User_Lib/screen/passport/passport_product_page.rb +25 -0
  460. data/lib/User_Lib/screen/passport/passport_screen.rb +23 -0
  461. data/lib/User_Lib/screen/passport/passport_search.rb +25 -0
  462. data/lib/User_Lib/screen/passport/passport_settings.rb +25 -0
  463. data/lib/User_Lib/screen/passport/passport_tv_shows.rb +25 -0
  464. data/lib/User_Lib/screen/passport/passport_video_store.rb +25 -0
  465. data/lib/User_Lib/screen/roku/brs/roku_guide_brs.rb +12 -0
  466. data/lib/User_Lib/screen/roku/brs/roku_home_brs.rb +12 -0
  467. data/lib/User_Lib/screen/roku/brs/roku_live_tv_brs.rb +12 -0
  468. data/lib/User_Lib/screen/roku/brs/roku_login_brs.rb +103 -0
  469. data/lib/User_Lib/screen/roku/brs/roku_main_menu_brs.rb +46 -0
  470. data/lib/User_Lib/screen/roku/brs/roku_on_demand_brs.rb +12 -0
  471. data/lib/User_Lib/screen/roku/brs/roku_product_page_brs.rb +12 -0
  472. data/lib/User_Lib/screen/roku/brs/roku_screen_brs.rb +9 -0
  473. data/lib/User_Lib/screen/roku/brs/roku_search_brs.rb +12 -0
  474. data/lib/User_Lib/screen/roku/brs/roku_settings_brs.rb +42 -0
  475. data/lib/User_Lib/screen/roku/brs/roku_watch_later_brs.rb +12 -0
  476. data/lib/User_Lib/screen/roku/brs/roku_welcome_brs.rb +12 -0
  477. data/lib/User_Lib/screen/roku/roku_dvr.rb +7 -0
  478. data/lib/User_Lib/screen/roku/roku_guide.rb +590 -0
  479. data/lib/User_Lib/screen/roku/roku_home.rb +346 -0
  480. data/lib/User_Lib/screen/roku/roku_library.rb +26 -0
  481. data/lib/User_Lib/screen/roku/roku_live_tv.rb +210 -0
  482. data/lib/User_Lib/screen/roku/roku_login.rb +795 -0
  483. data/lib/User_Lib/screen/roku/roku_main_menu.rb +425 -0
  484. data/lib/User_Lib/screen/roku/roku_mini_guide.rb +7 -0
  485. data/lib/User_Lib/screen/roku/roku_on_demand.rb +479 -0
  486. data/lib/User_Lib/screen/roku/roku_product_page.rb +483 -0
  487. data/lib/User_Lib/screen/roku/roku_screen.rb +85 -0
  488. data/lib/User_Lib/screen/roku/roku_search.rb +229 -0
  489. data/lib/User_Lib/screen/roku/roku_settings.rb +304 -0
  490. data/lib/User_Lib/screen/roku/roku_watch_later.rb +51 -0
  491. data/lib/User_Lib/screen/roku/roku_welcome.rb +10 -0
  492. data/lib/User_Lib/screen/roku_tv/roku_tv_dvr.rb +14 -0
  493. data/lib/User_Lib/screen/roku_tv/roku_tv_guide.rb +14 -0
  494. data/lib/User_Lib/screen/roku_tv/roku_tv_home.rb +14 -0
  495. data/lib/User_Lib/screen/roku_tv/roku_tv_library.rb +14 -0
  496. data/lib/User_Lib/screen/roku_tv/roku_tv_live_tv.rb +14 -0
  497. data/lib/User_Lib/screen/roku_tv/roku_tv_login.rb +14 -0
  498. data/lib/User_Lib/screen/roku_tv/roku_tv_main_menu.rb +14 -0
  499. data/lib/User_Lib/screen/roku_tv/roku_tv_mini_guide.rb +14 -0
  500. data/lib/User_Lib/screen/roku_tv/roku_tv_on_demand.rb +26 -0
  501. data/lib/User_Lib/screen/roku_tv/roku_tv_product_page.rb +14 -0
  502. data/lib/User_Lib/screen/roku_tv/roku_tv_screen.rb +7 -0
  503. data/lib/User_Lib/screen/roku_tv/roku_tv_search.rb +14 -0
  504. data/lib/User_Lib/screen/roku_tv/roku_tv_settings.rb +14 -0
  505. data/lib/User_Lib/screen/roku_tv/roku_tv_watch_later.rb +14 -0
  506. data/lib/User_Lib/screen/roku_tv/roku_tv_welcome.rb +14 -0
  507. data/lib/User_Lib/screen/samsung_tv/samsung_tv_dvr.rb +24 -0
  508. data/lib/User_Lib/screen/samsung_tv/samsung_tv_guide.rb +24 -0
  509. data/lib/User_Lib/screen/samsung_tv/samsung_tv_library.rb +24 -0
  510. data/lib/User_Lib/screen/samsung_tv/samsung_tv_live_tv.rb +21 -0
  511. data/lib/User_Lib/screen/samsung_tv/samsung_tv_login.rb +13 -0
  512. data/lib/User_Lib/screen/samsung_tv/samsung_tv_main_menu.rb +64 -0
  513. data/lib/User_Lib/screen/samsung_tv/samsung_tv_mini_guide.rb +24 -0
  514. data/lib/User_Lib/screen/samsung_tv/samsung_tv_movies.rb +140 -0
  515. data/lib/User_Lib/screen/samsung_tv/samsung_tv_on_demand.rb +76 -0
  516. data/lib/User_Lib/screen/samsung_tv/samsung_tv_parental_controls.rb +24 -0
  517. data/lib/User_Lib/screen/samsung_tv/samsung_tv_product_page.rb +24 -0
  518. data/lib/User_Lib/screen/samsung_tv/samsung_tv_screen.rb +74 -0
  519. data/lib/User_Lib/screen/samsung_tv/samsung_tv_search.rb +29 -0
  520. data/lib/User_Lib/screen/samsung_tv/samsung_tv_settings.rb +189 -0
  521. data/lib/User_Lib/screen/samsung_tv/samsung_tv_tv_shows.rb +24 -0
  522. data/lib/User_Lib/screen/samsung_tv/samsung_tv_video_store.rb +24 -0
  523. data/lib/User_Lib/screen/sara/sara_dvr.rb +26 -0
  524. data/lib/User_Lib/screen/sara/sara_guide.rb +43 -0
  525. data/lib/User_Lib/screen/sara/sara_library.rb +26 -0
  526. data/lib/User_Lib/screen/sara/sara_live_tv.rb +26 -0
  527. data/lib/User_Lib/screen/sara/sara_log_in.rb +26 -0
  528. data/lib/User_Lib/screen/sara/sara_main_menu.rb +26 -0
  529. data/lib/User_Lib/screen/sara/sara_mini_guide.rb +26 -0
  530. data/lib/User_Lib/screen/sara/sara_movies.rb +26 -0
  531. data/lib/User_Lib/screen/sara/sara_on_demand.rb +26 -0
  532. data/lib/User_Lib/screen/sara/sara_parental_controls.rb +26 -0
  533. data/lib/User_Lib/screen/sara/sara_product_page.rb +26 -0
  534. data/lib/User_Lib/screen/sara/sara_screen.rb +24 -0
  535. data/lib/User_Lib/screen/sara/sara_search.rb +26 -0
  536. data/lib/User_Lib/screen/sara/sara_settings.rb +26 -0
  537. data/lib/User_Lib/screen/sara/sara_tv_shows.rb +26 -0
  538. data/lib/User_Lib/screen/sara/sara_video_store.rb +26 -0
  539. data/lib/User_Lib/screen/stb/iguide/iguide_devices.rb +10 -0
  540. data/lib/User_Lib/screen/stb/iguide/iguide_dvr.rb +10 -0
  541. data/lib/User_Lib/screen/stb/iguide/iguide_favorites.rb +10 -0
  542. data/lib/User_Lib/screen/stb/iguide/iguide_guide.rb +39 -0
  543. data/lib/User_Lib/screen/stb/iguide/iguide_home.rb +10 -0
  544. data/lib/User_Lib/screen/stb/iguide/iguide_library.rb +10 -0
  545. data/lib/User_Lib/screen/stb/iguide/iguide_live_tv.rb +59 -0
  546. data/lib/User_Lib/screen/stb/iguide/iguide_login.rb +10 -0
  547. data/lib/User_Lib/screen/stb/iguide/iguide_main_menu.rb +10 -0
  548. data/lib/User_Lib/screen/stb/iguide/iguide_mini_guide.rb +10 -0
  549. data/lib/User_Lib/screen/stb/iguide/iguide_movies.rb +10 -0
  550. data/lib/User_Lib/screen/stb/iguide/iguide_on_demand.rb +531 -0
  551. data/lib/User_Lib/screen/stb/iguide/iguide_parental_controls.rb +10 -0
  552. data/lib/User_Lib/screen/stb/iguide/iguide_privacy_legal.rb +10 -0
  553. data/lib/User_Lib/screen/stb/iguide/iguide_product_page.rb +10 -0
  554. data/lib/User_Lib/screen/stb/iguide/iguide_quick_menu.rb +7 -0
  555. data/lib/User_Lib/screen/stb/iguide/iguide_screen.rb +21 -0
  556. data/lib/User_Lib/screen/stb/iguide/iguide_search.rb +10 -0
  557. data/lib/User_Lib/screen/stb/iguide/iguide_settings.rb +10 -0
  558. data/lib/User_Lib/screen/stb/iguide/iguide_tv_shows.rb +10 -0
  559. data/lib/User_Lib/screen/stb/iguide/iguide_video_store.rb +10 -0
  560. data/lib/User_Lib/screen/stb/login_stb.rb +5 -0
  561. data/lib/User_Lib/screen/stb/odn/odn_dvr.rb +59 -0
  562. data/lib/User_Lib/screen/stb/odn/odn_favorites.rb +8 -0
  563. data/lib/User_Lib/screen/stb/odn/odn_guide.rb +177 -0
  564. data/lib/User_Lib/screen/stb/odn/odn_live_tv.rb +115 -0
  565. data/lib/User_Lib/screen/stb/odn/odn_login.rb +8 -0
  566. data/lib/User_Lib/screen/stb/odn/odn_main_menu.rb +175 -0
  567. data/lib/User_Lib/screen/stb/odn/odn_on_demand.rb +1170 -0
  568. data/lib/User_Lib/screen/stb/odn/odn_on_demand_kids.rb +23 -0
  569. data/lib/User_Lib/screen/stb/odn/odn_on_demand_left_menu.rb +180 -0
  570. data/lib/User_Lib/screen/stb/odn/odn_parental_controls.rb +9 -0
  571. data/lib/User_Lib/screen/stb/odn/odn_product_page.rb +8 -0
  572. data/lib/User_Lib/screen/stb/odn/odn_screen.rb +111 -0
  573. data/lib/User_Lib/screen/stb/odn/odn_search.rb +167 -0
  574. data/lib/User_Lib/screen/stb/odn/odn_settings.rb +142 -0
  575. data/lib/User_Lib/screen/stb/spectrum/spectrum_diagnostics.rb +27 -0
  576. data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/screen_spectrum_docsis.rb +12 -0
  577. data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_guide.rb +10 -0
  578. data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_main_menu.rb +10 -0
  579. data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_settings.rb +10 -0
  580. data/lib/User_Lib/screen/stb/spectrum/spectrum_dvr.rb +1781 -0
  581. data/lib/User_Lib/screen/stb/spectrum/spectrum_guide.rb +841 -0
  582. data/lib/User_Lib/screen/stb/spectrum/spectrum_library.rb +384 -0
  583. data/lib/User_Lib/screen/stb/spectrum/spectrum_live_tv.rb +259 -0
  584. data/lib/User_Lib/screen/stb/spectrum/spectrum_main_menu.rb +223 -0
  585. data/lib/User_Lib/screen/stb/spectrum/spectrum_mini_guide.rb +404 -0
  586. data/lib/User_Lib/screen/stb/spectrum/spectrum_movies.rb +420 -0
  587. data/lib/User_Lib/screen/stb/spectrum/spectrum_netflix.rb +37 -0
  588. data/lib/User_Lib/screen/stb/spectrum/spectrum_on_demand.rb +2137 -0
  589. data/lib/User_Lib/screen/stb/spectrum/spectrum_parental_controls.rb +528 -0
  590. data/lib/User_Lib/screen/stb/spectrum/spectrum_pay_per_view.rb +26 -0
  591. data/lib/User_Lib/screen/stb/spectrum/spectrum_product_page.rb +58 -0
  592. data/lib/User_Lib/screen/stb/spectrum/spectrum_screen.rb +48 -0
  593. data/lib/User_Lib/screen/stb/spectrum/spectrum_search.rb +92 -0
  594. data/lib/User_Lib/screen/stb/spectrum/spectrum_settings.rb +1657 -0
  595. data/lib/User_Lib/screen/stb/spectrum/spectrum_tv_shows.rb +1532 -0
  596. data/lib/User_Lib/screen/stb/spectrum/spectrum_video_store.rb +1598 -0
  597. data/lib/User_Lib/screen/stb/stb_screen.rb +7 -0
  598. data/lib/User_Lib/screen/tivo/tivo_dvr.rb +25 -0
  599. data/lib/User_Lib/screen/tivo/tivo_guide.rb +25 -0
  600. data/lib/User_Lib/screen/tivo/tivo_library.rb +25 -0
  601. data/lib/User_Lib/screen/tivo/tivo_live_tv.rb +17 -0
  602. data/lib/User_Lib/screen/tivo/tivo_login.rb +25 -0
  603. data/lib/User_Lib/screen/tivo/tivo_main_menu.rb +25 -0
  604. data/lib/User_Lib/screen/tivo/tivo_mini_guide.rb +25 -0
  605. data/lib/User_Lib/screen/tivo/tivo_movies.rb +25 -0
  606. data/lib/User_Lib/screen/tivo/tivo_on_demand.rb +25 -0
  607. data/lib/User_Lib/screen/tivo/tivo_parental_controls.rb +25 -0
  608. data/lib/User_Lib/screen/tivo/tivo_product_page.rb +25 -0
  609. data/lib/User_Lib/screen/tivo/tivo_screen.rb +20 -0
  610. data/lib/User_Lib/screen/tivo/tivo_search.rb +31 -0
  611. data/lib/User_Lib/screen/tivo/tivo_settings.rb +25 -0
  612. data/lib/User_Lib/screen/tivo/tivo_tv_shows.rb +25 -0
  613. data/lib/User_Lib/screen/tivo/tivo_video_store.rb +25 -0
  614. data/lib/config/ConfigParams.xml +96 -0
  615. data/lib/config/ImageROI.xml +45 -0
  616. data/lib/config/ROI.xml +150 -0
  617. data/lib/config/Userlog4j.xml +62 -0
  618. data/lib/config/schema-docs/mode.xsd +12 -0
  619. data/lib/config/schema-docs/processTestJobs.xsd +63 -0
  620. data/lib/config/schema-docs/rackip.xsd +24 -0
  621. data/lib/copy_ref_images.rb +199 -0
  622. data/lib/copy_repo.rb +136 -0
  623. data/lib/diagnostics/conductor/conductor_checkup.tmc +24 -0
  624. data/lib/diagnostics/db/mad_db_check.tmc +56 -0
  625. data/lib/diagnostics/db/mas_db_checkup.tmc +24 -0
  626. data/lib/diagnostics/db/mas_db_checkup_gem.tmc +20 -0
  627. data/lib/diagnostics/db/mas_db_checkup_jar.tmc +50 -0
  628. data/lib/diagnostics/iguide/iguide_nvram_reset.tmc +23 -0
  629. data/lib/diagnostics/iguide/iguide_prepare_stb.tmc +33 -0
  630. data/lib/diagnostics/iguide/iguide_prepare_stb_and_health_check.tmc +63 -0
  631. data/lib/diagnostics/iguide/iguide_stb_health_check.tmc +54 -0
  632. data/lib/diagnostics/prepare_stb.tmc +30 -0
  633. data/lib/diagnostics/prepare_stb_and_health_check.tmc +56 -0
  634. data/lib/diagnostics/script_options/options_checkup.tmc +145 -0
  635. data/lib/diagnostics/server_components_check.tmc +62 -0
  636. data/lib/diagnostics/ssh/dncs_checkup.tmc +24 -0
  637. data/lib/diagnostics/ssh/mas_checkup.tmc +24 -0
  638. data/lib/diagnostics/stb_health_check.tmc +46 -0
  639. data/lib/diagnostics/stb_ip_check.tmc +120 -0
  640. data/lib/diagnostics/webservices/mas_rest_services_checkup.tmc +24 -0
  641. data/lib/diagnostics/webservices/mas_soap_services_checkup.tmc +24 -0
  642. data/lib/dsllib/common/dncs/dncs_utils.rb +449 -0
  643. data/lib/dsllib/common/mas_db/mas_conductor.rb +1328 -0
  644. data/lib/dsllib/common/mas_db/mas_db.rb +154 -0
  645. data/lib/dsllib/common/mas_db/mas_publish.rb +2349 -0
  646. data/lib/dsllib/common/mas_db/mas_rest_services.rb +75 -0
  647. data/lib/dsllib/common/mas_db/mas_soap_services.rb +540 -0
  648. data/lib/dsllib/common/mas_db/mas_utils.rb +422 -0
  649. data/lib/dsllib/common/remote_diagnostics/mdn_remote_diagnostics.rb +1335 -0
  650. data/lib/dsllib/common/remote_diagnostics/odn_web_server.rb +269 -0
  651. data/lib/dsllib/common/utils/excel_export.rb +273 -0
  652. data/lib/dsllib/common/utils/excel_module.rb +890 -0
  653. data/lib/dsllib/common/utils/server_components_utils.rb +130 -0
  654. data/lib/dsllib/common/utils/stb_health_check_utils.rb +92 -0
  655. data/lib/dsllib/common/utils/sword_utils.rb +393 -0
  656. data/lib/dsllib/common/utils/tmc_utils.rb +2944 -0
  657. data/lib/dsllib/common/utils/virtual_keyboard_navigator.rb +208 -0
  658. data/lib/dsllib/common/utils/virtual_keyboard_vp_navigator.rb +195 -0
  659. data/lib/dsllib/performance/DTA/roi.rb +214 -0
  660. data/lib/dsllib/performance/DTA/utils.rb +96 -0
  661. data/lib/dsllib/performance/iguide_concurrent_test/ROI.rb +236 -0
  662. data/lib/dsllib/performance/iguide_concurrent_test/utils.rb +533 -0
  663. data/lib/dsllib/performance/measure_tune.rb +438 -0
  664. data/lib/dsllib/performance/perf_lib.rb +660 -0
  665. data/lib/end_iteration.rb +4 -0
  666. data/lib/lib/data_services/channel.rb +39 -0
  667. data/lib/lib/data_services/data_services.rb +14 -0
  668. data/lib/lib/data_services/guide.rb +104 -0
  669. data/lib/lib/data_services/lineup.rb +114 -0
  670. data/lib/lib/data_services/program.rb +48 -0
  671. data/lib/lib/data_services/schedule.rb +18 -0
  672. data/lib/lib/data_services/splunk_connector.rb +135 -0
  673. data/lib/lib/data_services/splunk_data_reader.rb +77 -0
  674. data/lib/lib/element/element.rb +79 -0
  675. data/lib/lib/extensions/array_extensions.rb +32 -0
  676. data/lib/lib/extensions/datetime_extensions.rb +8 -0
  677. data/lib/lib/extensions/extensions.rb +51 -0
  678. data/lib/lib/extensions/file_extensions.rb +32 -0
  679. data/lib/lib/extensions/float_extensions.rb +32 -0
  680. data/lib/lib/extensions/integer_extensions.rb +39 -0
  681. data/lib/lib/extensions/nethttp_extensions.rb +11 -0
  682. data/lib/lib/extensions/object_extensions.rb +7 -0
  683. data/lib/lib/extensions/string_extensions.rb +35 -0
  684. data/lib/lib/helpers/tmc_helpers/csv_helper/csv_helper.rb +85 -0
  685. data/lib/lib/helpers/tmc_helpers/email_helper/email_helper.rb +71 -0
  686. data/lib/lib/helpers/tmc_helpers/http_helper/http_helper.rb +133 -0
  687. data/lib/lib/helpers/tmc_helpers/roi_helper/roi_helper.rb +17 -0
  688. data/lib/lib/helpers/tmc_helpers/snmp_helper/snmp_helper.rb +71 -0
  689. data/lib/lib/helpers/tmc_helpers/ssh_helper/ssh_helper.rb +337 -0
  690. data/lib/lib/helpers/tmc_helpers/tmc_helpers.rb +1260 -0
  691. data/lib/lib/keyboard/apple_tv/apple_tv_password_keyboard.rb +102 -0
  692. data/lib/lib/keyboard/apple_tv/apple_tv_search_keyboard.rb +103 -0
  693. data/lib/lib/keyboard/apple_tv/apple_tv_username_keyboard.rb +105 -0
  694. data/lib/lib/keyboard/keyboard.rb +504 -0
  695. data/lib/lib/keyboard/keyboard_layout.rb +51 -0
  696. data/lib/lib/keyboard/roku/roku_reset_pin_keyboard.rb +12 -0
  697. data/lib/lib/keyboard/roku/roku_rsg_search_keyboard.rb +67 -0
  698. data/lib/lib/keyboard/roku/roku_rsg_signin_keyboard.rb +106 -0
  699. data/lib/lib/keyboard/roku/roku_search_keyboard.rb +10 -0
  700. data/lib/lib/keyboard/roku/roku_signin_keyboard.rb +42 -0
  701. data/lib/lib/keyboard/samsung_tv/samsung_tv_search_keyboard.rb +50 -0
  702. data/lib/lib/keyboard/samsung_tv/samsung_tv_signin_keyboard.rb +52 -0
  703. data/lib/lib/keyboard/stb/odn/odn_on_demand_search_keyboard.rb +10 -0
  704. data/lib/lib/keyboard/stb/odn/odn_search_keyboard.rb +10 -0
  705. data/lib/lib/keyboard/stb/spectrum/spectrum_netflix_email_keyboard.rb +50 -0
  706. data/lib/lib/keyboard/stb/spectrum/spectrum_netflix_keyboard.rb +43 -0
  707. data/lib/lib/keyboard/stb/spectrum/spectrum_netflix_name_keyboard.rb +16 -0
  708. data/lib/lib/keyboard/stb/spectrum/spectrum_search_keyboard.rb +32 -0
  709. data/lib/lib/keyboard/tivo/tivo_password_keyboard.rb +0 -0
  710. data/lib/lib/keyboard/tivo/tivo_search_keyboard.rb +0 -0
  711. data/lib/lib/keyboard/tivo/tivo_username_keyboard.rb +0 -0
  712. data/lib/lib/keys/apple_tv/apple_tv_keys.rb +26 -0
  713. data/lib/lib/keys/base_keys.rb +14 -0
  714. data/lib/lib/keys/dta/dta_keys.rb +60 -0
  715. data/lib/lib/keys/mdn/mdn_keys.rb +60 -0
  716. data/lib/lib/keys/passport/passport_keys.rb +59 -0
  717. data/lib/lib/keys/roku/roku_keys.rb +31 -0
  718. data/lib/lib/keys/roku_tv/roku_tv_keys.rb +32 -0
  719. data/lib/lib/keys/samsung_tv/samsung_tv_keys.rb +58 -0
  720. data/lib/lib/keys/sara/sara_keys.rb +60 -0
  721. data/lib/lib/keys/stb/iguide/iguide_keys.rb +56 -0
  722. data/lib/lib/keys/stb/odn/odn_keys.rb +63 -0
  723. data/lib/lib/keys/stb/spectrum/spectrum_keys.rb +59 -0
  724. data/lib/lib/keys/stb/stb_keys.rb +13 -0
  725. data/lib/lib/keys/tivo/tivo_keys.rb +26 -0
  726. data/lib/lib/logger/multi_io.rb +14 -0
  727. data/lib/lib/logger/tmc_dut_logger.rb +251 -0
  728. data/lib/lib/logger/tmc_logger.rb +30 -0
  729. data/lib/lib/mixins/assignable.rb +19 -0
  730. data/lib/lib/mixins/can_have_special_methods.rb +50 -0
  731. data/lib/lib/mixins/enumish.rb +16 -0
  732. data/lib/lib/new_platform.rb +302 -0
  733. data/lib/lib/new_sub_platform.rb +90 -0
  734. data/lib/lib/platform/apple_tv/apple_tv.rb +33 -0
  735. data/lib/lib/platform/apple_tv/apple_tv_1080/apple_tv_1080.rb +54 -0
  736. data/lib/lib/platform/apple_tv/apple_tv_720/apple_tv_720.rb +14 -0
  737. data/lib/lib/platform/dta/dta.rb +35 -0
  738. data/lib/lib/platform/dta/dta_1080/dta_1080.rb +15 -0
  739. data/lib/lib/platform/dta/dta_720/dta_720.rb +15 -0
  740. data/lib/lib/platform/mdn/mdn.rb +35 -0
  741. data/lib/lib/platform/mdn/mdn_1080/mdn_1080.rb +15 -0
  742. data/lib/lib/platform/mdn/mdn_720/mdn_720.rb +15 -0
  743. data/lib/lib/platform/mobile/android/android.rb +23 -0
  744. data/lib/lib/platform/mobile/android/android_phone/android_phone.rb +23 -0
  745. data/lib/lib/platform/mobile/android/android_tablet/android_tablet.rb +23 -0
  746. data/lib/lib/platform/mobile/ios/ios.rb +23 -0
  747. data/lib/lib/platform/mobile/ios/ios_phone/ios_phone.rb +23 -0
  748. data/lib/lib/platform/mobile/ios/ios_tablet/ios_tablet.rb +23 -0
  749. data/lib/lib/platform/mobile/mobile.rb +102 -0
  750. data/lib/lib/platform/passport/passport.rb +41 -0
  751. data/lib/lib/platform/passport/passport1080/passport_1080.rb +15 -0
  752. data/lib/lib/platform/passport/passport_720/passport_720.rb +14 -0
  753. data/lib/lib/platform/platform.rb +884 -0
  754. data/lib/lib/platform/roku/roku.rb +96 -0
  755. data/lib/lib/platform/roku/roku_720/roku_720.rb +16 -0
  756. data/lib/lib/platform/roku_tv/roku_tv.rb +33 -0
  757. data/lib/lib/platform/roku_tv/roku_tv_1080/roku_tv_1080.rb +14 -0
  758. data/lib/lib/platform/roku_tv/roku_tv_720/roku_tv_720.rb +14 -0
  759. data/lib/lib/platform/samsung_tv/samsung_tv.rb +31 -0
  760. data/lib/lib/platform/samsung_tv/samsung_tv_1080/samsung_tv_1080.rb +14 -0
  761. data/lib/lib/platform/samsung_tv/samsung_tv_720/samsung_tv_720.rb +14 -0
  762. data/lib/lib/platform/sara/sara.rb +42 -0
  763. data/lib/lib/platform/sara/sara_1080/sara_1080.rb +15 -0
  764. data/lib/lib/platform/sara/sara_720/sara_720.rb +15 -0
  765. data/lib/lib/platform/stb/iguide/iguide.rb +18 -0
  766. data/lib/lib/platform/stb/iguide/iguide_1080/iguide_1080.rb +14 -0
  767. data/lib/lib/platform/stb/iguide/iguide_720/iguide_720.rb +14 -0
  768. data/lib/lib/platform/stb/odn/odn.rb +480 -0
  769. data/lib/lib/platform/stb/odn/odn_1080/odn_1080.rb +14 -0
  770. data/lib/lib/platform/stb/odn/odn_720/odn_720.rb +14 -0
  771. data/lib/lib/platform/stb/odn/odn_720/odn_720_moto/odn_720_moto.rb +14 -0
  772. data/lib/lib/platform/stb/odn/odn_720/odn_720_sa/odn_720_sa.rb +14 -0
  773. data/lib/lib/platform/stb/odn/odn_720/odn_720_samsung/odn_720_samsung.rb +14 -0
  774. data/lib/lib/platform/stb/spectrum/spectrum.rb +48 -0
  775. data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080.rb +14 -0
  776. data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis.rb +16 -0
  777. data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris.rb +15 -0
  778. data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax.rb +15 -0
  779. data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch.rb +15 -0
  780. data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace.rb +14 -0
  781. data/lib/lib/platform/stb/spectrum/spectrum_720/spectrum_720.rb +14 -0
  782. data/lib/lib/platform/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris.rb +15 -0
  783. data/lib/lib/platform/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax.rb +15 -0
  784. data/lib/lib/platform/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch.rb +15 -0
  785. data/lib/lib/platform/stb/stb.rb +93 -0
  786. data/lib/lib/platform/template.txt +16 -0
  787. data/lib/lib/platform/tivo/tivo.rb +28 -0
  788. data/lib/lib/platform/tivo/tivo_1080/tivo_1080.rb +15 -0
  789. data/lib/lib/platform/tivo/tivo_720/tivo_720.rb +14 -0
  790. data/lib/lib/platform/web/web.rb +51 -0
  791. data/lib/lib/platform_libs/roku/roku_controller.rb +254 -0
  792. data/lib/lib/prereqs/prereqs.rb +17 -0
  793. data/lib/lib/prereqs/prereqs_for_dut.rb +14 -0
  794. data/lib/lib/prereqs/prereqs_for_test.rb +14 -0
  795. data/lib/lib/remotes/remotes.rb +8 -0
  796. data/lib/lib/remotes/stb/spectrum/spectrum_remotes.rb +22 -0
  797. data/lib/lib/roi/black/black_roi.rb +125 -0
  798. data/lib/lib/roi/color/color_roi.rb +138 -0
  799. data/lib/lib/roi/image/image_roi.rb +187 -0
  800. data/lib/lib/roi/roi.rb +1064 -0
  801. data/lib/lib/roi/template_roi.txt +9 -0
  802. data/lib/lib/roi/text/text_roi.rb +187 -0
  803. data/lib/lib/roi/video/video_roi.rb +98 -0
  804. data/lib/lib/screen/screen.rb +183 -0
  805. data/lib/lib/screen/template.txt +7 -0
  806. data/lib/lib/screen/template_screen.txt +10 -0
  807. data/lib/lib/screens/apple_tv/apple_tv_screens.rb +44 -0
  808. data/lib/lib/screens/dta/dta_screens.rb +49 -0
  809. data/lib/lib/screens/mdn/mdn_screens.rb +49 -0
  810. data/lib/lib/screens/mobile/android/android_phone/android_phone_screens.rb +28 -0
  811. data/lib/lib/screens/mobile/android/android_screens.rb +40 -0
  812. data/lib/lib/screens/mobile/android/android_tablet/android_tablet_screens.rb +29 -0
  813. data/lib/lib/screens/mobile/ios/ios_phone/ios_phone_screens.rb +22 -0
  814. data/lib/lib/screens/mobile/ios/ios_screens.rb +39 -0
  815. data/lib/lib/screens/mobile/ios/ios_tablet/ios_tablet_screens.rb +20 -0
  816. data/lib/lib/screens/mobile/mobile_screens.rb +18 -0
  817. data/lib/lib/screens/passport/passport_screens.rb +42 -0
  818. data/lib/lib/screens/roku/roku_screens.rb +72 -0
  819. data/lib/lib/screens/roku_tv/roku_tv_screens.rb +43 -0
  820. data/lib/lib/screens/samsung_tv/samsung_tv_screens.rb +44 -0
  821. data/lib/lib/screens/sara/sara_screens.rb +49 -0
  822. data/lib/lib/screens/screens.rb +23 -0
  823. data/lib/lib/screens/stb/iguide/iguide_1080/iguide_1080_screens.rb +56 -0
  824. data/lib/lib/screens/stb/iguide/iguide_720/iguide_720_screens.rb +56 -0
  825. data/lib/lib/screens/stb/iguide/iguide_screens.rb +54 -0
  826. data/lib/lib/screens/stb/odn/odn_screens.rb +40 -0
  827. data/lib/lib/screens/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_screens.rb +18 -0
  828. data/lib/lib/screens/stb/spectrum/spectrum_screens.rb +48 -0
  829. data/lib/lib/screens/stb/stb_screens.rb +13 -0
  830. data/lib/lib/screens/template.txt +52 -0
  831. data/lib/lib/screens/tivo/tivo_screens.rb +44 -0
  832. data/lib/lib/selenium/appium/appium.rb +388 -0
  833. data/lib/lib/selenium/selenium.rb +466 -0
  834. data/lib/lib/selenium/webdriver/webdriver.rb +254 -0
  835. data/lib/lib/test_case/boilerplate/functional.rb +7 -0
  836. data/lib/lib/test_case/boilerplate/performance.rb +7 -0
  837. data/lib/lib/test_case/ci_test.rb +47 -0
  838. data/lib/lib/test_case/functional_test_case.rb +27 -0
  839. data/lib/lib/test_case/make_boilerplate.rb +32 -0
  840. data/lib/lib/test_case/monitoring/apple_monitor.rb +104 -0
  841. data/lib/lib/test_case/monitoring/base_monitor.rb +140 -0
  842. data/lib/lib/test_case/monitoring/dta_monitor.rb +53 -0
  843. data/lib/lib/test_case/monitoring/iguide_monitor.rb +72 -0
  844. data/lib/lib/test_case/monitoring/mdn_monitor.rb +28 -0
  845. data/lib/lib/test_case/monitoring/monitoring_test.rb +111 -0
  846. data/lib/lib/test_case/monitoring/odn_monitor.rb +137 -0
  847. data/lib/lib/test_case/monitoring/passport_monitor.rb +50 -0
  848. data/lib/lib/test_case/monitoring/report_monitor.rb +178 -0
  849. data/lib/lib/test_case/monitoring/roku_monitor.rb +102 -0
  850. data/lib/lib/test_case/monitoring/sara_monitor.rb +33 -0
  851. data/lib/lib/test_case/monitoring/spec_monitor.rb +154 -0
  852. data/lib/lib/test_case/performance_test_case.rb +29 -0
  853. data/lib/lib/test_case/test_case.rb +1055 -0
  854. data/lib/lib/test_case/test_error.rb +29 -0
  855. data/lib/lib/test_case/test_exception.rb +9 -0
  856. data/lib/lib/test_case/test_status.rb +39 -0
  857. data/lib/lib/test_case/test_step.rb +156 -0
  858. data/lib/lib/test_case/test_trace.rb +80 -0
  859. data/lib/lib/test_data.rb +222 -0
  860. data/lib/lib/test_wrapper.rb +146 -0
  861. data/lib/misc/get_latest_android.sh +14 -0
  862. data/lib/misc/get_latest_ios.sh +14 -0
  863. data/lib/package-lock.json +3 -0
  864. data/lib/run_test.rb +4 -0
  865. data/lib/script_validator.rb +48 -0
  866. data/lib/syntax_eval.rb +151 -0
  867. data/lib/tools/convert_old_scripts.rb +100 -0
  868. data/lib/tools/find_duplicate_rois.rb +27 -0
  869. data/lib/tools/roku/inspector.rb +130 -0
  870. data/lib/tools/syntax_checker.rb +83 -0
  871. data/lib/upload_ref_images.rb +255 -0
  872. metadata +912 -0
@@ -0,0 +1,96 @@
1
+ require './lib/platform/platform'
2
+ require './lib/screens/roku/roku_screens'
3
+ require './lib/rois/roku/roku_rois'
4
+ require './lib/platform_libs/roku/roku_controller'
5
+ require './lib/keys/roku/roku_keys'
6
+
7
+ # Roku adds to or modifies Platform with Roku-specific functionality
8
+
9
+ class Roku < Platform
10
+
11
+ # Public: Initializes a Roku.
12
+ def initialize(*args)
13
+ super(*args)
14
+ @screens = RokuScreens.new(self)
15
+ @roi = RokuRois.new(self)
16
+ set_keys(RokuKeys.new)
17
+ end
18
+
19
+ # Public: Ensures device is on and can nav to home screen.
20
+ #
21
+ # Returns a Boolean true if the device was initialized, otherwise false.
22
+ def init?
23
+ super do
24
+ if has_power?
25
+ # exit to the home screen
26
+ 2.times { press_key.MENU(sleep_time: 2.sec) }
27
+ return false unless screens.home.displayed?(timeout: 10.sec)
28
+ else
29
+ # device was powered off. power on and wait up to 2 mins for "No Signal" to go away.
30
+ power_on
31
+ return false unless roi.text.no_input_signal.wait_until_not_displayed?(2.min)
32
+ return false unless screens.home.displayed?(timeout: 2.min)
33
+ end
34
+ # leaving incase we need it back
35
+ # start = Time.now
36
+ # loop do
37
+ # return false if (Time.now - start) > 180 # timeout 3 mins
38
+ # if roi.image.respond_to?("#{app_slot_roi}_1")
39
+ # if roi.image.send("#{app_slot_roi}_1").displayed?
40
+ # press_key.SELECT(sleep_time: 2.sec)
41
+ # break
42
+ # elsif roi.image.send("#{app_slot_roi}_2").displayed?
43
+ # press_key.ARROW_RIGHT(sleep_time: 2.sec)
44
+ # press_key.SELECT(sleep_time: 2.sec)
45
+ # break
46
+ # elsif roi.image.send("#{app_slot_roi}_3").displayed?
47
+ # #elsif roi.image.dev_app_slot_3.displayed?
48
+ # 2.times { press_key.ARROW_RIGHT(sleep_time: 2.sec) }
49
+ # press_key.SELECT(sleep_time: 2.sec)
50
+ # break
51
+ # end
52
+ # elsif roi.image.send(app_slot_roi).displayed?
53
+ # press_key.SELECT(sleep_time: 2.sec)
54
+ # break
55
+ # end
56
+ # press_key.ARROW_DOWN(sleep_time: 2.sec)
57
+ # end
58
+ # if screens.home.is_spectrum_loading_screen_displayed?
59
+ # # wait for loading screen to go away
60
+ # return false unless screens.home.wait_till_loading_screen_not_displayed?(30.sec)
61
+ # end
62
+ # if screens.home.is_spectrum_launch_screen_displayed?
63
+ # # wait for launch screen to go away
64
+ # return false unless screens.home.wait_till_launch_screen_not_displayed?(30.sec)
65
+ # end
66
+ # if roi.text.welcome_screen_text.displayed?
67
+ # # dismiss welcome screen
68
+ # press_key.SELECT(sleep_time: 3.sec)
69
+ # return false unless roi.text.welcome_screen_text.wait_until_not_displayed?(30.sec)
70
+ # end
71
+ # if screens.login.is_username_page_displayed?
72
+ # # sign in
73
+ # return false unless screens.login.login?
74
+ # end
75
+ true
76
+ end
77
+ end
78
+
79
+ # Public: Gets the controller.
80
+ #
81
+ # Returns the RokuController instance.
82
+ def controller
83
+ if @controller.nil?
84
+ @controller = RokuController.new(:dut => self)
85
+ end
86
+ @controller
87
+ end
88
+
89
+ # Public: Gets the device software version.
90
+ #
91
+ # Returns the String software version.
92
+ def software_version
93
+ super || @test_case.options[:current_roku_version] || '2.0.34'
94
+ end
95
+
96
+ end
@@ -0,0 +1,16 @@
1
+ require './lib/platform/roku/roku'
2
+ require './lib/screens/roku/roku_screens'
3
+ require './lib/rois/roku/roku_720/roku_720_rois'
4
+
5
+ # Roku 720 adds to or modifies the Roku platform with Roku 720p-specific functionality
6
+
7
+ class Roku720 < Roku
8
+
9
+ # Public: Initializes a Roku 720p.
10
+ def initialize(*args)
11
+ super(*args)
12
+ # @screens = Roku720Screens.new(self) # if ever needed...
13
+ @roi = Roku720Rois.new(self)
14
+ end
15
+
16
+ end
@@ -0,0 +1,33 @@
1
+ require './lib/platform/platform'
2
+ require './lib/screens/roku_tv/roku_tv_screens'
3
+ require './lib/rois/roku_tv/roku_tv_rois'
4
+ require './lib/keys/roku_tv/roku_tv_keys'
5
+
6
+ # Adds to or modifies the platform with RokuTv-specific functionality.
7
+
8
+ class RokuTv < Platform
9
+
10
+ # Public: Initializes an Roku TV device.
11
+ def initialize(*args)
12
+ super(*args)
13
+ @screens = RokuTvScreens.new(self)
14
+ @roi = RokuTvRois.new(self)
15
+ set_keys(RokuTvKeys.new)
16
+ end
17
+
18
+ # Public: Initializes the Roku TV and brings it to the Live TV screen.
19
+ #
20
+ # Returns a Boolean true if the device was initialized, otherwise false.
21
+ def init?
22
+ super do
23
+ logger.warn('INIT NOT IMPLEMENTED')
24
+ true
25
+ #screens.main_menu.navigate_to_samsungApps
26
+ #2.times { press_key.ARROW_RIGHT(:sleep_time => 2.sec) }
27
+ #press_key.ARROW_DOWN(:sleep_time => 2.sec)
28
+ #press_key.SELECT
29
+ #roi.text.livetv_text.wait_until_displayed?(25.sec) # returns this
30
+ end
31
+ end
32
+
33
+ end
@@ -0,0 +1,14 @@
1
+ require './lib/platform/roku_tv/roku_tv'
2
+ require './lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_rois'
3
+
4
+ # Adds to or modifies the RokuTv platform with 1080p-specific functionality.
5
+
6
+ class RokuTv1080 < RokuTv
7
+
8
+ # Public: Initializes an RokuTv 1080p device.
9
+ def initialize(*args)
10
+ super(*args)
11
+ @roi = RokuTv1080Rois.new(self)
12
+ end
13
+
14
+ end
@@ -0,0 +1,14 @@
1
+ require './lib/platform/roku_tv/roku_tv'
2
+ require './lib/rois/roku_tv/roku_tv_720/roku_tv_720_rois'
3
+
4
+ # Adds to or modifies the RokuTv platform with 720p-specific functionality.
5
+
6
+ class RokuTv720 < RokuTv
7
+
8
+ # Public: Initializes an RokuTv 720p device.
9
+ def initialize(*args)
10
+ super(*args)
11
+ @roi = RokuTv720Rois.new(self)
12
+ end
13
+
14
+ end
@@ -0,0 +1,31 @@
1
+ require './lib/platform/platform'
2
+ require './lib/screens/samsung_tv/samsung_tv_screens'
3
+ require './lib/rois/samsung_tv/samsung_tv_rois'
4
+ require './lib/keys/samsung_tv/samsung_tv_keys'
5
+
6
+ # Adds to or modifies the platform with Samsung TV-specific functionality.
7
+
8
+ class SamsungTv < Platform
9
+
10
+ # Public: Initializes a Samsung TV device.
11
+ def initialize(*args)
12
+ super(*args)
13
+ @screens = SamsungTvScreens.new(self)
14
+ @roi = SamsungTvRois.new(self)
15
+ set_keys(SamsungTvKeys.new)
16
+ end
17
+
18
+ # Public: Initializes the Samsung TV and brings it to the Live TV screen.
19
+ #
20
+ # Returns a Boolean true if the device was initialized, otherwise false.
21
+ def init?
22
+ super do
23
+ screens.main_menu.navigate_to_samsungApps
24
+ 2.times { press_key.ARROW_RIGHT(:sleep_time => 2.sec) }
25
+ press_key.ARROW_DOWN(:sleep_time => 2.sec)
26
+ press_key.SELECT
27
+ roi.text.livetv_text.wait_until_displayed?(25.sec) # returns this
28
+ end
29
+ end
30
+
31
+ end
@@ -0,0 +1,14 @@
1
+ require './lib/platform/samsung_tv/samsung_tv'
2
+ require './lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_rois'
3
+
4
+ # Adds to or modifies the Samsung TV platform with 1080p-specific functionality.
5
+
6
+ class SamsungTv1080 < SamsungTv
7
+
8
+ # Public: Initializes a Samsung TV 1080p device.
9
+ def initialize(*args)
10
+ super(*args)
11
+ @roi = SamsungTv1080Rois.new(self)
12
+ end
13
+
14
+ end
@@ -0,0 +1,14 @@
1
+ require './lib/platform/samsung_tv/samsung_tv'
2
+ require './lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_rois'
3
+
4
+ # Adds to or modifies the Samsung TV platform with 720p-specific functionality.
5
+
6
+ class SamsungTv720 < SamsungTv
7
+
8
+ # Public: Initializes a Samsung TV 720p device.
9
+ def initialize(*args)
10
+ super(*args)
11
+ @roi = SamsungTv720Rois.new(self)
12
+ end
13
+
14
+ end
@@ -0,0 +1,42 @@
1
+
2
+ require './lib/platform/platform'
3
+ require './lib/screens/sara/sara_screens'
4
+ require './lib/rois/sara/sara_rois'
5
+ require './lib/keys/sara/sara_keys'
6
+
7
+ # Adds to or modifies the platform with Sara-specific functionality.
8
+
9
+ class Sara < Platform
10
+
11
+ # Public: Initializes a Sara device.
12
+ def initialize(*args)
13
+ super(*args)
14
+ @screens = SaraScreens.new(self)
15
+ @roi = SaraRois.new(self)
16
+ set_keys(SaraKeys.new)
17
+ end
18
+
19
+ # Public: Initializes the Sara and brings it to the Live TV screen.
20
+ #
21
+ # Returns a Boolean true if the device was initialized, otherwise false.
22
+ def init?
23
+ super do
24
+ tries = 2
25
+ count = 0
26
+ while tries > count do
27
+ if has_power?
28
+ return true
29
+ elsif power_on
30
+ sleep(2000)
31
+ #do nothing
32
+ end
33
+ end
34
+
35
+ if has_power?
36
+ return true
37
+ else
38
+ return false
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,15 @@
1
+
2
+ require './lib/platform/sara/sara'
3
+ require './lib/rois/sara/sara_1080/sara_1080_rois'
4
+
5
+ # Adds to or modifies the Sara platform with 1080p-specific functionality.
6
+
7
+ class Sara1080 < Sara
8
+
9
+ # Public: Initializes an Sara 1080p device.
10
+ def initialize(*args)
11
+ super(*args)
12
+ @roi = Sara1080Rois.new(self)
13
+ end
14
+
15
+ end
@@ -0,0 +1,15 @@
1
+
2
+ require './lib/platform/sara/sara'
3
+ require './lib/rois/sara/sara_720/sara_720_rois'
4
+
5
+ # Adds to or modifies the Sara platform with 720p-specific functionality.
6
+
7
+ class Sara720 < Sara
8
+
9
+ # Public: Initializes an Sara 720p device.
10
+ def initialize(*args)
11
+ super(*args)
12
+ @roi = Sara720Rois.new(self)
13
+ end
14
+
15
+ end
@@ -0,0 +1,18 @@
1
+ require './lib/platform/stb/stb'
2
+ require './lib/screens/stb/iguide/iguide_screens'
3
+ require './lib/rois/stb/iguide/iguide_rois'
4
+ require './lib/keys/stb/iguide/iguide_keys'
5
+
6
+ # Adds to or modifies the Stb platform with Iguide-specific functionality.
7
+
8
+ class Iguide < Stb
9
+
10
+ # Public: Initializes Iguide. NOT FOR USE IN TESTS.
11
+ def initialize(*args)
12
+ super(*args)
13
+ @screens = IguideScreens.new(self)
14
+ @roi = IguideRois.new(self)
15
+ set_keys(IguideKeys.new)
16
+ end
17
+
18
+ end
@@ -0,0 +1,14 @@
1
+ require './lib/platform/stb/iguide/iguide'
2
+ require './lib/rois/stb/iguide/iguide_1080/iguide_1080_rois'
3
+
4
+ # Adds to or modifies the Iguide platform with Iguide1080-specific functionality.
5
+
6
+ class Iguide1080 < Iguide
7
+
8
+ # Public: Initializes Iguide1080. NOT FOR USE IN TESTS.
9
+ def initialize(*args)
10
+ super(*args)
11
+ @roi = Iguide1080Rois.new(self)
12
+ end
13
+
14
+ end
@@ -0,0 +1,14 @@
1
+ require './lib/platform/stb/iguide/iguide'
2
+ require './lib/rois/stb/iguide/iguide_720/iguide_720_rois'
3
+
4
+ # Adds to or modifies the Iguide platform with Iguide720-specific functionality.
5
+
6
+ class Iguide720 < Iguide
7
+
8
+ # Public: Initializes Iguide720. NOT FOR USE IN TESTS.
9
+ def initialize(*args)
10
+ super(*args)
11
+ @roi = Iguide720Rois.new(self)
12
+ end
13
+
14
+ end
@@ -0,0 +1,480 @@
1
+ require './lib/platform/stb/stb'
2
+ require './lib/screens/stb/odn/odn_screens'
3
+ require './lib/rois/stb/odn/odn_rois'
4
+ require './lib/keys/stb/odn/odn_keys'
5
+
6
+ # Adds to or modifies the Stb platform with Odn-specific functionality.
7
+
8
+ class Odn < Stb
9
+
10
+ def initialize(*args)
11
+ super(*args)
12
+ @screens = OdnScreens.new(self)
13
+ @roi = OdnRois.new(self)
14
+ set_keys(OdnKeys.new)
15
+ end
16
+
17
+ # Public: Initializes the Spectrum STB and brings it to the Live TV screen.
18
+ #
19
+ # Returns a Boolean true if the device was initialized, otherwise false.
20
+ def init?
21
+ if super
22
+ press_key.EXIT(:sleep_time => 3.sec) # exit the banner which prevents us from doing some operations
23
+ true
24
+ else
25
+ false
26
+ end
27
+ end
28
+
29
+ # Public: get current channel number (string) from the guide
30
+ #
31
+ # returns current channel number (string)
32
+ def get_channel_number_from_guide()
33
+ fail("Failed to launch guide") unless screens.guide.navigate?
34
+ current_channel_number = screens.guide.get_current_channel_number()
35
+ press_key.EXIT # exit from the guide
36
+ current_channel_number
37
+ end
38
+
39
+ # Public: get current channel number (string) from the info banner
40
+ #
41
+ # returns current channel number (string)
42
+ def get_channel_number_from_info_banner()
43
+ current_channel_number = screens.live_tv.get_current_channel_number()
44
+ current_channel_number
45
+ end
46
+
47
+ # Public: verify if we are in the expected channel by checking with the guide or the info banner
48
+ #
49
+ # channel_number - channel number user is expecting
50
+ #
51
+ # Returns true if verified, false otherwise
52
+ def verify_expected_channel?(channel_number)
53
+ rti_flag = options.fetch(:rti_flag, 'false')
54
+ $rti_flag = (rti_flag == 'true')
55
+
56
+ current_channel_number = -1
57
+ if ($rti_flag == false)
58
+ logger.info("Before guide_banner_verify_channel_number")
59
+ current_channel_number = get_channel_number_from_guide()
60
+ else
61
+ logger.info("Before info_banner_launch_and_verify_channel_number")
62
+ current_channel_number = get_channel_number_from_info_banner()
63
+ end
64
+ if current_channel_number.match(/^\d+$/)
65
+ current_channel_number = current_channel_number.to_i
66
+ else
67
+ current_channel_number = -1
68
+ end
69
+ fail("Failed to get the current channel number") if (current_channel_number <= 0)
70
+ current_channel_number == channel_number
71
+ end
72
+
73
+ # Public: measure tune time
74
+ #
75
+ # from_channel_type - type of channel we are starting from
76
+ # to_channel_type - type of channel we are going to tune to
77
+ # from_channel - channel number we are starting from
78
+ # to_channel - channel number we are going to tune to
79
+ # tune_type - type of tune we are performing (direct or guide)
80
+ # cache_clear - flag to indicate if we need to clear the cache
81
+ #
82
+ # Returns nothing but posts results of the start time and the end time
83
+ def measure_tune(from_channel_type, to_channel_type, from_channel, to_channel, tune_type='direct', cache_clear=false)
84
+ if (from_channel_type == to_channel_type and to_channel_type == 'mod')
85
+ measure_tune_guide_mod_mod(from_channel_type, to_channel_type, from_channel, to_channel, tune_type='direct')
86
+ return
87
+ end
88
+ debug_log = false
89
+ if (from_channel_type == 'analog' or to_channel_type == 'analog')
90
+ error("Box['#{fetch_stb_model}'] not supported.") unless stb_capable_of? 'ANALOG'
91
+ end
92
+ fail("From and to channels cannot be the same") if (from_channel == to_channel)
93
+ fail("Failed to initialize STB") unless init?
94
+ logger.info("#{tune_type} tune from channel: #{from_channel} to channel: #{to_channel}")
95
+ #Verify video on from_channel
96
+ if (cache_clear)
97
+ start_clear_chan=(@test_case.test_data[:clear_tuner_cache_start_channel] == nil)? 516 : @test_case.test_data[:clear_tuner_cache_start_channel]
98
+ fail("Could not clear tuner cache") unless clear_tuner_caches?(start_clear_chan, 6)
99
+ end
100
+ fail("Could not get video on from_channel: #{from_channel}") if (initialize_execution(from_channel) == false)
101
+ fail("Tuned to wrong from channel: #{from_channel}") if (!verify_expected_channel?(from_channel))
102
+
103
+ press_key.EXIT
104
+ if (tune_type == 'guide')
105
+ sleep(10.sec)
106
+ press_key.GUIDE
107
+ screens.guide.set_channel?(to_channel, :press_select => false)
108
+ sleep(4.sec)
109
+ logger.info("Screen before pressing select", :screenshot => true, :use_last_image => false, :image_suffix => "guide")
110
+ press_key.SELECT( :sleep_time => 0.sec )
111
+ else
112
+ screens.live_tv.set_channel?(to_channel)
113
+ logger.info("Screen before channel starts changing", :screenshot => true, :use_last_image => false, :image_suffix => "guide")
114
+ end
115
+ startTime = Time.now
116
+ fail("Video did not go black after #{tune_type} tuning to channel: #{to_channel}") unless roi.black.channel_tune_black_screen.wait_until_displayed?(timeout=5000)
117
+
118
+ stopTime = Time.now
119
+ tuneTime = time_diff_milli(startTime, stopTime)
120
+ logger.info("Video froze after: #{tuneTime.to_s}")
121
+ fail("Video not playing after #{tune_type} tuning to channel: #{to_channel}") unless roi.black.channel_tune_black_screen.wait_until_displayed?(timeout=15000)
122
+ stopTime = Time.now
123
+ tuneTime = time_diff_milli(startTime, stopTime)
124
+ fail("Test took too long") if (tuneTime > 15000)
125
+ logger.info("Long tune time") if (tuneTime > 5000)
126
+ press_key.EXIT
127
+ fail("Could not verify to channel: #{to_channel}: for #{tune_type} tune") unless verify_expected_channel?(to_channel)
128
+ report_result(:start_time => startTime, :stop_time => stopTime)
129
+ logger.duration(tuneTime, :message => "#{from_channel_type} to #{to_channel_type} #{tune_type} tune|")
130
+ end
131
+
132
+ # Public: measures tune in guide from MOD to MOD
133
+ #
134
+ # from_channel_type - type of channel we are starting from
135
+ # to_channel_type - type of channel we are going to tune to
136
+ # from_channel - channel number we are starting from
137
+ # to_channel - channel number we are going to tune to
138
+ # tune_type - type of tune we are performing (direct or guide)
139
+ #
140
+ # Returns nohting
141
+ def measure_tune_guide_mod_mod(from_channel_type, to_channel_type, from_channel, to_channel, tune_type='direct')
142
+ debug_log = false
143
+ fail("From and to channels cannot be the same") if (from_channel == to_channel)
144
+ screenROI = roi.image.guide_info
145
+
146
+ logger.info("#{tune_type} tune from channel: #{from_channel} to channel: #{to_channel}")
147
+ #Verify video on from_channel
148
+ fail("Failed to initialize STB") unless init?
149
+ screens.live_tv.navigate?
150
+ screens.live_tv.set_channel(from_channel)
151
+ fail("Tuned to wrong from channel: #{from_channel}") unless verify_expected_channel?(from_channel)
152
+ fail("Could not get video on from_channel: #{from_channel}") unless screens.live_tv.displayed?
153
+ press_key.EXIT
154
+
155
+ if (tune_type == 'guide')
156
+ press_key.GUIDE
157
+ sleep(4.sec)
158
+ screens.guide.set_channel?(to_channel)
159
+ sleep(4.sec)
160
+ filename = capture_screen("tmp_stb_#{$stb_id}.jpg")
161
+ screenROI.ref_img = filename
162
+ logger.info("Screen before pressing select", :screenshot => true, :use_last_image => false, :image_suffix => "image")
163
+ press_key.SELECT(:sleep_time => 0.sec)
164
+ else
165
+ sleep(2.sec)
166
+ filename = capture_screen("tmp_stb_#{$stb_id}.jpg")
167
+ screenROI.ref_img = filename
168
+ logger.info("Screen before pressing tuning to channel", :screenshot => true, :use_last_image => false, :image_suffix => "image")
169
+ screens.live_tv.set_channel?(to_channel)
170
+ end
171
+ times[0] = Time.now
172
+ if screenROI.wait_until_not_displayed?(timeout=15000, :priority => :high)
173
+ times[1] = Time.now
174
+ else
175
+ times[1] = times[0] # failed case
176
+ end
177
+ dataValue = time_diff_milli(times[0], times[1])
178
+ fail("Failed to go to channel #{to_channel}") if (dataValue == 0)
179
+ dataValue = dataValue.to_s
180
+ report_result(:start_time => times[0], :stop_time => times[1])
181
+ logger.duration(dataValue, :message => "#{from_channel_type} to #{to_channel_type} #{tune_type} tune|")
182
+ press_key.EXIT
183
+ end
184
+
185
+ # Public: measures tuning in guide
186
+ #
187
+ # from_channel - channel number we are starting from
188
+ # to_channel - channel number we are going to tune to
189
+ #
190
+ # Returns nothing
191
+ def measure_guide_tune(from_channel, to_channel)
192
+ logger.info("Guide tune from channel #{from_channel} to #{to_channel}")
193
+ screenROI = roi.image.guide_network_logo
194
+ timeout=15
195
+ fail("Failed to launch guide") unless screens.guide.navigate?
196
+ screens.guide.set_channel?(from_channel, :press_select => false)
197
+ sleep(3.sec)
198
+ filename = capture_screen("tmp_stb_#{$stb_id}.jpg")
199
+ screenROI.ref_img = filename
200
+ sleep(5.sec)
201
+ logger.info("Initial screen", :screenshot => true, :use_last_image => false, :image_suffix => "image")
202
+ screens.guide.set_channel?(to_channel, :press_select => false)
203
+ times[0] = Time.now
204
+ if screenROI.wait_until_not_displayed?(timeout=15000, :priority => :high)
205
+ times[1] = Time.now
206
+ else
207
+ times[1] = times[0] # failed case
208
+ end
209
+ dataValue = time_diff_milli(times[0], times[1])
210
+ fail("Failed to go to channel #{to_channel}") if (dataValue == 0)
211
+ report_result(:start_time => times[0], :stop_time => times[1])
212
+ logger.duration(dataValue, :message => "Time to channel #{to_channel}")
213
+ end
214
+
215
+ # Public: measure burst tune
216
+ #
217
+ # channels -
218
+ # burst_type -
219
+ #
220
+ # Returns nothing
221
+ def measure_burst_tune(channels, burst_type)
222
+ debug_log = false
223
+ start_chan = channels[0]
224
+ final_chan = channels[1]
225
+
226
+ if (channels.length > 2)
227
+ channel_tunes = channels[2]
228
+ else
229
+ channel_tunes = "5"
230
+ end
231
+ start_chan_num = (Integer(start_chan) rescue nil)
232
+ final_chan_num = (Integer(final_chan) rescue nil)
233
+ channel_tunes = (Integer(channel_tunes) rescue nil)
234
+ chan_up = true
235
+ if (start_chan_num != nil and final_chan_num != nil)
236
+ chan_up = false if (final_chan_num < start_chan_num)
237
+ end
238
+ channel_tunes = 5 if (channel_tunes == nil)
239
+
240
+ guide_chan_ROI = roi.text.guide_focused_program_channel
241
+ guide_chan_ROI.expectedText = final_chan.to_s
242
+
243
+ logger.info("Initializing on channel: #{start_chan}") if (debug_log)
244
+ screens.live_tv.set_channel?(from_channel)
245
+ fail("Could not get initial video displayed on channel #{start_chan}") unless (verify_expected_channel?(start_chan))
246
+ logger.info("Initial channel displayed") if (debug_log)
247
+
248
+ startTime = Time.now
249
+ (1..channel_tunes).each do |k|
250
+ if chan_up
251
+ press_key.CHANNEL_UP( :sleep_time => 0.sec )
252
+ dir = 'up'
253
+ else
254
+ press_key.CHANNEL_DOWN( :sleep_time => 0.sec )
255
+ dir = 'down'
256
+ end
257
+ if (k == 1)
258
+ logger.info("Warning: Video did not pause") unless roi.video.fullscreen_video.wait_until_not_displayed?(timeout=2000, :priority => :high)
259
+ end
260
+ sleep(500.ms)
261
+ end
262
+ fail("Video not playing") unless roi.video.fullscreen_video.displayed?
263
+ stopTime = Time.now
264
+
265
+ logger.info("Video playing", :screenshot => true, :use_last_image => false)
266
+ (1..3).each do |i|
267
+ press_key.GUIDE
268
+ break if guide_chan_ROI.displayed?
269
+ fail("Could not verify final channel number") if (i > 2)
270
+ press_key.EXIT
271
+ end
272
+ dataValue = time_diff_milli(startTime, stopTime).to_s
273
+ logger.duration(dataValue, :message => "Burst tune #{burst_type} | #{dataValue}")
274
+ report_result(:start_time => startTime, :stop_time => stopTime)
275
+ end
276
+
277
+ # Public: compares 2 time values and returns the difference in milliseconds
278
+ #
279
+ # t1 - start time
280
+ # t2 - end time
281
+ #
282
+ # return delta (in ms) of the 2 timestamps
283
+ def time_diff_milli(t1, t2)
284
+ if t1.is_a?(DateTime)
285
+ delta_s = (t2 - t1) * 24.0 * 60 * 60 # convert DateTime delta from days to seconds
286
+ elsif t1.is_a?(Time)
287
+ delta_s = t2 - t1 # Time delta already in seconds
288
+ else
289
+ return time_diff_milli(to_time(t1), to_time(t2)) # Unknown -- try to convert values to Time or DateTime
290
+ end
291
+ delta_s * 1000.0 # convert to ms
292
+ end
293
+
294
+ # Public: use this to clear tuner caches
295
+ #
296
+ # start_channel - starting channel number
297
+ # num_channel_changes - number of channel changes to perform
298
+ #
299
+ # return true if number of successful channels equals to the number of expected channel changes (num_channel_changes), false otherwise
300
+ def clear_tuner_caches?(start_channel=511, num_channel_changes=6)
301
+ logger.info("Clearing tuner cache...")
302
+ screens.live_tv.set_channel?(start_channel)
303
+ sleep(6.sec)
304
+ cur_chan_num = start_channel
305
+ good_tunes = 0
306
+ tries = 0
307
+ while (good_tunes < num_channel_changes and tries < 30)
308
+ press_key.CHANNEL_UP( :sleep_time => 5.sec )
309
+ next_chan_num = get_channel_number_from_info_banner()
310
+ if (next_chan_num == -1)
311
+ tries += 1
312
+ next
313
+ end
314
+ if (next_chan_num > cur_chan_num)
315
+ good_tunes += 1
316
+ end
317
+ cur_chan_num = next_chan_num
318
+ tries += 1
319
+ end
320
+
321
+ good_tunes == num_channel_changes
322
+ end
323
+
324
+ # Public: Use it to get last reboot time from web server
325
+ #
326
+ # stb_ip -> IP address of box
327
+ #
328
+ # Returns last reboot time string
329
+ def odn_web_server_odn_diags_last_reboot(stb_ip = fetch_ip, last_reboot = "")
330
+ begin
331
+ logger.info("Establishing connection to ip: #{stb_ip}")
332
+ http = Net::HTTP.new(stb_ip)
333
+ resp = http.get("/odnDiagnostics").body
334
+ if resp.include?("Last Boot Time:")
335
+ resp = resp.slice((resp.index('Last Boot Time:')+'Last Boot Time:'.length)..resp.length-1)
336
+ resp = resp.slice((resp.index('value_white">')+'value_white">'.length)..resp.length-1)
337
+ resp = resp.slice(0..resp.index('</td>')-1)
338
+ #logger.info("Reboot time read from STB:#{resp}")
339
+ resp
340
+ else
341
+ logger.info("Reboot time not read from STB")
342
+ last_reboot
343
+ end
344
+ rescue
345
+ logger.info("Error reading Reboot time from STB")
346
+ last_reboot
347
+ end
348
+ end
349
+
350
+ # Public: sleep for the minutes provided and check for reboot time (and report it to sword)
351
+ #
352
+ # duration_min - number of minutes to sleep
353
+ #
354
+ # return last reboot in minutes
355
+ def sleep_while_check_for_reboots(duration_min=30, last_reboot="")
356
+ test_duration = true
357
+ while (duration_min > 0)
358
+ last_reboot_read = odn_web_server_odn_diags_last_reboot(ip_address, last_reboot)
359
+ if (last_reboot != "") and (last_reboot_read != "") and (last_reboot_read != nil) and (last_reboot != nil)
360
+ if ((!last_reboot_read.eql?(last_reboot)) and (last_reboot.length>10) and (last_reboot_read.length>10))
361
+ begin
362
+ reboot_time = Time.parse(last_reboot_read)
363
+ # post_reboot_result(reboot_time)
364
+ report_result(:start_time => reboot_time, :stop_time => reboot_time, :return_value => reboot_time, :return_title => 'REBOOT', :message => 'REBOOT')
365
+ rescue
366
+ # post_reboot_result(Time.now)
367
+ report_result(:start_time => Time.now, :stop_time => Time.now, :return_value => Time.now, :return_title => 'REBOOT', :message => 'REBOOT')
368
+ end
369
+ logger.info("***STB Rebooted:#{last_reboot_read};;;;;;;#{last_reboot}***")
370
+ last_reboot = last_reboot_read
371
+ File.open("tmp/Last_reboot_stb_#{$stb_id}.txt", 'w') do |f|
372
+ f.puts(last_reboot)
373
+ end
374
+ end
375
+ end
376
+ if (duration_min > 15)
377
+ if (test_duration)
378
+ sleep(90.sec)
379
+ else
380
+ sleep(15.min)
381
+ end
382
+ else
383
+ if (test_duration)
384
+ sleep((duration_min/10).sec)
385
+ else
386
+ sleep(duration_min.min)
387
+ end
388
+ end
389
+ # TO DO: are we sure about the following line? Based on the about if-block, we don't always sleep for 15 minutes...
390
+ duration_min = duration_min - 15
391
+ end
392
+
393
+ if (last_reboot == "" or last_reboot == nil)
394
+ last_reboot_read
395
+ else
396
+ last_reboot
397
+ end
398
+ end
399
+
400
+ # Public: get largest block data in the STB via snmp
401
+ #
402
+ # Returns the largest block value
403
+ def get_largest_block()
404
+ begin
405
+ r = snmp_get(".1.3.6.1.4.1.4491.2.3.1.1.4.7.1.0")
406
+ logger.info("largest_block=#{r}")
407
+ r.to_i
408
+ rescue StandardError => e
409
+ 0
410
+ end
411
+ end
412
+
413
+ # Public: get heap size data in the STB via snmp
414
+ #
415
+ # Returns the heap size value
416
+ def get_heap_size()
417
+ begin
418
+ r = snmp_get(".1.3.6.1.4.1.4491.2.3.1.1.4.8.1.0")
419
+ logger.info("heap_size=#{r}")
420
+ r.to_i
421
+ rescue StandardError => e
422
+ 0
423
+ end
424
+ end
425
+
426
+ # Public: get available heap size data in the STB via snmp
427
+ #
428
+ # Returns the available heap value
429
+ def get_available_heap()
430
+ begin
431
+ r = snmp_get(".1.3.6.1.4.1.4491.2.3.1.1.4.8.2.0")
432
+ logger.info("available_heap=#{r}")
433
+ r.to_i
434
+ rescue StandardError => e
435
+ 0
436
+ end
437
+ end
438
+
439
+ # Public: get largest block data and report to sword
440
+ #
441
+ # Returns nothing
442
+ def report_largest_block_to_sword(startTime, endTime)
443
+ startTime = Time.now if (startTime == 0)
444
+ endTime = startTime if (endTime == 0)
445
+ largest_block = get_largest_block().to_s
446
+ if is_sword?
447
+ # post_result(startTime.to_f, endTime.to_f, :return_no => largest_block)
448
+ report_result(:start_time => startTime, :stop_time => endTime, :return_value => largest_block, :return_title => "largest block", :message => "largest block")
449
+ end
450
+ logger.duration(largest_block, :message => "Largest block|#{largest_block}")
451
+ end
452
+
453
+ # Public: get heap size data and report to sword
454
+ #
455
+ # Returns nothing
456
+ def report_heap_size_to_sword(startTime, endTime)
457
+ startTime = Time.now if (startTime == 0)
458
+ endTime = startTime if (endTime == 0)
459
+ heap_size = get_heap_size().to_s
460
+ if is_sword?
461
+ # post_result(startTime.to_f, endTime.to_f, :return_no => heap_size)
462
+ report_result(:start_time => startTime, :stop_time => endTime, :return_value => heap_size, :return_title => "heap size", :message => "heap size")
463
+ end
464
+ logger.duration(heap_size, :message => "Heap size|#{heap_size}")
465
+ end
466
+
467
+ # Public: get available heap size data and report to sword
468
+ #
469
+ # Returns nothing
470
+ def report_available_heap_to_sword(startTime, endTime)
471
+ startTime = Time.now if (startTime == 0)
472
+ endTime = startTime if (endTime == 0)
473
+ available_heap = get_available_heap().to_s
474
+ if is_sword?
475
+ # post_result(startTime.to_f, endTime.to_f, :return_no => available_heap)
476
+ report_result(:start_time => startTime, :stop_time => endTime, :return_value => available_heap, :return_title => "available heap", :message => "available heap")
477
+ end
478
+ logger.duration(available_heap, :message => "Available heap|#{available_heap}")
479
+ end
480
+ end