testingbot 0.1.5 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.github/workflows/test.yml +26 -0
- data/.travis.yml +7 -3
- data/LICENSE +1 -1
- data/README.md +207 -0
- data/bin/testingbot +4 -3
- data/lib/testingbot.rb +1 -5
- data/lib/testingbot/api.rb +153 -35
- data/lib/testingbot/version.rb +1 -1
- data/spec/integration/api_spec.rb +38 -18
- data/spec/resources/test.apk +1 -0
- data/spec/spec_helper.rb +6 -3
- metadata +55 -94
- data/README.rdoc +0 -237
- data/examples/android.rb +0 -14
- data/examples/capybara.rb +0 -22
- data/examples/capybara_multiple_browsers.rb +0 -38
- data/examples/cucumber/README.rdoc +0 -15
- data/examples/cucumber/Rakefile +0 -20
- data/examples/cucumber/features/support/env.rb +0 -13
- data/examples/cucumber/features/youtube.feature +0 -10
- data/examples/cucumber/features/youtube_steps.rb +0 -15
- data/examples/test_rspec.rb +0 -17
- data/examples/test_rspec1.rb +0 -36
- data/examples/test_unit.rb +0 -30
- data/lib/testingbot/capybara.rb +0 -66
- data/lib/testingbot/config.rb +0 -125
- data/lib/testingbot/cucumber.rb +0 -35
- data/lib/testingbot/hooks.rb +0 -287
- data/lib/testingbot/jasmine.rb +0 -29
- data/lib/testingbot/jasmine/README.rdoc +0 -16
- data/lib/testingbot/jasmine/Rakefile +0 -35
- data/lib/testingbot/jasmine/public/javascripts/Player.js +0 -22
- data/lib/testingbot/jasmine/public/javascripts/Song.js +0 -7
- data/lib/testingbot/jasmine/runner.rb +0 -4
- data/lib/testingbot/jasmine/spec/javascripts/PlayerSpec.js +0 -58
- data/lib/testingbot/jasmine/spec/javascripts/helpers/SpecHelper.js +0 -9
- data/lib/testingbot/jasmine/spec/javascripts/support/jasmine.yml +0 -73
- data/lib/testingbot/jasmine/test/Rakefile +0 -9
- data/lib/testingbot/jasmine/test/public/javascripts/Player.js +0 -22
- data/lib/testingbot/jasmine/test/public/javascripts/Song.js +0 -7
- data/lib/testingbot/jasmine/test/spec/javascripts/PlayerSpec.js +0 -58
- data/lib/testingbot/jasmine/test/spec/javascripts/helpers/SpecHelper.js +0 -9
- data/lib/testingbot/jasmine/test/spec/javascripts/support/jasmine.yml +0 -73
- data/lib/testingbot/selenium.rb +0 -127
- data/lib/testingbot/tunnel.rb +0 -104
- data/spec/integration/selenium1_spec.rb +0 -53
- data/spec/integration/selenium2_spec.rb +0 -60
- data/spec/integration/tunnel_spec.rb +0 -84
- data/spec/unit/api_spec.rb +0 -17
- data/spec/unit/config_spec.rb +0 -73
- data/spec/unit/tunnel_spec.rb +0 -41
- data/testingbot.gemspec +0 -25
- data/vendor/Testingbot-Tunnel.jar +0 -0
@@ -1,53 +0,0 @@
|
|
1
|
-
require "uri"
|
2
|
-
require "net/http"
|
3
|
-
require 'rspec'
|
4
|
-
|
5
|
-
@@success = true
|
6
|
-
@@check_api = true
|
7
|
-
|
8
|
-
# disabled until RSpec2 has append_after support
|
9
|
-
# ::RSpec.configuration.after :each do
|
10
|
-
# if @@check_api
|
11
|
-
# api = TestingBot::Api.new
|
12
|
-
# single_test = api.get_single_test(@selenium_driver.session_id)
|
13
|
-
# single_test["success"].should eql(@@success)
|
14
|
-
# single_test["extra"].should eql("just a test")
|
15
|
-
# end
|
16
|
-
# end
|
17
|
-
|
18
|
-
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
19
|
-
|
20
|
-
describe "Selenium RC test" do
|
21
|
-
|
22
|
-
before(:all) do
|
23
|
-
@selenium_driver = Selenium::Client::Driver.new \
|
24
|
-
:browser => "firefox",
|
25
|
-
:url => "http://testingbot.com",
|
26
|
-
:timeout_in_second => 60,
|
27
|
-
:platform => "WINDOWS",
|
28
|
-
:version => "10"
|
29
|
-
end
|
30
|
-
before(:each) do
|
31
|
-
@selenium_driver.start_new_browser_session({ :extra => "just a test" })
|
32
|
-
end
|
33
|
-
|
34
|
-
after(:each) do
|
35
|
-
@selenium_driver.close_current_browser_session
|
36
|
-
end
|
37
|
-
|
38
|
-
context "Connect and run successfully to the TestingBot Grid with Selenium 1 (RC)" do
|
39
|
-
it "should be able to run an RC test successfully" do
|
40
|
-
@check_api = false
|
41
|
-
@selenium_driver.open "/"
|
42
|
-
@selenium_driver.text?("TestingBot").should be_true
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
context "Check that we report the test status back successfully" do
|
47
|
-
it "should send a success status to TestingBot upon success of the test" do
|
48
|
-
@check_api = true
|
49
|
-
@selenium_driver.open "/"
|
50
|
-
@selenium_driver.text?("TestingBot").should be_true
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
@@ -1,60 +0,0 @@
|
|
1
|
-
require "uri"
|
2
|
-
require "net/http"
|
3
|
-
require 'rspec'
|
4
|
-
|
5
|
-
@@success = true
|
6
|
-
@@check_api = true
|
7
|
-
|
8
|
-
# disabled until RSpec2 has append_after support
|
9
|
-
# ::RSpec.configuration.after :each do
|
10
|
-
# if @@check_api
|
11
|
-
# api = TestingBot::Api.new
|
12
|
-
# single_test = api.get_single_test(@selenium_driver.session_id)
|
13
|
-
# single_test["success"].should eql(@@success)
|
14
|
-
# end
|
15
|
-
# end
|
16
|
-
|
17
|
-
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
18
|
-
|
19
|
-
|
20
|
-
TestingBot::config do |config|
|
21
|
-
config[:desired_capabilities] = { :browserName => "firefox", :version => 9, :platform => "WINDOWS" }
|
22
|
-
end
|
23
|
-
|
24
|
-
describe "Selenium WebDriver test" do
|
25
|
-
|
26
|
-
before(:all) do
|
27
|
-
@selenium_driver = TestingBot::SeleniumWebdriver.new
|
28
|
-
end
|
29
|
-
|
30
|
-
after(:each) do
|
31
|
-
@selenium_driver.stop
|
32
|
-
end
|
33
|
-
|
34
|
-
context "Connect and run successfully to the TestingBot Grid with Selenium 2" do
|
35
|
-
it "should be able to run an RC test successfully" do
|
36
|
-
@check_api = false
|
37
|
-
@selenium_driver.navigate.to "http://testingbot.com"
|
38
|
-
@selenium_driver.title.should match /^Selenium Testing/
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
describe "Selenium WebDriver test API" do
|
44
|
-
|
45
|
-
before(:all) do
|
46
|
-
@selenium_driver = TestingBot::SeleniumWebdriver.new
|
47
|
-
end
|
48
|
-
|
49
|
-
after(:each) do
|
50
|
-
@selenium_driver.stop
|
51
|
-
end
|
52
|
-
|
53
|
-
context "Check that we report the test status back successfully" do
|
54
|
-
it "should send a success status to TestingBot upon success of the test" do
|
55
|
-
@check_api = true
|
56
|
-
@selenium_driver.navigate.to "http://testingbot.com"
|
57
|
-
@selenium_driver.title.should match /^Selenium Testing/
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
@@ -1,84 +0,0 @@
|
|
1
|
-
require 'rspec'
|
2
|
-
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
3
|
-
|
4
|
-
describe "Testingbot Tunnel" do
|
5
|
-
after :each do
|
6
|
-
@tunnel.stop if @tunnel.is_connected?
|
7
|
-
TestingBot.reset_config!
|
8
|
-
end
|
9
|
-
|
10
|
-
context "the tunnel should start and block until it's ready" do
|
11
|
-
it "should successfully start a tunnel connection" do
|
12
|
-
@tunnel = TestingBot::Tunnel.new()
|
13
|
-
@tunnel.start
|
14
|
-
@tunnel.is_connected?.should == true
|
15
|
-
end
|
16
|
-
|
17
|
-
it "should raise an exception when trying to stop a tunnel that has not been started yet" do
|
18
|
-
@tunnel = TestingBot::Tunnel.new()
|
19
|
-
lambda { @tunnel.stop }.should raise_error(RuntimeError, /not been started/)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
context "the tunnel needs to handle proper credentials" do
|
24
|
-
it "should fail to start a tunnel connection when invalid credentials are supplied" do
|
25
|
-
@tunnel = TestingBot::Tunnel.new({ :client_key => "fake", :client_secret => "bogus" })
|
26
|
-
@tunnel.start
|
27
|
-
@tunnel.is_connected?.should == false
|
28
|
-
@tunnel.errors.should_not be_empty
|
29
|
-
@tunnel.kill
|
30
|
-
end
|
31
|
-
|
32
|
-
it "should try to fetch client_key and client_secret from the ~/.testingbot file when no credentials supplied" do
|
33
|
-
if File.exists?(File.expand_path("~/.testingbot"))
|
34
|
-
@tunnel = TestingBot::Tunnel.new()
|
35
|
-
@tunnel.start
|
36
|
-
@tunnel.is_connected?.should == true
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
context "the tunnel needs to accept extra options" do
|
42
|
-
it "should accept extra options" do
|
43
|
-
if File.exists?(File.expand_path("~/testingbot_ready.txt"))
|
44
|
-
File.delete(File.expand_path("~/testingbot_ready.txt"))
|
45
|
-
end
|
46
|
-
|
47
|
-
File.exists?(File.expand_path("~/testingbot_ready.txt")).should == false
|
48
|
-
|
49
|
-
@tunnel = TestingBot::Tunnel.new({ :options => ['-f ~/testingbot_ready.txt'] })
|
50
|
-
@tunnel.start
|
51
|
-
@tunnel.is_connected?.should == true
|
52
|
-
|
53
|
-
File.exists?(File.expand_path("~/testingbot_ready.txt")).should == true
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
context "there should only be one instance of a tunnel running" do
|
58
|
-
it "should check before starting that another tunnel is not yet running" do
|
59
|
-
@tunnel = TestingBot::Tunnel.new
|
60
|
-
@tunnel.start
|
61
|
-
@tunnel.is_connected?.should == true
|
62
|
-
|
63
|
-
clone = TestingBot::Tunnel.new
|
64
|
-
clone.start
|
65
|
-
clone.is_connected?.should == false
|
66
|
-
end
|
67
|
-
|
68
|
-
it "should not be possible to stop a tunnel that is not running" do
|
69
|
-
@tunnel = TestingBot::Tunnel.new
|
70
|
-
lambda { @tunnel.stop }.should raise_error(RuntimeError, /^Can't stop tunnel/)
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
context "When running a tunnel config values should be changed" do
|
75
|
-
it "should change the host and port in the config so that we connect to our tunnel instead of to the grid directly" do
|
76
|
-
@tunnel = TestingBot::Tunnel.new
|
77
|
-
@tunnel.start
|
78
|
-
@tunnel.is_connected?.should == true
|
79
|
-
@tunnel.instance_variable_get("@config")[:require_tunnel].should == true
|
80
|
-
@tunnel.instance_variable_get("@config")[:host].should eql("127.0.0.1")
|
81
|
-
@tunnel.instance_variable_get("@config")[:port].should eql(4445)
|
82
|
-
end
|
83
|
-
end
|
84
|
-
end
|
data/spec/unit/api_spec.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
require "rspec"
|
2
|
-
require File.expand_path(File.dirname(__FILE__) + '/../../lib/testingbot/config.rb')
|
3
|
-
require File.expand_path(File.dirname(__FILE__) + '/../../lib/testingbot/api.rb')
|
4
|
-
|
5
|
-
describe TestingBot::Api do
|
6
|
-
describe "load config" do
|
7
|
-
it "should load the configuration in the constructor" do
|
8
|
-
api = TestingBot::Api.new
|
9
|
-
api.instance_variable_get("@config").should_not be_nil
|
10
|
-
end
|
11
|
-
|
12
|
-
it "should use the credentials passed in from the constructor, overwriting possible credentials from the config" do
|
13
|
-
api = TestingBot::Api.new({ :client_key => "fake" })
|
14
|
-
api.instance_variable_get("@config")[:client_key].should eql("fake")
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
data/spec/unit/config_spec.rb
DELETED
@@ -1,73 +0,0 @@
|
|
1
|
-
require "rspec"
|
2
|
-
require 'selenium/webdriver'
|
3
|
-
require File.expand_path(File.dirname(__FILE__) + '/../../lib/testingbot/config.rb')
|
4
|
-
|
5
|
-
describe TestingBot::Config do
|
6
|
-
describe '#[]' do
|
7
|
-
it "should return nil for options that don't exist" do
|
8
|
-
c = TestingBot::Config.new
|
9
|
-
c[:doesnotexist].should be_nil
|
10
|
-
end
|
11
|
-
|
12
|
-
it "should return a config value when being set from the constructor" do
|
13
|
-
c = TestingBot::Config.new({ :client_secret => "secret!!" })
|
14
|
-
c[:client_secret].should == "secret!!"
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
describe '#[]=' do
|
19
|
-
it "should successfully set a config value" do
|
20
|
-
c = TestingBot::Config.new
|
21
|
-
value = rand * 1000
|
22
|
-
c[:client_key] = value
|
23
|
-
c[:client_key].should == value
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
describe "read config file" do
|
28
|
-
it "should read values from the .testingbot config file" do
|
29
|
-
if File.exists?(File.expand_path("~/.testingbot"))
|
30
|
-
c = TestingBot::Config.new
|
31
|
-
client_key, client_secret = File.open(File.expand_path("~/.testingbot")) { |f| f.readline }.chomp.split(":")
|
32
|
-
c[:client_key].should == client_key
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
it "should use the options I pass in the constructor, even if I have a config file" do
|
37
|
-
if File.exists?(File.expand_path("~/.testingbot"))
|
38
|
-
c = TestingBot::Config.new({ :client_key => "pickme" })
|
39
|
-
client_key, client_secret = File.open(File.expand_path("~/.testingbot")) { |f| f.readline }.chomp.split(":")
|
40
|
-
c[:client_key].should == "pickme"
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
describe "config values" do
|
46
|
-
it "should specify a default desired capability if the user did not specify any" do
|
47
|
-
c = TestingBot::Config.new
|
48
|
-
c.desired_capabilities.should_not be_empty
|
49
|
-
end
|
50
|
-
|
51
|
-
it "should be possible to use a Selenium::WebDriver::Remote::Capabilities object for the desired capabilities" do
|
52
|
-
c = TestingBot::Config.new
|
53
|
-
c[:desired_capabilities] = Selenium::WebDriver::Remote::Capabilities.firefox
|
54
|
-
c.desired_capabilities[:browserName].should eql("firefox")
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
describe "usage" do
|
59
|
-
it "should use the TestingBot.get_config as a singleton" do
|
60
|
-
c = TestingBot.get_config
|
61
|
-
c.should eql(TestingBot.get_config)
|
62
|
-
end
|
63
|
-
|
64
|
-
it "should be possible to reset the configuration" do
|
65
|
-
c = TestingBot.get_config
|
66
|
-
c.add_options({ :randomKey => "lol" })
|
67
|
-
|
68
|
-
TestingBot.reset_config!
|
69
|
-
c = TestingBot.get_config
|
70
|
-
c[:randomKey].should be_nil
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
data/spec/unit/tunnel_spec.rb
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
require "rspec"
|
2
|
-
require File.expand_path(File.dirname(__FILE__) + '/../../lib/testingbot/config.rb')
|
3
|
-
require File.expand_path(File.dirname(__FILE__) + '/../../lib/testingbot/tunnel.rb')
|
4
|
-
|
5
|
-
describe TestingBot::Tunnel do
|
6
|
-
describe "load config" do
|
7
|
-
it "should load the configuration in the constructor" do
|
8
|
-
tunnel = TestingBot::Tunnel.new
|
9
|
-
tunnel.instance_variable_get("@config").should_not be_nil
|
10
|
-
end
|
11
|
-
|
12
|
-
it "should should not overwrite the config with arguments supplied in the constructor" do
|
13
|
-
tunnel = TestingBot::Tunnel.new({ :client_key => "fake" })
|
14
|
-
tunnel.instance_variable_get("@config")[:client_key].should_not eql("fake")
|
15
|
-
end
|
16
|
-
|
17
|
-
it "should allow for extra options to be specified, which will be passed to the jar's argument list" do
|
18
|
-
tunnel = TestingBot::Tunnel.new({ :options => ["-f readyfile.txt", "-F *.com"] })
|
19
|
-
tunnel.extra_options.should eql("-f readyfile.txt -F *.com")
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
describe "before starting the tunnel" do
|
24
|
-
it "should have 0 errors" do
|
25
|
-
tunnel = TestingBot::Tunnel.new
|
26
|
-
tunnel.errors.should be_empty
|
27
|
-
end
|
28
|
-
|
29
|
-
it "should not be connected" do
|
30
|
-
tunnel = TestingBot::Tunnel.new
|
31
|
-
tunnel.is_connected?.should == false
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
describe "before stopping the tunnel" do
|
36
|
-
it "should check if the tunnel has been started yet" do
|
37
|
-
tunnel = TestingBot::Tunnel.new
|
38
|
-
lambda { tunnel.stop }.should raise_error(RuntimeError, /^Can't stop tunnel/)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
data/testingbot.gemspec
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
$:.push File.expand_path("../lib", __FILE__)
|
3
|
-
require "testingbot/version"
|
4
|
-
|
5
|
-
Gem::Specification.new do |s|
|
6
|
-
s.name = "testingbot"
|
7
|
-
s.version = Testingbot::VERSION
|
8
|
-
s.authors = ["Jochen Delabie"]
|
9
|
-
s.email = ["info@testingbot.com"]
|
10
|
-
s.homepage = "http://www.testingbot.com"
|
11
|
-
s.summary = "Ruby Gem to be used with testingbot.com"
|
12
|
-
s.description = "This gem makes using our Selenium grid on testingbot.com easy"
|
13
|
-
|
14
|
-
s.rubyforge_project = "testingbot"
|
15
|
-
|
16
|
-
s.files = `git ls-files`.split("\n")
|
17
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
-
s.require_paths = ["lib"]
|
20
|
-
s.add_dependency "json"
|
21
|
-
s.add_dependency "net-http-persistent"
|
22
|
-
s.add_dependency "selenium-webdriver"
|
23
|
-
s.add_development_dependency "rspec", [">= 2.9.0"]
|
24
|
-
s.add_development_dependency "rake"
|
25
|
-
end
|
Binary file
|