swamp 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/.ruby-version +1 -0
  4. data/Guardfile +33 -0
  5. data/README.md +24 -10
  6. data/features/specifications/changing_scope_to_source.feature +16 -0
  7. data/features/specifications/scope_changing.feature +14 -24
  8. data/features/specifications/using_prism_scope.feature +100 -0
  9. data/features/step_definitions/swamp_steps.rb +14 -4
  10. data/lib/swamp/builders/basic.rb +39 -0
  11. data/lib/swamp/builders/prism.rb +9 -0
  12. data/lib/swamp/collections/buttons.rb +28 -0
  13. data/lib/swamp/{fields.rb → collections/fields.rb} +9 -3
  14. data/lib/swamp/{input_buttons.rb → collections/input_buttons.rb} +7 -2
  15. data/lib/swamp/{links.rb → collections/links.rb} +3 -1
  16. data/lib/swamp/collections/select_boxes.rb +28 -0
  17. data/lib/swamp/{button.rb → elements/button.rb} +1 -0
  18. data/lib/swamp/{complex_select_box.rb → elements/complex_select_box.rb} +2 -0
  19. data/lib/swamp/{element.rb → elements/element.rb} +12 -0
  20. data/lib/swamp/{field.rb → elements/field.rb} +1 -0
  21. data/lib/swamp/{input_button.rb → elements/input_button.rb} +1 -0
  22. data/lib/swamp/{link.rb → elements/link.rb} +1 -0
  23. data/lib/swamp/{select_box.rb → elements/select_box.rb} +1 -0
  24. data/lib/swamp/scopes/page.rb +9 -0
  25. data/lib/swamp/scopes/prism.rb +9 -0
  26. data/lib/swamp/scopes/scope.rb +13 -0
  27. data/lib/swamp/scopes/source.rb +9 -0
  28. data/lib/swamp/setup.rb +7 -3
  29. data/lib/swamp/version.rb +1 -1
  30. data/lib/swamp/wrapper.rb +1 -1
  31. data/lib/swamp.rb +19 -14
  32. data/spec/swamp/builders/basic_spec.rb +44 -0
  33. data/spec/swamp/builders/prism_spec.rb +17 -0
  34. data/spec/swamp/buttons_spec.rb +7 -4
  35. data/spec/swamp/fields_spec.rb +3 -0
  36. data/spec/swamp/input_buttons_spec.rb +1 -0
  37. data/spec/swamp/links_spec.rb +1 -0
  38. data/spec/swamp/select_boxes_spec.rb +3 -0
  39. data/spec/swamp/setup_spec.rb +11 -4
  40. data/swamp.gemspec +12 -10
  41. metadata +96 -55
  42. data/lib/swamp/builder.rb +0 -39
  43. data/lib/swamp/buttons.rb +0 -22
  44. data/lib/swamp/select_boxes.rb +0 -22
  45. data/spec/swamp/builder_spec.rb +0 -46
  46. /data/lib/swamp/{elements.rb → collections/elements.rb} +0 -0
data/lib/swamp.rb CHANGED
@@ -4,22 +4,27 @@ require 'swamp/setup'
4
4
  require 'swamp/interface'
5
5
  require 'swamp/evaluator'
6
6
  require 'swamp/base'
7
- require 'swamp/elements'
7
+ require 'swamp/collections/elements'
8
8
  require 'swamp/wrapper'
9
- require 'swamp/element'
10
- require 'swamp/fields'
11
- require 'swamp/field'
12
- require 'swamp/buttons'
13
- require 'swamp/button'
14
- require 'swamp/builder'
9
+ require 'swamp/elements/element'
10
+ require 'swamp/collections/fields'
11
+ require 'swamp/elements/field'
12
+ require 'swamp/collections/buttons'
13
+ require 'swamp/elements/button'
14
+ require 'swamp/builders/basic'
15
+ require 'swamp/builders/prism'
15
16
  require 'swamp/formatter'
16
- require 'swamp/input_buttons'
17
- require 'swamp/input_button'
18
- require 'swamp/select_boxes'
19
- require 'swamp/select_box'
20
- require 'swamp/complex_select_box'
21
- require 'swamp/links'
22
- require 'swamp/link'
17
+ require 'swamp/collections/input_buttons'
18
+ require 'swamp/elements/input_button'
19
+ require 'swamp/collections/select_boxes'
20
+ require 'swamp/elements/select_box'
21
+ require 'swamp/elements/complex_select_box'
22
+ require 'swamp/collections/links'
23
+ require 'swamp/elements/link'
24
+ require 'swamp/scopes/source'
25
+ require 'swamp/scopes/page'
26
+ require 'swamp/scopes/prism'
27
+ require 'swamp/scopes/scope'
23
28
 
24
29
  module Swamp
25
30
  end
@@ -0,0 +1,44 @@
1
+ require 'spec_helper'
2
+ module Swamp
3
+ module Builders
4
+ describe Basic do
5
+ let(:builder) { Swamp::Builders::Basic.new('page') }
6
+ let(:source_builder) { Swamp::Builders::Basic.new('source') }
7
+
8
+ describe "#build_snippet" do
9
+ context "when the type is field" do
10
+ context "when the name and the selector are present" do
11
+ it "returns the method's snippet" do
12
+ element = Swamp::Field.new("User-Name", "User-Name")
13
+ expect(builder.build_snippet(element)).to eq("def type_user_name(input)\n page.fill_in(\"User-Name\", with: input)\nend")
14
+ end
15
+ end
16
+ end
17
+
18
+ context "when the type is button" do
19
+ context "when the name and the selector are present" do
20
+ it "returns the method's snippet" do
21
+ element = Swamp::Button.new("Log_in", "Log_in")
22
+ expect(builder.build_snippet(element)).to eq("def log_in\n page.click_button(\"Log_in\")\nend")
23
+ end
24
+ end
25
+
26
+ context "when just the selector is present" do
27
+ it "returns just the selector snippet" do
28
+ element = Swamp::Button.new(nil, "$ 9.90 Buy")
29
+ expect(builder.build_snippet(element)).to eq("page.click_button(\"$ 9.90 Buy\")")
30
+ end
31
+ end
32
+
33
+ context "when the scope has changed" do
34
+ it "returns the method's snippet with the changed scope" do
35
+ element = Swamp::Button.new("Log_in", "Log_in")
36
+ expect(source_builder.build_snippet(element)).to eq("def log_in\n source.click_button(\"Log_in\")\nend")
37
+ end
38
+ end
39
+
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ module Swamp
4
+ module Builders
5
+ describe Prism do
6
+ let(:builder) { Swamp::Builders::Prism.new }
7
+
8
+ describe "#build_snippet" do
9
+ it "returns the method's snippet" do
10
+ element = Swamp::Button.new("User-Name", "User-Name")
11
+ element.prism_selector = "'#User-Name'"
12
+ expect(builder.build_snippet(element)).to eq("element :user_name, '#User-Name'")
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -30,8 +30,9 @@ module Swamp
30
30
  it "returns the element in the array using the text as both the name and the selector" do
31
31
  allow(buttons.page).to receive(:execute_script).and_return(nil)
32
32
  expect(buttons.get.size).to eq(1)
33
- expect(buttons.get.each.first.name).to eq("Sign Up")
34
- expect(buttons.get.each.first.selector).to eq("Sign Up")
33
+ expect(buttons.get.first.name).to eq("Sign Up")
34
+ expect(buttons.get.first.selector).to eq("Sign Up")
35
+ expect(buttons.get.first.prism_selector).to eq(%\'button', text: 'Sign Up'\)
35
36
  end
36
37
  end
37
38
 
@@ -53,8 +54,9 @@ module Swamp
53
54
  it "returns the element in the array using the id as both the name and the selector" do
54
55
  allow(buttons.page).to receive(:execute_script).and_return(nil)
55
56
  expect(buttons.get.size).to eq(1)
56
- expect(buttons.get.each.first.name).to eq("search-button")
57
- expect(buttons.get.each.first.selector).to eq("search-button")
57
+ expect(buttons.get.first.name).to eq("search-button")
58
+ expect(buttons.get.first.selector).to eq("search-button")
59
+ expect(buttons.get.first.prism_selector).to eq("'#search-button'")
58
60
  end
59
61
  end
60
62
 
@@ -78,6 +80,7 @@ module Swamp
78
80
  expect(buttons.get.size).to eq(1)
79
81
  expect(buttons.get.each.first.name).to eq("search-button")
80
82
  expect(buttons.get.each.first.selector).to eq("search-button")
83
+ expect(buttons.get.each.first.prism_selector).to eq(%\"[value='search-button']"\)
81
84
  end
82
85
  end
83
86
 
@@ -38,6 +38,7 @@ module Swamp
38
38
  allow(fields.page).to receive(:execute_script).and_return(nil)
39
39
  expect(fields.get.size).to eq(1)
40
40
  expect(fields.get.first.selector).to eq("u_0_b")
41
+ expect(fields.get.first.prism_selector).to eq("'#u_0_b'")
41
42
  end
42
43
  end
43
44
 
@@ -64,6 +65,7 @@ module Swamp
64
65
  allow(fields.page).to receive(:execute_script).and_return(nil)
65
66
  expect(fields.get.size).to eq(1)
66
67
  expect(fields.get.first.selector).to eq("username")
68
+ expect(fields.get.first.prism_selector).to eq("'#username'")
67
69
  end
68
70
  end
69
71
 
@@ -90,6 +92,7 @@ module Swamp
90
92
  allow(fields.page).to receive(:execute_script).and_return(nil)
91
93
  expect(fields.get.size).to eq(1)
92
94
  expect(fields.get.first.selector).to eq("username")
95
+ expect(fields.get.first.prism_selector).to eq(%/'input[name="username"]'/)
93
96
  end
94
97
  end
95
98
  end
@@ -61,6 +61,7 @@ module Swamp
61
61
  allow(input_buttons.page).to receive(:execute_script).and_return(nil)
62
62
  expect(input_buttons.get.size).to eq(1)
63
63
  expect(input_buttons.get.first.selector).to eq("input.btn.without.id[value='Log In']")
64
+ expect(input_buttons.get.first.prism_selector).to eq(%\"input.btn.without.id[value='Log In']"\)
64
65
  end
65
66
  end
66
67
  end
@@ -35,6 +35,7 @@ module Swamp
35
35
  allow(links.page).to receive(:execute_script).and_return(nil)
36
36
  expect(links.get.size).to eq(1)
37
37
  expect(links.get.first.selector).to eq("forgot-password")
38
+ expect(links.get.first.prism_selector).to eq("'#forgot-password'")
38
39
  end
39
40
  end
40
41
  end
@@ -35,6 +35,7 @@ module Swamp
35
35
  allow(select_boxes.page).to receive(:execute_script).and_return(nil)
36
36
  expect(select_boxes.get.size).to eq(1)
37
37
  expect(select_boxes.get.first.selector).to eq("month")
38
+ expect(select_boxes.get.first.prism_selector).to eq("'#month'")
38
39
  end
39
40
  end
40
41
 
@@ -61,6 +62,7 @@ module Swamp
61
62
  allow(select_boxes.page).to receive(:execute_script).and_return(nil)
62
63
  expect(select_boxes.get.size).to eq(1)
63
64
  expect(select_boxes.get.first.selector).to eq("birthday_month")
65
+ expect(select_boxes.get.first.prism_selector).to eq(%\"select[name='birthday_month']"\)
64
66
  end
65
67
  end
66
68
 
@@ -87,6 +89,7 @@ module Swamp
87
89
  allow(select_boxes.page).to receive(:execute_script).and_return(nil)
88
90
  expect(select_boxes.get.size).to eq(1)
89
91
  expect(select_boxes.get.first.selector).to eq("provider-select")
92
+ expect(select_boxes.get.first.prism_selector).to eq("'select.provider-select'")
90
93
  end
91
94
  end
92
95
  end
@@ -2,17 +2,24 @@ require 'spec_helper'
2
2
  module Swamp
3
3
  describe Setup do
4
4
  let(:setup) { Swamp::Setup.new }
5
+ let(:source_scope) { Swamp::Scope::Source.new }
6
+ let(:page_scope) { Swamp::Scope::Page.new }
7
+
8
+ before :each do
9
+ allow(Swamp::Scope).to receive(:from_value).with('source').and_return(source_scope)
10
+ allow(Swamp::Scope).to receive(:from_value).with('page').and_return(page_scope)
11
+ end
5
12
 
6
13
  it "should set the default options" do
7
- expect(setup.scope).to eq("page")
14
+ expect(setup.scope).to eq(page_scope)
8
15
  end
9
16
 
10
17
  describe "#handle_command" do
11
18
  context "when the command is valid" do
12
19
  context "when the scope changes" do
13
- it "should set the option :scope to source" do
20
+ it "should set the option :scope" do
14
21
  setup.handle_command(":scope = source")
15
- expect(setup.scope).to eq("source")
22
+ expect(setup.scope).to eq(source_scope)
16
23
  end
17
24
 
18
25
  it "should return a message confirming the scope was set to source" do
@@ -21,7 +28,7 @@ module Swamp
21
28
 
22
29
  it "should set the option :scope to page" do
23
30
  setup.handle_command(":scope = page")
24
- expect(setup.scope).to eq("page")
31
+ expect(setup.scope).to eq(page_scope)
25
32
  end
26
33
 
27
34
  it "should return a message confirming the scope was set to page" do
data/swamp.gemspec CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["juraci.vieira@gmail.com"]
11
11
  spec.description = "Automatically generates the methods and selectors to help on faster page-object creation using capybara"
12
12
  spec.summary = "Swamp, where capybaras belong"
13
- spec.homepage = ""
13
+ spec.homepage = "https://github.com/Juraci/swamp"
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
@@ -18,14 +18,16 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency "capybara"
22
- spec.add_dependency "selenium-webdriver"
21
+ spec.add_dependency "capybara", '~> 2.4'
22
+ spec.add_dependency "selenium-webdriver", '~> 2.43'
23
23
 
24
- spec.add_development_dependency "bundler"
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"
24
+ spec.add_development_dependency "bundler", '~> 1.6'
25
+ spec.add_development_dependency "rake", '~> 10.3'
26
+ spec.add_development_dependency "rspec", '~> 3'
27
+ spec.add_development_dependency "cucumber", '~> 1.3'
28
+ spec.add_development_dependency "json", '~> 1.8'
29
+ spec.add_development_dependency "pry", '~> 0.9'
30
+ spec.add_development_dependency "pry-nav", '~> 0.2'
31
+ spec.add_development_dependency "guard", '~> 2.6'
32
+ spec.add_development_dependency "guard-rspec", '~> 4.3'
31
33
  end
metadata CHANGED
@@ -1,141 +1,169 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: swamp
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juraci de Lima Vieira Neto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-08 00:00:00.000000000 Z
11
+ date: 2014-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capybara
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '2.4'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '2.4'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: selenium-webdriver
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '2.43'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '2.43'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '1.6'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '1.6'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '10.3'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '10.3'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: '3'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: '3'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: cucumber
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '1.3'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: '1.3'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: json
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '0'
103
+ version: '1.8'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '0'
110
+ version: '1.8'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: pry
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '0'
117
+ version: '0.9'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">="
122
+ - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '0'
124
+ version: '0.9'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: pry-nav
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ">="
129
+ - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '0'
131
+ version: '0.2'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ">="
136
+ - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '0'
138
+ version: '0.2'
139
+ - !ruby/object:Gem::Dependency
140
+ name: guard
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '2.6'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '2.6'
153
+ - !ruby/object:Gem::Dependency
154
+ name: guard-rspec
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '4.3'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '4.3'
139
167
  description: Automatically generates the methods and selectors to help on faster page-object
140
168
  creation using capybara
141
169
  email:
@@ -147,11 +175,14 @@ extra_rdoc_files: []
147
175
  files:
148
176
  - ".gitignore"
149
177
  - ".rspec"
178
+ - ".ruby-version"
150
179
  - ".travis.yml"
151
180
  - Gemfile
181
+ - Guardfile
152
182
  - README.md
153
183
  - Rakefile
154
184
  - bin/swamp
185
+ - features/specifications/changing_scope_to_source.feature
155
186
  - features/specifications/scope_changing.feature
156
187
  - features/specifications/user_scans_a_page_interactively.feature
157
188
  - features/specifications/user_scans_buttons_in_a_page.feature
@@ -160,6 +191,7 @@ files:
160
191
  - features/specifications/user_scans_links_in_a_page.feature
161
192
  - features/specifications/user_scans_select_box_elements_in_a_page.feature
162
193
  - features/specifications/user_starts_swamp.feature
194
+ - features/specifications/using_prism_scope.feature
163
195
  - features/step_definitions/swamp_steps.rb
164
196
  - features/support/env.rb
165
197
  - features/support/page_examples/button.html
@@ -185,28 +217,34 @@ files:
185
217
  - lib/swamp.rb
186
218
  - lib/swamp/assertions.rb
187
219
  - lib/swamp/base.rb
188
- - lib/swamp/builder.rb
189
- - lib/swamp/button.rb
190
- - lib/swamp/buttons.rb
191
- - lib/swamp/complex_select_box.rb
192
- - lib/swamp/element.rb
193
- - lib/swamp/elements.rb
220
+ - lib/swamp/builders/basic.rb
221
+ - lib/swamp/builders/prism.rb
222
+ - lib/swamp/collections/buttons.rb
223
+ - lib/swamp/collections/elements.rb
224
+ - lib/swamp/collections/fields.rb
225
+ - lib/swamp/collections/input_buttons.rb
226
+ - lib/swamp/collections/links.rb
227
+ - lib/swamp/collections/select_boxes.rb
228
+ - lib/swamp/elements/button.rb
229
+ - lib/swamp/elements/complex_select_box.rb
230
+ - lib/swamp/elements/element.rb
231
+ - lib/swamp/elements/field.rb
232
+ - lib/swamp/elements/input_button.rb
233
+ - lib/swamp/elements/link.rb
234
+ - lib/swamp/elements/select_box.rb
194
235
  - lib/swamp/evaluator.rb
195
- - lib/swamp/field.rb
196
- - lib/swamp/fields.rb
197
236
  - lib/swamp/formatter.rb
198
- - lib/swamp/input_button.rb
199
- - lib/swamp/input_buttons.rb
200
237
  - lib/swamp/interface.rb
201
- - lib/swamp/link.rb
202
- - lib/swamp/links.rb
203
- - lib/swamp/select_box.rb
204
- - lib/swamp/select_boxes.rb
238
+ - lib/swamp/scopes/page.rb
239
+ - lib/swamp/scopes/prism.rb
240
+ - lib/swamp/scopes/scope.rb
241
+ - lib/swamp/scopes/source.rb
205
242
  - lib/swamp/setup.rb
206
243
  - lib/swamp/version.rb
207
244
  - lib/swamp/wrapper.rb
208
245
  - spec/spec_helper.rb
209
- - spec/swamp/builder_spec.rb
246
+ - spec/swamp/builders/basic_spec.rb
247
+ - spec/swamp/builders/prism_spec.rb
210
248
  - spec/swamp/buttons_spec.rb
211
249
  - spec/swamp/evaluator_spec.rb
212
250
  - spec/swamp/fields_spec.rb
@@ -219,7 +257,7 @@ files:
219
257
  - spec/swamp/wrapper_spec.rb
220
258
  - swamp.gemspec
221
259
  - tags
222
- homepage: ''
260
+ homepage: https://github.com/Juraci/swamp
223
261
  licenses:
224
262
  - MIT
225
263
  metadata: {}
@@ -244,6 +282,7 @@ signing_key:
244
282
  specification_version: 4
245
283
  summary: Swamp, where capybaras belong
246
284
  test_files:
285
+ - features/specifications/changing_scope_to_source.feature
247
286
  - features/specifications/scope_changing.feature
248
287
  - features/specifications/user_scans_a_page_interactively.feature
249
288
  - features/specifications/user_scans_buttons_in_a_page.feature
@@ -252,6 +291,7 @@ test_files:
252
291
  - features/specifications/user_scans_links_in_a_page.feature
253
292
  - features/specifications/user_scans_select_box_elements_in_a_page.feature
254
293
  - features/specifications/user_starts_swamp.feature
294
+ - features/specifications/using_prism_scope.feature
255
295
  - features/step_definitions/swamp_steps.rb
256
296
  - features/support/env.rb
257
297
  - features/support/page_examples/button.html
@@ -275,7 +315,8 @@ test_files:
275
315
  - features/support/page_examples/select_without_id_and_name.html
276
316
  - features/support/setup.rb
277
317
  - spec/spec_helper.rb
278
- - spec/swamp/builder_spec.rb
318
+ - spec/swamp/builders/basic_spec.rb
319
+ - spec/swamp/builders/prism_spec.rb
279
320
  - spec/swamp/buttons_spec.rb
280
321
  - spec/swamp/evaluator_spec.rb
281
322
  - spec/swamp/fields_spec.rb
data/lib/swamp/builder.rb DELETED
@@ -1,39 +0,0 @@
1
- module Swamp
2
- class Builder
3
-
4
- attr_reader :element
5
-
6
- def initialize(element, setup)
7
- @element = element
8
- @setup = setup
9
- end
10
-
11
- def build_snippet
12
- if element.name
13
- [method_definition, element.method_signature, line_break, identation, scope, element.accessor, line_break, method_end].join
14
- else
15
- [scope, element.accessor].join
16
- end
17
- end
18
-
19
- def method_definition
20
- "def "
21
- end
22
-
23
- def method_end
24
- "end"
25
- end
26
-
27
- def scope
28
- [@setup.scope, "."].join
29
- end
30
-
31
- def identation
32
- " "
33
- end
34
-
35
- def line_break
36
- "\n"
37
- end
38
- end
39
- end
data/lib/swamp/buttons.rb DELETED
@@ -1,22 +0,0 @@
1
- module Swamp
2
- class Buttons < Elements
3
- def get
4
- elements = []
5
- page.all("button").map do |element|
6
- if element.visible?
7
- if has_valid_text?(element)
8
- shine %\//button[text()='#{element.text}']\, :xpath
9
- elements << Swamp::Button.new(element.text, element.text)
10
- elsif has_id?(element) and has_valid_id?(element)
11
- shine %/##{element["id"]}/
12
- elements << Swamp::Button.new(element["id"], element["id"])
13
- elsif has_value?(element) and has_valid_value?(element)
14
- shine %/button[value='#{element["value"]}']/
15
- elements << Swamp::Button.new(element["value"], element["value"])
16
- end
17
- end
18
- end
19
- elements
20
- end
21
- end
22
- end