swamp 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +2 -0
  3. data/.travis.yml +8 -0
  4. data/Gemfile +6 -0
  5. data/Gemfile.lock +79 -0
  6. data/README.md +5 -0
  7. data/Rakefile +8 -0
  8. data/bin/swamp +20 -0
  9. data/features/specifications/user_scans_a_page_interactively.feature +10 -0
  10. data/features/specifications/user_scans_buttons_in_a_page.feature +43 -0
  11. data/features/specifications/user_scans_fields_in_a_page.feature +38 -0
  12. data/features/specifications/user_scans_input_buttons_in_a_page.feature +28 -0
  13. data/features/specifications/user_scans_links_in_a_page.feature +18 -0
  14. data/features/specifications/user_scans_select_box_elements_in_a_page.feature +28 -0
  15. data/features/specifications/user_starts_swamp.feature +10 -0
  16. data/features/step_definitions/swamp_steps.rb +46 -0
  17. data/features/support/env.rb +2 -0
  18. data/features/support/page_examples/button.html +1 -0
  19. data/features/support/page_examples/button.html~ +0 -0
  20. data/features/support/page_examples/button_without_text.html +1 -0
  21. data/features/support/page_examples/button_without_text_id_and_value.html +1 -0
  22. data/features/support/page_examples/button_without_text_without_id_with_value.html +1 -0
  23. data/features/support/page_examples/checkbox.html +1 -0
  24. data/features/support/page_examples/field.html +1 -0
  25. data/features/support/page_examples/field_without_id.html +1 -0
  26. data/features/support/page_examples/input_submit.html +1 -0
  27. data/features/support/page_examples/input_submit_without_id.html +1 -0
  28. data/features/support/page_examples/link.html +1 -0
  29. data/features/support/page_examples/link.html~ +0 -0
  30. data/features/support/page_examples/link_with_id.html +5 -0
  31. data/features/support/page_examples/radio.html +1 -0
  32. data/features/support/page_examples/select_box_with_id.html +1 -0
  33. data/features/support/page_examples/select_box_with_name_only.html +1 -0
  34. data/features/support/setup.rb +42 -0
  35. data/lib/swamp/base.rb +29 -0
  36. data/lib/swamp/builder.rb +35 -0
  37. data/lib/swamp/button.rb +11 -0
  38. data/lib/swamp/buttons.rb +19 -0
  39. data/lib/swamp/element.rb +23 -0
  40. data/lib/swamp/elements.rb +39 -0
  41. data/lib/swamp/evaluator.rb +20 -0
  42. data/lib/swamp/field.rb +11 -0
  43. data/lib/swamp/fields.rb +21 -0
  44. data/lib/swamp/formatter.rb +51 -0
  45. data/lib/swamp/input_button.rb +11 -0
  46. data/lib/swamp/input_buttons.rb +19 -0
  47. data/lib/swamp/interface.rb +33 -0
  48. data/lib/swamp/link.rb +11 -0
  49. data/lib/swamp/links.rb +15 -0
  50. data/lib/swamp/select_box.rb +11 -0
  51. data/lib/swamp/select_boxes.rb +17 -0
  52. data/lib/swamp/version.rb +3 -0
  53. data/lib/swamp/wrapper.rb +25 -0
  54. data/lib/swamp.rb +26 -0
  55. data/spec/spec_helper.rb +12 -0
  56. data/spec/swamp/builder_spec.rb +36 -0
  57. data/spec/swamp/buttons_spec.rb +93 -0
  58. data/spec/swamp/evaluator_spec.rb +75 -0
  59. data/spec/swamp/fields_spec.rb +88 -0
  60. data/spec/swamp/formatter_spec.rb +59 -0
  61. data/spec/swamp/input_buttons_spec.rb +62 -0
  62. data/spec/swamp/interface_spec.rb +62 -0
  63. data/spec/swamp/links_spec.rb +34 -0
  64. data/spec/swamp/select_boxes_spec.rb +53 -0
  65. data/spec/swamp/wrapper_spec.rb +104 -0
  66. data/swamp.gemspec +31 -0
  67. metadata +274 -0
@@ -0,0 +1,62 @@
1
+ require 'spec_helper'
2
+ module Swamp
3
+ describe InputButtons do
4
+ let(:input_buttons) { Swamp::InputButtons.new }
5
+
6
+ it "delegates to capybara the responsibility to get the submit elements" do
7
+ element = {'value' => "Log In", 'id' => "u_0_b"}
8
+ element.stub(:visible?).and_return(true)
9
+ input_buttons.page.should_receive(:all).with('input[type="submit"]').and_return([element])
10
+ input_buttons.get
11
+ end
12
+
13
+ context "when the element is visible" do
14
+ context "when the submit element has value and id" do
15
+ let(:element) { {'value' => "Log In", 'id' => "u_0_b"} }
16
+
17
+ before(:each) do
18
+ element.stub(:visible?).and_return(true)
19
+ input_buttons.page.stub(:all).with('input[type="submit"]').and_return([element])
20
+ end
21
+
22
+ it "returns the element in the array using the value as the name" do
23
+ input_buttons.get.should have(1).input_submit
24
+ input_buttons.get.first.name.should == "Log In"
25
+ end
26
+
27
+ it "returns the element in the array using the id as the selector" do
28
+ input_buttons.get.should have(1).input_submit
29
+ input_buttons.get.first.selector.should == "#u_0_b"
30
+ end
31
+ end
32
+
33
+ context "when the submit element has value but has no id" do
34
+ let(:element) { {'value' => "Log In", 'class' => "btn without id"} }
35
+
36
+ before(:each) do
37
+ element.stub(:visible?).and_return(true)
38
+ input_buttons.page.stub(:all).with('input[type="submit"]').and_return([element])
39
+ end
40
+
41
+ it "returns the element in the array using the value as the name" do
42
+ input_buttons.get.should have(1).input_submit
43
+ input_buttons.get.first.name.should == "Log In"
44
+ end
45
+
46
+ it "returns the element in the array using the class concatenated with the value as the selector" do
47
+ input_buttons.get.should have(1).input_submit
48
+ input_buttons.get.first.selector.should == "input.btn.without.id[value='Log In']"
49
+ end
50
+ end
51
+ end
52
+
53
+ context "when the element is not visible" do
54
+ it "returns an empty array" do
55
+ element = {'value' => "Log In", 'id' => "u_0_b"}
56
+ element.stub(:visible?).and_return(false)
57
+ input_buttons.page.stub(:all).with('input[type="submit"]').and_return([element])
58
+ input_buttons.get.should == []
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,62 @@
1
+ require 'spec_helper'
2
+ module Swamp
3
+ describe Interface do
4
+ let(:output) { output = double('output').as_null_object }
5
+ let(:wrapper) { wrapper = double('wrapper').as_null_object }
6
+ let(:interface) { interface = Swamp::Interface.new(output, wrapper) }
7
+
8
+ describe "#run" do
9
+ it "prompts for the url" do
10
+ output.should_receive(:puts).with("Enter the url for the page to be scanned:")
11
+ interface.run
12
+ end
13
+ end
14
+
15
+ describe "#scan" do
16
+ it "delegates the responsibility to fire up the browser to the wrapper class" do
17
+ wrapper.should_receive(:explore)
18
+ interface.scan("http://www.fakepage.com")
19
+ end
20
+
21
+ it "delegates the page parsing to the wrapper class" do
22
+ wrapper.should_receive(:scan).and_return(["code_snippet"])
23
+ interface.scan("http://www.fakepage.com")
24
+ end
25
+
26
+ context "when it scans a valid url" do
27
+ it "sends the code snippets of the scanned page to the output" do
28
+ wrapper.stub(:scan).and_return(["code_snippet"])
29
+ output.should_receive(:puts).with("code_snippet")
30
+ interface.scan("http://www.fakepage.com")
31
+ end
32
+ end
33
+
34
+ context "when it scans an invalid url" do
35
+ it "sends a warning message to the output" do
36
+ output.should_receive(:puts).with("Please enter a valid url!")
37
+ interface.scan("abc123")
38
+ end
39
+ end
40
+
41
+ context "when it receives an enter keystroke" do
42
+ context "when no page was scanned yet" do
43
+ it "sends a warning message to the output" do
44
+ wrapper.stub(:page_visited).and_return(false)
45
+ output.should_receive(:puts).with("Please enter a valid url!")
46
+ interface.scan("\n")
47
+ end
48
+ end
49
+
50
+ context "when a page was already scanned" do
51
+ it "scans the current page and sends the code snippets to the output" do
52
+ wrapper.stub(:page_visited).and_return(true)
53
+ wrapper.stub(:scan).and_return(["code_snippet"])
54
+ output.should_receive(:puts).with("code_snippet")
55
+ interface.scan("\n")
56
+ end
57
+ end
58
+ end
59
+
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+ module Swamp
3
+ describe Links do
4
+ let(:links) { Swamp::Links.new }
5
+
6
+ it "delegates to capybara the responsibility to get the links" do
7
+ element = {'id' => "forgot-password", 'href' => "https://somewhere.com"}
8
+ element.stub(:visible?).and_return(true)
9
+ links.page.should_receive(:all).with('a[href]').and_return([element])
10
+ links.get
11
+ end
12
+
13
+ context "when the element is visible" do
14
+ context "when the link has id" do
15
+ let(:element) { {'id' => "forgot-password", 'href' => "https://somewhere.com"} }
16
+
17
+ before(:each) do
18
+ element.stub(:visible?).and_return(true)
19
+ links.page.stub(:all).with('a[href]').and_return([element])
20
+ end
21
+
22
+ it "returns the element in the array using the id as the name" do
23
+ links.get.should have(1).link
24
+ links.get.first.name.should == "forgot-password"
25
+ end
26
+
27
+ it "returns the element in the array using the id as the selector" do
28
+ links.get.should have(1).select_box
29
+ links.get.first.selector.should == "forgot-password"
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,53 @@
1
+ require 'spec_helper'
2
+ module Swamp
3
+ describe SelectBoxes do
4
+ let(:select_boxes) { Swamp::SelectBoxes.new }
5
+
6
+ it "delegates to capybara the responsibility to get the select box elements" do
7
+ element = {'id' => "month", 'name' => "birthday_month"}
8
+ element.stub(:visible?).and_return(true)
9
+ select_boxes.page.should_receive(:all).with('select').and_return([element])
10
+ select_boxes.get
11
+ end
12
+
13
+ context "when the element is visible" do
14
+ context "when the select box has id" do
15
+ let(:element) { {'id' => "month", 'name' => "birthday_month"} }
16
+
17
+ before(:each) do
18
+ element.stub(:visible?).and_return(true)
19
+ select_boxes.page.stub(:all).with('select').and_return([element])
20
+ end
21
+
22
+ it "returns the element in the array using the id as the name" do
23
+ select_boxes.get.should have(1).select_box
24
+ select_boxes.get.first.name.should == "month"
25
+ end
26
+
27
+ it "returns the element in the array using the id as the selector" do
28
+ select_boxes.get.should have(1).select_box
29
+ select_boxes.get.first.selector.should == "month"
30
+ end
31
+ end
32
+
33
+ context "when the select element has name but no id" do
34
+ let(:element) { {'name' => "birthday_month"} }
35
+
36
+ before(:each) do
37
+ element.stub(:visible?).and_return(true)
38
+ select_boxes.page.stub(:all).with('select').and_return([element])
39
+ end
40
+
41
+ it "returns the element in the array using the name as the name" do
42
+ select_boxes.get.should have(1).select_box
43
+ select_boxes.get.first.name.should == "birthday_month"
44
+ end
45
+
46
+ it "returns the element in the array using the name as the selector" do
47
+ select_boxes.get.should have(1).select_box
48
+ select_boxes.get.first.selector.should == "birthday_month"
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,104 @@
1
+ require 'spec_helper'
2
+ module Swamp
3
+ describe Wrapper do
4
+ describe "#explore" do
5
+ it "fires up the browser to a given url" do
6
+ url = "www.fakepage.com"
7
+ meta_collection = []
8
+ wrapper = Swamp::Wrapper.new(meta_collection)
9
+ wrapper.should_receive(:visit).with(url).and_return("")
10
+ wrapper.explore(url)
11
+ end
12
+ end
13
+
14
+ describe "#scan" do
15
+ let(:fields) { double('fields').as_null_object }
16
+ let(:buttons) { double('buttons').as_null_object }
17
+ let(:input_buttons) { double('input_buttons').as_null_object }
18
+ let(:select_boxes) { double('select_boxes').as_null_object }
19
+ let(:links) { double('links').as_null_object }
20
+ let(:generic_element_collection) { double('generic_element_collection').as_null_object }
21
+
22
+ it "delegates the responsibility of getting the elements for each element collection object" do
23
+ meta_collection = [generic_element_collection]
24
+ wrapper = Swamp::Wrapper.new(meta_collection)
25
+ meta_collection.each { |element_collection| element_collection.should_receive(:get).and_return([]) }
26
+ wrapper.scan
27
+ end
28
+
29
+ context "when field elements were found" do
30
+ let(:field) { Swamp::Field.new("username", "username") }
31
+
32
+ it "returns an array of formatted code snippets for fields" do
33
+ fields.stub(:get).and_return([field])
34
+
35
+ meta_collection = [fields]
36
+ wrapper = Swamp::Wrapper.new(meta_collection)
37
+ wrapper.scan.should == ["def type_username(input)\n source.fill_in(\"username\", with: input)\nend"]
38
+ end
39
+ end
40
+
41
+ context "when button elements were found" do
42
+ let(:button) { Swamp::Button.new("log_in", "log_in") }
43
+
44
+ it "returns an array of formatted code snippets for buttons" do
45
+ buttons.stub(:get).and_return([button])
46
+
47
+ meta_collection = [buttons]
48
+ wrapper = Swamp::Wrapper.new(meta_collection)
49
+ wrapper.scan.should == ["def log_in\n source.click_button(\"log_in\")\nend"]
50
+ end
51
+ end
52
+
53
+ context "when input button elements were found" do
54
+ let(:input_button) { Swamp::InputButton.new("Log In", "input#u_0_b") }
55
+
56
+ it "returns an array of formatted code snippets for input buttons" do
57
+ input_buttons.stub(:get).and_return([input_button])
58
+
59
+ meta_collection = [input_buttons]
60
+ wrapper = Swamp::Wrapper.new(meta_collection)
61
+ wrapper.scan.should == ["def log_in\n source.find(:css, \"input#u_0_b\").click\nend"]
62
+ end
63
+ end
64
+
65
+ context "when select box elements were found" do
66
+ let(:select_box) { Swamp::SelectBox.new("month", "month") }
67
+
68
+ it "returns an array of formatted code snippets for select boxes" do
69
+ select_boxes.stub(:get).and_return([select_box])
70
+
71
+ meta_collection = [select_boxes]
72
+ wrapper = Swamp::Wrapper.new(meta_collection)
73
+ wrapper.scan.should == ["def select_month(option)\n source.select(option, :from => \"month\")\nend"]
74
+ end
75
+ end
76
+
77
+ context "when links were found" do
78
+ let(:link) { Swamp::Link.new("forgot-password", "forgot-password") }
79
+
80
+ it "returns an array of formatted code snippets for links" do
81
+ links.stub(:get).and_return([link])
82
+
83
+ meta_collection = [links]
84
+ wrapper = Swamp::Wrapper.new(meta_collection)
85
+ wrapper.scan.should == ["def forgot_password\n source.click_link(\"forgot-password\")\nend"]
86
+ end
87
+ end
88
+
89
+ context "when no elements were found" do
90
+ it "returns an empty array" do
91
+ fields.stub(:get).and_return([])
92
+ buttons.stub(:get).and_return([])
93
+ input_buttons.stub(:get).and_return([])
94
+ select_boxes.stub(:get).and_return([])
95
+ links.stub(:get).and_return([])
96
+
97
+ meta_collection = [fields, buttons, input_buttons, select_boxes]
98
+ wrapper = Swamp::Wrapper.new(meta_collection)
99
+ wrapper.scan.should == []
100
+ end
101
+ end
102
+ end
103
+ end
104
+ end
data/swamp.gemspec ADDED
@@ -0,0 +1,31 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'swamp/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "swamp"
8
+ spec.version = Swamp::VERSION
9
+ spec.authors = ["Juraci de Lima Vieira Neto"]
10
+ spec.email = ["juraci.vieira@gmail.com"]
11
+ spec.description = "Automatically generates the methods and selectors to help on faster page-object creation using capybara"
12
+ spec.summary = "Swamp, where capybaras belong"
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency "capybara"
22
+ spec.add_dependency "selenium-webdriver"
23
+
24
+ spec.add_development_dependency "bundler", "~> 1.3"
25
+ spec.add_development_dependency "rake"
26
+ spec.add_development_dependency "rspec"
27
+ spec.add_development_dependency "cucumber"
28
+ spec.add_development_dependency "json"
29
+ spec.add_development_dependency "pry"
30
+ spec.add_development_dependency "pry-nav"
31
+ end
metadata ADDED
@@ -0,0 +1,274 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: swamp
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Juraci de Lima Vieira Neto
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-09-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: capybara
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: selenium-webdriver
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '1.3'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: cucumber
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: json
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: pry
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: pry-nav
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ description: Automatically generates the methods and selectors to help on faster page-object
140
+ creation using capybara
141
+ email:
142
+ - juraci.vieira@gmail.com
143
+ executables:
144
+ - swamp
145
+ extensions: []
146
+ extra_rdoc_files: []
147
+ files:
148
+ - .rspec
149
+ - .travis.yml
150
+ - Gemfile
151
+ - Gemfile.lock
152
+ - README.md
153
+ - Rakefile
154
+ - bin/swamp
155
+ - features/specifications/user_scans_a_page_interactively.feature
156
+ - features/specifications/user_scans_buttons_in_a_page.feature
157
+ - features/specifications/user_scans_fields_in_a_page.feature
158
+ - features/specifications/user_scans_input_buttons_in_a_page.feature
159
+ - features/specifications/user_scans_links_in_a_page.feature
160
+ - features/specifications/user_scans_select_box_elements_in_a_page.feature
161
+ - features/specifications/user_starts_swamp.feature
162
+ - features/step_definitions/swamp_steps.rb
163
+ - features/support/env.rb
164
+ - features/support/page_examples/button.html
165
+ - features/support/page_examples/button.html~
166
+ - features/support/page_examples/button_without_text.html
167
+ - features/support/page_examples/button_without_text_id_and_value.html
168
+ - features/support/page_examples/button_without_text_without_id_with_value.html
169
+ - features/support/page_examples/checkbox.html
170
+ - features/support/page_examples/field.html
171
+ - features/support/page_examples/field_without_id.html
172
+ - features/support/page_examples/input_submit.html
173
+ - features/support/page_examples/input_submit_without_id.html
174
+ - features/support/page_examples/link.html
175
+ - features/support/page_examples/link.html~
176
+ - features/support/page_examples/link_with_id.html
177
+ - features/support/page_examples/radio.html
178
+ - features/support/page_examples/select_box_with_id.html
179
+ - features/support/page_examples/select_box_with_name_only.html
180
+ - features/support/setup.rb
181
+ - lib/swamp.rb
182
+ - lib/swamp/base.rb
183
+ - lib/swamp/builder.rb
184
+ - lib/swamp/button.rb
185
+ - lib/swamp/buttons.rb
186
+ - lib/swamp/element.rb
187
+ - lib/swamp/elements.rb
188
+ - lib/swamp/evaluator.rb
189
+ - lib/swamp/field.rb
190
+ - lib/swamp/fields.rb
191
+ - lib/swamp/formatter.rb
192
+ - lib/swamp/input_button.rb
193
+ - lib/swamp/input_buttons.rb
194
+ - lib/swamp/interface.rb
195
+ - lib/swamp/link.rb
196
+ - lib/swamp/links.rb
197
+ - lib/swamp/select_box.rb
198
+ - lib/swamp/select_boxes.rb
199
+ - lib/swamp/version.rb
200
+ - lib/swamp/wrapper.rb
201
+ - spec/spec_helper.rb
202
+ - spec/swamp/builder_spec.rb
203
+ - spec/swamp/buttons_spec.rb
204
+ - spec/swamp/evaluator_spec.rb
205
+ - spec/swamp/fields_spec.rb
206
+ - spec/swamp/formatter_spec.rb
207
+ - spec/swamp/input_buttons_spec.rb
208
+ - spec/swamp/interface_spec.rb
209
+ - spec/swamp/links_spec.rb
210
+ - spec/swamp/select_boxes_spec.rb
211
+ - spec/swamp/wrapper_spec.rb
212
+ - swamp.gemspec
213
+ homepage: ''
214
+ licenses:
215
+ - MIT
216
+ metadata: {}
217
+ post_install_message:
218
+ rdoc_options: []
219
+ require_paths:
220
+ - lib
221
+ required_ruby_version: !ruby/object:Gem::Requirement
222
+ requirements:
223
+ - - '>='
224
+ - !ruby/object:Gem::Version
225
+ version: '0'
226
+ required_rubygems_version: !ruby/object:Gem::Requirement
227
+ requirements:
228
+ - - '>='
229
+ - !ruby/object:Gem::Version
230
+ version: '0'
231
+ requirements: []
232
+ rubyforge_project:
233
+ rubygems_version: 2.0.3
234
+ signing_key:
235
+ specification_version: 4
236
+ summary: Swamp, where capybaras belong
237
+ test_files:
238
+ - features/specifications/user_scans_a_page_interactively.feature
239
+ - features/specifications/user_scans_buttons_in_a_page.feature
240
+ - features/specifications/user_scans_fields_in_a_page.feature
241
+ - features/specifications/user_scans_input_buttons_in_a_page.feature
242
+ - features/specifications/user_scans_links_in_a_page.feature
243
+ - features/specifications/user_scans_select_box_elements_in_a_page.feature
244
+ - features/specifications/user_starts_swamp.feature
245
+ - features/step_definitions/swamp_steps.rb
246
+ - features/support/env.rb
247
+ - features/support/page_examples/button.html
248
+ - features/support/page_examples/button.html~
249
+ - features/support/page_examples/button_without_text.html
250
+ - features/support/page_examples/button_without_text_id_and_value.html
251
+ - features/support/page_examples/button_without_text_without_id_with_value.html
252
+ - features/support/page_examples/checkbox.html
253
+ - features/support/page_examples/field.html
254
+ - features/support/page_examples/field_without_id.html
255
+ - features/support/page_examples/input_submit.html
256
+ - features/support/page_examples/input_submit_without_id.html
257
+ - features/support/page_examples/link.html
258
+ - features/support/page_examples/link.html~
259
+ - features/support/page_examples/link_with_id.html
260
+ - features/support/page_examples/radio.html
261
+ - features/support/page_examples/select_box_with_id.html
262
+ - features/support/page_examples/select_box_with_name_only.html
263
+ - features/support/setup.rb
264
+ - spec/spec_helper.rb
265
+ - spec/swamp/builder_spec.rb
266
+ - spec/swamp/buttons_spec.rb
267
+ - spec/swamp/evaluator_spec.rb
268
+ - spec/swamp/fields_spec.rb
269
+ - spec/swamp/formatter_spec.rb
270
+ - spec/swamp/input_buttons_spec.rb
271
+ - spec/swamp/interface_spec.rb
272
+ - spec/swamp/links_spec.rb
273
+ - spec/swamp/select_boxes_spec.rb
274
+ - spec/swamp/wrapper_spec.rb