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,154 @@
|
|
1
|
+
#Test automation script version# TA-5.5.mdn released time stamp: 12-03-12 14:40:20
|
2
|
+
|
3
|
+
require './dsllib/common/utils/tmc_utils'
|
4
|
+
|
5
|
+
def mas_db_get_channels_with_long_desc
|
6
|
+
region_id = fetch_option(:region_id).to_i
|
7
|
+
query_string = "SELECT MYSTRO_CHANNEL.DISPLAY_CHANNEL AS CHANNEL_NUMBER FROM EVENT INNER JOIN EVENT_DETAIL ON EVENT_DETAIL.EVENT_ID = EVENT.EVENT_ID INNER JOIN SERVICE_SCHEDULE ON SERVICE_SCHEDULE.EVENT_DETAIL_ID = EVENT_DETAIL.EVENT_DETAIL_ID INNER JOIN MYSTRO_SERVICE ON MYSTRO_SERVICE.GUIDE_SERVICE_ID = SERVICE_SCHEDULE.GUIDE_SERVICE_ID INNER JOIN MYSTRO_CHANNEL ON MYSTRO_CHANNEL.MYSTRO_SERVICE_ID = MYSTRO_SERVICE.MYSTRO_SERVICE_ID WHERE MYSTRO_CHANNEL.CHANNEL_FLAGS < 32 AND REGION_ID = #{region_id} AND LENGTH(EVENT_DETAIL.EVENT_LONG_DESCRIPTION) > 225 ORDER BY TMS_AIR_DATETIME"
|
8
|
+
logdebug "Query_String : #{query_string}"
|
9
|
+
return query_mystro_catalog_db(fetch_option(:mystrodb), query_string)
|
10
|
+
end
|
11
|
+
|
12
|
+
def mas_db_get_channels(where_clause='')
|
13
|
+
region_id = fetch_option(:region_id).to_i
|
14
|
+
query_string = "select display_channel, display_name, service_name, service_full_name, MYSTRO_CHANNEL.CHANNEL_FLAGS, (CASE WHEN PROP_VALUE IS NULL THEN 'false' ELSE PROP_VALUE END) AS EXCLUDE_FROM_SEARCH from MYSTRO_CHANNEL, mystro_service LEFT JOIN SERVICE_PROP ON SERVICE_PROP.MYSTRO_SERVICE_ID = MYSTRO_SERVICE.MYSTRO_SERVICE_ID AND SERVICE_PROP.PROP_NAME = 'EXCLUDE_FROM_SEARCH' where region_id = #{region_id} #{where_clause} and MYSTRO_CHANNEL.MYSTRO_SERVICE_ID = MYSTRO_SERVICE.MYSTRO_SERVICE_ID order by display_channel"
|
15
|
+
logdebug "Query_String : #{query_string}"
|
16
|
+
return query_mystro_catalog_db(fetch_option(:mystrodb), query_string)
|
17
|
+
end
|
18
|
+
|
19
|
+
def mas_db_get_curr_date
|
20
|
+
query_string = "SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD/HH24/MI/SS') \"NOW\" FROM DUAL"
|
21
|
+
logdebug "Query_String : #{query_string}"
|
22
|
+
return query_mystro_catalog_db(fetch_option(:mystrodb), query_string)
|
23
|
+
end
|
24
|
+
|
25
|
+
def mas_db_genre(where_clause='')
|
26
|
+
query_string = "SELECT GENRE_CODE, GENRE_CODE_DESC FROM GENRE_CODE #{where_clause}"
|
27
|
+
logdebug "Query_String : #{query_string}"
|
28
|
+
return query_mystro_catalog_db(fetch_option(:mystrodb), query_string)
|
29
|
+
end
|
30
|
+
|
31
|
+
def mas_db_guide_data(where_clause='')
|
32
|
+
region_id = fetch_option(:region_id).to_i
|
33
|
+
time_zone_diff = mas_db_time_zone_diff_in_min
|
34
|
+
query_string = "SELECT MYSTRO_CHANNEL.DISPLAY_CHANNEL AS CHANNEL_NUMBER, MYSTRO_SERVICE.DISPLAY_NAME AS CHANNEL_NAME, TO_CHAR((SERVICE_SCHEDULE.TMS_AIR_DATETIME + #{time_zone_diff}/(24*60)), 'YYYY/MM/DD/HH24/MI/SS') AS PROGRAM_START_TIME, TO_CHAR((SERVICE_SCHEDULE.TMS_ENDAIR_TIME + #{time_zone_diff}/(24*60)), 'YYYY/MM/DD/HH24/MI/SS') AS PROGRAM_END_TIME, EVENT.EVENT_TYPE AS PROGRAM_TYPE, EVENT.EVENT_SHORT_TITLE AS PROGRAM_SHORT_TITLE, EVENT.EVENT_LONG_TITLE AS PROGRAM_LONG_TITLE, RATING_FLAG.RATING_FLAG_LONG_DESC AS PROGRAM_RATING_LONG, RATING_FLAG.RATING_FLAG_SHORT_DESC AS PROGRAM_RATING_SHORT, STAR_RATING_CODE.STAR_RATING_CODE_DESC AS PROGRAM_STAR_RATING, EVENT_DETAIL.GENRE_CODE AS PROGRAM_GENRE_CODES ,EVENT_DETAIL.EVENT_SHORT_DESCRIPTION AS PROGRAM_SHORT_DESC, EVENT_DETAIL.EVENT_LONG_DESCRIPTION AS PROGRAM_LONG_DESC, EVENT.EVENT_TYPE AS PROGRAM_TYPE, EVENT_DETAIL.ADVISORY_CODE AS CONTENT_TYPE, SERVICE_SCHEDULE.MYSTRO_EVENT_CODE AS EVENT_CODE, EVENT_DETAIL.EVENT_DETAIL_ID AS EVENT_DETAIL_ID, SERVICE_SCHEDULE.SERVICE_SCHEDULE_ID AS SERVICE_SCHEDULE_ID, MYSTRO_SERVICE.MYSTRO_SERVICE_ID AS MYSTRO_SERVICE_ID, EVENT.EVENT_ID AS EVENT_ID
|
35
|
+
FROM EVENT
|
36
|
+
INNER JOIN EVENT_DETAIL ON EVENT_DETAIL.EVENT_ID = EVENT.EVENT_ID
|
37
|
+
INNER JOIN SERVICE_SCHEDULE ON SERVICE_SCHEDULE.EVENT_DETAIL_ID = EVENT_DETAIL.EVENT_DETAIL_ID
|
38
|
+
INNER JOIN MYSTRO_SERVICE ON MYSTRO_SERVICE.GUIDE_SERVICE_ID = SERVICE_SCHEDULE.GUIDE_SERVICE_ID
|
39
|
+
INNER JOIN MYSTRO_CHANNEL ON MYSTRO_CHANNEL.MYSTRO_SERVICE_ID = MYSTRO_SERVICE.MYSTRO_SERVICE_ID
|
40
|
+
INNER JOIN RATING_FLAG ON RATING_FLAG.RATING_FLAG_ID = SERVICE_SCHEDULE.RATING_FLAG_ID
|
41
|
+
INNER JOIN STAR_RATING_CODE ON STAR_RATING_CODE.STAR_RATING_CODE_ID = EVENT_DETAIL.STAR_RATING_CODE_ID
|
42
|
+
WHERE REGION_ID = #{region_id} #{where_clause}
|
43
|
+
GROUP BY EVENT.EVENT_TYPE, MYSTRO_CHANNEL.DISPLAY_CHANNEL, MYSTRO_SERVICE.DISPLAY_NAME, SERVICE_SCHEDULE.TMS_AIR_DATETIME, SERVICE_SCHEDULE.TMS_ENDAIR_TIME, EVENT.EVENT_SHORT_TITLE, EVENT.EVENT_LONG_TITLE, RATING_FLAG.RATING_FLAG_LONG_DESC, RATING_FLAG.RATING_FLAG_SHORT_DESC, STAR_RATING_CODE.STAR_RATING_CODE_DESC, EVENT_DETAIL.GENRE_CODE, EVENT_DETAIL.EVENT_SHORT_DESCRIPTION, EVENT_DETAIL.EVENT_LONG_DESCRIPTION, EVENT_DETAIL.ADVISORY_CODE, SERVICE_SCHEDULE.MYSTRO_EVENT_CODE, EVENT_DETAIL.EVENT_DETAIL_ID, SERVICE_SCHEDULE.SERVICE_SCHEDULE_ID, MYSTRO_SERVICE.MYSTRO_SERVICE_ID, EVENT.EVENT_ID
|
44
|
+
ORDER BY TMS_AIR_DATETIME"
|
45
|
+
logdebug "Query_String : #{query_string}"
|
46
|
+
return query_mystro_catalog_db(fetch_option(:mystrodb), query_string)
|
47
|
+
end
|
48
|
+
|
49
|
+
def mas_db_parental_ratings
|
50
|
+
query_string = "SELECT RATING_FLAG, RATING_FLAG_SHORT_DESC, RATING_FLAG_LONG_DESC FROM RATING_FLAG ORDER BY RATING_FLAG"
|
51
|
+
logdebug "Query_String : #{query_string}"
|
52
|
+
return query_mystro_catalog_db(fetch_option(:mystrodb), query_string)
|
53
|
+
end
|
54
|
+
|
55
|
+
def mas_db_advisory_flags
|
56
|
+
query_string = "SELECT ADVISORY_FLAG.ADVISORY_FLAG, ADVISORY_FLAG.ADVISORY_LONG_DESC FROM ADVISORY_FLAG ORDER BY ADVISORY_FLAG.ADVISORY_FLAG"
|
57
|
+
logdebug "Query_String : #{query_string}"
|
58
|
+
return query_mystro_catalog_db(fetch_option(:mystrodb), query_string)
|
59
|
+
end
|
60
|
+
|
61
|
+
def mas_db_event_flags
|
62
|
+
query_string = "SELECT EV_FLAG.EV_FLAG, EV_FLAG.EV_FLAG_DESC FROM EV_FLAG ORDER BY EV_FLAG.EV_FLAG"
|
63
|
+
logdebug "Query_String : #{query_string}"
|
64
|
+
return query_mystro_catalog_db(fetch_option(:mystrodb), query_string)
|
65
|
+
end
|
66
|
+
|
67
|
+
def mas_db_guide_data_for_ppv_programs(where_clause='')
|
68
|
+
region_id = fetch_option(:region_id).to_i
|
69
|
+
time_zone_diff = mas_db_time_zone_diff_in_min
|
70
|
+
|
71
|
+
query_string = "SELECT
|
72
|
+
MYSTRO_CHANNEL.DISPLAY_CHANNEL AS CHANNEL_NUMBER,
|
73
|
+
MYSTRO_SERVICE.DISPLAY_NAME AS CHANNEL_NAME,
|
74
|
+
|
75
|
+
MAX(CASE WHEN WINDOW_TYPE.WINDOW_NAME = 'ADVERTISING_WINDOW' THEN TO_CHAR( PPV_TIME_WINDOW.START_TIME + #{time_zone_diff}/(24*60), 'YYYY/MM/DD/HH24/MI/SS') END) AS ADVERTISING_WINDOW,
|
76
|
+
MAX(CASE WHEN WINDOW_TYPE.WINDOW_NAME = 'BUY_WINDOW' THEN TO_CHAR( PPV_TIME_WINDOW.START_TIME + #{time_zone_diff}/(24*60), 'YYYY/MM/DD/HH24/MI/SS') END) AS BUY_WINDOW,
|
77
|
+
MAX(CASE WHEN WINDOW_TYPE.WINDOW_NAME = 'CANCEL_WINDOW' THEN TO_CHAR( PPV_TIME_WINDOW.START_TIME + #{time_zone_diff}/(24*60), 'YYYY/MM/DD/HH24/MI/SS') END) AS CANCEL_WINDOW,
|
78
|
+
MAX(CASE WHEN WINDOW_TYPE.WINDOW_NAME = 'FREE_CANCEL_WINDOW' THEN TO_CHAR( PPV_TIME_WINDOW.START_TIME + #{time_zone_diff}/(24*60), 'YYYY/MM/DD/HH24/MI/SS') END) AS FREE_CANCEL_WINDOW,
|
79
|
+
MAX(CASE WHEN WINDOW_TYPE.WINDOW_NAME = 'LIFETIME_WINDOW' THEN TO_CHAR( PPV_TIME_WINDOW.START_TIME + #{time_zone_diff}/(24*60), 'YYYY/MM/DD/HH24/MI/SS') END) AS LIFETIME_WINDOW,
|
80
|
+
MAX(CASE WHEN WINDOW_TYPE.WINDOW_NAME = 'MARKETING_WINDOW' THEN TO_CHAR( PPV_TIME_WINDOW.START_TIME + #{time_zone_diff}/(24*60), 'YYYY/MM/DD/HH24/MI/SS') END) AS MARKETING_WINDOW,
|
81
|
+
MAX(CASE WHEN WINDOW_TYPE.WINDOW_NAME = 'PREVIEW_WINDOW' THEN TO_CHAR( PPV_TIME_WINDOW.START_TIME + #{time_zone_diff}/(24*60), 'YYYY/MM/DD/HH24/MI/SS') END) AS PREVIEW_WINDOW,
|
82
|
+
|
83
|
+
MAX(CASE WHEN WINDOW_TYPE.WINDOW_NAME = 'ADVERTISING_WINDOW' THEN PPV_TIME_WINDOW.DURATION END) AS ADVERTISING_WINDOW_DURATION,
|
84
|
+
MAX(CASE WHEN WINDOW_TYPE.WINDOW_NAME = 'BUY_WINDOW' THEN PPV_TIME_WINDOW.DURATION END) AS BUY_WINDOW_DURATION,
|
85
|
+
MAX(CASE WHEN WINDOW_TYPE.WINDOW_NAME = 'CANCEL_WINDOW' THEN PPV_TIME_WINDOW.DURATION END) AS CANCEL_WINDOW_DURATION,
|
86
|
+
MAX(CASE WHEN WINDOW_TYPE.WINDOW_NAME = 'FREE_CANCEL_WINDOW' THEN PPV_TIME_WINDOW.DURATION END) AS FREE_CANCEL_WINDOW_DURATION,
|
87
|
+
MAX(CASE WHEN WINDOW_TYPE.WINDOW_NAME = 'LIFETIME_WINDOW' THEN PPV_TIME_WINDOW.DURATION END) AS LIFETIME_WINDOW_DURATION,
|
88
|
+
MAX(CASE WHEN WINDOW_TYPE.WINDOW_NAME = 'MARKETING_WINDOW' THEN PPV_TIME_WINDOW.DURATION END) AS MARKETING_WINDOW_DURATION,
|
89
|
+
MAX(CASE WHEN WINDOW_TYPE.WINDOW_NAME = 'PREVIEW_WINDOW' THEN PPV_TIME_WINDOW.DURATION END) AS PREVIEW_WINDOW_DURATION,
|
90
|
+
|
91
|
+
PPV_EVENT_INFO.PPV_EVENT_INFO_ID as PPV_EVENT_INFO_ID,
|
92
|
+
PPV_EVENT_INFO.EVENT_TITLE as PROGRAM_SHORT_TITLE,
|
93
|
+
PPV_EVENT_INFO.EVENT_COST as PPV_EVENT_COST,
|
94
|
+
PPV_EVENT_INFO.PPV_TYPE as PPV_TYPE
|
95
|
+
|
96
|
+
FROM PPV_EVENT_INFO
|
97
|
+
|
98
|
+
INNER JOIN PPV_TIME_WINDOW ON PPV_EVENT_INFO.PPV_EVENT_INFO_ID= PPV_TIME_WINDOW.PPV_EVENT_INFO_ID
|
99
|
+
INNER JOIN WINDOW_TYPE ON WINDOW_TYPE.WINDOW_TYPE_ID = PPV_TIME_WINDOW.WINDOW_TYPE_ID
|
100
|
+
INNER JOIN MYSTRO_SERVICE on MYSTRO_SERVICE.SERVICE_NAME = PPV_EVENT_INFO.SERVICE_NAME
|
101
|
+
INNER JOIN MYSTRO_CHANNEL on MYSTRO_CHANNEL.MYSTRO_SERVICE_ID = MYSTRO_SERVICE.MYSTRO_SERVICE_ID
|
102
|
+
WHERE REGION_ID = #{region_id} #{where_clause}
|
103
|
+
GROUP BY PPV_EVENT_INFO.PPV_EVENT_INFO_ID,MYSTRO_CHANNEL.DISPLAY_CHANNEL,MYSTRO_SERVICE.DISPLAY_NAME,PPV_EVENT_INFO.PPV_EVENT_INFO_ID,PPV_EVENT_INFO.EVENT_TITLE,PPV_EVENT_INFO.EVENT_COST,PPV_EVENT_INFO.PPV_TYPE
|
104
|
+
ORDER BY PPV_EVENT_INFO_ID"
|
105
|
+
|
106
|
+
logdebug "Query_String : #{query_string}"
|
107
|
+
return query_mystro_catalog_db(fetch_option(:mystrodb), query_string)
|
108
|
+
end
|
109
|
+
|
110
|
+
def mas_db_look_back_folders channel_name
|
111
|
+
query_string = "select menu_node_id, node_name, node_sequence, parent_node_id, node_type from menu_node where parent_node_id in (select menu_node_id from menu_node where menu_id in ( select menu_id from Menu where menu_type=2 and replace(upper(to_char(menu_name)), ' ', '') = replace(upper('#{channel_name}'), ' ', '')) and upper(node_name) like upper('look back%')) order by NODE_SEQUENCE"
|
112
|
+
logdebug "Query_String : #{query_string}"
|
113
|
+
return query_mystro_catalog_db(fetch_option(:mystrodb), query_string)
|
114
|
+
end
|
115
|
+
|
116
|
+
def mas_db_look_back_programs_in_folder folder_id
|
117
|
+
time_zone_diff = mas_db_time_zone_diff_in_min
|
118
|
+
query_string = "select node_name, node_sequence, node_desc, RTA.SCHEDULED_EVENT.event_duration, rating, ADVISORY_CODE, GENRE_CODE, to_char((view_start + #{time_zone_diff}/(24*60)), 'YYYY/MM/DD/HH24/MI/SS') as program_start, to_char((view_stop + #{time_zone_diff}/(24*60)), 'YYYY/MM/DD/HH24/MI/SS') as program_end, to_char((license_window_start + #{time_zone_diff}/(24*60)), 'YYYY/MM/DD/HH24/MI/SS') as license_window_start, to_char((license_window_end + #{time_zone_diff}/(24*60)), 'YYYY/MM/DD/HH24/MI/SS') as license_window_end, mystro_event_code from menu_node inner join node_to_od_asset on node_to_od_asset.menu_node_id = menu_node.menu_node_id inner join RTA.SCHEDULED_EVENT on OFFERING_ID = node_to_od_asset.od_asset_id left join Event_detail on Event_detail.EVENT_DETAIL_ID = RTA.SCHEDULED_EVENT.TMS_ID left join service_schedule on SCHEDULED_EVENT_ID = service_schedule.SERVICE_SCHEDULE_ID where parent_node_id = #{folder_id} order by node_sequence"
|
119
|
+
logdebug "Query_String : #{query_string}"
|
120
|
+
return query_mystro_catalog_db(fetch_option(:mystrodb), query_string)
|
121
|
+
end
|
122
|
+
|
123
|
+
def mas_db_quickclips channel_name
|
124
|
+
query_string = "select menu_node_id, node_name, node_type, node_sequence, node_desc, parent_node_id from menu_node where menu_id = (select menu_id from menu where menu_name like '#{channel_name}' and rownum = 1)"
|
125
|
+
logdebug "Query_String : #{query_string}"
|
126
|
+
return query_mystro_catalog_db(fetch_option(:mystrodb), query_string)
|
127
|
+
end
|
128
|
+
|
129
|
+
def mas_db_purchased_assets(where_clause='')
|
130
|
+
time_zone_diff = mas_db_time_zone_diff_in_min
|
131
|
+
query_string = "select PRODUCT,OD_ASSET_ID, PURCHASE_STATE, PURCHASE_ERROR, OFFER_NAME, TO_CHAR(( PURCHASE_TIME + (#{time_zone_diff}/(24*60))), 'YYYY/MM/DD/HH24/MI/SS') as PURCHASE_TIME , OFFERING_WINDOW_HRS, OD_PURCHASE.terminal_id, OD_PURCHASE.billing_code from OD_PURCHASE INNER JOIN OD_ASSET ON OD_PURCHASE.OFFER_ID=OD_ASSET.OD_ASSET_ID where #{where_clause}"
|
132
|
+
logdebug "Query_String : #{query_string}"
|
133
|
+
return query_mystro_catalog_db(fetch_option(:mystrodb), query_string)
|
134
|
+
end
|
135
|
+
|
136
|
+
def mas_db_quickclip_more_info_for_ids id_array
|
137
|
+
query_string = "select menu_node_id, rating_flag_short_desc, duration_seconds, is_valid from node_to_od_asset inner join od_asset on node_to_od_asset.od_asset_id = od_asset.od_asset_id inner join rating_flag on od_asset.rating_flag_id = rating_flag.rating_flag_id where menu_node_id in (#{id_array.join(',')})"
|
138
|
+
logdebug "Query_String : #{query_string}"
|
139
|
+
return query_mystro_catalog_db(fetch_option(:mystrodb), query_string)
|
140
|
+
end
|
141
|
+
|
142
|
+
def mas_db_od_assets_for_service name
|
143
|
+
query_string = "select asset_title from OD_ASSET where product = '#{name}'" #
|
144
|
+
logdebug "Query_String : #{query_string}"
|
145
|
+
return query_mystro_catalog_db(fetch_option(:mystrodb), query_string)
|
146
|
+
end
|
147
|
+
|
148
|
+
def mas_db_od_assets_in_rsrv(where_clause='')
|
149
|
+
time_zone_diff = mas_db_time_zone_diff_in_min
|
150
|
+
region_id = fetch_option(:region_id).to_i
|
151
|
+
query_string = "select od_rsrv.OD_ASSET_ID, asset_title, od_purchase_id, TO_CHAR(( EXPIRATION_DATE + (#{time_zone_diff}/(24*60))), 'YYYY/MM/DD/HH24/MI/SS') as EXPIRATION_DATE from od_rsrv inner join od_asset on od_rsrv.od_asset_id = od_asset.od_asset_id inner join mystro_channel on od_rsrv.mystro_service_id = mystro_channel.mystro_service_id where REGION_ID = #{region_id} #{where_clause}"
|
152
|
+
logdebug "Query_String : #{query_string}"
|
153
|
+
return query_mystro_catalog_db(fetch_option(:mystrodb), query_string)
|
154
|
+
end
|
@@ -0,0 +1,2349 @@
|
|
1
|
+
#Test automation script version# TA-5.5.mdn released time stamp: 12-03-12 14:40:20
|
2
|
+
|
3
|
+
require "rubygems"
|
4
|
+
|
5
|
+
require 'selenium/client'
|
6
|
+
require 'time'
|
7
|
+
require './dsllib/common/utils/tmc_utils'
|
8
|
+
require './dsllib/common/mas_db/mas_db'
|
9
|
+
require './dsllib/common/mas_db/mas_conductor'
|
10
|
+
|
11
|
+
#Private method
|
12
|
+
def _mas_publish_complete?(selenium)
|
13
|
+
begin
|
14
|
+
30.times do
|
15
|
+
begin
|
16
|
+
selenium.click "dijit_layout__TabButton_1"
|
17
|
+
rescue StandardError => e
|
18
|
+
loginfo2 e.message
|
19
|
+
end
|
20
|
+
if _mas_publish_inprogress?(selenium)
|
21
|
+
loginfo2 'Publish in progress...'
|
22
|
+
else
|
23
|
+
return true
|
24
|
+
end
|
25
|
+
loginfo2 "Refreshing page"
|
26
|
+
selenium.refresh
|
27
|
+
sleep 2.min
|
28
|
+
selenium.wait_for_text('Outstanding Catalogs')
|
29
|
+
end
|
30
|
+
rescue StandardError => e
|
31
|
+
loginfo2 e.message
|
32
|
+
loginfo2 "Unable to verify if MAS publish is in progress"
|
33
|
+
return false
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
#Private method
|
38
|
+
def _mas_publish_inprogress?(selenium)
|
39
|
+
return !selenium.is_text_present('Outstanding Files to be Published')
|
40
|
+
end
|
41
|
+
|
42
|
+
# Private method
|
43
|
+
def _mas_change_dvr_settings(setting_name,setting_value)
|
44
|
+
begin
|
45
|
+
selenium = _mas_login
|
46
|
+
return false if selenium.nil?
|
47
|
+
_navigate_to_stb_settings(selenium)
|
48
|
+
selenium.wait_for_text 'DVR'
|
49
|
+
mas_tsb_length = selenium.get_text("//table[6]/tbody/tr[2]/td/table/tbody/tr[1]/td[2]")
|
50
|
+
mas_dvr_jump_value = selenium.get_text("//table[6]/tbody/tr[2]/td/table/tbody/tr[12]/td[2]")
|
51
|
+
mas_enable_REW4_FF4 = selenium.get_text("//table[6]/tbody/tr[2]/td/table/tbody/tr[13]/td[2]")
|
52
|
+
|
53
|
+
mas_dvr_comp_REW1_value=selenium.get_text("//table[6]/tbody/tr[2]/td/table/tbody/tr[4]/td[2]")
|
54
|
+
mas_dvr_comp_FF1_value=selenium.get_text("//table[6]/tbody/tr[2]/td/table/tbody/tr[7]/td[2]")
|
55
|
+
|
56
|
+
if setting_name.casecmp('tsb_length') == 0 && mas_tsb_length.to_s.casecmp(setting_value.to_s.strip) == 0
|
57
|
+
loginfo2 "Existing TSB length is already [#{mas_tsb_length}] minutes. No change is required."
|
58
|
+
elsif setting_name.casecmp('dvr_jump_value') == 0 && mas_dvr_jump_value.to_s == setting_value.to_s.strip
|
59
|
+
loginfo2 "Existing DVR jump value is already [#{mas_dvr_jump_value}] minutes. No change is required."
|
60
|
+
elsif setting_name.casecmp('enable_REW4_FF4') == 0 && mas_enable_REW4_FF4.to_s == setting_value.to_s.strip
|
61
|
+
loginfo2 "Enable Rew/FF4 is already [#{mas_enable_REW4_FF4}]. No change is required."
|
62
|
+
elsif setting_name.strip.casecmp('dvr_comp_REW1_value') == 0 && mas_dvr_comp_REW1_value.to_s ==setting_value.to_s.strip
|
63
|
+
loginfo2 "Changing DVR Comp REW1 value from [#{mas_dvr_comp_REW1_value}] to [#{setting_value}] Seconds. No change is required."
|
64
|
+
elsif setting_name.strip.casecmp('dvr_comp_FF1_value') == 0 && mas_dvr_comp_FF1_value.to_s ==setting_value.to_s.strip
|
65
|
+
loginfo2 "Changing DVR Comp FF1 value from [#{mas_dvr_comp_FF1_value}] to [#{setting_value}] Seconds.e No change is required."
|
66
|
+
else
|
67
|
+
loginfo2 "Editing DVR parameters"
|
68
|
+
selenium.click "//a[contains(@href, '/mystroui/editMsoSettings.do?groupName=DVR')]", :wait_for => :page
|
69
|
+
selenium.wait_for_element "dijit_form_Button_0"
|
70
|
+
if setting_name.strip.casecmp('tsb_length') == 0
|
71
|
+
loginfo2 "Changing TSB length from [#{mas_tsb_length}] to [#{setting_value}] minutes"
|
72
|
+
selenium.type '//input[@name="value(Time-shift Buffer length )"]', setting_value.to_s
|
73
|
+
elsif setting_name.strip.casecmp('dvr_jump_value') == 0
|
74
|
+
loginfo2 "Changing DVR jump value from [#{mas_dvr_jump_value}] to [#{setting_value}] minutes"
|
75
|
+
selenium.type '//input[@name="value(DVR jump value)"]', setting_value.to_s
|
76
|
+
elsif setting_name.strip.casecmp('enable_REW4_FF4') == 0
|
77
|
+
loginfo2 "Changing Enable REW4/FF4 from [#{mas_enable_REW4_FF4}] to [#{setting_value}]"
|
78
|
+
selenium.select("//select[@name='value(Enable REW4/FF4)']", "label=false") if setting_value.strip.casecmp('false') == 0
|
79
|
+
selenium.select("//select[@name='value(Enable REW4/FF4)']", "label=true") if setting_value.strip.casecmp('true') == 0
|
80
|
+
elsif setting_name.strip.casecmp('dvr_comp_REW1_value') == 0
|
81
|
+
loginfo2 "Changing DVR Comp REW1 value from [#{mas_dvr_comp_REW1_value}] to [#{setting_value}] Seconds"
|
82
|
+
selenium.type '//input[@name="value(DVR compensation value for REW1)"]', setting_value.to_s
|
83
|
+
elsif setting_name.strip.casecmp('dvr_comp_FF1_value') == 0
|
84
|
+
loginfo2 "Changing DVR Comp FF1 value from [#{mas_dvr_comp_FF1_value}] to [#{setting_value}] Seconds"
|
85
|
+
selenium.type '//input[@name="value(DVR compensation value for FF1)"]', setting_value.to_s
|
86
|
+
end
|
87
|
+
selenium.click "dijit_form_Button_0", :wait_for => :page
|
88
|
+
_generate_setting_catalog(selenium)
|
89
|
+
end
|
90
|
+
return true
|
91
|
+
rescue StandardError => e
|
92
|
+
loginfo2 e.message
|
93
|
+
loginfo2 'Unable to change DVR settings on MAS'
|
94
|
+
return false
|
95
|
+
ensure
|
96
|
+
_mas_logout(selenium) unless selenium.nil?
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
# Private method
|
101
|
+
def _mas_change_power_save_mode_settings(setting_name,setting_value)
|
102
|
+
begin
|
103
|
+
selenium = _mas_login
|
104
|
+
return false if selenium.nil?
|
105
|
+
_navigate_to_stb_settings(selenium)
|
106
|
+
selenium.wait_for_text 'Power Save Mode'
|
107
|
+
mas_hours_of_inactivity = selenium.get_text("//table[12]/tbody/tr[2]/td/table/tbody/tr[1]/td[2]")
|
108
|
+
mas_power_save_active = selenium.get_text("//table[12]/tbody/tr[2]/td/table/tbody/tr[2]/td[2]")
|
109
|
+
selenium.click "//a[contains(@href, '/mystroui/editMsoSettings.do?groupName=Power Save Mode')]", :wait_for => :page
|
110
|
+
mas_display_to_user = selenium.is_checked("css=input[name=\"userCanChange(Power Save Active)\"]")
|
111
|
+
change_required = false
|
112
|
+
|
113
|
+
if setting_name.casecmp('hours_of_inactivity') == 0 && mas_hours_of_inactivity.to_s == setting_value.to_s.strip
|
114
|
+
loginfo2 "Existing # of Hours of Inactivity to Enter Low Power State is already [#{mas_hours_of_inactivity}] hours. No change is required."
|
115
|
+
elsif setting_name.casecmp('power_save_active') == 0 && mas_power_save_active.to_s.casecmp(setting_value.to_s.strip) == 0
|
116
|
+
loginfo2 "Power Save Active is already [#{mas_power_save_active}]. No change is required."
|
117
|
+
elsif setting_name.casecmp('display_to_user') == 0 && setting_value == mas_display_to_user
|
118
|
+
loginfo2 "Power Save Active is already [#{mas_display_to_user}]. No change is required."
|
119
|
+
else
|
120
|
+
loginfo2 "Editing Power Save Mode parameters"
|
121
|
+
selenium.wait_for_element "dijit_form_Button_0"
|
122
|
+
if setting_name.strip.casecmp('hours_of_inactivity') == 0
|
123
|
+
loginfo2 "Changing Hours of inactivity from [#{mas_hours_of_inactivity}] to [#{setting_value}] hours"
|
124
|
+
selenium.type '//input[@name="value(# of Hours of Inactivity to Enter Low Power State)"]', setting_value.to_s
|
125
|
+
elsif setting_name.strip.casecmp('power_save_active') == 0
|
126
|
+
loginfo2 "Changing Power Save Active from [#{mas_power_save_active}] to [#{setting_value}]"
|
127
|
+
selenium.select("//select[@name='value(Power Save Active)']", "label=On") if setting_value.strip.casecmp('On') == 0
|
128
|
+
selenium.select("//select[@name='value(Power Save Active)']", "label=Off") if setting_value.strip.casecmp('Off') == 0
|
129
|
+
elsif setting_name.casecmp('display_to_user') == 0
|
130
|
+
loginfo2 "Changing Display to user from [#{mas_display_to_user}] to [#{setting_value}]"
|
131
|
+
selenium.check("css=input[name=\"userCanChange(Power Save Active)\"]") if setting_value == true
|
132
|
+
selenium.uncheck("css=input[name=\"userCanChange(Power Save Active)\"]") if setting_value == false
|
133
|
+
end
|
134
|
+
selenium.click "dijit_form_Button_0", :wait_for => :page
|
135
|
+
_generate_setting_catalog(selenium)
|
136
|
+
end
|
137
|
+
return true
|
138
|
+
rescue StandardError => e
|
139
|
+
loginfo2 e.message
|
140
|
+
loginfo2 'Unable to change DVR settings on MAS'
|
141
|
+
return false
|
142
|
+
ensure
|
143
|
+
_mas_logout(selenium) unless selenium.nil?
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
# Use it to change vod asset licence window start/end date on MAS.
|
148
|
+
# * *Args* :
|
149
|
+
# - +asset+ -> VOD asset whose settings are to be changed
|
150
|
+
# - +setting_name+ -> start_date / end_date
|
151
|
+
# - +setting_value+ -> date in format: mm/dd/yyyy
|
152
|
+
# - +publish+ -> if true, publishes all outstanding catalogs, if false, only generates catalogs
|
153
|
+
# * *Returns* :
|
154
|
+
# - true if settings changed and published(optional) successfully
|
155
|
+
def _mas_change_vod_asset_licence_window(asset,setting_name,setting_value)
|
156
|
+
begin
|
157
|
+
selenium = _mas_login
|
158
|
+
return false if selenium.nil?
|
159
|
+
loginfo2 'Navigating to VOD'
|
160
|
+
selenium.wait_for_element "dijit_form_DropDownButton_4"
|
161
|
+
selenium.click "dijit_form_DropDownButton_4"
|
162
|
+
loginfo2 'Navigating to Offerings'
|
163
|
+
selenium.click "//tr[@id='dijit_MenuItem_46']/td[2]", :wait_for => :page
|
164
|
+
selenium.select_frame "iframemdn"
|
165
|
+
loginfo2 "Searching asset: [#{asset}]"
|
166
|
+
selenium.wait_for_element "dijit_form_Button_0"
|
167
|
+
selenium.type '//input[@id="offeringTitleInputId"]', asset.strip.to_s
|
168
|
+
selenium.click "dijit_form_Button_0", :wait_for => :page
|
169
|
+
if selenium.is_text_present('No results matched search criteria')
|
170
|
+
loginfo2 selenium.get_text("//form[@id='assetSearchForm']/table[2]/tbody/tr[4]/td")
|
171
|
+
return false
|
172
|
+
end
|
173
|
+
searched = selenium.get_text("css=td.genericTitle")
|
174
|
+
loginfo2 "Search result: [#{searched}]"
|
175
|
+
unless (searched.strip.casecmp(asset.strip) == 0); loginfo2 "Unable to search asset: #{asset}"; return false; end
|
176
|
+
loginfo2 "Editing asset: [#{searched}]"
|
177
|
+
selenium.click "link=edit"
|
178
|
+
selenium.wait_for_element "dijit_form_Button_1"
|
179
|
+
if setting_name.strip.casecmp('start_date') == 0
|
180
|
+
loginfo2 "Changing Start date to #{setting_value}"
|
181
|
+
selenium.type '//input[@id="editLicenseStartDate"]', setting_value.to_s.strip
|
182
|
+
elsif setting_name.strip.casecmp('end_date') == 0
|
183
|
+
loginfo2 "Changing End date to #{setting_value}"
|
184
|
+
selenium.type '//input[@id="editLicenseEndDate"]', setting_value.strip.to_s
|
185
|
+
elsif setting_name.strip.casecmp('view_length') == 0
|
186
|
+
loginfo2 "Changing Viewing length to #{setting_value}"
|
187
|
+
selenium.type '//input[@id="dijit_form_ValidationTextBox_2"]', setting_value.strip.to_s
|
188
|
+
end
|
189
|
+
selenium.click "dijit_form_Button_1"
|
190
|
+
loginfo2 selenium.get_text("id=errorInfo") if selenium.is_element_present("id=errorInfo")
|
191
|
+
selenium.click "closeStatusDialogButton"
|
192
|
+
sleep 1.min
|
193
|
+
return true
|
194
|
+
rescue StandardError => e
|
195
|
+
loginfo2 e.message
|
196
|
+
loginfo2 'Unable to change vod asset parameters on MAS'
|
197
|
+
return false
|
198
|
+
ensure
|
199
|
+
_mas_logout(selenium) unless selenium.nil?
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
# Private method
|
204
|
+
def _mas_change_vod_asset_license_end_date_to_past(asset)
|
205
|
+
yesterday = mas_current_date - 86400
|
206
|
+
yesterday = "#{yesterday.month}/#{yesterday.day}/#{yesterday.year}"
|
207
|
+
loginfo2 "Changing licence window end date of asset: [#{asset}] to past date: [#{yesterday}]"
|
208
|
+
return _mas_change_vod_asset_licence_window(asset,'end_date',yesterday)
|
209
|
+
end
|
210
|
+
|
211
|
+
# Use it to change vod asset max viewing length on MAS.
|
212
|
+
# * *Args* :
|
213
|
+
# - +asset+ -> VOD asset whose settings are to be changed
|
214
|
+
# - +length+ -> VOD asset max viewing length in format 'DD:HH:MM' (No. of days:No. of hrs: No. of mins)
|
215
|
+
# - +publish+ -> if true, publishes all outstanding catalogs, if false, only generates catalogs
|
216
|
+
# * *Returns* :
|
217
|
+
# - true if settings changed and published(optional) successfully
|
218
|
+
def _mas_change_vod_asset_viewing_length(asset,length)
|
219
|
+
loginfo2 "Changing max viewing length of asset: [#{asset}] to length: [#{length}]"
|
220
|
+
return _mas_change_vod_asset_licence_window(asset,'view_length',length)
|
221
|
+
end
|
222
|
+
|
223
|
+
#Private method
|
224
|
+
def _mas_generate_all_catalogs(selenium)
|
225
|
+
result = _navigate_to_home_page selenium
|
226
|
+
loginfo2 'Unable to navigate to MAS home page' unless result
|
227
|
+
return false unless result
|
228
|
+
selenium.select_frame "iframemdn"
|
229
|
+
selenium.refresh
|
230
|
+
selenium.wait_for_text("Find Shows")
|
231
|
+
2.times do
|
232
|
+
(1..16).each do |i|
|
233
|
+
if ((selenium.is_element_present "dijit_form_Button_#{i}") && (selenium.get_text("dijit_form_Button_#{i}").include?'Generate Catalog'))
|
234
|
+
logdebug "Generating catalog at position #{i}"
|
235
|
+
selenium.click "dijit_form_Button_#{i}", :wait_for => :page
|
236
|
+
sleep 30.sec
|
237
|
+
end
|
238
|
+
end
|
239
|
+
end
|
240
|
+
logdebug 'Waiting 2 minutes to let catalog generation complete'
|
241
|
+
sleep 2.min
|
242
|
+
return true
|
243
|
+
end
|
244
|
+
|
245
|
+
# Private method
|
246
|
+
def _mas_create_new_broadcast_service_and_map_to_channel (service_name,unassigned_source_name,tms_id,region_id,unoccupied_channel)
|
247
|
+
begin
|
248
|
+
selenium = _mas_login
|
249
|
+
return false if selenium.nil?
|
250
|
+
return false unless _navigate_to_search_service(selenium)
|
251
|
+
result = _create_new_broadcast_service(selenium, service_name,unassigned_source_name,tms_id,region_id,unoccupied_channel)
|
252
|
+
loginfo2 'Unable to create service' unless result
|
253
|
+
return false unless result
|
254
|
+
sleep 1.min
|
255
|
+
result = _mas_generate_all_catalogs selenium
|
256
|
+
loginfo2 'Unable to generate catalogs' unless result
|
257
|
+
return result
|
258
|
+
ensure
|
259
|
+
_mas_logout(selenium) unless selenium.nil?
|
260
|
+
end
|
261
|
+
end
|
262
|
+
|
263
|
+
# Private method
|
264
|
+
def _mas_delete_service(service_name)
|
265
|
+
begin
|
266
|
+
selenium = _mas_login
|
267
|
+
return false if selenium.nil?
|
268
|
+
result = _navigate_to_search_service(selenium)
|
269
|
+
loginfo2 'Unable to open search service' unless result
|
270
|
+
return false unless result
|
271
|
+
loginfo2 "Searching for service name: [#{service_name}]"
|
272
|
+
selenium.type "id=searchBox", service_name
|
273
|
+
loginfo2 "Clicking on search button"
|
274
|
+
selenium.click "dijit_form_Button_0"
|
275
|
+
selenium.wait_for_text 'services for search'
|
276
|
+
result = selenium.is_text_present 'Found 0 services for search'
|
277
|
+
loginfo2 "Unable to search service: #{service_name}" if result
|
278
|
+
return false if result
|
279
|
+
searched = selenium.get_text("//tbody[@id='dynaBody']/tr[1]/td[1]")
|
280
|
+
loginfo2 "Search result: [#{searched}]"
|
281
|
+
unless (searched.strip.casecmp(service_name.strip) == 0); loginfo2 "Unable to search service: #{service_name}"; return false; end
|
282
|
+
loginfo2 "Deleting service: [#{service_name}]"
|
283
|
+
selenium.click "link=Delete", :wait_for => :page
|
284
|
+
result = selenium.is_text_present('Are you sure you want to remove the service')
|
285
|
+
loginfo2 'Unable to open delete confirmation page' unless result
|
286
|
+
return false unless result
|
287
|
+
selenium.click "link=OK", :wait_for => :page
|
288
|
+
sleep 2.min
|
289
|
+
loginfo2 "Service deleted"
|
290
|
+
result = _mas_generate_all_catalogs selenium
|
291
|
+
loginfo2 'Unable to generate catalogs' unless result
|
292
|
+
return result
|
293
|
+
rescue StandardError => e
|
294
|
+
loginfo2 e.message
|
295
|
+
loginfo2 'Unable to delete service on MAS'
|
296
|
+
return false
|
297
|
+
ensure
|
298
|
+
_mas_logout(selenium) unless selenium.nil?
|
299
|
+
end
|
300
|
+
end
|
301
|
+
|
302
|
+
#Use this method to change auto HD feture to on or off
|
303
|
+
# Also known as easy hd feature
|
304
|
+
# * *Returns* :
|
305
|
+
# - true if value is changed successfully
|
306
|
+
def _mas_change_auto_hd_feature(status)
|
307
|
+
begin
|
308
|
+
selenium = _mas_login
|
309
|
+
return false if selenium.nil?
|
310
|
+
_navigate_to_stb_settings(selenium)
|
311
|
+
loginfo2 'Editing HD Setup settings'
|
312
|
+
selenium.click "//a[contains(@href, '/mystroui/editMsoSettings.do?groupName=HD Setup')]", :wait_for => :page
|
313
|
+
case (_set_drop_down_value(selenium,"//select[@name='value(autoHD Feature Enabled)']",status))
|
314
|
+
when 1
|
315
|
+
selenium.click "dijit_form_Button_0", :wait_for => :page
|
316
|
+
return false unless _generate_setting_catalog(selenium)
|
317
|
+
when -1
|
318
|
+
return false
|
319
|
+
end
|
320
|
+
return true
|
321
|
+
ensure
|
322
|
+
_mas_logout(selenium) unless selenium.nil?
|
323
|
+
end
|
324
|
+
end
|
325
|
+
|
326
|
+
# Private method
|
327
|
+
def _mas_publish_all_catalogs(wait)
|
328
|
+
begin
|
329
|
+
selenium = _mas_login
|
330
|
+
return false if selenium.nil?
|
331
|
+
selenium.click "dijit_form_Button_2", :wait_for => :page
|
332
|
+
selenium.select_frame "iframemdn"
|
333
|
+
loginfo2 "Navigating to Outstanding catalogs page"
|
334
|
+
selenium.click "dijit_layout__TabButton_1"
|
335
|
+
sleep 1.min
|
336
|
+
loginfo2 'Check if publish already in progress'
|
337
|
+
return false unless _mas_publish_complete?(selenium)
|
338
|
+
loginfo2 'Previous publish over'
|
339
|
+
loginfo2 'Publish all outstanding catalogs'
|
340
|
+
exec_mas_cmd "mdiags publish publish"
|
341
|
+
sleep 1.min
|
342
|
+
|
343
|
+
if wait
|
344
|
+
selenium.refresh
|
345
|
+
return false unless _mas_publish_complete?(selenium)
|
346
|
+
loginfo2 "Publish complete"
|
347
|
+
end
|
348
|
+
|
349
|
+
return true
|
350
|
+
rescue StandardError => e
|
351
|
+
loginfo2 e.message
|
352
|
+
loginfo2 'Unable publish all outstanding catalogs on MAS'
|
353
|
+
return false
|
354
|
+
ensure
|
355
|
+
_mas_logout(selenium) unless selenium.nil?
|
356
|
+
end
|
357
|
+
end
|
358
|
+
|
359
|
+
#private
|
360
|
+
#Use this method to set value of dropdown, before setting it checks its current value
|
361
|
+
def _set_drop_down_value (selenium, element, label_val)
|
362
|
+
if selenium.get_selected_label(element) == label_val
|
363
|
+
loginfo2 "Current value of dropdown is already #{label_val}"
|
364
|
+
return 0
|
365
|
+
else
|
366
|
+
loginfo2 "Value of dropdown is set to: [#{label_val}]"
|
367
|
+
selenium.select(element, "label=#{label_val}")
|
368
|
+
return 1
|
369
|
+
end
|
370
|
+
return -1
|
371
|
+
end
|
372
|
+
|
373
|
+
#Private
|
374
|
+
#Use this method to generate catalog from setting screen
|
375
|
+
def _generate_setting_catalog (selenium)
|
376
|
+
loginfo2 'Generating catalog'
|
377
|
+
selenium.wait_for_element "link=Generate Settings Catalog"
|
378
|
+
selenium.click "link=Generate Settings Catalog", :wait_for => :page
|
379
|
+
loginfo2 selenium.get_text("//center")
|
380
|
+
loginfo2 "Clicking OK to confirm"
|
381
|
+
selenium.click "//a[contains(@href, '/mystroui/buildMsoCatalogs.do?referringpage=persistentdatamgr')]", :wait_for => :page
|
382
|
+
loginfo2 selenium.get_text("//code")
|
383
|
+
sleep 1.min
|
384
|
+
return true
|
385
|
+
end
|
386
|
+
|
387
|
+
#private
|
388
|
+
#Use this method to create new broadcast service\
|
389
|
+
def _create_new_broadcast_service (selenium, service_name, unassigned_source_name, tms_id, region_id, unoccupied_channel)
|
390
|
+
selenium.wait_for_element "link=Create a Broadcast Service"
|
391
|
+
selenium.click "link=Create a Broadcast Service", :wait_for => :page
|
392
|
+
loginfo2 "Entering service name, banner name and grid name: [#{service_name}]"
|
393
|
+
selenium.type "//input[@name='bean.editName']", service_name
|
394
|
+
selenium.type "id=bannerName", service_name
|
395
|
+
selenium.type "id=gridName", service_name
|
396
|
+
loginfo2 "Adding source"
|
397
|
+
selenium.click "id=addSaSrcButton"
|
398
|
+
selenium.wait_for_text "Unassigned Sources"
|
399
|
+
loginfo2 "Selecting dropdown value: [#{unassigned_source_name}] in overlay"
|
400
|
+
selenium.type "id=sourceIdDrop", unassigned_source_name
|
401
|
+
selenium.click "id=addSourceButton"
|
402
|
+
sleep 10.sec
|
403
|
+
selenium.click "dijit_form_Button_0", :wait_for => :page
|
404
|
+
selenium.click "id=saveLogoSelectBtn", :wait_for => :page
|
405
|
+
loginfo2 "Entering TMS ID: [#{tms_id}} in overlay"
|
406
|
+
selenium.type "//input[@name='bean.searchTmsId']", tms_id
|
407
|
+
selenium.click "//input[@type='submit' and @value='Search by TMS ID']"
|
408
|
+
sleep 10.sec
|
409
|
+
result = selenium.text?('The System could not find any Guide Services based on your request')
|
410
|
+
loginfo2 "Unable to find provided TMS ID #{tms_id}" if result
|
411
|
+
return false if result
|
412
|
+
selenium.wait_for_text "Link Data"
|
413
|
+
loginfo2 "Linking Guide data"
|
414
|
+
selenium.click "link=Link Data", :wait_for => :page
|
415
|
+
loginfo2 "Selecting Region: [#{region_id}]"
|
416
|
+
selenium.wait_for_text "Select One or More Regions"
|
417
|
+
selenium.click "//input[@id='selectedRegions' and @value='#{region_id}']"
|
418
|
+
loginfo2 "Selecting Channel: [#{unoccupied_channel}]"
|
419
|
+
_set_drop_down_value(selenium, "id=svcToRegionsChannels", unoccupied_channel)
|
420
|
+
selenium.click "id=dijit_form_Button_1", :wait_for => :page
|
421
|
+
loginfo2 "Created service"
|
422
|
+
return true
|
423
|
+
end
|
424
|
+
|
425
|
+
def _mas_conductor_delete_client_application(application_name)
|
426
|
+
begin
|
427
|
+
selenium = _mas_login
|
428
|
+
return false if selenium.nil?
|
429
|
+
loginfo2 'Navigating to STB'
|
430
|
+
selenium.wait_for_element "dijit_form_DropDownButton_3"
|
431
|
+
selenium.click "dijit_form_DropDownButton_3"
|
432
|
+
loginfo2 'Navigating to STB Settings'
|
433
|
+
selenium.click "//tr[@id='dijit_MenuItem_30']/td[2]", :wait_for => :page
|
434
|
+
selenium.select_frame "iframemdn"
|
435
|
+
begin
|
436
|
+
(1..50).each{|i|
|
437
|
+
app = selenium.get_text("//div[@id='dataTable-page-0']/div[#{i}]/table/tbody/tr/td").strip
|
438
|
+
if app.casecmp(application_name) == 0
|
439
|
+
loginfo2 "Deleting application: [#{app}]"
|
440
|
+
selenium.click("//div[@id='dataTable-page-0']/div[#{i}]/table/tbody/tr/td[9]/a[2]")
|
441
|
+
break
|
442
|
+
end}
|
443
|
+
rescue
|
444
|
+
loginfo2 "Client Application: [#{application_name}] not found"
|
445
|
+
return false
|
446
|
+
end
|
447
|
+
if selenium.is_confirmation_present
|
448
|
+
loginfo2 selenium.get_confirmation
|
449
|
+
if selenium.is_alert_present
|
450
|
+
loginfo2 selenium.get_alert
|
451
|
+
end
|
452
|
+
end
|
453
|
+
loginfo2 "Client Application: [#{application_name}] deleted"
|
454
|
+
return true
|
455
|
+
ensure
|
456
|
+
_mas_logout(selenium) unless selenium.nil?
|
457
|
+
end
|
458
|
+
end
|
459
|
+
|
460
|
+
# Private method
|
461
|
+
def _mas_conductor_dvr_compensation_display_to_user value
|
462
|
+
begin
|
463
|
+
selenium = _mas_login
|
464
|
+
return false if selenium.nil?
|
465
|
+
_navigate_to_stb_settings(selenium)
|
466
|
+
loginfo2 'Navigate to DVR Compensation Edit Settings Page'
|
467
|
+
selenium.click "//a[contains(@href, '/mystroui/editMsoSettings.do?groupName=DVR')]", :wait_for => :page
|
468
|
+
click_result = selenium.is_checked("css=input[name=\"userCanChange(DVR Compensation)\"]")
|
469
|
+
return true if click_result== value
|
470
|
+
if value
|
471
|
+
selenium.check("css=input[name=\"userCanChange(DVR Compensation)\"]")
|
472
|
+
else
|
473
|
+
selenium.uncheck("css=input[name=\"userCanChange(DVR Compensation)\"]")
|
474
|
+
end
|
475
|
+
selenium.click "id=dijit_form_Button_0", :wait_for => :page
|
476
|
+
result = _mas_generate_all_catalogs selenium
|
477
|
+
loginfo2 'Unable to generate catalogs' unless result
|
478
|
+
return result
|
479
|
+
ensure
|
480
|
+
_mas_logout(selenium) unless selenium.nil?
|
481
|
+
end
|
482
|
+
end
|
483
|
+
|
484
|
+
def _mas_conductor_include_exclude_from_search(service = [], exclude = true)
|
485
|
+
begin
|
486
|
+
selenium = _mas_login
|
487
|
+
return false if selenium.nil?
|
488
|
+
loginfo2 "Navigating to Navigator"
|
489
|
+
selenium.wait_for_element "id=dijit_form_DropDownButton_0"
|
490
|
+
selenium.click "id=dijit_form_DropDownButton_0"
|
491
|
+
_selenium_wait_for_menu_to_load
|
492
|
+
loginfo2 "Navigating to Guide Data > Exclude from search"
|
493
|
+
selenium.wait_for_element "id=dijit_MenuItem_10"
|
494
|
+
selenium.click "id=dijit_MenuItem_10"
|
495
|
+
sleep 10.sec #sleep to let all services load
|
496
|
+
selenium.select_frame "iframemdn"
|
497
|
+
selenium.wait_for_element "id=dijit_form_Button_0"
|
498
|
+
loginfo2 "Excluding the given services"
|
499
|
+
service.each{ |serv|
|
500
|
+
if selenium.is_element_present("//input[@name='excludedServices' and @value='#{serv}']")
|
501
|
+
logdebug "Service #{serv} is present"
|
502
|
+
if !selenium.is_checked("//input[@name='excludedServices' and @value='#{serv}']") && exclude
|
503
|
+
logdebug "Service #{serv} is unchecked"
|
504
|
+
selenium.check("//input[@name='excludedServices' and @value='#{serv}']")
|
505
|
+
elsif selenium.is_checked("//input[@name='excludedServices' and @value='#{serv}']") && !exclude
|
506
|
+
logdebug "Service #{serv} is checked"
|
507
|
+
selenium.uncheck("//input[@name='excludedServices' and @value='#{serv}']")
|
508
|
+
end
|
509
|
+
else
|
510
|
+
loginfo2 "Service '#{serv}' is not present"
|
511
|
+
return false
|
512
|
+
end
|
513
|
+
}
|
514
|
+
loginfo2 'Submitting the changes'
|
515
|
+
selenium.click "id=dijit_form_Button_0", :wait_for => :page
|
516
|
+
|
517
|
+
loginfo2 'Verifying if the services are excluded'
|
518
|
+
service.each{ |serv|
|
519
|
+
if !selenium.is_checked("//input[@name='excludedServices' and @value='#{serv}']") && exclude
|
520
|
+
loginfo2 "Failed to exclude service '#{serv}'"
|
521
|
+
return false
|
522
|
+
elsif selenium.is_checked("//input[@name='excludedServices' and @value='#{serv}']") && !exclude
|
523
|
+
loginfo2 "Failed to remove from exclude, service, '#{serv}'"
|
524
|
+
return false
|
525
|
+
end
|
526
|
+
}
|
527
|
+
loginfo2 'Generating catalogs'
|
528
|
+
return _mas_generate_all_catalogs(selenium)
|
529
|
+
ensure
|
530
|
+
_mas_logout(selenium) unless selenium.nil?
|
531
|
+
end
|
532
|
+
end
|
533
|
+
|
534
|
+
# Use it to modify Start Over prompt Delay on MAS.
|
535
|
+
# * *Args* :
|
536
|
+
# - +delay+ -> delay to be set in min
|
537
|
+
# * *Returns* :
|
538
|
+
# - true if verified, else false
|
539
|
+
def _mas_conductor_modify_start_over_prompt_delay(delay)
|
540
|
+
begin
|
541
|
+
selenium = _mas_login
|
542
|
+
return false if selenium.nil?
|
543
|
+
_navigate_to_stb_settings(selenium)
|
544
|
+
loginfo2 'Navigating to Misc Edit Settings Page'
|
545
|
+
selenium.click "//a[contains(@href, '/mystroui/editMsoSettings.do?groupName=Misc')]", :wait_for => :page
|
546
|
+
loginfo2 "Changing Enhanced Menu /Start Over delay (minutes) to [#{delay}] minutes"
|
547
|
+
selenium.type("css=input[name=\"value(Enhanced Menu /Start Over delay)\"]",delay)
|
548
|
+
selenium.click "id=dijit_form_Button_0", :wait_for => :page
|
549
|
+
result = _mas_generate_all_catalogs selenium
|
550
|
+
loginfo2 'Unable to generate catalogs' unless result
|
551
|
+
return result
|
552
|
+
ensure
|
553
|
+
_mas_logout(selenium) unless selenium.nil?
|
554
|
+
end
|
555
|
+
end
|
556
|
+
|
557
|
+
# Private method
|
558
|
+
def _mas_conductor_set_filter_HD_guide_data_for_non_HD_stbs(value)
|
559
|
+
begin
|
560
|
+
selenium = _mas_login
|
561
|
+
return false if selenium.nil?
|
562
|
+
return false unless _navigate_to_stb_settings(selenium)
|
563
|
+
loginfo2 'Navigating to DVR Compensation Edit Settings Page'
|
564
|
+
selenium.click "//a[contains(@href, '/mystroui/editMsoSettings.do?groupName=HD Setup')]", :wait_for => :page
|
565
|
+
loginfo2 "Changing Filter HD guide data to: [#{value.to_s}]"
|
566
|
+
selenium.select("css=select[name=\"value(Filter HD guide data for non-HD STBs)\"]", value)
|
567
|
+
selenium.click "id=dijit_form_Button_0", :wait_for => :page
|
568
|
+
result = _mas_generate_all_catalogs selenium
|
569
|
+
loginfo2 'Unable to generate catalogs' unless result
|
570
|
+
return result
|
571
|
+
ensure
|
572
|
+
_mas_logout(selenium) unless selenium.nil?
|
573
|
+
end
|
574
|
+
end
|
575
|
+
|
576
|
+
# Private method
|
577
|
+
def _mas_conductor_add_exclude_from_search_for_services_playing_title title = ''
|
578
|
+
all_programs = find_programs({:PROGRAM_LONG_TITLE => title})
|
579
|
+
services = []
|
580
|
+
channel_numbers = all_programs.collect{|p| p[0].to_s.to_i}
|
581
|
+
services = mas_db_get_channels("and display_channel in (#{channel_numbers.join(',')})").collect{|channel| channel['SERVICE_NAME'].to_s}
|
582
|
+
|
583
|
+
loginfo2 "Services to exclude :#{services}"
|
584
|
+
result = _mas_conductor_include_exclude_from_search(services)
|
585
|
+
loginfo2 "Failed to exclude services playing title #{title}" unless result
|
586
|
+
return result
|
587
|
+
end
|
588
|
+
|
589
|
+
# Private method
|
590
|
+
def _mas_conductor_remove_exclude_from_search_for_services_playing_title title = ''
|
591
|
+
all_programs = find_programs({:PROGRAM_LONG_TITLE => title})
|
592
|
+
services = []
|
593
|
+
channel_numbers = all_programs.collect{|p| p[0].to_s.to_i}
|
594
|
+
|
595
|
+
services = mas_db_get_channels("and display_channel in (#{channel_numbers.join(',')})").collect{|channel| channel['SERVICE_NAME'].to_s}
|
596
|
+
|
597
|
+
loginfo2 "Services to remove from exclude :#{services}"
|
598
|
+
result = _mas_conductor_include_exclude_from_search(services,false)
|
599
|
+
loginfo2 "Failed to remove exclude from search for services playing title: #{title}" unless result
|
600
|
+
return result
|
601
|
+
end
|
602
|
+
|
603
|
+
# Use it to create split on MAS of specified duration.
|
604
|
+
# * *Args* :
|
605
|
+
# - +primary_service+ -> Primary service to be set ex: ESPNHD
|
606
|
+
# - +secondary_service+ -> Secondary service to be set ex: FoxNews
|
607
|
+
# - +active_region_id+ -> Active Region id where split service is to be set ex: 56
|
608
|
+
# - +split_start_time+ -> Split Start Time (Ruby Format)
|
609
|
+
# - +split_duration+ -> Split Duration (Min)
|
610
|
+
# * *Returns* :
|
611
|
+
# - true
|
612
|
+
def _mas_create_split primary_service, secondary_service, active_region_id, split_start_time, split_duration
|
613
|
+
|
614
|
+
primary_service = primary_service.gsub(/[^a-zA-Z0-9]/, '')
|
615
|
+
secondary_service = secondary_service.gsub(/[^a-zA-Z0-9]/, '')
|
616
|
+
start_time = "#{split_start_time.strftime("%I")}:#{split_start_time.strftime("%M")}"
|
617
|
+
|
618
|
+
begin
|
619
|
+
selenium = _mas_login
|
620
|
+
return false if selenium.nil?
|
621
|
+
loginfo2 'Navigating to Split Services and Blackout'
|
622
|
+
selenium.wait_for_element "id=dijit_form_DropDownButton_0"
|
623
|
+
selenium.click "id=dijit_form_DropDownButton_0"
|
624
|
+
loginfo2 'Navigating to Regions/Lineups > Split Services and Blackout'
|
625
|
+
selenium.click "css=#dijit_MenuItem_8 > td.dijitReset.dijitMenuItemLabel", :wait_for => :page
|
626
|
+
loginfo2 'Navigating to Create Daily Split'
|
627
|
+
selenium.select_frame "iframemdn"
|
628
|
+
selenium.wait_for_element "link=Create Daily Split"
|
629
|
+
selenium.click "link=Create Daily Split", :wait_for => :page
|
630
|
+
|
631
|
+
selenium.wait_for_element "id=dijit_form_Button_0"
|
632
|
+
loginfo2 "Select the primary service as: #{primary_service}"
|
633
|
+
selenium.select("name=bean.primarySvc", "label=#{primary_service}")
|
634
|
+
loginfo2 "Select the secondary service as: #{secondary_service}"
|
635
|
+
selenium.select("name=bean.alternateSvc", "label=#{secondary_service}")
|
636
|
+
loginfo2 "Select the Active Regions as: #{active_region_id}"
|
637
|
+
selenium.check("//input[@id='togglee' and @value='#{active_region_id}']")
|
638
|
+
loginfo2 "Enter the split start time as: #{start_time}"
|
639
|
+
selenium.type("name=bean.startTimeString",start_time)
|
640
|
+
loginfo2 "Enter the split duration (min) as: #{split_duration}"
|
641
|
+
selenium.type("name=bean.duration",split_duration)
|
642
|
+
loginfo2 "Submit the changes"
|
643
|
+
selenium.click "id=dijit_form_Button_0", :wait_for => :page
|
644
|
+
|
645
|
+
result = _mas_generate_all_catalogs selenium
|
646
|
+
loginfo2 'Unable to generate catalogs' unless result
|
647
|
+
return result
|
648
|
+
ensure
|
649
|
+
_mas_logout(selenium) unless selenium.nil?
|
650
|
+
end
|
651
|
+
end
|
652
|
+
|
653
|
+
# Private method
|
654
|
+
def _mas_conductor_set_dvr_compensation value
|
655
|
+
begin
|
656
|
+
selenium = _mas_login
|
657
|
+
return false if selenium.nil?
|
658
|
+
_navigate_to_stb_settings(selenium)
|
659
|
+
dvr_compensation = selenium.get_text("//table[6]/tbody/tr[2]/td/table/tbody/tr[18]/td[2]")
|
660
|
+
dvr_compensation = dvr_compensation.split('-')[1].strip
|
661
|
+
loginfo2 'Editing DVR parameters'
|
662
|
+
selenium.click "//a[contains(@href, '/mystroui/editMsoSettings.do?groupName=DVR')]", :wait_for => :page
|
663
|
+
loginfo2 "Changing DVR compensation value from: [#{dvr_compensation}] to [#{value}]"
|
664
|
+
option = "User DVR Compensation - #{value}"
|
665
|
+
selenium.select("css=select[name=\"value(DVR Compensation)\"]", option)
|
666
|
+
selenium.click("id=dijit_form_Button_0", :wait_for => :page)
|
667
|
+
loginfo2 "Successfully set DVR compensation value : #{value}"
|
668
|
+
|
669
|
+
result = _mas_generate_all_catalogs selenium
|
670
|
+
loginfo2 'Unable to generate catalogs' unless result
|
671
|
+
return result
|
672
|
+
rescue StandardError => e
|
673
|
+
logdebug "Error while setting DVR Comp value : #{e.message}"
|
674
|
+
return false
|
675
|
+
ensure
|
676
|
+
_mas_logout(selenium) unless selenium.nil?
|
677
|
+
end
|
678
|
+
end
|
679
|
+
|
680
|
+
# Private method
|
681
|
+
def _mas_create_blackout primary_service, secondary_service, active_region_id, blackout_start_time, blackout_duration
|
682
|
+
|
683
|
+
primary_service = primary_service.gsub(/[^a-zA-Z0-9]/, '')
|
684
|
+
secondary_service = secondary_service.gsub(/[^a-zA-Z0-9]/, '')
|
685
|
+
blackout_date = "#{blackout_start_time.strftime("%m")}/#{blackout_start_time.strftime("%d")}/#{blackout_start_time.strftime("%Y")}"
|
686
|
+
start_time = "#{blackout_start_time.strftime("%I")}:#{blackout_start_time.strftime("%M")}"
|
687
|
+
|
688
|
+
begin
|
689
|
+
selenium = _mas_login
|
690
|
+
return false if selenium.nil?
|
691
|
+
loginfo2 'Navigating to Split Services and Blackout'
|
692
|
+
selenium.wait_for_element "id=dijit_form_DropDownButton_0"
|
693
|
+
selenium.click "id=dijit_form_DropDownButton_0"
|
694
|
+
loginfo2 'Navigating to Regions/Lineups > Split Services and Blackout'
|
695
|
+
selenium.click "css=#dijit_MenuItem_8 > td.dijitReset.dijitMenuItemLabel", :wait_for => :page
|
696
|
+
loginfo2 'Navigating to Create Blackout'
|
697
|
+
selenium.select_frame "iframemdn"
|
698
|
+
selenium.wait_for_element "link=Create Blackout"
|
699
|
+
selenium.click "link=Create Blackout", :wait_for => :page
|
700
|
+
|
701
|
+
selenium.wait_for_element "id=dijit_form_Button_0"
|
702
|
+
loginfo2 "Select the primary service as: #{primary_service}"
|
703
|
+
selenium.select("name=bean.primarySvc", "label=#{primary_service}")
|
704
|
+
loginfo2 "Select the secondary service as: #{secondary_service}"
|
705
|
+
selenium.select("name=bean.alternateSvc", "label=#{secondary_service}")
|
706
|
+
loginfo2 "Select the Active Regions as: #{active_region_id}"
|
707
|
+
selenium.check("//input[@id='togglee' and @value='#{active_region_id}']")
|
708
|
+
loginfo2 "Enter the blackout date as: #{blackout_date}"
|
709
|
+
selenium.type("name=bean.blackoutDate",blackout_date)
|
710
|
+
loginfo2 "Enter the blackout start time as: #{start_time}"
|
711
|
+
selenium.type("name=bean.startTimeString",start_time)
|
712
|
+
loginfo2 "Enter the blackout duration (min) as: #{blackout_duration}"
|
713
|
+
selenium.type("name=bean.duration",blackout_duration)
|
714
|
+
|
715
|
+
loginfo2 "Submit the changes"
|
716
|
+
selenium.click "id=dijit_form_Button_0", :wait_for => :page
|
717
|
+
|
718
|
+
result = _mas_generate_all_catalogs selenium
|
719
|
+
loginfo2 'Unable to generate catalogs' unless result
|
720
|
+
return result
|
721
|
+
ensure
|
722
|
+
_mas_logout(selenium) unless selenium.nil?
|
723
|
+
end
|
724
|
+
end
|
725
|
+
|
726
|
+
# Private method
|
727
|
+
def _mas_edit_split existing_primary_service, existing_secondary_service, existing_split_start_time, existing_split_duration, existing_split_region_name , existing_split_region_id, existing_split_type = 'Daily Split', new_primary_service= '', new_secondary_service = '', new_split_start_time = 0, new_split_duration = 0, new_split_region_id = 0
|
728
|
+
|
729
|
+
existing_split_start = "#{existing_split_start_time.strftime("%I")}:#{existing_split_start_time.strftime("%M")}"
|
730
|
+
existing_split = [existing_primary_service, existing_secondary_service, existing_split_type, existing_split_start, existing_split_duration.to_s, existing_split_region_name]
|
731
|
+
new_split_start = ''
|
732
|
+
|
733
|
+
begin
|
734
|
+
selenium = _mas_login
|
735
|
+
return false if selenium.nil?
|
736
|
+
loginfo2 'Navigating to Split Services and Blackout'
|
737
|
+
selenium.wait_for_element "id=dijit_form_DropDownButton_0"
|
738
|
+
selenium.click "id=dijit_form_DropDownButton_0"
|
739
|
+
loginfo2 'Navigating to Regions/Lineups > Split Services and Blackout'
|
740
|
+
selenium.click "css=#dijit_MenuItem_8 > td.dijitReset.dijitMenuItemLabel", :wait_for => :page
|
741
|
+
selenium.select_frame "iframemdn"
|
742
|
+
selenium.wait_for_element "link=Create Daily Split"
|
743
|
+
|
744
|
+
max_row_table = 50 # Max no. of splits
|
745
|
+
max_col_table = 6
|
746
|
+
|
747
|
+
max_row_table.times do |iRow|
|
748
|
+
split_found = false
|
749
|
+
|
750
|
+
text_primary = selenium.get_table("//tr[2]/td/table.#{iRow}.0")
|
751
|
+
text_start_time = selenium.get_table("//tr[2]/td/table.#{iRow}.3")
|
752
|
+
|
753
|
+
puts text_primary
|
754
|
+
puts text_start_time
|
755
|
+
|
756
|
+
split_found = true if ((text_primary == existing_primary_service) && (text_start_time == existing_split_start))
|
757
|
+
|
758
|
+
if split_found== true
|
759
|
+
new_primary_service = new_primary_service=="" ? existing_primary_service : new_primary_service
|
760
|
+
new_secondary_service = new_secondary_service=="" ? existing_secondary_service : new_secondary_service
|
761
|
+
new_split_start_time = new_split_start_time==0 ? existing_split_start_time : new_split_start_time
|
762
|
+
new_split_duration = new_split_duration==0 ? existing_split_duration : new_split_duration
|
763
|
+
new_split_region_id = new_split_region_id==0 ? existing_split_region_id : new_split_region_id
|
764
|
+
new_split_start = "#{new_split_start_time.strftime("%I")}:#{new_split_start_time.strftime("%M")}"
|
765
|
+
selenium.click "//div[2]/div/table/tbody/tr[2]/td/table/tbody/tr[#{iRow}]/td[7]/center/a", :wait_for => :page
|
766
|
+
break
|
767
|
+
end
|
768
|
+
end
|
769
|
+
|
770
|
+
loginfo2 "Select the new primary_service primary service as: [#{new_primary_service}]"
|
771
|
+
selenium.select("name=bean.primarySvc", "label=#{new_primary_service}")
|
772
|
+
loginfo2 "Select the new secondary service as: [#{new_secondary_service}]"
|
773
|
+
selenium.select("name=bean.alternateSvc", "label=#{new_secondary_service}")
|
774
|
+
loginfo2 "Select the new Active Regions as: [#{new_split_region_id}]"
|
775
|
+
selenium.check("//input[@id='togglee' and @value='#{new_split_region_id}']")
|
776
|
+
loginfo2 "Enter the new split start time as: [#{new_split_start}]"
|
777
|
+
selenium.type("name=bean.startTimeString",new_split_start)
|
778
|
+
loginfo2 "Enter the new split duration (min) as: [#{new_split_duration}]"
|
779
|
+
selenium.type("name=bean.duration",new_split_duration)
|
780
|
+
loginfo2 "Submit the changes"
|
781
|
+
selenium.click "id=dijit_form_Button_0", :wait_for => :page
|
782
|
+
|
783
|
+
result = _mas_generate_all_catalogs selenium
|
784
|
+
loginfo2 'Unable to generate catalogs' unless result
|
785
|
+
return false unless result
|
786
|
+
|
787
|
+
return true
|
788
|
+
rescue StandardError => e
|
789
|
+
loginfo2 e.message
|
790
|
+
loginfo2 "Failed to edit the given split: [#{existing_split.join(', ')}]"
|
791
|
+
return false
|
792
|
+
ensure
|
793
|
+
_mas_logout(selenium) unless selenium.nil?
|
794
|
+
end
|
795
|
+
end
|
796
|
+
|
797
|
+
# Private method
|
798
|
+
def _mas_conductor_add_channel_to_service_on_region channel,service,region_id
|
799
|
+
begin
|
800
|
+
selenium = _mas_login
|
801
|
+
return false if selenium.nil?
|
802
|
+
_navigate_to_search_service(selenium)
|
803
|
+
loginfo2 "Searching Given Service: #{service}"
|
804
|
+
selenium.type "id=searchBox", service
|
805
|
+
selenium.click "id=dijit_form_Button_0"
|
806
|
+
sleep 20.sec
|
807
|
+
loginfo2 'Navigating to exact service'
|
808
|
+
i=1
|
809
|
+
while selenium.is_element_present("//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{i}]/td/a")
|
810
|
+
name = selenium.get_text("//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{i}]/td/a")
|
811
|
+
logdebug "Current service #{name}"
|
812
|
+
break if name.casecmp(service) == 0
|
813
|
+
i+=1
|
814
|
+
end
|
815
|
+
loginfo2 'Found the given service. Going to channels'
|
816
|
+
selenium.click("//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{i}]/td[5]/a", :wait_for => :page)
|
817
|
+
loginfo2 'Navigating to Assign Service to Regions'
|
818
|
+
selenium.click("link=Assign Service to Regions")
|
819
|
+
sleep 20.sec
|
820
|
+
loginfo2 "Selecting region id #{region_id}"
|
821
|
+
selenium.check "//input[@id='selectedRegions' and @value='#{region_id}']"
|
822
|
+
loginfo2 "Selecting channel: #{channel}"
|
823
|
+
selenium.select "id=svcToRegionsChannels","#{channel}"
|
824
|
+
loginfo2 'Submiting the changes'
|
825
|
+
selenium.click "id=dijit_form_Button_0"
|
826
|
+
sleep 15.sec
|
827
|
+
loginfo2 'Generating catalogs'
|
828
|
+
return _mas_generate_all_catalogs(selenium)
|
829
|
+
rescue StandardError => e
|
830
|
+
logdebug e.message
|
831
|
+
loginfo2 "Failed to add channel to given service on given region"
|
832
|
+
return false
|
833
|
+
ensure
|
834
|
+
_mas_logout(selenium) unless selenium.nil?
|
835
|
+
end
|
836
|
+
end
|
837
|
+
|
838
|
+
# Private method
|
839
|
+
def _mas_conductor_remove_channel_from_service_on_region channel,service,region_name
|
840
|
+
begin
|
841
|
+
selenium = _mas_login
|
842
|
+
return false if selenium.nil?
|
843
|
+
_navigate_to_search_service(selenium)
|
844
|
+
loginfo2 "Searching Given Service: #{service}"
|
845
|
+
selenium.type "id=searchBox", service
|
846
|
+
selenium.click "id=dijit_form_Button_0"
|
847
|
+
sleep 20.sec
|
848
|
+
loginfo2 'Navigating to exact service'
|
849
|
+
i=1
|
850
|
+
i+=1 while(service.casecmp(selenium.get_text("//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{i}]/td/a"))!=0)
|
851
|
+
|
852
|
+
loginfo2 'Found the given service. Going to channels'
|
853
|
+
selenium.click("//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{i}]/td[5]/a", :wait_for => :page)
|
854
|
+
|
855
|
+
loginfo2 "Finding region '#{region_name}' from which channel is to be deleted"
|
856
|
+
i=1
|
857
|
+
i+=1 while(region_name.casecmp(selenium.get_text("//div/div/table[2]/tbody/tr[4]/td/table/tbody/tr[#{i}]/td[1]"))!=0)
|
858
|
+
|
859
|
+
loginfo2 "Deleting channel '#{channel}' from Region"
|
860
|
+
i+=1
|
861
|
+
while selenium.is_element_present("//div/div/table[2]/tbody/tr[4]/td/table/tbody/tr[#{i}]/td[2]") && !selenium.get_text("//div/div/table[2]/tbody/tr[4]/td/table/tbody/tr[#{i}]/td[2]").empty?
|
862
|
+
channel_found = selenium.get_text("//div/div/table[2]/tbody/tr[4]/td/table/tbody/tr[#{i}]/td[2]")
|
863
|
+
logdebug "Found channel #{channel_found}"
|
864
|
+
if channel_found.casecmp(channel.to_s)==0
|
865
|
+
loginfo2 'Found the given channel. Removing it from given region'
|
866
|
+
selenium.click "//div/div/table[2]/tbody/tr[4]/td/table/tbody/tr[#{i}]/td[7]/center/a[2]"
|
867
|
+
sleep 5.sec
|
868
|
+
selenium.click "//*[@id=\"dijit_form_Button_1\"]"
|
869
|
+
sleep 15.sec
|
870
|
+
loginfo2 'Generating catalogs'
|
871
|
+
_mas_generate_all_catalogs(selenium)
|
872
|
+
return true
|
873
|
+
end
|
874
|
+
i+=1
|
875
|
+
end
|
876
|
+
loginfo2 'Failed to find the given channel'
|
877
|
+
return false
|
878
|
+
rescue StandardError => e
|
879
|
+
logdebug e.message
|
880
|
+
loginfo2 "Failed to remove channel from given service on given region"
|
881
|
+
return false
|
882
|
+
ensure
|
883
|
+
_mas_logout(selenium) unless selenium.nil?
|
884
|
+
end
|
885
|
+
end
|
886
|
+
|
887
|
+
# Use it to change to given source on given service
|
888
|
+
# * *Args* :
|
889
|
+
# - +service_name+ -> Service name
|
890
|
+
# - +unassigned_source_name+ -> Source name to assign to service
|
891
|
+
# * *Returns* :
|
892
|
+
# - true if added source succefully else false
|
893
|
+
def _mas_conductor_add_source_to_service service_name, unassigned_source_name, prefered=false
|
894
|
+
begin
|
895
|
+
selenium = _mas_login
|
896
|
+
return false if selenium.nil?
|
897
|
+
_navigate_to_search_service(selenium)
|
898
|
+
loginfo2 "Searching Given Service"
|
899
|
+
selenium.type "id=searchBox", service_name
|
900
|
+
selenium.click "id=dijit_form_Button_0"
|
901
|
+
sleep 10.sec
|
902
|
+
i=1
|
903
|
+
service = selenium.get_text("//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{i}]/td[1]/a")
|
904
|
+
while(service_name.to_s != service.to_s)
|
905
|
+
i=i+1
|
906
|
+
service = selenium.get_text("//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{i}]/td[1]/a")
|
907
|
+
end
|
908
|
+
loginfo2 "Editing Service"
|
909
|
+
selenium.click "//tbody[@id='dynaBody']/tr[#{i}]/td[8]/center/a[1]", :wait_for => :page
|
910
|
+
|
911
|
+
#selenium.wait_for_page_to_load "30000"
|
912
|
+
selenium.click "id=addSaSrcButton"
|
913
|
+
selenium.wait_for_text "Unassigned Sources"
|
914
|
+
loginfo2 "Selecting dropdown value: [#{unassigned_source_name}] in overlay"
|
915
|
+
selenium.type "id=sourceIdDrop", unassigned_source_name
|
916
|
+
selenium.click "id=addSourceButton"
|
917
|
+
loginfo2 "Confirmed source to add"
|
918
|
+
sleep 10.sec
|
919
|
+
if prefered==true
|
920
|
+
loginfo2 "Finding Source #{unassigned_source_name} to prefer"
|
921
|
+
i=1
|
922
|
+
source_name1 = selenium.get_text("//div[@id='saSourcesGrid-page-0']/div[#{i}]/table/tbody/tr/td[2]")
|
923
|
+
source_name2 = selenium.get_text("//div[@id='saSourcesGrid-page-0']/div[#{i}]/table/tbody/tr/td[3]")
|
924
|
+
source_name ="#{source_name1} (#{source_name2})"
|
925
|
+
loginfo2 "source_name = #{source_name}"
|
926
|
+
while (source_name.to_s != unassigned_source_name.to_s)
|
927
|
+
i = i+1
|
928
|
+
source_name1 = selenium.get_text("//div[@id='saSourcesGrid-page-0']/div[#{i}]/table/tbody/tr/td[2]")
|
929
|
+
source_name2 = selenium.get_text("//div[@id='saSourcesGrid-page-0']/div[#{i}]/table/tbody/tr/td[3]")
|
930
|
+
source_name ="#{source_name1} (#{source_name2})"
|
931
|
+
loginfo2 "source_name = #{source_name}"
|
932
|
+
end
|
933
|
+
selenium.click("//div[@id='saSourcesGrid-page-0']/div[#{i}]/table/tbody/tr/td[1]/input")
|
934
|
+
end
|
935
|
+
|
936
|
+
selenium.click "dijit_form_Button_0", :wait_for => :page
|
937
|
+
|
938
|
+
result = _mas_generate_all_catalogs selenium
|
939
|
+
loginfo2 'Unable to generate catalogs' unless result
|
940
|
+
return false unless result
|
941
|
+
rescue StandardError => e
|
942
|
+
logdebug "Error while Adding Source to service : #{e.message}"
|
943
|
+
return false
|
944
|
+
ensure
|
945
|
+
_mas_logout(selenium) unless selenium.nil?
|
946
|
+
end
|
947
|
+
|
948
|
+
if prefered == true
|
949
|
+
loginfo2 "Successfully Changed source #{unassigned_source_name} to service #{service_name}"
|
950
|
+
else
|
951
|
+
loginfo2 "Successfully Added source #{unassigned_source_name} to service #{service_name}"
|
952
|
+
end
|
953
|
+
return true
|
954
|
+
end
|
955
|
+
|
956
|
+
# Use it to remove given source from given service
|
957
|
+
# * *Args* :
|
958
|
+
# - +service_name+ -> Service name
|
959
|
+
# - +source_name_to_delete+ -> Source name to assign to service
|
960
|
+
# * *Returns* :
|
961
|
+
# - true if added source succefully else false
|
962
|
+
def _mas_conductor_remove_source_from_service service_name, source_name_to_delete
|
963
|
+
begin
|
964
|
+
selenium = _mas_login
|
965
|
+
return false if selenium.nil?
|
966
|
+
_navigate_to_search_service(selenium)
|
967
|
+
loginfo2 "Searching Given Service"
|
968
|
+
selenium.type "id=searchBox", service_name
|
969
|
+
selenium.click "id=dijit_form_Button_0"
|
970
|
+
sleep 10.sec
|
971
|
+
i=1
|
972
|
+
service = selenium.get_text("//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{i}]/td[1]/a")
|
973
|
+
while(service_name.to_s != service.to_s)
|
974
|
+
i=i+1
|
975
|
+
service = selenium.get_text("//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{i}]/td[1]/a")
|
976
|
+
end
|
977
|
+
loginfo2 "Editing Service"
|
978
|
+
selenium.click "//tbody[@id='dynaBody']/tr[#{i}]/td[8]/center/a[1]", :wait_for => :page
|
979
|
+
i=1
|
980
|
+
source_name1 = selenium.get_text("//div[@id='saSourcesGrid-page-0']/div[#{i}]/table/tbody/tr/td[2]")
|
981
|
+
source_name2 = selenium.get_text("//div[@id='saSourcesGrid-page-0']/div[#{i}]/table/tbody/tr/td[3]")
|
982
|
+
source_name ="#{source_name1} (#{source_name2})"
|
983
|
+
loginfo2 "source_name = #{source_name}"
|
984
|
+
while (source_name.to_s != source_name_to_delete.to_s)
|
985
|
+
i = i+1
|
986
|
+
source_name1 = selenium.get_text("//div[@id='saSourcesGrid-page-0']/div[#{i}]/table/tbody/tr/td[2]")
|
987
|
+
source_name2 = selenium.get_text("//div[@id='saSourcesGrid-page-0']/div[#{i}]/table/tbody/tr/td[3]")
|
988
|
+
source_name ="#{source_name1} (#{source_name2})"
|
989
|
+
loginfo2 "source_name = #{source_name}"
|
990
|
+
end
|
991
|
+
loginfo2 "Removing source #{source_name_to_delete} from from service: #{service_name}"
|
992
|
+
selenium.click("//div[@id='saSourcesGrid-page-0']/div[#{i}]/table/tbody/tr/td[7]/input")
|
993
|
+
|
994
|
+
selenium.click("id=removeSaSrcButton")
|
995
|
+
selenium.click "id=removeSourcesButton"
|
996
|
+
sleep 10.sec
|
997
|
+
selenium.click "dijit_form_Button_0", :wait_for => :page
|
998
|
+
|
999
|
+
result = _mas_generate_all_catalogs selenium
|
1000
|
+
loginfo2 'Unable to generate catalogs' unless result
|
1001
|
+
return false unless result
|
1002
|
+
rescue StandardError => e
|
1003
|
+
logdebug "Error while deleting Source from service : #{e.message}"
|
1004
|
+
return false
|
1005
|
+
ensure
|
1006
|
+
_mas_logout(selenium) unless selenium.nil?
|
1007
|
+
end
|
1008
|
+
|
1009
|
+
loginfo2 "Successfully deleted source #{source_name_to_delete} for service #{service_name}"
|
1010
|
+
return true
|
1011
|
+
end
|
1012
|
+
|
1013
|
+
# Private method
|
1014
|
+
def _mas_conductor_remove_service_from_region service_name, region_name
|
1015
|
+
begin
|
1016
|
+
selenium = _mas_login
|
1017
|
+
return false if selenium.nil?
|
1018
|
+
_navigate_to_search_service(selenium)
|
1019
|
+
loginfo2 "Searching Given Service"
|
1020
|
+
selenium.type "id=searchBox", service_name
|
1021
|
+
selenium.click "id=dijit_form_Button_0"
|
1022
|
+
sleep 10.sec
|
1023
|
+
i=1
|
1024
|
+
service = selenium.get_text("//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{i}]/td[1]/a")
|
1025
|
+
while(service_name.to_s != service.to_s)
|
1026
|
+
i=i+1
|
1027
|
+
service = selenium.get_text("//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{i}]/td[1]/a")
|
1028
|
+
end
|
1029
|
+
|
1030
|
+
selenium.click "//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{i}]/td[5]/a", :wait_for => :page
|
1031
|
+
|
1032
|
+
loginfo2 "Finding region to delete service"
|
1033
|
+
i=1
|
1034
|
+
region = selenium.get_text "//div/div/table[2]/tbody/tr[4]/td/table/tbody/tr[#{i}]/td[1]"
|
1035
|
+
while(region_name.casecmp(region.to_s)!=0)
|
1036
|
+
i=i+1
|
1037
|
+
region = selenium.get_text "//div/div/table[2]/tbody/tr[4]/td/table/tbody/tr[#{i}]/td[1]"
|
1038
|
+
end
|
1039
|
+
loginfo2 "Deleting service from Region"
|
1040
|
+
while selenium.is_element_present("//div/div/table[2]/tbody/tr[4]/td/table/tbody/tr[#{i+1}]/td[2]") && !selenium.get_text("//div/div/table[2]/tbody/tr[4]/td/table/tbody/tr[#{i+1}]/td[2]").empty?
|
1041
|
+
selenium.click "//div/div/table[2]/tbody/tr[4]/td/table/tbody/tr[#{i+1}]/td[7]/center/a[2]"
|
1042
|
+
selenium.click "//*[@id=\"dijit_form_Button_1\"]"
|
1043
|
+
end
|
1044
|
+
|
1045
|
+
result = _mas_generate_all_catalogs selenium
|
1046
|
+
loginfo2 'Unable to generate catalogs' unless result
|
1047
|
+
return false unless result
|
1048
|
+
rescue StandardError => e
|
1049
|
+
logdebug "Error while deleting a service : #{e.message}"
|
1050
|
+
return false
|
1051
|
+
ensure
|
1052
|
+
_mas_logout(selenium) unless selenium.nil?
|
1053
|
+
end
|
1054
|
+
|
1055
|
+
loginfo2 "Successfully deleted service #{service_name} on Region : #{region_name}"
|
1056
|
+
return true
|
1057
|
+
end
|
1058
|
+
|
1059
|
+
# Use it to prefer a source of given service
|
1060
|
+
# * *Args* :
|
1061
|
+
# - +service_name+ -> Service name
|
1062
|
+
# - +source_name_to_modify+ -> Sorce name to modify preference
|
1063
|
+
# * *Returns* :
|
1064
|
+
# - true if delete service succefully else false
|
1065
|
+
def _mas_conductor_prefer_a_source_of_service service_name, source_name_to_modify
|
1066
|
+
begin
|
1067
|
+
selenium = _mas_login
|
1068
|
+
return false if selenium.nil?
|
1069
|
+
_navigate_to_search_service(selenium)
|
1070
|
+
loginfo2 "Searching Given Service"
|
1071
|
+
selenium.type "id=searchBox", service_name
|
1072
|
+
selenium.click "id=dijit_form_Button_0"
|
1073
|
+
sleep 10.sec
|
1074
|
+
|
1075
|
+
i=1
|
1076
|
+
service = selenium.get_text("//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{i}]/td[1]/a")
|
1077
|
+
while(service_name.to_s != service.to_s)
|
1078
|
+
i=i+1
|
1079
|
+
service = selenium.get_text("//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{i}]/td[1]/a")
|
1080
|
+
end
|
1081
|
+
loginfo2 "Editing Service"
|
1082
|
+
selenium.click "//tbody[@id='dynaBody']/tr[#{i}]/td[8]/center/a[1]", :wait_for => :page
|
1083
|
+
|
1084
|
+
loginfo2 "Searching Source to prefer"
|
1085
|
+
i=1
|
1086
|
+
source_name1 = selenium.get_text("//div[@id='saSourcesGrid-page-0']/div[#{i}]/table/tbody/tr/td[2]")
|
1087
|
+
source_name2 = selenium.get_text("//div[@id='saSourcesGrid-page-0']/div[#{i}]/table/tbody/tr/td[3]")
|
1088
|
+
source_name ="#{source_name1} (#{source_name2})"
|
1089
|
+
loginfo2 "source_name = #{source_name}"
|
1090
|
+
while (source_name.to_s != source_name_to_modify.to_s)
|
1091
|
+
i = i+1
|
1092
|
+
source_name1 = selenium.get_text("//div[@id='saSourcesGrid-page-0']/div[#{i}]/table/tbody/tr/td[2]")
|
1093
|
+
source_name2 = selenium.get_text("//div[@id='saSourcesGrid-page-0']/div[#{i}]/table/tbody/tr/td[3]")
|
1094
|
+
source_name ="#{source_name1} (#{source_name2})"
|
1095
|
+
loginfo2 "source_name = #{source_name}"
|
1096
|
+
end
|
1097
|
+
|
1098
|
+
selenium.click("//div[@id='saSourcesGrid-page-0']/div[#{i}]/table/tbody/tr/td[1]/input")
|
1099
|
+
selenium.click "dijit_form_Button_0", :wait_for => :page
|
1100
|
+
|
1101
|
+
result = _mas_generate_all_catalogs selenium
|
1102
|
+
loginfo2 'Unable to generate catalogs' unless result
|
1103
|
+
return false unless result
|
1104
|
+
rescue StandardError => e
|
1105
|
+
logdebug "Error while deleting a service : #{e.message}"
|
1106
|
+
return false
|
1107
|
+
ensure
|
1108
|
+
_mas_logout(selenium) unless selenium.nil?
|
1109
|
+
end
|
1110
|
+
|
1111
|
+
loginfo2 "Successfully prefered a #{source_name_to_modify} for service #{service_name}"
|
1112
|
+
return true
|
1113
|
+
end
|
1114
|
+
|
1115
|
+
#Use it to change the default language
|
1116
|
+
# * *Args* :
|
1117
|
+
# - +language+ -> English/Spanish
|
1118
|
+
# * *Returns* :
|
1119
|
+
# - true if changed succefully else false
|
1120
|
+
def _mas_conductor_change_default_language_to language
|
1121
|
+
if language.strip.casecmp('English')==0
|
1122
|
+
language = 'English'
|
1123
|
+
else
|
1124
|
+
language = 'Spanish'
|
1125
|
+
end
|
1126
|
+
begin
|
1127
|
+
selenium = _mas_login
|
1128
|
+
return false if selenium.nil?
|
1129
|
+
_navigate_to_stb_settings(selenium)
|
1130
|
+
selenium.wait_for_text 'STB Display language'
|
1131
|
+
default = selenium.get_text("//div[2]/div/div/table/tbody/tr[2]/td/table/tbody/tr/td[2]")
|
1132
|
+
loginfo2 "Default langugae: #{default}"
|
1133
|
+
if (default.casecmp(language)==0)
|
1134
|
+
loginfo2 "Language already set to '#{language}'. Nothing to do"
|
1135
|
+
else
|
1136
|
+
loginfo2 'Changing the default language'
|
1137
|
+
selenium.click "//a[contains(@href, 'Language')]", :wait_for => :page
|
1138
|
+
selenium.select "//select[@name='value(STB Display language)']", "label=#{language}"
|
1139
|
+
selenium.click "//*[@id=\"dijit_form_Button_0\"]", :wait_for => :page
|
1140
|
+
|
1141
|
+
loginfo2 'Verifying changes'
|
1142
|
+
selenium.wait_for_text 'STB Display language'
|
1143
|
+
default = selenium.get_text("//div[2]/div/div/table/tbody/tr[2]/td/table/tbody/tr/td[2]")
|
1144
|
+
loginfo2 "Default language set: #{default}"
|
1145
|
+
unless (default.casecmp(language)==0)
|
1146
|
+
loginfo2 "Failed to set default language to #{language}"
|
1147
|
+
return false
|
1148
|
+
end
|
1149
|
+
# _generate_setting_catalog(selenium)
|
1150
|
+
loginfo2 'Succesfully changed the default language'
|
1151
|
+
end
|
1152
|
+
return true
|
1153
|
+
rescue StandardError => e
|
1154
|
+
logdebug e.message
|
1155
|
+
loginfo2 "Failed to change default language"
|
1156
|
+
return false
|
1157
|
+
ensure
|
1158
|
+
_mas_logout(selenium) unless selenium.nil?
|
1159
|
+
end
|
1160
|
+
end
|
1161
|
+
|
1162
|
+
# Private method
|
1163
|
+
def _mas_conductor_change_purchase_pin new_purchase_pin
|
1164
|
+
begin
|
1165
|
+
selenium = _mas_login
|
1166
|
+
return false if selenium.nil?
|
1167
|
+
_navigate_to_stb_settings(selenium)
|
1168
|
+
|
1169
|
+
loginfo2 'Navigate to PIN ENTRY PARAMETERS Edit Settings Page'
|
1170
|
+
selenium.click '//a[contains(@href, \'/mystroui/editMsoSettings.do?groupName=PIN Entry Parameters\')]', :wait_for => :page
|
1171
|
+
|
1172
|
+
loginfo2 'Entering the new purchase PIN'
|
1173
|
+
selenium.type('css=input[name="value(Purchase PIN Number)"]',new_purchase_pin)
|
1174
|
+
|
1175
|
+
loginfo2 'Submitting the changes'
|
1176
|
+
selenium.click "id=dijit_form_Button_0", :wait_for => :page
|
1177
|
+
|
1178
|
+
result = _mas_generate_all_catalogs selenium
|
1179
|
+
loginfo2 'Unable to generate catalogs' unless result
|
1180
|
+
return result
|
1181
|
+
rescue StandardError => e
|
1182
|
+
logdebug "Error while setting purchase PIN value : #{e.message}"
|
1183
|
+
return false
|
1184
|
+
ensure
|
1185
|
+
_mas_logout(selenium) unless selenium.nil?
|
1186
|
+
end
|
1187
|
+
end
|
1188
|
+
|
1189
|
+
# Private method
|
1190
|
+
def _mas_conductor_remove_channel_from_lineup region_name, channel_number
|
1191
|
+
|
1192
|
+
channel_info = guide_screen_channel_info channel_number
|
1193
|
+
if channel_info.nil?
|
1194
|
+
loginfo2 "Failed to get channel info from MAS-DB query", true
|
1195
|
+
return false
|
1196
|
+
end
|
1197
|
+
|
1198
|
+
begin
|
1199
|
+
selenium = _mas_login
|
1200
|
+
return false if selenium.nil?
|
1201
|
+
|
1202
|
+
_navigate_to_search_service(selenium)
|
1203
|
+
|
1204
|
+
loginfo2 "Searching service for the given channel"
|
1205
|
+
selenium.type "id=searchBox", channel_info[:service_name]
|
1206
|
+
selenium.click "id=dijit_form_Button_0"
|
1207
|
+
sleep 10.sec
|
1208
|
+
|
1209
|
+
iRow=1
|
1210
|
+
service = selenium.get_text("//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{iRow}]/td")
|
1211
|
+
|
1212
|
+
while(channel_info[:service_name].to_s!=service)
|
1213
|
+
iRow = iRow+1
|
1214
|
+
service = selenium.get_text("//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{iRow}]/td")
|
1215
|
+
end
|
1216
|
+
|
1217
|
+
selenium.click "//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{iRow}]/td[5]/a", :wait_for => :page
|
1218
|
+
|
1219
|
+
loginfo2 "Finding Region to delete mapping"
|
1220
|
+
iRow=1
|
1221
|
+
region = selenium.get_text("//div/div/table[2]/tbody/tr[4]/td/table/tbody/tr[#{iRow}]/td")
|
1222
|
+
while(region_name!=region)
|
1223
|
+
iRow = iRow+1
|
1224
|
+
region = selenium.get_text("//div/div/table[2]/tbody/tr[4]/td/table/tbody/tr[#{iRow}]/td")
|
1225
|
+
end
|
1226
|
+
|
1227
|
+
loginfo2 "Deleting the corresponding Mapping"
|
1228
|
+
selenium.click "//div/div/table[2]/tbody/tr[4]/td/table/tbody/tr[#{iRow+1}]/td[7]/center/a[2]"
|
1229
|
+
sleep 5.sec
|
1230
|
+
|
1231
|
+
selenium.click "//*[@id=\"dijit_form_Button_1\"]", :wait_for => :page
|
1232
|
+
|
1233
|
+
result = _mas_generate_all_catalogs selenium
|
1234
|
+
loginfo2 'Unable to generate catalogs' unless result
|
1235
|
+
return result
|
1236
|
+
rescue StandardError => e
|
1237
|
+
logdebug "Error while removing channel from Lineup: #{e.message}"
|
1238
|
+
return false
|
1239
|
+
ensure
|
1240
|
+
_mas_logout(selenium) unless selenium.nil?
|
1241
|
+
end
|
1242
|
+
end
|
1243
|
+
|
1244
|
+
#Private method
|
1245
|
+
def _mas_conductor_add_channel_to_lineup region_name, region_id, channel_number
|
1246
|
+
|
1247
|
+
channel_info = guide_screen_channel_info channel_number
|
1248
|
+
if channel_info.nil?
|
1249
|
+
loginfo2 "Failed to get channel info from MAS-DB query", true
|
1250
|
+
return false
|
1251
|
+
end
|
1252
|
+
|
1253
|
+
begin
|
1254
|
+
selenium = _mas_login
|
1255
|
+
return false if selenium.nil?
|
1256
|
+
|
1257
|
+
_navigate_to_search_service(selenium)
|
1258
|
+
|
1259
|
+
loginfo2 "Searching service for the given channel"
|
1260
|
+
selenium.type "id=searchBox", channel_info[:service_name]
|
1261
|
+
selenium.click "id=dijit_form_Button_0"
|
1262
|
+
sleep 10.sec
|
1263
|
+
|
1264
|
+
iRow=1
|
1265
|
+
service = selenium.get_text("//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{iRow}]/td")
|
1266
|
+
|
1267
|
+
while(channel_info[:service_name].to_s!=service)
|
1268
|
+
iRow = iRow+1
|
1269
|
+
service = selenium.get_text("//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{iRow}]/td")
|
1270
|
+
end
|
1271
|
+
|
1272
|
+
selenium.click "//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{iRow}]/td[5]/a", :wait_for => :page
|
1273
|
+
|
1274
|
+
loginfo2 "Assigning service to given region"
|
1275
|
+
selenium.click "link=Assign Service to Regions"
|
1276
|
+
|
1277
|
+
loginfo2 "Selecting the given Region"
|
1278
|
+
selenium.click "//input[@id='selectedRegions' and @value='#{region_id}']"
|
1279
|
+
|
1280
|
+
loginfo2 "Selecting the given channel"
|
1281
|
+
selenium.select "id=svcToRegionsChannels", "label=#{channel_number}"
|
1282
|
+
|
1283
|
+
loginfo2 "Submitting the changes"
|
1284
|
+
selenium.click "id=dijit_form_Button_0"
|
1285
|
+
|
1286
|
+
result = _mas_generate_all_catalogs selenium
|
1287
|
+
loginfo2 'Unable to generate catalogs' unless result
|
1288
|
+
return result
|
1289
|
+
rescue StandardError => e
|
1290
|
+
logdebug "Error while adding channel to Lineup: #{e.message}"
|
1291
|
+
return false
|
1292
|
+
ensure
|
1293
|
+
_mas_logout(selenium) unless selenium.nil?
|
1294
|
+
end
|
1295
|
+
end
|
1296
|
+
|
1297
|
+
# Use it to set ppv event source and service type for given ppv service
|
1298
|
+
# * *Args* :
|
1299
|
+
# - +service_name+ -> [String] service name
|
1300
|
+
# - +ppv_event_source+ -> [String] event sorce
|
1301
|
+
# - +service_type+ -> [String] sd/hd
|
1302
|
+
# * *Returns* :
|
1303
|
+
# - true if delete service succefully else false
|
1304
|
+
def _mas_conductor_set_ppv_event_source_and_service_type service_name, ppv_event_source,service_type
|
1305
|
+
begin
|
1306
|
+
selenium = _mas_login
|
1307
|
+
return false if selenium.nil?
|
1308
|
+
_navigate_to_search_service(selenium)
|
1309
|
+
loginfo2 "Searching Given Service"
|
1310
|
+
selenium.type "id=searchBox", service_name
|
1311
|
+
selenium.click "id=dijit_form_Button_0"
|
1312
|
+
sleep 20.sec
|
1313
|
+
loginfo2 'Navigating to exact service'
|
1314
|
+
# getting row number of table where column value is same as service name
|
1315
|
+
i=1
|
1316
|
+
i+=1 while(service_name.casecmp(selenium.get_text("//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{i}]/td/a"))!=0)
|
1317
|
+
|
1318
|
+
# Click on the same row - edit column text
|
1319
|
+
loginfo2 'Found the given service. Going to Edit Service'
|
1320
|
+
selenium.click "//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{i}]/td[8]/center/a[1]", :wait_for => :page
|
1321
|
+
loginfo2 "selecting event source"
|
1322
|
+
selenium.select "name=bean.saEventSourceID", "label=#{ppv_event_source}"
|
1323
|
+
|
1324
|
+
result = selenium.is_checked("//input[@id='saEventHighDefCb']")
|
1325
|
+
if (service_type.casecmp('hd')!= 0) and result
|
1326
|
+
selenium.uncheck("//input[@id='saEventHighDefCb']")
|
1327
|
+
elsif (service_type.casecmp('hd')== 0) and !result
|
1328
|
+
selenium.check("//input[@id='saEventHighDefCb']")
|
1329
|
+
end
|
1330
|
+
|
1331
|
+
loginfo2 "confirming first page"
|
1332
|
+
selenium.click "dijit_form_Button_0", :wait_for => :page
|
1333
|
+
sleep 1.min
|
1334
|
+
result = _mas_generate_all_catalogs selenium
|
1335
|
+
loginfo2 'Unable to generate catalogs' unless result
|
1336
|
+
return result
|
1337
|
+
rescue StandardError => e
|
1338
|
+
logdebug "Error while setting ppv event source to #{service_type}: #{e.message}"
|
1339
|
+
return false
|
1340
|
+
ensure
|
1341
|
+
_mas_logout(selenium) unless selenium.nil?
|
1342
|
+
end
|
1343
|
+
end
|
1344
|
+
|
1345
|
+
# Use it to set ppv barker source and service type for given ppv service
|
1346
|
+
# * *Args* :
|
1347
|
+
# - +service_name+ -> [String] service name
|
1348
|
+
# - +ppv_barker_source+ -> [String] barker sorce
|
1349
|
+
# - +service_type+ -> [String] sd/hd as string
|
1350
|
+
# * *Returns* :
|
1351
|
+
# - true if delete service succefully else false
|
1352
|
+
def _mas_conductor_set_ppv_barker_source_and_service_type service_name, ppv_barker_source,service_type
|
1353
|
+
begin
|
1354
|
+
selenium = _mas_login
|
1355
|
+
return false if selenium.nil?
|
1356
|
+
_navigate_to_search_service(selenium)
|
1357
|
+
loginfo2 "Searching Given Service"
|
1358
|
+
selenium.type "id=searchBox", service_name
|
1359
|
+
selenium.click "id=dijit_form_Button_0"
|
1360
|
+
sleep 20.sec
|
1361
|
+
# getting row number of table where column value is same as service name
|
1362
|
+
loginfo2 'Navigating to exact service'
|
1363
|
+
i=1
|
1364
|
+
i+=1 while(service_name.casecmp(selenium.get_text("//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{i}]/td/a"))!=0)
|
1365
|
+
|
1366
|
+
# Click on the same row - edit column text
|
1367
|
+
loginfo2 'Found the given service. Going to Edit Service'
|
1368
|
+
selenium.click "//div[2]/div/table[3]/tbody/tr[2]/td/table/tbody/tr[#{i}]/td[8]/center/a[1]", :wait_for => :page
|
1369
|
+
loginfo2 "selecting barker source"
|
1370
|
+
selenium.select "name=bean.saBarkerSourceID", "label=#{ppv_barker_source}"
|
1371
|
+
|
1372
|
+
result = selenium.is_checked("//input[@id='saEventHighDefCb']")
|
1373
|
+
if (service_type.casecmp('hd')!= 0) and result
|
1374
|
+
selenium.uncheck("//input[@id='saBarkerHighDefCb']")
|
1375
|
+
elsif (service_type.casecmp('hd')== 0) and !result
|
1376
|
+
selenium.check("//input[@id='saBarkerHighDefCb']")
|
1377
|
+
end
|
1378
|
+
|
1379
|
+
loginfo2 "confirming first page"
|
1380
|
+
selenium.click "dijit_form_Button_0", :wait_for => :page
|
1381
|
+
sleep 1.min
|
1382
|
+
result = _mas_generate_all_catalogs selenium
|
1383
|
+
loginfo2 'Unable to generate catalogs' unless result
|
1384
|
+
return result
|
1385
|
+
rescue StandardError => e
|
1386
|
+
logdebug "Error while setting ppv barker source source to #{service_type}: #{e.message}"
|
1387
|
+
return false
|
1388
|
+
ensure
|
1389
|
+
_mas_logout(selenium) unless selenium.nil?
|
1390
|
+
end
|
1391
|
+
end
|
1392
|
+
|
1393
|
+
# Use it to change value Graphics Transparency on STB Settings from MAS.
|
1394
|
+
# * *Args* :
|
1395
|
+
# - +setting_value+ -> value to assign to graphic transparency {true, false}
|
1396
|
+
# * *Returns* :
|
1397
|
+
# - true if settings changed and published(optional) successfully
|
1398
|
+
def _mas_conductor_set_graphics_transparency setting_value,publish=false
|
1399
|
+
begin
|
1400
|
+
selenium = _mas_login
|
1401
|
+
return false if selenium.nil?
|
1402
|
+
_navigate_to_stb_settings(selenium)
|
1403
|
+
selenium.wait_for_text 'Misc'
|
1404
|
+
graphics_trans_value = selenium.get_text("//div[2]/div/div/table[10]/tbody/tr[2]/td/table/tbody/tr[9]/td[2]")
|
1405
|
+
if graphics_trans_value.to_s.casecmp(setting_value.strip.to_s) == 0
|
1406
|
+
loginfo2 "Existing Graphics Transparency is already [#{graphics_trans_value}]. No change is required."
|
1407
|
+
else
|
1408
|
+
loginfo2 "Editing graphics transperancy"
|
1409
|
+
selenium.click "//a[contains(@href, '/mystroui/editMsoSettings.do?groupName=Misc')]", :wait_for => :page
|
1410
|
+
selenium.wait_for_element "dijit_form_Button_0"
|
1411
|
+
loginfo2 "Changing graphics transperancy from [#{graphics_trans_value}] to [#{setting_value}]"
|
1412
|
+
selenium.select("css=select[name='value(Graphics Transparency)']", setting_value)
|
1413
|
+
selenium.click "dijit_form_Button_0", :wait_for => :page
|
1414
|
+
_generate_setting_catalog(selenium)
|
1415
|
+
end
|
1416
|
+
rescue StandardError => e
|
1417
|
+
loginfo2 e.message
|
1418
|
+
loginfo2 'Unable to change Graphics Transparency on MAS'
|
1419
|
+
selenium.close_current_browser_session
|
1420
|
+
return false
|
1421
|
+
ensure
|
1422
|
+
_mas_logout(selenium) unless selenium.nil?
|
1423
|
+
end
|
1424
|
+
|
1425
|
+
if publish
|
1426
|
+
return false unless mas_publish_all_catalogs
|
1427
|
+
end
|
1428
|
+
|
1429
|
+
return true
|
1430
|
+
end
|
1431
|
+
|
1432
|
+
#private method
|
1433
|
+
def _mas_conductor_set_paused_session_timeout new_paused_session_timeout
|
1434
|
+
begin
|
1435
|
+
selenium = _mas_login
|
1436
|
+
return false if selenium.nil?
|
1437
|
+
return false unless _navigate_to_stb_settings(selenium)
|
1438
|
+
|
1439
|
+
loginfo2 "Navigating to Edit Timeout parameters"
|
1440
|
+
selenium.click "//a[contains(@href, '/mystroui/editMsoSettings.do?groupName=Timeout Parameters')]", :wait_for => :page
|
1441
|
+
|
1442
|
+
loginfo2 "Editing the Paused Session Timeout"
|
1443
|
+
selenium.type("css=input[name=\"value(Paused Session Timeout)\"]", new_paused_session_timeout)
|
1444
|
+
|
1445
|
+
selenium.click "id=dijit_form_Button_0", :wait_for => :page
|
1446
|
+
|
1447
|
+
result = _mas_generate_all_catalogs selenium
|
1448
|
+
loginfo2 'Unable to generate catalogs' unless result
|
1449
|
+
return result
|
1450
|
+
rescue StandardError => e
|
1451
|
+
logdebug "Error while changing pause session timeout from MAS: #{e.message}"
|
1452
|
+
return false
|
1453
|
+
ensure
|
1454
|
+
_mas_logout(selenium) unless selenium.nil?
|
1455
|
+
end
|
1456
|
+
end
|
1457
|
+
|
1458
|
+
# Private method
|
1459
|
+
def _mas_conductor_set_display_sleep_timer_in_quick_settings value = true
|
1460
|
+
begin
|
1461
|
+
selenium = _mas_login
|
1462
|
+
return [] if selenium.nil?
|
1463
|
+
_navigate_to_stb_settings(selenium)
|
1464
|
+
loginfo2 'Fetching Power Save mode settings'
|
1465
|
+
selenium.wait_for_text 'Display sleep timer in Quick Settings menu'
|
1466
|
+
set_value = selenium.get_text('//div[2]/div/div/table[17]/tbody/tr[2]/td/table/tbody/tr/td[2]')
|
1467
|
+
unless set_value == value.to_s
|
1468
|
+
loginfo2 "Value of 'Display sleep timer in Quick Settings menu' set to #{set_value}. Navigating to 'edit settings'"
|
1469
|
+
selenium.click('//div[2]/div/div/table[17]/tbody/tr/td/table/tbody/tr/td[2]/a', :wait_for => :page)
|
1470
|
+
loginfo2 "Selecting value #{value}"
|
1471
|
+
selenium.select('css=select[name="value(Display sleep timer in Quick Settings menu)"]', value)
|
1472
|
+
loginfo2 "Submitting the changes"
|
1473
|
+
selenium.click('id=dijit_form_Button_0', :wait_for => :page)
|
1474
|
+
selenium.wait_for_text 'Display sleep timer in Quick Settings menu'
|
1475
|
+
set_value = selenium.get_text('//div[2]/div/div/table[17]/tbody/tr[2]/td/table/tbody/tr/td[2]')
|
1476
|
+
loginfo2 "Verifying the changes"
|
1477
|
+
unless set_value == value.to_s
|
1478
|
+
loginfo2 "Failed to set value of 'Display sleep timer in Quick Settings menu' to #{value}"
|
1479
|
+
return false
|
1480
|
+
else
|
1481
|
+
loginfo2 "Value of 'Display sleep timer in Quick Settings menu' set to #{value}"
|
1482
|
+
_generate_setting_catalog(selenium)
|
1483
|
+
end
|
1484
|
+
else
|
1485
|
+
loginfo2 "Value of 'Display sleep timer in Quick Settings menu' already set to #{value}"
|
1486
|
+
end
|
1487
|
+
return true
|
1488
|
+
ensure
|
1489
|
+
_mas_logout(selenium) unless selenium.nil?
|
1490
|
+
end
|
1491
|
+
end
|
1492
|
+
|
1493
|
+
# Use it to set value of 'EID for authorization of Start Over'
|
1494
|
+
# * *Args* :
|
1495
|
+
# - +value+ -> (Integer)Value to set
|
1496
|
+
# * *Returns* :
|
1497
|
+
# - true if able to set else false
|
1498
|
+
def _mas_conductor_set_eid_for_authorization_of_start_over(value)
|
1499
|
+
begin
|
1500
|
+
selenium = _mas_login
|
1501
|
+
return false if selenium.nil?
|
1502
|
+
_navigate_to_stb_settings(selenium)
|
1503
|
+
loginfo2 'Fetching Power Save mode settings'
|
1504
|
+
selenium.wait_for_text 'EID for authorization of Start Over'
|
1505
|
+
set_value = selenium.get_text('//div[2]/div/div/table[14]/tbody/tr[2]/td/table/tbody/tr[4]/td[2]').to_i
|
1506
|
+
unless set_value == value
|
1507
|
+
loginfo2 "Value of 'EID for authorization of Start Over' set to #{set_value}. Navigating to 'edit settings'"
|
1508
|
+
selenium.click('//div[2]/div/div/table[14]/tbody/tr/td/table/tbody/tr/td[2]/a', :wait_for => :page)
|
1509
|
+
loginfo2 "Selecting value #{value}"
|
1510
|
+
selenium.select('css=select[name="value(EID for authorization of Start Over)"]', "value=#{value}")
|
1511
|
+
loginfo2 "Submitting the changes"
|
1512
|
+
selenium.click('id=dijit_form_Button_0', :wait_for => :page)
|
1513
|
+
selenium.wait_for_text 'EID for authorization of Start Over'
|
1514
|
+
set_value = selenium.get_text('//div[2]/div/div/table[14]/tbody/tr[2]/td/table/tbody/tr[4]/td[2]').to_i
|
1515
|
+
loginfo2 "Verifying the changes"
|
1516
|
+
unless set_value == value
|
1517
|
+
loginfo2 "Failed to set value of 'EID for authorization of Start Over' to #{value}"
|
1518
|
+
return false
|
1519
|
+
else
|
1520
|
+
loginfo2 "Value of 'EID for authorization of Start Over' set to #{value}"
|
1521
|
+
return false unless _generate_setting_catalog(selenium)
|
1522
|
+
end
|
1523
|
+
else
|
1524
|
+
loginfo2 "Value of 'EID for authorization of Start Over' already set to #{value}"
|
1525
|
+
end
|
1526
|
+
return true
|
1527
|
+
ensure
|
1528
|
+
_mas_logout(selenium) unless selenium.nil?
|
1529
|
+
end
|
1530
|
+
end
|
1531
|
+
|
1532
|
+
# Private method
|
1533
|
+
def _mas_conductor_set_start_over_eid_for_service(service_name, eid)
|
1534
|
+
begin
|
1535
|
+
selenium = _mas_login
|
1536
|
+
return false if selenium.nil?
|
1537
|
+
return false unless _navigate_to_search_service(selenium)
|
1538
|
+
loginfo2 "Searching Given Service: [#{service_name}]"
|
1539
|
+
selenium.type "id=searchBox", service_name
|
1540
|
+
selenium.click "id=dijit_form_Button_0"
|
1541
|
+
selenium.wait_for_text "Found"
|
1542
|
+
loginfo2 "Opening service: [#{service_name}]"
|
1543
|
+
begin
|
1544
|
+
(1..100).each{|i|
|
1545
|
+
if selenium.get_text("//tbody[@id='dynaBody']/tr[#{i}]/td").strip == service_name.strip
|
1546
|
+
loginfo2 "Found service: [#{service_name}]"
|
1547
|
+
loginfo2 "Click Edit"
|
1548
|
+
selenium.click "//tbody[@id='dynaBody']/tr[#{i}]/td[8]/center/a", :wait_for => :page
|
1549
|
+
break
|
1550
|
+
end}
|
1551
|
+
rescue
|
1552
|
+
loginfo2 "Service: [#{service_name}] not found"
|
1553
|
+
return false
|
1554
|
+
end
|
1555
|
+
|
1556
|
+
selenium.wait_for_text "SA Start Over Entitlement ID"
|
1557
|
+
|
1558
|
+
existing = selenium.get_selected_label("name=bean.saSOEID")
|
1559
|
+
logdebug "SO EID: [#{existing}]"
|
1560
|
+
|
1561
|
+
selenium.select("name=bean.saSOEID", "value=#{eid}")
|
1562
|
+
|
1563
|
+
changed = selenium.get_selected_label("name=bean.saSOEID")
|
1564
|
+
logdebug "SO EID changed to: [#{changed}]"
|
1565
|
+
selenium.click "id=dijit_form_Button_0", :wait_for => :page
|
1566
|
+
return true
|
1567
|
+
rescue StandardError => e
|
1568
|
+
loginfo2 e.message
|
1569
|
+
loginfo2 "Unable to change SO EID to: [#{eid}] for service: [#{service_name}] from MAS"
|
1570
|
+
return false
|
1571
|
+
ensure
|
1572
|
+
_mas_logout(selenium) unless selenium.nil?
|
1573
|
+
end
|
1574
|
+
end
|
1575
|
+
|
1576
|
+
# Private method
|
1577
|
+
def _mas_conductor_change_screen_saver_timeout value
|
1578
|
+
begin
|
1579
|
+
selenium = _mas_login
|
1580
|
+
return false if selenium.nil?
|
1581
|
+
_navigate_to_stb_settings(selenium)
|
1582
|
+
time_out = selenium.get_text("//table[10]/tbody/tr[2]/td/table/tbody/tr[2]/td[2]")
|
1583
|
+
loginfo2 'Editing DVR parameters'
|
1584
|
+
selenium.click "//a[contains(@href, '/mystroui/editMsoSettings.do?groupName=Misc')]", :wait_for => :page
|
1585
|
+
loginfo2 "Changing Screen saver timeout from: [#{time_out}] to [#{value}]"
|
1586
|
+
selenium.type('css=input[name="value(Screen Saver Timeout {0 to disable})"]', value)
|
1587
|
+
selenium.click("id=dijit_form_Button_0", :wait_for => :page)
|
1588
|
+
loginfo2 "Successfully set Screen saver timeout: [#{value}] minutes"
|
1589
|
+
|
1590
|
+
result = _mas_generate_all_catalogs selenium
|
1591
|
+
loginfo2 'Unable to generate catalogs' unless result
|
1592
|
+
return result
|
1593
|
+
rescue StandardError => e
|
1594
|
+
logdebug "Error while setting screen saver timeout value : #{e.message}"
|
1595
|
+
return false
|
1596
|
+
ensure
|
1597
|
+
_mas_logout(selenium) unless selenium.nil?
|
1598
|
+
end
|
1599
|
+
end
|
1600
|
+
|
1601
|
+
# Private method
|
1602
|
+
def _download_new_tms_data_and_generate_guide
|
1603
|
+
loginfo2 'Downloading new tms data and generating guide'
|
1604
|
+
cmd = "mdiags guide generate force"
|
1605
|
+
loginfo2 "Executing MAS command: #{cmd}"
|
1606
|
+
result = exec_mas_cmd cmd
|
1607
|
+
|
1608
|
+
#VERIFYING
|
1609
|
+
3.times do
|
1610
|
+
loginfo2 'Sleeping 10 min to let guide data generate'
|
1611
|
+
sleep 10.min
|
1612
|
+
|
1613
|
+
loginfo2 'Verifying in mas conductor if guide is generated'
|
1614
|
+
selenium = _mas_login
|
1615
|
+
return false if selenium.nil?
|
1616
|
+
selenium.select_frame "iframemdn"
|
1617
|
+
selenium.wait_for_element("//tbody[@id='MDNGuideManager_tbody']/tr/td[2]")
|
1618
|
+
text = selenium.get_text("//tbody[@id='MDNGuideManager_tbody']/tr/td[2]")
|
1619
|
+
loginfo3 "TEXT: #{text}"
|
1620
|
+
if text.include?('No action required')
|
1621
|
+
loginfo2 'Catalogs are generated'
|
1622
|
+
mas_logout(selenium)
|
1623
|
+
return true
|
1624
|
+
end
|
1625
|
+
mas_logout(selenium)
|
1626
|
+
end
|
1627
|
+
|
1628
|
+
loginfo2 'Failed to verify if catalogs are generated'
|
1629
|
+
return false
|
1630
|
+
end
|
1631
|
+
|
1632
|
+
# Private method
|
1633
|
+
def _mas_delete_split existing_primary_service, existing_split_start_time
|
1634
|
+
existing_split_start = "#{existing_split_start_time.strftime("%I")}:#{existing_split_start_time.strftime("%M")}"
|
1635
|
+
|
1636
|
+
begin
|
1637
|
+
selenium = _mas_login
|
1638
|
+
return false if selenium.nil?
|
1639
|
+
loginfo2 'Navigating to Split Services and Blackout'
|
1640
|
+
selenium.wait_for_element "id=dijit_form_DropDownButton_0"
|
1641
|
+
selenium.click "id=dijit_form_DropDownButton_0"
|
1642
|
+
loginfo2 'Navigating to Regions/Lineups > Split Services and Blackout'
|
1643
|
+
selenium.click "css=#dijit_MenuItem_8 > td.dijitReset.dijitMenuItemLabel", :wait_for => :page
|
1644
|
+
selenium.select_frame "iframemdn"
|
1645
|
+
selenium.wait_for_element "link=Create Daily Split"
|
1646
|
+
|
1647
|
+
max_row_table = 50 # Max no. of splits
|
1648
|
+
max_col_table = 6
|
1649
|
+
|
1650
|
+
max_row_table.times do |iRow|
|
1651
|
+
split_found = false
|
1652
|
+
|
1653
|
+
text_primary = selenium.get_table("//tr[2]/td/table.#{iRow}.0")
|
1654
|
+
text_start_time = selenium.get_table("//tr[2]/td/table.#{iRow}.3")
|
1655
|
+
|
1656
|
+
split_found = true if ((text_primary == existing_primary_service) && (text_start_time == existing_split_start))
|
1657
|
+
|
1658
|
+
if split_found== true
|
1659
|
+
selenium.click "xpath=(//a[contains(text(),'Delete')])[#{iRow}]", :wait_for => :page
|
1660
|
+
selenium.wait_for_element "link=OK"
|
1661
|
+
selenium.click "link=OK", :wait_for => :page
|
1662
|
+
break
|
1663
|
+
end
|
1664
|
+
end
|
1665
|
+
|
1666
|
+
result = _mas_generate_all_catalogs selenium
|
1667
|
+
loginfo2 'Unable to generate catalogs' unless result
|
1668
|
+
return false unless result
|
1669
|
+
|
1670
|
+
return true
|
1671
|
+
rescue StandardError => e
|
1672
|
+
loginfo2 e.message
|
1673
|
+
loginfo2 "Failed to delete the given split"
|
1674
|
+
return false
|
1675
|
+
ensure
|
1676
|
+
_mas_logout(selenium) unless selenium.nil?
|
1677
|
+
end
|
1678
|
+
end
|
1679
|
+
|
1680
|
+
#################################################### MAS Publish methods using locks #######################################################################
|
1681
|
+
|
1682
|
+
#Use this method to publish all generated outstanding catalogs
|
1683
|
+
# * *Args* :
|
1684
|
+
# - +wait+ -> true if script needs to wait for publish to complete, false otherwise
|
1685
|
+
# * *Returns* :
|
1686
|
+
# - true if publish gets completed successfully, false otherwise
|
1687
|
+
def mas_conductor_publish_all_outstanding_catalogs(wait=true)
|
1688
|
+
loginfo2 "Attempting to take MAS publish lock."
|
1689
|
+
3.times do |pub_attempt|
|
1690
|
+
loginfo2 "Retry attempt: [#{pub_attempt}]" if pub_attempt > 0
|
1691
|
+
pub_status = lock_resource('MAS', 'publish', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 90.min) {
|
1692
|
+
loginfo2 "I got the MAS publish lock."
|
1693
|
+
minutes_till_next_hour = 60 - DateTime.now.min
|
1694
|
+
loginfo2 "Sleeping for #{minutes_till_next_hour} minutes, till next hour begins."
|
1695
|
+
sleep minutes_till_next_hour.min
|
1696
|
+
|
1697
|
+
loginfo2 "Performing Publish."
|
1698
|
+
return false unless _mas_publish_all_catalogs(wait)
|
1699
|
+
}
|
1700
|
+
|
1701
|
+
if pub_status == 0
|
1702
|
+
loginfo2 "I published."
|
1703
|
+
# Expect from ONE STB
|
1704
|
+
break
|
1705
|
+
elsif pub_status == 1
|
1706
|
+
loginfo2 "Someone else published."
|
1707
|
+
# Expect from other STBs.
|
1708
|
+
break
|
1709
|
+
else
|
1710
|
+
loginfo2 "Timed out..."
|
1711
|
+
end
|
1712
|
+
|
1713
|
+
if pub_status == -1 and pub_attempt == 2
|
1714
|
+
log PREREQUISITES_NOT_MET, "Script is unable to take MAS publish lock after 3 attempts. Aborting..."
|
1715
|
+
end
|
1716
|
+
end
|
1717
|
+
|
1718
|
+
if pub_status != -1
|
1719
|
+
loginfo2 "Publish completed. Sleeping 15 min for catalog to be effective."
|
1720
|
+
sleep 15.min
|
1721
|
+
return true
|
1722
|
+
end
|
1723
|
+
return false
|
1724
|
+
end
|
1725
|
+
|
1726
|
+
# Use it to change dvr settings of STB on MAS.
|
1727
|
+
# * *Args* :
|
1728
|
+
# - +setting_name+ -> tsb_length / dvr_jump_value / enable_REW4_FF4 / REW1 and FF1
|
1729
|
+
# - +setting_value+ ->
|
1730
|
+
# - tsb_length: Length of TSB(minutes)
|
1731
|
+
# - dvr_jump_value: DVR jump value(minutes)
|
1732
|
+
# - enable_REW4_FF4: true/false (string)
|
1733
|
+
# - dvr_comp_REW1_value : DVR Comp REW1 value (seconds)
|
1734
|
+
# - dvr_comp_FF1_value : DVR Comp FF1 value (seconds)
|
1735
|
+
# * *Returns* :
|
1736
|
+
# - true if settings changed and published(optional) successfully
|
1737
|
+
def mas_conductor_change_dvr_settings settings
|
1738
|
+
req_queued_status = lock_resource('MAS', 'dvr', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
1739
|
+
settings.each_pair do |key, value|
|
1740
|
+
loginfo2 "Changing DVR setting: [#{key}] to [#{value}]"
|
1741
|
+
return false unless _mas_change_dvr_settings(key, value)
|
1742
|
+
end
|
1743
|
+
}
|
1744
|
+
|
1745
|
+
if req_queued_status == -1
|
1746
|
+
loginfo2 "Someone is stuck with dvr settings lock for more than 10 minutes. Aborting..."
|
1747
|
+
return false
|
1748
|
+
end
|
1749
|
+
|
1750
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
1751
|
+
end
|
1752
|
+
|
1753
|
+
# Use it to change power save mode settings of STB on MAS.
|
1754
|
+
# * *Args* :
|
1755
|
+
# - +setting_name+ -> hours_of_inactivity / power_save_active / display_to_user
|
1756
|
+
# - +setting_value+ ->
|
1757
|
+
# - hours_of_inactivity: 'String'-No. of Hours of Inactivity to Enter Low Power State (hours)
|
1758
|
+
# - power_save_active: 'String'-On/Off
|
1759
|
+
# - display_to_user: 'Boolean'- true/false
|
1760
|
+
# * *Returns* :
|
1761
|
+
# - true if settings changed and published(optional) successfully
|
1762
|
+
def mas_conductor_change_power_save_mode_settings settings
|
1763
|
+
req_queued_status = lock_resource('MAS', 'power_save_mode', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
1764
|
+
settings.each_pair do |key, value|
|
1765
|
+
loginfo2 "Changing Power save setting: [#{key}] to [#{value}]"
|
1766
|
+
return false unless _mas_change_power_save_mode_settings(key, value)
|
1767
|
+
end
|
1768
|
+
}
|
1769
|
+
|
1770
|
+
if req_queued_status == -1
|
1771
|
+
loginfo2 "Someone is stuck with power save mode setting lock for more than 10 minutes. Aborting..."
|
1772
|
+
return false
|
1773
|
+
end
|
1774
|
+
|
1775
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
1776
|
+
end
|
1777
|
+
|
1778
|
+
# Use it to modify purchase PIN on MAS.
|
1779
|
+
# * *Args* :
|
1780
|
+
# - +new_purchase_pin+ -> The new purchase PIN to be set(string) ex: "1111"
|
1781
|
+
# * *Returns* :
|
1782
|
+
# - true if changed, else false
|
1783
|
+
def mas_conductor_change_purchase_pin new_purchase_pin
|
1784
|
+
req_queued_status = lock_resource('pin_entry', 'purchase_pin', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
1785
|
+
loginfo2 "Changing Purchase PIN number to: [#{new_purchase_pin}]"
|
1786
|
+
return false unless _mas_conductor_change_purchase_pin(new_purchase_pin)
|
1787
|
+
}
|
1788
|
+
|
1789
|
+
if req_queued_status == -1
|
1790
|
+
loginfo2 "Someone is stuck with purchase pin setting lock for more than 10 minutes. Aborting..."
|
1791
|
+
return false
|
1792
|
+
end
|
1793
|
+
|
1794
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
1795
|
+
end
|
1796
|
+
|
1797
|
+
# Use it to set value to check/uncheck display to user check box of DVR Compensation on MAS.
|
1798
|
+
# * *Args* :
|
1799
|
+
# - +value+ -> true - check, false - uncheck
|
1800
|
+
# * *Returns* :
|
1801
|
+
# - true
|
1802
|
+
def mas_conductor_change_dvr_compensation_display_to_user value
|
1803
|
+
req_queued_status = lock_resource('MAS', 'dvr', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
1804
|
+
loginfo2 "Changing DVR compensation - Display to user to: [#{value}]"
|
1805
|
+
return false unless _mas_conductor_dvr_compensation_display_to_user value
|
1806
|
+
}
|
1807
|
+
|
1808
|
+
if req_queued_status == -1
|
1809
|
+
loginfo2 "Someone is stuck with dvr settings lock for more than 10 minutes. Aborting..."
|
1810
|
+
return false
|
1811
|
+
end
|
1812
|
+
|
1813
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
1814
|
+
end
|
1815
|
+
|
1816
|
+
# Use it to set the value of DVR Compensation.
|
1817
|
+
# * *Args* :
|
1818
|
+
# - +value+ -> 'Less', 'More', 'Normal', 'None'
|
1819
|
+
# * *Returns* :
|
1820
|
+
# - true if successfully set else false
|
1821
|
+
def mas_conductor_change_dvr_compensation_display_to_user value
|
1822
|
+
req_queued_status = lock_resource('MAS', 'dvr', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
1823
|
+
loginfo2 "Changing DVR compensation value to: [#{value}]"
|
1824
|
+
return false unless _mas_conductor_set_dvr_compensation value
|
1825
|
+
}
|
1826
|
+
|
1827
|
+
if req_queued_status == -1
|
1828
|
+
loginfo2 "Someone is stuck with dvr settings lock for more than 10 minutes. Aborting..."
|
1829
|
+
return false
|
1830
|
+
end
|
1831
|
+
|
1832
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
1833
|
+
end
|
1834
|
+
|
1835
|
+
# Use it to set the value of pause session timeout
|
1836
|
+
# * *Args* :
|
1837
|
+
# - +new_paused_session_timeout+ -> new pause session time out value required.
|
1838
|
+
# * *Returns* :
|
1839
|
+
# - true if successfully set else false
|
1840
|
+
def mas_conductor_change_paused_session_timeout new_paused_session_timeout
|
1841
|
+
req_queued_status = lock_resource('MAS', 'timeout', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
1842
|
+
loginfo2 "Changing Pause Session timeout value to: [#{new_paused_session_timeout}]"
|
1843
|
+
return false unless _mas_conductor_set_paused_session_timeout new_paused_session_timeout
|
1844
|
+
}
|
1845
|
+
|
1846
|
+
if req_queued_status == -1
|
1847
|
+
loginfo2 "Someone is stuck with timeout settings lock for more than 10 minutes. Aborting..."
|
1848
|
+
return false
|
1849
|
+
end
|
1850
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
1851
|
+
|
1852
|
+
end
|
1853
|
+
|
1854
|
+
# Use it to set the value of Screen Saver Timeout
|
1855
|
+
# * *Args* :
|
1856
|
+
# - +value+ -> timeout in minutes
|
1857
|
+
# * *Returns* :
|
1858
|
+
# - true if successfully set else false
|
1859
|
+
def mas_conductor_change_screen_saver_timeout value
|
1860
|
+
req_queued_status = lock_resource('MAS', 'screen_saver_timeout', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
1861
|
+
loginfo2 "Changing screen saver timeout value to: [#{value}]"
|
1862
|
+
return false unless _mas_conductor_change_screen_saver_timeout value
|
1863
|
+
}
|
1864
|
+
|
1865
|
+
if req_queued_status == -1
|
1866
|
+
loginfo2 "Someone is stuck with screen_saver_timeout lock for more than 10 minutes. Aborting..."
|
1867
|
+
return false
|
1868
|
+
end
|
1869
|
+
|
1870
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
1871
|
+
end
|
1872
|
+
|
1873
|
+
# Use it to change vod asset licence window end date to a past date on MAS.
|
1874
|
+
# * *Args* :
|
1875
|
+
# - +asset+ -> VOD asset name whose settings are to be changed
|
1876
|
+
# - +publish+ -> if true, publishes all outstanding catalogs, if false, only generates catalogs
|
1877
|
+
# * *Returns* :
|
1878
|
+
# - true if settings changed and published(optional) successfully
|
1879
|
+
def mas_conductor_change_vod_asset_license_end_date_to_past asset
|
1880
|
+
req_queued_status = lock_resource('MAS', 'OD', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
1881
|
+
loginfo2 "Changing licence window end date of VOD asset: [#{asset}] to past date"
|
1882
|
+
return false unless _mas_change_vod_asset_license_end_date_to_past asset
|
1883
|
+
}
|
1884
|
+
|
1885
|
+
if req_queued_status == -1
|
1886
|
+
loginfo2 "Someone is stuck with OD lock for more than 10 minutes. Aborting..."
|
1887
|
+
return false
|
1888
|
+
end
|
1889
|
+
|
1890
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
1891
|
+
end
|
1892
|
+
|
1893
|
+
# Use it to download TMS data and generate guide catalogs
|
1894
|
+
# * *Returns* :
|
1895
|
+
# - true if guide generated successfully
|
1896
|
+
def mas_download_and_generate_guide
|
1897
|
+
req_queued_status = lock_resource('MAS', 'guide', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
1898
|
+
loginfo2 "Downloading TMS data and generating guide"
|
1899
|
+
return false unless _download_new_tms_data_and_generate_guide
|
1900
|
+
}
|
1901
|
+
|
1902
|
+
if req_queued_status == -1
|
1903
|
+
loginfo2 "Someone is stuck with Guide lock for more than 10 minutes. Aborting..."
|
1904
|
+
return false
|
1905
|
+
end
|
1906
|
+
|
1907
|
+
return true
|
1908
|
+
end
|
1909
|
+
|
1910
|
+
# Use it to set the value of Filter HD guide data for non-HD STBs on MAS.
|
1911
|
+
# * *Args* :
|
1912
|
+
# - +value+ -> true-enable, false-disable
|
1913
|
+
# * *Returns* :
|
1914
|
+
# - true
|
1915
|
+
def mas_conductor_change_hd_guide_data_filter value
|
1916
|
+
req_queued_status = lock_resource('MAS', 'HD', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
1917
|
+
loginfo2 "Changing 'Filter HD guide data for non-HD STBs' to: [#{value}]"
|
1918
|
+
return false unless _mas_conductor_set_filter_HD_guide_data_for_non_HD_stbs value
|
1919
|
+
}
|
1920
|
+
|
1921
|
+
if req_queued_status == -1
|
1922
|
+
loginfo2 "Someone is stuck with HD setup settings lock for more than 10 minutes. Aborting..."
|
1923
|
+
return false
|
1924
|
+
end
|
1925
|
+
|
1926
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
1927
|
+
end
|
1928
|
+
|
1929
|
+
# Use this method to create a new broadcast service
|
1930
|
+
def mas_conductor_create_new_broadcast_service(service_name,unassigned_source_name,tms_id,region_id,unoccupied_channel)
|
1931
|
+
req_queued_status = lock_resource('MAS', 'service', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
1932
|
+
return false unless _mas_create_new_broadcast_service_and_map_to_channel(service_name,unassigned_source_name,tms_id,region_id,unoccupied_channel)
|
1933
|
+
}
|
1934
|
+
|
1935
|
+
if req_queued_status == -1
|
1936
|
+
loginfo2 "Someone is stuck with service lock for more than 10 minutes. Aborting..."
|
1937
|
+
return false
|
1938
|
+
end
|
1939
|
+
|
1940
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
1941
|
+
end
|
1942
|
+
|
1943
|
+
# Use this method to delete a service
|
1944
|
+
def mas_conductor_delete_broadcast_service(service_name)
|
1945
|
+
req_queued_status = lock_resource('MAS', 'service', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
1946
|
+
return false unless _mas_delete_service(service_name)
|
1947
|
+
}
|
1948
|
+
|
1949
|
+
if req_queued_status == -1
|
1950
|
+
loginfo2 "Someone is stuck with service lock for more than 10 minutes. Aborting..."
|
1951
|
+
return false
|
1952
|
+
end
|
1953
|
+
|
1954
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
1955
|
+
end
|
1956
|
+
|
1957
|
+
# Use it to add a channel to given service on given region
|
1958
|
+
# * *Args* :
|
1959
|
+
# - +channel+ -> channel number
|
1960
|
+
# - +service+ -> exact service name
|
1961
|
+
# - +region_id+ -> Region id
|
1962
|
+
# * *Returns* :
|
1963
|
+
# - true if succesfully added, else false
|
1964
|
+
def mas_conductor_add_new_channel_to_service_on_region(channel,service,region_id)
|
1965
|
+
req_queued_status = lock_resource('MAS', 'service', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
1966
|
+
return false unless _mas_conductor_add_channel_to_service_on_region channel,service,region_id
|
1967
|
+
}
|
1968
|
+
|
1969
|
+
if req_queued_status == -1
|
1970
|
+
loginfo2 "Someone is stuck with service lock for more than 10 minutes. Aborting..."
|
1971
|
+
return false
|
1972
|
+
end
|
1973
|
+
|
1974
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
1975
|
+
end
|
1976
|
+
|
1977
|
+
# Use it to remove a channel from given service on given region
|
1978
|
+
# * *Args* :
|
1979
|
+
# - +channel+ -> channel number
|
1980
|
+
# - +service+ -> exact service name
|
1981
|
+
# - +region_name+ -> Region name
|
1982
|
+
# * *Returns* :
|
1983
|
+
# - true if succesfully removed, else false
|
1984
|
+
def mas_conductor_delete_channel_from_service_on_region(channel,service,region_name)
|
1985
|
+
req_queued_status = lock_resource('MAS', 'service', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
1986
|
+
return false unless _mas_conductor_remove_channel_from_service_on_region channel,service,region_name
|
1987
|
+
}
|
1988
|
+
|
1989
|
+
if req_queued_status == -1
|
1990
|
+
loginfo2 "Someone is stuck with service lock for more than 10 minutes. Aborting..."
|
1991
|
+
return false
|
1992
|
+
end
|
1993
|
+
|
1994
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
1995
|
+
end
|
1996
|
+
|
1997
|
+
# Use it to delete given service from a given region
|
1998
|
+
# * *Args* :
|
1999
|
+
# - +service_name+ -> Service name to delete
|
2000
|
+
# - +region_name+ ->region name
|
2001
|
+
# * *Returns* :
|
2002
|
+
# - true if delete service succefully else false
|
2003
|
+
def mas_conductor_remove_service_from_region(service_name, region_name)
|
2004
|
+
req_queued_status = lock_resource('MAS', 'service', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
2005
|
+
return false unless _mas_conductor_remove_service_from_region service_name, region_name
|
2006
|
+
}
|
2007
|
+
|
2008
|
+
if req_queued_status == -1
|
2009
|
+
loginfo2 "Someone is stuck with service lock for more than 10 minutes. Aborting..."
|
2010
|
+
return false
|
2011
|
+
end
|
2012
|
+
|
2013
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
2014
|
+
end
|
2015
|
+
|
2016
|
+
# Use it to change the Start Over EID for a service
|
2017
|
+
# * *Args* :
|
2018
|
+
# - +service_name+ -> Service name to delete
|
2019
|
+
# - +eid+ -> new eid (0 for None)
|
2020
|
+
# * *Returns* :
|
2021
|
+
# - true if changed succefully else false
|
2022
|
+
def mas_conductor_change_start_over_eid_for_service(service_name, eid)
|
2023
|
+
req_queued_status = lock_resource('MAS', 'SO', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
2024
|
+
return false unless _mas_conductor_set_start_over_eid_for_service service_name, eid
|
2025
|
+
}
|
2026
|
+
|
2027
|
+
if req_queued_status == -1
|
2028
|
+
loginfo2 "Someone is stuck with Start Over lock for more than 10 minutes. Aborting..."
|
2029
|
+
return false
|
2030
|
+
end
|
2031
|
+
|
2032
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
2033
|
+
end
|
2034
|
+
|
2035
|
+
# Use it to create blackout on MAS of specified duration.
|
2036
|
+
# * *Args* :
|
2037
|
+
# - +primary_service+ -> Primary service to be set ex: ESPNHD
|
2038
|
+
# - +secondary_service+ -> Secondary service to be set ex: FoxNews
|
2039
|
+
# - +active_region_id+ -> Active Region id where split service is to be set ex: 56
|
2040
|
+
# - +blackout_start_time+ -> Blackout Start Time (Ruby Format)
|
2041
|
+
# - +blackout_duration+ -> Blackout Duration (Min)
|
2042
|
+
# * *Returns* :
|
2043
|
+
# - true
|
2044
|
+
def mas_conductor_create_blackout primary_service, secondary_service, active_region_id, blackout_start_time, blackout_duration, publish = true
|
2045
|
+
req_queued_status = lock_resource('MAS', 'blackout', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
2046
|
+
return false unless _mas_create_blackout primary_service, secondary_service, active_region_id, blackout_start_time, blackout_duration
|
2047
|
+
}
|
2048
|
+
|
2049
|
+
if req_queued_status == -1
|
2050
|
+
loginfo2 "Someone is stuck with Blackout lock for more than 10 minutes. Aborting..."
|
2051
|
+
return false
|
2052
|
+
end
|
2053
|
+
|
2054
|
+
return mas_conductor_publish_all_outstanding_catalogs if publish
|
2055
|
+
return true
|
2056
|
+
end
|
2057
|
+
|
2058
|
+
# Use it to create split on MAS of specified duration.
|
2059
|
+
# * *Args* :
|
2060
|
+
# - +primary_service+ -> Primary service to be set ex: ESPNHD
|
2061
|
+
# - +secondary_service+ -> Secondary service to be set ex: FoxNews
|
2062
|
+
# - +active_region_id+ -> Active Region id where split service is to be set ex: 56
|
2063
|
+
# - +split_start_time+ -> Split Start Time (Ruby Format)
|
2064
|
+
# - +split_duration+ -> Split Duration (Min)
|
2065
|
+
# * *Returns* :
|
2066
|
+
# - true
|
2067
|
+
def mas_conductor_create_split primary_service, secondary_service, active_region_id, split_start_time, split_duration
|
2068
|
+
req_queued_status = lock_resource('MAS', 'split', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
2069
|
+
return false unless _mas_create_split primary_service, secondary_service, active_region_id, split_start_time, split_duration
|
2070
|
+
}
|
2071
|
+
|
2072
|
+
if req_queued_status == -1
|
2073
|
+
loginfo2 "Someone is stuck with Split lock for more than 10 minutes. Aborting..."
|
2074
|
+
return false
|
2075
|
+
end
|
2076
|
+
|
2077
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
2078
|
+
end
|
2079
|
+
|
2080
|
+
# Use it to change to given source on given service
|
2081
|
+
# * *Args* :
|
2082
|
+
# - +service_name+ -> Service name
|
2083
|
+
# - +source_name_to_delete+ -> Source name to assign to service
|
2084
|
+
# - +unassigned_source_name+ -> Source name to assign to service
|
2085
|
+
# * *Returns* :
|
2086
|
+
# - true if changed source succefully else false
|
2087
|
+
def mas_conductor_change_service_source(service_name, source_name_to_delete, unassigned_source_name)
|
2088
|
+
req_queued_status = lock_resource('MAS', 'service', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 15.min) {
|
2089
|
+
return false unless _mas_conductor_remove_source_from_service service_name, source_name_to_delete
|
2090
|
+
return false unless _mas_conductor_add_source_to_service service_name, unassigned_source_name, true
|
2091
|
+
}
|
2092
|
+
|
2093
|
+
if req_queued_status == -1
|
2094
|
+
loginfo2 "Someone is stuck with service lock for more than 15 minutes. Aborting..."
|
2095
|
+
return false
|
2096
|
+
end
|
2097
|
+
|
2098
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
2099
|
+
end
|
2100
|
+
|
2101
|
+
# Use it to add given channel to a given region
|
2102
|
+
# * *Args* :
|
2103
|
+
# - +region_name+ ->region name
|
2104
|
+
# - +region_id+ ->region id
|
2105
|
+
# - +channel_number+ -> Channel number (integer) to delete
|
2106
|
+
# * *Returns* :
|
2107
|
+
# - true if delete service succefully else false
|
2108
|
+
def mas_conductor_add_channel_to_lineup region_name, region_id, channel_number
|
2109
|
+
req_queued_status = lock_resource('MAS', 'service', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 15.min) {
|
2110
|
+
return false unless _mas_conductor_add_channel_to_lineup region_name, region_id, channel_number
|
2111
|
+
}
|
2112
|
+
|
2113
|
+
if req_queued_status == -1
|
2114
|
+
loginfo2 "Someone is stuck with region lock for more than 15 minutes. Aborting..."
|
2115
|
+
return false
|
2116
|
+
end
|
2117
|
+
|
2118
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
2119
|
+
end
|
2120
|
+
|
2121
|
+
# Use it to delete given channel from a given region
|
2122
|
+
# * *Args* :
|
2123
|
+
# - +region_name+ ->region name
|
2124
|
+
# - +channel_number+ -> Channel number (integer) to delete
|
2125
|
+
# * *Returns* :
|
2126
|
+
# - true if delete service succefully else false
|
2127
|
+
def mas_conductor_remove_channel_from_lineup region_name, channel_number
|
2128
|
+
req_queued_status = lock_resource('MAS', 'service', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 15.min) {
|
2129
|
+
return false unless _mas_conductor_remove_channel_from_lineup region_name, channel_number
|
2130
|
+
}
|
2131
|
+
|
2132
|
+
if req_queued_status == -1
|
2133
|
+
loginfo2 "Someone is stuck with region lock for more than 15 minutes. Aborting..."
|
2134
|
+
return false
|
2135
|
+
end
|
2136
|
+
|
2137
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
2138
|
+
end
|
2139
|
+
|
2140
|
+
#Use this method to change auto HD feture to on or off
|
2141
|
+
# Also known as easy hd feature
|
2142
|
+
# * *Returns* :
|
2143
|
+
# - true if value is changed successfully
|
2144
|
+
def mas_change_auto_hd_feature(status)
|
2145
|
+
req_queued_status = lock_resource('MAS', 'hd', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 15.min) {
|
2146
|
+
return false unless _mas_change_auto_hd_feature status
|
2147
|
+
}
|
2148
|
+
|
2149
|
+
if req_queued_status == -1
|
2150
|
+
loginfo2 "Someone is stuck with hd lock for more than 15 minutes. Aborting..."
|
2151
|
+
return false
|
2152
|
+
end
|
2153
|
+
|
2154
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
2155
|
+
end
|
2156
|
+
|
2157
|
+
# Use it to exclude the title from the search service
|
2158
|
+
# * *Args* :
|
2159
|
+
# - +title+ ->title to be excluded
|
2160
|
+
# * *Returns* :
|
2161
|
+
# - true if service is excluded successfully
|
2162
|
+
def mas_conductor_add_exclude_from_search_for_services_playing_title title = ''
|
2163
|
+
req_queued_status = lock_resource('MAS', 'service', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 15.min) {
|
2164
|
+
return false unless _mas_conductor_add_exclude_from_search_for_services_playing_title title = ''
|
2165
|
+
}
|
2166
|
+
|
2167
|
+
if req_queued_status == -1
|
2168
|
+
loginfo2 "Someone is stuck with the service lock for more than 15 minutes. Aborting..."
|
2169
|
+
return false
|
2170
|
+
end
|
2171
|
+
|
2172
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
2173
|
+
end
|
2174
|
+
|
2175
|
+
#Use this method to add excluded title back to the search service
|
2176
|
+
# - +title+ -> excluded title to be added
|
2177
|
+
# * *Returns* :
|
2178
|
+
# - true if removed service is added successfully
|
2179
|
+
def mas_conductor_remove_exclude_from_search_for_services_playing_title title = ''
|
2180
|
+
req_queued_status = lock_resource('MAS', 'service', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 15.min) {
|
2181
|
+
return false unless _mas_conductor_remove_exclude_from_search_for_services_playing_title title = ''
|
2182
|
+
}
|
2183
|
+
|
2184
|
+
if req_queued_status == -1
|
2185
|
+
loginfo2 "Someone is stuck with the service lock for more than 15 minutes. Aborting..."
|
2186
|
+
return false
|
2187
|
+
end
|
2188
|
+
|
2189
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
2190
|
+
end
|
2191
|
+
|
2192
|
+
# Use it to delete split on MAS of specified duration.
|
2193
|
+
# * *Args* :
|
2194
|
+
# - +primary_service+ -> Primary service of split, ex: ESPNHD
|
2195
|
+
# - +split_start_time+ -> Split Start Time (Ruby Format)
|
2196
|
+
# * *Returns* :
|
2197
|
+
# - true
|
2198
|
+
def mas_conductor_delete_split primary_service, split_start_time
|
2199
|
+
req_queued_status = lock_resource('MAS', 'split', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
2200
|
+
return false unless _mas_delete_split primary_service, split_start_time
|
2201
|
+
}
|
2202
|
+
|
2203
|
+
if req_queued_status == -1
|
2204
|
+
loginfo2 "Someone is stuck with Split lock for more than 10 minutes. Aborting..."
|
2205
|
+
return false
|
2206
|
+
end
|
2207
|
+
|
2208
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
2209
|
+
end
|
2210
|
+
|
2211
|
+
# Use it to edit existing Split on MAS.
|
2212
|
+
# * *Args* :
|
2213
|
+
# - +existing_primary_service+ -> Existing Primary service.
|
2214
|
+
# - +existing_secondary_service+ -> Existing Secondary service to be set ex: FoxNews
|
2215
|
+
# - +existing_split_start_time+ -> Existing Split Start Time (Ruby Format)
|
2216
|
+
# - +existing_split_duration+ -> Existing Split Duration (Min)
|
2217
|
+
# - +existing_split_region_name+ -> Existing Split Active Region Name
|
2218
|
+
# - +existing_split_region_id+ -> Existing Split Active Region id
|
2219
|
+
# - +existing_split_type+ -> Existing Split Type ex: "Daily Split"
|
2220
|
+
# - +new_primary_service+ -> New Primary service.
|
2221
|
+
# - +new_secondary_service+ -> New Secondary service to be set ex: FoxNews
|
2222
|
+
# - +new_split_start_time+ -> New Split Start Time (Ruby Format)
|
2223
|
+
# - +new_split_duration+ -> New Split Duration (Min)
|
2224
|
+
# - +new_split_region_id+ -> New Split Active Region ID
|
2225
|
+
# * *Returns* :
|
2226
|
+
# - true
|
2227
|
+
def mas_conductor_edit_split existing_primary_service, existing_secondary_service, existing_split_start_time, existing_split_duration, existing_split_region_name , existing_split_region_id, existing_split_type = 'Daily Split', new_primary_service= '', new_secondary_service = '', new_split_start_time = 0, new_split_duration = 0, new_split_region_id = 0
|
2228
|
+
req_queued_status = lock_resource('MAS', 'split', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
2229
|
+
return false unless _mas_edit_split existing_primary_service, existing_secondary_service, existing_split_start_time, existing_split_duration, existing_split_region_name , existing_split_region_id, existing_split_type = 'Daily Split', new_primary_service= '', new_secondary_service = '', new_split_start_time = 0, new_split_duration = 0, new_split_region_id = 0
|
2230
|
+
}
|
2231
|
+
|
2232
|
+
if req_queued_status == -1
|
2233
|
+
loginfo2 "Someone is stuck with Split lock for more than 10 minutes. Aborting..."
|
2234
|
+
return false
|
2235
|
+
end
|
2236
|
+
|
2237
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
2238
|
+
end
|
2239
|
+
|
2240
|
+
# Use it to change the Start Over prompt delay
|
2241
|
+
# * *Args* :
|
2242
|
+
# - +delay_in_min+ -> value to be set for Start over to appear on info banner
|
2243
|
+
# * *Returns* :
|
2244
|
+
# - true if changed succefully else false
|
2245
|
+
def mas_conductor_change_start_over_prompt_delay_time(delay_in_min)
|
2246
|
+
req_queued_status = lock_resource('MAS', 'SO_PD', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
2247
|
+
return false unless _mas_conductor_modify_start_over_prompt_delay(delay_in_min)
|
2248
|
+
}
|
2249
|
+
|
2250
|
+
if req_queued_status == -1
|
2251
|
+
loginfo2 "Someone is stuck with Start Over prompt delay lock for more than 10 minutes. Aborting..."
|
2252
|
+
return false
|
2253
|
+
end
|
2254
|
+
|
2255
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
2256
|
+
end
|
2257
|
+
|
2258
|
+
# Use it to set value of 'Display sleep timer in Quick Settings menu'
|
2259
|
+
# * *Args* :
|
2260
|
+
# - +value+ -> (Boolean)Value to set true/false
|
2261
|
+
# * *Returns* :
|
2262
|
+
# - true if able to set else false
|
2263
|
+
def mas_conductor_change_display_sleep_timer_in_quick_settings value=true
|
2264
|
+
req_queued_status = lock_resource('MAS', 'timers', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
2265
|
+
return false unless _mas_conductor_set_display_sleep_timer_in_quick_settings value
|
2266
|
+
}
|
2267
|
+
|
2268
|
+
if req_queued_status == -1
|
2269
|
+
loginfo2 "Someone is stuck with Timers for more than 10 minutes. Aborting..."
|
2270
|
+
return false
|
2271
|
+
end
|
2272
|
+
|
2273
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
2274
|
+
end
|
2275
|
+
|
2276
|
+
# Private method
|
2277
|
+
def _mas_conductor_change_info_banner_timeout value
|
2278
|
+
begin
|
2279
|
+
selenium = _mas_login
|
2280
|
+
return false if selenium.nil?
|
2281
|
+
_navigate_to_stb_settings(selenium)
|
2282
|
+
loginfo2 'Navigating to Misc Timeout Parameters Settings Page'
|
2283
|
+
selenium.click "xpath=(//a[contains(text(),'Edit Settings')])[16]", :wait_for => :page
|
2284
|
+
loginfo2 "Changing Banner: Timeout of Info banner (seconds) to [#{value}] seconds"
|
2285
|
+
selenium.type('css=input[name="value(Banner: Timeout of Info banner )"]',value)
|
2286
|
+
selenium.click "id=dijit_form_Button_0", :wait_for => :page
|
2287
|
+
result = _mas_generate_all_catalogs selenium
|
2288
|
+
loginfo2 'Unable to generate catalogs' unless result
|
2289
|
+
return result
|
2290
|
+
ensure
|
2291
|
+
_mas_logout(selenium) unless selenium.nil?
|
2292
|
+
end
|
2293
|
+
end
|
2294
|
+
|
2295
|
+
# Private method
|
2296
|
+
def _mas_conductor_change_start_over_prompt_timeout value
|
2297
|
+
begin
|
2298
|
+
selenium = _mas_login
|
2299
|
+
return false if selenium.nil?
|
2300
|
+
_navigate_to_stb_settings(selenium)
|
2301
|
+
loginfo2 'Navigating to Timeout Parameters Edit Settings Page'
|
2302
|
+
selenium.click "xpath=(//a[contains(text(),'Edit Settings')])[16]", :wait_for => :page
|
2303
|
+
loginfo2 "Changing Start Over Prompt Timeout (seconds) to [#{value}] seconds"
|
2304
|
+
selenium.type('css=input[name="value(Start Over Prompt Timeout)"]',value)
|
2305
|
+
selenium.click "id=dijit_form_Button_0", :wait_for => :page
|
2306
|
+
result = _mas_generate_all_catalogs selenium
|
2307
|
+
loginfo2 'Unable to generate catalogs' unless result
|
2308
|
+
return result
|
2309
|
+
ensure
|
2310
|
+
_mas_logout(selenium) unless selenium.nil?
|
2311
|
+
end
|
2312
|
+
end
|
2313
|
+
|
2314
|
+
# Use it to change the Start Over prompt display timeout
|
2315
|
+
# * *Args* :
|
2316
|
+
# - +timeout_in_sec+ -> Timeout value for start over prompt to disappear
|
2317
|
+
# * *Returns* :
|
2318
|
+
# - true if changed succefully else false
|
2319
|
+
def mas_conductor_change_start_over_prompt_display_timeout(timeout_in_sec)
|
2320
|
+
req_queued_status = lock_resource('MAS', 'SO_PT', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
2321
|
+
return false unless _mas_conductor_change_start_over_prompt_timeout(timeout_in_sec)
|
2322
|
+
}
|
2323
|
+
|
2324
|
+
if req_queued_status == -1
|
2325
|
+
loginfo2 "Someone is stuck with Start Over prompt timeout lock for more than 10 minutes. Aborting..."
|
2326
|
+
return false
|
2327
|
+
end
|
2328
|
+
|
2329
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
2330
|
+
end
|
2331
|
+
|
2332
|
+
# Use it to change the Info Banner display timeout
|
2333
|
+
# * *Args* :
|
2334
|
+
# - +timeout_in_sec+ -> Timeout value for start over prompt to disappear
|
2335
|
+
# * *Returns* :
|
2336
|
+
# - true if changed succefully else false
|
2337
|
+
def mas_conductor_change_info_banner_display_timeout(timeout_in_sec)
|
2338
|
+
req_queued_status = lock_resource('MAS', 'Info_timeout', LOCK_EXCLUSIVE | LOCK_ONETIME, '', 60.min, 10.min) {
|
2339
|
+
return false unless _mas_conductor_change_info_banner_timeout(timeout_in_sec)
|
2340
|
+
}
|
2341
|
+
|
2342
|
+
if req_queued_status == -1
|
2343
|
+
loginfo2 "Someone is stuck with Info banner timeout lock for more than 10 minutes. Aborting..."
|
2344
|
+
return false
|
2345
|
+
end
|
2346
|
+
|
2347
|
+
return mas_conductor_publish_all_outstanding_catalogs
|
2348
|
+
end
|
2349
|
+
|