Users may specify a different browser to run jasmine:ci in by setting ENV['JASMINE_BROWSER']
This commit is contained in:
parent
199517abaa
commit
a0fbbd7f67
|
@ -5,9 +5,8 @@ module Jasmine
|
||||||
def initialize(options = {})
|
def initialize(options = {})
|
||||||
require 'selenium_rc'
|
require 'selenium_rc'
|
||||||
@selenium_jar_path = SeleniumRC::Server.allocate.jar_path
|
@selenium_jar_path = SeleniumRC::Server.allocate.jar_path
|
||||||
@options = options
|
|
||||||
|
|
||||||
@browser = options[:browser] ? options.delete(:browser) : 'firefox'
|
@browser = ENV["JASMINE_BROWSER"] || 'firefox'
|
||||||
@selenium_pid = nil
|
@selenium_pid = nil
|
||||||
@jasmine_server_pid = nil
|
@jasmine_server_pid = nil
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,113 +1,144 @@
|
||||||
require File.expand_path(File.join(File.dirname(__FILE__), "spec_helper"))
|
require File.expand_path(File.join(File.dirname(__FILE__), "spec_helper"))
|
||||||
|
|
||||||
describe Jasmine::Config do
|
describe Jasmine::Config do
|
||||||
before(:each) do
|
|
||||||
@template_dir = File.expand_path(File.join(File.dirname(__FILE__), "../generators/jasmine/templates"))
|
|
||||||
@config = Jasmine::Config.new
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "configuration" do
|
describe "configuration" do
|
||||||
|
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@config.stub!(:src_dir).and_return(File.join(@template_dir, "public"))
|
@template_dir = File.expand_path(File.join(File.dirname(__FILE__), "../generators/jasmine/templates"))
|
||||||
@config.stub!(:spec_dir).and_return(File.join(@template_dir, "spec"))
|
@config = Jasmine::Config.new
|
||||||
end
|
end
|
||||||
|
|
||||||
it "if sources.yaml not found" do
|
describe "defaults" do
|
||||||
File.stub!(:exist?).and_return(false)
|
|
||||||
@config.src_files.should == []
|
|
||||||
@config.stylesheets.should == []
|
|
||||||
@config.spec_files.should == ['javascripts/ExampleSpec.js', 'javascripts/SpecHelper.js']
|
|
||||||
@config.mappings.should == {
|
|
||||||
'/__root__' => @config.project_root,
|
|
||||||
'/__spec__' => @config.spec_dir
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
it "if jasmine.yml is empty" do
|
it "src_dir uses root when src dir is blank" do
|
||||||
@config.stub!(:simple_config_file).and_return(File.join(@template_dir, 'spec/javascripts/support/jasmine.yml'))
|
@config.stub!(:project_root).and_return('some_project_root')
|
||||||
YAML.stub!(:load).and_return(false)
|
@config.stub!(:simple_config_file).and_return(File.join(@template_dir, 'spec/javascripts/support/jasmine.yml'))
|
||||||
@config.src_files.should == []
|
YAML.stub!(:load).and_return({'src_dir' => nil})
|
||||||
@config.stylesheets.should == []
|
@config.src_dir.should == 'some_project_root'
|
||||||
@config.spec_files.should == ['javascripts/ExampleSpec.js', 'javascripts/SpecHelper.js']
|
end
|
||||||
@config.mappings.should == {
|
|
||||||
'/__root__' => @config.project_root,
|
it "should use correct default yaml config" do
|
||||||
'/__spec__' => @config.spec_dir
|
@config.stub!(:project_root).and_return('some_project_root')
|
||||||
}
|
@config.simple_config_file.should == (File.join('some_project_root', 'spec/javascripts/support/jasmine.yml'))
|
||||||
end
|
end
|
||||||
|
|
||||||
it "using default jasmine.yml" do
|
|
||||||
@config.stub!(:simple_config_file).and_return(File.join(@template_dir, 'spec/javascripts/support/jasmine.yml'))
|
it "should provide dir mappings" do
|
||||||
@config.src_files.should == []
|
@config.mappings.should == {
|
||||||
@config.spec_files.should == ['javascripts/ExampleSpec.js', 'javascripts/SpecHelper.js']
|
'/__root__' => @config.project_root,
|
||||||
@config.mappings.should == {
|
'/__spec__' => @config.spec_dir
|
||||||
'/__root__' => @config.project_root,
|
}
|
||||||
'/__spec__' => @config.spec_dir
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
it "simple_config stylesheets" do
|
|
||||||
@config.stub!(:simple_config_file).and_return(File.join(@template_dir, 'spec/javascripts/support/jasmine.yml'))
|
|
||||||
YAML.stub!(:load).and_return({'stylesheets' => ['foo.css', 'bar.css']})
|
|
||||||
Dir.stub!(:glob).and_return do |glob_string|
|
|
||||||
glob_string
|
|
||||||
end
|
end
|
||||||
@config.stylesheets.should == ['foo.css', 'bar.css']
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "using rails jasmine.yml" do
|
|
||||||
original_glob = Dir.method(:glob)
|
describe "simple_config" do
|
||||||
Dir.stub!(:glob).and_return do |glob_string|
|
before(:each) do
|
||||||
if glob_string =~ /public/
|
@config.stub!(:src_dir).and_return(File.join(@template_dir, "public"))
|
||||||
|
@config.stub!(:spec_dir).and_return(File.join(@template_dir, "spec"))
|
||||||
|
end
|
||||||
|
|
||||||
|
it "if sources.yaml not found" do
|
||||||
|
File.stub!(:exist?).and_return(false)
|
||||||
|
@config.src_files.should == []
|
||||||
|
@config.stylesheets.should == []
|
||||||
|
@config.spec_files.should == ['javascripts/ExampleSpec.js', 'javascripts/SpecHelper.js']
|
||||||
|
@config.mappings.should == {
|
||||||
|
'/__root__' => @config.project_root,
|
||||||
|
'/__spec__' => @config.spec_dir
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
it "if jasmine.yml is empty" do
|
||||||
|
@config.stub!(:simple_config_file).and_return(File.join(@template_dir, 'spec/javascripts/support/jasmine.yml'))
|
||||||
|
YAML.stub!(:load).and_return(false)
|
||||||
|
@config.src_files.should == []
|
||||||
|
@config.stylesheets.should == []
|
||||||
|
@config.spec_files.should == ['javascripts/ExampleSpec.js', 'javascripts/SpecHelper.js']
|
||||||
|
@config.mappings.should == {
|
||||||
|
'/__root__' => @config.project_root,
|
||||||
|
'/__spec__' => @config.spec_dir
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
it "using default jasmine.yml" do
|
||||||
|
@config.stub!(:simple_config_file).and_return(File.join(@template_dir, 'spec/javascripts/support/jasmine.yml'))
|
||||||
|
@config.src_files.should == []
|
||||||
|
@config.spec_files.should == ['javascripts/ExampleSpec.js', 'javascripts/SpecHelper.js']
|
||||||
|
@config.mappings.should == {
|
||||||
|
'/__root__' => @config.project_root,
|
||||||
|
'/__spec__' => @config.spec_dir
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
it "simple_config stylesheets" do
|
||||||
|
@config.stub!(:simple_config_file).and_return(File.join(@template_dir, 'spec/javascripts/support/jasmine.yml'))
|
||||||
|
YAML.stub!(:load).and_return({'stylesheets' => ['foo.css', 'bar.css']})
|
||||||
|
Dir.stub!(:glob).and_return do |glob_string|
|
||||||
glob_string
|
glob_string
|
||||||
else
|
|
||||||
original_glob.call(glob_string)
|
|
||||||
end
|
end
|
||||||
|
@config.stylesheets.should == ['foo.css', 'bar.css']
|
||||||
|
end
|
||||||
|
|
||||||
|
it "using rails jasmine.yml" do
|
||||||
|
original_glob = Dir.method(:glob)
|
||||||
|
Dir.stub!(:glob).and_return do |glob_string|
|
||||||
|
if glob_string =~ /public/
|
||||||
|
glob_string
|
||||||
|
else
|
||||||
|
original_glob.call(glob_string)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
@config.stub!(:simple_config_file).and_return(File.join(@template_dir, 'spec/javascripts/support/jasmine-rails.yml'))
|
||||||
|
@config.spec_files.should == ['javascripts/ExampleSpec.js', 'javascripts/SpecHelper.js']
|
||||||
|
@config.src_files.should == ['javascripts/prototype.js',
|
||||||
|
'javascripts/effects.js',
|
||||||
|
'javascripts/controls.js',
|
||||||
|
'javascripts/dragdrop.js',
|
||||||
|
'javascripts/application.js']
|
||||||
|
@config.js_files.should == [
|
||||||
|
'/javascripts/prototype.js',
|
||||||
|
'/javascripts/effects.js',
|
||||||
|
'/javascripts/controls.js',
|
||||||
|
'/javascripts/dragdrop.js',
|
||||||
|
'/javascripts/application.js',
|
||||||
|
'/__spec__/javascripts/ExampleSpec.js',
|
||||||
|
'/__spec__/javascripts/SpecHelper.js',
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should provide a list of all spec files with full paths" do
|
||||||
|
@config.spec_files_full_paths.should == [
|
||||||
|
File.join(@template_dir, 'spec/javascripts/ExampleSpec.js'),
|
||||||
|
File.join(@template_dir, 'spec/javascripts/SpecHelper.js')
|
||||||
|
]
|
||||||
end
|
end
|
||||||
@config.stub!(:simple_config_file).and_return(File.join(@template_dir, 'spec/javascripts/support/jasmine-rails.yml'))
|
|
||||||
@config.spec_files.should == ['javascripts/ExampleSpec.js', 'javascripts/SpecHelper.js']
|
|
||||||
@config.src_files.should == ['javascripts/prototype.js',
|
|
||||||
'javascripts/effects.js',
|
|
||||||
'javascripts/controls.js',
|
|
||||||
'javascripts/dragdrop.js',
|
|
||||||
'javascripts/application.js']
|
|
||||||
@config.js_files.should == [
|
|
||||||
'/javascripts/prototype.js',
|
|
||||||
'/javascripts/effects.js',
|
|
||||||
'/javascripts/controls.js',
|
|
||||||
'/javascripts/dragdrop.js',
|
|
||||||
'/javascripts/application.js',
|
|
||||||
'/__spec__/javascripts/ExampleSpec.js',
|
|
||||||
'/__spec__/javascripts/SpecHelper.js',
|
|
||||||
]
|
|
||||||
end
|
|
||||||
|
|
||||||
it "should provide a list of all spec files with full paths" do
|
|
||||||
@config.spec_files_full_paths.should == [
|
|
||||||
File.join(@template_dir, 'spec/javascripts/ExampleSpec.js'),
|
|
||||||
File.join(@template_dir, 'spec/javascripts/SpecHelper.js')
|
|
||||||
]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "src_dir uses root when src dir is blank" do
|
describe "browsers" do
|
||||||
@config.stub!(:project_root).and_return('some_project_root')
|
it "should use firefox by default" do
|
||||||
@config.stub!(:simple_config_file).and_return(File.join(@template_dir, 'spec/javascripts/support/jasmine.yml'))
|
ENV.should_receive(:[], "JASMINE_BROWSER").and_return(nil)
|
||||||
YAML.stub!(:load).and_return({'src_dir' => nil})
|
config = Jasmine::Config.new
|
||||||
@config.src_dir.should == 'some_project_root'
|
config.stub!(:start_servers)
|
||||||
end
|
Jasmine::SeleniumDriver.should_receive(:new).
|
||||||
|
with(anything(), anything(), "*firefox", anything()).
|
||||||
|
and_return(mock(Jasmine::SeleniumDriver, :connect => true))
|
||||||
|
config.start
|
||||||
|
end
|
||||||
|
|
||||||
it "should use correct default yaml config" do
|
it "should use ENV['JASMINE_BROWSER'] if set" do
|
||||||
@config.stub!(:project_root).and_return('some_project_root')
|
ENV.should_receive(:[], "JASMINE_BROWSER").and_return("mosaic")
|
||||||
@config.simple_config_file.should == (File.join('some_project_root', 'spec/javascripts/support/jasmine.yml'))
|
config = Jasmine::Config.new
|
||||||
end
|
config.stub!(:start_servers)
|
||||||
|
Jasmine::SeleniumDriver.should_receive(:new).
|
||||||
|
with(anything(), anything(), "*mosaic", anything()).
|
||||||
it "should provide dir mappings" do
|
and_return(mock(Jasmine::SeleniumDriver, :connect => true))
|
||||||
@config.mappings.should == {
|
config.start
|
||||||
'/__root__' => @config.project_root,
|
end
|
||||||
'/__spec__' => @config.spec_dir
|
|
||||||
}
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue