swamp 1.0.1 → 1.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 15fa292671e998ec2b364b1893e815773df39785
4
- data.tar.gz: 85175279ded0c63c318c152877a99e03003b9e4e
3
+ metadata.gz: 96cb6453a9c92ac8aa2bf96f8f76acd975d49c20
4
+ data.tar.gz: fb312b21770bfe568ed1d856295bd0510a9a301f
5
5
  SHA512:
6
- metadata.gz: 53afdc9793bbf5148ee8d9da1774e59c202747d1bb8a3dc9079a12d5393d88ebcf3a6af54f1661c2f9275c1f055391ec5058e3180bf263a32c63c9e5d4aed4fa
7
- data.tar.gz: 7e18435b353cbb5b647ea1f0c19653eca2e432ea94cc3819f7c22010ffb7db0ba7983fa47aa461db4289c42383ba61fafcc08623fec20610ad697b8cca48cda4
6
+ metadata.gz: 124b7ddfc62b2b40d89b3f32084a4ea8bf74c8847cd6d553eaad4436218ca7c5c98baab4087fe0b51856ac3d1b7a08de2af73728d993c091e7301f86758188ff
7
+ data.tar.gz: b23f650148dc0ea3778641aeb9393a221670979995675af3f854212b5e95e6336069b5d9cdf4fc166eb3f09b74ae3bcbfd03b9ba2e3fd4e16e9d75234214b6ac
data/README.md CHANGED
@@ -108,3 +108,29 @@ When /^I attempt to sign in with valid credentials/ do
108
108
  end
109
109
  ```
110
110
 
111
+ ### Dynamically detecting elements
112
+
113
+ * You can navigate in the browser that swamp opens
114
+ * Lets say you need to log in to have access to some page
115
+ * Just enter the url for this page
116
+ * Do the login procedure in the oppened browser manually
117
+ * Wait for the new page to load
118
+ * Then just go to the terminal and hit ENTER
119
+ * Swamp will detect the new elements (if any) and will generate the code snippets the same way as before
120
+
121
+ ## How it works?
122
+
123
+ It uses capybara to fireup the browser and visit the target URL then it looks for patterns like:
124
+
125
+ * Buttons
126
+ * Fields
127
+ * Select boxes
128
+ * Input buttons
129
+ * Links
130
+
131
+ For each pattern found it verifies if the element is visible, has some key attributes like `id`, `name`, `text` and etc.
132
+ There is some logic to decide on how to best create the method's name and the capybara's selector.
133
+ Finally the code snippets are formatted and printed in the output.
134
+
135
+ Check the `.feature` files to learn about the overall behavior.
136
+ Check the `_spec.rb` files to learn about the internal behavior. Feel free to contribute.
@@ -10,7 +10,8 @@ Feature: user scans buttons in a page
10
10
  Scenario: A button that has text
11
11
  Given I enter the url for this page: "button.html"
12
12
  When swamp scans that page
13
- Then swamp should output the following code snippet
13
+ Then swamp should highlight this element: "button"
14
+ And it should output the following code snippet
14
15
  """
15
16
  def sign_up
16
17
  source.click_button("Sign Up")
@@ -20,7 +21,8 @@ Feature: user scans buttons in a page
20
21
  Scenario: A button that doesn't has text but has id
21
22
  Given I enter the url for this page: "button_without_text.html"
22
23
  When swamp scans that page
23
- Then swamp should output the following code snippet
24
+ Then swamp should highlight this element: "#search-button"
25
+ And it should output the following code snippet
24
26
  """
25
27
  def search_button
26
28
  source.click_button("search-button")
@@ -30,7 +32,8 @@ Feature: user scans buttons in a page
30
32
  Scenario: A button that doesn't has either text or id but has the value attribute
31
33
  Given I enter the url for this page: "button_without_text_without_id_with_value.html"
32
34
  When swamp scans that page
33
- Then swamp should output the following code snippet
35
+ Then swamp should highlight this element: "button[value='buy-now']"
36
+ And it should output the following code snippet
34
37
  """
35
38
  def buy_now
36
39
  source.click_button("buy-now")
@@ -10,7 +10,8 @@ Feature: user scans fields in a page
10
10
  Scenario: An input that has id, name and whose the type is text
11
11
  Given I enter the url for this page: "field.html"
12
12
  When swamp scans that page
13
- Then swamp should output the following code snippet
13
+ Then swamp should highlight this element: "#id_username"
14
+ And it should output the following code snippet
14
15
  """
15
16
  def type_username(input)
16
17
  source.fill_in("id_username", with: input)
@@ -20,7 +21,8 @@ Feature: user scans fields in a page
20
21
  Scenario: An input that has no name, has id and whose the type is text
21
22
  Given I enter the url for this page: "field_without_name.html"
22
23
  When swamp scans that page
23
- Then swamp should output the following code snippet
24
+ Then swamp should highlight this element: "#username"
25
+ Then it should output the following code snippet
24
26
  """
25
27
  def type_username(input)
26
28
  source.fill_in("username", with: input)
@@ -30,7 +32,8 @@ Feature: user scans fields in a page
30
32
  Scenario: An input without the id attribute that has name and the type is text
31
33
  Given I enter the url for this page: "field_without_id.html"
32
34
  When swamp scans that page
33
- Then swamp should output the following code snippet
35
+ Then swamp should highlight this element: "input[name='username']"
36
+ Then it should output the following code snippet
34
37
  """
35
38
  def type_username(input)
36
39
  source.fill_in("username", with: input)
@@ -10,7 +10,8 @@ Feature: user scans submits in a page
10
10
  Scenario: A submit that has value and id
11
11
  Given I enter the url for this page: "input_submit.html"
12
12
  When swamp scans that page
13
- Then swamp should output the following code snippet
13
+ Then swamp should highlight this element: "#u_0_b"
14
+ And it should output the following code snippet
14
15
  """
15
16
  def log_in
16
17
  source.find(:css, "#u_0_b").click
@@ -20,7 +21,8 @@ Feature: user scans submits in a page
20
21
  Scenario: A submit that has no id
21
22
  Given I enter the url for this page: "input_submit_without_id.html"
22
23
  When swamp scans that page
23
- Then swamp should output the following code snippet
24
+ Then swamp should highlight this element: "input.button.g-button.g-button-submit[value='Continue']"
25
+ And it should output the following code snippet
24
26
  """
25
27
  def continue
26
28
  source.find(:css, "input.button.g-button.g-button-submit[value='Continue']").click
@@ -10,7 +10,8 @@ Feature: user scans links in a page
10
10
  Scenario: A link that has id
11
11
  Given I enter the url for this page: "link_with_id.html"
12
12
  When swamp scans that page
13
- Then swamp should output the following code snippet
13
+ Then swamp should highlight this link: "#link-forgot-passwd"
14
+ And it should output the following code snippet
14
15
  """
15
16
  def link_forgot_passwd
16
17
  source.click_link("link-forgot-passwd")
@@ -10,7 +10,8 @@ Feature: user scans select box elements in a page
10
10
  Scenario: A select box that has id
11
11
  Given I enter the url for this page: "select_box_with_id.html"
12
12
  When swamp scans that page
13
- Then swamp should output the following code snippet
13
+ Then swamp should highlight this element: "#month"
14
+ And it should output the following code snippet
14
15
  """
15
16
  def select_month(option)
16
17
  source.select(option, :from => "month")
@@ -20,7 +21,8 @@ Feature: user scans select box elements in a page
20
21
  Scenario: A select box that has name only
21
22
  Given I enter the url for this page: "select_box_with_name_only.html"
22
23
  When swamp scans that page
23
- Then swamp should output the following code snippet
24
+ Then swamp should highlight this element: "select[name='Region']"
25
+ And it should output the following code snippet
24
26
  """
25
27
  def select_region(option)
26
28
  source.select(option, :from => "Region")
@@ -18,7 +18,7 @@ When /^swamp scans that page$/ do
18
18
  swamp.scan(@url)
19
19
  end
20
20
 
21
- Then /^swamp should output the following code snippets?$/ do |string|
21
+ Then /^(?:swamp|it) should output the following code snippets?$/ do |string|
22
22
  output.messages.should include(string)
23
23
  end
24
24
 
@@ -47,3 +47,14 @@ Then /^swamp should scan the current page$/ do
47
47
  output.messages[3].should == "Scanning, please wait..."
48
48
  output.messages[4].should == "def sign_up\n source.click_button(\"Sign Up\")\nend"
49
49
  end
50
+
51
+ Then /^swamp should highlight this (element|link): "(.+)"$/ do |mode, selector|
52
+ page = Capybara.current_session
53
+ page.should have_css "#{selector}[style]"
54
+ if mode == "element"
55
+ page.find(selector)[:style].should include("border-width: 3px")
56
+ page.find(selector)[:style].should include("border-color: rgb(255, 0, 0)")
57
+ else
58
+ page.find(selector)[:style].should include("background-color: rgb(255, 0, 0)")
59
+ end
60
+ end
data/lib/swamp/buttons.rb CHANGED
@@ -5,10 +5,13 @@ module Swamp
5
5
  page.all("button").map do |element|
6
6
  if element.visible?
7
7
  if has_valid_text?(element)
8
+ shine %-//button[text()='#{element.text}']-, :xpath
8
9
  elements << Swamp::Button.new(element.text, element.text)
9
10
  elsif has_id?(element) and has_valid_id?(element)
11
+ shine %-##{element["id"]}-
10
12
  elements << Swamp::Button.new(element["id"], element["id"])
11
13
  elsif has_value?(element) and has_valid_value?(element)
14
+ shine %-button[value='#{element["value"]}']-
12
15
  elements << Swamp::Button.new(element["value"], element["value"])
13
16
  end
14
17
  end
@@ -1,5 +1,10 @@
1
1
  module Swamp
2
2
  class Elements < Base
3
+
4
+ BORDER_SIZE = "3px"
5
+ BORDER_COLOR = "#ff0000"
6
+ BACKGROUND_COLOR = "#ff0000"
7
+
3
8
  def has_id?(element)
4
9
  element['id'] != nil and element['id'] != "" ? true : false
5
10
  end
@@ -35,5 +40,40 @@ module Swamp
35
40
  def formatter
36
41
  @formatter ||= Swamp::Formatter.new
37
42
  end
43
+
44
+ def shine(selector, mode = :css)
45
+ set_border_size(selector, BORDER_SIZE, mode)
46
+ set_border_color(selector, BORDER_COLOR, mode)
47
+ end
48
+
49
+ def shine_link(selector)
50
+ set_background_color selector, BACKGROUND_COLOR
51
+ end
52
+
53
+ private
54
+
55
+ def set_border_size(selector, size, mode)
56
+ if mode == :css
57
+ page.execute_script %-document.querySelector("#{selector}").style.borderWidth='#{size}'-
58
+ elsif mode == :xpath
59
+ page.execute_script %-document.evaluate("#{selector}", document, null, 9, null).singleNodeValue.style.borderWidth='#{size}';- rescue false
60
+ else
61
+ raise "Mode #{mode} not found"
62
+ end
63
+ end
64
+
65
+ def set_border_color(selector, color, mode = :css)
66
+ if mode == :css
67
+ page.execute_script %-document.querySelector("#{selector}").style.borderColor='#{color}'-
68
+ elsif mode == :xpath
69
+ page.execute_script %-document.evaluate("#{selector}", document, null, 9, null).singleNodeValue.style.borderColor='#{color}';- rescue false
70
+ else
71
+ raise "Mode #{mode} not found"
72
+ end
73
+ end
74
+
75
+ def set_background_color(selector, color)
76
+ page.execute_script %-document.querySelector("#{selector}").style.backgroundColor='#{color}'-
77
+ end
38
78
  end
39
79
  end
data/lib/swamp/fields.rb CHANGED
@@ -5,10 +5,13 @@ module Swamp
5
5
  page.all('input').map do |element|
6
6
  if element.visible? and valid_type?(element)
7
7
  if has_id?(element) and has_name?(element)
8
+ shine %-##{element['id']}-
8
9
  elements << Swamp::Field.new(element['name'], element['id'])
9
10
  elsif has_id?(element)
11
+ shine %-##{element['id']}-
10
12
  elements << Swamp::Field.new(element['id'], element['id'])
11
13
  elsif has_name?(element)
14
+ shine %-input[name=#{element['name']}]-
12
15
  elements << Swamp::Field.new(element['name'], element['name'])
13
16
  end
14
17
  end
@@ -6,8 +6,10 @@ module Swamp
6
6
  if element.visible?
7
7
  if has_value?(element)
8
8
  if has_id?(element)
9
+ shine %-##{element["id"]}-
9
10
  elements << Swamp::InputButton.new(element["value"], "##{element["id"]}")
10
11
  elsif has_class?(element)
12
+ shine %-input.#{formatter.format_class(element["class"])}[value='#{element["value"]}']-
11
13
  elements << Swamp::InputButton.new(element["value"], "input.#{formatter.format_class(element["class"])}[value='#{element["value"]}']")
12
14
  end
13
15
  end
data/lib/swamp/links.rb CHANGED
@@ -2,11 +2,10 @@ module Swamp
2
2
  class Links < Elements
3
3
  def get
4
4
  elements = []
5
- page.all('a[href]').map do | element |
5
+ page.all('a[href][id]').map do | element |
6
6
  if element.visible?
7
- if has_id?(element)
8
- elements << Swamp::Link.new(element["id"], element["id"])
9
- end
7
+ shine_link %-##{element["id"]}-
8
+ elements << Swamp::Link.new(element["id"], element["id"])
10
9
  end
11
10
  end
12
11
  elements
@@ -5,8 +5,10 @@ module Swamp
5
5
  page.all('select').map do | element |
6
6
  if element.visible?
7
7
  if has_id?(element)
8
+ shine %-##{element["id"]}-
8
9
  elements << Swamp::SelectBox.new(element["id"], element["id"])
9
10
  elsif has_name?(element)
11
+ shine %-select[name='#{element["name"]}']-
10
12
  elements << Swamp::SelectBox.new(element["name"], element["name"])
11
13
  end
12
14
  end
data/lib/swamp/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Swamp
2
- VERSION = '1.0.1'
2
+ VERSION = '1.1.0'
3
3
  end
@@ -7,6 +7,7 @@ module Swamp
7
7
  element = {'id' => "u_0_2"}
8
8
  element.stub(:text).and_return("Sign Up")
9
9
  element.stub(:visible?).and_return(true)
10
+ buttons.page.stub(:execute_script).and_return(nil)
10
11
  buttons.page.should_receive(:all).with('button').and_return([element])
11
12
  buttons.get
12
13
  end
@@ -21,7 +22,13 @@ module Swamp
21
22
  buttons.page.stub(:all).with('button').and_return([element])
22
23
  end
23
24
 
25
+ it "highlights the element" do
26
+ buttons.page.should_receive(:execute_script).twice
27
+ buttons.get
28
+ end
29
+
24
30
  it "returns the element in the array using the text as both the name and the selector" do
31
+ buttons.page.stub(:execute_script).and_return(nil)
25
32
  buttons.get.should have(1).button
26
33
  buttons.get.each.first.name.should == "Sign Up"
27
34
  buttons.get.each.first.selector.should == "Sign Up"
@@ -38,7 +45,13 @@ module Swamp
38
45
  buttons.page.stub(:all).with('button').and_return([element])
39
46
  end
40
47
 
48
+ it "highlights the element" do
49
+ buttons.page.should_receive(:execute_script).twice
50
+ buttons.get
51
+ end
52
+
41
53
  it "returns the element in the array using the id as both the name and the selector" do
54
+ buttons.page.stub(:execute_script).and_return(nil)
42
55
  buttons.get.should have(1).button
43
56
  buttons.get.each.first.name.should == "search-button"
44
57
  buttons.get.each.first.selector.should == "search-button"
@@ -55,7 +68,13 @@ module Swamp
55
68
  buttons.page.stub(:all).with('button').and_return([element])
56
69
  end
57
70
 
71
+ it "highlights the element" do
72
+ buttons.page.should_receive(:execute_script).twice
73
+ buttons.get
74
+ end
75
+
58
76
  it "returns the element in the array using the value as both the name and the selector" do
77
+ buttons.page.stub(:execute_script).and_return(nil)
59
78
  buttons.get.should have(1).button
60
79
  buttons.get.each.first.name.should == "search-button"
61
80
  buttons.get.each.first.selector.should == "search-button"
@@ -6,6 +6,7 @@ module Swamp
6
6
  it "delegates to capybara the responsibility to get the fields" do
7
7
  element = {'name' => "username", 'type' => "text"}
8
8
  element.stub(:visible?).and_return(true)
9
+ fields.page.stub(:execute_script).and_return(nil)
9
10
  fields.page.should_receive(:all).with('input').and_return([element])
10
11
  fields.get
11
12
  end
@@ -22,12 +23,19 @@ module Swamp
22
23
  fields.page.stub(:all).with('input').and_return([element])
23
24
  end
24
25
 
26
+ it "highlights the element" do
27
+ fields.page.should_receive(:execute_script).twice
28
+ fields.get
29
+ end
30
+
25
31
  it "returns the element in the array using the name as the method's name" do
32
+ fields.page.stub(:execute_script).and_return(nil)
26
33
  fields.get.should have(1).field
27
34
  fields.get.first.name.should == "username"
28
35
  end
29
36
 
30
37
  it "returns the element in the array using the id as the selector" do
38
+ fields.page.stub(:execute_script).and_return(nil)
31
39
  fields.get.should have(1).field
32
40
  fields.get.first.selector.should == "u_0_b"
33
41
  end
@@ -41,12 +49,19 @@ module Swamp
41
49
  fields.page.stub(:all).with('input').and_return([element])
42
50
  end
43
51
 
52
+ it "highlights the element" do
53
+ fields.page.should_receive(:execute_script).twice
54
+ fields.get
55
+ end
56
+
44
57
  it "returns the element in the array using the id as the method's name" do
58
+ fields.page.stub(:execute_script).and_return(nil)
45
59
  fields.get.should have(1).field
46
60
  fields.get.first.name.should == "username"
47
61
  end
48
62
 
49
63
  it "returns the element in the array using the id as the selector" do
64
+ fields.page.stub(:execute_script).and_return(nil)
50
65
  fields.get.should have(1).field
51
66
  fields.get.first.selector.should == "username"
52
67
  end
@@ -60,12 +75,19 @@ module Swamp
60
75
  fields.page.stub(:all).with('input').and_return([element])
61
76
  end
62
77
 
78
+ it "highlights the element" do
79
+ fields.page.should_receive(:execute_script).twice
80
+ fields.get
81
+ end
82
+
63
83
  it "returns the element in the array using the name as the method's name" do
84
+ fields.page.stub(:execute_script).and_return(nil)
64
85
  fields.get.should have(1).field
65
86
  fields.get.first.name.should == "username"
66
87
  end
67
88
 
68
89
  it "returns the element in the array using the name as the selector" do
90
+ fields.page.stub(:execute_script).and_return(nil)
69
91
  fields.get.should have(1).field
70
92
  fields.get.first.selector.should == "username"
71
93
  end
@@ -6,6 +6,7 @@ module Swamp
6
6
  it "delegates to capybara the responsibility to get the submit elements" do
7
7
  element = {'value' => "Log In", 'id' => "u_0_b"}
8
8
  element.stub(:visible?).and_return(true)
9
+ input_buttons.page.stub(:execute_script).and_return(nil)
9
10
  input_buttons.page.should_receive(:all).with('input[type="submit"]').and_return([element])
10
11
  input_buttons.get
11
12
  end
@@ -19,12 +20,19 @@ module Swamp
19
20
  input_buttons.page.stub(:all).with('input[type="submit"]').and_return([element])
20
21
  end
21
22
 
23
+ it "highlights the element" do
24
+ input_buttons.page.should_receive(:execute_script).twice
25
+ input_buttons.get
26
+ end
27
+
22
28
  it "returns the element in the array using the value as the name" do
29
+ input_buttons.page.stub(:execute_script).and_return(nil)
23
30
  input_buttons.get.should have(1).input_submit
24
31
  input_buttons.get.first.name.should == "Log In"
25
32
  end
26
33
 
27
34
  it "returns the element in the array using the id as the selector" do
35
+ input_buttons.page.stub(:execute_script).and_return(nil)
28
36
  input_buttons.get.should have(1).input_submit
29
37
  input_buttons.get.first.selector.should == "#u_0_b"
30
38
  end
@@ -38,12 +46,19 @@ module Swamp
38
46
  input_buttons.page.stub(:all).with('input[type="submit"]').and_return([element])
39
47
  end
40
48
 
49
+ it "highlights the element" do
50
+ input_buttons.page.should_receive(:execute_script).twice
51
+ input_buttons.get
52
+ end
53
+
41
54
  it "returns the element in the array using the value as the name" do
55
+ input_buttons.page.stub(:execute_script).and_return(nil)
42
56
  input_buttons.get.should have(1).input_submit
43
57
  input_buttons.get.first.name.should == "Log In"
44
58
  end
45
59
 
46
60
  it "returns the element in the array using the class concatenated with the value as the selector" do
61
+ input_buttons.page.stub(:execute_script).and_return(nil)
47
62
  input_buttons.get.should have(1).input_submit
48
63
  input_buttons.get.first.selector.should == "input.btn.without.id[value='Log In']"
49
64
  end
@@ -6,7 +6,8 @@ module Swamp
6
6
  it "delegates to capybara the responsibility to get the links" do
7
7
  element = {'id' => "forgot-password", 'href' => "https://somewhere.com"}
8
8
  element.stub(:visible?).and_return(true)
9
- links.page.should_receive(:all).with('a[href]').and_return([element])
9
+ links.page.stub(:execute_script).and_return(nil)
10
+ links.page.should_receive(:all).with('a[href][id]').and_return([element])
10
11
  links.get
11
12
  end
12
13
 
@@ -16,15 +17,22 @@ module Swamp
16
17
 
17
18
  before(:each) do
18
19
  element.stub(:visible?).and_return(true)
19
- links.page.stub(:all).with('a[href]').and_return([element])
20
+ links.page.stub(:all).with('a[href][id]').and_return([element])
21
+ end
22
+
23
+ it "highlights the element" do
24
+ links.page.should_receive(:execute_script).and_return(nil)
25
+ links.get
20
26
  end
21
27
 
22
28
  it "returns the element in the array using the id as the name" do
29
+ links.page.stub(:execute_script).and_return(nil)
23
30
  links.get.should have(1).link
24
31
  links.get.first.name.should == "forgot-password"
25
32
  end
26
33
 
27
34
  it "returns the element in the array using the id as the selector" do
35
+ links.page.stub(:execute_script).and_return(nil)
28
36
  links.get.should have(1).select_box
29
37
  links.get.first.selector.should == "forgot-password"
30
38
  end
@@ -6,6 +6,7 @@ module Swamp
6
6
  it "delegates to capybara the responsibility to get the select box elements" do
7
7
  element = {'id' => "month", 'name' => "birthday_month"}
8
8
  element.stub(:visible?).and_return(true)
9
+ select_boxes.page.stub(:execute_script).and_return(nil)
9
10
  select_boxes.page.should_receive(:all).with('select').and_return([element])
10
11
  select_boxes.get
11
12
  end
@@ -19,12 +20,19 @@ module Swamp
19
20
  select_boxes.page.stub(:all).with('select').and_return([element])
20
21
  end
21
22
 
23
+ it "highlights the element" do
24
+ select_boxes.page.should_receive(:execute_script).twice
25
+ select_boxes.get
26
+ end
27
+
22
28
  it "returns the element in the array using the id as the name" do
29
+ select_boxes.page.stub(:execute_script).and_return(nil)
23
30
  select_boxes.get.should have(1).select_box
24
31
  select_boxes.get.first.name.should == "month"
25
32
  end
26
33
 
27
34
  it "returns the element in the array using the id as the selector" do
35
+ select_boxes.page.stub(:execute_script).and_return(nil)
28
36
  select_boxes.get.should have(1).select_box
29
37
  select_boxes.get.first.selector.should == "month"
30
38
  end
@@ -38,12 +46,19 @@ module Swamp
38
46
  select_boxes.page.stub(:all).with('select').and_return([element])
39
47
  end
40
48
 
49
+ it "highlights the element" do
50
+ select_boxes.page.should_receive(:execute_script).twice
51
+ select_boxes.get
52
+ end
53
+
41
54
  it "returns the element in the array using the name as the name" do
55
+ select_boxes.page.stub(:execute_script).and_return(nil)
42
56
  select_boxes.get.should have(1).select_box
43
57
  select_boxes.get.first.name.should == "birthday_month"
44
58
  end
45
59
 
46
60
  it "returns the element in the array using the name as the selector" do
61
+ select_boxes.page.stub(:execute_script).and_return(nil)
47
62
  select_boxes.get.should have(1).select_box
48
63
  select_boxes.get.first.selector.should == "birthday_month"
49
64
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: swamp
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.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: 2013-10-29 00:00:00.000000000 Z
11
+ date: 2013-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capybara