Class: Roku
Overview
Roku adds to or modifies Platform with Roku-specific functionality
Direct Known Subclasses
Instance Attribute Summary
Attributes inherited from Platform
#id, #keys, #remotes, #roi, #screens
Instance Method Summary collapse
-
#controller ⇒ Object
Public: Gets the controller.
-
#init? ⇒ Boolean
Public: Ensures device is on and can nav to home screen.
-
#initialize(*args) ⇒ Roku
constructor
Public: Initializes a Roku.
-
#software_version ⇒ Object
Public: Gets the device software version.
Methods inherited from Platform
#alt_parental_controls_pin, #app_version, #audio_level, #audio_level_left, #audio_level_right, #audio_present?, #capture_audio, #capture_frames, #capture_screen, #device_type_is?, #device_type_not?, #entitlements, #has_power?, #height, #high_def?, #ip_address, #is_generic?, #lock, #mac_address, #model, #name, #parental_controls_pin, #password, #platform, #power_cycle, #power_off, #power_on, #power_on?, #press_key, #record_audio, #record_video, #remote_type=, #remote_type_is?, #reset_video, #resolution, #save_last_screen_captured, #slot, #snmp_get, #snmp_set, #stop_audio, #stop_video, #upload_screenshot, #username, #width
Constructor Details
Instance Method Details
#controller ⇒ Object
Public: Gets the controller.
Returns the RokuController instance.
82 83 84 85 86 87 |
# File 'lib/platform/roku/roku.rb', line 82 def controller if @controller.nil? @controller = RokuController.new(:dut => self) end @controller end |
#init? ⇒ Boolean
Public: Ensures device is on and can nav to home screen.
Returns a Boolean true if the device was initialized, otherwise false.
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/platform/roku/roku.rb', line 22 def init? super do if has_power? # exit to the home screen 2.times { press_key.MENU(sleep_time: 2.sec) } return false unless screens.home.displayed?(timeout: 10.sec) else # device was powered off. power on and wait up to 2 mins for "No Signal" to go away. power_on return false unless roi.text.no_input_signal.wait_until_not_displayed?(2.min) return false unless screens.home.displayed?(timeout: 2.min) end # leaving incase we need it back # start = Time.now # loop do # return false if (Time.now - start) > 180 # timeout 3 mins # if roi.image.respond_to?("#{app_slot_roi}_1") # if roi.image.send("#{app_slot_roi}_1").displayed? # press_key.SELECT(sleep_time: 2.sec) # break # elsif roi.image.send("#{app_slot_roi}_2").displayed? # press_key.ARROW_RIGHT(sleep_time: 2.sec) # press_key.SELECT(sleep_time: 2.sec) # break # elsif roi.image.send("#{app_slot_roi}_3").displayed? # #elsif roi.image.dev_app_slot_3.displayed? # 2.times { press_key.ARROW_RIGHT(sleep_time: 2.sec) } # press_key.SELECT(sleep_time: 2.sec) # break # end # elsif roi.image.send(app_slot_roi).displayed? # press_key.SELECT(sleep_time: 2.sec) # break # end # press_key.ARROW_DOWN(sleep_time: 2.sec) # end # if screens.home.is_spectrum_loading_screen_displayed? # # wait for loading screen to go away # return false unless screens.home.wait_till_loading_screen_not_displayed?(30.sec) # end # if screens.home.is_spectrum_launch_screen_displayed? # # wait for launch screen to go away # return false unless screens.home.wait_till_launch_screen_not_displayed?(30.sec) # end # if roi.text.welcome_screen_text.displayed? # # dismiss welcome screen # press_key.SELECT(sleep_time: 3.sec) # return false unless roi.text.welcome_screen_text.wait_until_not_displayed?(30.sec) # end # if screens.login.is_username_page_displayed? # # sign in # return false unless screens.login.login? # end true end end |
#software_version ⇒ Object
Public: Gets the device software version.
Returns the String software version.
92 93 94 |
# File 'lib/platform/roku/roku.rb', line 92 def software_version super || @test_case.[:current_roku_version] || '2.0.34' end |