frank-cucumber 0.9.8 → 1.0.0.pre2

Sign up to get free protection for your applications and to get access to all the features.
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
22
22
 
23
23
  s.add_dependency( "cucumber" )
24
24
  s.add_dependency( "rspec", [">=2.0"] )
25
- s.add_dependency( "sim_launcher", [">=0.4.5"] )
25
+ s.add_dependency( "sim_launcher", [">=0.4.6"] )
26
26
  s.add_dependency( "i18n" )
27
27
  s.add_dependency( "plist" )
28
28
  s.add_dependency( "json" ) # TODO: figure out how to be more permissive as to which JSON gems we allow
Binary file
Binary file
Binary file
@@ -73,8 +73,6 @@ module Frank
73
73
 
74
74
  FileUtils.mv( Dir.glob( "#{build_output_dir}/*.app" ).first, frankified_app_dir )
75
75
 
76
- fix_frankified_apps_bundle_identifier
77
-
78
76
  in_root do
79
77
  FileUtils.cp_r(
80
78
  File.join( 'Frank',static_bundle),
@@ -165,20 +163,6 @@ module Frank
165
163
  File.join( build_output_dir, app_bundle_name )
166
164
  end
167
165
 
168
- def fix_frankified_apps_bundle_identifier
169
- # as of iOS 6 the iOS Simulator locks up with a black screen if you try and launch an app which has the same
170
- # bundle identifier as a previously installed app but which is in fact a different app. This impacts us because our
171
- # Frankified app is different but has the same bundle identifier as the standard non-Frankified app which most users
172
- # will want to have installed in the simulator as well.
173
- #
174
- # We work around this by modifying the Frankified app's bundle identifier inside its Info.plist.
175
- inside frankified_app_dir do
176
- existing_bundle_identifier = `/usr/libexec/PlistBuddy -c 'Print :CFBundleIdentifier' Info.plist`.chomp
177
- new_bundle_identifier = existing_bundle_identifier + '.frankified'
178
- run %Q|/usr/libexec/PlistBuddy -c 'Set :CFBundleIdentifier #{new_bundle_identifier}' Info.plist|
179
- end
180
- end
181
-
182
166
  end
183
167
  end
184
168
 
@@ -132,32 +132,8 @@ When /^I enter the text "([^\\"]*)" from keyboard to the textfield "([^\\"]*)"$/
132
132
  end
133
133
 
134
134
  # -- Rotate -- #
135
- Given /^the device is in (a )?landscape orientation$/ do |ignored|
136
- # for some reason the simulator sometimes starts of reporting its orientation as 'flat'. Workaround for this is to rotate the device then wait a bit
137
- if 'flat' == frankly_current_orientation
138
- rotate_simulator_right
139
- sleep 1
140
- end
141
-
142
- unless frankly_oriented_landscape?
143
- rotate_simulator_left
144
- sleep 1
145
- raise "expected orientation to be landscape after rotating left, but it is #{frankly_current_orientation}" unless frankly_oriented_landscape?
146
- end
147
- end
148
-
149
- Given /^the device is in (a )?portrait orientation$/ do |ignored|
150
- # for some reason the simulator sometimes starts of reporting its orientation as 'flat'. Workaround for this is to rotate the device then wait a bit
151
- if 'flat' == frankly_current_orientation
152
- rotate_simulator_right
153
- sleep 1
154
- end
155
-
156
- unless frankly_oriented_portrait?
157
- rotate_simulator_left
158
- sleep 1
159
- raise "Expected orientation to be portrait after rotating left, but it is #{frankly_current_orientation}" unless frankly_oriented_portrait?
160
- end
135
+ Given /^the device is in (a )?(landscape|portrait) orientation$/ do |_,orientation|
136
+ frankly_set_orientation orientation
161
137
  end
162
138
 
163
139
  When /^I simulate a memory warning$/ do
@@ -3,7 +3,6 @@ require 'frank-cucumber/gateway'
3
3
  require 'frank-cucumber/host_scripting'
4
4
  require 'frank-cucumber/wait_helper'
5
5
  require 'frank-cucumber/keyboard_helper'
6
- require 'frank-cucumber/scroll_helper'
7
6
  require 'frank-cucumber/bonjour'
8
7
 
9
8
  module Frank module Cucumber
@@ -25,7 +24,6 @@ module Frank module Cucumber
25
24
  module FrankHelper
26
25
  include WaitHelper
27
26
  include KeyboardHelper
28
- include ScrollHelper
29
27
  include HostScripting
30
28
 
31
29
  # @!attribute [rw] selector_engine
@@ -275,6 +273,16 @@ module FrankHelper
275
273
  orientation
276
274
  end
277
275
 
276
+
277
+ # set the device orientation
278
+ # @param orientation can be 'landscape','landscape_left','landscape_right','portrait', or 'portrait_upside_down'
279
+ def frankly_set_orientation(orientation)
280
+ orientation = orientation.to_s
281
+ orientation = 'landscape_left' if orientation == 'landscape'
282
+ res = frank_server.send_post( 'orientation', orientation )
283
+ return Gateway.evaluate_frankly_response( res, "set_orientation #{orientation}" )
284
+ end
285
+
278
286
  # @return [Boolean] Does the device running the application have accessibility enabled.
279
287
  # If accessibility is not enabled then a lot of Frank functionality will not work.
280
288
  def frankly_is_accessibility_enabled
@@ -16,8 +16,6 @@ module Frank
16
16
  :zh
17
17
  when /^ja_/
18
18
  :ja
19
- when /^es_/
20
- :es
21
19
  else
22
20
  :en
23
21
  end
@@ -19,15 +19,10 @@ class Frankifier
19
19
  decide_on_project
20
20
  decide_on_target
21
21
  report_project_and_target
22
-
23
- check_target_build_configuration_is_valid!
24
-
25
22
  say ''
26
23
  add_linker_flag
27
-
28
24
  say ''
29
25
  add_library_search_path
30
-
31
26
  save_changes
32
27
  end
33
28
 
@@ -83,11 +78,11 @@ class Frankifier
83
78
  setting_array = Array( build_settings_to_edit[build_setting] )
84
79
 
85
80
  if setting_array.find{ |flag| flag.start_with? "$(FRANK_" }
86
- say "It appears that your '#{@target_build_configuration}' configuration's #{build_setting} build setting already include some FRANK setup. Namely: #{setting_array.inspect}. I won't change anything here."
81
+ say "It appears that your Debug configuration's #{build_setting} build setting already include some FRANK setup. Namely: #{setting_array.inspect}. I won't change anything here."
87
82
  return
88
83
  end
89
84
 
90
- say "Adding $(inherited) and $(#{entry_to_add}) to your '#{@target_build_configuration}' configuration's #{build_setting} build setting ..."
85
+ say "Adding $(inherited) and $(#{entry_to_add}) to your Debug configuration's #{build_setting} build setting ..."
91
86
  setting_array.unshift "$(inherited)"
92
87
  setting_array << "$(#{entry_to_add})"
93
88
  setting_array.uniq! # mainly to avoid duplicate $(inherited) entries
@@ -96,19 +91,6 @@ class Frankifier
96
91
  build_settings_to_edit[build_setting] = setting_array
97
92
  end
98
93
 
99
- def check_target_build_configuration_is_valid!
100
- unless @target.build_configuration_list.build_configurations.object_named @target_build_configuration
101
- say %Q|I'm trying to Frankify the '#{@target_build_configuration}' build configuration, but I don't see it that build configuration in your XCode target. Here's a list of the build configurations I see:|
102
- @target.build_configuration_list.build_configurations.each do |bc|
103
- say " '#{bc.name}'"
104
- end
105
- say ''
106
- say %Q|Please specify one of those build configurations using the --build_configuration flag|
107
- exit
108
- end
109
-
110
- end
111
-
112
94
  def build_settings_to_edit
113
95
  @_build_settings_to_edit ||= @target.build_configuration_list.build_settings(@target_build_configuration)
114
96
  end
@@ -54,10 +54,12 @@ class Gateway
54
54
  end
55
55
 
56
56
  #taken from Ian Dee's Encumber
57
- def send_post( verb, command_hash )
57
+ def send_post( verb, command )
58
+ command = command.to_json unless command.is_a? String
59
+
58
60
  url = frank_url_for( verb )
59
61
  req = Net::HTTP::Post.new url.path
60
- req.body = command_hash.to_json
62
+ req.body = command
61
63
 
62
64
  make_http_request( url, req )
63
65
  end
@@ -24,6 +24,10 @@ module Launcher
24
24
  end
25
25
  raise "\n\n"+("="*80)+"\n"+message+"\n"+("="*80)+"\n\n"
26
26
  end
27
+
28
+ if app_path_problem = SimLauncher.check_app_path(app_path)
29
+ raise "\n\n"+("="*80)+"\n"+app_path_problem+"\n"+("="*80)+"\n\n"
30
+ end
27
31
  end
28
32
 
29
33
  def launch_app(app_path, sdk = nil, version = 'iphone')
@@ -63,14 +63,3 @@ ja:
63
63
  simulate_memory_warning: メモリ警告をシミュレート
64
64
  toggle_in_call_status_bar: 着信ステータスバーを切り替える
65
65
  simulate_hardware_keyboard: ハードウェアキーボードをシミュレート
66
-
67
- es:
68
- iphone_simulator: Simulador iOS
69
- hardware: Hardware
70
- home: Inicio
71
- rotate_left: Girar a la izquierda
72
- rotate_right: Girar a la derecha
73
- shake_gesture: Agitar
74
- simulate_memory_warning: Simular aviso de memoria
75
- toggle_in_call_status_bar: Activar/Desactivar barra de estado durante llamada
76
- simulate_hardware_keyboard: Simular teclado físico
@@ -1,5 +1,5 @@
1
1
  module Frank
2
2
  module Cucumber
3
- VERSION = "0.9.8"
3
+ VERSION = "1.0.0.pre2"
4
4
  end
5
5
  end
@@ -9,6 +9,11 @@ def wait_for_frank_to_come_up
9
9
  end
10
10
 
11
11
  describe "frank cucumber launcher" do
12
+ DUMMY_APP_PATH = '/tmp/dummy_app_path'
13
+
14
+ before do
15
+ `mkdir -p #{DUMMY_APP_PATH}`
16
+ end
12
17
 
13
18
  describe "when the path is wrong" do
14
19
 
@@ -27,6 +32,12 @@ describe "frank cucumber launcher" do
27
32
  e.message.must_match "suggestion_1"
28
33
  end
29
34
  end
35
+
36
+ it "throws exception when app path doesn't exist" do
37
+ assert_raises(RuntimeError) do
38
+ enforce('/foo/bar/baz/not/a/real/path')
39
+ end
40
+ end
30
41
  end
31
42
 
32
43
  describe "when starting the simulator with the specified params" do
@@ -37,7 +48,7 @@ describe "frank cucumber launcher" do
37
48
  end
38
49
 
39
50
  it 'selects iphone mode by default' do
40
- launch_app('test_path', 'X.Y')
51
+ launch_app(DUMMY_APP_PATH, 'X.Y')
41
52
  @version.must_equal 'iphone'
42
53
  end
43
54
 
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: frank-cucumber
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.8
5
- prerelease:
4
+ version: 1.0.0.pre2
5
+ prerelease: 6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Pete Hodgson
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-10-13 00:00:00.000000000 Z
13
+ date: 2012-10-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: cucumber
17
- requirement: &70297839769240 !ruby/object:Gem::Requirement
17
+ requirement: &70209931333500 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70297839769240
25
+ version_requirements: *70209931333500
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rspec
28
- requirement: &70297839768160 !ruby/object:Gem::Requirement
28
+ requirement: &70209931332480 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,21 +33,21 @@ dependencies:
33
33
  version: '2.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *70297839768160
36
+ version_requirements: *70209931332480
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: sim_launcher
39
- requirement: &70297839767340 !ruby/object:Gem::Requirement
39
+ requirement: &70209931331180 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
43
43
  - !ruby/object:Gem::Version
44
- version: 0.4.5
44
+ version: 0.4.6
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *70297839767340
47
+ version_requirements: *70209931331180
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: i18n
50
- requirement: &70297839765760 !ruby/object:Gem::Requirement
50
+ requirement: &70209931329940 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *70297839765760
58
+ version_requirements: *70209931329940
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: plist
61
- requirement: &70297839764880 !ruby/object:Gem::Requirement
61
+ requirement: &70209931328260 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: '0'
67
67
  type: :runtime
68
68
  prerelease: false
69
- version_requirements: *70297839764880
69
+ version_requirements: *70209931328260
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: json
72
- requirement: &70297839763920 !ruby/object:Gem::Requirement
72
+ requirement: &70209931326220 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: '0'
78
78
  type: :runtime
79
79
  prerelease: false
80
- version_requirements: *70297839763920
80
+ version_requirements: *70209931326220
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: dnssd
83
- requirement: &70297839762620 !ruby/object:Gem::Requirement
83
+ requirement: &70209931324360 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ! '>='
@@ -88,10 +88,10 @@ dependencies:
88
88
  version: '0'
89
89
  type: :runtime
90
90
  prerelease: false
91
- version_requirements: *70297839762620
91
+ version_requirements: *70209931324360
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: thor
94
- requirement: &70297839747840 !ruby/object:Gem::Requirement
94
+ requirement: &70209931323000 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ! '>='
@@ -99,10 +99,10 @@ dependencies:
99
99
  version: '0'
100
100
  type: :runtime
101
101
  prerelease: false
102
- version_requirements: *70297839747840
102
+ version_requirements: *70209931323000
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: xcodeproj
105
- requirement: &70297839746960 !ruby/object:Gem::Requirement
105
+ requirement: &70209931321020 !ruby/object:Gem::Requirement
106
106
  none: false
107
107
  requirements:
108
108
  - - ! '>='
@@ -110,10 +110,10 @@ dependencies:
110
110
  version: '0'
111
111
  type: :runtime
112
112
  prerelease: false
113
- version_requirements: *70297839746960
113
+ version_requirements: *70209931321020
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: rr
116
- requirement: &70297839746040 !ruby/object:Gem::Requirement
116
+ requirement: &70209931318860 !ruby/object:Gem::Requirement
117
117
  none: false
118
118
  requirements:
119
119
  - - ! '>='
@@ -121,10 +121,10 @@ dependencies:
121
121
  version: '0'
122
122
  type: :development
123
123
  prerelease: false
124
- version_requirements: *70297839746040
124
+ version_requirements: *70209931318860
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: yard
127
- requirement: &70297839745340 !ruby/object:Gem::Requirement
127
+ requirement: &70209931316340 !ruby/object:Gem::Requirement
128
128
  none: false
129
129
  requirements:
130
130
  - - ! '>='
@@ -132,10 +132,10 @@ dependencies:
132
132
  version: '0'
133
133
  type: :development
134
134
  prerelease: false
135
- version_requirements: *70297839745340
135
+ version_requirements: *70209931316340
136
136
  - !ruby/object:Gem::Dependency
137
137
  name: pry
138
- requirement: &70297839744420 !ruby/object:Gem::Requirement
138
+ requirement: &70209935385440 !ruby/object:Gem::Requirement
139
139
  none: false
140
140
  requirements:
141
141
  - - ! '>='
@@ -143,10 +143,10 @@ dependencies:
143
143
  version: '0'
144
144
  type: :development
145
145
  prerelease: false
146
- version_requirements: *70297839744420
146
+ version_requirements: *70209935385440
147
147
  - !ruby/object:Gem::Dependency
148
148
  name: pry-debugger
149
- requirement: &70297839743580 !ruby/object:Gem::Requirement
149
+ requirement: &70209935381600 !ruby/object:Gem::Requirement
150
150
  none: false
151
151
  requirements:
152
152
  - - ! '>='
@@ -154,7 +154,7 @@ dependencies:
154
154
  version: '0'
155
155
  type: :development
156
156
  prerelease: false
157
- version_requirements: *70297839743580
157
+ version_requirements: *70209935381600
158
158
  description: Use cucumber to test native iOS apps via Frank
159
159
  email:
160
160
  - gems@thepete.net
@@ -192,7 +192,6 @@ files:
192
192
  - lib/frank-cucumber/keyboard_helper.rb
193
193
  - lib/frank-cucumber/launcher.rb
194
194
  - lib/frank-cucumber/localize.yml
195
- - lib/frank-cucumber/scroll_helper.rb
196
195
  - lib/frank-cucumber/version.rb
197
196
  - lib/frank-cucumber/wait_helper.rb
198
197
  - test/keyboard_helper_test.rb
@@ -286,9 +285,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
286
285
  required_rubygems_version: !ruby/object:Gem::Requirement
287
286
  none: false
288
287
  requirements:
289
- - - ! '>='
288
+ - - ! '>'
290
289
  - !ruby/object:Gem::Version
291
- version: '0'
290
+ version: 1.3.1
292
291
  requirements: []
293
292
  rubyforge_project:
294
293
  rubygems_version: 1.8.10
@@ -1,24 +0,0 @@
1
- module Frank
2
- module Cucumber
3
-
4
- module ScrollHelper
5
-
6
- def scroll_view_to_top( selector )
7
- frankly_map( selector, "FEX_scrollToTop" )
8
- end
9
-
10
- def scroll_view_to_bottom( selector )
11
- frankly_map( selector, "FEX_scrollToBottom" )
12
- end
13
-
14
- def scroll_view_to_position( selector, x, y )
15
- frankly_map( selector, "FEX_setContentOffsetX:y:", x.to_i, y.to_i)
16
- end
17
-
18
- def scroll_table_view( selector, row, section = 0)
19
- frankly_map(selector, "FEX_scrollToRow:inSection:", row.to_i, section.to_i)
20
- end
21
-
22
- end
23
-
24
- end end