cucumber-rails 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. data/.gitignore +1 -0
  2. data/History.md +8 -1
  3. data/Rakefile +4 -2
  4. data/cucumber-rails.gemspec +17 -17
  5. data/features/allow_rescue.feature +1 -1
  6. data/features/capybara_javascript_drivers.feature +1 -1
  7. data/features/choose_javascript_database_strategy.feature +63 -0
  8. data/features/database_cleaner.feature +1 -1
  9. data/features/emulate_javascript.feature +2 -2
  10. data/features/field_with_errors.feature +2 -2
  11. data/features/fixing_bundler_pre.feature +1 -1
  12. data/features/inspect_query_string.feature +1 -1
  13. data/features/install_cucumber_rails.feature +1 -1
  14. data/features/multiple_databases.feature +1 -1
  15. data/features/no_database.feature +1 -1
  16. data/features/rerun_profile.feature +1 -1
  17. data/features/rest_api.feature +1 -1
  18. data/features/routing.feature +1 -1
  19. data/features/step_definitions/cucumber_rails_steps.rb +52 -398
  20. data/features/support/bundler_pre_support.rb +28 -0
  21. data/features/support/env.rb +1 -4
  22. data/features/support/fixtures/bundler-1.0.21.gem +0 -0
  23. data/features/support/fixtures/bundler-1.1.rc.gem +0 -0
  24. data/{lib/generators/cucumber/install/templates/step_definitions/web_steps.rb.erb → features/support/legacy_web_steps_support.rb} +69 -14
  25. data/lib/cucumber/rails.rb +1 -1
  26. data/lib/cucumber/rails/database.rb +67 -0
  27. data/lib/cucumber/rails/hooks/active_record.rb +2 -12
  28. data/lib/generators/cucumber/install/USAGE +0 -3
  29. data/lib/generators/cucumber/install/templates/support/_rails_each_run.rb.erb +6 -1
  30. metadata +79 -88
  31. data/Gemfile.lock +0 -202
  32. data/features/test_unit.feature +0 -45
  33. data/lib/cucumber/web/tableish.rb +0 -119
  34. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_cs.rb.erb +0 -127
  35. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_da.rb.erb +0 -105
  36. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_de.rb.erb +0 -127
  37. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_es.rb.erb +0 -127
  38. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_ja.rb.erb +0 -140
  39. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_ko.rb.erb +0 -142
  40. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_no.rb.erb +0 -105
  41. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_pt-BR.rb.erb +0 -132
  42. data/spec/cucumber/web/tableish_spec.rb +0 -239
@@ -1,142 +0,0 @@
1
- # encoding: utf-8
2
- <%= embed_file('support/web_steps_warning.txt') %>
3
-
4
- require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths"))
5
- require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "selectors"))
6
-
7
- 조건 /^(.+)페이지에 있습니다$/ do |page_name|
8
- Given %{I am on #{page_name}}
9
- end
10
-
11
- 만일 /^(.+)페이지로 갑니다$/ do |page_name|
12
- When %{I go to #{page_name}}
13
- end
14
-
15
- 만일 /^"([^"]*)"버튼을 누릅니다$/ do |button|
16
- When %{I press "#{button}"}
17
- end
18
-
19
- 만일 /^"([^"]*)"링크를 클릭합니다$/ do |link|
20
- When %{I follow "#{link}"}
21
- end
22
-
23
- 만일 /^"([^"]*)"안에 있는 "([^"]*)"링크를 클릭합니다$/ do |parent, link|
24
- When %{I follow "#{link}" within "#{parent}"}
25
- end
26
-
27
- 만일 /^"([^"]*)"에 "([^"]*)"라고 적습니다$/ do |field, value|
28
- When %{I fill in "#{field}" with "#{value}"}
29
- end
30
-
31
- 만일 /^"([^"]*)"라고 "([^"]*)"에 적습니다$/ do |value, field|
32
- When %{I fill in "#{value}" for "#{field}"}
33
- end
34
-
35
- 만일 /^아레의 목록을 입력합니다$/ do |fields|
36
- When %{I fill in the following:}, fields
37
- end
38
-
39
- 만일 /^"([^"]*)"를 "([^"]*)"으로 합니다$/ do |field, value|
40
- When %{I select "#{value}" from "#{field}"}
41
- end
42
-
43
- 만일 /^날짜와 시간를 "([^"]*)"으로 합니다$/ do |time|
44
- When %{I select "#{time}" as the date and time}
45
- end
46
-
47
- 만일 /^"([^"]*)"의 날짜와 시간을 "([^"]*)"으로 합니다$/ do |datetime_label, datetime|
48
- When %{I select "#{datetime}" as the "#{datetime_label}" date and time}
49
- end
50
-
51
- 만일 /^시간을 "([^"]*)"으로 합니다$/ do |time|
52
- When %{I select "#{time}" as the time}
53
- end
54
-
55
- 만일 /^"([^"]*)"의 시간을 "([^"]*)"으로 합니다$/ do |time_label, time|
56
- When %{I select "#{time}" as the "#{time_label}" time}
57
- end
58
-
59
- 만일 /^날짜를 "([^"]*)"으로 합니다$/ do |date|
60
- When %{I select "#{date}" as the date}
61
- end
62
-
63
- 만일 /^"([^"]*)"의 날짜를 "([^"]*)"으로 합니다$/ do |date_label, date|
64
- When %{I select "#{date}" as the "#{date_label}" date}
65
- end
66
-
67
- 만일 /^"([^"]*)"를 체크합니다$/ do |field|
68
- When %{I check "#{field}"}
69
- end
70
-
71
- 만일 /^"([^"]*)"의 체크를 해제합니다$/ do |field|
72
- When %{I uncheck "#{field}"}
73
- end
74
-
75
- 만일 /^"([^"]*)"를 고릅니다$/ do |field|
76
- When %{I choose "#{field}"}
77
- end
78
-
79
- 만일 /^"([^"]*)"에 "([^"]*)"파일을 첨부합니다$/ do |field, path|
80
- When %{I attach the file "#{path}" to "#{field}"}
81
- end
82
-
83
- 그러면 /^"([^"]*)"가 보여야 합니다$/ do |text|
84
- Then %{I should see "#{text}"}
85
- end
86
-
87
- 그러면 /^"([^"]*)"안에 "([^"]*)"가 보여야 합니다$/ do |selector, text|
88
- Then %{I should see "#{text}" within "#{selector}"}
89
- end
90
-
91
- 그러면 /^\/([^\/]*)\/가 보여야 합니다$/ do |regexp|
92
- Then %{I should see /#{regexp}/}
93
- end
94
-
95
- 그러면 /^"([^"]*)"안에 \/([^\/]*)\/가 보여야 합니다$/ do |selector, regexp|
96
- Then %{I should see /#{regexp}/ within "#{selector}"}
97
- end
98
-
99
- 그러면 /^"([^"]*)"가 보이면 안됩니다$/ do |text|
100
- Then %{I should not see "#{text}"}
101
- end
102
-
103
- 그러면 /^"([^"]*)"안에 "([^"]*)"가 보이면 안됩니다$/ do |selector, text|
104
- Then %{I should not see "#{text}" within "#{selector}"}
105
- end
106
-
107
- 그러면 /^\/([^\/]*)\/가 보이면 안됩니다$/ do |regexp|
108
- Then %{I should not see /#{regexp}/}
109
- end
110
-
111
- 그러면 /^"([^"]*)"안에 \/([^\/]*)\/가 보이면 안됩니다$/ do |selector, regexp|
112
- Then %{I should not see /#{regexp}/ within "#{selector}"}
113
- end
114
-
115
- 그러면 /^"([^"]*)"는 "([^"]*)"이어야 합니다$/ do |field, value|
116
- Then %{the "#{field}" field should contain "#{value}"}
117
- end
118
-
119
- 그러면 /^"([^"]*)"는 "([^"]*)"이면 안됩니다$/ do |field, value|
120
- Then %{the "#{field}" field should not contain "#{value}"}
121
- end
122
-
123
- 그러면 /^"([^"]*)"는 체크되어 있어야 합니다$/ do |label|
124
- Then %{the "#{label}" checkbox should be checked}
125
- end
126
-
127
- 그러면 /^"([^"]*)"는 체크되어 있으면 안됩니다$/ do |label|
128
- Then %{the "#{label}" checkbox should not be checked}
129
- end
130
-
131
- 그러면 /^(.+)에 있어야 합니다$/ do |page_name|
132
- Then %{I should be on #{page_name}}
133
- end
134
-
135
- 그러면 /^다음 쿼리들이 나와야합니다:$/ do |expected_pairs|
136
- Then %{I should have the following query string:}
137
- end
138
-
139
- 그러면 /^페이지를 엽니다$/ do
140
- Then %{show me the page}
141
- end
142
-
@@ -1,105 +0,0 @@
1
- # encoding: utf-8
2
- <%= embed_file('support/web_steps_warning.txt') %>
3
-
4
- require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths"))
5
- require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "selectors"))
6
-
7
- # Single-line step scoper
8
- Når /^(.*) under ([^:]+)$/ do |step, parent|
9
- with_scope(parent) { Når step }
10
- end
11
-
12
- # Multi-line step scoper
13
- Når /^(.*) under ([^:]+):$/ do |step, parent, table_or_string|
14
- with_scope(parent) { Når "#{step}:", table_or_string }
15
- end
16
-
17
- Gitt /^(?:|at )jeg står på (.*)$/ do |page_name|
18
- Given %{I am on #{page_name}}
19
- end
20
-
21
- Når /^jeg går til (.*)$/ do |page_name|
22
- When %{I go to #{page_name}}
23
- end
24
-
25
- Når /^jeg trykker "([^"]*)"$/ do |button|
26
- When %{I press "#{button}"}
27
- end
28
-
29
- Når /^jeg klikker "([^"]*)"$/ do |link|
30
- When %{I follow "#{link}"}
31
- end
32
-
33
- Når /^jeg fyller inn "([^"]*)" med "([^"]*)"$/ do |field, value|
34
- When %{I fill in "#{field}" with "#{value}"}
35
- end
36
-
37
- Når /^jeg fyller inn "([^"]*)" for "([^"]*)"$/ do |value, field|
38
- When %{I fill in "#{value}" for "#{field}"}
39
- end
40
-
41
- Når /^jeg fyller inn følgende:$/ do |fields|
42
- When %{I fill in the following:}, fields
43
- end
44
-
45
- Når /^jeg velger "([^"]*)" fra "([^"]*)"$/ do |value, field|
46
- When %{I select "#{value}" from "#{field}"}
47
- end
48
-
49
- # Missing: date stuff
50
-
51
- Når /^jeg krysser av "([^"]*)"$/ do |field|
52
- When %{I check "#{field}"}
53
- end
54
-
55
- Når /^jeg fjerner avkrysning for "([^"]*)"$/ do |field|
56
- When %{I uncheck "#{field}"}
57
- end
58
-
59
- Når /^jeg velger "([^"]*)"$/ do |field|
60
- When %{I choose "#{field}"}
61
- end
62
-
63
- Når /^jeg legger ved filen "([^"]*)" til "([^"]*)"$/ do |path, field|
64
- When %{I attach the file "#{path}" to "#{field}"}
65
- end
66
-
67
- Så /^(?:skal jeg|jeg skal) se "([^"]*)"$/ do |text|
68
- Then %{I should see "#{text}"}
69
- end
70
-
71
- Så /^(?:skal jeg|jeg skal) se \/([^\/]*)\/$/ do |regexp|
72
- Then %{I should see /#{regexp}/}
73
- end
74
-
75
- Så /^(?:skal jeg|jeg skal) ikke se "([^"]*)"$/ do |text|
76
- Then %{I should not see "#{text}"}
77
- end
78
-
79
- Så /^(?:skal jeg|jeg skal) ikke se \/([^\/]*)\/$/ do |regexp|
80
- Then %{I should not see /#{regexp}/}
81
- end
82
-
83
- Så /^(?:skal )"([^"]*)" feltet (?:skal )inneholde "([^"]*)"$/ do |field, value|
84
- Then %{the "#{field}" field should contain "#{value}"}
85
- end
86
-
87
- Så /^(?:skal ) "([^"]*)" feltet (?:skal )ikke inneholde "([^"]*)"$/ do |field, value|
88
- Then %{the "#{field}" field should not contain "#{value}"}
89
- end
90
-
91
- Så /^(?:skal ) "([^"]*)" avkrysningsboksen (?:skal )være krysset av$/ do |label|
92
- Then %{the "#{label}" checkbox should be checked}
93
- end
94
-
95
- Så /^(?:skal ) "([^"]*)" avkrysningsboksen (?:skal )ikke være krysset av$/ do |label|
96
- Then %{the "#{label}" checkbox should not be checked}
97
- end
98
-
99
- Så /^(?:skal jeg|jeg skal) komme til (.+)$/ do |page_name|
100
- Then %{I should be on #{page_name}}
101
- end
102
-
103
- Så /^vil jeg se siden$/ do |page_name|
104
- Then %{show me the page}
105
- end
@@ -1,132 +0,0 @@
1
- # encoding: utf-8
2
- <%= embed_file('support/web_steps_warning.txt') %>
3
-
4
- require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths"))
5
- require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "selectors"))
6
-
7
- # Single-line step scoper
8
- Quando /^(.*) dentro de ([^:]+)$/ do |step, parent|
9
- with_scope(parent) { Quando step }
10
- end
11
-
12
- # Multi-line step scoper
13
- Quando /^(.*) dentro de ([^:]+):$/ do |step, parent, table_or_string|
14
- with_scope(parent) { Quando "#{step}:", table_or_string }
15
- end
16
-
17
- Dado /^que eu estou na (.+)$/ do |page_name|
18
- Given %{I am on #{page_name}}
19
- end
20
-
21
- Quando /^eu vou para (.+)$/ do |page_name|
22
- When %{I go to #{page_name}}
23
- end
24
-
25
- Quando /^eu aperto "([^"]*)"$/ do |button|
26
- When %{I press "#{button}"}
27
- end
28
-
29
- Quando /^eu clico "([^"]*)"$/ do |link|
30
- When %{I follow "#{link}"}
31
- end
32
-
33
- Quando /^eu preencho "([^"]*)" com "([^"]*)"$/ do |field, value|
34
- When %{I fill in "#{field}" with "#{value}"}
35
- end
36
-
37
- Quando /^eu preencho "([^"]*)" para "([^"]*)"$/ do |value, field|
38
- When %{I fill in "#{value}" for "#{field}"}
39
- end
40
-
41
- Quando /^eu preencho o seguinte:$/ do |fields|
42
- When %{I fill in the following:}, fields
43
- end
44
-
45
- Quando /^eu seleciono "([^"]*)" de "([^"]*)"$/ do |value, field|
46
- When %{I select "#{value}" from "#{field}"}
47
- end
48
-
49
- Quando /^eu seleciono "([^"]*)" como a data e a hora$/ do |time|
50
- When %{I select "#{time}" as the date and time}
51
- end
52
-
53
- Quando /^eu seleciono "([^"]*)" como a data e a hora "([^"]*)"$/ do |datetime, datetime_label|
54
- When %{I select "#{datetime}" as the "#{datetime_label}" date and time}
55
- end
56
-
57
- Quando /^eu seleciono "([^"]*)" como a hora$/ do |time|
58
- When %{I select "#{time}" as the time}
59
- end
60
-
61
- Quando /^eu seleciono "([^"]*)" como a hora "([^"]*)"$/ do |time, time_label|
62
- When %{I select "#{time}" as the "#{time_label}" time}
63
- end
64
-
65
- Quando /^eu seleciono "([^"]*)" como a data$/ do |date|
66
- When %{I select "#{date}" as the date}
67
- end
68
-
69
- Quando /^eu seleciono "([^"]*)" como a data "([^"]*)"$/ do |date, date_label|
70
- When %{I select "#{date}" as the "#{date_label}" date}
71
- end
72
-
73
- Quando /^eu seleciono "([^"]*)" como "([^"]*)"$/ do |date, date_label|
74
- When %{I select "#{date}" as the "#{date_label}" date}
75
- end
76
-
77
- Quando /^eu marco "([^"]*)"$/ do |field|
78
- When %{I check "#{field}"}
79
- end
80
-
81
- Quando /^eu desmarco "([^"]*)"$/ do |field|
82
- When %{I uncheck "#{field}"}
83
- end
84
-
85
- Quando /^eu escolho "([^"]*)"$/ do |field|
86
- When %{I choose "#{field}"}
87
- end
88
-
89
- Quando /^eu anexo o arquivo em "([^"]*)" a "([^"]*)"$/ do |path, field|
90
- When %{I attach the file "#{path}" to "#{field}"}
91
- end
92
-
93
- Então /^eu devo ver "([^"]*)"$/ do |text|
94
- Then %{I should see "#{text}"}
95
- end
96
-
97
- Então /^eu devo ver \/([^\/]*)\/$/ do |regexp|
98
- Then %{I should see /#{regexp}/}
99
- end
100
-
101
- Então /^eu não devo ver "([^"]*)"$/ do |text|
102
- Then %{I should not see "#{text}"}
103
- end
104
-
105
- Então /^eu não devo ver \/([^\/]*)\/$/ do |regexp|
106
- Then %{I should not see /#{regexp}/}
107
- end
108
-
109
- Então /^o campo "([^"]*)" deve conter "([^"]*)"$/ do |field, value|
110
- Then %{the "#{field}" field should contain "#{value}"}
111
- end
112
-
113
- Então /^o campo "([^"]*)" não deve conter "([^"]*)"$/ do |field, value|
114
- Then %{the "#{field}" field should not contain "#{value}"}
115
- end
116
-
117
- Então /^o checkbox "([^"]*)" deve estar marcado$/ do |label|
118
- Then %{the "#{label}" checkbox should be checked}
119
- end
120
-
121
- Então /^o checkbox "([^"]*)" não deve estar marcado$/ do |label|
122
- Then %{the "#{label}" checkbox should not be checked}
123
- end
124
-
125
- Então /^eu devo estar na (.+)$/ do |page_name|
126
- Then %{I should be on #{page_name}}
127
- end
128
-
129
- Então /^mostre-me a página$/ do
130
- Then %{show me the page}
131
- end
132
-
@@ -1,239 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
4
-
5
- def World(*a); end
6
- require 'cucumber/web/tableish'
7
-
8
- module Cucumber
9
- module Web
10
- describe Tableish do
11
- include Tableish
12
-
13
- unless RUBY_PLATFORM =~ /java/
14
- it "should convert a table" do
15
- html = <<-HTML
16
- <div class="admin-table">
17
- <table>
18
- <thead>
19
- <tr>
20
- <th>Name</th>
21
- <th><span>Edit</span></th>
22
- <th><span>Delete</span></th>
23
- </tr>
24
- </thead>
25
- <tbody>
26
- <tr>
27
- <td><strong>Guybrush Threepwood</strong></td>
28
- <td><a href="/users/1/edit">Edit</a></td>
29
- <td>
30
- <form method="post" action="/users/1" class="button-to">
31
- <div>
32
- <input type="hidden" name="_method" value="delete" />
33
- <input value="Delete" type="submit" />
34
- </div>
35
- </form>
36
- </td>
37
- </tr>
38
- </tbody>
39
- </table>
40
- </div>
41
- HTML
42
-
43
- header = _tableish(html, '.admin-table table thead tr', 'th')
44
-
45
- column_selector = lambda do |tr|
46
- tds = tr.search('td')
47
- [
48
- tds[0].text,
49
- tds[1].text,
50
- tds[2].css('input:nth-child(2)').first.attributes['value']
51
- ]
52
- end
53
- body = _tableish(html, '.admin-table table tbody tr', column_selector)
54
-
55
- (header + body).should == [
56
- ['Name', 'Edit', 'Delete'],
57
- ['Guybrush Threepwood', 'Edit', 'Delete']
58
- ]
59
- end
60
-
61
- it "should convert a table" do
62
- html = <<-HTML
63
- <table id="tools">
64
- <tr>
65
- <th>tool</th>
66
- <th>dude</th>
67
- </tr>
68
- <tr>
69
- <td>webrat</td>
70
- <td>bryan</td>
71
- </tr>
72
- <tr>
73
- <td>cucumber</td>
74
- <td>aslak</td>
75
- </tr>
76
- </table>
77
- HTML
78
-
79
- _tableish(html, 'table#tools tr', 'td,th').should == [
80
- %w{tool dude},
81
- %w{webrat bryan},
82
- %w{cucumber aslak}
83
- ]
84
- end
85
-
86
- it "should size to the first row" do
87
- html = <<-HTML
88
- <table id="tools">
89
- <tr>
90
- <th>tool</th>
91
- <th>dude</th>
92
- </tr>
93
- <tr>
94
- <td>webrat</td>
95
- <td>bryan</td>
96
- <td>crapola</td>
97
- </tr>
98
- <tr>
99
- <td>cucumber</td>
100
- <td>aslak</td>
101
- <td>gunk</td>
102
- <td>filth</td>
103
- </tr>
104
- </table>
105
- HTML
106
-
107
- _tableish(html, 'table#tools tr', 'td,th').should == [
108
- ['tool', 'dude',],
109
- ['webrat', 'bryan'],
110
- ['cucumber', 'aslak']
111
- ]
112
- end
113
-
114
- it "should pad with empty Strings if some rows are shorter" do
115
- html = <<-HTML
116
- <table id="tools">
117
- <tr>
118
- <th>tool</th>
119
- <th>dude</th>
120
- </tr>
121
- <tr>
122
- <td>webrat</td>
123
- <td>bryan</td>
124
- </tr>
125
- <tr>
126
- <td>cucumber</td>
127
- </tr>
128
- </table>
129
- HTML
130
-
131
- _tableish(html, 'table#tools tr', 'td,th').should == [
132
- %w{tool dude},
133
- %w{webrat bryan},
134
- ['cucumber', '']
135
- ]
136
- end
137
-
138
- it "should handle colspan and rowspan" do
139
- html = <<-HTML
140
- <table id="tools">
141
- <tr>
142
- <td rowspan="4">a</td>
143
- <td>b</td>
144
- <td>c</td>
145
- <td>d</td>
146
- </tr>
147
- <tr>
148
- <td colspan="3">e</td>
149
- </tr>
150
- <tr>
151
- <td rowspan="2" colspan="2">f</td>
152
- <td>g</td>
153
- </tr>
154
- <tr>
155
- <td>h</td>
156
- </tr>
157
- </table>
158
- HTML
159
-
160
- _tableish(html, 'table#tools tr', 'td,th').should == [
161
- ['a', 'b', 'c', 'd'],
162
- ['', 'e', '', '' ],
163
- ['', 'f', '', 'g' ],
164
- ['', '', '', 'h' ],
165
- ]
166
- end
167
-
168
- it "should convert a dl" do
169
- html = <<-HTML
170
- <dl id="tools">
171
- <dt>webrat</dt>
172
- <dd>bryan</dd>
173
- <dt>cucumber</dt>
174
- <dd>aslak</dd>
175
- </dl>
176
- HTML
177
-
178
- _tableish(html, 'dl#tools dt', lambda{|dt| [dt, dt.next.next]}).should == [
179
- %w{webrat bryan},
180
- %w{cucumber aslak}
181
- ]
182
- end
183
-
184
- it "should convert a ul" do
185
- html = <<-HTML
186
- <ul id="phony">
187
- <li>nope</li>
188
- </ul>
189
-
190
- <ul id="yes">
191
- <li>webrat</li>
192
- <li>bryan</li>
193
- <li>cucumber</li>
194
- <li>aslak</li>
195
- </ul>
196
- HTML
197
-
198
- _tableish(html, 'ul#yes li', lambda{|li| [li]}).should == [
199
- %w{webrat},
200
- %w{bryan},
201
- %w{cucumber},
202
- %w{aslak},
203
- ]
204
- end
205
-
206
- it "should do complex shit" do
207
- html = <<-HTML
208
- <form method="post" action="/invoices/10/approve" class="button-to">
209
- <div>
210
- <input id="approve_invoice_10" type="submit" value="Approve" />
211
- <input name="authenticity_token" type="hidden" value="WxKGVy3Y5zcvFEiFe66D/odoc3CicfMdAup4vzQfiZ0=" />
212
- <span>Hello&nbsp;World<span>
213
- </div>
214
- </form>
215
- <form method="post" action="/invoices/10/delegate" class="button-to">
216
- <div>
217
- <input id="delegate_invoice_10" type="submit" value="Delegate" />
218
- <input name="authenticity_token" type="hidden" value="WxKGVy3Y5zcvFEiFe66D/odoc3CicfMdAup4vzQfiZ0=" />
219
- <span>Hi There<span>
220
- </div>
221
- </form>
222
- HTML
223
-
224
- selectors = lambda do |form|
225
- [
226
- form.css('div input:nth-child(1)').first.attributes['value'],
227
- form.css('span').first.text.gsub(/\302\240/, ' ')
228
- ]
229
- end
230
-
231
- _tableish(html, 'form', selectors).should == [
232
- ['Approve', "Hello World"],
233
- ['Delegate', 'Hi There']
234
- ]
235
- end
236
- end
237
- end
238
- end
239
- end