framework_gem 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/{lib/EXECUTION_ENGINE.md → EXECUTION_ENGINE.md} +0 -0
- data/{lib/Gemfile → Gemfile} +4 -1
- data/{lib/README.md → README.md} +0 -0
- data/{lib/config → config}/ConfigParams.xml +0 -0
- data/{lib/config → config}/ImageROI.xml +0 -0
- data/{lib/config → config}/ROI.xml +0 -0
- data/{lib/config → config}/Userlog4j.xml +0 -0
- data/{lib/config → config}/schema-docs/mode.xsd +0 -0
- data/{lib/config → config}/schema-docs/processTestJobs.xsd +0 -0
- data/{lib/config → config}/schema-docs/rackip.xsd +0 -0
- data/{lib/copy_ref_images.rb → copy_ref_images.rb} +0 -0
- data/{lib/copy_repo.rb → copy_repo.rb} +0 -0
- data/{lib/dsllib → dsllib}/common/dncs/dncs_utils.rb +0 -0
- data/{lib/dsllib → dsllib}/common/mas_db/mas_conductor.rb +0 -0
- data/{lib/dsllib → dsllib}/common/mas_db/mas_db.rb +0 -0
- data/{lib/dsllib → dsllib}/common/mas_db/mas_publish.rb +0 -0
- data/{lib/dsllib → dsllib}/common/mas_db/mas_rest_services.rb +0 -0
- data/{lib/dsllib → dsllib}/common/mas_db/mas_soap_services.rb +0 -0
- data/{lib/dsllib → dsllib}/common/mas_db/mas_utils.rb +0 -0
- data/{lib/dsllib → dsllib}/common/remote_diagnostics/mdn_remote_diagnostics.rb +0 -0
- data/{lib/dsllib → dsllib}/common/remote_diagnostics/odn_web_server.rb +0 -0
- data/{lib/dsllib → dsllib}/common/utils/excel_export.rb +0 -0
- data/{lib/dsllib → dsllib}/common/utils/excel_module.rb +0 -0
- data/{lib/dsllib → dsllib}/common/utils/server_components_utils.rb +0 -0
- data/{lib/dsllib → dsllib}/common/utils/stb_health_check_utils.rb +0 -0
- data/{lib/dsllib → dsllib}/common/utils/sword_utils.rb +0 -0
- data/{lib/dsllib → dsllib}/common/utils/tmc_utils.rb +0 -0
- data/{lib/dsllib → dsllib}/common/utils/virtual_keyboard_navigator.rb +0 -0
- data/{lib/dsllib → dsllib}/common/utils/virtual_keyboard_vp_navigator.rb +0 -0
- data/{lib/dsllib → dsllib}/performance/DTA/roi.rb +0 -0
- data/{lib/dsllib → dsllib}/performance/DTA/utils.rb +0 -0
- data/{lib/dsllib → dsllib}/performance/iguide_concurrent_test/ROI.rb +0 -0
- data/{lib/dsllib → dsllib}/performance/iguide_concurrent_test/utils.rb +0 -0
- data/{lib/dsllib → dsllib}/performance/measure_tune.rb +0 -0
- data/{lib/dsllib → dsllib}/performance/perf_lib.rb +0 -0
- data/framework_gem.rb +3 -0
- data/lib/{lib/data_services → data_services}/channel.rb +0 -0
- data/lib/{lib/data_services → data_services}/data_services.rb +0 -0
- data/lib/{lib/data_services → data_services}/guide.rb +0 -0
- data/lib/{lib/data_services → data_services}/lineup.rb +0 -0
- data/lib/{lib/data_services → data_services}/program.rb +0 -0
- data/lib/{lib/data_services → data_services}/schedule.rb +0 -0
- data/lib/{lib/data_services → data_services}/splunk_connector.rb +0 -0
- data/lib/{lib/data_services → data_services}/splunk_data_reader.rb +0 -0
- data/lib/{lib/element → element}/element.rb +0 -0
- data/lib/{lib/extensions → extensions}/array_extensions.rb +0 -0
- data/lib/{lib/extensions → extensions}/datetime_extensions.rb +0 -0
- data/lib/{lib/extensions → extensions}/extensions.rb +0 -0
- data/lib/{lib/extensions → extensions}/file_extensions.rb +0 -0
- data/lib/{lib/extensions → extensions}/float_extensions.rb +0 -0
- data/lib/{lib/extensions → extensions}/integer_extensions.rb +0 -0
- data/lib/{lib/extensions → extensions}/nethttp_extensions.rb +0 -0
- data/lib/{lib/extensions → extensions}/object_extensions.rb +0 -0
- data/lib/{lib/extensions → extensions}/string_extensions.rb +0 -0
- data/lib/helpers/tmc_helpers/core_helper/core_helper.rb +29 -0
- data/lib/{lib/helpers → helpers}/tmc_helpers/csv_helper/csv_helper.rb +0 -0
- data/lib/{lib/helpers → helpers}/tmc_helpers/email_helper/email_helper.rb +0 -0
- data/lib/{lib/helpers → helpers}/tmc_helpers/http_helper/http_helper.rb +0 -0
- data/lib/{lib/helpers → helpers}/tmc_helpers/roi_helper/roi_helper.rb +0 -0
- data/lib/{lib/helpers → helpers}/tmc_helpers/snmp_helper/snmp_helper.rb +0 -0
- data/lib/{lib/helpers → helpers}/tmc_helpers/ssh_helper/ssh_helper.rb +0 -0
- data/lib/{lib/helpers → helpers}/tmc_helpers/tmc_helpers.rb +0 -0
- data/lib/{lib/keyboard → keyboard}/apple_tv/apple_tv_password_keyboard.rb +0 -0
- data/lib/{lib/keyboard → keyboard}/apple_tv/apple_tv_search_keyboard.rb +0 -0
- data/lib/{lib/keyboard → keyboard}/apple_tv/apple_tv_username_keyboard.rb +0 -0
- data/lib/{lib/keyboard → keyboard}/keyboard.rb +0 -0
- data/lib/{lib/keyboard → keyboard}/keyboard_layout.rb +0 -0
- data/lib/{lib/keyboard → keyboard}/roku/roku_reset_pin_keyboard.rb +0 -0
- data/lib/{lib/keyboard → keyboard}/roku/roku_rsg_search_keyboard.rb +0 -0
- data/lib/{lib/keyboard → keyboard}/roku/roku_rsg_signin_keyboard.rb +0 -0
- data/lib/{lib/keyboard → keyboard}/roku/roku_search_keyboard.rb +0 -0
- data/lib/{lib/keyboard → keyboard}/roku/roku_signin_keyboard.rb +0 -0
- data/lib/{lib/keyboard → keyboard}/samsung_tv/samsung_tv_search_keyboard.rb +0 -0
- data/lib/{lib/keyboard → keyboard}/samsung_tv/samsung_tv_signin_keyboard.rb +0 -0
- data/lib/{lib/keyboard → keyboard}/stb/odn/odn_on_demand_search_keyboard.rb +0 -0
- data/lib/{lib/keyboard → keyboard}/stb/odn/odn_search_keyboard.rb +0 -0
- data/lib/{lib/keyboard → keyboard}/stb/spectrum/spectrum_netflix_email_keyboard.rb +0 -0
- data/lib/{lib/keyboard → keyboard}/stb/spectrum/spectrum_netflix_keyboard.rb +0 -0
- data/lib/{lib/keyboard → keyboard}/stb/spectrum/spectrum_netflix_name_keyboard.rb +0 -0
- data/lib/{lib/keyboard → keyboard}/stb/spectrum/spectrum_search_keyboard.rb +0 -0
- data/lib/{lib/keyboard → keyboard}/tivo/tivo_password_keyboard.rb +0 -0
- data/lib/{lib/keyboard → keyboard}/tivo/tivo_search_keyboard.rb +0 -0
- data/lib/{lib/keyboard → keyboard}/tivo/tivo_username_keyboard.rb +0 -0
- data/lib/{lib/keys → keys}/apple_tv/apple_tv_keys.rb +0 -0
- data/lib/{lib/keys → keys}/base_keys.rb +0 -0
- data/lib/{lib/keys → keys}/dta/dta_keys.rb +0 -0
- data/lib/{lib/keys → keys}/mdn/mdn_keys.rb +0 -0
- data/lib/{lib/keys → keys}/passport/passport_keys.rb +0 -0
- data/lib/{lib/keys → keys}/roku/roku_keys.rb +0 -0
- data/lib/{lib/keys → keys}/roku_tv/roku_tv_keys.rb +0 -0
- data/lib/{lib/keys → keys}/samsung_tv/samsung_tv_keys.rb +0 -0
- data/lib/{lib/keys → keys}/sara/sara_keys.rb +0 -0
- data/lib/{lib/keys → keys}/stb/iguide/iguide_keys.rb +0 -0
- data/lib/{lib/keys → keys}/stb/odn/odn_keys.rb +0 -0
- data/lib/{lib/keys → keys}/stb/spectrum/spectrum_keys.rb +0 -0
- data/lib/{lib/keys → keys}/stb/stb_keys.rb +0 -0
- data/lib/{lib/keys → keys}/tivo/tivo_keys.rb +0 -0
- data/lib/{lib/logger → logger}/multi_io.rb +0 -0
- data/lib/{lib/logger → logger}/tmc_dut_logger.rb +0 -0
- data/lib/{lib/logger → logger}/tmc_logger.rb +0 -0
- data/lib/{lib/mixins → mixins}/assignable.rb +0 -0
- data/lib/{lib/mixins → mixins}/can_have_special_methods.rb +0 -0
- data/lib/{lib/mixins → mixins}/enumish.rb +0 -0
- data/lib/{lib/new_platform.rb → new_platform.rb} +0 -0
- data/lib/{lib/new_sub_platform.rb → new_sub_platform.rb} +0 -0
- data/lib/{lib/platform → platform}/apple_tv/apple_tv.rb +0 -0
- data/lib/{lib/platform → platform}/apple_tv/apple_tv_1080/apple_tv_1080.rb +0 -0
- data/lib/{lib/platform → platform}/apple_tv/apple_tv_720/apple_tv_720.rb +0 -0
- data/lib/{lib/platform → platform}/dta/dta.rb +0 -0
- data/lib/{lib/platform → platform}/dta/dta_1080/dta_1080.rb +0 -0
- data/lib/{lib/platform → platform}/dta/dta_720/dta_720.rb +0 -0
- data/lib/{lib/platform → platform}/mdn/mdn.rb +0 -0
- data/lib/{lib/platform → platform}/mdn/mdn_1080/mdn_1080.rb +0 -0
- data/lib/{lib/platform → platform}/mdn/mdn_720/mdn_720.rb +0 -0
- data/lib/{lib/platform → platform}/mobile/android/android.rb +0 -0
- data/lib/{lib/platform → platform}/mobile/android/android_phone/android_phone.rb +0 -0
- data/lib/{lib/platform → platform}/mobile/android/android_tablet/android_tablet.rb +0 -0
- data/lib/{lib/platform → platform}/mobile/ios/ios.rb +0 -0
- data/lib/{lib/platform → platform}/mobile/ios/ios_phone/ios_phone.rb +0 -0
- data/lib/{lib/platform → platform}/mobile/ios/ios_tablet/ios_tablet.rb +0 -0
- data/lib/{lib/platform → platform}/mobile/mobile.rb +0 -0
- data/lib/{lib/platform → platform}/passport/passport.rb +0 -0
- data/lib/{lib/platform → platform}/passport/passport1080/passport_1080.rb +0 -0
- data/lib/{lib/platform → platform}/passport/passport_720/passport_720.rb +0 -0
- data/lib/{lib/platform → platform}/platform.rb +0 -0
- data/lib/{lib/platform → platform}/roku/roku.rb +0 -0
- data/lib/{lib/platform → platform}/roku/roku_720/roku_720.rb +0 -0
- data/lib/{lib/platform → platform}/roku_tv/roku_tv.rb +0 -0
- data/lib/{lib/platform → platform}/roku_tv/roku_tv_1080/roku_tv_1080.rb +0 -0
- data/lib/{lib/platform → platform}/roku_tv/roku_tv_720/roku_tv_720.rb +0 -0
- data/lib/{lib/platform → platform}/samsung_tv/samsung_tv.rb +0 -0
- data/lib/{lib/platform → platform}/samsung_tv/samsung_tv_1080/samsung_tv_1080.rb +0 -0
- data/lib/{lib/platform → platform}/samsung_tv/samsung_tv_720/samsung_tv_720.rb +0 -0
- data/lib/{lib/platform → platform}/sara/sara.rb +0 -0
- data/lib/{lib/platform → platform}/sara/sara_1080/sara_1080.rb +0 -0
- data/lib/{lib/platform → platform}/sara/sara_720/sara_720.rb +0 -0
- data/lib/{lib/platform → platform}/stb/iguide/iguide.rb +0 -0
- data/lib/{lib/platform → platform}/stb/iguide/iguide_1080/iguide_1080.rb +0 -0
- data/lib/{lib/platform → platform}/stb/iguide/iguide_720/iguide_720.rb +0 -0
- data/lib/{lib/platform → platform}/stb/odn/odn.rb +0 -0
- data/lib/{lib/platform → platform}/stb/odn/odn_1080/odn_1080.rb +0 -0
- data/lib/{lib/platform → platform}/stb/odn/odn_720/odn_720.rb +0 -0
- data/lib/{lib/platform → platform}/stb/odn/odn_720/odn_720_moto/odn_720_moto.rb +0 -0
- data/lib/{lib/platform → platform}/stb/odn/odn_720/odn_720_sa/odn_720_sa.rb +0 -0
- data/lib/{lib/platform → platform}/stb/odn/odn_720/odn_720_samsung/odn_720_samsung.rb +0 -0
- data/lib/{lib/platform → platform}/stb/spectrum/spectrum.rb +0 -0
- data/lib/{lib/platform → platform}/stb/spectrum/spectrum_1080/spectrum_1080.rb +0 -0
- data/lib/{lib/platform → platform}/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis.rb +0 -0
- data/lib/{lib/platform → platform}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris.rb +0 -0
- data/lib/{lib/platform → platform}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax.rb +0 -0
- data/lib/{lib/platform → platform}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch.rb +0 -0
- data/lib/{lib/platform → platform}/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace.rb +0 -0
- data/lib/{lib/platform → platform}/stb/spectrum/spectrum_720/spectrum_720.rb +0 -0
- data/lib/{lib/platform → platform}/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris.rb +0 -0
- data/lib/{lib/platform → platform}/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax.rb +0 -0
- data/lib/{lib/platform → platform}/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch.rb +0 -0
- data/lib/{lib/platform → platform}/stb/stb.rb +0 -0
- data/lib/{lib/platform → platform}/template.txt +0 -0
- data/lib/{lib/platform → platform}/tivo/tivo.rb +0 -0
- data/lib/{lib/platform → platform}/tivo/tivo_1080/tivo_1080.rb +0 -0
- data/lib/{lib/platform → platform}/tivo/tivo_720/tivo_720.rb +0 -0
- data/lib/{lib/platform → platform}/web/web.rb +0 -0
- data/lib/{lib/platform_libs → platform_libs}/roku/roku_controller.rb +0 -0
- data/lib/{lib/prereqs → prereqs}/prereqs.rb +0 -0
- data/lib/{lib/prereqs → prereqs}/prereqs_for_dut.rb +0 -0
- data/lib/{lib/prereqs → prereqs}/prereqs_for_test.rb +0 -0
- data/lib/{lib/remotes → remotes}/remotes.rb +0 -0
- data/lib/{lib/remotes → remotes}/stb/spectrum/spectrum_remotes.rb +0 -0
- data/lib/{lib/roi → roi}/black/black_roi.rb +0 -0
- data/lib/{lib/roi → roi}/color/color_roi.rb +0 -0
- data/lib/{lib/roi → roi}/image/image_roi.rb +0 -0
- data/lib/{lib/roi → roi}/roi.rb +0 -0
- data/lib/{lib/roi → roi}/template_roi.txt +0 -0
- data/lib/{lib/roi → roi}/text/text_roi.rb +0 -0
- data/lib/{lib/roi → roi}/video/video_roi.rb +0 -0
- data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_1080/apple_tv_1080_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_1080/apple_tv_1080_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_1080/apple_tv_1080_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_1080/apple_tv_1080_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_1080/apple_tv_1080_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_1080/apple_tv_1080_video_rois.rb +2 -1
- data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_720/apple_tv_720_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_720/apple_tv_720_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_720/apple_tv_720_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_720/apple_tv_720_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_720/apple_tv_720_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_720/apple_tv_720_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/apple_tv/apple_tv_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/dta/dta_1080/dta_1080_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/dta/dta_1080/dta_1080_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/dta/dta_1080/dta_1080_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/dta/dta_1080/dta_1080_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/dta/dta_1080/dta_1080_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/dta/dta_1080/dta_1080_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/dta/dta_720/dta_720_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/dta/dta_720/dta_720_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/dta/dta_720/dta_720_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/dta/dta_720/dta_720_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/dta/dta_720/dta_720_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/dta/dta_720/dta_720_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/dta/dta_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/dta/dta_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/dta/dta_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/dta/dta_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/dta/dta_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/dta/dta_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mdn/mdn_1080/mdn_1080_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mdn/mdn_1080/mdn_1080_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mdn/mdn_1080/mdn_1080_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mdn/mdn_1080/mdn_1080_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mdn/mdn_1080/mdn_1080_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mdn/mdn_1080/mdn_1080_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mdn/mdn_720/mdn_720_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mdn/mdn_720/mdn_720_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mdn/mdn_720/mdn_720_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mdn/mdn_720/mdn_720_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mdn/mdn_720/mdn_720_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mdn/mdn_720/mdn_720_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mdn/mdn_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mdn/mdn_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mdn/mdn_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mdn/mdn_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mdn/mdn_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mdn/mdn_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/android/android_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/android/android_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/android/android_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/android/android_phone/android_phone_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/android/android_phone/android_phone_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/android/android_phone/android_phone_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/android/android_phone/android_phone_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/android/android_phone/android_phone_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/android/android_phone/android_phone_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/android/android_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/android/android_tablet/android_tablet_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/android/android_tablet/android_tablet_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/android/android_tablet/android_tablet_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/android/android_tablet/android_tablet_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/android/android_tablet/android_tablet_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/android/android_tablet/android_tablet_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/android/android_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/android/android_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/ios/ios_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/ios/ios_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/ios/ios_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/ios/ios_phone/ios_phone_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/ios/ios_phone/ios_phone_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/ios/ios_phone/ios_phone_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/ios/ios_phone/ios_phone_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/ios/ios_phone/ios_phone_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/ios/ios_phone/ios_phone_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/ios/ios_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/ios/ios_tablet/ios_tablet_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/ios/ios_tablet/ios_tablet_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/ios/ios_tablet/ios_tablet_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/ios/ios_tablet/ios_tablet_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/ios/ios_tablet/ios_tablet_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/ios/ios_tablet/ios_tablet_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/ios/ios_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/ios/ios_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/mobile_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/mobile_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/mobile_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/mobile_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/mobile_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/mobile/mobile_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/passport/passport_1080/passport_1080_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/passport/passport_1080/passport_1080_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/passport/passport_1080/passport_1080_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/passport/passport_1080/passport_1080_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/passport/passport_1080/passport_1080_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/passport/passport_1080/passport_1080_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/passport/passport_720/passport_720_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/passport/passport_720/passport_720_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/passport/passport_720/passport_720_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/passport/passport_720/passport_720_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/passport/passport_720/passport_720_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/passport/passport_720/passport_720_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/passport/passport_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/passport/passport_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/passport/passport_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/passport/passport_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/passport/passport_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/passport/passport_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku/roku_720/roku_720_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku/roku_720/roku_720_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku/roku_720/roku_720_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku/roku_720/roku_720_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku/roku_720/roku_720_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku/roku_720/roku_720_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku/roku_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku/roku_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku/roku_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku/roku_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku/roku_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku/roku_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_1080/roku_tv_1080_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_1080/roku_tv_1080_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_1080/roku_tv_1080_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_1080/roku_tv_1080_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_1080/roku_tv_1080_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_1080/roku_tv_1080_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_720/roku_tv_720_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_720/roku_tv_720_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_720/roku_tv_720_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_720/roku_tv_720_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_720/roku_tv_720_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_720/roku_tv_720_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/roku_tv/roku_tv_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_1080/samsung_tv_1080_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_1080/samsung_tv_1080_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_1080/samsung_tv_1080_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_1080/samsung_tv_1080_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_1080/samsung_tv_1080_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_1080/samsung_tv_1080_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_720/samsung_tv_720_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_720/samsung_tv_720_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_720/samsung_tv_720_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_720/samsung_tv_720_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_720/samsung_tv_720_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_720/samsung_tv_720_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/samsung_tv/samsung_tv_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/sara/sara_1080/sara_1080_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/sara/sara_1080/sara_1080_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/sara/sara_1080/sara_1080_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/sara/sara_1080/sara_1080_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/sara/sara_1080/sara_1080_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/sara/sara_1080/sara_1080_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/sara/sara_720/sara_720_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/sara/sara_720/sara_720_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/sara/sara_720/sara_720_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/sara/sara_720/sara_720_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/sara/sara_720/sara_720_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/sara/sara_720/sara_720_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/sara/sara_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/sara/sara_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/sara/sara_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/sara/sara_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/sara/sara_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/sara/sara_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_1080/iguide_1080_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_1080/iguide_1080_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_1080/iguide_1080_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_1080/iguide_1080_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_1080/iguide_1080_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_1080/iguide_1080_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_720/iguide_720_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_720/iguide_720_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_720/iguide_720_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_720/iguide_720_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_720/iguide_720_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_720/iguide_720_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/iguide/iguide_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_1080/odn_1080_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_1080/odn_1080_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_1080/odn_1080_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_1080/odn_1080_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_1080/odn_1080_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_1080/odn_1080_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_moto/odn_720_moto_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_moto/odn_720_moto_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_moto/odn_720_moto_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_moto/odn_720_moto_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_moto/odn_720_moto_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_moto/odn_720_moto_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_sa/odn_720_sa_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_sa/odn_720_sa_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_sa/odn_720_sa_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_sa/odn_720_sa_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_sa/odn_720_sa_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_sa/odn_720_sa_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_720/odn_720_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/odn/odn_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_1080/spectrum_1080_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_720/spectrum_720_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/spectrum/spectrum_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/stb_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/stb_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/stb_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/stb_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/stb_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/stb/stb_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/template.txt +0 -0
- data/lib/{User_Lib/rois → rois}/text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/tivo/tivo_1080/tivo_1080_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/tivo/tivo_1080/tivo_1080_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/tivo/tivo_1080/tivo_1080_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/tivo/tivo_1080/tivo_1080_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/tivo/tivo_1080/tivo_1080_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/tivo/tivo_1080/tivo_1080_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/tivo/tivo_720/tivo_720_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/tivo/tivo_720/tivo_720_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/tivo/tivo_720/tivo_720_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/tivo/tivo_720/tivo_720_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/tivo/tivo_720/tivo_720_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/tivo/tivo_720/tivo_720_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/tivo/tivo_black_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/tivo/tivo_color_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/tivo/tivo_image_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/tivo/tivo_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/tivo/tivo_text_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/tivo/tivo_video_rois.rb +0 -0
- data/lib/{User_Lib/rois → rois}/video_rois.rb +0 -0
- data/lib/{lib/screen → screen}/screen.rb +0 -0
- data/lib/{lib/screen → screen}/template.txt +0 -0
- data/lib/{lib/screen → screen}/template_screen.txt +0 -0
- data/lib/{lib/screens → screens}/apple_tv/apple_tv_screens.rb +0 -0
- data/lib/{lib/screens → screens}/dta/dta_screens.rb +0 -0
- data/lib/{lib/screens → screens}/mdn/mdn_screens.rb +0 -0
- data/lib/{lib/screens → screens}/mobile/android/android_phone/android_phone_screens.rb +0 -0
- data/lib/{lib/screens → screens}/mobile/android/android_screens.rb +0 -0
- data/lib/{lib/screens → screens}/mobile/android/android_tablet/android_tablet_screens.rb +0 -0
- data/lib/{lib/screens → screens}/mobile/ios/ios_phone/ios_phone_screens.rb +0 -0
- data/lib/{lib/screens → screens}/mobile/ios/ios_screens.rb +0 -0
- data/lib/{lib/screens → screens}/mobile/ios/ios_tablet/ios_tablet_screens.rb +0 -0
- data/lib/{lib/screens → screens}/mobile/mobile_screens.rb +0 -0
- data/lib/{lib/screens → screens}/passport/passport_screens.rb +0 -0
- data/lib/{lib/screens → screens}/roku/roku_screens.rb +0 -0
- data/lib/{lib/screens → screens}/roku_tv/roku_tv_screens.rb +0 -0
- data/lib/{lib/screens → screens}/samsung_tv/samsung_tv_screens.rb +0 -0
- data/lib/{lib/screens → screens}/sara/sara_screens.rb +0 -0
- data/lib/{lib/screens → screens}/screens.rb +0 -0
- data/lib/{lib/screens → screens}/stb/iguide/iguide_1080/iguide_1080_screens.rb +0 -0
- data/lib/{lib/screens → screens}/stb/iguide/iguide_720/iguide_720_screens.rb +0 -0
- data/lib/{lib/screens → screens}/stb/iguide/iguide_screens.rb +0 -0
- data/lib/{lib/screens → screens}/stb/odn/odn_screens.rb +0 -0
- data/lib/{lib/screens → screens}/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_screens.rb +0 -0
- data/lib/{lib/screens → screens}/stb/spectrum/spectrum_screens.rb +0 -0
- data/lib/{lib/screens → screens}/stb/stb_screens.rb +0 -0
- data/lib/{lib/screens → screens}/template.txt +0 -0
- data/lib/{lib/screens → screens}/tivo/tivo_screens.rb +0 -0
- data/lib/{lib/selenium → selenium}/appium/appium.rb +0 -0
- data/lib/{lib/selenium → selenium}/selenium.rb +0 -0
- data/lib/{lib/selenium → selenium}/webdriver/webdriver.rb +0 -0
- data/lib/{lib/test_case → test_case}/boilerplate/functional.rb +0 -0
- data/lib/{lib/test_case → test_case}/boilerplate/performance.rb +0 -0
- data/lib/{lib/test_case → test_case}/ci_test.rb +0 -0
- data/lib/{lib/test_case → test_case}/functional_test_case.rb +0 -0
- data/lib/{lib/test_case → test_case}/make_boilerplate.rb +0 -0
- data/lib/{lib/test_case → test_case}/monitoring/apple_monitor.rb +0 -0
- data/lib/{lib/test_case → test_case}/monitoring/base_monitor.rb +0 -0
- data/lib/{lib/test_case → test_case}/monitoring/dta_monitor.rb +0 -0
- data/lib/{lib/test_case → test_case}/monitoring/iguide_monitor.rb +0 -0
- data/lib/{lib/test_case → test_case}/monitoring/mdn_monitor.rb +0 -0
- data/lib/{lib/test_case → test_case}/monitoring/monitoring_test.rb +0 -0
- data/lib/{lib/test_case → test_case}/monitoring/odn_monitor.rb +0 -0
- data/lib/{lib/test_case → test_case}/monitoring/passport_monitor.rb +0 -0
- data/lib/{lib/test_case → test_case}/monitoring/report_monitor.rb +0 -0
- data/lib/{lib/test_case → test_case}/monitoring/roku_monitor.rb +0 -0
- data/lib/{lib/test_case → test_case}/monitoring/sara_monitor.rb +0 -0
- data/lib/{lib/test_case → test_case}/monitoring/spec_monitor.rb +0 -0
- data/lib/{lib/test_case → test_case}/performance_test_case.rb +0 -0
- data/lib/{lib/test_case → test_case}/test_case.rb +0 -0
- data/lib/{lib/test_case → test_case}/test_error.rb +0 -0
- data/lib/{lib/test_case → test_case}/test_exception.rb +0 -0
- data/lib/{lib/test_case → test_case}/test_status.rb +0 -0
- data/lib/{lib/test_case → test_case}/test_step.rb +0 -0
- data/lib/{lib/test_case → test_case}/test_trace.rb +0 -0
- data/lib/{lib/test_data.rb → test_data.rb} +0 -0
- data/lib/test_wrapper.rb +95 -0
- data/{lib/misc → misc}/get_latest_android.sh +0 -0
- data/{lib/misc → misc}/get_latest_ios.sh +0 -0
- data/{lib/package-lock.json → package-lock.json} +0 -0
- data/{lib/syntax_eval.rb → syntax_eval.rb} +27 -35
- data/tmc-core.gemspec +9 -0
- data/{lib/tools → tools}/convert_old_scripts.rb +0 -0
- data/{lib/tools → tools}/find_duplicate_rois.rb +0 -0
- data/{lib/tools → tools}/roku/inspector.rb +0 -0
- data/{lib/tools → tools}/syntax_checker.rb +2 -4
- data/{lib/upload_ref_images.rb → upload_ref_images.rb} +0 -0
- metadata +576 -873
- data/lib/User_Lib/helpers/helpers.rb +0 -13
- data/lib/User_Lib/screen/apple_tv/apple_tv_dvr.rb +0 -25
- data/lib/User_Lib/screen/apple_tv/apple_tv_guide.rb +0 -25
- data/lib/User_Lib/screen/apple_tv/apple_tv_library.rb +0 -25
- data/lib/User_Lib/screen/apple_tv/apple_tv_live_tv.rb +0 -17
- data/lib/User_Lib/screen/apple_tv/apple_tv_login.rb +0 -24
- data/lib/User_Lib/screen/apple_tv/apple_tv_main_menu.rb +0 -25
- data/lib/User_Lib/screen/apple_tv/apple_tv_mini_guide.rb +0 -25
- data/lib/User_Lib/screen/apple_tv/apple_tv_movies.rb +0 -25
- data/lib/User_Lib/screen/apple_tv/apple_tv_on_demand.rb +0 -25
- data/lib/User_Lib/screen/apple_tv/apple_tv_parental_controls.rb +0 -25
- data/lib/User_Lib/screen/apple_tv/apple_tv_product_page.rb +0 -25
- data/lib/User_Lib/screen/apple_tv/apple_tv_screen.rb +0 -23
- data/lib/User_Lib/screen/apple_tv/apple_tv_search.rb +0 -31
- data/lib/User_Lib/screen/apple_tv/apple_tv_settings.rb +0 -25
- data/lib/User_Lib/screen/apple_tv/apple_tv_tv_shows.rb +0 -25
- data/lib/User_Lib/screen/apple_tv/apple_tv_video_store.rb +0 -25
- data/lib/User_Lib/screen/dta/dta_dvr.rb +0 -26
- data/lib/User_Lib/screen/dta/dta_guide.rb +0 -26
- data/lib/User_Lib/screen/dta/dta_library.rb +0 -26
- data/lib/User_Lib/screen/dta/dta_live_tv.rb +0 -26
- data/lib/User_Lib/screen/dta/dta_log_in.rb +0 -26
- data/lib/User_Lib/screen/dta/dta_main_menu.rb +0 -26
- data/lib/User_Lib/screen/dta/dta_mini_guide.rb +0 -26
- data/lib/User_Lib/screen/dta/dta_movies.rb +0 -26
- data/lib/User_Lib/screen/dta/dta_on_demand.rb +0 -26
- data/lib/User_Lib/screen/dta/dta_parental_controls.rb +0 -26
- data/lib/User_Lib/screen/dta/dta_product_page.rb +0 -26
- data/lib/User_Lib/screen/dta/dta_screen.rb +0 -24
- data/lib/User_Lib/screen/dta/dta_search.rb +0 -26
- data/lib/User_Lib/screen/dta/dta_settings.rb +0 -26
- data/lib/User_Lib/screen/dta/dta_tv_shows.rb +0 -26
- data/lib/User_Lib/screen/dta/dta_video_store.rb +0 -26
- data/lib/User_Lib/screen/mdn/mdn_dvr.rb +0 -26
- data/lib/User_Lib/screen/mdn/mdn_guide.rb +0 -26
- data/lib/User_Lib/screen/mdn/mdn_library.rb +0 -26
- data/lib/User_Lib/screen/mdn/mdn_live_tv.rb +0 -26
- data/lib/User_Lib/screen/mdn/mdn_log_in.rb +0 -26
- data/lib/User_Lib/screen/mdn/mdn_main_menu.rb +0 -26
- data/lib/User_Lib/screen/mdn/mdn_mini_guide.rb +0 -26
- data/lib/User_Lib/screen/mdn/mdn_movies.rb +0 -26
- data/lib/User_Lib/screen/mdn/mdn_on_demand.rb +0 -26
- data/lib/User_Lib/screen/mdn/mdn_parental_controls.rb +0 -26
- data/lib/User_Lib/screen/mdn/mdn_product_page.rb +0 -26
- data/lib/User_Lib/screen/mdn/mdn_screen.rb +0 -24
- data/lib/User_Lib/screen/mdn/mdn_search.rb +0 -26
- data/lib/User_Lib/screen/mdn/mdn_settings.rb +0 -26
- data/lib/User_Lib/screen/mdn/mdn_tv_shows.rb +0 -26
- data/lib/User_Lib/screen/mdn/mdn_video_store.rb +0 -26
- data/lib/User_Lib/screen/mobile/android/android_devices.rb +0 -35
- data/lib/User_Lib/screen/mobile/android/android_dvr.rb +0 -337
- data/lib/User_Lib/screen/mobile/android/android_favorites.rb +0 -164
- data/lib/User_Lib/screen/mobile/android/android_guide.rb +0 -256
- data/lib/User_Lib/screen/mobile/android/android_live_tv.rb +0 -372
- data/lib/User_Lib/screen/mobile/android/android_login.rb +0 -111
- data/lib/User_Lib/screen/mobile/android/android_main_menu.rb +0 -53
- data/lib/User_Lib/screen/mobile/android/android_on_demand.rb +0 -402
- data/lib/User_Lib/screen/mobile/android/android_parental_controls.rb +0 -73
- data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_dvr.rb +0 -31
- data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_guide.rb +0 -39
- data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_live_tv.rb +0 -104
- data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_main_menu.rb +0 -27
- data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_on_demand.rb +0 -35
- data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_product_page.rb +0 -7
- data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_search.rb +0 -26
- data/lib/User_Lib/screen/mobile/android/android_privacy_legal.rb +0 -54
- data/lib/User_Lib/screen/mobile/android/android_product_page.rb +0 -484
- data/lib/User_Lib/screen/mobile/android/android_screen.rb +0 -56
- data/lib/User_Lib/screen/mobile/android/android_search.rb +0 -39
- data/lib/User_Lib/screen/mobile/android/android_settings.rb +0 -90
- data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_dvr.rb +0 -58
- data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_guide.rb +0 -24
- data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_live_tv.rb +0 -24
- data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_main_menu.rb +0 -19
- data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_on_demand.rb +0 -16
- data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_product_page.rb +0 -45
- data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_search.rb +0 -14
- data/lib/User_Lib/screen/mobile/devices_mobile.rb +0 -53
- data/lib/User_Lib/screen/mobile/dvr_mobile.rb +0 -5
- data/lib/User_Lib/screen/mobile/favorites_mobile.rb +0 -5
- data/lib/User_Lib/screen/mobile/guide_mobile.rb +0 -5
- data/lib/User_Lib/screen/mobile/ios/ios_devices.rb +0 -43
- data/lib/User_Lib/screen/mobile/ios/ios_dvr.rb +0 -231
- data/lib/User_Lib/screen/mobile/ios/ios_favorites.rb +0 -79
- data/lib/User_Lib/screen/mobile/ios/ios_guide.rb +0 -53
- data/lib/User_Lib/screen/mobile/ios/ios_live_tv.rb +0 -413
- data/lib/User_Lib/screen/mobile/ios/ios_login.rb +0 -76
- data/lib/User_Lib/screen/mobile/ios/ios_main_menu.rb +0 -38
- data/lib/User_Lib/screen/mobile/ios/ios_on_demand.rb +0 -371
- data/lib/User_Lib/screen/mobile/ios/ios_parental_controls.rb +0 -104
- data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_dvr.rb +0 -14
- data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_live_tv.rb +0 -36
- data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_main_menu.rb +0 -7
- data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_on_demand.rb +0 -7
- data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_search.rb +0 -13
- data/lib/User_Lib/screen/mobile/ios/ios_privacy_legal.rb +0 -56
- data/lib/User_Lib/screen/mobile/ios/ios_product_page.rb +0 -441
- data/lib/User_Lib/screen/mobile/ios/ios_screen.rb +0 -60
- data/lib/User_Lib/screen/mobile/ios/ios_search.rb +0 -145
- data/lib/User_Lib/screen/mobile/ios/ios_settings.rb +0 -34
- data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_live_tv.rb +0 -34
- data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_main_menu.rb +0 -7
- data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_on_demand.rb +0 -7
- data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_search.rb +0 -13
- data/lib/User_Lib/screen/mobile/live_tv_mobile.rb +0 -73
- data/lib/User_Lib/screen/mobile/login_mobile.rb +0 -5
- data/lib/User_Lib/screen/mobile/main_menu_mobile.rb +0 -83
- data/lib/User_Lib/screen/mobile/mobile_screen.rb +0 -232
- data/lib/User_Lib/screen/mobile/on_demand_mobile.rb +0 -70
- data/lib/User_Lib/screen/mobile/parental_controls_mobile.rb +0 -5
- data/lib/User_Lib/screen/mobile/privacy_legal_mobile.rb +0 -5
- data/lib/User_Lib/screen/mobile/product_page_mobile.rb +0 -5
- data/lib/User_Lib/screen/mobile/search_mobile.rb +0 -5
- data/lib/User_Lib/screen/mobile/settings_mobile.rb +0 -33
- data/lib/User_Lib/screen/passport/passport_dvr.rb +0 -25
- data/lib/User_Lib/screen/passport/passport_guide.rb +0 -37
- data/lib/User_Lib/screen/passport/passport_library.rb +0 -25
- data/lib/User_Lib/screen/passport/passport_live_tv.rb +0 -17
- data/lib/User_Lib/screen/passport/passport_main_menu.rb +0 -25
- data/lib/User_Lib/screen/passport/passport_mini_guide.rb +0 -25
- data/lib/User_Lib/screen/passport/passport_movies.rb +0 -25
- data/lib/User_Lib/screen/passport/passport_on_demand.rb +0 -25
- data/lib/User_Lib/screen/passport/passport_parental_controls.rb +0 -25
- data/lib/User_Lib/screen/passport/passport_product_page.rb +0 -25
- data/lib/User_Lib/screen/passport/passport_screen.rb +0 -23
- data/lib/User_Lib/screen/passport/passport_search.rb +0 -25
- data/lib/User_Lib/screen/passport/passport_settings.rb +0 -25
- data/lib/User_Lib/screen/passport/passport_tv_shows.rb +0 -25
- data/lib/User_Lib/screen/passport/passport_video_store.rb +0 -25
- data/lib/User_Lib/screen/roku/brs/roku_guide_brs.rb +0 -12
- data/lib/User_Lib/screen/roku/brs/roku_home_brs.rb +0 -12
- data/lib/User_Lib/screen/roku/brs/roku_live_tv_brs.rb +0 -12
- data/lib/User_Lib/screen/roku/brs/roku_login_brs.rb +0 -103
- data/lib/User_Lib/screen/roku/brs/roku_main_menu_brs.rb +0 -46
- data/lib/User_Lib/screen/roku/brs/roku_on_demand_brs.rb +0 -12
- data/lib/User_Lib/screen/roku/brs/roku_product_page_brs.rb +0 -12
- data/lib/User_Lib/screen/roku/brs/roku_screen_brs.rb +0 -9
- data/lib/User_Lib/screen/roku/brs/roku_search_brs.rb +0 -12
- data/lib/User_Lib/screen/roku/brs/roku_settings_brs.rb +0 -42
- data/lib/User_Lib/screen/roku/brs/roku_watch_later_brs.rb +0 -12
- data/lib/User_Lib/screen/roku/brs/roku_welcome_brs.rb +0 -12
- data/lib/User_Lib/screen/roku/roku_dvr.rb +0 -7
- data/lib/User_Lib/screen/roku/roku_guide.rb +0 -590
- data/lib/User_Lib/screen/roku/roku_home.rb +0 -346
- data/lib/User_Lib/screen/roku/roku_library.rb +0 -26
- data/lib/User_Lib/screen/roku/roku_live_tv.rb +0 -210
- data/lib/User_Lib/screen/roku/roku_login.rb +0 -795
- data/lib/User_Lib/screen/roku/roku_main_menu.rb +0 -425
- data/lib/User_Lib/screen/roku/roku_mini_guide.rb +0 -7
- data/lib/User_Lib/screen/roku/roku_on_demand.rb +0 -479
- data/lib/User_Lib/screen/roku/roku_product_page.rb +0 -483
- data/lib/User_Lib/screen/roku/roku_screen.rb +0 -85
- data/lib/User_Lib/screen/roku/roku_search.rb +0 -229
- data/lib/User_Lib/screen/roku/roku_settings.rb +0 -304
- data/lib/User_Lib/screen/roku/roku_watch_later.rb +0 -51
- data/lib/User_Lib/screen/roku/roku_welcome.rb +0 -10
- data/lib/User_Lib/screen/roku_tv/roku_tv_dvr.rb +0 -14
- data/lib/User_Lib/screen/roku_tv/roku_tv_guide.rb +0 -14
- data/lib/User_Lib/screen/roku_tv/roku_tv_home.rb +0 -14
- data/lib/User_Lib/screen/roku_tv/roku_tv_library.rb +0 -14
- data/lib/User_Lib/screen/roku_tv/roku_tv_live_tv.rb +0 -14
- data/lib/User_Lib/screen/roku_tv/roku_tv_login.rb +0 -14
- data/lib/User_Lib/screen/roku_tv/roku_tv_main_menu.rb +0 -14
- data/lib/User_Lib/screen/roku_tv/roku_tv_mini_guide.rb +0 -14
- data/lib/User_Lib/screen/roku_tv/roku_tv_on_demand.rb +0 -26
- data/lib/User_Lib/screen/roku_tv/roku_tv_product_page.rb +0 -14
- data/lib/User_Lib/screen/roku_tv/roku_tv_screen.rb +0 -7
- data/lib/User_Lib/screen/roku_tv/roku_tv_search.rb +0 -14
- data/lib/User_Lib/screen/roku_tv/roku_tv_settings.rb +0 -14
- data/lib/User_Lib/screen/roku_tv/roku_tv_watch_later.rb +0 -14
- data/lib/User_Lib/screen/roku_tv/roku_tv_welcome.rb +0 -14
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_dvr.rb +0 -24
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_guide.rb +0 -24
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_library.rb +0 -24
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_live_tv.rb +0 -21
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_login.rb +0 -13
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_main_menu.rb +0 -64
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_mini_guide.rb +0 -24
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_movies.rb +0 -140
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_on_demand.rb +0 -76
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_parental_controls.rb +0 -24
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_product_page.rb +0 -24
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_screen.rb +0 -74
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_search.rb +0 -29
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_settings.rb +0 -189
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_tv_shows.rb +0 -24
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_video_store.rb +0 -24
- data/lib/User_Lib/screen/sara/sara_dvr.rb +0 -26
- data/lib/User_Lib/screen/sara/sara_guide.rb +0 -43
- data/lib/User_Lib/screen/sara/sara_library.rb +0 -26
- data/lib/User_Lib/screen/sara/sara_live_tv.rb +0 -26
- data/lib/User_Lib/screen/sara/sara_log_in.rb +0 -26
- data/lib/User_Lib/screen/sara/sara_main_menu.rb +0 -26
- data/lib/User_Lib/screen/sara/sara_mini_guide.rb +0 -26
- data/lib/User_Lib/screen/sara/sara_movies.rb +0 -26
- data/lib/User_Lib/screen/sara/sara_on_demand.rb +0 -26
- data/lib/User_Lib/screen/sara/sara_parental_controls.rb +0 -26
- data/lib/User_Lib/screen/sara/sara_product_page.rb +0 -26
- data/lib/User_Lib/screen/sara/sara_screen.rb +0 -24
- data/lib/User_Lib/screen/sara/sara_search.rb +0 -26
- data/lib/User_Lib/screen/sara/sara_settings.rb +0 -26
- data/lib/User_Lib/screen/sara/sara_tv_shows.rb +0 -26
- data/lib/User_Lib/screen/sara/sara_video_store.rb +0 -26
- data/lib/User_Lib/screen/stb/iguide/iguide_devices.rb +0 -10
- data/lib/User_Lib/screen/stb/iguide/iguide_dvr.rb +0 -10
- data/lib/User_Lib/screen/stb/iguide/iguide_favorites.rb +0 -10
- data/lib/User_Lib/screen/stb/iguide/iguide_guide.rb +0 -39
- data/lib/User_Lib/screen/stb/iguide/iguide_home.rb +0 -10
- data/lib/User_Lib/screen/stb/iguide/iguide_library.rb +0 -10
- data/lib/User_Lib/screen/stb/iguide/iguide_live_tv.rb +0 -59
- data/lib/User_Lib/screen/stb/iguide/iguide_login.rb +0 -10
- data/lib/User_Lib/screen/stb/iguide/iguide_main_menu.rb +0 -10
- data/lib/User_Lib/screen/stb/iguide/iguide_mini_guide.rb +0 -10
- data/lib/User_Lib/screen/stb/iguide/iguide_movies.rb +0 -10
- data/lib/User_Lib/screen/stb/iguide/iguide_on_demand.rb +0 -531
- data/lib/User_Lib/screen/stb/iguide/iguide_parental_controls.rb +0 -10
- data/lib/User_Lib/screen/stb/iguide/iguide_privacy_legal.rb +0 -10
- data/lib/User_Lib/screen/stb/iguide/iguide_product_page.rb +0 -10
- data/lib/User_Lib/screen/stb/iguide/iguide_quick_menu.rb +0 -7
- data/lib/User_Lib/screen/stb/iguide/iguide_screen.rb +0 -21
- data/lib/User_Lib/screen/stb/iguide/iguide_search.rb +0 -10
- data/lib/User_Lib/screen/stb/iguide/iguide_settings.rb +0 -10
- data/lib/User_Lib/screen/stb/iguide/iguide_tv_shows.rb +0 -10
- data/lib/User_Lib/screen/stb/iguide/iguide_video_store.rb +0 -10
- data/lib/User_Lib/screen/stb/login_stb.rb +0 -5
- data/lib/User_Lib/screen/stb/odn/odn_dvr.rb +0 -59
- data/lib/User_Lib/screen/stb/odn/odn_favorites.rb +0 -8
- data/lib/User_Lib/screen/stb/odn/odn_guide.rb +0 -177
- data/lib/User_Lib/screen/stb/odn/odn_live_tv.rb +0 -115
- data/lib/User_Lib/screen/stb/odn/odn_login.rb +0 -8
- data/lib/User_Lib/screen/stb/odn/odn_main_menu.rb +0 -175
- data/lib/User_Lib/screen/stb/odn/odn_on_demand.rb +0 -1170
- data/lib/User_Lib/screen/stb/odn/odn_on_demand_kids.rb +0 -23
- data/lib/User_Lib/screen/stb/odn/odn_on_demand_left_menu.rb +0 -180
- data/lib/User_Lib/screen/stb/odn/odn_parental_controls.rb +0 -9
- data/lib/User_Lib/screen/stb/odn/odn_product_page.rb +0 -8
- data/lib/User_Lib/screen/stb/odn/odn_screen.rb +0 -111
- data/lib/User_Lib/screen/stb/odn/odn_search.rb +0 -167
- data/lib/User_Lib/screen/stb/odn/odn_settings.rb +0 -142
- data/lib/User_Lib/screen/stb/spectrum/spectrum_diagnostics.rb +0 -27
- data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/screen_spectrum_docsis.rb +0 -12
- data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_guide.rb +0 -10
- data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_main_menu.rb +0 -10
- data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_settings.rb +0 -10
- data/lib/User_Lib/screen/stb/spectrum/spectrum_dvr.rb +0 -1781
- data/lib/User_Lib/screen/stb/spectrum/spectrum_guide.rb +0 -841
- data/lib/User_Lib/screen/stb/spectrum/spectrum_library.rb +0 -384
- data/lib/User_Lib/screen/stb/spectrum/spectrum_live_tv.rb +0 -259
- data/lib/User_Lib/screen/stb/spectrum/spectrum_main_menu.rb +0 -223
- data/lib/User_Lib/screen/stb/spectrum/spectrum_mini_guide.rb +0 -404
- data/lib/User_Lib/screen/stb/spectrum/spectrum_movies.rb +0 -420
- data/lib/User_Lib/screen/stb/spectrum/spectrum_netflix.rb +0 -37
- data/lib/User_Lib/screen/stb/spectrum/spectrum_on_demand.rb +0 -2137
- data/lib/User_Lib/screen/stb/spectrum/spectrum_parental_controls.rb +0 -528
- data/lib/User_Lib/screen/stb/spectrum/spectrum_pay_per_view.rb +0 -26
- data/lib/User_Lib/screen/stb/spectrum/spectrum_product_page.rb +0 -58
- data/lib/User_Lib/screen/stb/spectrum/spectrum_screen.rb +0 -48
- data/lib/User_Lib/screen/stb/spectrum/spectrum_search.rb +0 -92
- data/lib/User_Lib/screen/stb/spectrum/spectrum_settings.rb +0 -1657
- data/lib/User_Lib/screen/stb/spectrum/spectrum_tv_shows.rb +0 -1532
- data/lib/User_Lib/screen/stb/spectrum/spectrum_video_store.rb +0 -1598
- data/lib/User_Lib/screen/stb/stb_screen.rb +0 -7
- data/lib/User_Lib/screen/tivo/tivo_dvr.rb +0 -25
- data/lib/User_Lib/screen/tivo/tivo_guide.rb +0 -25
- data/lib/User_Lib/screen/tivo/tivo_library.rb +0 -25
- data/lib/User_Lib/screen/tivo/tivo_live_tv.rb +0 -17
- data/lib/User_Lib/screen/tivo/tivo_login.rb +0 -25
- data/lib/User_Lib/screen/tivo/tivo_main_menu.rb +0 -25
- data/lib/User_Lib/screen/tivo/tivo_mini_guide.rb +0 -25
- data/lib/User_Lib/screen/tivo/tivo_movies.rb +0 -25
- data/lib/User_Lib/screen/tivo/tivo_on_demand.rb +0 -25
- data/lib/User_Lib/screen/tivo/tivo_parental_controls.rb +0 -25
- data/lib/User_Lib/screen/tivo/tivo_product_page.rb +0 -25
- data/lib/User_Lib/screen/tivo/tivo_screen.rb +0 -20
- data/lib/User_Lib/screen/tivo/tivo_search.rb +0 -31
- data/lib/User_Lib/screen/tivo/tivo_settings.rb +0 -25
- data/lib/User_Lib/screen/tivo/tivo_tv_shows.rb +0 -25
- data/lib/User_Lib/screen/tivo/tivo_video_store.rb +0 -25
- data/lib/diagnostics/conductor/conductor_checkup.tmc +0 -24
- data/lib/diagnostics/db/mad_db_check.tmc +0 -56
- data/lib/diagnostics/db/mas_db_checkup.tmc +0 -24
- data/lib/diagnostics/db/mas_db_checkup_gem.tmc +0 -20
- data/lib/diagnostics/db/mas_db_checkup_jar.tmc +0 -50
- data/lib/diagnostics/iguide/iguide_nvram_reset.tmc +0 -23
- data/lib/diagnostics/iguide/iguide_prepare_stb.tmc +0 -33
- data/lib/diagnostics/iguide/iguide_prepare_stb_and_health_check.tmc +0 -63
- data/lib/diagnostics/iguide/iguide_stb_health_check.tmc +0 -54
- data/lib/diagnostics/prepare_stb.tmc +0 -30
- data/lib/diagnostics/prepare_stb_and_health_check.tmc +0 -56
- data/lib/diagnostics/script_options/options_checkup.tmc +0 -145
- data/lib/diagnostics/server_components_check.tmc +0 -62
- data/lib/diagnostics/ssh/dncs_checkup.tmc +0 -24
- data/lib/diagnostics/ssh/mas_checkup.tmc +0 -24
- data/lib/diagnostics/stb_health_check.tmc +0 -46
- data/lib/diagnostics/stb_ip_check.tmc +0 -120
- data/lib/diagnostics/webservices/mas_rest_services_checkup.tmc +0 -24
- data/lib/diagnostics/webservices/mas_soap_services_checkup.tmc +0 -24
- data/lib/end_iteration.rb +0 -4
- data/lib/lib/test_wrapper.rb +0 -146
- data/lib/run_test.rb +0 -4
- data/lib/script_validator.rb +0 -48
@@ -1,1532 +0,0 @@
|
|
1
|
-
require './lib/screen/stb/spectrum/spectrum_screen'
|
2
|
-
# DO NOT ADD DSL REQUIRES HERE. Load them in methods that need them, otherwise syntax completion will be slow.
|
3
|
-
# Defines Spectrum-specific methods on the TV Shows screen.
|
4
|
-
class SpectrumTvShows < SpectrumScreen
|
5
|
-
# Public: Navigates to TV Shows from Live TV.
|
6
|
-
#
|
7
|
-
# Returns nothing.
|
8
|
-
def navigate_from_live_tv
|
9
|
-
dut.press_key.MENU(:sleep_time => 10.sec)
|
10
|
-
dut.press_key.ARROW_DOWN(:sleep_time => 5.sec)
|
11
|
-
dut.press_key.SELECT(:sleep_time => 3.sec)
|
12
|
-
end
|
13
|
-
# Public: Check if the TV Shows page is displayed.
|
14
|
-
#
|
15
|
-
# Returns Boolean true/false if TV Shows page is/is not displayed
|
16
|
-
def displayed?(args={})
|
17
|
-
return false unless dut.roi.text.tv_shows_title.displayed?(args)
|
18
|
-
return true
|
19
|
-
end
|
20
|
-
# Public: Navigates to TV Shows
|
21
|
-
#
|
22
|
-
# - Type argument has some purpose.
|
23
|
-
#
|
24
|
-
# Returns nothing.
|
25
|
-
def nav_to_tvshow(args={})
|
26
|
-
dut.press_key('menu', :sleep_time=>3.sec)
|
27
|
-
dut.press_key('down_arrow',:sleep_time=>5.sec)
|
28
|
-
return dut.roi.text.tvshow_label.displayed?
|
29
|
-
end
|
30
|
-
# Public: Navigates to a TV Shows category
|
31
|
-
#
|
32
|
-
# category: the given name of a category
|
33
|
-
# roi_text: optional. It can be a roi.text
|
34
|
-
# instance or a hash with x,y,width,height
|
35
|
-
# given. default:
|
36
|
-
# {:x =>65, :y =>366, :width =>721,
|
37
|
-
# :height =>66}
|
38
|
-
#
|
39
|
-
#
|
40
|
-
# Notes:
|
41
|
-
# ARROW_DOWN is used to navigate through
|
42
|
-
# all categories after selecting a menu.
|
43
|
-
# Before calling this function, make sure
|
44
|
-
# starting from the first category.
|
45
|
-
#
|
46
|
-
# Returns true if navagate to the given
|
47
|
-
# category, false if the given category
|
48
|
-
# is not found.
|
49
|
-
def nav_to_category(args={})
|
50
|
-
# navagate to the given category
|
51
|
-
result = true
|
52
|
-
|
53
|
-
# fetch your given category
|
54
|
-
if args.has_key?(:category)
|
55
|
-
category_given = args.fetch(:category)
|
56
|
-
elsif args.has_key?("category")
|
57
|
-
category_given = args.fetch("category")
|
58
|
-
else
|
59
|
-
category_given = "All Networks"
|
60
|
-
end
|
61
|
-
# fetch your given roi.text
|
62
|
-
if args.has_key?(:roi_text)
|
63
|
-
roi_given = args.fetch(:roi_text)
|
64
|
-
elsif args.has_key?("roi_text")
|
65
|
-
roi_given = args.fetch("roi_text")
|
66
|
-
else
|
67
|
-
roi_given = nil
|
68
|
-
end
|
69
|
-
loginfo "Given category: #{category_given} given roi_text: #{roi_given}"
|
70
|
-
|
71
|
-
# check what roi_text is
|
72
|
-
roi_text = {:x => 65, :y => 366, :width => 721, :height => 66}
|
73
|
-
if roi_given.respond_to?("info")
|
74
|
-
if roi_given.info.inclues?("Roi")
|
75
|
-
roi_text = roi_given.rectangle
|
76
|
-
end
|
77
|
-
elsif roi_given.is_a?(Hash)
|
78
|
-
roi_text = roi_given
|
79
|
-
end
|
80
|
-
|
81
|
-
# saved_label: used to check if search is over.
|
82
|
-
saved_label = ""
|
83
|
-
con_search = true
|
84
|
-
while con_search do
|
85
|
-
category_roi = dut.roi.text.new(:rectangle=>roi_text, :text => category_given, :similarity => 80)
|
86
|
-
# get the current category
|
87
|
-
category_label = category_roi.retrieve
|
88
|
-
# check if the given category is found
|
89
|
-
con_search = !category_roi.displayed?
|
90
|
-
if con_search
|
91
|
-
if category_label != saved_label
|
92
|
-
con_search = !category_label.include?(category_given)
|
93
|
-
dut.press_key.ARROW_DOWN(:sleep_time => 3.sec)
|
94
|
-
saved_label = category_label
|
95
|
-
else
|
96
|
-
result = false
|
97
|
-
con_search = false
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
102
|
-
# Public: This function will format the episode and season information
|
103
|
-
#
|
104
|
-
# epi_num - info extarcted from screen
|
105
|
-
#
|
106
|
-
# Returns episode and season info .
|
107
|
-
def epinfo_format(epi_num)
|
108
|
-
epi_num=epi_num.to_s
|
109
|
-
loginfo"inside epinfo_format code"+epi_num
|
110
|
-
epi_num=epi_num.gsub("i","1")
|
111
|
-
epi_num=epi_num.gsub("I","1")
|
112
|
-
epi_num=epi_num.gsub("l","1")
|
113
|
-
epi_num=epi_num.gsub(" ","")
|
114
|
-
ind1=epi_num.index("(")
|
115
|
-
ind2=epi_num.index(")")
|
116
|
-
epi_num=epi_num[ind1+1..ind2-1]
|
117
|
-
inde=epi_num.index("E")
|
118
|
-
if inde==nil
|
119
|
-
loginfo"episode index nil"
|
120
|
-
season=epi_num.delete("^0-9\s")
|
121
|
-
episode="NA"
|
122
|
-
|
123
|
-
else
|
124
|
-
season=epi_num[0..inde-1]
|
125
|
-
if !season.include?("S")
|
126
|
-
season="S"+season[1..-1]
|
127
|
-
end
|
128
|
-
season=season.delete("^0-9\s")
|
129
|
-
#chars=["51","52","53","54,","55","56","57","58","59"]
|
130
|
-
#chars.each do |ele|
|
131
|
-
#if ele==season
|
132
|
-
# season=season.sub("5","")
|
133
|
-
#end
|
134
|
-
#end
|
135
|
-
episode=epi_num[inde+1..ind2-1]
|
136
|
-
end
|
137
|
-
loginfo " season number is "+season
|
138
|
-
loginfo"episode number is "+episode
|
139
|
-
return season,episode
|
140
|
-
end
|
141
|
-
# Public: extract information of an episode in tv shows.
|
142
|
-
#
|
143
|
-
# Args:
|
144
|
-
# pbox: poster art box of an asset. It is used to check if the asset
|
145
|
-
# has a poster art present. default:
|
146
|
-
# {:x=>121,:y=>498,:width=>210,:height=>122}
|
147
|
-
#
|
148
|
-
# tbox: A rectangle used to retrieve the asset title. default:
|
149
|
-
# {:x=>454,:y=>145,:width=>1380,:height=>144}
|
150
|
-
#
|
151
|
-
# bbox: A rectangle used to retrieve the BROWSE EPISODES button.
|
152
|
-
# default:
|
153
|
-
# {:x=>480,:y=>551,:width=>1044,:height=>514}
|
154
|
-
#
|
155
|
-
# abox: A rectangle used to retrieve "Available" on the page after click
|
156
|
-
# OK on asset page. default:
|
157
|
-
# {:x=>604,:y=>400,:width=>698,:height=>180}
|
158
|
-
#
|
159
|
-
#
|
160
|
-
# Note:
|
161
|
-
# All box should contain ':x', ':y', ':width', and ':height'
|
162
|
-
#
|
163
|
-
# Returns Hash. An hash for an asset information, which consists of
|
164
|
-
# the following factors:
|
165
|
-
# asset_info = {
|
166
|
-
# :poster=>nil,
|
167
|
-
# :title=>nil,
|
168
|
-
# :viewoption=>nil
|
169
|
-
# }
|
170
|
-
def vod_tvshows_assetinfo_extract(args={})
|
171
|
-
# set default return and parameters
|
172
|
-
asset_info = {
|
173
|
-
:poster=>nil,
|
174
|
-
:title=>nil,
|
175
|
-
:viewoption=>nil
|
176
|
-
}
|
177
|
-
poster_box = {:x=>121,:y=>498,:width=>210,:height=>122}
|
178
|
-
title_box = {:x=>454,:y=>145,:width=>1380,:height=>144}
|
179
|
-
browse_box = {:x=>480,:y=>551,:width=>1044,:height=>514}
|
180
|
-
# used to check if page goes to episode availability after press OK on asset page
|
181
|
-
avail_box = {:x=>604,:y=>400,:width=>698,:height=>180}
|
182
|
-
|
183
|
-
# get required parameters
|
184
|
-
if ! args.any?
|
185
|
-
loginfo "Function 'vod_tvshows_assetinfo_extract' uses default settings."
|
186
|
-
else
|
187
|
-
if args.include?(:pbox)
|
188
|
-
poster_box = args[:pbox]
|
189
|
-
end
|
190
|
-
if args.include?(:tbox)
|
191
|
-
title_box = args[:tbox]
|
192
|
-
end
|
193
|
-
if args.include?(:bbox)
|
194
|
-
browse_box = args[:bbox]
|
195
|
-
end
|
196
|
-
if args.include?(:abox)
|
197
|
-
avail_box = args[:abox]
|
198
|
-
end
|
199
|
-
end
|
200
|
-
|
201
|
-
# check if each box is valid
|
202
|
-
boxes = [poster_box, title_box, browse_box, avail_box]
|
203
|
-
boxes.each {|bx|
|
204
|
-
if ! dut.screens.tv_shows.is_a_box(:box=>bx)
|
205
|
-
return asset_info
|
206
|
-
end
|
207
|
-
}
|
208
|
-
|
209
|
-
# check if current page is episode availability page.
|
210
|
-
# If it is, click last to be back to asset page
|
211
|
-
avail_text = dut.screens.tv_shows.text_in_box(:box=>avail_box)
|
212
|
-
if avail_text.include?("Watch")
|
213
|
-
dut.press_key('last', :sleep_time=>5.sec)
|
214
|
-
end
|
215
|
-
# update asset information
|
216
|
-
|
217
|
-
# check if poster is there or not
|
218
|
-
background = dut.roi.black.new(:rectangle=>poster_box)
|
219
|
-
if background.displayed?
|
220
|
-
asset_info[:poster] = "NA"
|
221
|
-
else
|
222
|
-
asset_info[:poster] = "PRESENT"
|
223
|
-
end
|
224
|
-
# extract the title
|
225
|
-
title = dut.screens.tv_shows.text_in_box(:box=>title_box)
|
226
|
-
if ! title.nil?
|
227
|
-
title = title.delete("^A-Za-z0-9\s")
|
228
|
-
end
|
229
|
-
asset_info[:title] = title
|
230
|
-
|
231
|
-
browse_text = dut.screens.tv_shows.text_in_box(:box=>browse_box)
|
232
|
-
if ! browse_text.nil?
|
233
|
-
browse_text = browse_text.delete("^A-Za-z0-9\s")
|
234
|
-
end
|
235
|
-
if browse_text.include?("ROW")
|
236
|
-
asset_info[:viewoption] = "BROWSE EPISODES"
|
237
|
-
elsif browse_text.include?("ATC")
|
238
|
-
asset_info[:viewoption] = "WATCH"
|
239
|
-
else
|
240
|
-
asset_info[:viewoption] = "NA"
|
241
|
-
end
|
242
|
-
return asset_info
|
243
|
-
end
|
244
|
-
# Public: extract provider and category of tv shows.
|
245
|
-
#
|
246
|
-
# Args:
|
247
|
-
# pbox: provider box. default:
|
248
|
-
# {:x=>42,:y=>334,:width=>593,:height=>117}
|
249
|
-
#
|
250
|
-
# cbox: A rectangle used to retrieve the category. default:
|
251
|
-
# {:x=>92,:y=>443,:width=>267,:height=>380}
|
252
|
-
#
|
253
|
-
# Note:
|
254
|
-
# All box should contain ':x', ':y', ':width', and ':height'
|
255
|
-
#
|
256
|
-
# Returns String. Provider + category if available
|
257
|
-
def vod_tvshows_category_extract(args={})
|
258
|
-
# set default return and parameters
|
259
|
-
result = ""
|
260
|
-
# pbox: a rectangle to retrieve provider
|
261
|
-
pbox = {:x=>42,:y=>334,:width=>593,:height=>117}
|
262
|
-
# cbox: a rectangle to retrieve category
|
263
|
-
cbox = {:x=>92,:y=>443,:width=>267,:height=>380}
|
264
|
-
# get required parameters
|
265
|
-
if ! args.any?
|
266
|
-
loginfo "'vod_tvshows_category_extract' uses default settings."
|
267
|
-
else
|
268
|
-
if args.include?(:pbox)
|
269
|
-
pbox = args[:pbox]
|
270
|
-
end
|
271
|
-
if args.include?(:cbox)
|
272
|
-
cbox = args[:cbox]
|
273
|
-
end
|
274
|
-
end
|
275
|
-
|
276
|
-
# check if each box is valid
|
277
|
-
boxes = [pbox, cbox]
|
278
|
-
boxes.each {|bx|
|
279
|
-
if ! dut.screens.library.is_a_box(:box=>bx)
|
280
|
-
return result
|
281
|
-
end
|
282
|
-
}
|
283
|
-
# retrieve providers and category
|
284
|
-
provider = dut.screens.library.text_in_box(:box=>pbox)
|
285
|
-
# remove special chars.
|
286
|
-
if (! provider.empty?) and (! provider.nil?)
|
287
|
-
loc = provider.include?("(") ? provider.index("(") : -1
|
288
|
-
if loc == 0
|
289
|
-
provider = "NA"
|
290
|
-
elsif loc > 0
|
291
|
-
provider = provider[0..loc-1].rstrip
|
292
|
-
end
|
293
|
-
else
|
294
|
-
provider = "NA"
|
295
|
-
end
|
296
|
-
# check if the first asset is a banner or a category.
|
297
|
-
category = ""
|
298
|
-
category_check = dut.screens.library.if_box_color(:similarity=>95)
|
299
|
-
if category_check.nil?
|
300
|
-
raise Exception.new("Somnething wrong when checking color.")
|
301
|
-
end
|
302
|
-
if category_check
|
303
|
-
category = dut.screens.library.text_in_box(:box=>cbox)
|
304
|
-
end
|
305
|
-
# remove special chars.
|
306
|
-
if (! category.nil?) and (! category.empty?)
|
307
|
-
category = category.delete("()0-9")
|
308
|
-
end
|
309
|
-
# concat provider and category with "/"
|
310
|
-
if (! category.nil?) and (! category.empty?)
|
311
|
-
result = provider + "/"+ category
|
312
|
-
else
|
313
|
-
result = provider
|
314
|
-
end
|
315
|
-
|
316
|
-
return result
|
317
|
-
|
318
|
-
end
|
319
|
-
# Public: extract aaset information for asset page in tv shows.
|
320
|
-
#
|
321
|
-
# Args:
|
322
|
-
# nassets: Integer. The number of assets on a row. default: 7
|
323
|
-
# option : Integer. 1 = 'continuity', 0 = 'audit'. default: 0
|
324
|
-
#
|
325
|
-
# Notes:
|
326
|
-
# This function needs to be called on all asset page, maybe just
|
327
|
-
# under the category page if it exists, or just the page under
|
328
|
-
# provider page if the category page does not exist.
|
329
|
-
#
|
330
|
-
# Returns Integer. The number of assets extracted
|
331
|
-
def vod_tvshow_assets_extract(args={})
|
332
|
-
|
333
|
-
# default number of assets per row
|
334
|
-
nassets = 7
|
335
|
-
option = 0
|
336
|
-
# get required parameters
|
337
|
-
if ! args.any?
|
338
|
-
loginfo "Function 'vod_tvshow_assets_extract' uses default settings."
|
339
|
-
else
|
340
|
-
if args.include?(:nassets)
|
341
|
-
nassets = args[:nassets]
|
342
|
-
end
|
343
|
-
if args.include?(:option)
|
344
|
-
option = args[:option]
|
345
|
-
end
|
346
|
-
end
|
347
|
-
# validate nassets
|
348
|
-
if !nassets.is_a?(Integer)
|
349
|
-
raise ArgumentError.new("'nassets' should be an integer.")
|
350
|
-
end
|
351
|
-
# get the number of rows and number of colums of last row
|
352
|
-
nrows = dut.screens.library.count_assets_one_dir(:nassets=>1,:similarity=>85)
|
353
|
-
ncols_last_row = dut.screens.library.count_assets_one_dir(:nassets=>1,:nav_key=>"right_arrow", :similarity=>85) + 1
|
354
|
-
loginfo "On asset page, there are #{nrows} rows and #{ncols_last_row} cols on last row."
|
355
|
-
# go back to all assets page under a category
|
356
|
-
dut.press_key('last', :sleep_time=>5.sec)
|
357
|
-
dut.press_key('select', :sleep_time=>5.sec)
|
358
|
-
|
359
|
-
# the number of assets scanned
|
360
|
-
ncount = 0
|
361
|
-
# loop for each row
|
362
|
-
col_nav_key = "right_arrow"
|
363
|
-
(0..nrows).each {|row|
|
364
|
-
col_nav_key = row%2==1 ? "left_arrow" : "right_arrow"
|
365
|
-
# for the last row of assets
|
366
|
-
if (row == nrows) and (ncols_last_row > 0)
|
367
|
-
nassets = ncols_last_row
|
368
|
-
end
|
369
|
-
|
370
|
-
ntmp = dut.screens.tv_shows.vod_tvshow_assets_extract_one_row(:nav_key=>col_nav_key, :nassets=>nassets, :option=>option) rescue ntmp=0
|
371
|
-
ncount += ntmp
|
372
|
-
# got to next row.
|
373
|
-
if row < nrows
|
374
|
-
dut.press_key('down_arrow', :sleep_time=>5.sec)
|
375
|
-
end
|
376
|
-
|
377
|
-
}
|
378
|
-
|
379
|
-
return ncount
|
380
|
-
|
381
|
-
end
|
382
|
-
|
383
|
-
# Public: check if a given rectangle area is valid which should contain ':x', ':y', ':width', and ':height'
|
384
|
-
#
|
385
|
-
# Args:
|
386
|
-
# box: Hash. It should contain ':x', ':y', ':width', and ':height'
|
387
|
-
#
|
388
|
-
# Returns Bool. If invalid, return false, otherwise return true
|
389
|
-
def is_a_box(args={})
|
390
|
-
# get required parameters
|
391
|
-
if ! args.any?
|
392
|
-
loginfo "Invalid parameters, should have ':box'"
|
393
|
-
return false
|
394
|
-
else
|
395
|
-
if args.include?(:box)
|
396
|
-
box = args[:box]
|
397
|
-
else
|
398
|
-
return false
|
399
|
-
end
|
400
|
-
end
|
401
|
-
# check given area
|
402
|
-
if !box.is_a?(Hash)
|
403
|
-
return false
|
404
|
-
end
|
405
|
-
if !(box.include?(:x) and box.include?(:y) and box.include?(:width) and box.include?(:height))
|
406
|
-
loginfo "Invalid box format, which must set ':x', ':y', ':width', and ':height'"
|
407
|
-
return false
|
408
|
-
end
|
409
|
-
return true
|
410
|
-
end
|
411
|
-
# Public: Check if a given box is black.
|
412
|
-
#
|
413
|
-
# Args:
|
414
|
-
# box:
|
415
|
-
# the rectangle area used to check if it is black
|
416
|
-
# {:x=>112,:y=>702,:width=>234,:height=>112}
|
417
|
-
# similarity: Integer color similarity threshold 0 - 100 (default: 90).
|
418
|
-
#
|
419
|
-
# Returns Bool. true if the box is black, otherwise false
|
420
|
-
# nil if the given 'box' or 'similarity' is invalid.
|
421
|
-
def if_box_black(args={})
|
422
|
-
# set default return and parameters
|
423
|
-
result = nil
|
424
|
-
|
425
|
-
# box: a rectangle to check if it fills with banner
|
426
|
-
box = {:x=>112,:y=>702,:width=>234,:height=>112}
|
427
|
-
similarity = 90
|
428
|
-
|
429
|
-
# get required parameters
|
430
|
-
if ! args.any?
|
431
|
-
loginfo "Function 'if_box_black' uses default settings."
|
432
|
-
else
|
433
|
-
if args.include?(:box)
|
434
|
-
box = args[:box]
|
435
|
-
end
|
436
|
-
if args.include?(:similarity)
|
437
|
-
similarity = args[:similarity]
|
438
|
-
end
|
439
|
-
end
|
440
|
-
|
441
|
-
# check if each box is valid
|
442
|
-
if ! dut.screens.tv_shows.is_a_box(:box=>box)
|
443
|
-
return result
|
444
|
-
end
|
445
|
-
# validate similarity
|
446
|
-
if ! (similarity.is_a?(Integer) and similarity>=0 and similarity<=100)
|
447
|
-
return result
|
448
|
-
end
|
449
|
-
# check if poster is there or not
|
450
|
-
background = dut.roi.black.new(:rectangle=>box, :blackness=>similarity)
|
451
|
-
if background.displayed?
|
452
|
-
result = true
|
453
|
-
else
|
454
|
-
result = false
|
455
|
-
end
|
456
|
-
return result
|
457
|
-
end
|
458
|
-
# Public: Check if a given box matches the given rgb color.
|
459
|
-
#
|
460
|
-
# Args:
|
461
|
-
# box:
|
462
|
-
# the rectangle area used to check if it fills with a banner
|
463
|
-
# {:x=>163,:y=>768,:width=>125,:height=>74}
|
464
|
-
# rgb: Integer Array of 3 values (0 - 255) for red, green, blue (default: [0,41,61]).
|
465
|
-
# similarity: Integer color similarity threshold 0 - 100 (default: 90).
|
466
|
-
#
|
467
|
-
# Returns Bool. true if the box is black, otherwise false
|
468
|
-
# nil if the given 'box' or 'rgb' or 'similarity' is invalid
|
469
|
-
def if_box_color(args={})
|
470
|
-
# set default return and parameters
|
471
|
-
result = nil
|
472
|
-
# box: a rectangle to check if it fills with a banner
|
473
|
-
box = {:x=>163,:y=>768,:width=>125,:height=>74}
|
474
|
-
rgb = [0,41,61]
|
475
|
-
similarity = 90
|
476
|
-
# get required parameters
|
477
|
-
if ! args.any?
|
478
|
-
loginfo "Function 'if_box_color' uses default settings."
|
479
|
-
else
|
480
|
-
if args.include?(:box)
|
481
|
-
box = args[:box]
|
482
|
-
end
|
483
|
-
if args.include?(:rgb)
|
484
|
-
rgb = args[:rgb]
|
485
|
-
end
|
486
|
-
if args.include?(:similarity)
|
487
|
-
similarity = args[:similarity]
|
488
|
-
end
|
489
|
-
end
|
490
|
-
|
491
|
-
# check if each box is valid
|
492
|
-
if ! dut.screens.tv_shows.is_a_box(:box=>box)
|
493
|
-
return result
|
494
|
-
end
|
495
|
-
# check if 'rgb' is valid
|
496
|
-
if ! dut.screens.tv_shows.rgb_validate(:rgb=>rgb)
|
497
|
-
return result
|
498
|
-
end
|
499
|
-
# validate similarity
|
500
|
-
if ! (similarity.is_a?(Integer) and similarity>=0 and similarity<=100)
|
501
|
-
return result
|
502
|
-
end
|
503
|
-
# check if poster is there or not
|
504
|
-
background = dut.roi.color.new(:rectangle=>box, :rgb=>rgb, :similarity=>similarity)
|
505
|
-
if background.displayed?
|
506
|
-
result = true
|
507
|
-
else
|
508
|
-
result = false
|
509
|
-
end
|
510
|
-
return result
|
511
|
-
end
|
512
|
-
# Public: Check if a given text is in a given box.
|
513
|
-
#
|
514
|
-
# Args:
|
515
|
-
# box: Hash.
|
516
|
-
# the rectangle area used to check if the
|
517
|
-
# given text is in the box. default:
|
518
|
-
# {:x=>63, :y=>355, :width=>308, :height=>691}
|
519
|
-
#
|
520
|
-
# text: String. The given string to be checked
|
521
|
-
#
|
522
|
-
# Returns Bool. If the given text is in the given area, return true,
|
523
|
-
# otherwise, return false
|
524
|
-
def include_in_box(args={})
|
525
|
-
# set default parameters
|
526
|
-
box={:x=>63, :y=>355, :width=>308, :height=>691}
|
527
|
-
text=""
|
528
|
-
|
529
|
-
# get required parameters
|
530
|
-
if ! args.any?
|
531
|
-
loginfo "Function 'include_in_box' uses default settings."
|
532
|
-
return false
|
533
|
-
else
|
534
|
-
if args.include?(:text)
|
535
|
-
text = args[:text]
|
536
|
-
end
|
537
|
-
if args.include?(:box)
|
538
|
-
box = args[:box]
|
539
|
-
end
|
540
|
-
end
|
541
|
-
# check the given text
|
542
|
-
if !(text.is_a?(String) and (!text.empty?))
|
543
|
-
loginfo("'text' must be non-empty string.")
|
544
|
-
return false
|
545
|
-
end
|
546
|
-
# check given box
|
547
|
-
if ! dut.screens.tv_shows.is_a_box(:box=>box)
|
548
|
-
return false
|
549
|
-
end
|
550
|
-
# create a text roi
|
551
|
-
text_roi = dut.roi.text.new(:rectangle=>box)
|
552
|
-
retrieved_text = text_roi.retrieve
|
553
|
-
return retrieved_text.include?(text)
|
554
|
-
end
|
555
|
-
# Public: Retrieve text in a given box.
|
556
|
-
#
|
557
|
-
# Args:
|
558
|
-
# box: Hash.
|
559
|
-
# the rectangle area used to retrieve contained text.
|
560
|
-
# default:
|
561
|
-
# {:x=>63, :y=>355, :width=>308, :height=>691}
|
562
|
-
# preprocessing: Integer or Integer Array of preprocessing options (default: 9).
|
563
|
-
# similarity: Integer text similarity threshold 0 - 100 (default: 70).
|
564
|
-
#
|
565
|
-
# Returns String. The text in a given box
|
566
|
-
def text_in_box(args={})
|
567
|
-
# set default parameters
|
568
|
-
box={:x=>63, :y=>355, :width=>308, :height=>691}
|
569
|
-
similarity = 70
|
570
|
-
preprocessing = 8
|
571
|
-
# get required parameters
|
572
|
-
if ! args.any?
|
573
|
-
loginfo "Function 'text_in_box' uses default settings."
|
574
|
-
return ""
|
575
|
-
else
|
576
|
-
if args.include?(:box)
|
577
|
-
box = args[:box]
|
578
|
-
end
|
579
|
-
if args.include?(:similarity)
|
580
|
-
similarity = args[:similarity]
|
581
|
-
end
|
582
|
-
if args.include?(:preprocessing)
|
583
|
-
preprocessing = args[:preprocessing]
|
584
|
-
end
|
585
|
-
end
|
586
|
-
# check given box
|
587
|
-
if ! dut.screens.tv_shows.is_a_box(:box=>box)
|
588
|
-
return ""
|
589
|
-
end
|
590
|
-
# create a text roi
|
591
|
-
sleep 5.sec
|
592
|
-
text_roi = dut.roi.text.new(:rectangle=>box, :preprocessing=>preprocessing, :similarity=>similarity)
|
593
|
-
retrieved_text = text_roi.retrieve.gsub(/[^[:print:]]/i, " ") rescue retrieved_text = ""
|
594
|
-
retrieved_text = dut.screens.tv_shows.rm_spaces(:raw_str=>retrieved_text)
|
595
|
-
return retrieved_text
|
596
|
-
end
|
597
|
-
# Public: Check if a given rgb is valid.
|
598
|
-
#
|
599
|
-
# Args:
|
600
|
-
# rgb: Integer Array of 3 values (0 - 255) for red, green, blue.
|
601
|
-
#
|
602
|
-
# Returns Bool. true if rgb meets the requirement, otherwise false
|
603
|
-
def rgb_validate(args={})
|
604
|
-
# get required parameters
|
605
|
-
if ! args.any?
|
606
|
-
loginfo "Function 'rgb_validate' uses default settings."
|
607
|
-
return false
|
608
|
-
else
|
609
|
-
if args.include?(:rgb)
|
610
|
-
rgb = args[:rgb]
|
611
|
-
end
|
612
|
-
end
|
613
|
-
|
614
|
-
# check if 'rgb' is valid
|
615
|
-
if ! rgb.is_a?(Array)
|
616
|
-
loginfo "Given ':rgb' should be an array with 3 integers from 0-255."
|
617
|
-
return false
|
618
|
-
else
|
619
|
-
if rgb.length != 3
|
620
|
-
loginfo "Given ':rgb' should be an array with 3 integers from 0-255."
|
621
|
-
return false
|
622
|
-
else
|
623
|
-
rgb.each{|aa|
|
624
|
-
if ! aa.is_a?(Integer)
|
625
|
-
loginfo "Given ':rgb' should be an array with 3 integers from 0-255."
|
626
|
-
return false
|
627
|
-
else
|
628
|
-
if aa<0 or aa>255
|
629
|
-
loginfo "Given ':rgb' should be an array with 3 integers from 0-255."
|
630
|
-
return false
|
631
|
-
end
|
632
|
-
end
|
633
|
-
}
|
634
|
-
end
|
635
|
-
end
|
636
|
-
return true
|
637
|
-
end
|
638
|
-
|
639
|
-
# Public: Count the number of assets in an asset page along one direction.
|
640
|
-
#
|
641
|
-
# Args:
|
642
|
-
# nav_key: the navigation key pressed for counting. It must one
|
643
|
-
# of the navigation keys. default: "down_arrow"
|
644
|
-
# box:
|
645
|
-
# the rectangle area used to check if the
|
646
|
-
# image in the area changes as a key is pressed. If not
|
647
|
-
# changing, it means we are already at the buttom. default:
|
648
|
-
# {:x=>75,:y=>439,:width=>1700,:height=>622}
|
649
|
-
#
|
650
|
-
# nassets: integer. It's the number of assets passed
|
651
|
-
# when pressing the given key each time. default: 7
|
652
|
-
#
|
653
|
-
# similarity: integer.
|
654
|
-
#
|
655
|
-
# Notes:
|
656
|
-
# When counting vertically from row 0, it returns the number of assets
|
657
|
-
# where every row is fully filled. When counting horizontally from
|
658
|
-
# column 0 and set nassets 1 and set the box cover the whole row, it
|
659
|
-
#
|
660
|
-
# Returns Integer. The number of assets counted when can not move.
|
661
|
-
# nil if the given 'nassets' is not an integer or 'box' is invalid
|
662
|
-
def count_assets_one_dir(args={})
|
663
|
-
# set default parameters
|
664
|
-
nav_key="down_arrow"
|
665
|
-
box={:x=>75,:y=>439,:width=>1700,:height=>622}
|
666
|
-
nassets=7
|
667
|
-
similarity=95
|
668
|
-
|
669
|
-
# get required parameters
|
670
|
-
if ! args.any?
|
671
|
-
loginfo "Function 'count_assets_one_dir' uses default settings."
|
672
|
-
else
|
673
|
-
if args.include?(:nav_key)
|
674
|
-
nav_key = args[:nav_key]
|
675
|
-
end
|
676
|
-
if args.include?(:box)
|
677
|
-
box = args[:box]
|
678
|
-
end
|
679
|
-
if args.include?(:nassets)
|
680
|
-
nassets = args[:nassets]
|
681
|
-
end
|
682
|
-
if args.include?(:similarity)
|
683
|
-
similarity = args[:similarity]
|
684
|
-
end
|
685
|
-
end
|
686
|
-
# check given area
|
687
|
-
if !dut.screens.tv_shows.is_a_box(:box=>box)
|
688
|
-
raise ArgumentError.new("'box' is invalid.")
|
689
|
-
end
|
690
|
-
# check if nassets is an integer
|
691
|
-
if !nassets.is_a?(Integer)
|
692
|
-
raise ArgumentError.new("'nassets' should be an integer.")
|
693
|
-
end
|
694
|
-
|
695
|
-
# check if similarity is an integer
|
696
|
-
if !similarity.is_a?(Integer)
|
697
|
-
raise ArgumentError.new("'similarity' should be an integer.")
|
698
|
-
end
|
699
|
-
# count the number of time the key is pressed
|
700
|
-
ncount = 0
|
701
|
-
con_check = true
|
702
|
-
img_args = {
|
703
|
-
:rectangle=>box,
|
704
|
-
:similarity=>similarity,
|
705
|
-
:img_x=>box[:x],
|
706
|
-
:img_y=>box[:y],
|
707
|
-
:img_width=>box[:width],
|
708
|
-
:img_height=>box[:height]
|
709
|
-
}
|
710
|
-
while con_check do
|
711
|
-
snap_img = dut.capture_screen
|
712
|
-
img_args[:ref_img] = snap_img
|
713
|
-
dut.press_key(nav_key, :sleep_time=>5.sec)
|
714
|
-
check_img = dut.roi.image.new(img_args)
|
715
|
-
con_check = !check_img.displayed?
|
716
|
-
if con_check
|
717
|
-
ncount = ncount + 1
|
718
|
-
end
|
719
|
-
end
|
720
|
-
result = ncount*nassets
|
721
|
-
return result
|
722
|
-
end
|
723
|
-
# Public: extract aaset information for a given row in tv shows.
|
724
|
-
#
|
725
|
-
# Args:
|
726
|
-
# nassets: Integer. The number of assets on a row. default: 7
|
727
|
-
# nav_key: String. The navigation key used to move to next asset.
|
728
|
-
# option : Integer. 1 = 'continuity', 0 = 'audit'. default: 0
|
729
|
-
#
|
730
|
-
# Notes:
|
731
|
-
# This function needs to be called on all asset page, maybe just
|
732
|
-
# under the category page if it exists, or just the page under
|
733
|
-
# provider page if the category page does not exist.
|
734
|
-
#
|
735
|
-
# Returns Integer. The number of assets extracted.
|
736
|
-
def vod_tvshow_assets_extract_one_row(args={})
|
737
|
-
|
738
|
-
# default number of assets per row
|
739
|
-
nassets = 7
|
740
|
-
nav_key = "right_arrow"
|
741
|
-
option = 0
|
742
|
-
# get required parameters
|
743
|
-
if ! args.any?
|
744
|
-
loginfo "Function 'vod_tvshow_assets_extract_one_row' uses default settings."
|
745
|
-
else
|
746
|
-
if args.include?(:nassets)
|
747
|
-
nassets = args[:nassets]
|
748
|
-
end
|
749
|
-
if args.include?(:nav_key)
|
750
|
-
nav_key = args[:nav_key]
|
751
|
-
end
|
752
|
-
if args.include?(:option)
|
753
|
-
option = args[:option]
|
754
|
-
end
|
755
|
-
end
|
756
|
-
# validate nassets
|
757
|
-
if (!nassets.is_a?(Integer)) or (nassets<1)
|
758
|
-
loginfo "'nassets' should be a positive integer."
|
759
|
-
return 0
|
760
|
-
end
|
761
|
-
# validate the given nav_key
|
762
|
-
if (! nav_key.is_a?(String)) or (! ['right_arrow', 'left_arrow'].include?(nav_key))
|
763
|
-
loginfo "'nav_key' can only be one of ['right_arrow', 'left_arrow']."
|
764
|
-
return 0
|
765
|
-
end
|
766
|
-
# validate option
|
767
|
-
if ! [0,1].include?(option)
|
768
|
-
loginfo "'option' should be either 0 or 1."
|
769
|
-
return 0
|
770
|
-
end
|
771
|
-
# count the number of assets scanned
|
772
|
-
ncount = 0
|
773
|
-
|
774
|
-
# used to check if page goes to episode availability after press OK on asset page
|
775
|
-
avail_box = {:x=>604,:y=>400,:width=>698,:height=>180}
|
776
|
-
(1..nassets).each { |ii|
|
777
|
-
loginfo "Processing Asset #{ii}"
|
778
|
-
# extract one asset info
|
779
|
-
dut.press_key('select', :sleep_time=>5.sec)
|
780
|
-
asset_info = dut.screens.tv_shows.vod_tvshows_assetinfo_extract()
|
781
|
-
episode_info = []
|
782
|
-
# if have "BROWSE EPISODES"
|
783
|
-
if asset_info[:viewoption].include?("BROWSE")
|
784
|
-
# go to episode page
|
785
|
-
dut.press_key('select', :sleep_time=>5.sec)
|
786
|
-
# check if current page is episode availability page after click OK on asset page
|
787
|
-
avail_text = dut.screens.tv_shows.text_in_box(:box=>avail_box)
|
788
|
-
# if current page is still asset, click OK to go to availability page
|
789
|
-
if ! avail_text.include?("Watch")
|
790
|
-
dut.press_key('select', :sleep_time=>5.sec)
|
791
|
-
end
|
792
|
-
# Todo, will add Parental Pin Lock/Onedemand PIN /Purchase Pin handling
|
793
|
-
dut.press_key('select', :sleep_time=>5.sec)
|
794
|
-
# extract episode info
|
795
|
-
episode_info = dut.screens.tv_shows.vod_tvshows_epinfo_extract() rescue episode_info=[]
|
796
|
-
# go back to the asset page
|
797
|
-
dut.press_key('last', :sleep_time=>5.sec)
|
798
|
-
|
799
|
-
# check if current page is episode availability page after click LAST on episode page
|
800
|
-
avail_text = dut.screens.tv_shows.text_in_box(:box=>avail_box)
|
801
|
-
# if current page is for availability, click LAST one more time to go to asset page
|
802
|
-
if avail_text.include?("Watch")
|
803
|
-
dut.press_key('last', :sleep_time=>5.sec)
|
804
|
-
end
|
805
|
-
end
|
806
|
-
# report result to twb
|
807
|
-
if option==0
|
808
|
-
dut.screens.tv_shows.vod_tvshows_assets_info_format(:asset_info=>asset_info, :episode_info=>episode_info) rescue loginfo "Asset #{ii} formatting failed."
|
809
|
-
elsif option==1
|
810
|
-
dut.screens.tv_shows.vod_tvshows_assets_info_missing_format(:asset_info=>asset_info, :episode_info=>episode_info) rescue loginfo "Asset #{ii} formatting failed."
|
811
|
-
end
|
812
|
-
|
813
|
-
# go back to all assets page
|
814
|
-
dut.press_key('last', :sleep_time=>5.sec)
|
815
|
-
# move to next asset
|
816
|
-
if ii < nassets
|
817
|
-
dut.press_key(nav_key, :sleep_time=>5.sec)
|
818
|
-
end
|
819
|
-
# update ncount
|
820
|
-
ncount += 1
|
821
|
-
}
|
822
|
-
return ncount
|
823
|
-
end
|
824
|
-
# Public: Remove spaces in a given string.
|
825
|
-
#
|
826
|
-
# Args:
|
827
|
-
# raw_str: String. The raw string requiring space removing
|
828
|
-
# pattn:
|
829
|
-
#
|
830
|
-
# Returns String. A string with space removed or nil if no raw string is given.
|
831
|
-
def rm_spaces(args={})
|
832
|
-
raw_str = nil
|
833
|
-
# get required parameters
|
834
|
-
if ! args.any?
|
835
|
-
loginfo "Require a string."
|
836
|
-
return
|
837
|
-
else
|
838
|
-
if args.include?(:raw_str)
|
839
|
-
raw_str = args[:raw_str]
|
840
|
-
end
|
841
|
-
end
|
842
|
-
# remove spaces
|
843
|
-
raw_str = raw_str.gsub(/\s+/," ").strip
|
844
|
-
return raw_str
|
845
|
-
end
|
846
|
-
# Public: Check if the current page is for category
|
847
|
-
#
|
848
|
-
# Args:
|
849
|
-
# box1:
|
850
|
-
# the rectangle area used to check if the
|
851
|
-
# image in the area changes as a key is pressed. If not
|
852
|
-
# changing, it means we are already at the right. default:
|
853
|
-
# {:x=>75,:y=>439,:width=>1700,:height=>622}
|
854
|
-
# similarity: integer.
|
855
|
-
# box2:
|
856
|
-
# the rectangle area used to check if it fills with a banner
|
857
|
-
# {:x=>163,:y=>768,:width=>125,:height=>74}
|
858
|
-
#
|
859
|
-
# rgb: Integer Array of 3 values (0 - 255) for red, green, blue (default: [0,41,61]).
|
860
|
-
#
|
861
|
-
# bwidth: Integer. Banner width in pixels. default: 230 pixels
|
862
|
-
#
|
863
|
-
# Returns Boolean. true if it's category page, false otherwise
|
864
|
-
def vod_tvshows_category_check(args={})
|
865
|
-
# set default parameters
|
866
|
-
similarity=95
|
867
|
-
box1={:x=>75,:y=>439,:width=>1700,:height=>622}
|
868
|
-
bwidth=230
|
869
|
-
|
870
|
-
# box: a rectangle to check if it fills with banner
|
871
|
-
box2 = {:x=>163,:y=>768,:width=>125,:height=>74}
|
872
|
-
rgb = [0,41,61]
|
873
|
-
|
874
|
-
# get required parameters
|
875
|
-
if ! args.any?
|
876
|
-
loginfo "Function 'vod_tvshows_category_check' uses default settings."
|
877
|
-
else
|
878
|
-
if args.include?(:box1)
|
879
|
-
box1 = args[:box1]
|
880
|
-
end
|
881
|
-
if args.include?(:box2)
|
882
|
-
box2 = args[:box2]
|
883
|
-
end
|
884
|
-
if args.include?(:similarity)
|
885
|
-
similarity = args[:similarity]
|
886
|
-
end
|
887
|
-
if args.include?(:rgb)
|
888
|
-
rgb = args[:rgb]
|
889
|
-
end
|
890
|
-
if args.include?(:bwidth)
|
891
|
-
bwidth = args[:bwidth]
|
892
|
-
end
|
893
|
-
end
|
894
|
-
# check given area
|
895
|
-
if !dut.screens.tv_shows.is_a_box(:box=>box1)
|
896
|
-
raise ArgumentError.new("Invalid rectangle given.")
|
897
|
-
end
|
898
|
-
# validate similarity
|
899
|
-
if ! (bwidth.is_a?(Integer) and bwidth>=0)
|
900
|
-
raise ArgumentError.new("Asset width should be positive inetger.")
|
901
|
-
end
|
902
|
-
|
903
|
-
# check if any asset in a row is a category
|
904
|
-
result = true
|
905
|
-
con_check = true
|
906
|
-
img_args = {
|
907
|
-
:rectangle=>box1,
|
908
|
-
:similarity=>similarity,
|
909
|
-
:img_x=>box1[:x],
|
910
|
-
:img_y=>box1[:y],
|
911
|
-
:img_width=>box1[:width],
|
912
|
-
:img_height=>box1[:height]
|
913
|
-
}
|
914
|
-
while con_check do
|
915
|
-
snap_img = dut.capture_screen
|
916
|
-
img_args[:ref_img] = snap_img
|
917
|
-
category_check = dut.screens.tv_shows.if_box_color(:similarity=>similarity, :box=>box2, :rgb=>rgb)
|
918
|
-
# check if any asset is not a category
|
919
|
-
if ! category_check
|
920
|
-
result = category_check
|
921
|
-
break
|
922
|
-
else
|
923
|
-
dut.press_key("right_arrow", :sleep_time=>5.sec)
|
924
|
-
check_img = dut.roi.image.new(img_args)
|
925
|
-
con_check = !check_img.displayed?
|
926
|
-
box2[:x] += bwidth
|
927
|
-
end
|
928
|
-
end
|
929
|
-
# make sure it goes back to the first asset
|
930
|
-
dut.press_key("last", :sleep_time=>5.sec)
|
931
|
-
dut.press_key("select", :sleep_time=>5.sec)
|
932
|
-
return result
|
933
|
-
|
934
|
-
end
|
935
|
-
# Public: check the missing episodes from test records, mainly from episode records.
|
936
|
-
#
|
937
|
-
# Args:
|
938
|
-
# records: test result from function 'vod_tvshow_assets_extract'. Basically, it's
|
939
|
-
# an Array. [number of episodes, hash for episode1, hash for episdeX...]
|
940
|
-
#
|
941
|
-
# Returns Hash. key = season number, value = list of missing episodes
|
942
|
-
def vod_tvshows_missing_episode_extract(args={})
|
943
|
-
result = {}
|
944
|
-
records = []
|
945
|
-
# get required parameters
|
946
|
-
if ! args.any?
|
947
|
-
raise Exception.new("No episode records given.")
|
948
|
-
else
|
949
|
-
if args.include?(:records)
|
950
|
-
records = args[:records]
|
951
|
-
end
|
952
|
-
end
|
953
|
-
if records.empty?
|
954
|
-
raise Exception.new("No episode records given.")
|
955
|
-
end
|
956
|
-
nepisodes = records[0]
|
957
|
-
data = {}
|
958
|
-
# convert episode info to hash, where season number is the key,
|
959
|
-
# and episode numbers are the value
|
960
|
-
records[1..-1].each{|rec|
|
961
|
-
begin
|
962
|
-
season = Float(rec[:season]).to_i
|
963
|
-
episode = Float(rec[:number]).to_i
|
964
|
-
rescue
|
965
|
-
next
|
966
|
-
end
|
967
|
-
if ! data.include?(season)
|
968
|
-
data[season] = [episode]
|
969
|
-
else
|
970
|
-
data[season].push(episode)
|
971
|
-
end
|
972
|
-
}
|
973
|
-
result = Hash[
|
974
|
-
data.map{|kkk,vvv|
|
975
|
-
# if ! (Float(kkk)!=nil rescue false)
|
976
|
-
# next
|
977
|
-
# end
|
978
|
-
# vvv = vvv.grep(Numeric)
|
979
|
-
if vvv.length > 1
|
980
|
-
minv = vvv.compact.min
|
981
|
-
maxv = vvv.compact.max
|
982
|
-
missing_episodes = []
|
983
|
-
loginfo "Min episode #{minv}, Max episode #{maxv}"
|
984
|
-
all_episodes = (minv..maxv).to_a
|
985
|
-
all_episodes.each {|vv|
|
986
|
-
if ! vvv.include?(vv)
|
987
|
-
missing_episodes.push(vv.to_s)
|
988
|
-
end
|
989
|
-
}
|
990
|
-
|
991
|
-
if ! missing_episodes.empty?
|
992
|
-
[kkk.to_s, missing_episodes]
|
993
|
-
end
|
994
|
-
|
995
|
-
end
|
996
|
-
}
|
997
|
-
]
|
998
|
-
return result
|
999
|
-
end
|
1000
|
-
# Public: Play TV Shows
|
1001
|
-
#
|
1002
|
-
# Returns boolean
|
1003
|
-
def play_tv_shows?
|
1004
|
-
begin
|
1005
|
-
5.times{dut.press_key('select', :sleep_time=>5.sec)}
|
1006
|
-
|
1007
|
-
#####################
|
1008
|
-
##Handles Exception##
|
1009
|
-
#####################
|
1010
|
-
rescue=>exception
|
1011
|
-
loginfo "play_tv_shows :: failed"
|
1012
|
-
loginfo exception.message
|
1013
|
-
loginfo exception.backtrace
|
1014
|
-
return false
|
1015
|
-
end
|
1016
|
-
return true
|
1017
|
-
end
|
1018
|
-
# Public: Audit all assets under "All Network" page and report the results
|
1019
|
-
#
|
1020
|
-
# Args:
|
1021
|
-
# name : String. The report name twb requests. default: "TVSHOWS_AuditReport"
|
1022
|
-
# nassets : Integer. The number of assets per row except the last one. default: 7
|
1023
|
-
# networks: An array of given netwroks. default: []
|
1024
|
-
# option : Integer. 1 = 'continuity', 0 = 'audit'. default: 0
|
1025
|
-
#
|
1026
|
-
# Notes:
|
1027
|
-
# This function needs to be called aftern enter "TV Shows"
|
1028
|
-
#
|
1029
|
-
# Returns NA
|
1030
|
-
def vod_tvshow_scan(args={})
|
1031
|
-
begin
|
1032
|
-
require "time"
|
1033
|
-
require "fileutils"
|
1034
|
-
|
1035
|
-
# set default parameters
|
1036
|
-
ftail = Time.new.to_s.gsub(/[\s:-]/,"_").strip.gsub(/_+/,"_")
|
1037
|
-
start_time = Time.now
|
1038
|
-
option = 0
|
1039
|
-
# default number of assets per row
|
1040
|
-
nassets = 7
|
1041
|
-
# default networks
|
1042
|
-
networks = []
|
1043
|
-
# default report name
|
1044
|
-
report_name = "TVSHOWS_AuditReport"
|
1045
|
-
|
1046
|
-
# get required parameters
|
1047
|
-
if ! args.any?
|
1048
|
-
loginfo "Default settings used."
|
1049
|
-
else
|
1050
|
-
if args.include?(:name)
|
1051
|
-
report_name = args[:name]
|
1052
|
-
end
|
1053
|
-
if args.include?(:nassets)
|
1054
|
-
nassets = args[:nassets]
|
1055
|
-
end
|
1056
|
-
if args.include?(:networks)
|
1057
|
-
networks = args[:networks]
|
1058
|
-
end
|
1059
|
-
if args.include?(:option)
|
1060
|
-
option = args[:option]
|
1061
|
-
end
|
1062
|
-
end
|
1063
|
-
# validate nassets
|
1064
|
-
if !nassets.is_a?(Integer)
|
1065
|
-
ArgumentError.new("'nassets' should be an integer.")
|
1066
|
-
end
|
1067
|
-
# validate option
|
1068
|
-
if ![0,1].include?(option)
|
1069
|
-
ArgumentError.new("'option' should be either 0 or 1.")
|
1070
|
-
end
|
1071
|
-
# validate report name
|
1072
|
-
if ! report_name.is_a?(String)
|
1073
|
-
raise ArgumentError.new("'report_name' should be a string")
|
1074
|
-
end
|
1075
|
-
report_name = report_name+"_"+ftail
|
1076
|
-
report_name.gsub!("Audit", "Contintuity") if option==1
|
1077
|
-
|
1078
|
-
# twb report structure
|
1079
|
-
$fmt = {
|
1080
|
-
"report_name"=>report_name,
|
1081
|
-
"progress"=> 0
|
1082
|
-
}
|
1083
|
-
# go to "All Networks"
|
1084
|
-
dut.screens.tv_shows.nav_to_category
|
1085
|
-
dut.press_key('left_arrow', :sleep_time=>5.sec)
|
1086
|
-
dut.press_key('select', :sleep_time=>5.sec)
|
1087
|
-
|
1088
|
-
# get the number of rows and number of colums of last row
|
1089
|
-
nrows = dut.screens.tv_shows.count_assets_one_dir(:nassets=>1,:similarity=>85)
|
1090
|
-
ncols_last_row = dut.screens.tv_shows.count_assets_one_dir(:nassets=>1,:nav_key=>"right_arrow", :similarity=>85) + 1
|
1091
|
-
loginfo "*******************************************************"
|
1092
|
-
loginfo "Providers. Rows: #{nrows}, ncols last row: #{ncols_last_row}"
|
1093
|
-
loginfo "*******************************************************"
|
1094
|
-
|
1095
|
-
# go back to "ALL Networks"
|
1096
|
-
dut.press_key('last', :sleep_time=>5.sec)
|
1097
|
-
dut.press_key('left_arrow', :sleep_time=>5.sec)
|
1098
|
-
dut.press_key('select', :sleep_time=>5.sec)
|
1099
|
-
|
1100
|
-
col_nav_key = "right_arrow"
|
1101
|
-
# the number of assets scanned
|
1102
|
-
ncount = 0
|
1103
|
-
# loop for each network
|
1104
|
-
(0..nrows).each {|row|
|
1105
|
-
col_nav_key = row%2==1 ? "left_arrow" : "right_arrow"
|
1106
|
-
# for the last row of providers
|
1107
|
-
if (row == nrows) and (ncols_last_row > 0)
|
1108
|
-
nassets = ncols_last_row
|
1109
|
-
end
|
1110
|
-
|
1111
|
-
(1..nassets).each {|inet|
|
1112
|
-
begin
|
1113
|
-
# set continue flag
|
1114
|
-
continue_flag = true
|
1115
|
-
start_time_per_network = Time.now
|
1116
|
-
dut.press_key('select', :sleep_time=>5.sec)
|
1117
|
-
# check if an asset is a category
|
1118
|
-
category_check = dut.screens.tv_shows.vod_tvshows_category_check(:similarity=>95)
|
1119
|
-
category = dut.screens.tv_shows.vod_tvshows_category_extract
|
1120
|
-
|
1121
|
-
# if given networks, check if the current network name is in the given array
|
1122
|
-
# if not, skip the current provider
|
1123
|
-
if networks.is_a?(Array) and (! networks.empty?)
|
1124
|
-
log_info "Given netwroks: "
|
1125
|
-
log_info networks
|
1126
|
-
continue_flag = false if ! networks.include?(category.split('/')[0].gsub(/\s/,'')) rescue continue_flag = false
|
1127
|
-
continue_flag = networks.include?([row, inet]) if !continue_flag
|
1128
|
-
end
|
1129
|
-
loginfo "Checking (#{row}, #{inet}) network."
|
1130
|
-
if (!category_check.nil?) and continue_flag
|
1131
|
-
loginfo "working on network #{category}(#{row}, #{inet}), be patient..."
|
1132
|
-
$fmt["category"] = category
|
1133
|
-
if category_check
|
1134
|
-
dut.press_key('select', :sleep_time=>5.sec)
|
1135
|
-
end
|
1136
|
-
ntmp = dut.screens.tv_shows.vod_tvshow_assets_extract(:option=>option) rescue ntmp=0
|
1137
|
-
# ncount update
|
1138
|
-
ncount += ntmp
|
1139
|
-
if category_check
|
1140
|
-
dut.press_key('last', :sleep_time=>5.sec)
|
1141
|
-
end
|
1142
|
-
end
|
1143
|
-
|
1144
|
-
# go back to all provider page
|
1145
|
-
dut.press_key('last', :sleep_time=>5.sec)
|
1146
|
-
|
1147
|
-
if inet < nassets
|
1148
|
-
dut.press_key(col_nav_key, :sleep_time=>5.sec)
|
1149
|
-
end
|
1150
|
-
loginfo "Time took for this network(sec): #{Time.now - start_time_per_network}, #{ntmp} assets scanned."
|
1151
|
-
rescue
|
1152
|
-
next
|
1153
|
-
end
|
1154
|
-
}
|
1155
|
-
# go to next row
|
1156
|
-
if row < nrows
|
1157
|
-
dut.press_key('down_arrow', :sleep_time=>5.sec)
|
1158
|
-
end
|
1159
|
-
}
|
1160
|
-
|
1161
|
-
loginfo "Total time took (hours): #{(Time.now - start_time)/60/60}, #{ncount} assets scanned."
|
1162
|
-
rescue =>e
|
1163
|
-
loginfo "'vod_tvshow_audit' exception: #{e.message}"
|
1164
|
-
return false
|
1165
|
-
end
|
1166
|
-
return true
|
1167
|
-
end
|
1168
|
-
|
1169
|
-
# Public: extract information of an episode in tv shows.
|
1170
|
-
#
|
1171
|
-
# Args:
|
1172
|
-
# lbox: list_box of episodes. It covers the episode list area and is used
|
1173
|
-
# to count the number of episodes. default:
|
1174
|
-
# {:x=>68,:y=>417,:width=>655,:height=>658}
|
1175
|
-
#
|
1176
|
-
# nbox: A rectangle used to retrieve episode name. default:
|
1177
|
-
# {:x=>773,:y=>492,:width=>864,:height=>74}
|
1178
|
-
#
|
1179
|
-
# nbbox: A rectangle used to retrieve episode number and season number.
|
1180
|
-
# default:
|
1181
|
-
# {:x=>773,:y=>546,:width=>178,:height=>74}
|
1182
|
-
#
|
1183
|
-
# wbox: A rectangle covers the buttons. It is used to check if WATCH button
|
1184
|
-
# is there. default:
|
1185
|
-
# watch_box = {:x=>765,:y=>729,:width=>562,:height=>341}
|
1186
|
-
#
|
1187
|
-
# vbox: A window to check if the episode is playable.
|
1188
|
-
#
|
1189
|
-
# Note:
|
1190
|
-
# All box should contain ':x', ':y', ':width', and ':height'
|
1191
|
-
#
|
1192
|
-
# Returns Array. An array for episode information. Each element of the array
|
1193
|
-
# is a hash, which consists of the following factors:
|
1194
|
-
# epi_info = {
|
1195
|
-
# :name=>nil,
|
1196
|
-
# :number=>0,
|
1197
|
-
# :playable=>false,
|
1198
|
-
# :status=>nil
|
1199
|
-
# }
|
1200
|
-
def vod_tvshows_epinfo_extract(args={})
|
1201
|
-
require '../../../../Program Files/Time Warner Cable/TMCExecutionService/rubylocation/test_cases/sandbox/log_info'
|
1202
|
-
# set default return
|
1203
|
-
result = []
|
1204
|
-
list_box = {:x=>68,:y=>417,:width=>655,:height=>658}
|
1205
|
-
name_box = {:x=>773,:y=>492,:width=>864,:height=>74}
|
1206
|
-
numb_box = {:x=>773,:y=>546,:width=>178,:height=>74}
|
1207
|
-
watch_box = {:x=>765,:y=>729,:width=>562,:height=>341}
|
1208
|
-
video_box = {:x=>240,:y=>142,:width=>713,:height=>412}
|
1209
|
-
# get required parameters
|
1210
|
-
if ! args.any?
|
1211
|
-
log_info "Function 'vod_tvshows_epinfo_extract' uses default settings."
|
1212
|
-
else
|
1213
|
-
if args.include?(:lbox)
|
1214
|
-
list_box = args[:lbox]
|
1215
|
-
end
|
1216
|
-
if args.include?(:nbox)
|
1217
|
-
name_box = args[:nbox]
|
1218
|
-
end
|
1219
|
-
if args.include?(:nbbox)
|
1220
|
-
numb_box = args[:nbbox]
|
1221
|
-
end
|
1222
|
-
if args.include?(:wbox)
|
1223
|
-
watch_box = args[:wbox]
|
1224
|
-
end
|
1225
|
-
if args.include?(:vbox)
|
1226
|
-
video_box = args[:vbox]
|
1227
|
-
end
|
1228
|
-
end
|
1229
|
-
|
1230
|
-
# check if each box is valid
|
1231
|
-
boxes = [list_box, name_box, numb_box, watch_box, video_box]
|
1232
|
-
boxes.each {|bx|
|
1233
|
-
if ! dut.screens.tv_shows.is_a_box(:box=>bx)
|
1234
|
-
return []
|
1235
|
-
end
|
1236
|
-
}
|
1237
|
-
|
1238
|
-
# check if current page is in play mode
|
1239
|
-
is_playing = dut.screens.tv_shows.text_in_box(:box=>name_box)
|
1240
|
-
if is_playing.empty?
|
1241
|
-
dut.press_key('stop', :sleep_time=>5.sec)
|
1242
|
-
else
|
1243
|
-
# take care "Unable play" prompt if any
|
1244
|
-
unable_play = dut.screens.tv_shows.text_in_box(:box=>video_box)
|
1245
|
-
if unable_play.include?("Unable") and unable_play.include?("sorry")
|
1246
|
-
dut.press_key('select', :sleep_time=>5.sec)
|
1247
|
-
end
|
1248
|
-
end
|
1249
|
-
|
1250
|
-
# get the number of episodes
|
1251
|
-
nepisodes = dut.screens.tv_shows.count_assets_one_dir(
|
1252
|
-
:nassets=>1,
|
1253
|
-
:box=>list_box,
|
1254
|
-
:similarity=>85)
|
1255
|
-
if nepisodes>=0
|
1256
|
-
result[0] = nepisodes + 1
|
1257
|
-
else
|
1258
|
-
return []
|
1259
|
-
end
|
1260
|
-
log_info "Total #{nepisodes+1} episodes found."
|
1261
|
-
(0..nepisodes).each {|ii|
|
1262
|
-
# init info for each episode
|
1263
|
-
epi_info = {
|
1264
|
-
:name=>nil,
|
1265
|
-
:number=>0,
|
1266
|
-
:playable=>false,
|
1267
|
-
:season=>0,
|
1268
|
-
:status=>nil
|
1269
|
-
}
|
1270
|
-
# update episode information for each one
|
1271
|
-
|
1272
|
-
# check if WATCH button is there
|
1273
|
-
watch_btn = dut.screens.tv_shows.include_in_box(:text=>"WATCH", :box=>watch_box)
|
1274
|
-
if watch_btn
|
1275
|
-
dut.press_key.SELECT(:sleep_time=>5.sec)
|
1276
|
-
# handle pins
|
1277
|
-
pin_text = dut.screens.video_store.vod_handle_pin rescue pint_text=''
|
1278
|
-
|
1279
|
-
# check if 'Menu is not available' show up
|
1280
|
-
if pin_text.include?('Not Available')
|
1281
|
-
epi_info[:playable] = 'NA'
|
1282
|
-
epi_info[:status] = 'NA'
|
1283
|
-
dut.press_key('last', :sleep_time=>5.sec)
|
1284
|
-
else
|
1285
|
-
# check if episode is playable
|
1286
|
-
video_win = dut.roi.video.new(:rectangle=>video_box)
|
1287
|
-
playable = video_win.displayed?(:timeout => 10000)
|
1288
|
-
if playable
|
1289
|
-
epi_info[:playable] = 'PLAYABLE'
|
1290
|
-
epi_info[:status] = 'PRESENT'
|
1291
|
-
dut.press_key('stop', :sleep_time=>5.sec)
|
1292
|
-
else
|
1293
|
-
epi_info[:playable] = 'NA'
|
1294
|
-
epi_info[:status] = 'NA'
|
1295
|
-
# take care "Unable play" prompt if any
|
1296
|
-
unable_play = dut.screens.tv_shows.include_in_box(:text=>"Unable", :box=>video_box)
|
1297
|
-
if unable_play
|
1298
|
-
dut.press_key('select', :sleep_time=>5.sec)
|
1299
|
-
end
|
1300
|
-
end
|
1301
|
-
end
|
1302
|
-
else
|
1303
|
-
# check if 'restart' is there
|
1304
|
-
restart = dut.screens.tv_shows.include_in_box(:text=>"RESTART", :box=>watch_box)
|
1305
|
-
if restart
|
1306
|
-
epi_info[:playable] = 'PLAYABLE'
|
1307
|
-
epi_info[:status] = 'PRESENT'
|
1308
|
-
else
|
1309
|
-
epi_info[:playable] = 'NA'
|
1310
|
-
epi_info[:status] = 'NA'
|
1311
|
-
end
|
1312
|
-
end
|
1313
|
-
# get episode name
|
1314
|
-
epi_name = dut.screens.tv_shows.text_in_box(:box=>name_box)
|
1315
|
-
if ! epi_name.nil?
|
1316
|
-
epi_name = epi_name.delete("^A-Za-z0-9\s")
|
1317
|
-
end
|
1318
|
-
if epi_name.empty?
|
1319
|
-
epi_info[:name] = "NA"
|
1320
|
-
else
|
1321
|
-
epi_info[:name] = epi_name
|
1322
|
-
end
|
1323
|
-
# check episode number for each one
|
1324
|
-
epi_num = dut.screens.tv_shows.text_in_box(:box=>numb_box).gsub(/[ilI]/,'1')
|
1325
|
-
epi_num = epi_num.gsub(/[\s.]/,',').gsub(/,+/,',').gsub(/[Ss]/,'5')
|
1326
|
-
if ! epi_num.nil?
|
1327
|
-
epi_num = epi_num.delete("^0-9,")
|
1328
|
-
end
|
1329
|
-
|
1330
|
-
log_info "Retrieved episode number text #{ epi_num }"
|
1331
|
-
|
1332
|
-
if (! epi_num.nil?) and (! epi_num.empty?)
|
1333
|
-
epi_num = epi_num.split(',')
|
1334
|
-
if epi_num.length>1
|
1335
|
-
epi_info[:number] = epi_num[1]
|
1336
|
-
end
|
1337
|
-
epi_info[:season] = epi_num[0][1..-1]
|
1338
|
-
else
|
1339
|
-
epi_info[:number] = "NA"
|
1340
|
-
epi_info[:season] = "NA"
|
1341
|
-
end
|
1342
|
-
log_info "Episode info:"
|
1343
|
-
log_info epi_info
|
1344
|
-
result[nepisodes+1-ii] = epi_info
|
1345
|
-
if ii < nepisodes
|
1346
|
-
dut.press_key.ARROW_UP(:sleep_time=>5.sec)
|
1347
|
-
end
|
1348
|
-
}
|
1349
|
-
return result
|
1350
|
-
end
|
1351
|
-
|
1352
|
-
# Public: Convert the test records saved in an array to the report format twb requests.
|
1353
|
-
#
|
1354
|
-
# Args:
|
1355
|
-
# images : String. default: "{\"images\":[]}"
|
1356
|
-
# asset_info : A hash kept asset information. default: {}
|
1357
|
-
# episode_info: An array containing episode information. deault: []
|
1358
|
-
#
|
1359
|
-
# Returns NA
|
1360
|
-
def vod_tvshows_assets_info_format(args={})
|
1361
|
-
require '../../../../Program Files/Time Warner Cable/TMCExecutionService/rubylocation/test_cases/sandbox/twb_upload_lib'
|
1362
|
-
begin
|
1363
|
-
# set default parameters
|
1364
|
-
images = "{\"images\":[]}"
|
1365
|
-
asset_info = {}
|
1366
|
-
episode_info = []
|
1367
|
-
|
1368
|
-
|
1369
|
-
# get required parameters
|
1370
|
-
if ! args.any?
|
1371
|
-
loginfo "Default settings used."
|
1372
|
-
return
|
1373
|
-
else
|
1374
|
-
if args.include?(:asset_info)
|
1375
|
-
asset_info = args[:asset_info]
|
1376
|
-
end
|
1377
|
-
if args.include?(:episode_info)
|
1378
|
-
episode_info = args[:episode_info]
|
1379
|
-
end
|
1380
|
-
if args.include?(:images)
|
1381
|
-
images = args[:images]
|
1382
|
-
end
|
1383
|
-
end
|
1384
|
-
|
1385
|
-
# create twb upload connection
|
1386
|
-
begin
|
1387
|
-
twb_handler = RecordsReport.new
|
1388
|
-
twb_handler.verbose = true
|
1389
|
-
rescue => e
|
1390
|
-
loginfo "TWB Connection Creating error: #{e.message}. No TWB upload."
|
1391
|
-
twb_handler = nil
|
1392
|
-
end
|
1393
|
-
|
1394
|
-
# start formatting the data
|
1395
|
-
$fmt["screenshots"] = images
|
1396
|
-
$fmt["title"] = asset_info[:title]
|
1397
|
-
$fmt["view_option"] = asset_info[:viewoption]
|
1398
|
-
$fmt["banner_presence"] = asset_info[:poster]
|
1399
|
-
# check if episode information is available
|
1400
|
-
if episode_info.empty? or episode_info.length<2
|
1401
|
-
nloop = 1
|
1402
|
-
$fmt["quantity"] = 1
|
1403
|
-
else
|
1404
|
-
nloop = episode_info.length-1
|
1405
|
-
$fmt["quantity"] = episode_info[0]
|
1406
|
-
end
|
1407
|
-
# loop through episode info.
|
1408
|
-
(1..nloop).each{|inx|
|
1409
|
-
begin
|
1410
|
-
# if episode info is available
|
1411
|
-
if !(episode_info.empty? or episode_info.length<2)
|
1412
|
-
$fmt["season_number"] = episode_info[inx][:season]
|
1413
|
-
$fmt["episode_number"] = episode_info[inx][:number]
|
1414
|
-
$fmt["episode_name"] = episode_info[inx][:name]
|
1415
|
-
$fmt["status"] = episode_info[inx][:status]
|
1416
|
-
$fmt["playback_status"] = episode_info[inx][:playable]
|
1417
|
-
end
|
1418
|
-
# prepare the output string for the csv file
|
1419
|
-
record = $fmt.values.join(",")+"\n"
|
1420
|
-
append_to_file "vod_reports/"+$fmt["report_name"]+".csv", record rescue loginfo "vod_reports csv writing failed."
|
1421
|
-
loginfo "Record #{inx}: #{record}"
|
1422
|
-
# twb report
|
1423
|
-
if !twb_handler.nil?
|
1424
|
-
loginfo "Reporting to twb..."
|
1425
|
-
twb_handler.send_one_record($fmt)
|
1426
|
-
end
|
1427
|
-
# update progress
|
1428
|
-
$fmt["progress"] = 50 if $fmt["progress"]==0
|
1429
|
-
|
1430
|
-
rescue => e
|
1431
|
-
loginfo "Record formatting error. #{e.message}"
|
1432
|
-
next
|
1433
|
-
end
|
1434
|
-
}
|
1435
|
-
rescue => e
|
1436
|
-
loginfo "Test record formatting error: #{e.message}."
|
1437
|
-
return
|
1438
|
-
end
|
1439
|
-
end
|
1440
|
-
|
1441
|
-
# Public: Convert the test records saved in an array to the report format twb requests.
|
1442
|
-
#
|
1443
|
-
# Args:
|
1444
|
-
# images : String. default: "{\"images\":[]}"
|
1445
|
-
# asset_info : A hash kept asset information. default: {}
|
1446
|
-
# episode_info: An array containing episode information. deault: []
|
1447
|
-
#
|
1448
|
-
# Returns NA
|
1449
|
-
def vod_tvshows_assets_info_missing_format(args={})
|
1450
|
-
require '../../../../Program Files/Time Warner Cable/TMCExecutionService/rubylocation/test_cases/sandbox/twb_upload_lib'
|
1451
|
-
# set default parameters
|
1452
|
-
images = "{\"images\":[]}"
|
1453
|
-
asset_info = {}
|
1454
|
-
episode_info = []
|
1455
|
-
|
1456
|
-
|
1457
|
-
# get required parameters
|
1458
|
-
if ! args.any?
|
1459
|
-
loginfo "Default settings used."
|
1460
|
-
return
|
1461
|
-
else
|
1462
|
-
if args.include?(:asset_info)
|
1463
|
-
asset_info = args[:asset_info]
|
1464
|
-
end
|
1465
|
-
if args.include?(:episode_info)
|
1466
|
-
episode_info = args[:episode_info]
|
1467
|
-
end
|
1468
|
-
if args.include?(:images)
|
1469
|
-
images = args[:images]
|
1470
|
-
end
|
1471
|
-
end
|
1472
|
-
|
1473
|
-
# create twb upload connection
|
1474
|
-
begin
|
1475
|
-
twb_handler = RecordsReport.new
|
1476
|
-
twb_handler.verbose = true
|
1477
|
-
rescue => e
|
1478
|
-
loginfo "TWB Connection Creating error: #{e}. No TWB upload."
|
1479
|
-
twb_handler = nil
|
1480
|
-
end
|
1481
|
-
|
1482
|
-
$fmt["screenshots"] = images
|
1483
|
-
$fmt["title"] = asset_info[:title]
|
1484
|
-
$fmt["view_option"] = asset_info[:viewoption]
|
1485
|
-
$fmt["banner_presence"] = asset_info[:poster]
|
1486
|
-
nloop = 0
|
1487
|
-
# check the number of available episodes
|
1488
|
-
if ! episode_info.empty?
|
1489
|
-
nloop = episode_info[0]
|
1490
|
-
else
|
1491
|
-
loginfo "#{asset_info[:title]} has no episode information, ignored."
|
1492
|
-
return
|
1493
|
-
end
|
1494
|
-
$fmt["quantity"] = nloop
|
1495
|
-
# check the missing episodes
|
1496
|
-
episode_info = dut.screens.tv_shows.vod_tvshows_missing_episode_extract(:records=>episode_info) rescue episode_info={}
|
1497
|
-
# check if episode information is available
|
1498
|
-
if episode_info.is_a?(Hash) and episode_info.any?
|
1499
|
-
loginfo "Missing episodes: "
|
1500
|
-
loginfo "#{episode_info}"
|
1501
|
-
else
|
1502
|
-
raise RuntimeError.new("Formatting error, ignored.")
|
1503
|
-
end
|
1504
|
-
# loop through episode info.
|
1505
|
-
episode_info.each{|kkk, vvv|
|
1506
|
-
if ! vvv.any?
|
1507
|
-
next
|
1508
|
-
end
|
1509
|
-
vvv.each{|epi|
|
1510
|
-
$fmt["season_number"] = kkk
|
1511
|
-
$fmt["episode_number"] = epi
|
1512
|
-
$fmt["status"] = "Missing"
|
1513
|
-
# prepare the output string for the csv file
|
1514
|
-
record = $fmt.values.join(",")+"\n"
|
1515
|
-
append_to_file "vod_reports/"+$fmt["report_name"]+".csv", record rescue loginfo "vod_reports csv writing failed."
|
1516
|
-
# twb report
|
1517
|
-
if !twb_handler.nil?
|
1518
|
-
loginfo "Reporting to twb..."
|
1519
|
-
twb_handler.send_one_record($fmt)
|
1520
|
-
end
|
1521
|
-
# update progress
|
1522
|
-
$fmt["progress"] = 50 if $fmt["progress"]==0
|
1523
|
-
}
|
1524
|
-
}
|
1525
|
-
rescue => e
|
1526
|
-
loginfo "Test record formatting error: #{e.message}."
|
1527
|
-
return
|
1528
|
-
end
|
1529
|
-
|
1530
|
-
end
|
1531
|
-
|
1532
|
-
|