testautoi 0.9.127 → 0.9.133

Sign up to get free protection for your applications and to get access to all the features.
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
13
13
  s.description = %q{calabash-cucumber drives tests for native iOS apps. You must link your app with calabash-ios-server framework to execute tests.}
14
14
  s.files = `git ls-files`.split("\n")
15
15
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
- s.executables = "calabash-ios"
16
+ s.executables = ["calabash-ios", "testautoi"]
17
17
  s.require_paths = ["lib"]
18
18
 
19
19
  s.add_dependency( "cucumber" )
@@ -21,9 +21,10 @@ Gem::Specification.new do |s|
21
21
  s.add_dependency( "CFPropertyList" )
22
22
  s.add_dependency( "sim_launcher", "0.4.6")
23
23
  s.add_dependency( "slowhandcuke" )
24
- s.add_dependency( "location-one", "~>0.0.8")
25
- s.add_dependency( "httpclient","2.2.7")
24
+ s.add_dependency( "location-one", "~>0.0.9")
25
+ s.add_dependency( "httpclient","2.3.2")
26
26
  s.add_dependency( "bundler", "~> 1.1")
27
- s.add_dependency( "run_loop", "~>0.0.3" )
27
+ s.add_dependency( "run_loop", "0.0.5" )
28
+ s.add_dependency( "awesome_print")
28
29
 
29
30
  end
@@ -51,6 +51,13 @@ Then /^I (?:press|touch) the "([^\"]*)" button$/ do |name|
51
51
  sleep(STEP_PAUSE)
52
52
  end
53
53
 
54
+ Then /^I (?:press|touch) (?:input|text) field number (\d+)$/ do |index|
55
+ index = index.to_i
56
+ screenshot_and_raise "Index should be positive (was: #{index})" if (index<=0)
57
+ touch("textField index:#{index-1}")
58
+ sleep(STEP_PAUSE)
59
+ end
60
+
54
61
  Then /^I (?:press|touch) the "([^\"]*)" (?:input|text) field$/ do |name|
55
62
  touch("textField placeholder:'#{name}'")
56
63
  sleep(STEP_PAUSE)
@@ -124,7 +131,10 @@ Then /^I fill in "([^\"]*)" with "([^\"]*)"$/ do |text_field, text_to_type|
124
131
  end
125
132
 
126
133
  Then /^I use the native keyboard to enter "([^\"]*)" into the "([^\"]*)" (?:text|input) field$/ do |text_to_type, field_name|
127
- raise "Native keyboard entering is not yet implemented on iOS"
134
+ macro %Q|I touch the "#{field_name}" text field|
135
+ await_keyboard()
136
+ keyboard_enter_text(text_to_type)
137
+ sleep(STEP_PAUSE)
128
138
  end
129
139
 
130
140
  Then /^I fill in text fields as follows:$/ do |table|
@@ -145,11 +155,13 @@ Then /^I enter "([^\"]*)" into text view number (\d+)$/ do |text, index|
145
155
  set_text("textView index:#{index-1}",text)
146
156
  end
147
157
 
148
- Then /^I use the native keyboard to enter "([^\"]*)" into (?:input|text) field number (\d+)$/ do |text, index|
149
- raise "Native keyboard entering is not yet implemented on iOS"
158
+ Then /^I use the native keyboard to enter "([^\"]*)" into (?:input|text) field number (\d+)$/ do |text_to_type, index|
159
+ macro %Q|I touch text field number #{index}|
160
+ await_keyboard()
161
+ keyboard_enter_text(text_to_type)
162
+ sleep(STEP_PAUSE)
150
163
  end
151
164
 
152
-
153
165
  When /^I clear "([^\"]*)"$/ do |name|
154
166
  macro %Q|I enter "" into the "#{name}" text field|
155
167
  end
@@ -45,14 +45,42 @@ module Calabash
45
45
  args = args[0]
46
46
  end
47
47
  end
48
- map(q, :query_all, *args)
48
+ map(q, :query, *args)
49
49
  end
50
50
 
51
51
  def query_all(uiquery, *args)
52
- map(uiquery, :query_all, *args)
52
+ puts "query_all is deprecated. Use the new all/visible feature."
53
+ puts "see: https://github.com/calabash/calabash-ios/wiki/05-Query-syntax"
54
+ map("all #{uiquery}", :query, *args)
53
55
  end
54
56
 
55
57
  def touch(uiquery, options={})
58
+ if (uiquery.is_a?(Array))
59
+ raise "No elements to touch in array" if uiquery.empty?
60
+ uiquery = uiquery.first
61
+ end
62
+ if (uiquery.is_a?(Hash))
63
+ offset_x = 0
64
+ offset_y = 0
65
+ if options[:offset]
66
+ offset_x += options[:offset][:x] || 0
67
+ offset_y += options[:offset][:y] || 0
68
+ end
69
+ x = offset_x
70
+ y = offset_y
71
+ rect = uiquery["rect"] || uiquery[:rect]
72
+ if rect
73
+ x += rect['center_x'] || rect[:center_x] || rect[:x] || 0
74
+ y += rect['center_y'] || rect[:center_y] || rect[:y] || 0
75
+ else
76
+ x += uiquery['center_x'] || uiquery[:center_x] || uiquery[:x] || 0
77
+ y += uiquery['center_y'] || uiquery[:center_y] || uiquery[:y] || 0
78
+ end
79
+
80
+ options[:offset] = {:x => x, :y => y}
81
+ return touch(nil, options)
82
+ end
83
+
56
84
  options[:query] = uiquery
57
85
  views_touched = playback("touch", options)
58
86
  unless uiquery.nil?
@@ -278,7 +306,7 @@ module Calabash
278
306
  end
279
307
 
280
308
 
281
- def load_recording(recording,rec_dir)
309
+ def load_recording(recording, rec_dir)
282
310
  data = nil
283
311
  if (File.exists?(recording))
284
312
  data = File.read(recording)
@@ -315,13 +343,13 @@ EOF
315
343
  rec_dir = ENV['PLAYBACK_DIR'] || "#{Dir.pwd}/playback"
316
344
 
317
345
  recording = recording_name_for(recording_name, os, device)
318
- data = load_recording(recording,rec_dir)
346
+ data = load_recording(recording, rec_dir)
319
347
 
320
348
  if data.nil? and os=="ios6"
321
349
  recording = recording_name_for(recording_name, "ios5", device)
322
350
  end
323
351
 
324
- data = load_recording(recording,rec_dir)
352
+ data = load_recording(recording, rec_dir)
325
353
 
326
354
  if data.nil?
327
355
  screenshot_and_raise "Playback not found: #{recording} (searched for #{recording} in #{Dir.pwd}, #{rec_dir}, #{DATA_PATH}/resources"
@@ -450,7 +478,7 @@ EOF
450
478
  end
451
479
  app_bundle_path = Calabash::Cucumber::SimulatorHelper.app_bundle_or_raise(path)
452
480
 
453
- @ios_device = RunLoop.run(:app => app_bundle_path)
481
+ @ios_device = RunLoop.run(:app => app_bundle_path)
454
482
  end
455
483
 
456
484
  def send_uia_command(opts ={})
@@ -464,7 +492,6 @@ EOF
464
492
  end
465
493
 
466
494
 
467
-
468
495
  def http(options, data=nil)
469
496
  options[:uri] = url_for(options[:path])
470
497
  options[:method] = options[:method] || :get
@@ -507,11 +534,12 @@ EOF
507
534
  body = @http.get(options[:uri], options[:body]).body
508
535
  end
509
536
  break
510
- rescue HTTPClient::TimeoutError => e
537
+ rescue HTTPClient::TimeoutError, HTTPClient::KeepAliveDisconnected => e
511
538
  if count < CAL_HTTP_RETRY_COUNT-1
512
- sleep(0.5)
513
539
  @http.reset_all
514
540
  @http=nil
541
+ STDOUT.write "Waiting 5 secs before retry...\n"
542
+ sleep(5)
515
543
  STDOUT.write "Retrying.. #{e.class}: (#{e})\n"
516
544
  STDOUT.flush
517
545
 
@@ -519,6 +547,7 @@ EOF
519
547
  puts "Failing... #{e.class}"
520
548
  raise e
521
549
  end
550
+
522
551
  rescue Exception => e
523
552
  if retryable_errors.include?(e)
524
553
  if count < CAL_HTTP_RETRY_COUNT-1
@@ -546,6 +575,9 @@ EOF
546
575
  http.connect_timeout = 15
547
576
  http.send_timeout = 15
548
577
  http.receive_timeout = 15
578
+ if ENV['DEBUG_HTTP'] and (ENV['DEBUG_HTTP'] != "0")
579
+ http.debug_dev = $stdout
580
+ end
549
581
  http
550
582
  end
551
583
  end
@@ -1,6 +1,6 @@
1
1
  module Calabash
2
2
  module Cucumber
3
- VERSION = "0.9.127"
3
+ VERSION = "0.9.133"
4
4
  FRAMEWORK_VERSION = "0.9.126"
5
5
  end
6
6
  end
@@ -32,7 +32,9 @@ module Calabash
32
32
  retry_frequency = options_or_timeout[:retry_frequency] || 0.2
33
33
  post_timeout = options_or_timeout[:post_timeout] || 0.1
34
34
  timeout_message = options_or_timeout[:timeout_message]
35
- screenshot_on_error = options_or_timeout[:screenshot_on_error] || true
35
+ if options_or_timeout.key?(:screenshot_on_error)
36
+ screenshot_on_error = options_or_timeout[:screenshot_on_error]
37
+ end
36
38
  end
37
39
 
38
40
  begin
@@ -1,6 +1,8 @@
1
1
  require 'rubygems'
2
2
  require 'irb/completion'
3
3
  require 'irb/ext/save-history'
4
+ require 'awesome_print'
5
+ AwesomePrint.irb!
4
6
 
5
7
  ARGV.concat [ "--readline",
6
8
  "--prompt-mode",
@@ -16,7 +18,7 @@ require 'calabash-cucumber/operations'
16
18
  require 'calabash-cucumber/launch/simulator_helper'
17
19
  SIM=Calabash::Cucumber::SimulatorHelper
18
20
 
19
- include Calabash::Cucumber::Operations
21
+ extend Calabash::Cucumber::Operations
20
22
 
21
23
  def embed(x,y=nil,z=nil)
22
24
  puts "Screenshot at #{x}"
metadata CHANGED
@@ -1,172 +1,208 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: testautoi
3
- version: !ruby/object:Gem::Version
4
- hash: 197
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.133
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 9
9
- - 127
10
- version: 0.9.127
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - jimtsay
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-12-20 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2013-03-18 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: cucumber
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
32
22
  type: :runtime
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: json
36
23
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
38
25
  none: false
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: json
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
46
38
  type: :runtime
47
- version_requirements: *id002
48
- - !ruby/object:Gem::Dependency
49
- name: CFPropertyList
50
39
  prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
52
41
  none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- hash: 3
57
- segments:
58
- - 0
59
- version: "0"
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: CFPropertyList
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
60
54
  type: :runtime
61
- version_requirements: *id003
62
- - !ruby/object:Gem::Dependency
63
- name: sim_launcher
64
55
  prerelease: false
65
- requirement: &id004 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: sim_launcher
64
+ requirement: !ruby/object:Gem::Requirement
66
65
  none: false
67
- requirements:
68
- - - "="
69
- - !ruby/object:Gem::Version
70
- hash: 3
71
- segments:
72
- - 0
73
- - 4
74
- - 6
66
+ requirements:
67
+ - - '='
68
+ - !ruby/object:Gem::Version
75
69
  version: 0.4.6
76
70
  type: :runtime
77
- version_requirements: *id004
78
- - !ruby/object:Gem::Dependency
79
- name: slowhandcuke
80
71
  prerelease: false
81
- requirement: &id005 !ruby/object:Gem::Requirement
72
+ version_requirements: !ruby/object:Gem::Requirement
82
73
  none: false
83
- requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- hash: 3
87
- segments:
88
- - 0
89
- version: "0"
74
+ requirements:
75
+ - - '='
76
+ - !ruby/object:Gem::Version
77
+ version: 0.4.6
78
+ - !ruby/object:Gem::Dependency
79
+ name: slowhandcuke
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
90
86
  type: :runtime
91
- version_requirements: *id005
92
- - !ruby/object:Gem::Dependency
93
- name: location-one
94
87
  prerelease: false
95
- requirement: &id006 !ruby/object:Gem::Requirement
88
+ version_requirements: !ruby/object:Gem::Requirement
96
89
  none: false
97
- requirements:
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: location-one
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
98
99
  - - ~>
99
- - !ruby/object:Gem::Version
100
- hash: 15
101
- segments:
102
- - 0
103
- - 0
104
- - 8
105
- version: 0.0.8
100
+ - !ruby/object:Gem::Version
101
+ version: 0.0.9
106
102
  type: :runtime
107
- version_requirements: *id006
108
- - !ruby/object:Gem::Dependency
109
- name: httpclient
110
103
  prerelease: false
111
- requirement: &id007 !ruby/object:Gem::Requirement
104
+ version_requirements: !ruby/object:Gem::Requirement
112
105
  none: false
113
- requirements:
114
- - - "="
115
- - !ruby/object:Gem::Version
116
- hash: 9
117
- segments:
118
- - 2
119
- - 2
120
- - 7
121
- version: 2.2.7
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 0.0.9
110
+ - !ruby/object:Gem::Dependency
111
+ name: httpclient
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - '='
116
+ - !ruby/object:Gem::Version
117
+ version: 2.3.2
122
118
  type: :runtime
123
- version_requirements: *id007
124
- - !ruby/object:Gem::Dependency
125
- name: bundler
126
119
  prerelease: false
127
- requirement: &id008 !ruby/object:Gem::Requirement
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - '='
124
+ - !ruby/object:Gem::Version
125
+ version: 2.3.2
126
+ - !ruby/object:Gem::Dependency
127
+ name: bundler
128
+ requirement: !ruby/object:Gem::Requirement
128
129
  none: false
129
- requirements:
130
+ requirements:
130
131
  - - ~>
131
- - !ruby/object:Gem::Version
132
- hash: 13
133
- segments:
134
- - 1
135
- - 1
136
- version: "1.1"
132
+ - !ruby/object:Gem::Version
133
+ version: '1.1'
137
134
  type: :runtime
138
- version_requirements: *id008
139
- - !ruby/object:Gem::Dependency
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: '1.1'
142
+ - !ruby/object:Gem::Dependency
140
143
  name: run_loop
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ~>
148
+ - !ruby/object:Gem::Version
149
+ version: 0.0.5
150
+ type: :runtime
141
151
  prerelease: false
142
- requirement: &id009 !ruby/object:Gem::Requirement
152
+ version_requirements: !ruby/object:Gem::Requirement
143
153
  none: false
144
- requirements:
154
+ requirements:
145
155
  - - ~>
146
- - !ruby/object:Gem::Version
147
- hash: 25
148
- segments:
149
- - 0
150
- - 0
151
- - 3
152
- version: 0.0.3
156
+ - !ruby/object:Gem::Version
157
+ version: 0.0.5
158
+ - !ruby/object:Gem::Dependency
159
+ name: awesome_print
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
153
166
  type: :runtime
154
- version_requirements: *id009
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ - !ruby/object:Gem::Dependency
175
+ name: rest-client
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ type: :runtime
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
155
190
  description: Description
156
191
  email:
157
- executables:
192
+ executables:
158
193
  - calabash-ios
194
+ - testautoi
159
195
  extensions: []
160
-
161
196
  extra_rdoc_files: []
162
-
163
- files:
197
+ files:
164
198
  - .gitignore
165
199
  - CHANGES.txt
166
200
  - Gemfile
167
201
  - LICENSE
168
202
  - Rakefile
169
203
  - bin/CalabashSetup
204
+ - bin/GetIPAddress.js
205
+ - bin/LaunchApp.js
170
206
  - bin/cal.xcconfig
171
207
  - bin/calabash-ios
172
208
  - bin/calabash-ios-build.rb
@@ -174,12 +210,12 @@ files:
174
210
  - bin/calabash-ios-helpers.rb
175
211
  - bin/calabash-ios-setup.rb
176
212
  - bin/calabash-ios-sim.rb
213
+ - bin/devicedetect
214
+ - bin/fruitstrap
215
+ - bin/testautoi
177
216
  - calabash-cucumber.gemspec
178
217
  - doc/calabash-ios-help.txt
179
218
  - epl-v10.html
180
- - features-skeleton/.irbrc
181
- - features-skeleton/irb_ios4.sh
182
- - features-skeleton/irb_ios5.sh
183
219
  - features-skeleton/my_first.feature
184
220
  - features-skeleton/step_definitions/calabash_steps.rb
185
221
  - features-skeleton/step_definitions/my_first_steps.rb
@@ -277,43 +313,35 @@ files:
277
313
  - lib/calabash-cucumber/tests_helpers.rb
278
314
  - lib/calabash-cucumber/version.rb
279
315
  - lib/calabash-cucumber/wait_helpers.rb
316
+ - scripts/.irbrc
280
317
  - scripts/data/.GlobalPreferences.plist
281
318
  - scripts/data/clients.plist
282
319
  - scripts/data/com.apple.Accessibility.plist
283
320
  - scripts/reset_simulator.scpt
284
321
  homepage:
285
322
  licenses: []
286
-
287
323
  post_install_message:
288
324
  rdoc_options: []
289
-
290
- require_paths:
325
+ require_paths:
291
326
  - lib
292
- required_ruby_version: !ruby/object:Gem::Requirement
327
+ required_ruby_version: !ruby/object:Gem::Requirement
293
328
  none: false
294
- requirements:
295
- - - ">="
296
- - !ruby/object:Gem::Version
297
- hash: 3
298
- segments:
299
- - 0
300
- version: "0"
301
- required_rubygems_version: !ruby/object:Gem::Requirement
329
+ requirements:
330
+ - - ! '>='
331
+ - !ruby/object:Gem::Version
332
+ version: '0'
333
+ required_rubygems_version: !ruby/object:Gem::Requirement
302
334
  none: false
303
- requirements:
304
- - - ">="
305
- - !ruby/object:Gem::Version
306
- hash: 3
307
- segments:
308
- - 0
309
- version: "0"
335
+ requirements:
336
+ - - ! '>='
337
+ - !ruby/object:Gem::Version
338
+ version: '0'
310
339
  requirements: []
311
-
312
340
  rubyforge_project:
313
- rubygems_version: 1.8.24
341
+ rubygems_version: 1.8.25
314
342
  signing_key:
315
343
  specification_version: 3
316
344
  summary: Summary
317
- test_files:
345
+ test_files:
318
346
  - features/step_definitions/calabash_steps.rb
319
347
  has_rdoc: