Module: Calabash::Cucumber::Operations

Includes:
Core, DatePicker, KeyboardHelpers, TestsHelpers, WaitHelpers, Test::Unit::Assertions
Included in:
IBase
Defined in:
lib/calabash-cucumber/operations.rb

Constant Summary

Constants included from DatePicker

DatePicker::OBJC_DATE_AND_TIME_FMT, DatePicker::RUBY_DATE_AND_TIME_FMT, DatePicker::UI_DATE_PICKER_MODE_COUNT_DOWN_TIMER, DatePicker::UI_DATE_PICKER_MODE_DATE, DatePicker::UI_DATE_PICKER_MODE_DATE_AND_TIME, DatePicker::UI_DATE_PICKER_MODE_TIME

Constants included from PlaybackHelpers

PlaybackHelpers::DATA_PATH

Constants included from KeyboardHelpers

KeyboardHelpers::KEYPLANE_NAMES, KeyboardHelpers::UIA_SUPPORTED_CHARS

Constants included from WaitHelpers

WaitHelpers::CALABASH_CONDITIONS

Instance Method Summary collapse

Methods included from DatePicker

#args_for_change_date_on_picker, #countdown_mode?, #date_and_time_mode?, #date_mode?, #date_picker_mode, #date_time_from_picker, #maximum_date_time_from_picker, #minimum_date_time_from_picker, #picker_set_date_time, #query_string_for_picker, #should_see_date_picker, #time_mode?

Methods included from Core

#backdoor, #calabash_exit, #cell_swipe, #client_version, #console_attach, #double_tap, #extract_query_and_options, #flash, #flick, #launcher, #location_for_place, #locations_for_place, #macro, #move_wheel, #pan, #picker, #pinch, #prepare_query_options, #query, #query_action_with_options, #query_all, #scroll, #scroll_to_cell, #scroll_to_row, #scroll_to_row_with_mark, #send_app_to_background, #server_version, #set_location, #shutdown_test_server, #start_test_server_in_background, #stop_test_server, #swipe, #touch, #touch_hold, #two_finger_tap

Methods included from PlaybackHelpers

#find_compatible_recording, #interpolate, #load_playback_data, #load_recording, #playback, #playback_file_directories, #record_begin, #record_end, #recording_name_for

Methods included from RotationHelpers

#rotate, #rotate_home_button_to, #rotation_candidates

Methods included from StatusBarHelpers

#device_orientation, #landscape?, #portrait?, #status_bar_orientation

Methods included from UIA

#escape_uia_string, #send_uia_command, #uia, #uia_call, #uia_call_method, #uia_double_tap, #uia_double_tap_mark, #uia_double_tap_offset, #uia_element_does_not_exist?, #uia_element_exists?, #uia_enter, #uia_flick_offset, #uia_handle_command, #uia_names, #uia_pan, #uia_pan_offset, #uia_pinch, #uia_pinch_offset, #uia_query, #uia_query_el, #uia_query_windows, #uia_screenshot, #uia_scroll_to, #uia_send_app_to_background, #uia_serialize_argument, #uia_serialize_arguments, #uia_serialize_command, #uia_set_location, #uia_swipe, #uia_swipe_offset, #uia_tap, #uia_tap_mark, #uia_tap_offset, #uia_touch_hold, #uia_touch_hold_offset, #uia_two_finger_tap, #uia_two_finger_tap_offset, #uia_type_string

Methods included from Map

#map, #raw_map

Methods included from FailureHelpers

#fail, #screenshot, #screenshot_and_raise, #screenshot_embed

Methods included from QueryHelpers

#escape_quotes, #point_from

Methods included from ConnectionHelpers

#connection, #http

Methods included from EnvironmentHelpers

#_deprecated, #debug_logging?, #default_device, #device_family_iphone?, #full_console_logging?, #ios5?, #ios6?, #ios7?, #ipad?, #iphone?, #iphone_4in?, #iphone_5?, #iphone_app_emulated_on_ipad?, #ipod?, #no_deprecation_warnings?, #simulator?, #uia_available?, #uia_not_available?, #xamarin_test_cloud?

Methods included from KeyboardHelpers

#_current_keyplane, #_do_keyplane, #_ensure_can_enter_text, #_ipad_keyboard_modes, #_point_for_ipad_keyboard_mode_key, #_qstr_for_keyboard, #_query_for_keyboard_mode_key, #_query_for_touch_for_keyboard_mode_option, #_query_uia_hide_keyboard_button, #_search_keyplanes_and_enter_char, #_touch_bottom_keyboard_mode_row, #_touch_top_keyboard_mode_row, #_wait_for_keyboard_in_mode, #await_keyboard, #dismiss_ipad_keyboard, #docked_keyboard_visible?, #done, #ensure_docked_keyboard, #ensure_split_keyboard, #ensure_undocked_keyboard, #ipad_keyboard_mode, #keyboard_enter_char, #keyboard_enter_text, #keyboard_visible?, #split_keyboard_visible?, #tap_keyboard_action_key, #uia_keyboard_visible?, #uia_wait_for_keyboard, #undocked_keyboard_visible?, #wait_for_keyboard

Methods included from TestsHelpers

#check_element_does_not_exist, #check_element_exists, #check_view_with_mark_exists, #classes, #each_cell, #each_cell_and_back, #element_does_not_exist, #element_exists, #navigation_path, #query_map, #view_with_mark_exists

Methods included from WaitHelpers

#handle_error_with_options, #screenshot_and_retry, #touch_transition, #wait_error, #wait_for, #wait_for_condition, #wait_for_elements_do_not_exist, #wait_for_elements_exist, #wait_for_no_network_indicator, #wait_for_none_animating, #wait_for_transition, #wait_poll

Instance Method Details

#assert_home_direction(expected) ⇒ Object



42
43
44
45
46
# File 'lib/calabash-cucumber/operations.rb', line 42

def assert_home_direction(expected)
  unless expected.to_sym == home_direction
    screenshot_and_raise "Expected home button to have direction #{expected} but had #{home_direction}"
  end
end

#await_page(clz, *args) ⇒ Object



34
35
36
# File 'lib/calabash-cucumber/operations.rb', line 34

def await_page(clz,*args)
  clz.new(self,*args).await
end

#clear_text(uiquery) ⇒ Object



81
82
83
84
85
# File 'lib/calabash-cucumber/operations.rb', line 81

def clear_text(uiquery)
  views_modified = map(uiquery, :setText, '')
  screenshot_and_raise "could not find text field #{uiquery}" if views_modified.empty?
  views_modified
end

#home_directionObject



38
39
40
# File 'lib/calabash-cucumber/operations.rb', line 38

def home_direction
  status_bar_orientation.to_sym
end

#html(q) ⇒ Object



64
65
66
# File 'lib/calabash-cucumber/operations.rb', line 64

def html(q)
  query(q).map { |e| e['html'] }
end

#identifier(uiquery) ⇒ Object



52
53
54
# File 'lib/calabash-cucumber/operations.rb', line 52

def identifier(uiquery)
  query(uiquery, :accessibilityIdentifier)
end

#label(uiquery) ⇒ Object



48
49
50
# File 'lib/calabash-cucumber/operations.rb', line 48

def label(uiquery)
  query(uiquery, :accessibilityLabel)
end

#page(clz, *args) ⇒ Object



30
31
32
# File 'lib/calabash-cucumber/operations.rb', line 30

def page(clz,*args)
  clz.new(self,*args)
end

#set_text(uiquery, txt) ⇒ Object



68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/calabash-cucumber/operations.rb', line 68

def set_text(uiquery, txt)
  msgs = ["'set_text' will be deprecated.",
          "* to enter text using the native keyboard use 'keyboard_enter_text'",
          "* to clear a text field or text view use 'clear_text'",
          'https://github.com/calabash/calabash-ios/wiki/03.5-Calabash-iOS-Ruby-API']
  msg = msgs.join("\n")
  _deprecated('0.9.145', msg, :warn)

  text_fields_modified = map(uiquery, :setText, txt)
  screenshot_and_raise "could not find text field #{uiquery}" if text_fields_modified.empty?
  text_fields_modified
end

#set_user_pref(key, val) ⇒ Object



88
89
90
91
92
93
94
95
96
97
# File 'lib/calabash-cucumber/operations.rb', line 88

def set_user_pref(key, val)
  res = http({:method => :post, :path => 'userprefs'},
             {:key=> key, :value => val})
  res = JSON.parse(res)
  if res['outcome'] != 'SUCCESS'
    screenshot_and_raise "set_user_pref #{key} = #{val} failed because: #{res['reason']}\n#{res['details']}"
  end

  res['results']
end

#simple_touch(label, *args) ⇒ Object



56
57
58
# File 'lib/calabash-cucumber/operations.rb', line 56

def simple_touch(label, *args)
  touch("view marked:'#{label}'", *args)
end

#tap(label, *args) ⇒ Object



60
61
62
# File 'lib/calabash-cucumber/operations.rb', line 60

def tap(label, *args)
  simple_touch(label, *args)
end

#user_pref(key) ⇒ Object



99
100
101
102
103
104
105
106
107
108
# File 'lib/calabash-cucumber/operations.rb', line 99

def user_pref(key)
  res = http({:method => :get, :raw => true, :path => 'userprefs'},
             {:key=> key})
  res = JSON.parse(res)
  if res['outcome'] != 'SUCCESS'
    screenshot_and_raise "get user_pref #{key} failed because: #{res['reason']}\n#{res['details']}"
  end

  res['results'].first
end