testautoi 0.9.127 → 0.9.133

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.
@@ -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: