symbiont 0.0.2 → 0.0.3
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/.gitignore +16 -5
- data/HISTORY.md +6 -0
- data/README.md +23 -1
- data/Rakefile +1 -0
- data/lib/symbiont/enclosers.rb +26 -0
- data/lib/symbiont/factory.rb +33 -0
- data/lib/symbiont/generators.rb +106 -4
- data/lib/symbiont/logger.rb +5 -0
- data/lib/symbiont/platform_watir/platform_object.rb +114 -13
- data/lib/symbiont/platforms.rb +1 -5
- data/lib/symbiont/version.rb +1 -1
- data/lib/symbiont/web_objects/_common.rb +13 -2
- data/lib/symbiont.rb +10 -5
- data/spec/spec_helper.rb +8 -9
- data/spec/symbiont/enclosers_spec.rb +16 -0
- data/spec/symbiont/factory_spec.rb +35 -0
- data/spec/symbiont/generators/button_generators_spec.rb +37 -18
- data/spec/symbiont/generators/link_generators_spec.rb +27 -16
- data/spec/symbiont/generators/text_field_generators_spec.rb +29 -23
- data/spec/symbiont/generators_spec.rb +27 -17
- data/spec/symbiont/platform_object_spec.rb +1 -9
- data/spec/symbiont/symbiont_spec.rb +2 -2
- data/spec/symbiont/web_object_spec.rb +17 -0
- data/symbiont.gemspec +20 -22
- data/test/symbiont_test.rb +158 -0
- metadata +16 -25
- data/lib/symbiont/platform_selenium/platform_object.rb +0 -71
- data/lib/symbiont/platform_selenium.rb +0 -9
- data/test/base.rb +0 -17
- data/test/symbiont_selenium.rb +0 -35
- data/test/symbiont_watir.rb +0 -35
@@ -2,18 +2,24 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Symbiont::Generators do
|
4
4
|
let(:watir_browser) { mock_browser_for_watir }
|
5
|
-
let(:selenium_browser) { mock_browser_for_selenium }
|
6
5
|
let(:watir_definition) { DefinitionTest.new(watir_browser) }
|
7
|
-
let(:selenium_definition) { DefinitionTest.new(selenium_browser) }
|
8
6
|
|
9
7
|
describe "button web objects" do
|
10
8
|
context "when declared in a definition" do
|
11
9
|
it "should generate methods for referencing the button" do
|
12
10
|
watir_definition.should respond_to(:submit_object)
|
13
11
|
watir_definition.should respond_to(:submit_button)
|
12
|
+
end
|
14
13
|
|
15
|
-
|
16
|
-
|
14
|
+
it "should generate methods for interacting with the link" do
|
15
|
+
watir_definition.should respond_to(:submit)
|
16
|
+
watir_definition.should respond_to(:submit_text)
|
17
|
+
watir_definition.should respond_to(:submit_exists?)
|
18
|
+
watir_definition.should respond_to(:submit_visible?)
|
19
|
+
watir_definition.should respond_to(:submit_enabled?)
|
20
|
+
watir_definition.should respond_to(:submit?)
|
21
|
+
watir_definition.should respond_to(:submit_?)
|
22
|
+
watir_definition.should respond_to(:submit!)
|
17
23
|
end
|
18
24
|
end
|
19
25
|
|
@@ -24,27 +30,40 @@ describe Symbiont::Generators do
|
|
24
30
|
web_object.should_not be_nil
|
25
31
|
web_object.should be_instance_of Symbiont::WebObjects::Button
|
26
32
|
end
|
27
|
-
|
33
|
+
|
34
|
+
it "should return the text of the button" do
|
35
|
+
watir_browser.should_receive(:button).and_return(watir_browser)
|
36
|
+
watir_browser.should_receive(:text).and_return('Submit')
|
37
|
+
watir_definition.submit_text.should == "Submit"
|
38
|
+
end
|
39
|
+
|
28
40
|
it "should click the button" do
|
29
41
|
watir_browser.should_receive(:button).and_return(watir_browser)
|
30
42
|
watir_browser.should_receive(:click)
|
31
43
|
watir_definition.submit
|
32
44
|
end
|
33
|
-
end
|
34
45
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
web_object.should be_instance_of Symbiont::WebObjects::Button
|
46
|
+
it "should determine if a button exists" do
|
47
|
+
watir_browser.should_receive(:button).twice.and_return(watir_browser)
|
48
|
+
watir_browser.should_receive(:exists?).twice.and_return(watir_browser)
|
49
|
+
watir_definition.submit?.should be_true
|
50
|
+
watir_definition.submit_exists?.should be_true
|
41
51
|
end
|
42
|
-
|
43
|
-
it "should
|
44
|
-
|
45
|
-
|
46
|
-
|
52
|
+
|
53
|
+
it "should determine if a button is visible" do
|
54
|
+
watir_browser.should_receive(:button).twice.and_return(watir_browser)
|
55
|
+
watir_browser.should_receive(:visible?).twice.and_return(watir_browser)
|
56
|
+
watir_definition.submit_?.should be_true
|
57
|
+
watir_definition.submit_visible?.should be_true
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should determine if a button is enabled" do
|
61
|
+
watir_browser.should_receive(:button).twice.and_return(watir_browser)
|
62
|
+
watir_browser.should_receive(:enabled?).twice.and_return(watir_browser)
|
63
|
+
watir_definition.submit_enabled?.should be_true
|
64
|
+
watir_definition.submit!.should be_true
|
47
65
|
end
|
48
66
|
end
|
67
|
+
|
49
68
|
end
|
50
|
-
end
|
69
|
+
end
|
@@ -2,18 +2,22 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Symbiont::Generators do
|
4
4
|
let(:watir_browser) { mock_browser_for_watir }
|
5
|
-
let(:selenium_browser) { mock_browser_for_selenium }
|
6
5
|
let(:watir_definition) { DefinitionTest.new(watir_browser) }
|
7
|
-
let(:selenium_definition) { DefinitionTest.new(selenium_browser) }
|
8
6
|
|
9
7
|
describe "link web objects" do
|
10
8
|
context "when declared in a definition" do
|
11
9
|
it "should generate methods for referencing the link" do
|
12
10
|
watir_definition.should respond_to(:reset_password_object)
|
13
11
|
watir_definition.should respond_to(:reset_password_link)
|
12
|
+
end
|
14
13
|
|
15
|
-
|
16
|
-
|
14
|
+
it "should generate methods for interacting with the link" do
|
15
|
+
watir_definition.should respond_to(:reset_password)
|
16
|
+
watir_definition.should respond_to(:reset_password_text)
|
17
|
+
watir_definition.should respond_to(:reset_password_exists?)
|
18
|
+
watir_definition.should respond_to(:reset_password_visible?)
|
19
|
+
watir_definition.should respond_to(:reset_password?)
|
20
|
+
watir_definition.should respond_to(:reset_password_?)
|
17
21
|
end
|
18
22
|
end
|
19
23
|
|
@@ -25,24 +29,31 @@ describe Symbiont::Generators do
|
|
25
29
|
web_object.should be_instance_of Symbiont::WebObjects::Link
|
26
30
|
end
|
27
31
|
|
32
|
+
it "should return the text of the link" do
|
33
|
+
watir_browser.should_receive(:link).and_return(watir_browser)
|
34
|
+
watir_browser.should_receive(:text).and_return('Reset Password')
|
35
|
+
watir_definition.reset_password_text.should == "Reset Password"
|
36
|
+
end
|
37
|
+
|
28
38
|
it "should click the link" do
|
29
39
|
watir_browser.stub_chain(:link, :click)
|
30
40
|
watir_definition.reset_password
|
31
41
|
end
|
32
|
-
end
|
33
42
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
web_object.should be_instance_of Symbiont::WebObjects::Link
|
43
|
+
it "should determine if a link exists" do
|
44
|
+
watir_browser.should_receive(:link).twice.and_return(watir_browser)
|
45
|
+
watir_browser.should_receive(:exists?).twice.and_return(watir_browser)
|
46
|
+
watir_definition.reset_password_exists?.should be_true
|
47
|
+
watir_definition.reset_password?.should be_true
|
40
48
|
end
|
41
|
-
|
42
|
-
it "should
|
43
|
-
|
44
|
-
|
49
|
+
|
50
|
+
it "should determine if a link is visible" do
|
51
|
+
watir_browser.should_receive(:link).twice.and_return(watir_browser)
|
52
|
+
watir_browser.should_receive(:visible?).twice.and_return(watir_browser)
|
53
|
+
watir_definition.reset_password_visible?.should be_true
|
54
|
+
watir_definition.reset_password_?.should be_true
|
45
55
|
end
|
46
56
|
end
|
57
|
+
|
47
58
|
end
|
48
|
-
end
|
59
|
+
end
|
@@ -2,18 +2,24 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Symbiont::Generators do
|
4
4
|
let(:watir_browser) { mock_browser_for_watir }
|
5
|
-
let(:selenium_browser) { mock_browser_for_selenium }
|
6
5
|
let(:watir_definition) { DefinitionTest.new(watir_browser) }
|
7
|
-
let(:selenium_definition) { DefinitionTest.new(selenium_browser) }
|
8
6
|
|
9
7
|
describe "text field web objects" do
|
10
8
|
context "when declared in a definition" do
|
11
9
|
it "should generate methods for referencing the text field" do
|
12
10
|
watir_definition.should respond_to(:login_name_text_field)
|
13
11
|
watir_definition.should respond_to(:login_name_object)
|
12
|
+
end
|
14
13
|
|
15
|
-
|
16
|
-
|
14
|
+
it "should generate methods for interacting with the link" do
|
15
|
+
watir_definition.should respond_to(:login_name)
|
16
|
+
watir_definition.should respond_to(:login_name_exists?)
|
17
|
+
watir_definition.should respond_to(:login_name_visible?)
|
18
|
+
watir_definition.should respond_to(:login_name_enabled?)
|
19
|
+
watir_definition.should respond_to(:login_name?)
|
20
|
+
watir_definition.should respond_to(:login_name_?)
|
21
|
+
watir_definition.should respond_to(:login_name!)
|
22
|
+
watir_definition.should respond_to(:login_name=)
|
17
23
|
end
|
18
24
|
end
|
19
25
|
|
@@ -36,28 +42,28 @@ describe Symbiont::Generators do
|
|
36
42
|
watir_browser.should_receive(:set).with("testing")
|
37
43
|
watir_definition.login_name = "testing"
|
38
44
|
end
|
39
|
-
end
|
40
45
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
web_object.should be_instance_of Symbiont::WebObjects::TextField
|
46
|
+
it "should determine if a text field exists" do
|
47
|
+
watir_browser.should_receive(:text_field).twice.and_return(watir_browser)
|
48
|
+
watir_browser.should_receive(:exists?).twice.and_return(watir_browser)
|
49
|
+
watir_definition.login_name_exists?.should be_true
|
50
|
+
watir_definition.login_name?.should be_true
|
47
51
|
end
|
48
|
-
|
49
|
-
it "should
|
50
|
-
|
51
|
-
|
52
|
-
|
52
|
+
|
53
|
+
it "should determine if a text field is visible" do
|
54
|
+
watir_browser.should_receive(:text_field).twice.and_return(watir_browser)
|
55
|
+
watir_browser.should_receive(:visible?).twice.and_return(watir_browser)
|
56
|
+
watir_definition.login_name_visible?.should be_true
|
57
|
+
watir_definition.login_name_?.should be_true
|
53
58
|
end
|
54
|
-
|
55
|
-
it "should
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
59
|
+
|
60
|
+
it "should determine if a text field is enabled" do
|
61
|
+
watir_browser.should_receive(:text_field).twice.and_return(watir_browser)
|
62
|
+
watir_browser.should_receive(:enabled?).twice.and_return(watir_browser)
|
63
|
+
watir_definition.login_name_enabled?.should be_true
|
64
|
+
watir_definition.login_name!.should be_true
|
60
65
|
end
|
61
66
|
end
|
67
|
+
|
62
68
|
end
|
63
|
-
end
|
69
|
+
end
|
@@ -2,9 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Symbiont::Generators do
|
4
4
|
let(:watir_browser) { mock_browser_for_watir }
|
5
|
-
let(:selenium_browser) { mock_browser_for_selenium }
|
6
5
|
let(:watir_definition) { DefinitionTest.new(watir_browser) }
|
7
|
-
let(:selenium_definition) { DefinitionTest.new(selenium_browser) }
|
8
6
|
|
9
7
|
context "a definition using watir-webdriver" do
|
10
8
|
describe "providing a url" do
|
@@ -18,22 +16,34 @@ describe Symbiont::Generators do
|
|
18
16
|
watir_definition.start
|
19
17
|
end
|
20
18
|
end
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
selenium_browser.should_receive(:navigate).and_return(selenium_browser)
|
27
|
-
selenium_browser.should_receive(:to)
|
28
|
-
selenium_definition.view
|
19
|
+
|
20
|
+
describe "providing a page title" do
|
21
|
+
it "should specify and verify the page title" do
|
22
|
+
watir_browser.should_receive(:title).and_return("Title of Page")
|
23
|
+
watir_definition.should have_title
|
29
24
|
end
|
30
|
-
|
31
|
-
it "should
|
32
|
-
|
33
|
-
|
34
|
-
selenium_definition.start
|
25
|
+
|
26
|
+
it "should raise an error if the page title is not verified" do
|
27
|
+
watir_browser.should_receive(:title).twice.and_return("Incorrect Title")
|
28
|
+
expect { watir_definition.has_title? }.to raise_error
|
35
29
|
end
|
36
30
|
end
|
31
|
+
|
32
|
+
describe "providing a page object" do
|
33
|
+
it "should specify and verify an expected object" do
|
34
|
+
watir_definition.should_receive(:testPage_object).and_return(watir_browser)
|
35
|
+
watir_browser.should_receive(:when_actionable).with(5).and_return(watir_browser)
|
36
|
+
watir_definition.has_object?
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should raise an error if the page object is not verified" do
|
40
|
+
class QuickDefinition
|
41
|
+
include Symbiont
|
42
|
+
look_for :fakeLink
|
43
|
+
end
|
44
|
+
QuickDefinition.new(watir_browser).should_not have_object
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
37
48
|
end
|
38
|
-
|
39
|
-
end
|
49
|
+
end
|
@@ -3,9 +3,7 @@ require 'spec_helper'
|
|
3
3
|
describe Symbiont do
|
4
4
|
|
5
5
|
let(:watir_browser) { mock_browser_for_watir }
|
6
|
-
let(:selenium_browser) { mock_browser_for_selenium }
|
7
6
|
let(:watir_definition) { DefinitionTest.new(watir_browser) }
|
8
|
-
let(:selenium_definition) { DefinitionTest.new(selenium_browser) }
|
9
7
|
|
10
8
|
context "a definition using watir-webdriver" do
|
11
9
|
it "should return a watir platform object" do
|
@@ -13,16 +11,10 @@ describe Symbiont do
|
|
13
11
|
end
|
14
12
|
end
|
15
13
|
|
16
|
-
context "a definition using selenium-webdriver" do
|
17
|
-
it "should return a selenium platform object" do
|
18
|
-
selenium_definition.platform.should be_kind_of Symbiont::Platforms::SeleniumWebDriver::PlatformObject
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
14
|
context "an unrecognized browser" do
|
23
15
|
it "should raise an exception" do
|
24
16
|
expect { DefinitionTest.new(:unknown_browser) }.to raise_error
|
25
17
|
end
|
26
18
|
end
|
27
19
|
|
28
|
-
end
|
20
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Web Objects" do
|
4
|
+
let(:watir_browser) { mock_browser_for_watir }
|
5
|
+
let(:watir_definition) { ::Symbiont::WebObjects::WebObject.new(watir_browser) }
|
6
|
+
|
7
|
+
it "should return the text contained by a web object" do
|
8
|
+
watir_browser.should_receive(:text).and_return("testing")
|
9
|
+
watir_definition.text.should == "testing"
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should wait for web object to be actionable" do
|
13
|
+
watir_browser.stub(:wait_until_present).with(5)
|
14
|
+
web_object = watir_definition.when_actionable(5)
|
15
|
+
web_object.should === watir_definition
|
16
|
+
end
|
17
|
+
end
|
data/symbiont.gemspec
CHANGED
@@ -1,29 +1,27 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
|
-
require "symbiont/version"
|
2
|
+
require File.expand_path('../lib/symbiont/version', __FILE__)
|
4
3
|
|
5
|
-
Gem::Specification.new do |
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
4
|
+
Gem::Specification.new do |gem|
|
5
|
+
gem.name = "symbiont"
|
6
|
+
gem.version = Symbiont::VERSION
|
7
|
+
gem.platform = Gem::Platform::RUBY
|
8
|
+
gem.license = "MIT"
|
9
|
+
gem.authors = ["Jeff Nyman"]
|
10
|
+
gem.email = ["jeffnyman@gmail.com"]
|
11
|
+
gem.homepage = "https://github.com/jnyman/symbiont"
|
12
|
+
gem.summary = %q{An endosymbiotic facultative library for web application testing.}
|
13
|
+
gem.description = %q{An endosymbiotic facultative library for web application testing.}
|
15
14
|
|
16
|
-
|
17
|
-
|
15
|
+
gem.required_ruby_version = '>= 1.9.2'
|
16
|
+
gem.rubyforge_project = "symbiont"
|
18
17
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
18
|
+
gem.files = `git ls-files`.split("\n")
|
19
|
+
gem.test_files = `git ls-files -- {test,spec,specs,features}/*`.split("\n")
|
20
|
+
gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
21
|
+
gem.require_paths = ["lib"]
|
23
22
|
|
24
|
-
|
25
|
-
|
23
|
+
gem.add_development_dependency 'rspec', '>= 2.9.0'
|
24
|
+
gem.add_development_dependency 'simplecov', '>= 0.6.1'
|
26
25
|
|
27
|
-
|
28
|
-
s.add_runtime_dependency 'selenium-webdriver', '2.20.0'
|
26
|
+
gem.add_runtime_dependency 'watir-webdriver', '0.5.3'
|
29
27
|
end
|
@@ -0,0 +1,158 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.expand_path('../lib', File.dirname(__FILE__)))
|
2
|
+
|
3
|
+
require 'symbiont'
|
4
|
+
require 'symbiont/factory'
|
5
|
+
|
6
|
+
class LoginPage
|
7
|
+
include Symbiont
|
8
|
+
|
9
|
+
url_is "http://localhost:4567"
|
10
|
+
title_is "Login | Test App"
|
11
|
+
look_for(:testPage)
|
12
|
+
|
13
|
+
link :testPage, id: "testPage"
|
14
|
+
end
|
15
|
+
|
16
|
+
class LoggingIn
|
17
|
+
include Symbiont
|
18
|
+
begin_at "http://localhost:4567"
|
19
|
+
|
20
|
+
within_frame(id: "loginSection") do |frame|
|
21
|
+
text_field :clientCode, id: "clientCode", frame: frame
|
22
|
+
text_field :loginName, id: "loginName", frame: frame
|
23
|
+
text_field :loginPassword, id: "password", frame: frame
|
24
|
+
button :login, id: "btnSubmit", frame: frame
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
class TestPage
|
29
|
+
include Symbiont
|
30
|
+
|
31
|
+
begin_at "http://localhost:4567/test_page"
|
32
|
+
title_is "Test Page | Test App"
|
33
|
+
|
34
|
+
link :fake_link, id: "fakeLink"
|
35
|
+
button :clickme, id: "clickme_id"
|
36
|
+
button :fake_button, id: "fakeButton"
|
37
|
+
button :disabled_button, id: "cantclickme_id"
|
38
|
+
text_field :book_title, id: "title"
|
39
|
+
text_field :fake_text_field, id: "fakeTextField"
|
40
|
+
text_field :disabled_text_field, id: "pub_id"
|
41
|
+
end
|
42
|
+
|
43
|
+
@browser = Watir::Browser.new(:firefox)
|
44
|
+
|
45
|
+
puts "* Frame Tests"
|
46
|
+
|
47
|
+
action = LoggingIn.new(@browser)
|
48
|
+
action.start
|
49
|
+
|
50
|
+
clientCode = action.clientCode_object
|
51
|
+
puts "\t'Client Code' text field object is type: #{clientCode}"
|
52
|
+
puts "\t'Client Code' text field exists? #{action.clientCode_exists?}"
|
53
|
+
puts "\t'Client Code' text field visible? #{action.clientCode_visible?}"
|
54
|
+
puts "\t'Client Code' text field enabled? #{action.clientCode_enabled?}"
|
55
|
+
action.clientCode = "QA"
|
56
|
+
action.loginName = "jnyman"
|
57
|
+
action.loginPassword = "password"
|
58
|
+
loginName = action.loginName
|
59
|
+
puts "\t'Login Name' text field value is: #{loginName}"
|
60
|
+
|
61
|
+
login = action.login_object
|
62
|
+
puts "\t'Log In' text field object is type: #{login}"
|
63
|
+
puts "\t'Log In' text field exists? #{action.login_exists?}"
|
64
|
+
puts "\t'Log In' text field visible? #{action.login_visible?}"
|
65
|
+
puts "\t'Log In' text field enabled? #{action.login_enabled?}"
|
66
|
+
puts "\t'Log In' button object text is: #{action.login_text}"
|
67
|
+
|
68
|
+
action = LoginPage.new(@browser)
|
69
|
+
action.view
|
70
|
+
action.has_title?
|
71
|
+
action.has_object?
|
72
|
+
|
73
|
+
puts "* Link Tests"
|
74
|
+
|
75
|
+
puts "** Basic Text Link Tests"
|
76
|
+
|
77
|
+
puts "\t'Test Page' link object exists? #{action.testPage_exists?}"
|
78
|
+
puts "\t'Test Page' link object exists? #{action.testPage?}"
|
79
|
+
puts "\t'Test Page' link object visible? #{action.testPage_visible?}"
|
80
|
+
puts "\t'Test Page' link object visible? #{action.testPage_?}"
|
81
|
+
test_page = action.testPage_object
|
82
|
+
puts "\t'Test Page' link object is type: #{test_page}"
|
83
|
+
puts "\t'Test Page' link object text is: #{action.testPage_text}"
|
84
|
+
puts "\t'Test Page' link object text is: #{test_page.text}"
|
85
|
+
|
86
|
+
action.testPage
|
87
|
+
action = TestPage.new(@browser)
|
88
|
+
|
89
|
+
puts "** Fake Link Tests"
|
90
|
+
|
91
|
+
test_link = action.fake_link_object
|
92
|
+
puts "\tFake link object is type: #{test_link}"
|
93
|
+
puts "\tFake link exists? #{action.fake_link?}"
|
94
|
+
|
95
|
+
puts "* Text Field Tests"
|
96
|
+
|
97
|
+
puts "** Enabled Text Field Tests"
|
98
|
+
|
99
|
+
puts "\t'Book Title' text field object exists? #{action.book_title_exists?}"
|
100
|
+
puts "\t'Book Title' text field object exists? #{action.book_title?}"
|
101
|
+
puts "\t'Book Title' text field object visible? #{action.book_title_visible?}"
|
102
|
+
puts "\t'Book Title' text field object exists? #{action.book_title_?}"
|
103
|
+
puts "\t'Book Title' text field object enabled? #{action.book_title_enabled?}"
|
104
|
+
puts "\t'Book Title' text field object enabled? #{action.book_title!}"
|
105
|
+
|
106
|
+
bookTitle = action.book_title_object
|
107
|
+
puts "\t'Book Title' text field object is type: #{bookTitle}"
|
108
|
+
action.book_title = "Revelation Space"
|
109
|
+
book = action.book_title
|
110
|
+
puts "\t'Book Title' text field value is: '#{book}'"
|
111
|
+
|
112
|
+
puts "** Disabled Text Field Tests"
|
113
|
+
|
114
|
+
disabledTextField = action.disabled_text_field_object
|
115
|
+
puts "\tDisabled text field object is type: #{disabledTextField}"
|
116
|
+
puts "\tDisabled text field object exists? #{action.disabled_text_field?}"
|
117
|
+
puts "\tDisabled text field object visible? #{action.disabled_text_field_?}"
|
118
|
+
puts "\tDisabled text field object enabled? #{action.disabled_text_field!}"
|
119
|
+
|
120
|
+
puts "** Fake Text Field Tests"
|
121
|
+
|
122
|
+
fakeTextField = action.fake_text_field_object
|
123
|
+
puts "\tFake text field object is type: #{fakeTextField}"
|
124
|
+
puts "\tFake text field object exists? #{action.fake_text_field_exists?}"
|
125
|
+
|
126
|
+
puts "* Button Tests"
|
127
|
+
|
128
|
+
puts "** Enabled Button Tests"
|
129
|
+
|
130
|
+
puts "\t'Click Me' button object exists? #{action.clickme_exists?}"
|
131
|
+
puts "\t'Click Me' button object exists? #{action.clickme?}"
|
132
|
+
puts "\t'Click Me' button object visible? #{action.clickme_visible?}"
|
133
|
+
puts "\t'Click Me' button object exists? #{action.clickme_?}"
|
134
|
+
puts "\t'Click Me' button object enabled? #{action.clickme_enabled?}"
|
135
|
+
puts "\t'Click Me' button object enabled? #{action.clickme!}"
|
136
|
+
click_me = action.clickme_object
|
137
|
+
puts "\t'Click Me' button object is type: #{click_me}"
|
138
|
+
puts "\t'Click Me' button object text is: #{action.clickme_text}"
|
139
|
+
puts "\t'Click Me' button object text is: #{click_me.text}"
|
140
|
+
|
141
|
+
puts "** Disabled Button Tests"
|
142
|
+
|
143
|
+
cant_click_me = action.disabled_button_object
|
144
|
+
puts "\t'Can't Click Me' button object is type: #{cant_click_me}"
|
145
|
+
puts "\t'Can't Click Me' button object exists? #{action.disabled_button?}"
|
146
|
+
puts "\t'Can't Click Me' button object visible? #{action.disabled_button_?}"
|
147
|
+
puts "\t'Can't Click Me' button object enabled? #{action.disabled_button!}"
|
148
|
+
puts "\t'Can't Click Me' button object text is: #{action.disabled_button_text}"
|
149
|
+
|
150
|
+
puts "** Fake Button Tests"
|
151
|
+
|
152
|
+
fake_button = action.fake_button_object
|
153
|
+
puts "\tFake button object is type: #{fake_button}"
|
154
|
+
puts "\tFake button object exists? #{action.fake_button?}"
|
155
|
+
|
156
|
+
action.clickme
|
157
|
+
|
158
|
+
@browser.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.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,22 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-04-11 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &25978452 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 2.
|
21
|
+
version: 2.9.0
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *25978452
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: simplecov
|
27
|
-
requirement: &
|
27
|
+
requirement: &25978140 !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: *25978140
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: watir-webdriver
|
38
|
-
requirement: &
|
38
|
+
requirement: &25977696 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - =
|
@@ -43,18 +43,7 @@ dependencies:
|
|
43
43
|
version: 0.5.3
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: selenium-webdriver
|
49
|
-
requirement: &27141684 !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
|
-
requirements:
|
52
|
-
- - =
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 2.20.0
|
55
|
-
type: :runtime
|
56
|
-
prerelease: false
|
57
|
-
version_requirements: *27141684
|
46
|
+
version_requirements: *25977696
|
58
47
|
description: An endosymbiotic facultative library for web application testing.
|
59
48
|
email:
|
60
49
|
- jeffnyman@gmail.com
|
@@ -69,9 +58,10 @@ files:
|
|
69
58
|
- README.md
|
70
59
|
- Rakefile
|
71
60
|
- lib/symbiont.rb
|
61
|
+
- lib/symbiont/enclosers.rb
|
62
|
+
- lib/symbiont/factory.rb
|
72
63
|
- lib/symbiont/generators.rb
|
73
|
-
- lib/symbiont/
|
74
|
-
- lib/symbiont/platform_selenium/platform_object.rb
|
64
|
+
- lib/symbiont/logger.rb
|
75
65
|
- lib/symbiont/platform_watir.rb
|
76
66
|
- lib/symbiont/platform_watir/platform_object.rb
|
77
67
|
- lib/symbiont/platforms.rb
|
@@ -81,16 +71,17 @@ files:
|
|
81
71
|
- lib/symbiont/web_objects/link.rb
|
82
72
|
- lib/symbiont/web_objects/text_field.rb
|
83
73
|
- spec/spec_helper.rb
|
74
|
+
- spec/symbiont/enclosers_spec.rb
|
75
|
+
- spec/symbiont/factory_spec.rb
|
84
76
|
- spec/symbiont/generators/button_generators_spec.rb
|
85
77
|
- spec/symbiont/generators/link_generators_spec.rb
|
86
78
|
- spec/symbiont/generators/text_field_generators_spec.rb
|
87
79
|
- spec/symbiont/generators_spec.rb
|
88
80
|
- spec/symbiont/platform_object_spec.rb
|
89
81
|
- spec/symbiont/symbiont_spec.rb
|
82
|
+
- spec/symbiont/web_object_spec.rb
|
90
83
|
- symbiont.gemspec
|
91
|
-
- test/
|
92
|
-
- test/symbiont_selenium.rb
|
93
|
-
- test/symbiont_watir.rb
|
84
|
+
- test/symbiont_test.rb
|
94
85
|
homepage: https://github.com/jnyman/symbiont
|
95
86
|
licenses:
|
96
87
|
- MIT
|