mechanical-cuke 0.3.1 → 0.4.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.
- data/Rakefile +4 -0
- data/VERSION +1 -1
- data/features/missing_fields.feature +12 -0
- data/features/step_definitions/missing_field_steps.rb +32 -0
- data/features/support/env.rb +0 -1
- data/features/support/paths.rb +2 -0
- data/lib/mechanical-cuke/web_steps.rb +8 -3
- data/test/fixtures/server/server.rb +4 -0
- data/test/fixtures/server/views/blank_form.erb +18 -0
- metadata +45 -2
data/Rakefile
CHANGED
@@ -13,6 +13,10 @@ begin
|
|
13
13
|
gem.add_runtime_dependency 'mechanize', '>= 1.0.0'
|
14
14
|
gem.add_runtime_dependency "cucumber", ">= 0.8.5"
|
15
15
|
gem.add_development_dependency "open4", ">= 0.9.6"
|
16
|
+
gem.add_development_dependency "cucumber-rails", ">= 0.2.4"
|
17
|
+
gem.add_development_dependency "mocha", ">= 0.9.8"
|
18
|
+
gem.add_development_dependency "launchy", ">= 0.3.3"
|
19
|
+
gem.add_development_dependency "sinatra", ">= 1.0"
|
16
20
|
end
|
17
21
|
Jeweler::GemcutterTasks.new
|
18
22
|
rescue LoadError
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.4.0
|
@@ -0,0 +1,12 @@
|
|
1
|
+
Feature: Missing Fields
|
2
|
+
In order to provide reliable tests
|
3
|
+
Steps referering to elements not found on a form should fail
|
4
|
+
|
5
|
+
Scenario: Failing Steps
|
6
|
+
Given I am on the blank form
|
7
|
+
When I fill in a nonexistent text field an error should be raised
|
8
|
+
When I select a nonexistent select field an error should be raised
|
9
|
+
When I choose a nonexistent radio button an error should be raised
|
10
|
+
When I check a nonexistent check box an error should be raised
|
11
|
+
When I press a nonexistent button an error should be raised
|
12
|
+
When I select a missing option from an existing select an error should be raised
|
@@ -0,0 +1,32 @@
|
|
1
|
+
When /^I (?:fill in|select|choose|check|press) a nonexistent (.+) an error should be raised$/ do |type|
|
2
|
+
|
3
|
+
case type
|
4
|
+
when "text field" then
|
5
|
+
assert_raise(RuntimeError) do
|
6
|
+
When %{I fill in "nonexistent" with "anything"}
|
7
|
+
end
|
8
|
+
when "select field" then
|
9
|
+
assert_raise(RuntimeError) do
|
10
|
+
When %{I select "anything" from "nonexistent"}
|
11
|
+
end
|
12
|
+
when "radio button" then
|
13
|
+
assert_raise(RuntimeError) do
|
14
|
+
When %{I choose "nonexistent"}
|
15
|
+
end
|
16
|
+
when "check box" then
|
17
|
+
assert_raise(RuntimeError) do
|
18
|
+
When %{I check "nonexistent"}
|
19
|
+
end
|
20
|
+
when "button" then
|
21
|
+
assert_raise(RuntimeError) do
|
22
|
+
When %{I press "nonexistent"}
|
23
|
+
end
|
24
|
+
else assert false
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
When /^I select a missing option from an existing select an error should be raised$/ do
|
29
|
+
assert_raise(RuntimeError) do
|
30
|
+
When %{I select "nonexistent" from "Exists"}
|
31
|
+
end
|
32
|
+
end
|
data/features/support/env.rb
CHANGED
data/features/support/paths.rb
CHANGED
@@ -6,8 +6,9 @@ When /^(?:|I )go to (.+)$/ do |page_name|
|
|
6
6
|
get path_to(page_name)
|
7
7
|
end
|
8
8
|
|
9
|
-
When /^(?:|I )press "([^\"]*)"$/ do |
|
10
|
-
button = form.submits.find{|f| f.
|
9
|
+
When /^(?:|I )press "([^\"]*)"$/ do |value|
|
10
|
+
button = form.submits.find{|f| f.value == value}
|
11
|
+
raise "Can't find button \"#{value}\"" if button.nil?
|
11
12
|
form.click_button(button)
|
12
13
|
end
|
13
14
|
|
@@ -36,17 +37,21 @@ end
|
|
36
37
|
When /^(?:|I )select "([^\"]*)" from "([^\"]*)"$/ do |value, field|
|
37
38
|
f = find_field(field)
|
38
39
|
raise "Can't find field \"#{field}\"" if f.nil?
|
39
|
-
f.option_with(:value => value)
|
40
|
+
option = f.option_with(:value => value)
|
41
|
+
raise "Can't find option #{value} for \"#{field}\"" if option.nil?
|
42
|
+
option.select
|
40
43
|
end
|
41
44
|
|
42
45
|
|
43
46
|
When /^(?:|I )check "([^\"]*)"$/ do |field|
|
44
47
|
cb = find_checkbox(field)
|
48
|
+
raise "Can't find check box \"#{field}\"" if cb.nil?
|
45
49
|
cb.checked = true
|
46
50
|
end
|
47
51
|
|
48
52
|
When /^(?:|I )uncheck "([^\"]*)"$/ do |field|
|
49
53
|
cb = find_checkbox(field)
|
54
|
+
raise "Can't find check box \"#{field}\"" if cb.nil?
|
50
55
|
cb.checked = false
|
51
56
|
end
|
52
57
|
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<title>Blank Form</title>
|
5
|
+
</head>
|
6
|
+
<body>
|
7
|
+
<form id="form_id" name="form_name" action="" method="POST">
|
8
|
+
<p>
|
9
|
+
<label for="select_id">Exists</label>
|
10
|
+
<select id="select_id" name="select">
|
11
|
+
<option></option>
|
12
|
+
<option>Option Exists</option>
|
13
|
+
</select>
|
14
|
+
</p>
|
15
|
+
|
16
|
+
</form>
|
17
|
+
</body>
|
18
|
+
</html>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mechanical-cuke
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Spike Ilacqua
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-08-
|
12
|
+
date: 2010-08-21 00:00:00 -06:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -42,6 +42,46 @@ dependencies:
|
|
42
42
|
- !ruby/object:Gem::Version
|
43
43
|
version: 0.9.6
|
44
44
|
version:
|
45
|
+
- !ruby/object:Gem::Dependency
|
46
|
+
name: cucumber-rails
|
47
|
+
type: :development
|
48
|
+
version_requirement:
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.2.4
|
54
|
+
version:
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: mocha
|
57
|
+
type: :development
|
58
|
+
version_requirement:
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: 0.9.8
|
64
|
+
version:
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: launchy
|
67
|
+
type: :development
|
68
|
+
version_requirement:
|
69
|
+
version_requirements: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: 0.3.3
|
74
|
+
version:
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: sinatra
|
77
|
+
type: :development
|
78
|
+
version_requirement:
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: "1.0"
|
84
|
+
version:
|
45
85
|
description: A Mechanize driver for Cucumber. Provides step definitions for driving web applications using Mechanize.
|
46
86
|
email: spike@indra.com
|
47
87
|
executables: []
|
@@ -58,8 +98,10 @@ files:
|
|
58
98
|
- README.textile
|
59
99
|
- Rakefile
|
60
100
|
- VERSION
|
101
|
+
- features/missing_fields.feature
|
61
102
|
- features/step_definitions/basic_auth_steps.rb
|
62
103
|
- features/step_definitions/mechanical-cuke_steps.rb
|
104
|
+
- features/step_definitions/missing_field_steps.rb
|
63
105
|
- features/step_definitions/table_steps.rb
|
64
106
|
- features/support/env.rb
|
65
107
|
- features/support/mocha.rb
|
@@ -71,6 +113,7 @@ files:
|
|
71
113
|
- lib/mechanical-cuke/web_steps.rb
|
72
114
|
- test/fixtures/hello.txt
|
73
115
|
- test/fixtures/server/server.rb
|
116
|
+
- test/fixtures/server/views/blank_form.erb
|
74
117
|
- test/fixtures/server/views/form.erb
|
75
118
|
- test/fixtures/server/views/form_output.erb
|
76
119
|
- test/fixtures/server/views/index.erb
|