jasmine-sauce 0.1.0 → 0.2.0.alpha1
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/README.md
CHANGED
@@ -1 +1,16 @@
|
|
1
|
-
|
1
|
+
Jasmine Sauce
|
2
|
+
=============
|
3
|
+
|
4
|
+
The jasmine-sauce gem provides the glue necessary to run your Jasmine tests
|
5
|
+
across browsers in the Sauce OnDemand cloud.
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
Getting Started
|
10
|
+
---------------
|
11
|
+
|
12
|
+
1. Add jasmine-sauce to your Gemfile
|
13
|
+
2. bundle install
|
14
|
+
3. bundle exec sauce config <YOUR_SAUCE_USENRAME> <YOUR_SAUCE_API_KEY>
|
15
|
+
4. rails generate sauce:jasmine
|
16
|
+
5. rake jasmine:ci:sauce
|
data/Rakefile
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'rake'
|
3
|
-
require 'rake/testtask'
|
4
3
|
|
4
|
+
require 'rake/testtask'
|
5
5
|
Rake::TestTask.new(:test) do |test|
|
6
|
-
test.libs << 'lib'
|
7
|
-
test.pattern = 'test
|
6
|
+
test.libs << 'lib' << 'test'
|
7
|
+
test.pattern = 'test/**/test_*.rb'
|
8
8
|
test.verbose = true
|
9
9
|
end
|
10
10
|
|
@@ -15,5 +15,3 @@ end
|
|
15
15
|
task :push => :build do
|
16
16
|
system "gem push `ls *.gem | sort | tail -n 1`"
|
17
17
|
end
|
18
|
-
|
19
|
-
task :default => :test
|
data/lib/generators/sauce/jasmine/templates/spec/javascripts/support/jasmine_sauce_runner.rb
CHANGED
@@ -5,15 +5,60 @@ require 'sauce/jasmine'
|
|
5
5
|
jasmine_config_overrides = File.expand_path(File.join(File.dirname(__FILE__), 'jasmine_config.rb'))
|
6
6
|
require jasmine_config_overrides if File.exist?(jasmine_config_overrides)
|
7
7
|
|
8
|
-
jasmine_config = Sauce::Jasmine::Config.new
|
9
|
-
|
8
|
+
$jasmine_config = Sauce::Jasmine::Config.new
|
9
|
+
$jasmine_config.sauce_connect = false
|
10
10
|
|
11
|
-
|
11
|
+
$tunnel_domain = "#{rand(10000)}.jasmine.test"
|
12
|
+
|
13
|
+
def start_server(port = 8888)
|
14
|
+
handler = Rack::Handler.default
|
15
|
+
handler.run Jasmine.app($jasmine_config), :Port => port, :AccessLog => []
|
16
|
+
end
|
17
|
+
|
18
|
+
def start_jasmine_server
|
19
|
+
jasmine_server_port = Jasmine::find_unused_port
|
20
|
+
Thread.new do
|
21
|
+
start_server(jasmine_server_port)
|
22
|
+
end
|
23
|
+
Jasmine::wait_for_listener(jasmine_server_port, "jasmine server")
|
24
|
+
puts "jasmine server started."
|
25
|
+
return jasmine_server_port
|
26
|
+
end
|
27
|
+
|
28
|
+
port = start_jasmine_server
|
29
|
+
|
30
|
+
|
31
|
+
puts "Setting up Sauce Connect..."
|
32
|
+
@connection = Sauce::Connect.new(:domain => $tunnel_domain,
|
33
|
+
:host => "127.0.0.1",
|
34
|
+
:port => port,
|
35
|
+
:quiet => true)
|
36
|
+
@connection.wait_until_ready
|
37
|
+
puts "Sauce Connect ready!"
|
38
|
+
|
39
|
+
builders = []
|
12
40
|
|
13
41
|
RSpec.configuration.after(:suite) do
|
14
|
-
|
42
|
+
builders.each do |builder|
|
43
|
+
builder.stop
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
Sauce::Config.new.browsers.each do |os, browser, browser_version|
|
48
|
+
config = Sauce::Jasmine::Config.new
|
49
|
+
config.sauce_connect = false
|
50
|
+
config.os = os
|
51
|
+
config.browser = browser
|
52
|
+
config.browser_version = browser_version
|
53
|
+
|
54
|
+
config.base_url = "http://#{$tunnel_domain}"
|
55
|
+
spec_builder = Jasmine::SpecBuilder.new(config)
|
56
|
+
builders << spec_builder
|
57
|
+
|
58
|
+
spec_builder.start
|
59
|
+
spec_builder.declare_suites
|
15
60
|
end
|
16
61
|
|
17
|
-
|
18
|
-
|
19
|
-
|
62
|
+
at_exit do
|
63
|
+
puts "\nShutting down Sauce Connect..."
|
64
|
+
end
|
data/lib/sauce/jasmine/config.rb
CHANGED
@@ -4,9 +4,17 @@ require 'sauce/jasmine/selenium_driver'
|
|
4
4
|
module Sauce
|
5
5
|
module Jasmine
|
6
6
|
class Config < ::Jasmine::Config
|
7
|
+
attr_accessor :sauce_connect, :os, :browser, :browser_version
|
8
|
+
attr_writer :base_url
|
9
|
+
|
10
|
+
def initialize
|
11
|
+
sauce_connect = true
|
12
|
+
end
|
13
|
+
|
7
14
|
def start
|
8
|
-
start_jasmine_server
|
9
|
-
@client = Sauce::Jasmine::SeleniumDriver.new(browser, jasmine_host,
|
15
|
+
start_jasmine_server if sauce_connect
|
16
|
+
@client = Sauce::Jasmine::SeleniumDriver.new(browser, os, browser_version, jasmine_host,
|
17
|
+
@jasmine_server_port, sauce_connect, @base_url)
|
10
18
|
@client.connect
|
11
19
|
end
|
12
20
|
end
|
@@ -3,26 +3,31 @@ require 'jasmine/selenium_driver'
|
|
3
3
|
module Sauce
|
4
4
|
module Jasmine
|
5
5
|
class SeleniumDriver < ::Jasmine::SeleniumDriver
|
6
|
-
def initialize(browser, host, port)
|
6
|
+
def initialize(browser, os, version, host, port, sauce_connect, base_url = nil)
|
7
7
|
host = host[7..-1] if host =~ /^http:\/\//
|
8
8
|
@host = host
|
9
9
|
@port = port
|
10
|
-
@
|
10
|
+
@sauce_connect = sauce_connect
|
11
|
+
base_url ||= "#{rand(10000)}.jasmine.test"
|
11
12
|
@driver = Sauce::Selenium.new(:browser => browser,
|
12
|
-
:
|
13
|
+
:os => os,
|
14
|
+
:browser_version => version,
|
15
|
+
:browser_url => base_url,
|
13
16
|
:job_name => "Jasmine",
|
14
|
-
:'record-video' =>
|
15
|
-
:'record-screenshots' =>
|
17
|
+
:'record-video' => true,
|
18
|
+
:'record-screenshots' => true)
|
16
19
|
end
|
17
20
|
|
18
21
|
def connect
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
22
|
+
if @sauce_connect
|
23
|
+
puts "Setting up Sauce Connect..."
|
24
|
+
@connection = Sauce::Connect.new(:domain => @tunnel_domain,
|
25
|
+
:host => @host,
|
26
|
+
:port => @port,
|
27
|
+
:quiet => true)
|
28
|
+
@connection.wait_until_ready
|
29
|
+
puts "Sauce Connect ready."
|
30
|
+
end
|
26
31
|
super
|
27
32
|
end
|
28
33
|
|
metadata
CHANGED
@@ -1,13 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jasmine-sauce
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: -3702664322
|
5
|
+
prerelease: 6
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 2
|
9
9
|
- 0
|
10
|
-
|
10
|
+
- alpha
|
11
|
+
- 1
|
12
|
+
version: 0.2.0.alpha1
|
11
13
|
platform: ruby
|
12
14
|
authors:
|
13
15
|
- Eric Allen
|
@@ -15,7 +17,7 @@ autorequire:
|
|
15
17
|
bindir: bin
|
16
18
|
cert_chain: []
|
17
19
|
|
18
|
-
date: 2011-
|
20
|
+
date: 2011-03-23 00:00:00 -07:00
|
19
21
|
default_executable:
|
20
22
|
dependencies:
|
21
23
|
- !ruby/object:Gem::Dependency
|