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