symbiont 0.0.1 → 0.0.2
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.
- data/HISTORY.md +6 -0
- data/README.md +2 -0
- data/lib/symbiont/generators.rb +75 -0
- data/lib/symbiont/platform_selenium/platform_object.rb +51 -1
- data/lib/symbiont/platform_watir/platform_object.rb +50 -1
- data/lib/symbiont/version.rb +3 -3
- data/lib/symbiont/web_objects/_common.rb +9 -0
- data/lib/symbiont/web_objects/button.rb +9 -0
- data/lib/symbiont/web_objects/link.rb +9 -0
- data/lib/symbiont/web_objects/text_field.rb +9 -0
- data/spec/spec_helper.rb +5 -0
- data/spec/symbiont/generators/button_generators_spec.rb +50 -0
- data/spec/symbiont/generators/link_generators_spec.rb +48 -0
- data/spec/symbiont/generators/text_field_generators_spec.rb +63 -0
- data/spec/symbiont/generators_spec.rb +11 -0
- data/test/symbiont_selenium.rb +20 -0
- data/test/symbiont_watir.rb +21 -1
- metadata +17 -10
data/HISTORY.md
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
Change Log and History
|
2
2
|
======================
|
3
3
|
|
4
|
+
Version 0.0.2 / 2012-03-15
|
5
|
+
--------------------------
|
6
|
+
|
7
|
+
This implementation of Symbiont is designed to show the basics of how platform objects, web objects, and a generator mechanism work together to create a test script style that normalizes execution with Selenium and Watir and provides a convention-based approach to interaction with browser objects.
|
8
|
+
|
9
|
+
|
4
10
|
Version 0.0.1 / 2012-03-02
|
5
11
|
--------------------------
|
6
12
|
|
data/README.md
CHANGED
@@ -6,6 +6,8 @@ Description
|
|
6
6
|
|
7
7
|
The Symbiont gem is designed to provide an open framework for running automated tests against a browser using popular web testing interfaces.
|
8
8
|
|
9
|
+
Right now the best information on the purpose of this project and how it works can be found on [my Symbiont-tagged blog posts](http://testerstories.com/?cat=16).
|
10
|
+
|
9
11
|
|
10
12
|
Meaning
|
11
13
|
-------
|
data/lib/symbiont/generators.rb
CHANGED
@@ -15,5 +15,80 @@ module Symbiont
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
+
# This method allows for a begin_at() method in definitions. The
|
19
|
+
# URL provided can be navigated to using the generated start()
|
20
|
+
# method on a definition instance.
|
21
|
+
#
|
22
|
+
# @see Symbiont::Generators#url_is
|
23
|
+
# @param [String] url the resource identifier to access
|
24
|
+
# @return [Nil]
|
25
|
+
def begin_at(url)
|
26
|
+
define_method("start") do
|
27
|
+
@platform.visit(url)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
# Definition method for links. Methods for the following actions will
|
32
|
+
# be created:
|
33
|
+
# * reference a link (identifier_object, identifier_link)
|
34
|
+
# * click a link (identifier)
|
35
|
+
# @param [Symbol] identifier the friendly name of the web object
|
36
|
+
# @param [optional, Hash] locator the key/values that identify the object
|
37
|
+
# @return [Object] instance of Symbiont::WebObjects::Link
|
38
|
+
def link(identifier, locator)
|
39
|
+
define_method("#{identifier}_object") do
|
40
|
+
@platform.get_link_for(locator.clone)
|
41
|
+
end
|
42
|
+
|
43
|
+
alias_method "#{identifier}_link".to_sym, "#{identifier}_object".to_sym
|
44
|
+
|
45
|
+
define_method(identifier) do
|
46
|
+
@platform.click_link_for(locator.clone)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
# Definition method for buttons. Methods for the following actions will
|
51
|
+
# be created:
|
52
|
+
# * reference a button (identifier_object, identifier_button)
|
53
|
+
# * click a button (identifier)
|
54
|
+
# @param [Symbol] identifier the friendly name of the web object
|
55
|
+
# @param [optional, Hash] locator the key/values that identify the object
|
56
|
+
# @return [Object] instance of Symbiont::WebObjects::Button
|
57
|
+
def button(identifier, locator)
|
58
|
+
define_method("#{identifier}_object") do
|
59
|
+
@platform.get_button_for(locator.clone)
|
60
|
+
end
|
61
|
+
|
62
|
+
alias_method "#{identifier}_button".to_sym, "#{identifier}_object".to_sym
|
63
|
+
|
64
|
+
define_method(identifier) do
|
65
|
+
@platform.click_button_for(locator.clone)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
# Definition method for text fields. Methods for the following actions
|
70
|
+
# will be created:
|
71
|
+
# * reference a text field (identifier_object, identifier_button)
|
72
|
+
# * get text from a text field (identifier)
|
73
|
+
# * set text in a text field (identifier=)
|
74
|
+
# @param [Symbol] identifier the friendly name of the web object
|
75
|
+
# @param [optional, Hash] locator the key/values that identify the object
|
76
|
+
# @return [Object] instance of Symbiont::WebObjects::TextField
|
77
|
+
def text_field(identifier, locator)
|
78
|
+
define_method("#{identifier}_object") do
|
79
|
+
@platform.get_text_field_for(locator.clone)
|
80
|
+
end
|
81
|
+
|
82
|
+
alias_method "#{identifier}_text_field".to_sym, "#{identifier}_object".to_sym
|
83
|
+
|
84
|
+
define_method(identifier) do
|
85
|
+
@platform.get_text_field_value_for(locator.clone)
|
86
|
+
end
|
87
|
+
|
88
|
+
define_method("#{identifier}=") do |value|
|
89
|
+
@platform.set_text_field_value_for(locator.clone, value)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
18
93
|
end # module: Generators
|
19
94
|
end # module: Symbiont
|
@@ -14,8 +14,58 @@ module Symbiont
|
|
14
14
|
@browser.navigate.to(url)
|
15
15
|
end
|
16
16
|
|
17
|
+
# Platform method to return a link object.
|
18
|
+
# Link objects are of type: Symbiont::WebObjects::Link
|
19
|
+
# @see Symbiont::Generators#link
|
20
|
+
def get_link_for(locator)
|
21
|
+
web_object = @browser.find_element(locator.keys.first, locator.values.first)
|
22
|
+
WebObjects::Link.new()
|
23
|
+
end
|
24
|
+
|
25
|
+
# Platform method to click a link object.
|
26
|
+
# @see Symbiont::Generators#link
|
27
|
+
def click_link_for(locator)
|
28
|
+
@browser.find_element(locator.keys.first, locator.values.first).click
|
29
|
+
end
|
30
|
+
|
31
|
+
# Platform method to return a button object.
|
32
|
+
# Button objects are of type: Symbiont::WebObjects::Button
|
33
|
+
# @see Symbiont::Generators#button
|
34
|
+
def get_button_for(locator)
|
35
|
+
web_object = @browser.find_element(locator.keys.first, locator.values.first)
|
36
|
+
WebObjects::Button.new()
|
37
|
+
end
|
38
|
+
|
39
|
+
# Platform method to click a button object.
|
40
|
+
# @see Symbiont::Generators#button
|
41
|
+
def click_button_for(locator)
|
42
|
+
@browser.find_element(locator.keys.first, locator.values.first).click
|
43
|
+
end
|
44
|
+
|
45
|
+
# Platform method to return a text field object.
|
46
|
+
# Text field objects are of type: Symbiont::WebObjects::TextField
|
47
|
+
# @see Symbiont::Generators#text_field
|
48
|
+
def get_text_field_for(locator)
|
49
|
+
web_object = @browser.find_element(locator.keys.first, locator.values.first)
|
50
|
+
WebObjects::TextField.new()
|
51
|
+
end
|
52
|
+
|
53
|
+
# Platform method to retrieve text from a text field object.
|
54
|
+
# @see Symbiont::Generators#text_field
|
55
|
+
def get_text_field_value_for(locator)
|
56
|
+
@browser.find_element(locator.keys.first, locator.values.first).attribute('value')
|
57
|
+
end
|
58
|
+
|
59
|
+
# Platform method to enter text into a text field object.
|
60
|
+
# @see Symbiont::Generators#text_field
|
61
|
+
def set_text_field_value_for(locator, value)
|
62
|
+
@browser.find_element(locator.keys.first, locator.values.first).clear
|
63
|
+
@browser.find_element(locator.keys.first, locator.values.first).send_keys(value)
|
64
|
+
end
|
17
65
|
end # class: PlatformObject
|
18
66
|
|
19
67
|
end # module: SeleniumWebDriver
|
20
68
|
end # module: Platforms
|
21
|
-
end # module: Symbiont
|
69
|
+
end # module: Symbiont
|
70
|
+
|
71
|
+
Dir["#{File.dirname(__FILE__)}/../web_objects/**/*.rb"].sort.each { |file| require file }
|
@@ -14,8 +14,57 @@ module Symbiont
|
|
14
14
|
@browser.goto(url)
|
15
15
|
end
|
16
16
|
|
17
|
+
# Platform method to return a link object.
|
18
|
+
# Link objects are of type: Symbiont::WebObjects::Link
|
19
|
+
# @see Symbiont::Generators#link
|
20
|
+
def get_link_for(locator)
|
21
|
+
web_object = @browser.instance_eval "link(locator)"
|
22
|
+
WebObjects::Link.new()
|
23
|
+
end
|
24
|
+
|
25
|
+
# Platform method to click a link object.
|
26
|
+
# @see Symbiont::Generators#link
|
27
|
+
def click_link_for(locator)
|
28
|
+
@browser.instance_eval "link(locator).click"
|
29
|
+
end
|
30
|
+
|
31
|
+
# Platform method to return a button object.
|
32
|
+
# Button objects are of type: Symbiont::WebObjects::Button
|
33
|
+
# @see Symbiont::Generators#button
|
34
|
+
def get_button_for(locator)
|
35
|
+
web_object = @browser.instance_eval "button(locator)"
|
36
|
+
WebObjects::Button.new()
|
37
|
+
end
|
38
|
+
|
39
|
+
# Platform method to click a button object.
|
40
|
+
# @see Symbiont::Generators#button
|
41
|
+
def click_button_for(locator)
|
42
|
+
@browser.instance_eval "button(locator).click"
|
43
|
+
end
|
44
|
+
|
45
|
+
# Platform method to return a text field object.
|
46
|
+
# Text field objects are of type: Symbiont::WebObjects::TextField
|
47
|
+
# @see Symbiont::Generators#text_field
|
48
|
+
def get_text_field_for(locator)
|
49
|
+
@browser.instance_eval "text_field(locator)"
|
50
|
+
WebObjects::TextField.new()
|
51
|
+
end
|
52
|
+
|
53
|
+
# Platform method to retrieve text from a text field object.
|
54
|
+
# @see Symbiont::Generators#text_field
|
55
|
+
def get_text_field_value_for(locator)
|
56
|
+
@browser.instance_eval "text_field(locator).value"
|
57
|
+
end
|
58
|
+
|
59
|
+
# Platform method to enter text into a text field object.
|
60
|
+
# @see Symbiont::Generators#text_field
|
61
|
+
def set_text_field_value_for(locator, value)
|
62
|
+
@browser.instance_eval "text_field(locator).set(value)"
|
63
|
+
end
|
17
64
|
end # class: PlatformObject
|
18
65
|
|
19
66
|
end # module: WatirWebDriver
|
20
67
|
end # module: Platforms
|
21
|
-
end # module: Symbiont
|
68
|
+
end # module: Symbiont
|
69
|
+
|
70
|
+
Dir["#{File.dirname(__FILE__)}/../web_objects/**/*.rb"].sort.each { |file| require file }
|
data/lib/symbiont/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
module Symbiont
|
2
|
-
VERSION = "0.0.
|
3
|
-
end
|
1
|
+
module Symbiont
|
2
|
+
VERSION = "0.0.2"
|
3
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -15,6 +15,11 @@ class DefinitionTest
|
|
15
15
|
include Symbiont
|
16
16
|
|
17
17
|
url_is "http://localhost:4567"
|
18
|
+
begin_at "http://localhost:4567"
|
19
|
+
|
20
|
+
link :reset_password, id: "resetPassword"
|
21
|
+
button :submit, id: "btnSubmit"
|
22
|
+
text_field :login_name, id: "loginName"
|
18
23
|
end
|
19
24
|
|
20
25
|
def mock_browser_for_watir
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Symbiont::Generators do
|
4
|
+
let(:watir_browser) { mock_browser_for_watir }
|
5
|
+
let(:selenium_browser) { mock_browser_for_selenium }
|
6
|
+
let(:watir_definition) { DefinitionTest.new(watir_browser) }
|
7
|
+
let(:selenium_definition) { DefinitionTest.new(selenium_browser) }
|
8
|
+
|
9
|
+
describe "button web objects" do
|
10
|
+
context "when declared in a definition" do
|
11
|
+
it "should generate methods for referencing the button" do
|
12
|
+
watir_definition.should respond_to(:submit_object)
|
13
|
+
watir_definition.should respond_to(:submit_button)
|
14
|
+
|
15
|
+
selenium_definition.should respond_to(:submit_object)
|
16
|
+
selenium_definition.should respond_to(:submit_button)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context "used by the watir platform" do
|
21
|
+
it "should locate the button" do
|
22
|
+
watir_browser.should_receive(:button).and_return(watir_browser)
|
23
|
+
web_object = watir_definition.submit_object
|
24
|
+
web_object.should_not be_nil
|
25
|
+
web_object.should be_instance_of Symbiont::WebObjects::Button
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should click the button" do
|
29
|
+
watir_browser.should_receive(:button).and_return(watir_browser)
|
30
|
+
watir_browser.should_receive(:click)
|
31
|
+
watir_definition.submit
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
context "used by the selenium platform" do
|
36
|
+
it "should locate the button" do
|
37
|
+
selenium_browser.should_receive(:find_element).and_return(selenium_browser)
|
38
|
+
web_object = selenium_definition.submit_object
|
39
|
+
web_object.should_not be_nil
|
40
|
+
web_object.should be_instance_of Symbiont::WebObjects::Button
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should click the button" do
|
44
|
+
selenium_browser.should_receive(:find_element).and_return(selenium_browser)
|
45
|
+
selenium_browser.should_receive(:click)
|
46
|
+
selenium_definition.submit
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Symbiont::Generators do
|
4
|
+
let(:watir_browser) { mock_browser_for_watir }
|
5
|
+
let(:selenium_browser) { mock_browser_for_selenium }
|
6
|
+
let(:watir_definition) { DefinitionTest.new(watir_browser) }
|
7
|
+
let(:selenium_definition) { DefinitionTest.new(selenium_browser) }
|
8
|
+
|
9
|
+
describe "link web objects" do
|
10
|
+
context "when declared in a definition" do
|
11
|
+
it "should generate methods for referencing the link" do
|
12
|
+
watir_definition.should respond_to(:reset_password_object)
|
13
|
+
watir_definition.should respond_to(:reset_password_link)
|
14
|
+
|
15
|
+
selenium_definition.should respond_to(:reset_password_object)
|
16
|
+
selenium_definition.should respond_to(:reset_password_link)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context "when used by the watir platform" do
|
21
|
+
it "should locate the link" do
|
22
|
+
watir_browser.should_receive(:link).and_return(watir_browser)
|
23
|
+
web_object = watir_definition.reset_password_object
|
24
|
+
web_object.should_not be_nil
|
25
|
+
web_object.should be_instance_of Symbiont::WebObjects::Link
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should click the link" do
|
29
|
+
watir_browser.stub_chain(:link, :click)
|
30
|
+
watir_definition.reset_password
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context "when used by the selenium platform" do
|
35
|
+
it "should locate the link" do
|
36
|
+
selenium_browser.should_receive(:find_element).and_return(selenium_browser)
|
37
|
+
web_object = selenium_definition.reset_password_object
|
38
|
+
web_object.should_not be_nil
|
39
|
+
web_object.should be_instance_of Symbiont::WebObjects::Link
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should click the link" do
|
43
|
+
selenium_browser.stub_chain(:find_element, :click)
|
44
|
+
selenium_definition.reset_password
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Symbiont::Generators do
|
4
|
+
let(:watir_browser) { mock_browser_for_watir }
|
5
|
+
let(:selenium_browser) { mock_browser_for_selenium }
|
6
|
+
let(:watir_definition) { DefinitionTest.new(watir_browser) }
|
7
|
+
let(:selenium_definition) { DefinitionTest.new(selenium_browser) }
|
8
|
+
|
9
|
+
describe "text field web objects" do
|
10
|
+
context "when declared in a definition" do
|
11
|
+
it "should generate methods for referencing the text field" do
|
12
|
+
watir_definition.should respond_to(:login_name_text_field)
|
13
|
+
watir_definition.should respond_to(:login_name_object)
|
14
|
+
|
15
|
+
selenium_definition.should respond_to(:login_name_text_field)
|
16
|
+
selenium_definition.should respond_to(:login_name_object)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context "when used by the watir platform" do
|
21
|
+
it "should locate the text field" do
|
22
|
+
watir_browser.should_receive(:text_field).and_return(watir_browser)
|
23
|
+
web_object = watir_definition.login_name_object
|
24
|
+
web_object.should_not be_nil
|
25
|
+
web_object.should be_instance_of Symbiont::WebObjects::TextField
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should retrieve text from the text field" do
|
29
|
+
watir_browser.should_receive(:text_field).and_return(watir_browser)
|
30
|
+
watir_browser.should_receive(:value).and_return("testing")
|
31
|
+
watir_definition.login_name.should == "testing"
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should enter text into a text field" do
|
35
|
+
watir_browser.should_receive(:text_field).and_return(watir_browser)
|
36
|
+
watir_browser.should_receive(:set).with("testing")
|
37
|
+
watir_definition.login_name = "testing"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
context "when used by the selenium platform" do
|
42
|
+
it "should locate the text field" do
|
43
|
+
selenium_browser.should_receive(:find_element).and_return(selenium_browser)
|
44
|
+
web_object = selenium_definition.login_name_object
|
45
|
+
web_object.should_not be_nil
|
46
|
+
web_object.should be_instance_of Symbiont::WebObjects::TextField
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should retrieve text from the text field" do
|
50
|
+
selenium_browser.should_receive(:find_element).and_return(selenium_browser)
|
51
|
+
selenium_browser.should_receive(:attribute).with('value').and_return("testing")
|
52
|
+
selenium_definition.login_name.should == "testing"
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should enter text into a text field" do
|
56
|
+
selenium_browser.should_receive(:find_element).twice.and_return(selenium_browser)
|
57
|
+
selenium_browser.should_receive(:clear)
|
58
|
+
selenium_browser.should_receive(:send_keys).with("testing")
|
59
|
+
selenium_definition.login_name = "testing"
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -12,6 +12,11 @@ describe Symbiont::Generators do
|
|
12
12
|
watir_browser.should_receive(:goto)
|
13
13
|
watir_definition.view
|
14
14
|
end
|
15
|
+
|
16
|
+
it "should navigate to the page when started" do
|
17
|
+
watir_browser.should_receive(:goto)
|
18
|
+
watir_definition.start
|
19
|
+
end
|
15
20
|
end
|
16
21
|
end
|
17
22
|
|
@@ -22,6 +27,12 @@ describe Symbiont::Generators do
|
|
22
27
|
selenium_browser.should_receive(:to)
|
23
28
|
selenium_definition.view
|
24
29
|
end
|
30
|
+
|
31
|
+
it "should navigate to the page when started" do
|
32
|
+
selenium_browser.should_receive(:navigate).and_return(selenium_browser)
|
33
|
+
selenium_browser.should_receive(:to)
|
34
|
+
selenium_definition.start
|
35
|
+
end
|
25
36
|
end
|
26
37
|
end
|
27
38
|
|
data/test/symbiont_selenium.rb
CHANGED
@@ -6,10 +6,30 @@ class Login
|
|
6
6
|
include Symbiont
|
7
7
|
|
8
8
|
url_is "http://localhost:4567"
|
9
|
+
begin_at "http://localhost:4567"
|
10
|
+
|
11
|
+
link :test_page, id: "testPage"
|
12
|
+
button :clickme, id: "clickme_id"
|
13
|
+
text_field :book_title, id: "title"
|
9
14
|
end
|
10
15
|
|
11
16
|
@browser_selenium = Selenium::WebDriver.for(:firefox)
|
12
17
|
selenium_test = Login.new(@browser_selenium)
|
13
18
|
selenium_test.view
|
14
19
|
|
20
|
+
test_link = selenium_test.test_page_object
|
21
|
+
puts test_link
|
22
|
+
selenium_test.test_page
|
23
|
+
|
24
|
+
test_text_field = selenium_test.book_title_object
|
25
|
+
puts test_text_field
|
26
|
+
|
27
|
+
selenium_test.book_title = "Revelation Space"
|
28
|
+
book = selenium_test.book_title
|
29
|
+
puts "Book title is '#{book}'."
|
30
|
+
|
31
|
+
test_button = selenium_test.clickme_object
|
32
|
+
puts test_button
|
33
|
+
selenium_test.clickme
|
34
|
+
|
15
35
|
@browser_selenium.close
|
data/test/symbiont_watir.rb
CHANGED
@@ -6,10 +6,30 @@ class Login
|
|
6
6
|
include Symbiont
|
7
7
|
|
8
8
|
url_is "http://localhost:4567"
|
9
|
+
begin_at "http://localhost:4567"
|
10
|
+
|
11
|
+
link :test_page, id: "testPage"
|
12
|
+
button :clickme, id: "clickme_id"
|
13
|
+
text_field :book_title, id: "title"
|
9
14
|
end
|
10
15
|
|
11
16
|
@browser_watir = Watir::Browser.new(:firefox)
|
12
17
|
watir_test = Login.new(@browser_watir)
|
13
18
|
watir_test.view
|
14
19
|
|
15
|
-
|
20
|
+
test_link = watir_test.test_page_object
|
21
|
+
puts test_link
|
22
|
+
watir_test.test_page
|
23
|
+
|
24
|
+
test_text_field = watir_test.book_title_object
|
25
|
+
puts test_text_field
|
26
|
+
|
27
|
+
watir_test.book_title = "Revelation Space"
|
28
|
+
book = watir_test.book_title
|
29
|
+
puts "Book title is '#{book}'."
|
30
|
+
|
31
|
+
test_button = watir_test.clickme_object
|
32
|
+
puts test_button
|
33
|
+
watir_test.clickme
|
34
|
+
|
35
|
+
@browser_watir.close
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: symbiont
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-03-
|
12
|
+
date: 2012-03-15 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &27142536 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.8.0
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *27142536
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: simplecov
|
27
|
-
requirement: &
|
27
|
+
requirement: &27142260 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.6.1
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *27142260
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: watir-webdriver
|
38
|
-
requirement: &
|
38
|
+
requirement: &27141972 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - =
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 0.5.3
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *27141972
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: selenium-webdriver
|
49
|
-
requirement: &
|
49
|
+
requirement: &27141684 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - =
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: 2.20.0
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *27141684
|
58
58
|
description: An endosymbiotic facultative library for web application testing.
|
59
59
|
email:
|
60
60
|
- jeffnyman@gmail.com
|
@@ -76,7 +76,14 @@ files:
|
|
76
76
|
- lib/symbiont/platform_watir/platform_object.rb
|
77
77
|
- lib/symbiont/platforms.rb
|
78
78
|
- lib/symbiont/version.rb
|
79
|
+
- lib/symbiont/web_objects/_common.rb
|
80
|
+
- lib/symbiont/web_objects/button.rb
|
81
|
+
- lib/symbiont/web_objects/link.rb
|
82
|
+
- lib/symbiont/web_objects/text_field.rb
|
79
83
|
- spec/spec_helper.rb
|
84
|
+
- spec/symbiont/generators/button_generators_spec.rb
|
85
|
+
- spec/symbiont/generators/link_generators_spec.rb
|
86
|
+
- spec/symbiont/generators/text_field_generators_spec.rb
|
80
87
|
- spec/symbiont/generators_spec.rb
|
81
88
|
- spec/symbiont/platform_object_spec.rb
|
82
89
|
- spec/symbiont/symbiont_spec.rb
|