frank-cucumber 0.9.8 → 1.0.0.pre2

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