furter 0.0.3.1 → 0.0.3.2

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