testautoi 0.9.127

Sign up to get free protection for your applications and to get access to all the features.
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