furter 0.0.3.1 → 0.0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +15 -0
  2. data/.travis.yml +5 -4
  3. data/Changelog +3 -0
  4. data/Gemfile +1 -0
  5. data/README.md +3 -1
  6. data/app/FurterApp/Frank/frank.xcconfig +15 -0
  7. data/app/FurterApp/Frank/frankify.xcconfig +3 -3
  8. data/app/FurterApp/Frank/libCocoaAsyncSocket.a +0 -0
  9. data/app/FurterApp/Frank/libCocoaAsyncSocketMac.a +0 -0
  10. data/app/FurterApp/Frank/libCocoaHTTPServer.a +0 -0
  11. data/app/FurterApp/Frank/libCocoaHTTPServerMac.a +0 -0
  12. data/app/FurterApp/Frank/libCocoaLumberjack.a +0 -0
  13. data/app/FurterApp/Frank/libCocoaLumberjackMac.a +0 -0
  14. data/app/FurterApp/Frank/libFrank.a +0 -0
  15. data/app/FurterApp/Frank/libFrankMac.a +0 -0
  16. data/app/FurterApp/Frank/libShelley.a +0 -0
  17. data/app/FurterApp/FurterApp.xcodeproj/project.pbxproj +365 -807
  18. data/app/FurterApp/FurterApp/DetailViewController.h +3 -0
  19. data/app/FurterApp/FurterApp/DetailViewController.m +8 -0
  20. data/app/FurterApp/FurterApp/en.lproj/MainStoryboard_iPad.storyboard +18 -1
  21. data/app/FurterApp/TablesViewController.h +22 -0
  22. data/app/FurterApp/TablesViewController.m +133 -0
  23. data/app/FurterApp/TablesViewController.xib +577 -0
  24. data/features/label.feature +2 -1
  25. data/features/step_definitions/label_steps.rb +2 -2
  26. data/features/step_definitions/table_steps.rb +3 -0
  27. data/features/support/env.rb +4 -0
  28. data/features/support/screens/detail.rb +1 -0
  29. data/features/support/screens/tables.rb +10 -0
  30. data/features/table.feature +8 -0
  31. data/furter.gemspec +2 -1
  32. data/lib/furter/accessors.rb +5 -1
  33. data/lib/furter/accessors/table.rb +3 -1
  34. data/lib/furter/accessors/view.rb +1 -0
  35. data/lib/furter/version.rb +1 -1
  36. data/spec/lib/furter/accessors/table_spec.rb +20 -0
  37. data/spec/spec_helper.rb +2 -0
  38. metadata +33 -25
@@ -1,10 +1,11 @@
1
1
  Feature: Working with label controls
2
2
 
3
3
  Scenario: Getting the value of a label by accessibility label
4
- Then I know that the label identified by "id" is "Detail view content goes here"
4
+ Then I know that the label on the "DetailPage" identified by "id" is "Detail view content goes here"
5
5
 
6
6
  Scenario: Accessing the raw view properties of a label
7
7
  Then the label identified by "id" should be "visible"
8
8
 
9
9
  Scenario: Finding labels by their text
10
10
  Then the label identified by "text" should be "visible"
11
+
@@ -1,5 +1,5 @@
1
- Then /^I know that the label identified by "([^"]*)" is "([^"]*)"$/ do |how, what|
2
- on(DetailPage).send("label_#{how}").should eq(what)
1
+ Then /^I know that the label on the "([^"]*)" identified by "([^"]*)" is "([^"]*)"$/ do |page, how, what|
2
+ on(page.to_class).send("label_#{how}").should eq(what)
3
3
  end
4
4
 
5
5
  Then /^the label identified by "([^"]*)" should be "([^"]*)"$/ do |how, property|
@@ -0,0 +1,3 @@
1
+ When(/^I click in the "([^"]*)" index of the table identified by "([^"]*)"$/) do |index, how|
2
+ on(TablesPage).send("table_#{how}=", index.to_i)
3
+ end
@@ -21,5 +21,9 @@ Furter::Navigation.routes = {
21
21
  [DetailPage, :switch_toggle],
22
22
  [DetailPage, :go_elsewhere],
23
23
  [ElsewherePage, :active?]
24
+ ],
25
+ :goto_tables => [
26
+ [DetailPage, :button_table],
27
+ [TablesPage]
24
28
  ]
25
29
  }
@@ -10,6 +10,7 @@ class DetailPage
10
10
  button(:button_text, :text => 'Some Button')
11
11
  button(:button_label, :label => 'labeledButtonId')
12
12
  button(:go_elsewhere, :text => 'Go Elsewhere')
13
+ button(:button_table, :text => 'Tables')
13
14
 
14
15
  switch(:switch_toggle, :label => 'switchToggle')
15
16
 
@@ -0,0 +1,10 @@
1
+ class TablesPage
2
+ include Furter
3
+
4
+ label(:label_selected,:label => 'selectedLabel')
5
+ table(:table_elements, :label => 'testTableView')
6
+ table(:table_multiple, :label => 'tableMultipleSections')
7
+ views('TablesViewController')
8
+
9
+
10
+ end
@@ -0,0 +1,8 @@
1
+ Feature: Working with table view
2
+
3
+ Background: Navigating to Tables Page
4
+ When I navigate to the "TablesPage" using the "goto tables" route
5
+
6
+ Scenario: Selecting a table row by index
7
+ When I click in the "0" index of the table identified by "elements"
8
+ Then I know that the label on the "TablesPage" identified by "selected" is "Fourth element"
@@ -17,8 +17,9 @@ Gem::Specification.new do |gem|
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = ["lib"]
19
19
 
20
- gem.add_dependency 'frank-cucumber', '~> 1.1.8'
20
+ gem.add_dependency 'frank-cucumber', '>= 1.1.8'
21
21
  gem.add_dependency 'page_navigation', '>= 0.7'
22
+ gem.add_dependency 'sim_launcher'
22
23
 
23
24
  gem.add_development_dependency 'rspec'
24
25
  gem.add_development_dependency 'rake'
@@ -50,7 +50,11 @@ module Furter
50
50
 
51
51
  def table(name, locator)
52
52
  define_method("#{name}=") do |which|
53
- Furter::Accessors::TableItem.new(:text => which).click
53
+ if which.is_a? Integer
54
+ Furter::Accessors::Table.new(locator).touch_index which
55
+ else
56
+ Furter::Accessors::TableItem.new(:text => which).click
57
+ end
54
58
  end
55
59
  define_method("#{name}_options") do
56
60
  Furter::Accessors::Table.new(locator).options
@@ -4,7 +4,9 @@ module Furter
4
4
  def options
5
5
  frankly_map("#{selector} label", "text").compact.map(&:strip).reject(&:empty?)
6
6
  end
7
-
7
+ def touch_index(index)
8
+ touch("#{selector} tableViewCell index:#{index}")
9
+ end
8
10
  private
9
11
  def selector
10
12
  "view:'UITableView' marked:'#{@locator[:label]}'"
@@ -8,6 +8,7 @@ module Furter
8
8
  end
9
9
 
10
10
  def click
11
+
11
12
  wait_for_and_touch selector
12
13
  end
13
14
 
@@ -1,3 +1,3 @@
1
1
  module Furter
2
- VERSION = "0.0.3.1"
2
+ VERSION = "0.0.3.2"
3
3
  end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Furter::Accessors::Table do
4
+
5
+ let(:table) { Furter::Accessors::Table.new(:label => 'tableView') }
6
+ let(:selector) { table.send(:selector) }
7
+
8
+ context 'locating table' do
9
+ it 'can be found by id' do
10
+ table.send(:selector).should eq("view:'UITableView' marked:'tableView'")
11
+ end
12
+ end
13
+
14
+ context 'selecting table items' do
15
+ it 'can select an item by index' do
16
+ table.should_receive(:touch).with("view:'UITableView' marked:'tableView' tableViewCell index:0")
17
+ table.touch_index(0)
18
+ end
19
+ end
20
+ end
@@ -4,6 +4,8 @@ def World(what) end
4
4
  def AfterConfiguration() end
5
5
 
6
6
  require 'furter'
7
+ require 'coveralls'
8
+ Coveralls.wear!
7
9
 
8
10
  RSpec.configure do |config|
9
11
  config.treat_symbols_as_metadata_keys_with_true_values = true
metadata CHANGED
@@ -1,36 +1,32 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: furter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3.1
5
- prerelease:
4
+ version: 0.0.3.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Levi Wilson
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-04-23 00:00:00.000000000 Z
11
+ date: 2013-09-23 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: frank-cucumber
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - ! '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: 1.1.8
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - ! '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: 1.1.8
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: page_navigation
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ! '>='
36
32
  - !ruby/object:Gem::Version
@@ -38,15 +34,27 @@ dependencies:
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ! '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0.7'
41
+ - !ruby/object:Gem::Dependency
42
+ name: sim_launcher
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
46
55
  - !ruby/object:Gem::Dependency
47
56
  name: rspec
48
57
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
58
  requirements:
51
59
  - - ! '>='
52
60
  - !ruby/object:Gem::Version
@@ -54,7 +62,6 @@ dependencies:
54
62
  type: :development
55
63
  prerelease: false
56
64
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
65
  requirements:
59
66
  - - ! '>='
60
67
  - !ruby/object:Gem::Version
@@ -62,7 +69,6 @@ dependencies:
62
69
  - !ruby/object:Gem::Dependency
63
70
  name: rake
64
71
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
72
  requirements:
67
73
  - - ! '>='
68
74
  - !ruby/object:Gem::Version
@@ -70,7 +76,6 @@ dependencies:
70
76
  type: :development
71
77
  prerelease: false
72
78
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
79
  requirements:
75
80
  - - ! '>='
76
81
  - !ruby/object:Gem::Version
@@ -78,7 +83,6 @@ dependencies:
78
83
  - !ruby/object:Gem::Dependency
79
84
  name: require_all
80
85
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
86
  requirements:
83
87
  - - ! '>='
84
88
  - !ruby/object:Gem::Version
@@ -86,7 +90,6 @@ dependencies:
86
90
  type: :development
87
91
  prerelease: false
88
92
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
93
  requirements:
91
94
  - - ! '>='
92
95
  - !ruby/object:Gem::Version
@@ -109,6 +112,7 @@ files:
109
112
  - app/FurterApp/Frank/features/my_first.feature
110
113
  - app/FurterApp/Frank/features/step_definitions/launch_steps.rb
111
114
  - app/FurterApp/Frank/features/support/env.rb
115
+ - app/FurterApp/Frank/frank.xcconfig
112
116
  - app/FurterApp/Frank/frankify.xcconfig
113
117
  - app/FurterApp/Frank/libCocoaAsyncSocket.a
114
118
  - app/FurterApp/Frank/libCocoaAsyncSocketMac.a
@@ -142,6 +146,9 @@ files:
142
146
  - app/FurterApp/FurterApp/en.lproj/MainStoryboard_iPad.storyboard
143
147
  - app/FurterApp/FurterApp/en.lproj/MainStoryboard_iPhone.storyboard
144
148
  - app/FurterApp/FurterApp/main.m
149
+ - app/FurterApp/TablesViewController.h
150
+ - app/FurterApp/TablesViewController.m
151
+ - app/FurterApp/TablesViewController.xib
145
152
  - cucumber.yml
146
153
  - features/button.feature
147
154
  - features/label.feature
@@ -152,13 +159,16 @@ files:
152
159
  - features/step_definitions/navigation_steps.rb
153
160
  - features/step_definitions/slider_steps.rb
154
161
  - features/step_definitions/switches_steps.rb
162
+ - features/step_definitions/table_steps.rb
155
163
  - features/step_definitions/text_steps.rb
156
164
  - features/support/core_ext/string.rb
157
165
  - features/support/env.rb
158
166
  - features/support/hooks.rb
159
167
  - features/support/screens/detail.rb
160
168
  - features/support/screens/elsewhere_page.rb
169
+ - features/support/screens/tables.rb
161
170
  - features/switches.feature
171
+ - features/table.feature
162
172
  - features/text.feature
163
173
  - furter.gemspec
164
174
  - lib/furter.rb
@@ -179,6 +189,7 @@ files:
179
189
  - spec/lib/furter/accessors/label_spec.rb
180
190
  - spec/lib/furter/accessors/slider_spec.rb
181
191
  - spec/lib/furter/accessors/switch_spec.rb
192
+ - spec/lib/furter/accessors/table_spec.rb
182
193
  - spec/lib/furter/accessors/text_spec.rb
183
194
  - spec/lib/furter/accessors/view_spec.rb
184
195
  - spec/lib/furter/accessors_spec.rb
@@ -186,33 +197,26 @@ files:
186
197
  - spec/spec_helper.rb
187
198
  homepage: ''
188
199
  licenses: []
200
+ metadata: {}
189
201
  post_install_message:
190
202
  rdoc_options: []
191
203
  require_paths:
192
204
  - lib
193
205
  required_ruby_version: !ruby/object:Gem::Requirement
194
- none: false
195
206
  requirements:
196
207
  - - ! '>='
197
208
  - !ruby/object:Gem::Version
198
209
  version: '0'
199
- segments:
200
- - 0
201
- hash: -3754935544043957014
202
210
  required_rubygems_version: !ruby/object:Gem::Requirement
203
- none: false
204
211
  requirements:
205
212
  - - ! '>='
206
213
  - !ruby/object:Gem::Version
207
214
  version: '0'
208
- segments:
209
- - 0
210
- hash: -3754935544043957014
211
215
  requirements: []
212
216
  rubyforge_project:
213
- rubygems_version: 1.8.25
217
+ rubygems_version: 2.0.3
214
218
  signing_key:
215
- specification_version: 3
219
+ specification_version: 4
216
220
  summary: Higher-level abstraction around iOS drivers
217
221
  test_files:
218
222
  - features/button.feature
@@ -224,18 +228,22 @@ test_files:
224
228
  - features/step_definitions/navigation_steps.rb
225
229
  - features/step_definitions/slider_steps.rb
226
230
  - features/step_definitions/switches_steps.rb
231
+ - features/step_definitions/table_steps.rb
227
232
  - features/step_definitions/text_steps.rb
228
233
  - features/support/core_ext/string.rb
229
234
  - features/support/env.rb
230
235
  - features/support/hooks.rb
231
236
  - features/support/screens/detail.rb
232
237
  - features/support/screens/elsewhere_page.rb
238
+ - features/support/screens/tables.rb
233
239
  - features/switches.feature
240
+ - features/table.feature
234
241
  - features/text.feature
235
242
  - spec/lib/furter/accessors/button_spec.rb
236
243
  - spec/lib/furter/accessors/label_spec.rb
237
244
  - spec/lib/furter/accessors/slider_spec.rb
238
245
  - spec/lib/furter/accessors/switch_spec.rb
246
+ - spec/lib/furter/accessors/table_spec.rb
239
247
  - spec/lib/furter/accessors/text_spec.rb
240
248
  - spec/lib/furter/accessors/view_spec.rb
241
249
  - spec/lib/furter/accessors_spec.rb