symbiote 0.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 +7 -0
- data/.gitignore +19 -0
- data/.travis.yml +14 -0
- data/Gemfile +6 -0
- data/HISTORY.md +7 -0
- data/LICENSE.txt +22 -0
- data/README.md +46 -0
- data/Rakefile +22 -0
- data/lib/symbiote/errors.rb +8 -0
- data/lib/symbiote/generators.rb +21 -0
- data/lib/symbiote/logger.rb +5 -0
- data/lib/symbiote/platform_selenium/platform_object.rb +21 -0
- data/lib/symbiote/platform_selenium.rb +18 -0
- data/lib/symbiote/platform_watir/platform_object.rb +21 -0
- data/lib/symbiote/platform_watir.rb +18 -0
- data/lib/symbiote/platforms.rb +31 -0
- data/lib/symbiote/version.rb +3 -0
- data/lib/symbiote.rb +65 -0
- data/spec/spec_helper.rb +33 -0
- data/spec/symbiote/generators_spec.rb +63 -0
- data/spec/symbiote/platform_object_spec.rb +31 -0
- data/spec/symbiote/symbiote_spec.rb +7 -0
- data/symbiote.gemspec +31 -0
- metadata +154 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1ec0549216f3d55f7e16bd2b37aed307395e9f60
|
4
|
+
data.tar.gz: cf2d54e3824dcafa388cb6efa9539670f4bbb9b4
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 0539a73d3ee9cdd64a84dff6bec77b3ca78b648c4206be051c2839fd32bdaf5f4a33d8e053fe705b9532228ddd6fa39c2d0822e830db0ab64c7010f6ebd15eca
|
7
|
+
data.tar.gz: e84ee2e270ca6c58a3166cbe00f9eecbdb7ff30343156a42e74687f8ce9c80464b991c5e79f340f1db05992ab44f891b2d77aaa5c8f5b8f5c6bae89c01d71e31
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/HISTORY.md
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
Change Log and History
|
2
|
+
======================
|
3
|
+
|
4
|
+
Version 0.1.0 / 2013-10-06
|
5
|
+
--------------------------
|
6
|
+
|
7
|
+
Initial development release of Symbiote. This initial release handles browser drivers, platform objects, and the start of the generators mechanism. Support is in place for both Watir-WebDriver and Selenium-WebDriver.
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 Jeff Nyman
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
Symbiote
|
2
|
+
========
|
3
|
+
|
4
|
+
[](http://travis-ci.org/jnyman/symbiote)
|
5
|
+
[](https://gemnasium.com/jnyman/symbiote)
|
6
|
+
[](http://badge.fury.io/rb/symbiote)
|
7
|
+
[](https://coveralls.io/r/jnyman/symbiote)
|
8
|
+
|
9
|
+
Description
|
10
|
+
-----------
|
11
|
+
|
12
|
+
Symbiote is designed to be a more streamlined version of Symbiont. Specifically, it will be streamlined in terms of its feature set, based on lessons I learned during the development of Symbiont. The general interface that Symbiont exposed will still be available.
|
13
|
+
|
14
|
+
Installation
|
15
|
+
------------
|
16
|
+
|
17
|
+
Add this line to your application's Gemfile:
|
18
|
+
|
19
|
+
gem 'symbiote'
|
20
|
+
|
21
|
+
And then execute:
|
22
|
+
|
23
|
+
$ bundle
|
24
|
+
|
25
|
+
Or install it yourself as:
|
26
|
+
|
27
|
+
$ gem install symbiote
|
28
|
+
|
29
|
+
Using Symbiote
|
30
|
+
--------------
|
31
|
+
|
32
|
+
See the [Symbiote wiki](https://github.com/jnyman/symbiote/wiki) for details on how to use the tool.
|
33
|
+
|
34
|
+
Contributing
|
35
|
+
------------
|
36
|
+
|
37
|
+
1. Fork the project.
|
38
|
+
2. Create a branch for your change.
|
39
|
+
3. Make your feature additions or bug fixes in your branch.
|
40
|
+
4. Create unit tests (in spec) for your changes.
|
41
|
+
5. Create acceptance tests (in specs) for your changes.
|
42
|
+
6. Commit your changes.
|
43
|
+
7. Push to the branch.
|
44
|
+
8. Create a new [pull request](https://help.github.com/articles/using-pull-requests).
|
45
|
+
|
46
|
+
Do note that pull requests are very welcome and are considered better than bug reports. Please create a topic branch for every separate change that you make. When you make commits, do not change the rakefile, version or history information.
|
data/Rakefile
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/env rake
|
2
|
+
require 'bundler/gem_tasks'
|
3
|
+
require 'rspec/core/rake_task'
|
4
|
+
|
5
|
+
namespace :spec do
|
6
|
+
desc 'Get file output for spec execution'
|
7
|
+
RSpec::Core::RakeTask.new('detail') do |config|
|
8
|
+
options = %w(--color)
|
9
|
+
options += %w(--format documentation)
|
10
|
+
options += %w(--format nested --out output/rspec-report.txt)
|
11
|
+
options += %w(--format html --out output/rspec-report.html)
|
12
|
+
config.rspec_opts = options
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
RSpec::Core::RakeTask.new do |config|
|
17
|
+
options = %w(--color)
|
18
|
+
options += %w(--format documentation)
|
19
|
+
config.rspec_opts = options
|
20
|
+
end
|
21
|
+
|
22
|
+
task :default => :spec
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Symbiote
|
2
|
+
module Generators
|
3
|
+
|
4
|
+
def url_is(url)
|
5
|
+
define_method('view') do
|
6
|
+
platform.visit(url)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def title_is(title)
|
11
|
+
define_method('has_title?') do
|
12
|
+
validation_msg = "Expected title: '#{title}'; Actual title: '#{browser.title}'"
|
13
|
+
valid_title = title == browser.title if title.kind_of?(String)
|
14
|
+
valid_title = title =~ browser.title if title.kind_of?(Regexp)
|
15
|
+
raise Errors::TitleNotMatched, validation_msg unless valid_title
|
16
|
+
valid_title
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Symbiote
|
2
|
+
module Platforms
|
3
|
+
module SeleniumWebDriver
|
4
|
+
class PlatformObject
|
5
|
+
|
6
|
+
attr_reader :browser
|
7
|
+
|
8
|
+
def initialize(browser)
|
9
|
+
@browser = browser
|
10
|
+
end
|
11
|
+
|
12
|
+
## Browser-Level Actions ##
|
13
|
+
|
14
|
+
def visit(url)
|
15
|
+
browser.navigate.to(url)
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Symbiote
|
2
|
+
module Platforms
|
3
|
+
module SeleniumWebDriver
|
4
|
+
|
5
|
+
def self.create_platform_object_for(browser)
|
6
|
+
require 'symbiote/platform_selenium/platform_object'
|
7
|
+
return SeleniumWebDriver::PlatformObject.new(browser)
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.works_with(browser)
|
11
|
+
browser.is_a?(::Selenium::WebDriver::Driver)
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
Symbiote::Platforms.register(:selenium_webdriver, Symbiote::Platforms::SeleniumWebDriver)
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Symbiote
|
2
|
+
module Platforms
|
3
|
+
module WatirWebDriver
|
4
|
+
class PlatformObject
|
5
|
+
|
6
|
+
attr_reader :browser
|
7
|
+
|
8
|
+
def initialize(browser)
|
9
|
+
@browser = browser
|
10
|
+
end
|
11
|
+
|
12
|
+
## Browser-Level Actions ##
|
13
|
+
|
14
|
+
def visit(url)
|
15
|
+
browser.goto(url)
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Symbiote
|
2
|
+
module Platforms
|
3
|
+
module WatirWebDriver
|
4
|
+
|
5
|
+
def self.create_platform_object_for(browser)
|
6
|
+
require 'symbiote/platform_watir/platform_object'
|
7
|
+
return WatirWebDriver::PlatformObject.new(browser)
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.works_with(browser)
|
11
|
+
browser.is_a?(::Watir::Browser)
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
Symbiote::Platforms.register(:watir_webdriver, Symbiote::Platforms::WatirWebDriver)
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Symbiote
|
2
|
+
module Platforms
|
3
|
+
|
4
|
+
@drivers = {}
|
5
|
+
|
6
|
+
def self.list
|
7
|
+
@drivers
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.register(driver, platform)
|
11
|
+
@drivers[driver] = platform
|
12
|
+
end
|
13
|
+
|
14
|
+
# This module determines what execution platform Symbiote will use.
|
15
|
+
# The decision is based on the browser that has been established for
|
16
|
+
# the execution profile.
|
17
|
+
#
|
18
|
+
# @param [Object] browser the browser to establish the platform for
|
19
|
+
# @returns [Object] a platform object to execute tests against
|
20
|
+
def get_platform_for(browser)
|
21
|
+
Symbiote::Platforms.list.each_value do |driver|
|
22
|
+
return driver.create_platform_object_for(browser) if driver.works_with(browser)
|
23
|
+
end
|
24
|
+
raise Errors::UnableToCreatePlatform, "Unable to create a platform object for #{browser}"
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
require 'symbiote/platform_watir'
|
31
|
+
require 'symbiote/platform_selenium'
|
data/lib/symbiote.rb
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'symbiote/version'
|
2
|
+
require 'symbiote/logger'
|
3
|
+
require 'symbiote/errors'
|
4
|
+
require 'symbiote/platforms'
|
5
|
+
require 'symbiote/generators'
|
6
|
+
|
7
|
+
require 'watir-webdriver'
|
8
|
+
require 'selenium-webdriver'
|
9
|
+
|
10
|
+
module Symbiote
|
11
|
+
include Platforms
|
12
|
+
|
13
|
+
# @return [Object] platform reference
|
14
|
+
# [Symbiont::Platforms::WatirWebDriver::PlatformObject]
|
15
|
+
# [Symbiont::Platforms::SeleniumWebDriver::PlatformObject]
|
16
|
+
attr_reader :platform
|
17
|
+
|
18
|
+
# @return [Object] browser reference
|
19
|
+
# [Watir::Browser]
|
20
|
+
# [Selenium::WebDriver::Driver]
|
21
|
+
attr_reader :browser
|
22
|
+
|
23
|
+
def self.version
|
24
|
+
"Symbiote v#{Symbiote::VERSION}"
|
25
|
+
end
|
26
|
+
|
27
|
+
# The included callback is used to provide the core functionality of the
|
28
|
+
# library to any class or module that includes the Symbiote library. The
|
29
|
+
# calling class or module is extended with logic that the library makes
|
30
|
+
# available as class methods. Those methods will be available only in
|
31
|
+
# the context of the class (definition) that included Symbiote.
|
32
|
+
def self.included(caller)
|
33
|
+
Symbiote.trace("#{caller.class} #{caller} attached the Symbiote")
|
34
|
+
caller.extend Symbiote::Generators
|
35
|
+
end
|
36
|
+
|
37
|
+
# The initialize method will be invoked when a page definition includes
|
38
|
+
# Symbiote. A few key things are happening here that are critical to
|
39
|
+
# everything working properly:
|
40
|
+
# (1) A browser instance is being created.
|
41
|
+
# (2) A platform object is created for that browser.
|
42
|
+
#
|
43
|
+
# @param [Object] browser a browser instance with a tool driver
|
44
|
+
def initialize(browser=nil)
|
45
|
+
@browser = browser
|
46
|
+
@browser = Watir::Browser.new if browser.nil? or browser == :watir
|
47
|
+
@browser = Selenium::WebDriver.for :firefox if browser == :selenium
|
48
|
+
|
49
|
+
Symbiote::trace("Symbiote attached to browser: #{@browser}")
|
50
|
+
|
51
|
+
establish_platform_object_for(@browser)
|
52
|
+
end
|
53
|
+
|
54
|
+
private
|
55
|
+
|
56
|
+
# This method is crucial in that it sets up the platform instance that
|
57
|
+
# will be used by just about every module that makes calls to any
|
58
|
+
# platform-specific functionality.
|
59
|
+
#
|
60
|
+
# @param [Object] browser a browser instance with a tool driver
|
61
|
+
def establish_platform_object_for(browser)
|
62
|
+
@platform = get_platform_for(browser)
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
$LOAD_PATH.unshift(File.expand_path('../lib', File.dirname(__FILE__)))
|
3
|
+
|
4
|
+
require 'coveralls'
|
5
|
+
Coveralls.wear!
|
6
|
+
|
7
|
+
unless ENV['CI']
|
8
|
+
require 'simplecov'
|
9
|
+
|
10
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
|
11
|
+
SimpleCov::Formatter::HTMLFormatter,
|
12
|
+
Coveralls::SimpleCov::Formatter
|
13
|
+
]
|
14
|
+
SimpleCov.start
|
15
|
+
end
|
16
|
+
|
17
|
+
require 'symbiote'
|
18
|
+
require 'watir-webdriver'
|
19
|
+
require 'selenium-webdriver'
|
20
|
+
|
21
|
+
def mock_browser_for_watir
|
22
|
+
watir_browser = double('watir')
|
23
|
+
watir_browser.stub(:is_a?).with(Watir::Browser).and_return(true)
|
24
|
+
watir_browser.stub(:is_a?).with(Selenium::WebDriver::Driver).and_return(false)
|
25
|
+
watir_browser
|
26
|
+
end
|
27
|
+
|
28
|
+
def mock_browser_for_selenium
|
29
|
+
selenium_browser = double('selenium')
|
30
|
+
selenium_browser.stub(:is_a?).with(Watir::Browser).and_return(false)
|
31
|
+
selenium_browser.stub(:is_a?).with(Selenium::WebDriver::Driver).and_return(true)
|
32
|
+
selenium_browser
|
33
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
|
3
|
+
class PageGenerators
|
4
|
+
include Symbiote
|
5
|
+
|
6
|
+
url_is 'http://localhost:4567'
|
7
|
+
title_is 'Symbiote'
|
8
|
+
end
|
9
|
+
|
10
|
+
describe Symbiote::Generators do
|
11
|
+
let(:watir_browser) { mock_browser_for_watir }
|
12
|
+
let(:watir_definition) { PageGenerators.new(watir_browser) }
|
13
|
+
|
14
|
+
let(:selenium_browser) { mock_browser_for_selenium }
|
15
|
+
let(:selenium_definition) { PageGenerators.new(selenium_browser) }
|
16
|
+
|
17
|
+
context 'any page definition' do
|
18
|
+
context 'providing a page title to be verified' do
|
19
|
+
it 'should specify and verify the page title' do
|
20
|
+
watir_browser.should_receive(:title).twice.and_return('Symbiote')
|
21
|
+
watir_definition.has_title?
|
22
|
+
|
23
|
+
selenium_browser.should_receive(:title).twice.and_return('Symbiote')
|
24
|
+
selenium_definition.has_title?
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should raise an error if the page title is not verified' do
|
28
|
+
msg = "Expected title: 'Symbiote'; Actual title: 'Testing'"
|
29
|
+
watir_browser.should_receive(:title).twice.and_return('Testing')
|
30
|
+
expect { watir_definition.has_title? }.to raise_error(Symbiote::Errors::TitleNotMatched, msg)
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'should validate the title if provided a regular expression' do
|
34
|
+
class QuickDefinition
|
35
|
+
include Symbiote
|
36
|
+
title_is (/\w+/)
|
37
|
+
end
|
38
|
+
|
39
|
+
selenium_browser.should_receive(:title).twice.and_return('Symbiote')
|
40
|
+
QuickDefinition.new(selenium_browser).has_title?
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
context 'a definition using watir-webdriver' do
|
46
|
+
context 'providing a url' do
|
47
|
+
it 'should navigate to the page when viewed' do
|
48
|
+
watir_browser.should_receive(:goto)
|
49
|
+
watir_definition.view
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
context 'a definition using selenium-webdriver' do
|
55
|
+
context 'providing a url' do
|
56
|
+
it 'should navigate to the page when viewed' do
|
57
|
+
selenium_browser.should_receive(:navigate).and_return(selenium_browser)
|
58
|
+
selenium_browser.should_receive(:to)
|
59
|
+
selenium_definition.view
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
|
3
|
+
class PageDefinition
|
4
|
+
include Symbiote
|
5
|
+
end
|
6
|
+
|
7
|
+
describe Symbiote do
|
8
|
+
let(:watir_browser) { mock_browser_for_watir }
|
9
|
+
let(:selenium_browser) { mock_browser_for_selenium }
|
10
|
+
let(:watir_definition) { PageDefinition.new(watir_browser) }
|
11
|
+
let(:selenium_definition) { PageDefinition.new(selenium_browser) }
|
12
|
+
|
13
|
+
context 'a definition using watir-webdriver' do
|
14
|
+
it 'should return a watir platform object' do
|
15
|
+
watir_definition.platform.should be_kind_of Symbiote::Platforms::WatirWebDriver::PlatformObject
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'a definition using selenium-webdriver' do
|
20
|
+
it 'should return a selenium platform object' do
|
21
|
+
selenium_definition.platform.should be_kind_of Symbiote::Platforms::SeleniumWebDriver::PlatformObject
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context 'a definition using an unrecognized driver' do
|
26
|
+
it 'should raise an exception' do
|
27
|
+
msg = 'Unable to create a platform object for unknown_browser'
|
28
|
+
expect { PageDefinition.new(:unknown_browser) }.to raise_error(Symbiote::Errors::UnableToCreatePlatform, msg)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/symbiote.gemspec
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'symbiote/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'symbiote'
|
8
|
+
spec.version = Symbiote::VERSION
|
9
|
+
spec.platform = Gem::Platform::RUBY
|
10
|
+
spec.author = 'Jeff Nyman'
|
11
|
+
spec.email = 'jeffnyman@gmail.com'
|
12
|
+
spec.description = 'Provides a DSL to construct a fluent interface for test execution libraries.'
|
13
|
+
spec.summary = 'An endosymbiotic facultative library for web application testing.'
|
14
|
+
spec.homepage = 'https://github.com/jnyman/symbiote'
|
15
|
+
spec.license = 'MIT'
|
16
|
+
|
17
|
+
spec.files = `git ls-files`.split($/)
|
18
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
19
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
|
+
spec.require_paths = %w(lib)
|
21
|
+
|
22
|
+
spec.required_ruby_version = '>= 1.9.3'
|
23
|
+
|
24
|
+
spec.add_development_dependency 'bundler', '~> 1.3'
|
25
|
+
spec.add_development_dependency 'rake'
|
26
|
+
spec.add_development_dependency 'rspec', '~> 2.14.1'
|
27
|
+
spec.add_development_dependency 'simplecov', '~> 0.7'
|
28
|
+
|
29
|
+
spec.add_runtime_dependency 'watir-webdriver', '0.6.4'
|
30
|
+
spec.add_runtime_dependency 'selenium-webdriver', '2.35.1'
|
31
|
+
end
|
metadata
ADDED
@@ -0,0 +1,154 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: symbiote
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jeff Nyman
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-10-06 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.3'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 2.14.1
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 2.14.1
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: simplecov
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.7'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.7'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: watir-webdriver
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.6.4
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.6.4
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: selenium-webdriver
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 2.35.1
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 2.35.1
|
97
|
+
description: Provides a DSL to construct a fluent interface for test execution libraries.
|
98
|
+
email: jeffnyman@gmail.com
|
99
|
+
executables: []
|
100
|
+
extensions: []
|
101
|
+
extra_rdoc_files: []
|
102
|
+
files:
|
103
|
+
- .gitignore
|
104
|
+
- .travis.yml
|
105
|
+
- Gemfile
|
106
|
+
- HISTORY.md
|
107
|
+
- LICENSE.txt
|
108
|
+
- README.md
|
109
|
+
- Rakefile
|
110
|
+
- lib/symbiote.rb
|
111
|
+
- lib/symbiote/errors.rb
|
112
|
+
- lib/symbiote/generators.rb
|
113
|
+
- lib/symbiote/logger.rb
|
114
|
+
- lib/symbiote/platform_selenium.rb
|
115
|
+
- lib/symbiote/platform_selenium/platform_object.rb
|
116
|
+
- lib/symbiote/platform_watir.rb
|
117
|
+
- lib/symbiote/platform_watir/platform_object.rb
|
118
|
+
- lib/symbiote/platforms.rb
|
119
|
+
- lib/symbiote/version.rb
|
120
|
+
- spec/spec_helper.rb
|
121
|
+
- spec/symbiote/generators_spec.rb
|
122
|
+
- spec/symbiote/platform_object_spec.rb
|
123
|
+
- spec/symbiote/symbiote_spec.rb
|
124
|
+
- symbiote.gemspec
|
125
|
+
homepage: https://github.com/jnyman/symbiote
|
126
|
+
licenses:
|
127
|
+
- MIT
|
128
|
+
metadata: {}
|
129
|
+
post_install_message:
|
130
|
+
rdoc_options: []
|
131
|
+
require_paths:
|
132
|
+
- lib
|
133
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - '>='
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: 1.9.3
|
138
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
139
|
+
requirements:
|
140
|
+
- - '>='
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
143
|
+
requirements: []
|
144
|
+
rubyforge_project:
|
145
|
+
rubygems_version: 2.0.2
|
146
|
+
signing_key:
|
147
|
+
specification_version: 4
|
148
|
+
summary: An endosymbiotic facultative library for web application testing.
|
149
|
+
test_files:
|
150
|
+
- spec/spec_helper.rb
|
151
|
+
- spec/symbiote/generators_spec.rb
|
152
|
+
- spec/symbiote/platform_object_spec.rb
|
153
|
+
- spec/symbiote/symbiote_spec.rb
|
154
|
+
has_rdoc:
|