swamp 1.2.0 → 1.3.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 (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
@@ -1,22 +0,0 @@
1
- module Swamp
2
- class SelectBoxes < Elements
3
- def get
4
- elements = []
5
- page.all('select').map do | element |
6
- if element.visible?
7
- if has_id?(element)
8
- shine %/##{element["id"]}/
9
- elements << Swamp::SelectBox.new(element["id"], element["id"])
10
- elsif has_name?(element)
11
- shine %/select[name='#{element["name"]}']/
12
- elements << Swamp::SelectBox.new(element["name"], element["name"])
13
- else
14
- shine %/select.#{element["class"]}/
15
- elements << Swamp::ComplexSelectBox.new(element["class"], element["class"])
16
- end
17
- end
18
- end
19
- elements
20
- end
21
- end
22
- end
@@ -1,46 +0,0 @@
1
- require 'spec_helper'
2
- module Swamp
3
- describe Builder do
4
- let(:setup) { setup = Swamp::Setup.new }
5
-
6
- describe "#build_method" do
7
- context "when the type is field" do
8
- context "when the name and the selector are present" do
9
- it "returns the method's snippet" do
10
- element = Swamp::Field.new("User-Name", "User-Name")
11
- builder = Swamp::Builder.new(element, setup)
12
- expect(builder.build_snippet).to eq("def type_user_name(input)\n page.fill_in(\"User-Name\", with: input)\nend")
13
- end
14
- end
15
- end
16
-
17
- context "when the type is button" do
18
- context "when the name and the selector are present" do
19
- it "returns the method's snippet" do
20
- element = Swamp::Button.new("Log_in", "Log_in")
21
- builder = Swamp::Builder.new(element, setup)
22
- expect(builder.build_snippet).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
- builder = Swamp::Builder.new(element, setup)
30
- expect(builder.build_snippet).to eq("page.click_button(\"$ 9.90 Buy\")")
31
- end
32
- end
33
-
34
- context "when the scope has changed" do
35
- it "returns the method's snippet with the changed scope" do
36
- element = Swamp::Button.new("Log_in", "Log_in")
37
- allow(setup).to receive(:scope).and_return("source")
38
- builder = Swamp::Builder.new(element, setup)
39
- expect(builder.build_snippet).to eq("def log_in\n source.click_button(\"Log_in\")\nend")
40
- end
41
- end
42
-
43
- end
44
- end
45
- end
46
- end
File without changes