Module: Calabash::Cucumber::Operations

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

Constant Summary

Constants included from Core

Core::CAL_HTTP_RETRY_COUNT, Core::DATA_PATH, Core::RETRYABLE_ERRORS

Constants included from KeyboardHelpers

KeyboardHelpers::KEYPLANE_NAMES

Constants included from WaitHelpers

WaitHelpers::CALABASH_CONDITIONS

Instance Method Summary collapse

Methods included from Location

#location_for_place, #set_location

Methods included from Core

#backdoor, #background, #calabash_exit, #cell_swipe, #client_version, #current_rotation, #default_device, #flash, #http, #init_request, #interpolate, #load_playback_data, #load_recording, #macro, #make_http_request, #map, #move_wheel, #perform, #picker, #pinch, #playback, #prepare_dialog_action, #query, #query_all, #record_begin, #record_end, #recording_name_for, #rotate, #scroll, #scroll_to_cell, #scroll_to_row, #scroll_to_row_with_mark, #send_uia_command, #server_version, #start_test_server_in_background, #stop_test_server, #swipe, #touch, #url_for

Methods included from KeyboardHelpers

#_do_keyplane, #await_keyboard, #current_keyplane, #done, #keyboard_enter_char, #keyboard_enter_text, #search_keyplanes_and_enter_char

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, #fail, #navigation_path, #query_map, #screenshot, #screenshot_and_raise, #screenshot_embed, #view_with_mark_exists

Methods included from WaitHelpers

#handle_error_with_options, #touch_transition, #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


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

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


36
37
38
# File 'lib/calabash-cucumber/operations.rb', line 36

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

#escape_quotes(str) ⇒ Object


50
51
52
# File 'lib/calabash-cucumber/operations.rb', line 50

def escape_quotes(str)
  str.gsub("'", "\\\\'")
end

#home_directionObject


40
41
42
# File 'lib/calabash-cucumber/operations.rb', line 40

def home_direction
  @current_rotation = @current_rotation || :down
end

#html(q) ⇒ Object


71
72
73
# File 'lib/calabash-cucumber/operations.rb', line 71

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

#identifier(uiquery) ⇒ Object


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

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

#label(uiquery) ⇒ Object


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

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

#page(clz, *args) ⇒ Object


32
33
34
# File 'lib/calabash-cucumber/operations.rb', line 32

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

#set_text(uiquery, txt) ⇒ Object


75
76
77
78
79
80
81
82
83
# File 'lib/calabash-cucumber/operations.rb', line 75

def set_text(uiquery, txt)
  unless ENV['CALABASH_NO_DEPRECATION'] == '1'
    puts 'set_text is deprecated, please use keyboard_enter_text'
    puts 'https://github.com/calabash/calabash-ios/wiki/03.5-Calabash-iOS-Ruby-API'
  end
  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


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

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


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

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

#tap(label, *args) ⇒ Object


67
68
69
# File 'lib/calabash-cucumber/operations.rb', line 67

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

#user_pref(key) ⇒ Object


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

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