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.
- checksums.yaml +7 -0
- data/lib/EXECUTION_ENGINE.md +282 -0
- data/lib/Gemfile +12 -0
- data/lib/README.md +138 -0
- data/lib/User_Lib/helpers/helpers.rb +13 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_black_rois.rb +7 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_color_rois.rb +9 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_image_rois.rb +7 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_rois.rb +23 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_text_rois.rb +48 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_video_rois.rb +11 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_black_rois.rb +7 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_color_rois.rb +7 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_image_rois.rb +7 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_rois.rb +23 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_text_rois.rb +7 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_video_rois.rb +11 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_black_rois.rb +7 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_color_rois.rb +7 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_image_rois.rb +7 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_rois.rb +23 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_text_rois.rb +7 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_video_rois.rb +7 -0
- data/lib/User_Lib/rois/black_rois.rb +33 -0
- data/lib/User_Lib/rois/color_rois.rb +38 -0
- data/lib/User_Lib/rois/dta/dta_1080/dta_1080_black_rois.rb +8 -0
- data/lib/User_Lib/rois/dta/dta_1080/dta_1080_color_rois.rb +8 -0
- data/lib/User_Lib/rois/dta/dta_1080/dta_1080_image_rois.rb +8 -0
- data/lib/User_Lib/rois/dta/dta_1080/dta_1080_rois.rb +26 -0
- data/lib/User_Lib/rois/dta/dta_1080/dta_1080_text_rois.rb +8 -0
- data/lib/User_Lib/rois/dta/dta_1080/dta_1080_video_rois.rb +8 -0
- data/lib/User_Lib/rois/dta/dta_720/dta_720_black_rois.rb +8 -0
- data/lib/User_Lib/rois/dta/dta_720/dta_720_color_rois.rb +8 -0
- data/lib/User_Lib/rois/dta/dta_720/dta_720_image_rois.rb +8 -0
- data/lib/User_Lib/rois/dta/dta_720/dta_720_rois.rb +26 -0
- data/lib/User_Lib/rois/dta/dta_720/dta_720_text_rois.rb +8 -0
- data/lib/User_Lib/rois/dta/dta_720/dta_720_video_rois.rb +8 -0
- data/lib/User_Lib/rois/dta/dta_black_rois.rb +9 -0
- data/lib/User_Lib/rois/dta/dta_color_rois.rb +9 -0
- data/lib/User_Lib/rois/dta/dta_image_rois.rb +9 -0
- data/lib/User_Lib/rois/dta/dta_rois.rb +26 -0
- data/lib/User_Lib/rois/dta/dta_text_rois.rb +9 -0
- data/lib/User_Lib/rois/dta/dta_video_rois.rb +9 -0
- data/lib/User_Lib/rois/image_rois.rb +38 -0
- data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_black_rois.rb +8 -0
- data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_color_rois.rb +8 -0
- data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_image_rois.rb +8 -0
- data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_rois.rb +26 -0
- data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_text_rois.rb +8 -0
- data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_video_rois.rb +8 -0
- data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_black_rois.rb +8 -0
- data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_color_rois.rb +8 -0
- data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_image_rois.rb +8 -0
- data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_rois.rb +26 -0
- data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_text_rois.rb +8 -0
- data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_video_rois.rb +8 -0
- data/lib/User_Lib/rois/mdn/mdn_black_rois.rb +9 -0
- data/lib/User_Lib/rois/mdn/mdn_color_rois.rb +9 -0
- data/lib/User_Lib/rois/mdn/mdn_image_rois.rb +9 -0
- data/lib/User_Lib/rois/mdn/mdn_rois.rb +26 -0
- data/lib/User_Lib/rois/mdn/mdn_text_rois.rb +13 -0
- data/lib/User_Lib/rois/mdn/mdn_video_rois.rb +9 -0
- data/lib/User_Lib/rois/mobile/android/android_black_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_color_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_image_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_black_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_color_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_image_rois.rb +43 -0
- data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_rois.rb +22 -0
- data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_text_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_video_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_rois.rb +22 -0
- data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_black_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_color_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_image_rois.rb +54 -0
- data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_rois.rb +22 -0
- data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_text_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_video_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_text_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_video_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_black_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_color_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_image_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_black_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_color_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_image_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_rois.rb +22 -0
- data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_text_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_video_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_rois.rb +22 -0
- data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_black_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_color_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_image_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_rois.rb +22 -0
- data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_text_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_video_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_text_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_video_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/mobile_black_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/mobile_color_rois.rb +12 -0
- data/lib/User_Lib/rois/mobile/mobile_image_rois.rb +38 -0
- data/lib/User_Lib/rois/mobile/mobile_rois.rb +22 -0
- data/lib/User_Lib/rois/mobile/mobile_text_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/mobile_video_rois.rb +8 -0
- data/lib/User_Lib/rois/passport/passport_1080/passport_1080_black_rois.rb +7 -0
- data/lib/User_Lib/rois/passport/passport_1080/passport_1080_color_rois.rb +9 -0
- data/lib/User_Lib/rois/passport/passport_1080/passport_1080_image_rois.rb +7 -0
- data/lib/User_Lib/rois/passport/passport_1080/passport_1080_rois.rb +23 -0
- data/lib/User_Lib/rois/passport/passport_1080/passport_1080_text_rois.rb +8 -0
- data/lib/User_Lib/rois/passport/passport_1080/passport_1080_video_rois.rb +8 -0
- data/lib/User_Lib/rois/passport/passport_720/passport_720_black_rois.rb +7 -0
- data/lib/User_Lib/rois/passport/passport_720/passport_720_color_rois.rb +7 -0
- data/lib/User_Lib/rois/passport/passport_720/passport_720_image_rois.rb +7 -0
- data/lib/User_Lib/rois/passport/passport_720/passport_720_rois.rb +23 -0
- data/lib/User_Lib/rois/passport/passport_720/passport_720_text_rois.rb +7 -0
- data/lib/User_Lib/rois/passport/passport_720/passport_720_video_rois.rb +7 -0
- data/lib/User_Lib/rois/passport/passport_black_rois.rb +7 -0
- data/lib/User_Lib/rois/passport/passport_color_rois.rb +7 -0
- data/lib/User_Lib/rois/passport/passport_image_rois.rb +7 -0
- data/lib/User_Lib/rois/passport/passport_rois.rb +23 -0
- data/lib/User_Lib/rois/passport/passport_text_rois.rb +7 -0
- data/lib/User_Lib/rois/passport/passport_video_rois.rb +7 -0
- data/lib/User_Lib/rois/rois.rb +22 -0
- data/lib/User_Lib/rois/roku/roku_720/roku_720_black_rois.rb +37 -0
- data/lib/User_Lib/rois/roku/roku_720/roku_720_color_rois.rb +336 -0
- data/lib/User_Lib/rois/roku/roku_720/roku_720_image_rois.rb +235 -0
- data/lib/User_Lib/rois/roku/roku_720/roku_720_rois.rb +23 -0
- data/lib/User_Lib/rois/roku/roku_720/roku_720_text_rois.rb +1523 -0
- data/lib/User_Lib/rois/roku/roku_720/roku_720_video_rois.rb +32 -0
- data/lib/User_Lib/rois/roku/roku_black_rois.rb +14 -0
- data/lib/User_Lib/rois/roku/roku_color_rois.rb +9 -0
- data/lib/User_Lib/rois/roku/roku_image_rois.rb +13 -0
- data/lib/User_Lib/rois/roku/roku_rois.rb +23 -0
- data/lib/User_Lib/rois/roku/roku_text_rois.rb +9 -0
- data/lib/User_Lib/rois/roku/roku_video_rois.rb +9 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_black_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_color_rois.rb +11 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_image_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_rois.rb +23 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_text_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_video_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_black_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_color_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_image_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_rois.rb +23 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_text_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_video_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_black_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_color_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_image_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_rois.rb +23 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_text_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_video_rois.rb +12 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_black_rois.rb +13 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_color_rois.rb +29 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_image_rois.rb +9 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_rois.rb +23 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_text_rois.rb +92 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_video_rois.rb +11 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_black_rois.rb +9 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_color_rois.rb +9 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_image_rois.rb +9 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_rois.rb +23 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_text_rois.rb +12 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_video_rois.rb +11 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_black_rois.rb +9 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_color_rois.rb +9 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_image_rois.rb +9 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_rois.rb +23 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_text_rois.rb +12 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_video_rois.rb +9 -0
- data/lib/User_Lib/rois/sara/sara_1080/sara_1080_black_rois.rb +8 -0
- data/lib/User_Lib/rois/sara/sara_1080/sara_1080_color_rois.rb +8 -0
- data/lib/User_Lib/rois/sara/sara_1080/sara_1080_image_rois.rb +8 -0
- data/lib/User_Lib/rois/sara/sara_1080/sara_1080_rois.rb +26 -0
- data/lib/User_Lib/rois/sara/sara_1080/sara_1080_text_rois.rb +8 -0
- data/lib/User_Lib/rois/sara/sara_1080/sara_1080_video_rois.rb +8 -0
- data/lib/User_Lib/rois/sara/sara_720/sara_720_black_rois.rb +8 -0
- data/lib/User_Lib/rois/sara/sara_720/sara_720_color_rois.rb +8 -0
- data/lib/User_Lib/rois/sara/sara_720/sara_720_image_rois.rb +8 -0
- data/lib/User_Lib/rois/sara/sara_720/sara_720_rois.rb +26 -0
- data/lib/User_Lib/rois/sara/sara_720/sara_720_text_rois.rb +8 -0
- data/lib/User_Lib/rois/sara/sara_720/sara_720_video_rois.rb +8 -0
- data/lib/User_Lib/rois/sara/sara_black_rois.rb +9 -0
- data/lib/User_Lib/rois/sara/sara_color_rois.rb +9 -0
- data/lib/User_Lib/rois/sara/sara_image_rois.rb +9 -0
- data/lib/User_Lib/rois/sara/sara_rois.rb +26 -0
- data/lib/User_Lib/rois/sara/sara_text_rois.rb +9 -0
- data/lib/User_Lib/rois/sara/sara_video_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_black_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_color_rois.rb +17 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_image_rois.rb +19 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_text_rois.rb +47 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_video_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_black_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_color_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_image_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_text_rois.rb +17 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_video_rois.rb +11 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_black_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_color_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_image_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_text_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_video_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_black_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_color_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_image_rois.rb +12 -0
- data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_text_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_video_rois.rb +11 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_black_rois.rb +46 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_color_rois.rb +142 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_image_rois.rb +103 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_black_rois.rb +6 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_color_rois.rb +6 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_image_rois.rb +6 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_text_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_video_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_black_rois.rb +6 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_color_rois.rb +6 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_image_rois.rb +6 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_text_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_video_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_black_rois.rb +6 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_color_rois.rb +77 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_image_rois.rb +67 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_text_rois.rb +159 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_video_rois.rb +17 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_text_rois.rb +221 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_video_rois.rb +26 -0
- data/lib/User_Lib/rois/stb/odn/odn_black_rois.rb +10 -0
- data/lib/User_Lib/rois/stb/odn/odn_color_rois.rb +10 -0
- data/lib/User_Lib/rois/stb/odn/odn_image_rois.rb +58 -0
- data/lib/User_Lib/rois/stb/odn/odn_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/odn/odn_text_rois.rb +70 -0
- data/lib/User_Lib/rois/stb/odn/odn_video_rois.rb +19 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_black_rois.rb +16 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_color_rois.rb +373 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_black_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_color_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_image_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_text_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_video_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_black_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_color_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_image_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_rois.rb +26 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_text_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_video_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_black_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_color_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_image_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_rois.rb +26 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_text_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_video_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_black_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_color_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_image_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_rois.rb +26 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_text_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_video_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_image_rois.rb +1592 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_black_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_color_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_image_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_text_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_video_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_text_rois.rb +2489 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_video_rois.rb +64 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_black_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_color_rois.rb +63 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_black_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_color_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_image_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_rois.rb +26 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_text_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_video_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_black_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_color_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_image_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_rois.rb +26 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_text_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_video_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_black_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_color_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_image_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_rois.rb +26 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_text_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_video_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_image_rois.rb +117 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_text_rois.rb +84 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_video_rois.rb +35 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_black_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_color_rois.rb +17 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_image_rois.rb +49 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_text_rois.rb +51 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_video_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/stb_black_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/stb_color_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/stb_image_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/stb_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/stb_text_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/stb_video_rois.rb +9 -0
- data/lib/User_Lib/rois/template.txt +23 -0
- data/lib/User_Lib/rois/text_rois.rb +36 -0
- data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_black_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_color_rois.rb +9 -0
- data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_image_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_rois.rb +23 -0
- data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_text_rois.rb +9 -0
- data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_video_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_black_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_color_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_image_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_rois.rb +23 -0
- data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_text_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_video_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_black_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_color_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_image_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_rois.rb +23 -0
- data/lib/User_Lib/rois/tivo/tivo_text_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_video_rois.rb +7 -0
- data/lib/User_Lib/rois/video_rois.rb +33 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_dvr.rb +25 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_guide.rb +25 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_library.rb +25 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_live_tv.rb +17 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_login.rb +24 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_main_menu.rb +25 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_mini_guide.rb +25 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_movies.rb +25 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_on_demand.rb +25 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_parental_controls.rb +25 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_product_page.rb +25 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_screen.rb +23 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_search.rb +31 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_settings.rb +25 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_tv_shows.rb +25 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_video_store.rb +25 -0
- data/lib/User_Lib/screen/dta/dta_dvr.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_guide.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_library.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_live_tv.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_log_in.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_main_menu.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_mini_guide.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_movies.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_on_demand.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_parental_controls.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_product_page.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_screen.rb +24 -0
- data/lib/User_Lib/screen/dta/dta_search.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_settings.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_tv_shows.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_video_store.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_dvr.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_guide.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_library.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_live_tv.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_log_in.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_main_menu.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_mini_guide.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_movies.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_on_demand.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_parental_controls.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_product_page.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_screen.rb +24 -0
- data/lib/User_Lib/screen/mdn/mdn_search.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_settings.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_tv_shows.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_video_store.rb +26 -0
- data/lib/User_Lib/screen/mobile/android/android_devices.rb +35 -0
- data/lib/User_Lib/screen/mobile/android/android_dvr.rb +337 -0
- data/lib/User_Lib/screen/mobile/android/android_favorites.rb +164 -0
- data/lib/User_Lib/screen/mobile/android/android_guide.rb +256 -0
- data/lib/User_Lib/screen/mobile/android/android_live_tv.rb +372 -0
- data/lib/User_Lib/screen/mobile/android/android_login.rb +111 -0
- data/lib/User_Lib/screen/mobile/android/android_main_menu.rb +53 -0
- data/lib/User_Lib/screen/mobile/android/android_on_demand.rb +402 -0
- data/lib/User_Lib/screen/mobile/android/android_parental_controls.rb +73 -0
- data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_dvr.rb +31 -0
- data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_guide.rb +39 -0
- data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_live_tv.rb +104 -0
- data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_main_menu.rb +27 -0
- data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_on_demand.rb +35 -0
- data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_product_page.rb +7 -0
- data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_search.rb +26 -0
- data/lib/User_Lib/screen/mobile/android/android_privacy_legal.rb +54 -0
- data/lib/User_Lib/screen/mobile/android/android_product_page.rb +484 -0
- data/lib/User_Lib/screen/mobile/android/android_screen.rb +56 -0
- data/lib/User_Lib/screen/mobile/android/android_search.rb +39 -0
- data/lib/User_Lib/screen/mobile/android/android_settings.rb +90 -0
- data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_dvr.rb +58 -0
- data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_guide.rb +24 -0
- data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_live_tv.rb +24 -0
- data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_main_menu.rb +19 -0
- data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_on_demand.rb +16 -0
- data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_product_page.rb +45 -0
- data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_search.rb +14 -0
- data/lib/User_Lib/screen/mobile/devices_mobile.rb +53 -0
- data/lib/User_Lib/screen/mobile/dvr_mobile.rb +5 -0
- data/lib/User_Lib/screen/mobile/favorites_mobile.rb +5 -0
- data/lib/User_Lib/screen/mobile/guide_mobile.rb +5 -0
- data/lib/User_Lib/screen/mobile/ios/ios_devices.rb +43 -0
- data/lib/User_Lib/screen/mobile/ios/ios_dvr.rb +231 -0
- data/lib/User_Lib/screen/mobile/ios/ios_favorites.rb +79 -0
- data/lib/User_Lib/screen/mobile/ios/ios_guide.rb +53 -0
- data/lib/User_Lib/screen/mobile/ios/ios_live_tv.rb +413 -0
- data/lib/User_Lib/screen/mobile/ios/ios_login.rb +76 -0
- data/lib/User_Lib/screen/mobile/ios/ios_main_menu.rb +38 -0
- data/lib/User_Lib/screen/mobile/ios/ios_on_demand.rb +371 -0
- data/lib/User_Lib/screen/mobile/ios/ios_parental_controls.rb +104 -0
- data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_dvr.rb +14 -0
- data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_live_tv.rb +36 -0
- data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_main_menu.rb +7 -0
- data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_on_demand.rb +7 -0
- data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_search.rb +13 -0
- data/lib/User_Lib/screen/mobile/ios/ios_privacy_legal.rb +56 -0
- data/lib/User_Lib/screen/mobile/ios/ios_product_page.rb +441 -0
- data/lib/User_Lib/screen/mobile/ios/ios_screen.rb +60 -0
- data/lib/User_Lib/screen/mobile/ios/ios_search.rb +145 -0
- data/lib/User_Lib/screen/mobile/ios/ios_settings.rb +34 -0
- data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_live_tv.rb +34 -0
- data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_main_menu.rb +7 -0
- data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_on_demand.rb +7 -0
- data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_search.rb +13 -0
- data/lib/User_Lib/screen/mobile/live_tv_mobile.rb +73 -0
- data/lib/User_Lib/screen/mobile/login_mobile.rb +5 -0
- data/lib/User_Lib/screen/mobile/main_menu_mobile.rb +83 -0
- data/lib/User_Lib/screen/mobile/mobile_screen.rb +232 -0
- data/lib/User_Lib/screen/mobile/on_demand_mobile.rb +70 -0
- data/lib/User_Lib/screen/mobile/parental_controls_mobile.rb +5 -0
- data/lib/User_Lib/screen/mobile/privacy_legal_mobile.rb +5 -0
- data/lib/User_Lib/screen/mobile/product_page_mobile.rb +5 -0
- data/lib/User_Lib/screen/mobile/search_mobile.rb +5 -0
- data/lib/User_Lib/screen/mobile/settings_mobile.rb +33 -0
- data/lib/User_Lib/screen/passport/passport_dvr.rb +25 -0
- data/lib/User_Lib/screen/passport/passport_guide.rb +37 -0
- data/lib/User_Lib/screen/passport/passport_library.rb +25 -0
- data/lib/User_Lib/screen/passport/passport_live_tv.rb +17 -0
- data/lib/User_Lib/screen/passport/passport_main_menu.rb +25 -0
- data/lib/User_Lib/screen/passport/passport_mini_guide.rb +25 -0
- data/lib/User_Lib/screen/passport/passport_movies.rb +25 -0
- data/lib/User_Lib/screen/passport/passport_on_demand.rb +25 -0
- data/lib/User_Lib/screen/passport/passport_parental_controls.rb +25 -0
- data/lib/User_Lib/screen/passport/passport_product_page.rb +25 -0
- data/lib/User_Lib/screen/passport/passport_screen.rb +23 -0
- data/lib/User_Lib/screen/passport/passport_search.rb +25 -0
- data/lib/User_Lib/screen/passport/passport_settings.rb +25 -0
- data/lib/User_Lib/screen/passport/passport_tv_shows.rb +25 -0
- data/lib/User_Lib/screen/passport/passport_video_store.rb +25 -0
- data/lib/User_Lib/screen/roku/brs/roku_guide_brs.rb +12 -0
- data/lib/User_Lib/screen/roku/brs/roku_home_brs.rb +12 -0
- data/lib/User_Lib/screen/roku/brs/roku_live_tv_brs.rb +12 -0
- data/lib/User_Lib/screen/roku/brs/roku_login_brs.rb +103 -0
- data/lib/User_Lib/screen/roku/brs/roku_main_menu_brs.rb +46 -0
- data/lib/User_Lib/screen/roku/brs/roku_on_demand_brs.rb +12 -0
- data/lib/User_Lib/screen/roku/brs/roku_product_page_brs.rb +12 -0
- data/lib/User_Lib/screen/roku/brs/roku_screen_brs.rb +9 -0
- data/lib/User_Lib/screen/roku/brs/roku_search_brs.rb +12 -0
- data/lib/User_Lib/screen/roku/brs/roku_settings_brs.rb +42 -0
- data/lib/User_Lib/screen/roku/brs/roku_watch_later_brs.rb +12 -0
- data/lib/User_Lib/screen/roku/brs/roku_welcome_brs.rb +12 -0
- data/lib/User_Lib/screen/roku/roku_dvr.rb +7 -0
- data/lib/User_Lib/screen/roku/roku_guide.rb +590 -0
- data/lib/User_Lib/screen/roku/roku_home.rb +346 -0
- data/lib/User_Lib/screen/roku/roku_library.rb +26 -0
- data/lib/User_Lib/screen/roku/roku_live_tv.rb +210 -0
- data/lib/User_Lib/screen/roku/roku_login.rb +795 -0
- data/lib/User_Lib/screen/roku/roku_main_menu.rb +425 -0
- data/lib/User_Lib/screen/roku/roku_mini_guide.rb +7 -0
- data/lib/User_Lib/screen/roku/roku_on_demand.rb +479 -0
- data/lib/User_Lib/screen/roku/roku_product_page.rb +483 -0
- data/lib/User_Lib/screen/roku/roku_screen.rb +85 -0
- data/lib/User_Lib/screen/roku/roku_search.rb +229 -0
- data/lib/User_Lib/screen/roku/roku_settings.rb +304 -0
- data/lib/User_Lib/screen/roku/roku_watch_later.rb +51 -0
- data/lib/User_Lib/screen/roku/roku_welcome.rb +10 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_dvr.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_guide.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_home.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_library.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_live_tv.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_login.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_main_menu.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_mini_guide.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_on_demand.rb +26 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_product_page.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_screen.rb +7 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_search.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_settings.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_watch_later.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_welcome.rb +14 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_dvr.rb +24 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_guide.rb +24 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_library.rb +24 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_live_tv.rb +21 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_login.rb +13 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_main_menu.rb +64 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_mini_guide.rb +24 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_movies.rb +140 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_on_demand.rb +76 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_parental_controls.rb +24 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_product_page.rb +24 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_screen.rb +74 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_search.rb +29 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_settings.rb +189 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_tv_shows.rb +24 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_video_store.rb +24 -0
- data/lib/User_Lib/screen/sara/sara_dvr.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_guide.rb +43 -0
- data/lib/User_Lib/screen/sara/sara_library.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_live_tv.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_log_in.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_main_menu.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_mini_guide.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_movies.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_on_demand.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_parental_controls.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_product_page.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_screen.rb +24 -0
- data/lib/User_Lib/screen/sara/sara_search.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_settings.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_tv_shows.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_video_store.rb +26 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_devices.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_dvr.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_favorites.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_guide.rb +39 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_home.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_library.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_live_tv.rb +59 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_login.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_main_menu.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_mini_guide.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_movies.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_on_demand.rb +531 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_parental_controls.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_privacy_legal.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_product_page.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_quick_menu.rb +7 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_screen.rb +21 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_search.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_settings.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_tv_shows.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_video_store.rb +10 -0
- data/lib/User_Lib/screen/stb/login_stb.rb +5 -0
- data/lib/User_Lib/screen/stb/odn/odn_dvr.rb +59 -0
- data/lib/User_Lib/screen/stb/odn/odn_favorites.rb +8 -0
- data/lib/User_Lib/screen/stb/odn/odn_guide.rb +177 -0
- data/lib/User_Lib/screen/stb/odn/odn_live_tv.rb +115 -0
- data/lib/User_Lib/screen/stb/odn/odn_login.rb +8 -0
- data/lib/User_Lib/screen/stb/odn/odn_main_menu.rb +175 -0
- data/lib/User_Lib/screen/stb/odn/odn_on_demand.rb +1170 -0
- data/lib/User_Lib/screen/stb/odn/odn_on_demand_kids.rb +23 -0
- data/lib/User_Lib/screen/stb/odn/odn_on_demand_left_menu.rb +180 -0
- data/lib/User_Lib/screen/stb/odn/odn_parental_controls.rb +9 -0
- data/lib/User_Lib/screen/stb/odn/odn_product_page.rb +8 -0
- data/lib/User_Lib/screen/stb/odn/odn_screen.rb +111 -0
- data/lib/User_Lib/screen/stb/odn/odn_search.rb +167 -0
- data/lib/User_Lib/screen/stb/odn/odn_settings.rb +142 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_diagnostics.rb +27 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/screen_spectrum_docsis.rb +12 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_guide.rb +10 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_main_menu.rb +10 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_settings.rb +10 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_dvr.rb +1781 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_guide.rb +841 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_library.rb +384 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_live_tv.rb +259 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_main_menu.rb +223 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_mini_guide.rb +404 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_movies.rb +420 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_netflix.rb +37 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_on_demand.rb +2137 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_parental_controls.rb +528 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_pay_per_view.rb +26 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_product_page.rb +58 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_screen.rb +48 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_search.rb +92 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_settings.rb +1657 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_tv_shows.rb +1532 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_video_store.rb +1598 -0
- data/lib/User_Lib/screen/stb/stb_screen.rb +7 -0
- data/lib/User_Lib/screen/tivo/tivo_dvr.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_guide.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_library.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_live_tv.rb +17 -0
- data/lib/User_Lib/screen/tivo/tivo_login.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_main_menu.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_mini_guide.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_movies.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_on_demand.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_parental_controls.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_product_page.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_screen.rb +20 -0
- data/lib/User_Lib/screen/tivo/tivo_search.rb +31 -0
- data/lib/User_Lib/screen/tivo/tivo_settings.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_tv_shows.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_video_store.rb +25 -0
- data/lib/config/ConfigParams.xml +96 -0
- data/lib/config/ImageROI.xml +45 -0
- data/lib/config/ROI.xml +150 -0
- data/lib/config/Userlog4j.xml +62 -0
- data/lib/config/schema-docs/mode.xsd +12 -0
- data/lib/config/schema-docs/processTestJobs.xsd +63 -0
- data/lib/config/schema-docs/rackip.xsd +24 -0
- data/lib/copy_ref_images.rb +199 -0
- data/lib/copy_repo.rb +136 -0
- data/lib/diagnostics/conductor/conductor_checkup.tmc +24 -0
- data/lib/diagnostics/db/mad_db_check.tmc +56 -0
- data/lib/diagnostics/db/mas_db_checkup.tmc +24 -0
- data/lib/diagnostics/db/mas_db_checkup_gem.tmc +20 -0
- data/lib/diagnostics/db/mas_db_checkup_jar.tmc +50 -0
- data/lib/diagnostics/iguide/iguide_nvram_reset.tmc +23 -0
- data/lib/diagnostics/iguide/iguide_prepare_stb.tmc +33 -0
- data/lib/diagnostics/iguide/iguide_prepare_stb_and_health_check.tmc +63 -0
- data/lib/diagnostics/iguide/iguide_stb_health_check.tmc +54 -0
- data/lib/diagnostics/prepare_stb.tmc +30 -0
- data/lib/diagnostics/prepare_stb_and_health_check.tmc +56 -0
- data/lib/diagnostics/script_options/options_checkup.tmc +145 -0
- data/lib/diagnostics/server_components_check.tmc +62 -0
- data/lib/diagnostics/ssh/dncs_checkup.tmc +24 -0
- data/lib/diagnostics/ssh/mas_checkup.tmc +24 -0
- data/lib/diagnostics/stb_health_check.tmc +46 -0
- data/lib/diagnostics/stb_ip_check.tmc +120 -0
- data/lib/diagnostics/webservices/mas_rest_services_checkup.tmc +24 -0
- data/lib/diagnostics/webservices/mas_soap_services_checkup.tmc +24 -0
- data/lib/dsllib/common/dncs/dncs_utils.rb +449 -0
- data/lib/dsllib/common/mas_db/mas_conductor.rb +1328 -0
- data/lib/dsllib/common/mas_db/mas_db.rb +154 -0
- data/lib/dsllib/common/mas_db/mas_publish.rb +2349 -0
- data/lib/dsllib/common/mas_db/mas_rest_services.rb +75 -0
- data/lib/dsllib/common/mas_db/mas_soap_services.rb +540 -0
- data/lib/dsllib/common/mas_db/mas_utils.rb +422 -0
- data/lib/dsllib/common/remote_diagnostics/mdn_remote_diagnostics.rb +1335 -0
- data/lib/dsllib/common/remote_diagnostics/odn_web_server.rb +269 -0
- data/lib/dsllib/common/utils/excel_export.rb +273 -0
- data/lib/dsllib/common/utils/excel_module.rb +890 -0
- data/lib/dsllib/common/utils/server_components_utils.rb +130 -0
- data/lib/dsllib/common/utils/stb_health_check_utils.rb +92 -0
- data/lib/dsllib/common/utils/sword_utils.rb +393 -0
- data/lib/dsllib/common/utils/tmc_utils.rb +2944 -0
- data/lib/dsllib/common/utils/virtual_keyboard_navigator.rb +208 -0
- data/lib/dsllib/common/utils/virtual_keyboard_vp_navigator.rb +195 -0
- data/lib/dsllib/performance/DTA/roi.rb +214 -0
- data/lib/dsllib/performance/DTA/utils.rb +96 -0
- data/lib/dsllib/performance/iguide_concurrent_test/ROI.rb +236 -0
- data/lib/dsllib/performance/iguide_concurrent_test/utils.rb +533 -0
- data/lib/dsllib/performance/measure_tune.rb +438 -0
- data/lib/dsllib/performance/perf_lib.rb +660 -0
- data/lib/end_iteration.rb +4 -0
- data/lib/lib/data_services/channel.rb +39 -0
- data/lib/lib/data_services/data_services.rb +14 -0
- data/lib/lib/data_services/guide.rb +104 -0
- data/lib/lib/data_services/lineup.rb +114 -0
- data/lib/lib/data_services/program.rb +48 -0
- data/lib/lib/data_services/schedule.rb +18 -0
- data/lib/lib/data_services/splunk_connector.rb +135 -0
- data/lib/lib/data_services/splunk_data_reader.rb +77 -0
- data/lib/lib/element/element.rb +79 -0
- data/lib/lib/extensions/array_extensions.rb +32 -0
- data/lib/lib/extensions/datetime_extensions.rb +8 -0
- data/lib/lib/extensions/extensions.rb +51 -0
- data/lib/lib/extensions/file_extensions.rb +32 -0
- data/lib/lib/extensions/float_extensions.rb +32 -0
- data/lib/lib/extensions/integer_extensions.rb +39 -0
- data/lib/lib/extensions/nethttp_extensions.rb +11 -0
- data/lib/lib/extensions/object_extensions.rb +7 -0
- data/lib/lib/extensions/string_extensions.rb +35 -0
- data/lib/lib/helpers/tmc_helpers/csv_helper/csv_helper.rb +85 -0
- data/lib/lib/helpers/tmc_helpers/email_helper/email_helper.rb +71 -0
- data/lib/lib/helpers/tmc_helpers/http_helper/http_helper.rb +133 -0
- data/lib/lib/helpers/tmc_helpers/roi_helper/roi_helper.rb +17 -0
- data/lib/lib/helpers/tmc_helpers/snmp_helper/snmp_helper.rb +71 -0
- data/lib/lib/helpers/tmc_helpers/ssh_helper/ssh_helper.rb +337 -0
- data/lib/lib/helpers/tmc_helpers/tmc_helpers.rb +1260 -0
- data/lib/lib/keyboard/apple_tv/apple_tv_password_keyboard.rb +102 -0
- data/lib/lib/keyboard/apple_tv/apple_tv_search_keyboard.rb +103 -0
- data/lib/lib/keyboard/apple_tv/apple_tv_username_keyboard.rb +105 -0
- data/lib/lib/keyboard/keyboard.rb +504 -0
- data/lib/lib/keyboard/keyboard_layout.rb +51 -0
- data/lib/lib/keyboard/roku/roku_reset_pin_keyboard.rb +12 -0
- data/lib/lib/keyboard/roku/roku_rsg_search_keyboard.rb +67 -0
- data/lib/lib/keyboard/roku/roku_rsg_signin_keyboard.rb +106 -0
- data/lib/lib/keyboard/roku/roku_search_keyboard.rb +10 -0
- data/lib/lib/keyboard/roku/roku_signin_keyboard.rb +42 -0
- data/lib/lib/keyboard/samsung_tv/samsung_tv_search_keyboard.rb +50 -0
- data/lib/lib/keyboard/samsung_tv/samsung_tv_signin_keyboard.rb +52 -0
- data/lib/lib/keyboard/stb/odn/odn_on_demand_search_keyboard.rb +10 -0
- data/lib/lib/keyboard/stb/odn/odn_search_keyboard.rb +10 -0
- data/lib/lib/keyboard/stb/spectrum/spectrum_netflix_email_keyboard.rb +50 -0
- data/lib/lib/keyboard/stb/spectrum/spectrum_netflix_keyboard.rb +43 -0
- data/lib/lib/keyboard/stb/spectrum/spectrum_netflix_name_keyboard.rb +16 -0
- data/lib/lib/keyboard/stb/spectrum/spectrum_search_keyboard.rb +32 -0
- data/lib/lib/keyboard/tivo/tivo_password_keyboard.rb +0 -0
- data/lib/lib/keyboard/tivo/tivo_search_keyboard.rb +0 -0
- data/lib/lib/keyboard/tivo/tivo_username_keyboard.rb +0 -0
- data/lib/lib/keys/apple_tv/apple_tv_keys.rb +26 -0
- data/lib/lib/keys/base_keys.rb +14 -0
- data/lib/lib/keys/dta/dta_keys.rb +60 -0
- data/lib/lib/keys/mdn/mdn_keys.rb +60 -0
- data/lib/lib/keys/passport/passport_keys.rb +59 -0
- data/lib/lib/keys/roku/roku_keys.rb +31 -0
- data/lib/lib/keys/roku_tv/roku_tv_keys.rb +32 -0
- data/lib/lib/keys/samsung_tv/samsung_tv_keys.rb +58 -0
- data/lib/lib/keys/sara/sara_keys.rb +60 -0
- data/lib/lib/keys/stb/iguide/iguide_keys.rb +56 -0
- data/lib/lib/keys/stb/odn/odn_keys.rb +63 -0
- data/lib/lib/keys/stb/spectrum/spectrum_keys.rb +59 -0
- data/lib/lib/keys/stb/stb_keys.rb +13 -0
- data/lib/lib/keys/tivo/tivo_keys.rb +26 -0
- data/lib/lib/logger/multi_io.rb +14 -0
- data/lib/lib/logger/tmc_dut_logger.rb +251 -0
- data/lib/lib/logger/tmc_logger.rb +30 -0
- data/lib/lib/mixins/assignable.rb +19 -0
- data/lib/lib/mixins/can_have_special_methods.rb +50 -0
- data/lib/lib/mixins/enumish.rb +16 -0
- data/lib/lib/new_platform.rb +302 -0
- data/lib/lib/new_sub_platform.rb +90 -0
- data/lib/lib/platform/apple_tv/apple_tv.rb +33 -0
- data/lib/lib/platform/apple_tv/apple_tv_1080/apple_tv_1080.rb +54 -0
- data/lib/lib/platform/apple_tv/apple_tv_720/apple_tv_720.rb +14 -0
- data/lib/lib/platform/dta/dta.rb +35 -0
- data/lib/lib/platform/dta/dta_1080/dta_1080.rb +15 -0
- data/lib/lib/platform/dta/dta_720/dta_720.rb +15 -0
- data/lib/lib/platform/mdn/mdn.rb +35 -0
- data/lib/lib/platform/mdn/mdn_1080/mdn_1080.rb +15 -0
- data/lib/lib/platform/mdn/mdn_720/mdn_720.rb +15 -0
- data/lib/lib/platform/mobile/android/android.rb +23 -0
- data/lib/lib/platform/mobile/android/android_phone/android_phone.rb +23 -0
- data/lib/lib/platform/mobile/android/android_tablet/android_tablet.rb +23 -0
- data/lib/lib/platform/mobile/ios/ios.rb +23 -0
- data/lib/lib/platform/mobile/ios/ios_phone/ios_phone.rb +23 -0
- data/lib/lib/platform/mobile/ios/ios_tablet/ios_tablet.rb +23 -0
- data/lib/lib/platform/mobile/mobile.rb +102 -0
- data/lib/lib/platform/passport/passport.rb +41 -0
- data/lib/lib/platform/passport/passport1080/passport_1080.rb +15 -0
- data/lib/lib/platform/passport/passport_720/passport_720.rb +14 -0
- data/lib/lib/platform/platform.rb +884 -0
- data/lib/lib/platform/roku/roku.rb +96 -0
- data/lib/lib/platform/roku/roku_720/roku_720.rb +16 -0
- data/lib/lib/platform/roku_tv/roku_tv.rb +33 -0
- data/lib/lib/platform/roku_tv/roku_tv_1080/roku_tv_1080.rb +14 -0
- data/lib/lib/platform/roku_tv/roku_tv_720/roku_tv_720.rb +14 -0
- data/lib/lib/platform/samsung_tv/samsung_tv.rb +31 -0
- data/lib/lib/platform/samsung_tv/samsung_tv_1080/samsung_tv_1080.rb +14 -0
- data/lib/lib/platform/samsung_tv/samsung_tv_720/samsung_tv_720.rb +14 -0
- data/lib/lib/platform/sara/sara.rb +42 -0
- data/lib/lib/platform/sara/sara_1080/sara_1080.rb +15 -0
- data/lib/lib/platform/sara/sara_720/sara_720.rb +15 -0
- data/lib/lib/platform/stb/iguide/iguide.rb +18 -0
- data/lib/lib/platform/stb/iguide/iguide_1080/iguide_1080.rb +14 -0
- data/lib/lib/platform/stb/iguide/iguide_720/iguide_720.rb +14 -0
- data/lib/lib/platform/stb/odn/odn.rb +480 -0
- data/lib/lib/platform/stb/odn/odn_1080/odn_1080.rb +14 -0
- data/lib/lib/platform/stb/odn/odn_720/odn_720.rb +14 -0
- data/lib/lib/platform/stb/odn/odn_720/odn_720_moto/odn_720_moto.rb +14 -0
- data/lib/lib/platform/stb/odn/odn_720/odn_720_sa/odn_720_sa.rb +14 -0
- data/lib/lib/platform/stb/odn/odn_720/odn_720_samsung/odn_720_samsung.rb +14 -0
- data/lib/lib/platform/stb/spectrum/spectrum.rb +48 -0
- data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080.rb +14 -0
- data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis.rb +16 -0
- data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris.rb +15 -0
- data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax.rb +15 -0
- data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch.rb +15 -0
- data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace.rb +14 -0
- data/lib/lib/platform/stb/spectrum/spectrum_720/spectrum_720.rb +14 -0
- data/lib/lib/platform/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris.rb +15 -0
- data/lib/lib/platform/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax.rb +15 -0
- data/lib/lib/platform/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch.rb +15 -0
- data/lib/lib/platform/stb/stb.rb +93 -0
- data/lib/lib/platform/template.txt +16 -0
- data/lib/lib/platform/tivo/tivo.rb +28 -0
- data/lib/lib/platform/tivo/tivo_1080/tivo_1080.rb +15 -0
- data/lib/lib/platform/tivo/tivo_720/tivo_720.rb +14 -0
- data/lib/lib/platform/web/web.rb +51 -0
- data/lib/lib/platform_libs/roku/roku_controller.rb +254 -0
- data/lib/lib/prereqs/prereqs.rb +17 -0
- data/lib/lib/prereqs/prereqs_for_dut.rb +14 -0
- data/lib/lib/prereqs/prereqs_for_test.rb +14 -0
- data/lib/lib/remotes/remotes.rb +8 -0
- data/lib/lib/remotes/stb/spectrum/spectrum_remotes.rb +22 -0
- data/lib/lib/roi/black/black_roi.rb +125 -0
- data/lib/lib/roi/color/color_roi.rb +138 -0
- data/lib/lib/roi/image/image_roi.rb +187 -0
- data/lib/lib/roi/roi.rb +1064 -0
- data/lib/lib/roi/template_roi.txt +9 -0
- data/lib/lib/roi/text/text_roi.rb +187 -0
- data/lib/lib/roi/video/video_roi.rb +98 -0
- data/lib/lib/screen/screen.rb +183 -0
- data/lib/lib/screen/template.txt +7 -0
- data/lib/lib/screen/template_screen.txt +10 -0
- data/lib/lib/screens/apple_tv/apple_tv_screens.rb +44 -0
- data/lib/lib/screens/dta/dta_screens.rb +49 -0
- data/lib/lib/screens/mdn/mdn_screens.rb +49 -0
- data/lib/lib/screens/mobile/android/android_phone/android_phone_screens.rb +28 -0
- data/lib/lib/screens/mobile/android/android_screens.rb +40 -0
- data/lib/lib/screens/mobile/android/android_tablet/android_tablet_screens.rb +29 -0
- data/lib/lib/screens/mobile/ios/ios_phone/ios_phone_screens.rb +22 -0
- data/lib/lib/screens/mobile/ios/ios_screens.rb +39 -0
- data/lib/lib/screens/mobile/ios/ios_tablet/ios_tablet_screens.rb +20 -0
- data/lib/lib/screens/mobile/mobile_screens.rb +18 -0
- data/lib/lib/screens/passport/passport_screens.rb +42 -0
- data/lib/lib/screens/roku/roku_screens.rb +72 -0
- data/lib/lib/screens/roku_tv/roku_tv_screens.rb +43 -0
- data/lib/lib/screens/samsung_tv/samsung_tv_screens.rb +44 -0
- data/lib/lib/screens/sara/sara_screens.rb +49 -0
- data/lib/lib/screens/screens.rb +23 -0
- data/lib/lib/screens/stb/iguide/iguide_1080/iguide_1080_screens.rb +56 -0
- data/lib/lib/screens/stb/iguide/iguide_720/iguide_720_screens.rb +56 -0
- data/lib/lib/screens/stb/iguide/iguide_screens.rb +54 -0
- data/lib/lib/screens/stb/odn/odn_screens.rb +40 -0
- data/lib/lib/screens/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_screens.rb +18 -0
- data/lib/lib/screens/stb/spectrum/spectrum_screens.rb +48 -0
- data/lib/lib/screens/stb/stb_screens.rb +13 -0
- data/lib/lib/screens/template.txt +52 -0
- data/lib/lib/screens/tivo/tivo_screens.rb +44 -0
- data/lib/lib/selenium/appium/appium.rb +388 -0
- data/lib/lib/selenium/selenium.rb +466 -0
- data/lib/lib/selenium/webdriver/webdriver.rb +254 -0
- data/lib/lib/test_case/boilerplate/functional.rb +7 -0
- data/lib/lib/test_case/boilerplate/performance.rb +7 -0
- data/lib/lib/test_case/ci_test.rb +47 -0
- data/lib/lib/test_case/functional_test_case.rb +27 -0
- data/lib/lib/test_case/make_boilerplate.rb +32 -0
- data/lib/lib/test_case/monitoring/apple_monitor.rb +104 -0
- data/lib/lib/test_case/monitoring/base_monitor.rb +140 -0
- data/lib/lib/test_case/monitoring/dta_monitor.rb +53 -0
- data/lib/lib/test_case/monitoring/iguide_monitor.rb +72 -0
- data/lib/lib/test_case/monitoring/mdn_monitor.rb +28 -0
- data/lib/lib/test_case/monitoring/monitoring_test.rb +111 -0
- data/lib/lib/test_case/monitoring/odn_monitor.rb +137 -0
- data/lib/lib/test_case/monitoring/passport_monitor.rb +50 -0
- data/lib/lib/test_case/monitoring/report_monitor.rb +178 -0
- data/lib/lib/test_case/monitoring/roku_monitor.rb +102 -0
- data/lib/lib/test_case/monitoring/sara_monitor.rb +33 -0
- data/lib/lib/test_case/monitoring/spec_monitor.rb +154 -0
- data/lib/lib/test_case/performance_test_case.rb +29 -0
- data/lib/lib/test_case/test_case.rb +1055 -0
- data/lib/lib/test_case/test_error.rb +29 -0
- data/lib/lib/test_case/test_exception.rb +9 -0
- data/lib/lib/test_case/test_status.rb +39 -0
- data/lib/lib/test_case/test_step.rb +156 -0
- data/lib/lib/test_case/test_trace.rb +80 -0
- data/lib/lib/test_data.rb +222 -0
- data/lib/lib/test_wrapper.rb +146 -0
- data/lib/misc/get_latest_android.sh +14 -0
- data/lib/misc/get_latest_ios.sh +14 -0
- data/lib/package-lock.json +3 -0
- data/lib/run_test.rb +4 -0
- data/lib/script_validator.rb +48 -0
- data/lib/syntax_eval.rb +151 -0
- data/lib/tools/convert_old_scripts.rb +100 -0
- data/lib/tools/find_duplicate_rois.rb +27 -0
- data/lib/tools/roku/inspector.rb +130 -0
- data/lib/tools/syntax_checker.rb +83 -0
- data/lib/upload_ref_images.rb +255 -0
- metadata +912 -0
@@ -0,0 +1,438 @@
|
|
1
|
+
require './dsllib/common/utils/tmc_utils'
|
2
|
+
require './dsllib/performance/perf_lib'
|
3
|
+
|
4
|
+
def measure_tune(from_channel_type, to_channel_type, from_channel, to_channel, tune_type='direct', cache_clear=false)
|
5
|
+
if (from_channel_type == to_channel_type and to_channel_type == 'mod')
|
6
|
+
measure_tune_guide_mod_mod(from_channel_type, to_channel_type, from_channel, to_channel, tune_type='direct')
|
7
|
+
return
|
8
|
+
end
|
9
|
+
screen_area = stb_img_roi(:all_screen_but_info_banner)
|
10
|
+
debug_log = false
|
11
|
+
if from_channel_type == 'analog' or to_channel_type == 'analog'
|
12
|
+
tcunsupported "Box['#{fetch_stb_model}'] not supported." unless stb_capable_of? 'ANALOG'
|
13
|
+
end
|
14
|
+
tcfail "From and to channels cannot be the same" if (from_channel == to_channel)
|
15
|
+
tcfail "Failed to soft power STB" unless power_on_stb?
|
16
|
+
log Elog::ELogLevel::INFO2, "#{tune_type} tune from channel: #{from_channel} to channel: #{to_channel}"
|
17
|
+
#Verify video on from_channel
|
18
|
+
if(cache_clear)
|
19
|
+
start_clear_chan=(@test_case.options[:clear_tuner_cache_start_channel]==nil)? 516 : @test_case.options[:clear_tuner_cache_start_channel]
|
20
|
+
tcfail "Could not clear tuner cache" unless clear_tuner_caches?(start_clear_chan, 6)
|
21
|
+
end
|
22
|
+
tcfail "Could not get video on from_channel: #{from_channel}" if initialize_execution(from_channel) == false
|
23
|
+
tcfail "Tuned to wrong from channel: #{from_channel}" if(!perf_verify_channel_tune? from_channel)
|
24
|
+
|
25
|
+
press_exit_sleep
|
26
|
+
if(tune_type=='guide')
|
27
|
+
sleep 10.sec
|
28
|
+
press_guide_sleep
|
29
|
+
perf_tune_to_channel(to_channel)
|
30
|
+
sleep 4.sec
|
31
|
+
loginfo3 "Screen before pressing select",true,false,"guide"
|
32
|
+
press_select 0
|
33
|
+
else
|
34
|
+
perf_tune_to_channel(to_channel)
|
35
|
+
loginfo3 "Screen before channel starts changing",true,false,"guide"
|
36
|
+
end
|
37
|
+
startTime = Time.now
|
38
|
+
#tcfail "Video did not pause after #{tune_type} tuning to channel: #{to_channel}" if (wait_till_video_freezes_playing(5000,80,2) == 0)
|
39
|
+
tcfail "Video did not go black after #{tune_type} tuning to channel: #{to_channel}" if (wait_till_roi_is_black(screen_area, 5000,0,2) == 0)
|
40
|
+
|
41
|
+
stopTime = Time.now
|
42
|
+
tuneTime = time_diff_milli(startTime, stopTime)
|
43
|
+
log Elog::ELogLevel::INFO2, "Video froze after: #{tuneTime.to_s}"
|
44
|
+
#tcfail "Video not playing after #{tune_type} tuning to channel: #{to_channel}" if (wait_till_video_is_playing(15000,0,2) == 0)
|
45
|
+
tcfail "Video not playing after #{tune_type} tuning to channel: #{to_channel}" if (wait_till_roi_is_not_black(screen_area, 15000,0,2) == 0)
|
46
|
+
stopTime = Time.now
|
47
|
+
tuneTime = time_diff_milli(startTime, stopTime)
|
48
|
+
tcfail "Test took too long" if (tuneTime > 15000)
|
49
|
+
log Elog::ELogLevel::INFO2, "Long tune time" if (tuneTime > 5000)
|
50
|
+
press_exit_sleep
|
51
|
+
tcfail "Could not verify to channel: #{to_channel}: for #{tune_type} tune" unless perf_verify_channel_tune? to_channel
|
52
|
+
post_result(startTime.to_f, stopTime.to_f)
|
53
|
+
log Elog::ELogLevel::DURATION,from_channel_type + " to " + to_channel_type + " " + tune_type + " tune|" + tuneTime.to_s
|
54
|
+
end
|
55
|
+
|
56
|
+
def measure_tune_guide_mod_mod(from_channel_type, to_channel_type, from_channel, to_channel, tune_type='direct')
|
57
|
+
debug_log = false
|
58
|
+
tcfail "From and to channels cannot be the same" if (from_channel == to_channel)
|
59
|
+
#screenROI_before = DSL::ImageRoi.new(56,13,192,129,75, "")
|
60
|
+
#screenROI_after = DSL::ImageRoi.new(56,13,192,129,75, "")
|
61
|
+
screenROI_before = stb_img_roi(:guide_info)
|
62
|
+
screenROI_after = stb_img_roi(:guide_info)
|
63
|
+
|
64
|
+
log Elog::ELogLevel::INFO2, "#{tune_type} tune from channel: #{from_channel} to channel: #{to_channel}"
|
65
|
+
#Verify video on from_channel
|
66
|
+
tcfail "Could not get video on from_channel: #{from_channel}" if initialize_execution(from_channel) == false
|
67
|
+
press_exit_sleep
|
68
|
+
tcfail "Tuned to wrong from channel: #{from_channel}" if(!perf_verify_channel_tune? from_channel)
|
69
|
+
if(tune_type=='guide')
|
70
|
+
press_guide_sleep
|
71
|
+
sleep 4.sec
|
72
|
+
perf_tune_to_channel(to_channel)
|
73
|
+
sleep 4.sec
|
74
|
+
filename = (capture_screen_to("tmp_stb_#{$stb_id}.jpg"))
|
75
|
+
screenROI_before.referenceImage = filename
|
76
|
+
loginfo3 "Screen before pressing select",true,false,"image"
|
77
|
+
press_select 0
|
78
|
+
else
|
79
|
+
sleep 2.sec
|
80
|
+
filename = (capture_screen_to("tmp_stb_#{$stb_id}.jpg"))
|
81
|
+
screenROI_before.referenceImage = filename
|
82
|
+
loginfo3 "Screen before pressing tuning to channel",true,false,"image"
|
83
|
+
perf_tune_to_channel(to_channel)
|
84
|
+
end
|
85
|
+
times = time_for_screen_change(screenROI_before, screenROI_after, 15, false)
|
86
|
+
dataValue = time_diff_milli(times[0], times[1])
|
87
|
+
tcfail "Failed to go to channel #{to_channel}" if(dataValue == 0)
|
88
|
+
dataValue = dataValue.to_s
|
89
|
+
post_result(times[0].to_f, times[1].to_f) if @test_case.send(:is_sword?)
|
90
|
+
log(Elog::ELogLevel::DURATION,from_channel_type + " to " + to_channel_type + " " + tune_type + " tune|" + dataValue)
|
91
|
+
press_exit_sleep
|
92
|
+
end
|
93
|
+
|
94
|
+
def measure_burst_tune(channels, burst_type)
|
95
|
+
debug_log = false
|
96
|
+
start_chan = channels[0]
|
97
|
+
final_chan = channels[1]
|
98
|
+
|
99
|
+
if(channels.length > 2)
|
100
|
+
channel_tunes = channels[2]
|
101
|
+
else
|
102
|
+
channel_tunes = "5"
|
103
|
+
end
|
104
|
+
start_chan_num = (Integer(start_chan) rescue nil)
|
105
|
+
final_chan_num = (Integer(final_chan) rescue nil)
|
106
|
+
channel_tunes = (Integer(channel_tunes) rescue nil)
|
107
|
+
chan_up = true
|
108
|
+
if start_chan_num != nil and final_chan_num != nil
|
109
|
+
chan_up = false if final_chan_num < start_chan_num
|
110
|
+
end
|
111
|
+
channel_tunes = 5 if channel_tunes == nil
|
112
|
+
|
113
|
+
guide_chan_ROI = lookup_ocr_roi(:guide_channel)
|
114
|
+
if guide_chan_ROI.class == Array
|
115
|
+
guide_chan_ROI.collect{|roi| roi.expectedText = final_chan.to_s}
|
116
|
+
else
|
117
|
+
guide_chan_ROI.expectedText = final_chan.to_s
|
118
|
+
end
|
119
|
+
|
120
|
+
#guide_chan_ROI = DSL::OcrRoi.new(98, 21, 117, 67, 6, "", final_chan.to_s)
|
121
|
+
log Elog::ELogLevel::INFO, "Initializing on channel:" + start_chan if(debug_log == true)
|
122
|
+
tcfail "Could not get initial video displayed on channel #{start_chan}" if(initialize_execution(start_chan) == false)
|
123
|
+
|
124
|
+
log Elog::ELogLevel::DEBUG, "Initial channel displayed" if(debug_log == true)
|
125
|
+
|
126
|
+
#start timer
|
127
|
+
startTime = Time.now
|
128
|
+
for k in 1..channel_tunes
|
129
|
+
if chan_up
|
130
|
+
press_channel_up(0.ms())
|
131
|
+
dir = 'up'
|
132
|
+
else
|
133
|
+
press_channel_down(0.ms())
|
134
|
+
dir = 'down'
|
135
|
+
end
|
136
|
+
if(k==1)
|
137
|
+
log Elog::ELogLevel::DEBUG, "Warning: Video did not pause" if (wait_till_video_freezes_playing(2000, 50, 2) == 0)
|
138
|
+
#tcfail "Video did not pause" if (wait_till_video_freezes_playing(1500, 100, 3) == 0)
|
139
|
+
end
|
140
|
+
sleep 500.ms
|
141
|
+
end
|
142
|
+
tcfail "Video not playing" if (wait_till_video_is_playing(15000, 100, 2, area='all_but_info_banner') == 0)
|
143
|
+
|
144
|
+
stopTime = Time.now
|
145
|
+
|
146
|
+
_logmessage Elog::ELogLevel::INFO, "Video playing", true, false
|
147
|
+
for i in 1..3
|
148
|
+
press_guide_sleep
|
149
|
+
break if text_on_screen_similar guide_chan_ROI, final_chan.to_s
|
150
|
+
tcfail "Could not verify final channel number" if i > 2
|
151
|
+
press_exit_sleep
|
152
|
+
end
|
153
|
+
dataValue = time_diff_milli(startTime, stopTime).to_s
|
154
|
+
log Elog::ELogLevel::DURATION,"Burst tune " + burst_type + "|" + dataValue
|
155
|
+
post_result(startTime.to_f, stopTime.to_f)
|
156
|
+
end
|
157
|
+
|
158
|
+
def measure_guide_tune(from_channel, to_channel)
|
159
|
+
#colorROI = DSL::ImageRoi.new(199,313,4,4,80, "")
|
160
|
+
#color = [0, 115, 154]
|
161
|
+
#textROI = DSL::OcrRoi.new(121,52,47,28, 6, "", "")
|
162
|
+
|
163
|
+
loginfo2 "Guide tune from channel #{from_channel} to #{to_channel}"
|
164
|
+
screenROI_before = stb_img_roi(:guide_network_logo)
|
165
|
+
screenROI_after = stb_img_roi(:guide_network_logo)
|
166
|
+
#screenROI_before = DSL::ImageRoi.new(0,25,73,39,70, "")
|
167
|
+
#screenROI_after = DSL::ImageRoi.new(0,25,73,39,70, "")
|
168
|
+
timeout=15
|
169
|
+
press_guide_sleep unless guide_banner_appears?
|
170
|
+
sleep 5.sec
|
171
|
+
unless guide_banner_appears?
|
172
|
+
#loginfo3 "Failed to go to guide",true,false,"image"
|
173
|
+
tcfail "Failed to go to guide"
|
174
|
+
end
|
175
|
+
perf_tune_to_channel(from_channel)
|
176
|
+
sleep 3.sec
|
177
|
+
filename = (capture_screen_to("tmp_stb_#{$stb_id}.jpg"))
|
178
|
+
screenROI_before.referenceImage = filename
|
179
|
+
sleep 5.sec
|
180
|
+
loginfo3 "Initial screen",true,false,"image"
|
181
|
+
perf_tune_to_channel(to_channel,0)
|
182
|
+
#times = time_to_display_text(textROI, to_channel, 15)
|
183
|
+
times = time_for_screen_change(screenROI_before, screenROI_after, 15, false)
|
184
|
+
#times = time_to_display_color(colorROI, color, timeout)
|
185
|
+
#log(Elog::ELogLevel::DEBUG, "times[0]=" + times[0].to_s + " times[1]=" + times[1].to_s) if(debug_log == true)
|
186
|
+
dataValue = time_diff_milli(times[0], times[1])
|
187
|
+
tcfail "Failed to go to channel #{to_channel}" if(dataValue == 0)
|
188
|
+
dataValue_s = dataValue.to_s
|
189
|
+
#tcfail "Failed to get a valid sample #{dataValue_s} ms" if(dataValue < 100)
|
190
|
+
post_result(times[0].to_f, times[1].to_f) if @test_case.send(:is_sword?)
|
191
|
+
log(Elog::ELogLevel::DURATION,"Time to channel #{to_channel}|" + dataValue_s)
|
192
|
+
end
|
193
|
+
|
194
|
+
def measure_guide_navigate(direction, from_channel=nil)
|
195
|
+
debug_log = false
|
196
|
+
if direction == 'down' or direction == 'up' or direction == 'page_up' or direction == 'page_down'
|
197
|
+
screenROI = :guide_focused_program_channel
|
198
|
+
else
|
199
|
+
screenROI = :guide_current_time_slot
|
200
|
+
end
|
201
|
+
timeout=15
|
202
|
+
unless guide_banner_appears?
|
203
|
+
press_guide_sleep
|
204
|
+
sleep 3.sec
|
205
|
+
tcfail "Failed to go to guide" unless guide_banner_appears?
|
206
|
+
end
|
207
|
+
unless from_channel == nil
|
208
|
+
perf_tune_to_channel(from_channel)
|
209
|
+
sleep 5.sec
|
210
|
+
end
|
211
|
+
loginfo3 "Initial screen",true,false,"image"
|
212
|
+
key='up_arrow'
|
213
|
+
if direction == 'down'
|
214
|
+
key='down_arrow'
|
215
|
+
elsif direction == 'up'
|
216
|
+
key='up_arrow'
|
217
|
+
elsif direction == 'left'
|
218
|
+
key='left_arrow'
|
219
|
+
elsif direction == 'right'
|
220
|
+
key='right_arrow'
|
221
|
+
elsif direction == 'page_up'
|
222
|
+
key='page_up'
|
223
|
+
elsif direction == 'page_down'
|
224
|
+
key='page_down'
|
225
|
+
end
|
226
|
+
if(direction == 'left' or direction == 'right' )
|
227
|
+
api_hp_time_for_screen_change screenROI, key=key, timeout=5000, log_text="Time for screen to change", screen_capture_every_ms=100, verifies=1, between_verifies_ms=0, report_to_sword=true, roi_type="GOLDENROI:Spectrum101_H_DEFAULT"
|
228
|
+
else
|
229
|
+
api_hp_time_to_number_update screenROI, original_value=nil, key=key, timeout_ms=2000, log_text="Time to arrow up", screen_capture_every_ms=10, verifies=1, between_verifies_ms=0, report_to_sword=true, roi_type="OCRROI:default"
|
230
|
+
end
|
231
|
+
end
|
232
|
+
|
233
|
+
def measure_guide_navigate_old(direction, from_channel=nil)
|
234
|
+
debug_log = false
|
235
|
+
if direction == 'down' or direction == 'up' or direction == 'page_up' or direction == 'page_down'
|
236
|
+
screenROI_before = stb_img_roi(:guide_network_logo)
|
237
|
+
screenROI_after = stb_img_roi(:guide_network_logo)
|
238
|
+
else
|
239
|
+
screenROI_before = stb_img_roi(:guide_current_time_slot)
|
240
|
+
screenROI_after = stb_img_roi(:guide_current_time_slot)
|
241
|
+
end
|
242
|
+
timeout=15
|
243
|
+
unless guide_banner_appears?
|
244
|
+
press_guide_sleep
|
245
|
+
sleep 3.sec
|
246
|
+
tcfail "Failed to go to guide" unless guide_banner_appears?
|
247
|
+
end
|
248
|
+
unless from_channel == nil
|
249
|
+
perf_tune_to_channel(from_channel)
|
250
|
+
sleep 5.sec
|
251
|
+
end
|
252
|
+
filename = (capture_screen_to("tmp_stb_#{$stb_id}.jpg"))
|
253
|
+
screenROI_before.referenceImage = filename
|
254
|
+
loginfo3 "Initial screen",true,false,"image"
|
255
|
+
if direction == 'down'
|
256
|
+
press_down_arrow 0
|
257
|
+
elsif direction == 'up'
|
258
|
+
press_up_arrow 0
|
259
|
+
elsif direction == 'left'
|
260
|
+
press_left_arrow 0
|
261
|
+
elsif direction == 'right'
|
262
|
+
press_right_arrow 0
|
263
|
+
elsif direction == 'page_up'
|
264
|
+
press_page_up 0
|
265
|
+
elsif direction == 'page_down'
|
266
|
+
press_page_down 0
|
267
|
+
end
|
268
|
+
startTime=Time.now()
|
269
|
+
loginfo2 "Before time_for_screen_change function"
|
270
|
+
times = time_for_screen_change(screenROI_before, screenROI_after, 15, false)
|
271
|
+
stopTime = times[1]
|
272
|
+
|
273
|
+
loginfo2 "startTime=#{startTime.strftime('%H:%M:%S.%N')}, stopTime=#{stopTime.strftime('%H:%M:%S.%N')}"
|
274
|
+
#log(Elog::ELogLevel::DEBUG, "times[0]=" + startTime.to_s + " times[1]=" + times[1].to_s) if(debug_log == true)
|
275
|
+
dataValue = time_diff_milli(startTime, times[1])
|
276
|
+
tcfail "Failed to navigate #{direction}" if(dataValue == 0)
|
277
|
+
dataValue = dataValue.to_s
|
278
|
+
post_result(startTime.to_f, times[1].to_f) if @test_case.send(:is_sword?)
|
279
|
+
log(Elog::ELogLevel::DURATION,"Time to navigate #{direction}|" + dataValue)
|
280
|
+
end
|
281
|
+
|
282
|
+
def measure_vod_portal_tune(vod_portal_channel)
|
283
|
+
if (stb_high_def?)
|
284
|
+
timeout=15
|
285
|
+
press_c_sleep
|
286
|
+
press_c_sleep
|
287
|
+
press_c_sleep
|
288
|
+
press_exit_sleep
|
289
|
+
tune_immediately_to @test_case.options[:channels][0]
|
290
|
+
sleep 5.sec
|
291
|
+
perf_tune_to_channel vod_portal_channel
|
292
|
+
api_time_to_display_image_area :vod_portal_home_logo, timeout_ms=10000, log_text="Time to display vod portal", screen_capture_every_ms=100, verifies=1, between_verifies_ms=0, report_to_sword=true, roi_type="DUALROI:MOTO"
|
293
|
+
else
|
294
|
+
debug_log = false
|
295
|
+
icon_roi = stb_img_roi(:vod_portal_home_logo)
|
296
|
+
timeout=15
|
297
|
+
press_c_sleep
|
298
|
+
press_c_sleep
|
299
|
+
press_c_sleep
|
300
|
+
press_exit_sleep
|
301
|
+
tune_immediately_to @test_case.options[:channels][0]
|
302
|
+
sleep 5.sec
|
303
|
+
perf_tune_to_channel vod_portal_channel
|
304
|
+
times = time_to_display_image(icon_roi, 15)
|
305
|
+
log(Elog::ELogLevel::DEBUG, "times[0]=" + times[0].to_s + " times[1]=" + times[1].to_s) if(debug_log == true)
|
306
|
+
dataValue = time_diff_milli(times[0], times[1])
|
307
|
+
tcfail "Failed to go vod portal #{vod_portal_channel}" if(dataValue == 0)
|
308
|
+
dataValue = dataValue.to_s
|
309
|
+
post_result(times[0].to_f, times[1].to_f) if @test_case.send(:is_sword?)
|
310
|
+
log(Elog::ELogLevel::DURATION,"Time to vod portal channel: #{vod_portal_channel}|" + dataValue)
|
311
|
+
end
|
312
|
+
end
|
313
|
+
|
314
|
+
|
315
|
+
def play_dvr_asset report_duration=false
|
316
|
+
if $rti_flag
|
317
|
+
tcunsupported "Box['#{fetch_stb_model}'] not supported." unless (stb_capable_of? 'DVR' or odn_web_server_odn_diags_mrdvr_authorized?)
|
318
|
+
else
|
319
|
+
tcunsupported "Box['#{fetch_stb_model}'] not supported." unless stb_capable_of? 'DVR'
|
320
|
+
end
|
321
|
+
tcfail "Failed to soft power STB" unless power_on_stb?
|
322
|
+
screen_area = stb_img_roi(:partial_screen_bottom)
|
323
|
+
videoROI = DSL::ImageRoi.new(70,188,526,60, 0, "")
|
324
|
+
tune_immediately_to @test_case.options[:channels][0]
|
325
|
+
#show_list_launch_and_verify
|
326
|
+
press_list_sleep
|
327
|
+
|
328
|
+
if !show_list_l_tab_highlighted?
|
329
|
+
loginfo3 "Old DVR UI detected"
|
330
|
+
unless !show_list_screen_empty_list?
|
331
|
+
press_exit_sleep
|
332
|
+
#tune_immediately_to @test_case.options[:channels][0]
|
333
|
+
press_record_sleep
|
334
|
+
sleep 20.sec
|
335
|
+
#show_list_launch_and_verify
|
336
|
+
press_list_sleep
|
337
|
+
tcfail "List is empty" unless !show_list_screen_empty_list?
|
338
|
+
end
|
339
|
+
press_select_sleep
|
340
|
+
sleep 2.sec
|
341
|
+
sleep 2.sec
|
342
|
+
press_select 0
|
343
|
+
else
|
344
|
+
loginfo3 "New DVR UI detected"
|
345
|
+
press_select_sleep
|
346
|
+
unless show_list_l_menu_highlighted? 1
|
347
|
+
press_exit_sleep
|
348
|
+
#tune_immediately_to @test_case.options[:channels][0]
|
349
|
+
press_record_sleep
|
350
|
+
sleep 20.sec
|
351
|
+
#show_list_launch_and_verify
|
352
|
+
press_list_sleep
|
353
|
+
tcfail "List is empty" unless show_list_l_menu_highlighted? 1
|
354
|
+
end
|
355
|
+
press_select_sleep if show_list_l_menu_highlighted?
|
356
|
+
loginfo3 "Screen before pressing first select",true,false,"video"
|
357
|
+
sleep 3.sec
|
358
|
+
# loginfo3 "Check for show_list_series_episode_menu_item_highlighted",true,false,"video"
|
359
|
+
# if show_list_series_episode_menu_item_highlighted?
|
360
|
+
# loginfo3 "Select for show_list_series_episode_menu_item_highlighted"
|
361
|
+
# press_select_sleep
|
362
|
+
# sleep 3.sec
|
363
|
+
# end
|
364
|
+
loginfo3 "Check for show_list_episode_menu_item_highlighted",true,false,"video"
|
365
|
+
if show_list_episode_menu_item_highlighted?
|
366
|
+
loginfo3 "Select for show_list_episode_menu_item_highlighted"
|
367
|
+
press_select_sleep
|
368
|
+
sleep 3.sec
|
369
|
+
end
|
370
|
+
press_select_sleep
|
371
|
+
sleep 3.sec
|
372
|
+
startTime = Time.now
|
373
|
+
loginfo3 "Screen before pressing select, startTime=#{startTime.strftime('%H:%M:%S.%N')}",true,false,"video"
|
374
|
+
press_select 0
|
375
|
+
press_select 0
|
376
|
+
press_select 0
|
377
|
+
end
|
378
|
+
startTime = Time.now
|
379
|
+
#wait_till_black_screen(500, 0)
|
380
|
+
# if (wait_till_roi_is_black(videoROI, 5000,50,1,45) == 0)
|
381
|
+
# press_stop_sleep
|
382
|
+
# tcfail "Screen did not transition to black within 5 seconds"
|
383
|
+
# end
|
384
|
+
|
385
|
+
#tcfail "No video" if(wait_till_video_is_playing(15000, 100, 2, 'bottom',:dvr_vod_starting) == 0)
|
386
|
+
#if (wait_till_roi_is_not_black(videoROI, 15000,50,1, 45) == 0)
|
387
|
+
if(wait_till_video_is_playing(15000, 50, 2, 'side') == 0)
|
388
|
+
press_stop_sleep
|
389
|
+
tcfail "No video"
|
390
|
+
end
|
391
|
+
|
392
|
+
endTime = Time.now
|
393
|
+
press_stop_sleep
|
394
|
+
loginfo3 "StopTime=#{endTime.strftime('%H:%M:%S.%N')}"
|
395
|
+
# if (wait_till_roi_is_black(videoROI, 1000,50,1,45) != 0)
|
396
|
+
# tcfail "No video" if (wait_till_roi_is_not_black(videoROI, 5000,50,1, 45) == 0)
|
397
|
+
# endTime = Time.now
|
398
|
+
# loginfo3 "New StopTime=#{endTime.strftime('%H:%M:%S.%N')}"
|
399
|
+
# end
|
400
|
+
# tcfail "No video" if(wait_till_video_is_playing(4000, 100, 2, 'all_screen_but_info_banner') == 0)
|
401
|
+
#press_select_sleep
|
402
|
+
if report_duration==true
|
403
|
+
dataValue = time_diff_milli(startTime, endTime).to_s
|
404
|
+
post_result(startTime.to_f, endTime.to_f)
|
405
|
+
log Elog::ELogLevel::DURATION,"DVR start time|" + dataValue
|
406
|
+
end
|
407
|
+
end
|
408
|
+
|
409
|
+
def eos_pop_time it=1,resume_play=true
|
410
|
+
if $rti_flag
|
411
|
+
tcunsupported "Box['#{fetch_stb_model}'] not supported." unless (stb_capable_of? 'DVR' or odn_web_server_odn_diags_mrdvr_authorized?)
|
412
|
+
else
|
413
|
+
tcunsupported "Box['#{fetch_stb_model}'] not supported." unless stb_capable_of? 'DVR'
|
414
|
+
end
|
415
|
+
|
416
|
+
colorROI = stb_img_roi(:end_of_dvr_session_highlight)
|
417
|
+
color = [0,101,156]
|
418
|
+
play_dvr_asset false
|
419
|
+
|
420
|
+
dvr_eos_menu_roi = lookup_ocr_roi(:dvr_stop_and_save)
|
421
|
+
if text_on_screen_similar dvr_eos_menu_roi, "Stop and Save"
|
422
|
+
press_down_arrow_sleep
|
423
|
+
press_down_arrow_sleep
|
424
|
+
press_select 3.sec
|
425
|
+
else
|
426
|
+
sim = color_similarity_to_screen colorROI, color[0], color[1], color[2]
|
427
|
+
tcfail "Did not display start menu" if sim < 0.8
|
428
|
+
press_select 3.sec
|
429
|
+
end
|
430
|
+
|
431
|
+
press_stop 0
|
432
|
+
times = time_to_display_color(colorROI, color, 10)
|
433
|
+
dataValue = time_diff_milli(times[0], times[1])
|
434
|
+
tcfail "Failed to display dvr end of session screen" if(dataValue == 0)
|
435
|
+
dataValue = dataValue.to_s
|
436
|
+
post_result(times[0].to_f, times[1].to_f) if @test_case.send(:is_sword?)
|
437
|
+
log(Elog::ELogLevel::DURATION,"Time to dvr end of session #{it}|" + dataValue)
|
438
|
+
end
|
@@ -0,0 +1,660 @@
|
|
1
|
+
require './dsllib/common/utils/tmc_utils'
|
2
|
+
require './dsllib/performance/measure_tune'
|
3
|
+
require 'json'
|
4
|
+
require 'date'
|
5
|
+
require 'base64'
|
6
|
+
require './lib/helpers/tmc_helpers/tmc_helpers'
|
7
|
+
|
8
|
+
module PerfLib
|
9
|
+
#### Reset the STB for performace test execution ####
|
10
|
+
def _perf_reset_stb()
|
11
|
+
# Reset packages and credit limit for STB
|
12
|
+
_reset_stb_failed "Failed to reset packages" unless _reset_packages_for_stb
|
13
|
+
|
14
|
+
loginfo2 "Resetting NVRAM...",false
|
15
|
+
|
16
|
+
reset_nvram_from_mas
|
17
|
+
sleep 5.min
|
18
|
+
|
19
|
+
# Reboot STB to reset it's state
|
20
|
+
loginfo2 "Rebooting stb to reset state ...",false
|
21
|
+
(_reset_stb_failed "Failed to reboot STB using AC power") unless stb_reboot_using_ac_power
|
22
|
+
(_reset_stb_failed "Failed to Reboot STB") unless stb_wait_till_finish_rebooting(true)
|
23
|
+
loginfo2 "Successfully rebooted STB",false
|
24
|
+
|
25
|
+
# Tuning to home channel
|
26
|
+
loginfo2 "Tuning to home channel : [#{fetch_option(:a_home_channel)}] ..."
|
27
|
+
press_exit_sleep
|
28
|
+
tune_immediately_to fetch_option(:a_home_channel)
|
29
|
+
press_exit_sleep
|
30
|
+
end
|
31
|
+
|
32
|
+
#
|
33
|
+
# Split array from a CSV in options[plural_symbol] into an array and put
|
34
|
+
# it back in options[plural_symbol]. Then put options[plural_symbol][stbid]
|
35
|
+
# into options[singular_symbol] If options[singular_symbol] is already
|
36
|
+
# populated, this function will not change anything
|
37
|
+
#
|
38
|
+
# IE: split_array_to(stbid, :models, :model)#
|
39
|
+
|
40
|
+
def split_array_to(stbid, plural_symbol, singular_symbol, mandatory = true)
|
41
|
+
if (options[singular_symbol] == nil)
|
42
|
+
|
43
|
+
if (options[plural_symbol] == nil)
|
44
|
+
if (mandatory)
|
45
|
+
raise new Exception("No :" + plural_symbol.to_s + " or :" + singular_symbol.to_s + " in script options. At least one is required")
|
46
|
+
else
|
47
|
+
loginfo(":" + plural_symbol.to_s + " or :" + singular_symbol.to_s + " not found but is not mandatory for this test.")
|
48
|
+
return
|
49
|
+
end
|
50
|
+
end
|
51
|
+
# If we're here, we have an options[plural_symbol]
|
52
|
+
if (options[plural_symbol].class == String)
|
53
|
+
options[plural_symbol] = options[plural_symbol].split(",")
|
54
|
+
end
|
55
|
+
if (options[plural_symbol].length < stbid)
|
56
|
+
err = "Not enough " + plural_symbol.to_s + " to assign one to stb ID " + stbid.to_s
|
57
|
+
if (mandatory)
|
58
|
+
raise new Exception(err)
|
59
|
+
else
|
60
|
+
loginfo(err + " but they were not mandatory for this test.");
|
61
|
+
return
|
62
|
+
end
|
63
|
+
end
|
64
|
+
options[singular_symbol] = options[plural_symbol].at(stbid - 1)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def get_channels(channel_type)
|
69
|
+
channel_type = fetch_option(:head_end).downcase.strip + "_" + channel_type.downcase.strip + "_channels"
|
70
|
+
return fetch_option(channel_type.to_sym).strip.to_arr
|
71
|
+
end
|
72
|
+
|
73
|
+
def perf_initialize_execution()
|
74
|
+
press_exit(5.sec())
|
75
|
+
|
76
|
+
perf_tune_to_channel($initial_tune_channel, 5)
|
77
|
+
|
78
|
+
return true if (perf_verify_video_playing?)
|
79
|
+
|
80
|
+
#loginfo "WARN: Video not playing for INTIAL channel "+$initial_tune_channel+"; Unable to INITIALIZE"
|
81
|
+
loginfo "WARN: Video not playing for INITIAL channel #{$initial_tune_channel}; Unable to INITIALIZE"
|
82
|
+
|
83
|
+
return false
|
84
|
+
end
|
85
|
+
|
86
|
+
def perf_verify_video_playing? time_out_in_milli_sec=1500, retries=10, sleepTimeInSec=1, area='all_but_info_banner'
|
87
|
+
result = false
|
88
|
+
case
|
89
|
+
when (test_case.dut.box_code == 'hnav')
|
90
|
+
videoROI = stb_img_roi(:fullscreen_roi)
|
91
|
+
when area == 'bottom'
|
92
|
+
videoROI = stb_img_roi(:partial_screen_bottom)
|
93
|
+
#videoROI = DSL::ImageRoi.new(8, 217, 630, 128, 0, "")
|
94
|
+
when area == 'top'
|
95
|
+
videoROI = stb_img_roi(:partial_screen_top3)
|
96
|
+
#videoROI = DSL::ImageRoi.new(1, 1, 630, 249, 0, "")
|
97
|
+
when area == 'side'
|
98
|
+
videoROI = stb_img_roi(:partial_screen_side)
|
99
|
+
#videoROI = DSL::ImageRoi.new(7, 10, 296, 333, 0, "")
|
100
|
+
when area == 'top2'
|
101
|
+
videoROI = stb_img_roi(:partial_screen_top2)
|
102
|
+
#videoROI = DSL::ImageRoi.new(10, 60, 610, 197, 0, "")
|
103
|
+
when area == 'all_but_info_banner'
|
104
|
+
videoROI = stb_img_roi(:all_screen_but_info_banner)
|
105
|
+
#videoROI = DSL::ImageRoi.new(1,1,630,345, 0, "")
|
106
|
+
end
|
107
|
+
retries.times do
|
108
|
+
return true if (video_playing? videoROI, time_out_in_milli_sec)
|
109
|
+
#return true if (video_playing? stb_img_roi(:fullscreen_ignore_info_roi), time_out_in_milli_sec)
|
110
|
+
sleep sleepTimeInSec.to_s.to_i.sec unless sleepTimeInSec==0
|
111
|
+
end
|
112
|
+
|
113
|
+
return false
|
114
|
+
end
|
115
|
+
|
116
|
+
def perf_verify_channel_tune? channel_number
|
117
|
+
if $rti_flag == false
|
118
|
+
loginfo3 "Before guide_banner_verify_channel_number"
|
119
|
+
return(guide_banner_verify_channel_number? channel_number)
|
120
|
+
else
|
121
|
+
loginfo3 "Before info_banner_launch_and_verify_channel_number"
|
122
|
+
return(info_banner_launch_and_verify_channel_number channel_number)
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
def perf_time_to_go_to_menu(menu_name)
|
127
|
+
#get values
|
128
|
+
theseROIvalues = eval("fetch_option(:#{menu_name}_roi).to_i_arr(',')")
|
129
|
+
thisTarget = eval("fetch_option(:#{menu_name}_target)")
|
130
|
+
thisKey = eval("fetch_option(:#{menu_name}_keypress)")
|
131
|
+
|
132
|
+
thisROI = OcrRoi.new(theseROIvalues[0], theseROIvalues[1], theseROIvalues[2], theseROIvalues[3], 0, "", thisTarget)
|
133
|
+
times = time_to_go_to_menu(thisROI)
|
134
|
+
if(times[1] > 0)
|
135
|
+
return(times[1] - times[0])
|
136
|
+
else
|
137
|
+
return(0)
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
def time_to_go_to_menu(menu,thisROI, text)
|
142
|
+
#default keypress time
|
143
|
+
key_wait_time = 200.ms()
|
144
|
+
timeout = 15000 #seconds
|
145
|
+
next_error_report_time = 300
|
146
|
+
|
147
|
+
times = Array.new(2)
|
148
|
+
startTime = Time.now()
|
149
|
+
times[0] = startTime;
|
150
|
+
if(menu == "guide")
|
151
|
+
loginfo3 "Screen before pressing 'Guide' button",true,false,"video"
|
152
|
+
press_guide 0
|
153
|
+
elsif(menu == "show_list")
|
154
|
+
loginfo3 "Screen before pressing 'List' button",true,false,"video"
|
155
|
+
press_list 0
|
156
|
+
elsif(menu == "search")
|
157
|
+
loginfo3 "Screen before pressing 'B' button",true,false,"video"
|
158
|
+
press_b 0
|
159
|
+
end
|
160
|
+
#eval("#{thisKey}(key_wait_time)")
|
161
|
+
begin
|
162
|
+
target_found1 = false
|
163
|
+
target_found2 = false
|
164
|
+
target_found1 = screen_matches_for_icon_roi thisROI, thisROI.referenceImage, 1
|
165
|
+
if(target_found1 == true)
|
166
|
+
times[1] = Time.now()
|
167
|
+
sleep 40.ms
|
168
|
+
target_found2 = screen_matches_for_icon_roi thisROI, thisROI.referenceImage, 1
|
169
|
+
end
|
170
|
+
nowTime = Time.now()
|
171
|
+
if (time_diff_milli(startTime, nowTime) > next_error_report_time) and !target_found2 #capture screenshot after each second
|
172
|
+
next_error_report_time+=300
|
173
|
+
loginfo3 "Image still not found, Region=#{thisROI.left}:#{thisROI.top}:#{thisROI.width}:#{thisROI.height}, Threshold=#{thisROI.threshold},",true,true,"menu"
|
174
|
+
end
|
175
|
+
end while time_diff_milli(startTime, nowTime) < timeout and !target_found2
|
176
|
+
if target_found2
|
177
|
+
loginfo3 "Image found, Region=#{thisROI.left}:#{thisROI.top}:#{thisROI.width}:#{thisROI.height}, Threshold=#{thisROI.threshold},",true,true,"menu"
|
178
|
+
else
|
179
|
+
loginfo3 "Image not found, Region=#{thisROI.left}:#{thisROI.top}:#{thisROI.width}:#{thisROI.height}, Threshold=#{thisROI.threshold},",true,true,"menu"
|
180
|
+
times[1] = startTime;
|
181
|
+
end
|
182
|
+
return times
|
183
|
+
end
|
184
|
+
|
185
|
+
def time_to_go_to_guide()
|
186
|
+
#guideROI = DSL::ImageRoi.new(282, 407, 50, 38, 85, "tsimages/icons/odn52/hd/a_icon.JPG")
|
187
|
+
guideROI = stb_img_roi(:guide_screen_b_icon)
|
188
|
+
|
189
|
+
#guideROI = DSL::OcrRoi.new(330, 408, 125, 34, 6, "", "Find Channels")
|
190
|
+
return(time_to_go_to_menu("guide", guideROI, "Find Channels"))
|
191
|
+
end
|
192
|
+
|
193
|
+
def time_to_go_to_show_list()
|
194
|
+
#show_listROI = DSL::OcrRoi.new(45, 22, 79, 40, 6, "", "DVR")
|
195
|
+
#tcunsupported "Box['#{fetch_stb_model}'] not supported." unless stb_capable_of? 'DVR'
|
196
|
+
tcunsupported "Box['#{fetch_stb_model}'] not supported." unless stb_capable_of? 'DVR' or odn_web_server_odn_diags_mrdvr_authorized?
|
197
|
+
show_listROI = lookup_ocr_roi(:show_list_dvr)
|
198
|
+
|
199
|
+
press_list 0
|
200
|
+
#return(time_to_go_to_menu("show_list", show_listROI, "DVR"))
|
201
|
+
return(time_to_display_text(show_listROI, "DVR"))
|
202
|
+
|
203
|
+
|
204
|
+
end
|
205
|
+
|
206
|
+
def perf_tune_to_channel(channel, sleep_time_after_tune=0)
|
207
|
+
loginfo3 "Changed per_key_wait_time to 400 ms"
|
208
|
+
total_wait_time = 0
|
209
|
+
per_key_wait_time = 400
|
210
|
+
key_seq = []
|
211
|
+
channel_arr = channel.to_s.chars.to_a
|
212
|
+
channel_length = channel_arr.length
|
213
|
+
for i in 0..(channel_length-1)
|
214
|
+
#press_key channel_arr[i]
|
215
|
+
instance_eval "press_#{channel_arr[i]} 0"
|
216
|
+
success_log_key_press "#{channel_arr[i]}", per_key_wait_time
|
217
|
+
sleep per_key_wait_time #unless i == channel_length-1
|
218
|
+
end
|
219
|
+
press_select 0 unless channel_length == 4
|
220
|
+
sleep sleep_time_after_tune.to_s.to_i.sec if (sleep_time_after_tune!=0)
|
221
|
+
end
|
222
|
+
|
223
|
+
def perf_tune_to_channel_seq(channel, sleep_time_after_tune=0,add_zeros=true)
|
224
|
+
total_wait_time = 0
|
225
|
+
per_key_wait_time = 200
|
226
|
+
key_seq = []
|
227
|
+
channel_arr = channel.to_s.chars.to_a
|
228
|
+
|
229
|
+
if(add_zeros==true)
|
230
|
+
for i in 1..(4-channel_arr.length)
|
231
|
+
key_seq.push(["0", per_key_wait_time])
|
232
|
+
total_wait_time = total_wait_time + per_key_wait_time
|
233
|
+
end
|
234
|
+
end
|
235
|
+
for i in 0..(channel_arr.length-1)
|
236
|
+
per_key_wait_time = 0 if (i == (channel_arr.length-1))
|
237
|
+
key_seq.push([channel_arr[i], per_key_wait_time])
|
238
|
+
total_wait_time = total_wait_time + per_key_wait_time
|
239
|
+
end
|
240
|
+
|
241
|
+
_press_key_sequence key_seq
|
242
|
+
sleep total_wait_time
|
243
|
+
|
244
|
+
sleep sleep_time_after_tune.to_s.to_i.sec if !(sleep_time_after_tune==0)
|
245
|
+
end
|
246
|
+
def perf_tune_to_random_channel(channels, sleep_time_after_tune=0)
|
247
|
+
chan = get_random_channel(options[:channels])
|
248
|
+
if (chan == nil)
|
249
|
+
loginfo "WARN: No channel to random tune to"
|
250
|
+
return
|
251
|
+
end
|
252
|
+
perf_tune_to_channel(chan, sleep_time_after_tune)
|
253
|
+
end
|
254
|
+
|
255
|
+
def initialize_execution(chan)
|
256
|
+
#videoROI = DSL::ImageRoi.new(1, 1, 630, 270, 0, "")
|
257
|
+
videoROI = stb_img_roi(:video_playing_fullscreen_roi)
|
258
|
+
for retryCount in 1..3
|
259
|
+
press_exit_sleep
|
260
|
+
sleep 4.sec
|
261
|
+
perf_tune_to_channel(chan, 5)
|
262
|
+
sleep 4.sec
|
263
|
+
return(true) if (video_playing? videoROI, 2000)
|
264
|
+
#return(true) if ( wait_till_video_is_playing(time_out_in_ms=5000, between_samples_ms=1000, samples=1, area='all_but_info_banner'))
|
265
|
+
loginfo3 "No video",true,true,"video"
|
266
|
+
press_power(8.sec())
|
267
|
+
end
|
268
|
+
return false
|
269
|
+
end
|
270
|
+
|
271
|
+
def get_random_channel(channels)
|
272
|
+
return nil if (channels == nil)
|
273
|
+
return(channels[rand(channels.length)])
|
274
|
+
end
|
275
|
+
|
276
|
+
def get_largest_block()
|
277
|
+
begin
|
278
|
+
loginfo(options[:stb_ip])
|
279
|
+
r = get_snmp(options[:stb_ip], ".1.3.6.1.4.1.4491.2.3.1.1.4.7.1.0", 'public')
|
280
|
+
loginfo("largest_block=" + r)
|
281
|
+
return r.to_i
|
282
|
+
rescue StandardError => e
|
283
|
+
return(0)
|
284
|
+
end
|
285
|
+
end
|
286
|
+
|
287
|
+
def get_heap_size()
|
288
|
+
begin
|
289
|
+
loginfo(options[:stb_ip])
|
290
|
+
r = get_snmp(options[:stb_ip], ".1.3.6.1.4.1.4491.2.3.1.1.4.8.1.0", 'public')
|
291
|
+
loginfo("heap_size=" + r)
|
292
|
+
return r.to_i
|
293
|
+
rescue StandardError => e
|
294
|
+
return(0)
|
295
|
+
end
|
296
|
+
end
|
297
|
+
|
298
|
+
def get_available_heap()
|
299
|
+
begin
|
300
|
+
loginfo(options[:stb_ip])
|
301
|
+
r = get_snmp(options[:stb_ip], ".1.3.6.1.4.1.4491.2.3.1.1.4.8.2.0", 'public')
|
302
|
+
loginfo("available_heap=" + r)
|
303
|
+
return r.to_i
|
304
|
+
rescue StandardError => e
|
305
|
+
return(0)
|
306
|
+
end
|
307
|
+
end
|
308
|
+
|
309
|
+
=begin
|
310
|
+
MSD 2016-01-12 this is not used and should be deleted on next pass
|
311
|
+
def record_stats_to_sword(startTime,endTime)
|
312
|
+
startTime = Time.now if startTime == 0
|
313
|
+
endTime = Time.now if endTime == 0
|
314
|
+
largest_block = get_largest_block().to_s
|
315
|
+
heap_size = get_heap_size().to_s
|
316
|
+
available_heap = get_available_heap().to_s
|
317
|
+
if(options[:db_write] == "true")
|
318
|
+
writeNumericalResult(startTime.to_i, endTime.to_i, largest_block)
|
319
|
+
writeNumericalResult(startTime.to_i, endTime.to_i, heap_size)
|
320
|
+
writeNumericalResult(startTime.to_i, endTime.to_i, available_heap)
|
321
|
+
end
|
322
|
+
log(Elog::ELogLevel::DURATION,"Largest block|" + largest_block)
|
323
|
+
log(Elog::ELogLevel::DURATION,"Heap size|" + heap_size)
|
324
|
+
log(Elog::ELogLevel::DURATION,"Available heap|" + available_heap)
|
325
|
+
end
|
326
|
+
=end
|
327
|
+
|
328
|
+
def report_largest_block_to_sword(startTime,endTime)
|
329
|
+
startTime = Time.now if startTime == 0
|
330
|
+
endTime = startTime if endTime == 0
|
331
|
+
largest_block = get_largest_block().to_s
|
332
|
+
if is_sword?
|
333
|
+
post_result(startTime.to_f, endTime.to_f, :return_no => largest_block)
|
334
|
+
#writeNumericalResult(startTime.to_i, endTime.to_i, largest_block)
|
335
|
+
end
|
336
|
+
log(Elog::ELogLevel::DURATION,"Largest block|" + largest_block)
|
337
|
+
end
|
338
|
+
|
339
|
+
def report_heap_size_to_sword(startTime,endTime)
|
340
|
+
startTime = Time.now if startTime == 0
|
341
|
+
endTime = startTime if endTime == 0
|
342
|
+
heap_size = get_heap_size().to_s
|
343
|
+
if is_sword?
|
344
|
+
post_result(startTime.to_f, endTime.to_f, :return_no => heap_size)
|
345
|
+
#writeNumericalResult(startTime.to_i, endTime.to_i, heap_size)
|
346
|
+
end
|
347
|
+
log(Elog::ELogLevel::DURATION,"Heap size|" + heap_size)
|
348
|
+
end
|
349
|
+
|
350
|
+
def report_available_heap_to_sword(startTime,endTime)
|
351
|
+
startTime = Time.now if startTime == 0
|
352
|
+
endTime = startTime if endTime == 0
|
353
|
+
available_heap = get_available_heap().to_s
|
354
|
+
if is_sword?
|
355
|
+
post_result(startTime.to_f, endTime.to_f, :return_no => available_heap)
|
356
|
+
#writeNumericalResult(startTime.to_i, endTime.to_i, available_heap)
|
357
|
+
end
|
358
|
+
log(Elog::ELogLevel::DURATION,"Available heap|" + available_heap)
|
359
|
+
end
|
360
|
+
|
361
|
+
def change_roi_file(file=nil)
|
362
|
+
$roi_class_file=file
|
363
|
+
loginfo "Changing roi file to:#{file}"
|
364
|
+
TwcNavRoi.fetch_attribute('OCRROI')
|
365
|
+
end
|
366
|
+
|
367
|
+
def after_test(status=nil)
|
368
|
+
log Elog::ELogLevel::SUCCESS, "Test Passed" if status == :pass
|
369
|
+
log Elog::ELogLevel::STOP, "Test completed"
|
370
|
+
end
|
371
|
+
|
372
|
+
def test_error(msg, post)
|
373
|
+
return if msg == "TCUNSUPPORTED";
|
374
|
+
post_error_result(msg) if post == true
|
375
|
+
_logmessage Elog::ELogLevel::FAIL, _failure_message(msg), true, false
|
376
|
+
end
|
377
|
+
|
378
|
+
=begin
|
379
|
+
MSD 2016-01-12 this is not used and should be deleted on next pass
|
380
|
+
def writeNumericalResult(startTime, stopTime, dataValue)
|
381
|
+
return send_results(startTime, stopTime, "","" + dataValue, "")
|
382
|
+
end
|
383
|
+
=end
|
384
|
+
|
385
|
+
def test_plan_end
|
386
|
+
params = {
|
387
|
+
:test_plan_result_id => @sword_test_plan_result_id,
|
388
|
+
}
|
389
|
+
begin
|
390
|
+
url = "#{@sword_base_url}/test_plan_results/tmc_dsl_end_plan?"
|
391
|
+
url = url.concat(params.collect { |k,v| "#{k}=#{URI::escape(v.to_s)}" }.join('&'))
|
392
|
+
logger.debug url
|
393
|
+
web_get(url)
|
394
|
+
rescue => ex
|
395
|
+
logger.error "Failed to report end of plan to Sword #{ex}"
|
396
|
+
end
|
397
|
+
end
|
398
|
+
|
399
|
+
def current_tests
|
400
|
+
if @sword_report_grouping.nil?
|
401
|
+
[@sword_test_cycle_test_case_id]
|
402
|
+
else
|
403
|
+
# If tests are grouped then actions should affect all of the tests
|
404
|
+
@sword_report_grouping.map {|g| g[:test_cycle_test_case_id]}
|
405
|
+
end
|
406
|
+
end
|
407
|
+
|
408
|
+
#post result to SWORD
|
409
|
+
# TODO: NO SCRIPT SHOULD CALL THIS METHOD
|
410
|
+
def post_result(start_ts, stop_ts, return_no, args = {})
|
411
|
+
return unless is_sword?
|
412
|
+
#######################################################
|
413
|
+
#mbarnes I think this signifies that it's the first test case in the cycle
|
414
|
+
if args[:execution_metric].nil?
|
415
|
+
tctc_id = @sword_test_cycle_test_case_id
|
416
|
+
else
|
417
|
+
# If an execution metric is given, use the corresponding test cycle test case id
|
418
|
+
logger.debug("Report grouping for post_result: #{@sword_report_grouping}")
|
419
|
+
tctc_id = @sword_report_grouping.find {|g| g[:execution_metric] = args[:execution_metric]}[:test_cycle_test_case_id]
|
420
|
+
end
|
421
|
+
data = {
|
422
|
+
'test_plan_result_id' => @sword_test_plan_result_id,
|
423
|
+
'test_cycle_test_case_id' => tctc_id,
|
424
|
+
'hardware_unit_id' => @sword_hardware_unit_id,
|
425
|
+
'result'=> {
|
426
|
+
'start_ts' => start_ts,
|
427
|
+
'stop_ts' => stop_ts
|
428
|
+
}
|
429
|
+
}
|
430
|
+
unless args[:return_title].nil?
|
431
|
+
data['return_title'] = args[:return_title]
|
432
|
+
end
|
433
|
+
unless return_no.nil?
|
434
|
+
data['result']['return_no'] = return_no
|
435
|
+
end
|
436
|
+
post_json(data)
|
437
|
+
end
|
438
|
+
|
439
|
+
def post_error_result(tcr_auto_detail_text)
|
440
|
+
#Turned off for now, because graph does not filter these. sword does not ingest result_value:
|
441
|
+
# https://gitlab-test.enwd.co.sa.charterlab.com/sword_grp/sword/blob/master/app/models/tcr_auto_detail.rb#L27
|
442
|
+
return
|
443
|
+
return unless is_sword?
|
444
|
+
now = Time.now.to_f
|
445
|
+
current_tests.each do |tctc_id|
|
446
|
+
data = {
|
447
|
+
'test_plan_result_id' => @sword_test_plan_result_id,
|
448
|
+
'test_cycle_test_case_id' => tctc_id,
|
449
|
+
'hardware_unit_id' => @sword_hardware_unit_id,
|
450
|
+
'result' => {
|
451
|
+
'start_ts' => now,
|
452
|
+
'stop_ts' => now,
|
453
|
+
'result_value' => 'ERROR',
|
454
|
+
'tcr_auto_detail_text' => tcr_auto_detail_text
|
455
|
+
}
|
456
|
+
}
|
457
|
+
post_json(data)
|
458
|
+
end
|
459
|
+
end
|
460
|
+
|
461
|
+
def post_reboot_result(reboot_time)
|
462
|
+
#TODO: sword disregards result_value, so whatever this posts will be considered a measurement and will skew results
|
463
|
+
return unless is_sword?
|
464
|
+
#now = Time.now.to_f
|
465
|
+
#json = '{"test_plan_result_id":"30643","test_cycle_test_case_id":"107165","hardware_unit_id":"1067","result":{"start_ts":1370643834.329,"stop_ts":1370643837.849}}'
|
466
|
+
current_tests.each do |tctc_id|
|
467
|
+
data = {
|
468
|
+
'test_plan_result_id' => @sword_test_plan_result_id,
|
469
|
+
'test_cycle_test_case_id' => tctc_id,
|
470
|
+
'hardware_unit_id' => @sword_hardware_unit_id,
|
471
|
+
'result' => {
|
472
|
+
'start_ts' => reboot_time,
|
473
|
+
'stop_ts' => reboot_time,
|
474
|
+
'result_value' => 'REBOOT',
|
475
|
+
'return_value' => reboot_time,
|
476
|
+
'return_no' => 1
|
477
|
+
}
|
478
|
+
}
|
479
|
+
post_json(data)
|
480
|
+
end
|
481
|
+
end
|
482
|
+
|
483
|
+
def post_end_of_test_case()
|
484
|
+
return unless is_sword?
|
485
|
+
current_tests.each do |tctc_id|
|
486
|
+
data = {
|
487
|
+
'test_plan_result_id' => @sword_test_plan_result_id,
|
488
|
+
'test_cycle_test_case_id' => tctc_id,
|
489
|
+
'hardware_unit_id' => @sword_hardware_unit_id,
|
490
|
+
'case_complete' => 'true'
|
491
|
+
}
|
492
|
+
post_json(data)
|
493
|
+
end
|
494
|
+
end
|
495
|
+
|
496
|
+
def post_end_of_test_plan()
|
497
|
+
return unless is_sword?
|
498
|
+
data = {"test_plan_result_id" => @sword_test_plan_result_id,
|
499
|
+
"finished"=> 'true'
|
500
|
+
}
|
501
|
+
post_json(data)
|
502
|
+
end
|
503
|
+
|
504
|
+
#post json to SWORD
|
505
|
+
# TODO: NO SCRIPT SHOULD CALL THIS METHOD
|
506
|
+
def post_json(data)
|
507
|
+
url = @sword_base_url + @sword_result_url
|
508
|
+
logger.debug "SWORD POST URL :: #{url}"
|
509
|
+
tcrad_data = {
|
510
|
+
"test_plan_result_id" => @sword_test_plan_result_id,
|
511
|
+
"test_case_result_id" => @sword_test_case_result_id,
|
512
|
+
"hardware_unit_id" => @sword_hardware_unit_id,
|
513
|
+
"sword_iteration" => iteration
|
514
|
+
}
|
515
|
+
if (nil != data["return_title"])
|
516
|
+
tcrad_data["return_title"] = data["return_title"]
|
517
|
+
end
|
518
|
+
tcrad_id = @sword_tcr_auto_detail_id
|
519
|
+
if (nil != tcrad_id && !tcrad_id.empty?)
|
520
|
+
logger.info "post_json: Using tcrad #{tcrad_id} for TCRAD"
|
521
|
+
tcrad_data["tcrad_id"] = tcrad_id
|
522
|
+
data["tcrad_id"] = tcrad_id
|
523
|
+
end
|
524
|
+
data["tcrad_data"] = tcrad_data
|
525
|
+
headers = {'Content-Type' => 'application/json', 'Accept' => '*/*'}
|
526
|
+
resp = web_post(url, json: data, headers: headers)
|
527
|
+
logger.debug "Resp :: #{resp.body}"
|
528
|
+
if (resp.body.include?("Success:"))
|
529
|
+
tcrad = resp.body.split("=")[1]
|
530
|
+
@sword_tcr_auto_detail_id = tcrad
|
531
|
+
end
|
532
|
+
end
|
533
|
+
|
534
|
+
def clear_tuner_caches?(start_channel=516, num_channel_changes=6)
|
535
|
+
log Elog::ELogLevel::INFO2, "Clearing tuner cache..."
|
536
|
+
perf_tune_to_channel(start_channel.to_s, sleep_time_after_tune=6)
|
537
|
+
cur_chan_num=start_channel
|
538
|
+
good_tunes=0
|
539
|
+
tries=0
|
540
|
+
while good_tunes<num_channel_changes and tries<30
|
541
|
+
press_channel_up(0)
|
542
|
+
sleep 3.sec
|
543
|
+
if $rti_flag == false
|
544
|
+
good_tunes+=1
|
545
|
+
else
|
546
|
+
next_chan_num=rti_get_channel_number.to_i
|
547
|
+
if(next_chan_num>cur_chan_num)
|
548
|
+
good_tunes+=1
|
549
|
+
end
|
550
|
+
end
|
551
|
+
cur_chan_num=next_chan_num
|
552
|
+
tries+=1
|
553
|
+
end
|
554
|
+
return true if good_tunes==num_channel_changes
|
555
|
+
return false
|
556
|
+
end
|
557
|
+
|
558
|
+
def show_guide_days(number_of_days)
|
559
|
+
press_guide_sleep unless guide_banner_appears?
|
560
|
+
sleep 3.sec
|
561
|
+
if guide_banner_appears?
|
562
|
+
loginfo2 "Moving to #{number_of_days} days ahead."
|
563
|
+
press_key number_of_days
|
564
|
+
press_right_arrow_sleep
|
565
|
+
loginfo2 'Moving back to current date.'
|
566
|
+
press_key number_of_days
|
567
|
+
press_left_arrow_sleep
|
568
|
+
end
|
569
|
+
press_exit_sleep
|
570
|
+
end
|
571
|
+
|
572
|
+
def play_vod()
|
573
|
+
broadcast_channel = fetch_option(:a_live_channel_1)
|
574
|
+
tune_immediately_to broadcast_channel
|
575
|
+
tcfail "Failed to tune on channel: [#{broadcast_channel}]" unless info_banner_launch_and_verify_channel_number broadcast_channel
|
576
|
+
mod_channel = mod_channel_number
|
577
|
+
tcfail "Failed to tune to MOD Channel: [#{mod_channel}]" unless od_screen_tune_to_channel mod_channel
|
578
|
+
loginfo "The STB tunes to the MOD menu screen."
|
579
|
+
|
580
|
+
loginfo "Performing Step 1.B: Select a movie and purchase it via selecting the Buy option and entering a valid Purchase PIN."
|
581
|
+
asset = od_screen_locate_and_navigate_asset mod_channel
|
582
|
+
tcfail "Invalid Execution unpurchased OD asset not available" if asset == nil
|
583
|
+
tcfail "Unable to purchase focused asset #{asset}" unless od_screen_purchase_focused_asset true,false
|
584
|
+
tcfail 'OD asset unavailable' if od_asset_unavailable_barker_appears?
|
585
|
+
tcfail 'OD asset could not be purchased' unless od_screen_focused_asset_purchased?
|
586
|
+
loginfo "Completed Step 1.B: The movie is purchased."
|
587
|
+
|
588
|
+
sleep_for_ondemand_asset_play
|
589
|
+
cancellation_window = asset[:cancellation_window_in_minutes].to_s.to_i
|
590
|
+
sleep (cancellation_window+1).min
|
591
|
+
tcfail "The purchase for asset [#{asset[:title]}] was unsuccessful." unless od_screen_asset_verify_successful_purchase asset
|
592
|
+
|
593
|
+
loginfo "Allow the asset to stream for about 5 minutes."
|
594
|
+
tcfail 'OD asset unavailable' if od_asset_unavailable_barker_appears?
|
595
|
+
tcfail "Video is not playing after purchasing asset" unless fullscreen_video_playing?
|
596
|
+
if cancellation_window<5
|
597
|
+
sleep (5-cancellation_window).min
|
598
|
+
end
|
599
|
+
loginfo "The movie streamed for about 5 minutes."
|
600
|
+
end
|
601
|
+
|
602
|
+
def sleep_while_check_for_reboots(duration_min=30, last_reboot="")
|
603
|
+
test_duration = true
|
604
|
+
while duration_min > 0
|
605
|
+
#last_reboot_read = last_stb_reboot_time false
|
606
|
+
last_reboot_read = odn_web_server_odn_diags_last_reboot(options[:stb_ip], last_reboot)
|
607
|
+
#loginfo "Reboot1:last_reboot_read=#{last_reboot_read}, last_reboot=#{last_reboot}"
|
608
|
+
if (last_reboot != "") and (last_reboot_read != "") and (last_reboot_read != nil) and (last_reboot != nil)
|
609
|
+
#loginfo "Reboot2:last_reboot_read=#{last_reboot_read}, last_reboot=#{last_reboot_read}"
|
610
|
+
|
611
|
+
# if last_reboot.include? "m"
|
612
|
+
# resp = last_reboot.slice(0..last_reboot.index('m'))
|
613
|
+
# else
|
614
|
+
# resp = last_reboot
|
615
|
+
# end
|
616
|
+
if ((!last_reboot_read.eql?(last_reboot)) and (last_reboot.length>10) and (last_reboot_read.length>10))
|
617
|
+
#loginfo "Reboot3:last_reboot_read=#{last_reboot_read}, last_reboot=#{last_reboot_read}"
|
618
|
+
begin
|
619
|
+
reboot_time = Time.parse(last_reboot_read)
|
620
|
+
post_reboot_result(reboot_time)
|
621
|
+
rescue
|
622
|
+
post_reboot_result(Time.now)
|
623
|
+
end
|
624
|
+
loginfo "***STB Rebooted:#{last_reboot_read};;;;;;;#{last_reboot}***"
|
625
|
+
# loginfo "***STB Rebooted:#{last_reboot_read.length.to_s};;;;;;;#{last_reboot.length.to_s}***"
|
626
|
+
# last_reboot_read.split("").each do |i|
|
627
|
+
# loginfo "***STB Rebooted1:#{i}"
|
628
|
+
# end
|
629
|
+
# last_reboot.split("").each do |i|
|
630
|
+
# loginfo "***STB Rebooted2:#{i}"
|
631
|
+
# end
|
632
|
+
last_reboot = last_reboot_read
|
633
|
+
File.open("tmp/Last_reboot_stb_#{$stb_id}.txt", 'w') do |f|
|
634
|
+
f.puts last_reboot
|
635
|
+
end
|
636
|
+
end
|
637
|
+
end
|
638
|
+
if duration_min > 15
|
639
|
+
if test_duration == true
|
640
|
+
sleep 90.sec
|
641
|
+
else
|
642
|
+
sleep 15.min
|
643
|
+
end
|
644
|
+
else
|
645
|
+
if test_duration == true
|
646
|
+
sleep (duration_min/10).sec
|
647
|
+
else
|
648
|
+
sleep duration_min.min
|
649
|
+
end
|
650
|
+
end
|
651
|
+
# if test_duration == true
|
652
|
+
# duration_min = duration_min - 15
|
653
|
+
# else
|
654
|
+
duration_min = duration_min - 15
|
655
|
+
# end
|
656
|
+
end
|
657
|
+
last_reboot = last_reboot_read if (last_reboot == "" or last_reboot == nil)
|
658
|
+
return last_reboot
|
659
|
+
end
|
660
|
+
end
|