cucumber-rails 1.1.1 → 1.2.0

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