testautoi 0.9.127

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.
Files changed (121) hide show
  1. data/.gitignore +4 -0
  2. data/CHANGES.txt +1 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE +8 -0
  5. data/Rakefile +2 -0
  6. data/bin/CalabashSetup +0 -0
  7. data/bin/cal.xcconfig +3 -0
  8. data/bin/calabash-ios +79 -0
  9. data/bin/calabash-ios-build.rb +110 -0
  10. data/bin/calabash-ios-generate.rb +26 -0
  11. data/bin/calabash-ios-helpers.rb +130 -0
  12. data/bin/calabash-ios-setup.rb +334 -0
  13. data/bin/calabash-ios-sim.rb +149 -0
  14. data/calabash-cucumber.gemspec +29 -0
  15. data/doc/calabash-ios-help.txt +73 -0
  16. data/epl-v10.html +261 -0
  17. data/features-skeleton/.irbrc +23 -0
  18. data/features-skeleton/irb_ios4.sh +2 -0
  19. data/features-skeleton/irb_ios5.sh +2 -0
  20. data/features-skeleton/my_first.feature +12 -0
  21. data/features-skeleton/step_definitions/calabash_steps.rb +1 -0
  22. data/features-skeleton/step_definitions/my_first_steps.rb +4 -0
  23. data/features-skeleton/support/env.rb +1 -0
  24. data/features-skeleton/support/hooks.rb +0 -0
  25. data/features-skeleton/support/launch.rb +77 -0
  26. data/features/step_definitions/calabash_steps.rb +439 -0
  27. data/lib/calabash-cucumber.rb +7 -0
  28. data/lib/calabash-cucumber/calabash_steps.rb +1 -0
  29. data/lib/calabash-cucumber/core.rb +553 -0
  30. data/lib/calabash-cucumber/cucumber.rb +8 -0
  31. data/lib/calabash-cucumber/ibase.rb +45 -0
  32. data/lib/calabash-cucumber/keyboard_helpers.rb +124 -0
  33. data/lib/calabash-cucumber/launch/simulator_helper.rb +297 -0
  34. data/lib/calabash-cucumber/location.rb +26 -0
  35. data/lib/calabash-cucumber/operations.rb +162 -0
  36. data/lib/calabash-cucumber/resources/cell_swipe_ios4_ipad.base64 +51 -0
  37. data/lib/calabash-cucumber/resources/cell_swipe_ios4_iphone.base64 +51 -0
  38. data/lib/calabash-cucumber/resources/cell_swipe_ios5_ipad.base64 +74 -0
  39. data/lib/calabash-cucumber/resources/cell_swipe_ios5_iphone.base64 +74 -0
  40. data/lib/calabash-cucumber/resources/pinch_in_ios4_ipad.base64 +104 -0
  41. data/lib/calabash-cucumber/resources/pinch_in_ios4_iphone.base64 +104 -0
  42. data/lib/calabash-cucumber/resources/pinch_in_ios5_ipad.base64 +144 -0
  43. data/lib/calabash-cucumber/resources/pinch_in_ios5_iphone.base64 +144 -0
  44. data/lib/calabash-cucumber/resources/pinch_in_ios6_ipad.base64 +70 -0
  45. data/lib/calabash-cucumber/resources/pinch_in_ios6_iphone.base64 +70 -0
  46. data/lib/calabash-cucumber/resources/pinch_out_ios5_ipad.base64 +207 -0
  47. data/lib/calabash-cucumber/resources/pinch_out_ios5_iphone.base64 +207 -0
  48. data/lib/calabash-cucumber/resources/pinch_out_ios6_ipad.base64 +96 -0
  49. data/lib/calabash-cucumber/resources/pinch_out_ios6_iphone.base64 +96 -0
  50. data/lib/calabash-cucumber/resources/rotate_left_home_down_ios4_ipad.base64 +2 -0
  51. data/lib/calabash-cucumber/resources/rotate_left_home_down_ios4_iphone.base64 +2 -0
  52. data/lib/calabash-cucumber/resources/rotate_left_home_down_ios5_ipad.base64 +2 -0
  53. data/lib/calabash-cucumber/resources/rotate_left_home_down_ios5_iphone.base64 +2 -0
  54. data/lib/calabash-cucumber/resources/rotate_left_home_left_ios4_ipad.base64 +2 -0
  55. data/lib/calabash-cucumber/resources/rotate_left_home_left_ios4_iphone.base64 +2 -0
  56. data/lib/calabash-cucumber/resources/rotate_left_home_left_ios5_ipad.base64 +2 -0
  57. data/lib/calabash-cucumber/resources/rotate_left_home_left_ios5_iphone.base64 +2 -0
  58. data/lib/calabash-cucumber/resources/rotate_left_home_right_ios4_ipad.base64 +2 -0
  59. data/lib/calabash-cucumber/resources/rotate_left_home_right_ios4_iphone.base64 +2 -0
  60. data/lib/calabash-cucumber/resources/rotate_left_home_right_ios5_ipad.base64 +2 -0
  61. data/lib/calabash-cucumber/resources/rotate_left_home_right_ios5_iphone.base64 +2 -0
  62. data/lib/calabash-cucumber/resources/rotate_left_home_up_ios4_ipad.base64 +2 -0
  63. data/lib/calabash-cucumber/resources/rotate_left_home_up_ios4_iphone.base64 +2 -0
  64. data/lib/calabash-cucumber/resources/rotate_left_home_up_ios5_ipad.base64 +2 -0
  65. data/lib/calabash-cucumber/resources/rotate_left_home_up_ios5_iphone.base64 +2 -0
  66. data/lib/calabash-cucumber/resources/rotate_right_home_down_ios4_ipad.base64 +2 -0
  67. data/lib/calabash-cucumber/resources/rotate_right_home_down_ios4_iphone.base64 +2 -0
  68. data/lib/calabash-cucumber/resources/rotate_right_home_down_ios5_ipad.base64 +2 -0
  69. data/lib/calabash-cucumber/resources/rotate_right_home_down_ios5_iphone.base64 +2 -0
  70. data/lib/calabash-cucumber/resources/rotate_right_home_left_ios4_ipad.base64 +2 -0
  71. data/lib/calabash-cucumber/resources/rotate_right_home_left_ios4_iphone.base64 +2 -0
  72. data/lib/calabash-cucumber/resources/rotate_right_home_left_ios5_ipad.base64 +2 -0
  73. data/lib/calabash-cucumber/resources/rotate_right_home_left_ios5_iphone.base64 +2 -0
  74. data/lib/calabash-cucumber/resources/rotate_right_home_right_ios4_ipad.base64 +2 -0
  75. data/lib/calabash-cucumber/resources/rotate_right_home_right_ios4_iphone.base64 +2 -0
  76. data/lib/calabash-cucumber/resources/rotate_right_home_right_ios5_ipad.base64 +2 -0
  77. data/lib/calabash-cucumber/resources/rotate_right_home_right_ios5_iphone.base64 +2 -0
  78. data/lib/calabash-cucumber/resources/rotate_right_home_up_ios4_ipad.base64 +2 -0
  79. data/lib/calabash-cucumber/resources/rotate_right_home_up_ios4_iphone.base64 +2 -0
  80. data/lib/calabash-cucumber/resources/rotate_right_home_up_ios5_ipad.base64 +2 -0
  81. data/lib/calabash-cucumber/resources/rotate_right_home_up_ios5_iphone.base64 +2 -0
  82. data/lib/calabash-cucumber/resources/swipe_down_ios5_ipad.base64 +18 -0
  83. data/lib/calabash-cucumber/resources/swipe_down_ios5_iphone.base64 +18 -0
  84. data/lib/calabash-cucumber/resources/swipe_left_hard_ios4_ipad.base64 +15 -0
  85. data/lib/calabash-cucumber/resources/swipe_left_hard_ios4_iphone.base64 +15 -0
  86. data/lib/calabash-cucumber/resources/swipe_left_ios4_ipad.base64 +18 -0
  87. data/lib/calabash-cucumber/resources/swipe_left_ios4_iphone.base64 +18 -0
  88. data/lib/calabash-cucumber/resources/swipe_left_ios5_ipad.base64 +17 -0
  89. data/lib/calabash-cucumber/resources/swipe_left_ios5_iphone.base64 +17 -0
  90. data/lib/calabash-cucumber/resources/swipe_right_hard_ios4_ipad.base64 +17 -0
  91. data/lib/calabash-cucumber/resources/swipe_right_hard_ios4_iphone.base64 +17 -0
  92. data/lib/calabash-cucumber/resources/swipe_right_ios4_ipad.base64 +13 -0
  93. data/lib/calabash-cucumber/resources/swipe_right_ios4_iphone.base64 +13 -0
  94. data/lib/calabash-cucumber/resources/swipe_right_ios5_ipad.base64 +17 -0
  95. data/lib/calabash-cucumber/resources/swipe_right_ios5_iphone.base64 +17 -0
  96. data/lib/calabash-cucumber/resources/swipe_up_ios5_ipad.base64 +34 -0
  97. data/lib/calabash-cucumber/resources/swipe_up_ios5_iphone.base64 +34 -0
  98. data/lib/calabash-cucumber/resources/touch_done_ios4_ipad.base64 +7 -0
  99. data/lib/calabash-cucumber/resources/touch_done_ios4_iphone.base64 +9 -0
  100. data/lib/calabash-cucumber/resources/touch_done_ios5_ipad.base64 +7 -0
  101. data/lib/calabash-cucumber/resources/touch_done_ios5_iphone.base64 +9 -0
  102. data/lib/calabash-cucumber/resources/touch_ios4_ipad.base64 +9 -0
  103. data/lib/calabash-cucumber/resources/touch_ios4_iphone.base64 +9 -0
  104. data/lib/calabash-cucumber/resources/touch_ios5_ipad.base64 +9 -0
  105. data/lib/calabash-cucumber/resources/touch_ios5_iphone.base64 +9 -0
  106. data/lib/calabash-cucumber/resources/wheel_down_ios4_ipad.base64 +159 -0
  107. data/lib/calabash-cucumber/resources/wheel_down_ios4_iphone.base64 +159 -0
  108. data/lib/calabash-cucumber/resources/wheel_down_ios5_ipad.base64 +156 -0
  109. data/lib/calabash-cucumber/resources/wheel_down_ios5_iphone.base64 +156 -0
  110. data/lib/calabash-cucumber/resources/wheel_up_ios4_ipad.base64 +166 -0
  111. data/lib/calabash-cucumber/resources/wheel_up_ios4_iphone.base64 +166 -0
  112. data/lib/calabash-cucumber/resources/wheel_up_ios5_ipad.base64 +156 -0
  113. data/lib/calabash-cucumber/resources/wheel_up_ios5_iphone.base64 +156 -0
  114. data/lib/calabash-cucumber/tests_helpers.rb +136 -0
  115. data/lib/calabash-cucumber/version.rb +6 -0
  116. data/lib/calabash-cucumber/wait_helpers.rb +149 -0
  117. data/scripts/data/.GlobalPreferences.plist +0 -0
  118. data/scripts/data/clients.plist +0 -0
  119. data/scripts/data/com.apple.Accessibility.plist +0 -0
  120. data/scripts/reset_simulator.scpt +0 -0
  121. metadata +319 -0
@@ -0,0 +1,156 @@
1
+ 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
126
+ AAAAAADSAAoACwFmAWcjQHUwAAAAAAAjQHsgAAAAAADVAAIAAwAEAAUABgFpAWoB
127
+ awFuABETAABGJGSBBIZPEEACAAAAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
128
+ AAAAAQACAgIAAACAPwAAgD8AAKlDAIDYQwAAAAAAAAAA0gAKAAsBbAFtI0B1IAAA
129
+ AAAAI0B7EAAAAAAA0gAKAAsBbwFwI0B1IAAAAAAAI0B7EAAAAAAA1QACAAMABAAF
130
+ AAYBcgFzAXQBdwAREwAARiRleLerTxBAAgAAAAEAAQAAAAAAAAAAAAAAAAAAAAAA
131
+ AAAAAAAAAAAAAAEAAgICAAAAgD8AAIA/AICoQwCA2EMAAAAAAAAAANIACgALAXUB
132
+ diNAdRAAAAAAACNAexAAAAAAANIACgALAXgBeSNAdRAAAAAAACNAexAAAAAAANUA
133
+ AgADAAQABQAGAXsBfAF9AYAAERMAAEYkZn9i808QQAIAAAABAAEAAAAAAAAAAAAA
134
+ AAAAAAAAAAAAAAAAAAAAAAABAAICAgAAAIA/AACAPwAAqEMAANhDAAAAAAAAAADS
135
+ AAoACwF+AX8jQHUAAAAAAAAjQHsAAAAAAADSAAoACwGBAYIjQHUAAAAAAAAjQHsA
136
+ AAAAAADVAAIAAwAEAAUABgGEAYUBhgGJABETAABGJGnXbg1PEEAGAAAAAQABAAAA
137
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQACAgEAAACAPwAAgD8AgKdDAADYQwAA
138
+ AAAAAAAA0gAKAAsBhwGII0B08AAAAAAAI0B7AAAAAAAA0gAKAAsBigGLI0B08AAA
139
+ AAAAI0B7AAAAAAAAAAgAYQB2AHsAgACPAJgAnQCmAOkA8gD0APYA/wEIAREBGgEj
140
+ ASYBOwFEAYcBkAGZAaIBqwG0Ab0B0gHbAh4CJwIwAjkCQgJLAlQCaQJyArUCvgLH
141
+ AtAC2QLiAusDAAMJA0wDVQNeA2cDcAN5A4IDlwOgA+MD7AP1A/4EBwQQBBkELgQ3
142
+ BHoEgwSMBJUEngSnBLAExQTOBREFGgUjBSwFNQU+BUcFXAVlBagFsQW6BcMFzAXV
143
+ Bd4F8wX8Bj8GSAZRBloGYwZsBnUGigaTBtYG3wboBvEG+gcDBwwHIQcqB20Hdgd/
144
+ B4gHkQeaB6MHuAfBCAQIDQgWCB8IKAgxCDoITwhYCJsIpAitCLYIvwjICNEI5gjv
145
+ CTIJOwlECU0JVglfCWgJfQmGCckJ0gnbCeQJ7Qn2Cf8KFAodCmAKaQpyCnsKhAqN
146
+ CpYKqwq0CvcLAAsJCxILGwskCy0LQgtLC44LlwugC6kLsgu7C8QL2QviDCUMLgw3
147
+ DEAMSQxSDFsMcAx5DLwMxQzODNcM4AzpDPINBw0QDVMNXA1lDW4Ndw2ADYkNng2n
148
+ DeoN8w38DgUODg4XDiAONQ4+DoEOig6TDpwOpQ6uDrcOzA7VDxgPIQ8qDzMPPA9F
149
+ D04PYw9sD68PuA/BD8oP0w/cD+UP+hADEEYQTxBYEGEQahBzEHwQkRCaEN0Q5hDv
150
+ EPgRAREKERMRKBExEXQRfRGGEY8RmBGhEaoRvxHIEgsSFBIdEiYSLxI4EkESVhJf
151
+ EqISqxK0Er0SxhLPEtgS7RL2EzkTQhNLE1QTXRNmE28ThBONE9AT2RPiE+sT9BP9
152
+ FAYUGxQkFGcUcBR5FIIUixSUFJ0UshS7FP4VBxUQFRkVIhUrFTQVSRVSFZUVnhWn
153
+ FbAVuRXCFcsV4BXpFiwWNRY+FkcWUBZZFmIWdxaAFsMWzBbVFt4W5xbwFvkXDhcX
154
+ F1oXYxdsF3UXfheHF5AXpReuF/EX+hgDGAwYFRgeGCcYPBhFGIgYkRiaGKMYrBi1
155
+ GL4Y0xjcGR8ZKBkxGToZQxlMGVUZahlzGbYZvxnIGdEZ2hnjAAAAAAAAAgIAAAAA
156
+ AAABjAAAAAAAAAAAAAAAAAAAGew=
@@ -0,0 +1,136 @@
1
+ require 'calabash-cucumber/core'
2
+
3
+ module Calabash
4
+ module Cucumber
5
+ module TestsHelpers
6
+ include Calabash::Cucumber::Core
7
+
8
+ def navigation_path(*args)
9
+
10
+ #navigation_path(
11
+ # [:a , 2],
12
+ # [""],
13
+ #)
14
+
15
+
16
+ end
17
+
18
+ def query_map(uiquery,prop, *args)
19
+ query(uiquery,*args).map {|o| o[prop.to_s]}
20
+ end
21
+
22
+ def classes(uiquery,*args)
23
+ query_map(uiquery,:class,*args)
24
+ end
25
+
26
+ def element_does_not_exist(uiquery)
27
+ query(uiquery).empty?
28
+ end
29
+
30
+ def element_exists(uiquery)
31
+ not element_does_not_exist(uiquery)
32
+ end
33
+
34
+ def view_with_mark_exists(expected_mark)
35
+ element_exists("view marked:'#{expected_mark}'")
36
+ end
37
+
38
+ def check_element_exists(query)
39
+ if not element_exists(query)
40
+ screenshot_and_raise "No element found for query: #{query}"
41
+ end
42
+ end
43
+
44
+ def check_element_does_not_exist(query)
45
+ if element_exists(query)
46
+ screenshot_and_raise "Expected no elements to match query: #{query}"
47
+ end
48
+ end
49
+
50
+ def check_view_with_mark_exists(expected_mark)
51
+ check_element_exists("view marked:'#{expected_mark}'")
52
+ end
53
+
54
+ def screenshot_and_raise(msg, options={:prefix => nil, :name => nil, :label => nil})
55
+ screenshot_embed(options)
56
+ raise(msg)
57
+ end
58
+
59
+ def fail(msg="Error. Check log for details.", options={:prefix => nil, :name => nil, :label => nil})
60
+ screenshot_and_raise(msg, options)
61
+ end
62
+
63
+ def each_cell(opts={:query => "tableView", :post_scroll => 0.3, :animate => true}, &block)
64
+ uiquery = opts[:query] || "tableView"
65
+ skip = opts[:skip_if]
66
+ check_element_exists(uiquery)
67
+ secs = query(uiquery,:numberOfSections).first
68
+ secs.times do |sec|
69
+ rows = query(uiquery,{:numberOfRowsInSection => sec}).first
70
+ rows.times do |row|
71
+ next if skip and skip.call(row,sec)
72
+ scroll_opts = {:section => sec, :row => row}.merge(opts)
73
+ scroll_to_cell(scroll_opts)
74
+ sleep(opts[:post_scroll]) if opts[:post_scroll] and opts[:post_scroll] > 0
75
+ yield(row, sec)
76
+ end
77
+ end
78
+ end
79
+
80
+ def each_cell_and_back(opts={:query => "tableView",
81
+ :post_scroll => 0.3,
82
+ :post_back => 0.5,
83
+ :post_tap_cell => 0.3,
84
+ :animate => true}, &block)
85
+ back_query = opts[:back_query] || "navigationItemButtonView"
86
+ post_tap_cell = opts[:post_tap_cell] || 0.3
87
+ post_back = opts[:post_back] || 0.6
88
+
89
+
90
+ each_cell(opts) do |row, sec|
91
+ touch("tableViewCell indexPath:#{row},#{sec}")
92
+ wait_for_elements_exist([back_query])
93
+ sleep(post_tap_cell) if post_tap_cell > 0
94
+
95
+ yield(row,sec) if block_given?
96
+
97
+ touch(back_query)
98
+
99
+ sleep(post_back) if post_back > 0
100
+
101
+ end
102
+ end
103
+
104
+
105
+ def screenshot_embed(options={:prefix => nil, :name => nil, :label => nil})
106
+ path = screenshot(options)
107
+ embed(path, "image/png", options[:label] || File.basename(path))
108
+ end
109
+
110
+ def screenshot(options={:prefix => nil, :name => nil})
111
+ prefix = options[:prefix]
112
+ name = options[:name]
113
+
114
+ @@screenshot_count ||= 0
115
+ res = http({:method => :get, :path => 'screenshot'})
116
+ prefix = prefix || ENV['SCREENSHOT_PATH'] || ""
117
+ if name.nil?
118
+ name = "screenshot"
119
+ else
120
+ if File.extname(name).downcase == ".png"
121
+ name = name.split(".png")[0]
122
+ end
123
+ end
124
+
125
+ path = "#{prefix}#{name}_#{@@screenshot_count}.png"
126
+ File.open(path, 'wb') do |f|
127
+ f.write res
128
+ end
129
+ @@screenshot_count += 1
130
+ path
131
+ end
132
+
133
+
134
+ end
135
+ end
136
+ end
@@ -0,0 +1,6 @@
1
+ module Calabash
2
+ module Cucumber
3
+ VERSION = "0.9.127"
4
+ FRAMEWORK_VERSION = "0.9.126"
5
+ end
6
+ end
@@ -0,0 +1,149 @@
1
+ require 'calabash-cucumber/core'
2
+ require 'calabash-cucumber/tests_helpers'
3
+
4
+ module Calabash
5
+ module Cucumber
6
+ module WaitHelpers
7
+ include Calabash::Cucumber::Core
8
+ include Calabash::Cucumber::TestsHelpers
9
+
10
+
11
+ class WaitError < RuntimeError
12
+ end
13
+ CALABASH_CONDITIONS = {:none_animating => "NONE_ANIMATING",
14
+ :no_network_indicator => "NO_NETWORK_INDICATOR"}
15
+
16
+
17
+ def wait_for(options_or_timeout=
18
+ {:timeout => 10,
19
+ :retry_frequency => 0.2,
20
+ :post_timeout => 0.1,
21
+ :timeout_message => "Timed out waiting...",
22
+ :screenshot_on_error => true}, &block)
23
+ #note Hash is preferred, number acceptable for backwards compat
24
+ timeout=options_or_timeout
25
+ post_timeout=0.1
26
+ retry_frequency=0.2
27
+ timeout_message = nil
28
+ screenshot_on_error = true
29
+
30
+ if options_or_timeout.is_a?(Hash)
31
+ timeout = options_or_timeout[:timeout] || 10
32
+ retry_frequency = options_or_timeout[:retry_frequency] || 0.2
33
+ post_timeout = options_or_timeout[:post_timeout] || 0.1
34
+ timeout_message = options_or_timeout[:timeout_message]
35
+ screenshot_on_error = options_or_timeout[:screenshot_on_error] || true
36
+ end
37
+
38
+ begin
39
+ Timeout::timeout(timeout,WaitError) do
40
+ sleep(retry_frequency) until yield
41
+ end
42
+ sleep(post_timeout) if post_timeout > 0
43
+ rescue WaitError => e
44
+ handle_error_with_options(e,timeout_message, screenshot_on_error)
45
+ rescue Exception => e
46
+ handle_error_with_options(e, nil, screenshot_on_error)
47
+ end
48
+ end
49
+
50
+ def wait_poll(opts, &block)
51
+ test = opts[:until]
52
+ if test.nil?
53
+ cond = opts[:until_exists]
54
+ raise "Must provide :until or :until_exists" unless cond
55
+ test = lambda { element_exists(cond) }
56
+ end
57
+ wait_for(opts) do
58
+ if test.call()
59
+ true
60
+ else
61
+ yield
62
+ false
63
+ end
64
+ end
65
+ end
66
+
67
+ #options for wait_for apply
68
+ def wait_for_elements_exist(elements_arr, options={})
69
+ options[:timeout_message] = options[:timeout_message] || "Timeout waiting for elements: #{elements_arr.join(",")}"
70
+ wait_for(options) do
71
+ elements_arr.all? { |q| element_exists(q) }
72
+ end
73
+ end
74
+ #options for wait_for apply
75
+ def wait_for_elements_do_not_exist(elements_arr, options={})
76
+ options[:timeout_message] = options[:timeout_message] || "Timeout waiting for no elements matching: #{elements_arr.join(",")}"
77
+ wait_for(options) do
78
+ elements_arr.none? { |q| element_exists(q) }
79
+ end
80
+ end
81
+
82
+ def wait_for_condition(options = {})
83
+ options[:timeout] = options[:timeout] || 10
84
+ options[:query] = options[:query] || "view"
85
+ options[:condition] = options[:condition] || CALABASH_CONDITIONS[:none_animating]
86
+ options[:post_timeout] = options[:post_timeout] || 0.1
87
+ options[:frequency] = options[:frequency] || 0.2
88
+ options[:retry_frequency] = options[:retry_frequency] || 0.2
89
+ options[:count] = options[:count] || 2
90
+ options[:timeout_message] = options[:timeout_message] || "Timeout waiting for condition (#{options[:condition]})"
91
+ options[:screenshot_on_error] = options[:screenshot_on_error] || true
92
+
93
+ if options[:condition] == CALABASH_CONDITIONS[:none_animating]
94
+ #puts "Waiting for none-animating has been found unreliable."
95
+ #puts "You are advised not to use it until this is resolved."
96
+ #puts "Test will continue..."
97
+ end
98
+ begin
99
+ Timeout::timeout(options[:timeout],WaitError) do
100
+ loop do
101
+ res = http({:method => :post, :path => 'condition'},
102
+ options)
103
+ res = JSON.parse(res)
104
+ break if res['outcome'] == 'SUCCESS'
105
+ sleep(options[:retry_frequency]) if options[:retry_frequency] > 0
106
+ end
107
+ sleep(options[:post_timeout]) if options[:post_timeout] > 0
108
+ end
109
+ rescue WaitError => e
110
+ handle_error_with_options(e,options[:timeout_message], options[:screenshot_on_error])
111
+ rescue Exception => e
112
+ handle_error_with_options(e,nil, options[:screenshot_on_error])
113
+ end
114
+ end
115
+
116
+ def wait_for_none_animating(options = {})
117
+ #sleep(0.3)
118
+ options[:condition] = CALABASH_CONDITIONS[:none_animating]
119
+ wait_for_condition(options)
120
+ end
121
+
122
+ #may be called with a string (query) or an array of strings
123
+ def wait_for_transition(done_queries, check_options={},animation_options={})
124
+ done_queries = [*done_queries]
125
+ wait_for_elements_exist(done_queries,check_options)
126
+ wait_for_none_animating(animation_options)
127
+ end
128
+
129
+ def touch_transition(touch_q, done_queries,check_options={},animation_options={})
130
+ touch(touch_q)
131
+ wait_for_transition(done_queries,check_options,animation_options)
132
+ end
133
+
134
+ def handle_error_with_options(ex, timeout_message, screenshot_on_error)
135
+ msg = (timeout_message || ex)
136
+ if ex
137
+ msg = "#{msg} (#{ex.class})"
138
+ end
139
+ if screenshot_on_error
140
+ screenshot_and_raise msg
141
+ else
142
+ raise msg
143
+ end
144
+ end
145
+
146
+
147
+ end
148
+ end
149
+ end