jasmine 1.1.2 → 1.2.0.rc3

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/.travis.yml ADDED
@@ -0,0 +1,57 @@
1
+ before_script:
2
+ - "sh -e /etc/init.d/xvfb start"
3
+ script: "DISPLAY=:99.0 bundle exec rake"
4
+
5
+ rvm:
6
+ - "1.8.7"
7
+ - "1.9.2"
8
+ - "1.9.3"
9
+ - "ree"
10
+ - "jruby"
11
+ - "rbx"
12
+
13
+ env:
14
+ - "RAILS_VERSION=rails2"
15
+ - "RAILS_VERSION=rails2_3_5"
16
+ - "RAILS_VERSION=rails3"
17
+ - "RAILS_VERSION=pojs-rspec1"
18
+ - "RAILS_VERSION=pojs-rspec2"
19
+
20
+ matrix:
21
+ exclude:
22
+ - rvm: rbx
23
+ env: RAILS_VERSION=rails2
24
+ - rvm: rbx
25
+ env: RAILS_VERSION=rails2_3_5
26
+ - rvm: rbx
27
+ env: RAILS_VERSION=pojs-rspec1
28
+ - rvm: rbx
29
+ env: RAILS_VERSION=pojs-rspec2
30
+ - rvm: jruby
31
+ env: RAILS_VERSION=rails2
32
+ - rvm: jruby
33
+ env: RAILS_VERSION=rails2_3_5
34
+ - rvm: jruby
35
+ env: RAILS_VERSION=pojs-rspec1
36
+ - rvm: jruby
37
+ env: RAILS_VERSION=pojs-rspec2
38
+ - rvm: 1.9.2
39
+ env: RAILS_VERSION=rails2
40
+ - rvm: 1.9.2
41
+ env: RAILS_VERSION=rails2_3_5
42
+ - rvm: 1.9.2
43
+ env: RAILS_VERSION=pojs-rspec1
44
+ - rvm: 1.9.2
45
+ env: RAILS_VERSION=pojs-rspec2
46
+ - rvm: ree
47
+ env: RAILS_VERSION=pojs-rspec2
48
+ - rvm: 1.8.7
49
+ env: RAILS_VERSION=rails2
50
+ - rvm: 1.8.7
51
+ env: RAILS_VERSION=rails2_3_5
52
+ - rvm: 1.8.7
53
+ env: RAILS_VERSION=pojs-rspec1
54
+ - rvm: 1.8.7
55
+ env: RAILS_VERSION=pojs-rspec2
56
+ allow_failures:
57
+ - rvm: rbx
data/Gemfile CHANGED
@@ -1,3 +1,2 @@
1
1
  source "http://rubygems.org"
2
- gem "ci_reporter", :git => "git://github.com/nicksieger/ci_reporter.git", :ref => "af8674c7bddc338fad228c566a03e3b8188d8a22"
3
2
  gemspec
data/README.markdown CHANGED
@@ -1,4 +1,4 @@
1
- # The Jasmine Gem
1
+ # The Jasmine Gem <a title="Build at Travis CI" href="http://travis-ci.org/#!/pivotal/jasmine-gem"><img src="https://secure.travis-ci.org/pivotal/jasmine-gem.png" /></a>
2
2
 
3
3
  The [Jasmine](http://github.com/pivotal/jasmine) Ruby Gem is a package of helper code for developing Jasmine projects for Ruby-based web projects (Rails, Sinatra, etc.) or for JavaScript projects where Ruby is a welcome partner. It serves up a project's Jasmine suite in a browser so you can focus on your code instead of manually editing script tags in the Jasmine runner HTML file.
4
4
 
data/Rakefile CHANGED
@@ -12,7 +12,6 @@ else
12
12
  require 'spec'
13
13
  require 'spec/rake/spectask'
14
14
  end
15
- require 'ci/reporter/rake/rspec'
16
15
 
17
16
  desc "Run all examples"
18
17
  if Jasmine::Dependencies.rspec2?
@@ -25,14 +24,14 @@ else
25
24
  end
26
25
  end
27
26
 
28
- task :spec => ['jasmine:copy_examples_to_gem', 'ci:setup:rspec']
27
+ task :spec => ['jasmine:copy_examples_to_gem']
29
28
 
30
29
  task :default => :spec
31
30
 
32
31
  namespace :jasmine do
33
32
  require "jasmine-core"
34
33
  require './spec/jasmine_self_test_config'
35
- task :server do
34
+ task :server do
36
35
  port = ENV['JASMINE_PORT'] || 8888
37
36
  JasmineSelfTestConfig.new.start_server(port)
38
37
 
@@ -13,20 +13,12 @@ class JasmineGenerator < Rails::Generator::Base
13
13
  m.file "jasmine-example/spec/SpecHelper.js", "spec/javascripts/helpers/SpecHelper.js"
14
14
 
15
15
  m.directory "spec/javascripts/support"
16
- m.file "spec/javascripts/support/jasmine_runner.rb", "spec/javascripts/support/jasmine_runner.rb"
17
- m.file "spec/javascripts/support/jasmine_config.rb", "spec/javascripts/support/jasmine_config.rb"
18
16
  m.file "spec/javascripts/support/jasmine-rails.yml", "spec/javascripts/support/jasmine.yml"
19
17
  m.readme "INSTALL"
20
18
 
21
- unless ::Rails::VERSION::STRING[0,1] == "3"
22
- m.directory "lib/tasks"
23
- m.file "lib/tasks/jasmine.rake", "lib/tasks/jasmine.rake"
24
- end
19
+ m.directory "lib/tasks"
20
+ m.file "lib/tasks/jasmine.rake", "lib/tasks/jasmine.rake"
25
21
  m
26
22
  end
27
23
 
28
- def file_name
29
- "create_blog"
30
- end
31
-
32
- end
24
+ end
@@ -10,11 +10,11 @@
10
10
  <script type="text/javascript" src="lib/jasmine-1.1.0.rc1/jasmine.js"></script>
11
11
  <script type="text/javascript" src="lib/jasmine-1.1.0.rc1/jasmine-html.js"></script>
12
12
 
13
- <!-- include spec files here... -->
13
+ <!-- include source files here... -->
14
14
  <script type="text/javascript" src="spec/SpecHelper.js"></script>
15
15
  <script type="text/javascript" src="spec/PlayerSpec.js"></script>
16
16
 
17
- <!-- include source files here... -->
17
+ <!-- include spec files here... -->
18
18
  <script type="text/javascript" src="src/Player.js"></script>
19
19
  <script type="text/javascript" src="src/Song.js"></script>
20
20
 
data/jasmine.gemspec CHANGED
@@ -46,7 +46,15 @@ Gem::Specification.new do |s|
46
46
  end
47
47
  # for development & test of Rails 2 Generators
48
48
  s.add_development_dependency 'rails', '2.3.11', "< 3"
49
- s.add_development_dependency 'rack', '>= 1.1', "< 1.2"
49
+ elsif ENV['RAILS_VERSION'] == 'rails2_3_5'
50
+ if ENV["RUBY_VERSION"] =~ /1\.8\.6/
51
+ #1.3.2 buffer overflows
52
+ s.add_development_dependency 'rspec', '= 1.3.1'
53
+ else
54
+ s.add_development_dependency 'rspec', '>= 1.3.1', '< 2'
55
+ end
56
+ # for development & test of Rails 2 Generators
57
+ s.add_development_dependency 'rails', '= 2.3.5'
50
58
  else
51
59
  # for development & test of Rails 3 Generators
52
60
  s.add_development_dependency 'rspec', '>= 2.5.0'
@@ -55,11 +63,10 @@ Gem::Specification.new do |s|
55
63
  end
56
64
 
57
65
  s.add_development_dependency 'rack-test'
58
- s.add_development_dependency 'ci_reporter'
59
66
  s.add_development_dependency 'json_pure'
60
67
 
61
- s.add_dependency 'jasmine-core', ">= 1.1.0"
62
- s.add_dependency 'rack', '>= 1.1'
68
+ s.add_dependency 'jasmine-core', ">= 1.2.0.rc3"
69
+ s.add_dependency 'rack', '~> 1.0'
63
70
  s.add_dependency 'rspec', '>= 1.3.1'
64
71
  s.add_dependency 'selenium-webdriver', '>= 0.1.3'
65
72
  end
data/lib/jasmine/base.rb CHANGED
@@ -30,7 +30,7 @@ module Jasmine
30
30
  true
31
31
  end
32
32
 
33
- def self.wait_for_listener(port, name = "required process", seconds_to_wait = 10)
33
+ def self.wait_for_listener(port, name = "required process", seconds_to_wait = 20)
34
34
  time_out_at = Time.now + seconds_to_wait
35
35
  until server_is_listening_on "localhost", port
36
36
  sleep 0.1
@@ -39,4 +39,8 @@ module Jasmine
39
39
  end
40
40
  end
41
41
 
42
+ def self.runner_filepath
43
+ File.expand_path(File.join(File.dirname(__FILE__), "runner.rb"))
44
+ end
45
+
42
46
  end
@@ -35,8 +35,6 @@ module Jasmine
35
35
  copy_unless_exists('jasmine-example/src/Song.js', 'public/javascripts/Song.js')
36
36
  copy_unless_exists('jasmine-example/spec/PlayerSpec.js', 'spec/javascripts/PlayerSpec.js')
37
37
  copy_unless_exists('jasmine-example/spec/SpecHelper.js', 'spec/javascripts/helpers/SpecHelper.js')
38
- copy_unless_exists('spec/javascripts/support/jasmine_runner.rb')
39
- copy_unless_exists('spec/javascripts/support/jasmine_config.rb')
40
38
 
41
39
  rails_tasks_dir = dest_path('lib/tasks')
42
40
  if File.exist?(rails_tasks_dir)
@@ -16,9 +16,14 @@ module Jasmine
16
16
  end
17
17
 
18
18
  def start_server(port = 8888)
19
- server = Rack::Server.new(:Port => port, :AccessLog => [])
20
- server.instance_variable_set(:@app, Jasmine.app(self)) # workaround for Rack bug, when Rack > 1.2.1 is released Rack::Server.start(:app => Jasmine.app(self)) will work
21
- server.start
19
+ if defined? Rack::Server # Rack ~>1.0 compatibility
20
+ server = Rack::Server.new(:Port => port, :AccessLog => [])
21
+ server.instance_variable_set(:@app, Jasmine.app(self)) # workaround for Rack bug, when Rack > 1.2.1 is released Rack::Server.start(:app => Jasmine.app(self)) will work
22
+ server.start
23
+ else
24
+ handler = Rack::Handler.get('webrick')
25
+ handler.run(Jasmine.app(self), :Port => port, :AccessLog => [])
26
+ end
22
27
  end
23
28
 
24
29
  def start
@@ -32,10 +37,15 @@ module Jasmine
32
37
  end
33
38
 
34
39
  def start_jasmine_server
40
+ require 'json'
35
41
  @jasmine_server_port = jasmine_port
36
- Thread.new do
37
- start_server(@jasmine_server_port)
42
+ t = Thread.new do
43
+ begin
44
+ start_server(@jasmine_server_port)
45
+ rescue ChildProcess::TimeoutError; end
46
+ #ignore bad exits
38
47
  end
48
+ t.abort_on_exception = true
39
49
  Jasmine::wait_for_listener(@jasmine_server_port, "jasmine server")
40
50
  puts "jasmine server started."
41
51
  end
@@ -70,7 +80,7 @@ module Jasmine
70
80
  chosen, negated = [positive, negative].collect do |patterns|
71
81
  patterns.collect do |pattern|
72
82
  matches = Dir.glob(File.join(dir, pattern.gsub(/^!/,'')))
73
- matches.collect {|f| f.sub("#{dir}/", "")}.sort
83
+ matches.empty? && !(pattern =~ /\*|^\!/) ? pattern : matches.collect {|f| f.sub("#{dir}/", "")}.sort
74
84
  end.flatten.uniq
75
85
  end
76
86
  chosen - negated
@@ -159,4 +169,4 @@ module Jasmine
159
169
  end
160
170
  end
161
171
  end
162
- end
172
+ end
@@ -10,10 +10,18 @@ module Jasmine
10
10
  safe_gem_check("rails", "~> 2.3")
11
11
  end
12
12
 
13
+ def legacy_rails?
14
+ safe_gem_check("rails", "< 2.3.11")
15
+ end
16
+
13
17
  def rails3?
14
18
  safe_gem_check("rails", ">= 3.0")
15
19
  end
16
20
 
21
+ def rails_3_asset_pipeline?
22
+ rails3? && Rails.respond_to?(:application) && Rails.application.respond_to?(:assets) && Rails.application.assets
23
+ end
24
+
17
25
  private
18
26
  def safe_gem_check(gem_name, version_string)
19
27
  if Gem::Specification.respond_to?(:find_by_name)
@@ -15,6 +15,7 @@ module Jasmine
15
15
 
16
16
  rake_tasks do
17
17
  load "jasmine/tasks/jasmine.rake"
18
+ load "jasmine/tasks/jasmine_rails3.rake"
18
19
  end
19
20
  end
20
- end
21
+ end
@@ -18,13 +18,13 @@
18
18
  var jasmineEnv = jasmine.getEnv();
19
19
 
20
20
  jsApiReporter = new jasmine.JsApiReporter();
21
- var trivialReporter = new jasmine.TrivialReporter();
21
+ var htmlReporter = new jasmine.HtmlReporter();
22
22
 
23
23
  jasmineEnv.addReporter(jsApiReporter);
24
- jasmineEnv.addReporter(trivialReporter);
24
+ jasmineEnv.addReporter(htmlReporter);
25
25
 
26
26
  jasmineEnv.specFilter = function(spec) {
27
- return trivialReporter.specFilter(spec);
27
+ return htmlReporter.specFilter(spec);
28
28
  };
29
29
 
30
30
  var currentWindowOnload = window.onload;
@@ -2,7 +2,7 @@ $:.unshift(ENV['JASMINE_GEM_PATH']) if ENV['JASMINE_GEM_PATH'] # for gem testing
2
2
 
3
3
  require 'rubygems'
4
4
  require 'jasmine'
5
- jasmine_config_overrides = File.expand_path(File.join(File.dirname(__FILE__), 'jasmine_config.rb'))
5
+ jasmine_config_overrides = File.expand_path(File.join(Dir.pwd, 'spec', 'javascripts', 'support', 'jasmine_config.rb'))
6
6
  require jasmine_config_overrides if File.exist?(jasmine_config_overrides)
7
7
  if Jasmine::Dependencies.rspec2?
8
8
  require 'rspec'
@@ -1,4 +1,5 @@
1
1
  require 'rack'
2
+ require 'rack/utils'
2
3
  require 'jasmine-core'
3
4
 
4
5
  module Jasmine
@@ -30,7 +31,7 @@ module Jasmine
30
31
  body = ERB.new(File.read(File.join(File.dirname(__FILE__), "run.html.erb"))).result(binding)
31
32
  [
32
33
  200,
33
- { 'Content-Type' => 'text/html', 'Cache-Control' => 'no-cache', 'Pragma' => 'no-cache' },
34
+ { 'Content-Type' => 'text/html', 'Pragma' => 'no-cache' },
34
35
  [body]
35
36
  ]
36
37
  end
@@ -71,9 +72,29 @@ module Jasmine
71
72
  end
72
73
  end
73
74
 
75
+ class CacheControl
76
+ def initialize(app)
77
+ @app, @content_type = app
78
+ end
79
+
80
+ def call(env)
81
+ status, headers, body = @app.call(env)
82
+ headers = Rack::Utils::HeaderHash.new(headers)
83
+ headers['Cache-Control'] ||= "max-age=0, private, must-revalidate"
84
+ [status, headers, body]
85
+ end
86
+ end
87
+
88
+
74
89
  def self.app(config)
75
90
  Rack::Builder.app do
76
91
  use Rack::Head
92
+ use Jasmine::CacheControl
93
+ if Jasmine::Dependencies.rails_3_asset_pipeline?
94
+ map('/assets') do
95
+ run Rails.application.assets
96
+ end
97
+ end
77
98
 
78
99
  map('/run.html') { run Jasmine::Redirect.new('/') }
79
100
  map('/__suite__') { run Jasmine::FocusedSuite.new(config) }
@@ -26,13 +26,16 @@ namespace :jasmine do
26
26
  RSpec::Core::RakeTask.new(:jasmine_continuous_integration_runner) do |t|
27
27
  t.rspec_opts = ["--colour", "--format", ENV['JASMINE_SPEC_FORMAT'] || "progress"]
28
28
  t.verbose = true
29
- t.pattern = ['spec/javascripts/support/jasmine_runner.rb']
29
+ if Jasmine::Dependencies.rails_3_asset_pipeline?
30
+ t.ruby_opts = ["-r #{File.expand_path(File.join(::Rails.root, 'config', 'environment'))}"]
31
+ end
32
+ t.pattern = [Jasmine.runner_filepath]
30
33
  end
31
34
  else
32
35
  Spec::Rake::SpecTask.new(:jasmine_continuous_integration_runner) do |t|
33
36
  t.spec_opts = ["--color", "--format", ENV['JASMINE_SPEC_FORMAT'] || "specdoc"]
34
37
  t.verbose = true
35
- t.spec_files = ['spec/javascripts/support/jasmine_runner.rb']
38
+ t.spec_files = [Jasmine.runner_filepath]
36
39
  end
37
40
  end
38
41
  Rake::Task["jasmine_continuous_integration_runner"].invoke
@@ -0,0 +1 @@
1
+ task "jasmine:require" => [:environment]
@@ -1,3 +1,3 @@
1
1
  module Jasmine
2
- VERSION = "1.1.2"
2
+ VERSION = "1.2.0.rc3"
3
3
  end
data/spec/config_spec.rb CHANGED
@@ -162,6 +162,18 @@ describe Jasmine::Config do
162
162
  end
163
163
  end
164
164
 
165
+ describe "should permit explicity-declared filenames to pass through regardless of their existence" do
166
+ before(:each) do
167
+ Dir.stub!(:glob).and_return { |glob_string| [] }
168
+ fake_config = Hash.new.stub!(:[]).and_return { |x| ["file1.ext", "!file2.ext", "**/*file3.ext"] }
169
+ @config.stub!(:simple_config).and_return(fake_config)
170
+ end
171
+
172
+ it "should contain explicitly files" do
173
+ @config.src_files.should == ["file1.ext"]
174
+ end
175
+ end
176
+
165
177
  describe "should allow .gitignore style negation (!pattern)" do
166
178
  before(:each) do
167
179
  Dir.stub!(:glob).and_return { |glob_string| [glob_string] }
@@ -305,4 +317,5 @@ describe Jasmine::Config do
305
317
  end
306
318
  end
307
319
  end
320
+
308
321
  end
@@ -3,54 +3,131 @@ require 'spec_helper'
3
3
  #rspec 1 fails to stub respond_to
4
4
  if Jasmine::Dependencies.rspec2?
5
5
  describe Jasmine::Dependencies do
6
+ module Rails
7
+ end
6
8
 
7
- context "with ruby gems > 1.8" do
9
+ context "with ruby_gems > 1.8" do
8
10
  before do
9
11
  Gem::Specification.should_receive(:respond_to?).with(:find_by_name).and_return(true)
10
12
  end
11
13
 
12
- context "and rspec 2" do
13
- before do
14
- Gem::Specification.should_receive(:find_by_name).with("rspec", ">= 2.0").and_raise(Gem::LoadError)
14
+ describe ".rspec2?" do
15
+ subject { Jasmine::Dependencies.rspec2? }
16
+ context "when rspec 2 is present" do
17
+ before do
18
+ Gem::Specification.should_receive(:find_by_name).with("rspec", ">= 2.0").and_return(true)
19
+ end
20
+ it { should be_true }
15
21
  end
16
- it "should return the correct results" do
17
- Jasmine::Dependencies.rspec2?.should be false
22
+ context "when rspec 2 is not present" do
23
+ before do
24
+ Gem::Specification.should_receive(:find_by_name).with("rspec", ">= 2.0").and_raise(Gem::LoadError)
25
+ end
26
+ it { should be_false }
18
27
  end
28
+ end
19
29
 
20
- it "should not raise an error" do
21
- lambda do
22
- Jasmine::Dependencies.rspec2?
23
- end.should_not raise_error(Gem::LoadError)
30
+ describe ".rails2?" do
31
+ subject { Jasmine::Dependencies.rails2? }
32
+ context "when rails 2 is present" do
33
+ before do
34
+ Gem::Specification.should_receive(:find_by_name).with("rails", "~> 2.3").and_return(true)
35
+ end
36
+ it { should be_true }
37
+ end
38
+ context "when rails 2 is not present" do
39
+ before do
40
+ Gem::Specification.should_receive(:find_by_name).with("rails", "~> 2.3").and_raise(Gem::LoadError)
41
+ end
42
+ it { should be_false }
24
43
  end
25
44
  end
26
45
 
27
- context "and rails 2" do
28
- before do
29
- Gem::Specification.should_receive(:find_by_name).with("rails", "~> 2.3").and_raise(Gem::LoadError)
46
+ describe ".legacy_rails?" do
47
+ subject { Jasmine::Dependencies.legacy_rails? }
48
+ context "when rails < 2.3.11 is present" do
49
+ before do
50
+ Gem::Specification.should_receive(:find_by_name).with("rails", "< 2.3.11").and_return(true)
51
+ end
52
+ it { should be_true }
30
53
  end
31
- it "should return the correct results" do
32
- Jasmine::Dependencies.rails2?.should be false
54
+ context "when rails < 2.3.11 is not present" do
55
+ before do
56
+ Gem::Specification.should_receive(:find_by_name).with("rails", "< 2.3.11").and_raise(Gem::LoadError)
57
+ end
58
+ it { should be_false }
33
59
  end
60
+ end
34
61
 
35
- it "should not raise an error" do
36
- lambda do
37
- Jasmine::Dependencies.rails2?
38
- end.should_not raise_error(Gem::LoadError)
62
+ describe ".rails3?" do
63
+ subject { Jasmine::Dependencies.rails3? }
64
+ context "when rails 3 is present" do
65
+ before do
66
+ Gem::Specification.should_receive(:find_by_name).with("rails", ">= 3.0").and_return(true)
67
+ end
68
+ it { should be_true }
69
+ end
70
+ context "when rails 3 is not present" do
71
+ before do
72
+ Gem::Specification.should_receive(:find_by_name).with("rails", ">= 3.0").and_raise(Gem::LoadError)
73
+ end
74
+ it { should be_false }
39
75
  end
40
76
  end
41
77
 
42
- context "and rails 3" do
78
+ describe ".rails_3_asset_pipeline?" do
79
+ subject { Jasmine::Dependencies.rails_3_asset_pipeline? }
80
+ let(:application) { double(:application) }
43
81
  before do
44
- Gem::Specification.should_receive(:find_by_name).with("rails", ">= 3.0").and_raise(Gem::LoadError)
82
+ Rails.stub(:respond_to?).with(:application).and_return(respond_to_application)
83
+ Rails.stub(:application).and_return(application)
45
84
  end
46
- it "should return the correct results" do
47
- Jasmine::Dependencies.rails3?.should be false
85
+ context "when rails 3 is present and the application pipeline is in use" do
86
+ before do
87
+ Gem::Specification.should_receive(:find_by_name).with("rails", ">= 3.0").and_return(true)
88
+ application.stub(:assets).and_return(rails_application_assets)
89
+ end
90
+ let(:rails3_present) { true }
91
+ let(:respond_to_application) { true }
92
+ let(:rails_application_assets) { true }
93
+ it { should be_true }
48
94
  end
49
-
50
- it "should not raise an error" do
51
- lambda do
52
- Jasmine::Dependencies.rails3?
53
- end.should_not raise_error(Gem::LoadError)
95
+ context "when rails 3 is present and the application pipeline is not in use" do
96
+ before do
97
+ Gem::Specification.should_receive(:find_by_name).with("rails", ">= 3.0").and_return(true)
98
+ application.stub(:assets).and_return(rails_application_assets)
99
+ end
100
+ let(:rails3_present) { true }
101
+ let(:respond_to_application) { true }
102
+ let(:rails_application_assets) { false }
103
+ it { should be_false }
104
+ end
105
+ context "when rails 3 is present but not loaded" do
106
+ before do
107
+ Gem::Specification.should_receive(:find_by_name).with("rails", ">= 3.0").and_return(true)
108
+ application.stub(:assets).and_return(rails_application_assets)
109
+ end
110
+ let(:rails3_present) { true }
111
+ let(:respond_to_application) { false }
112
+ let(:rails_application_assets) { false }
113
+ it { should be_false }
114
+ end
115
+ context "when rails 3 is present but doesn't respond to assets" do
116
+ before do
117
+ Gem::Specification.should_receive(:find_by_name).with("rails", ">= 3.0").and_return(true)
118
+ end
119
+ let(:rails3_present) { true }
120
+ let(:respond_to_application) { true }
121
+ it { should be_false }
122
+ end
123
+ context "when rails 3 is not present" do
124
+ before do
125
+ Gem::Specification.should_receive(:find_by_name).with("rails", ">= 3.0").and_raise(Gem::LoadError)
126
+ end
127
+ let(:rails3_present) { false }
128
+ let(:respond_to_application) { false }
129
+ let(:rails_application_assets) { false }
130
+ it { should be_false }
54
131
  end
55
132
  end
56
133
  end
@@ -59,28 +136,101 @@ if Jasmine::Dependencies.rspec2?
59
136
  before do
60
137
  Gem::Specification.should_receive(:respond_to?).with(:find_by_name).and_return(false)
61
138
  end
62
- context "and rspec 2" do
63
- it "should not break when it is not present" do
64
- Gem.should_receive(:available?).with("rspec", ">= 2.0").and_return false
65
- Jasmine::Dependencies.rspec2?.should be false
139
+
140
+ describe ".rspec2?" do
141
+ subject { Jasmine::Dependencies.rspec2? }
142
+ before do
143
+ Gem.should_receive(:available?).with("rspec", ">= 2.0").and_return(rspec2_present)
144
+ end
145
+ context "when rspec 2 is present" do
146
+ let(:rspec2_present) { true }
147
+ it { should be_true }
148
+ end
149
+ context "when rspec 2 is not present" do
150
+ let(:rspec2_present) { false }
151
+ it { should be_false }
152
+ end
153
+ end
154
+
155
+ describe ".rails2?" do
156
+ subject { Jasmine::Dependencies.rails2? }
157
+ before do
158
+ Gem.should_receive(:available?).with("rails", "~> 2.3").and_return(rails2_present)
159
+ end
160
+ context "when rails 2 is present" do
161
+ let(:rails2_present) { true }
162
+ it { should be_true }
163
+ end
164
+ context "when rails 2 is not present" do
165
+ let(:rails2_present) { false }
166
+ it { should be_false }
167
+ end
168
+ end
169
+
170
+ describe ".legacy_rails?" do
171
+ subject { Jasmine::Dependencies.legacy_rails? }
172
+ before do
173
+ Gem.should_receive(:available?).with("rails", "< 2.3.11").and_return(legacy_rails_present)
174
+ end
175
+ context "when rails < 2.3.11 is present" do
176
+ let(:legacy_rails_present) { true }
177
+ it { should be_true }
178
+ end
179
+ context "when rails < 2.3.11 is not present" do
180
+ let(:legacy_rails_present) { false }
181
+ it { should be_false }
66
182
  end
67
183
  end
68
184
 
69
- context "and rails 2" do
70
- it "should not break when it is not present" do
71
- Gem.should_receive(:available?).with("rails", "~> 2.3").and_return false
72
- Jasmine::Dependencies.rails2?.should be false
185
+ describe ".rails3?" do
186
+ subject { Jasmine::Dependencies.rails3? }
187
+ before do
188
+ Gem.should_receive(:available?).with("rails", ">= 3.0").and_return(rails3_present)
189
+ end
190
+ context "when rails 3 is present" do
191
+ let(:rails3_present) { true }
192
+ it { should be_true }
193
+ end
194
+ context "when rails 3 is not present" do
195
+ let(:rails3_present) { false }
196
+ it { should be_false }
73
197
  end
74
198
  end
75
199
 
76
- context "and rails 3" do
77
- it "should not break when it is not present" do
78
- Gem.should_receive(:available?).with("rails", ">= 3.0").and_return false
79
- Jasmine::Dependencies.rails3?.should be false
200
+ describe ".rails_3_asset_pipeline?" do
201
+ subject { Jasmine::Dependencies.rails_3_asset_pipeline? }
202
+ let(:application) { double(:application, :assets => rails_application_assets)}
203
+ before do
204
+ Gem.should_receive(:available?).with("rails", ">= 3.0").and_return(rails3_present)
205
+ Rails.stub(:respond_to?).with(:application).and_return(respond_to_application)
206
+ Rails.stub(:application).and_return(application)
207
+ end
208
+ context "when rails 3 is present and the application pipeline is in use" do
209
+ let(:rails3_present) { true }
210
+ let(:respond_to_application) { true }
211
+ let(:rails_application_assets) { true }
212
+ it { should be_true }
213
+ end
214
+ context "when rails 3 is present and the application pipeline is not in use" do
215
+ let(:rails3_present) { true }
216
+ let(:respond_to_application) { true }
217
+ let(:rails_application_assets) { false }
218
+ it { should be_false }
219
+ end
220
+ context "when rails 3 is present but not loaded" do
221
+ let(:rails3_present) { true }
222
+ let(:respond_to_application) { false }
223
+ let(:rails_application_assets) { false }
224
+ it { should be_false }
225
+ end
226
+ context "when rails 3 is not present" do
227
+ let(:rails3_present) { false }
228
+ let(:respond_to_application) { false }
229
+ let(:rails_application_assets) { false }
230
+ it { should be_false }
80
231
  end
81
232
  end
82
233
  end
83
234
 
84
235
  end
85
-
86
236
  end
@@ -21,8 +21,6 @@ describe "POJS jasmine install" do
21
21
 
22
22
  it "should find the Jasmine configuration files" do
23
23
  File.exists?("spec/javascripts/support/jasmine.yml").should == true
24
- File.exists?("spec/javascripts/support/jasmine_runner.rb").should == true
25
- File.exists?("spec/javascripts/support/jasmine_config.rb").should == true
26
24
  end
27
25
 
28
26
  it "should find the Jasmine example files" do
@@ -33,8 +31,6 @@ describe "POJS jasmine install" do
33
31
  File.exists?("spec/javascripts/helpers/SpecHelper.js").should == true
34
32
 
35
33
  File.exists?("spec/javascripts/support/jasmine.yml").should == true
36
- File.exists?("spec/javascripts/support/jasmine_runner.rb").should == true
37
- File.exists?("spec/javascripts/support/jasmine_config.rb").should == true
38
34
  end
39
35
 
40
36
  it "should show jasmine rake task" do
@@ -1,6 +1,6 @@
1
1
  require File.expand_path(File.join(File.dirname(__FILE__), "spec_helper"))
2
2
 
3
- if Jasmine::Dependencies.rails2?
3
+ if Jasmine::Dependencies.rails2? && !Jasmine::Dependencies.legacy_rails?
4
4
 
5
5
  describe "A Rails 2 app" do
6
6
 
@@ -17,7 +17,7 @@ if Jasmine::Dependencies.rails2?
17
17
 
18
18
  context "before Jasmine has been installed" do
19
19
 
20
- it "should not the jasmine:install generator" do
20
+ it "should not show the jasmine:install generator" do
21
21
  output = `./script/generate --help`
22
22
  output.should_not include('jasmine:install')
23
23
  end
@@ -62,8 +62,6 @@ if Jasmine::Dependencies.rails2?
62
62
 
63
63
  it "should find the Jasmine configuration files" do
64
64
  File.exists?("spec/javascripts/support/jasmine.yml").should == true
65
- File.exists?("spec/javascripts/support/jasmine_runner.rb").should == true
66
- File.exists?("spec/javascripts/support/jasmine_config.rb").should == true
67
65
  end
68
66
 
69
67
  it "should find the Jasmine example files" do
@@ -74,8 +72,6 @@ if Jasmine::Dependencies.rails2?
74
72
  File.exists?("spec/javascripts/helpers/SpecHelper.js").should == true
75
73
 
76
74
  File.exists?("spec/javascripts/support/jasmine.yml").should == true
77
- File.exists?("spec/javascripts/support/jasmine_runner.rb").should == true
78
- File.exists?("spec/javascripts/support/jasmine_config.rb").should == true
79
75
  end
80
76
 
81
77
  it "should show jasmine rake task" do
@@ -49,8 +49,6 @@ if Jasmine::Dependencies.rails3?
49
49
 
50
50
  File.exists?("spec/javascripts/helpers/.gitkeep").should == true
51
51
  File.exists?("spec/javascripts/support/jasmine.yml").should == true
52
- File.exists?("spec/javascripts/support/jasmine_runner.rb").should == true
53
- File.exists?("spec/javascripts/support/jasmine_config.rb").should == true
54
52
  end
55
53
  end
56
54
 
data/spec/server_spec.rb CHANGED
@@ -15,6 +15,12 @@ describe "Jasmine.app" do
15
15
  Jasmine.app(config)
16
16
  end
17
17
 
18
+ it "includes no-cache headers for specs" do
19
+ get "/__spec__/example_spec.js"
20
+ last_response.headers.should have_key("Cache-Control")
21
+ last_response.headers["Cache-Control"].should == "max-age=0, private, must-revalidate"
22
+ end
23
+
18
24
  it "should serve static files from spec dir under __spec__" do
19
25
  get "/__spec__/example_spec.js"
20
26
  last_response.status.should == 200
@@ -80,7 +86,7 @@ describe "Jasmine.app" do
80
86
 
81
87
  it "should tell the browser not to cache any assets" do
82
88
  head "/"
83
- ['Cache-Control', 'Pragma'].each do |key|
89
+ ['Pragma'].each do |key|
84
90
  last_response.headers[key].should == 'no-cache'
85
91
  end
86
92
  end
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jasmine
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
5
- prerelease:
4
+ version: 1.2.0.rc3
5
+ prerelease: 6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Rajan Agaskar
@@ -11,12 +11,11 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2011-10-27 00:00:00.000000000 -07:00
15
- default_executable:
14
+ date: 2012-04-04 00:00:00.000000000 Z
16
15
  dependencies:
17
16
  - !ruby/object:Gem::Dependency
18
17
  name: rspec
19
- requirement: &70282392007960 !ruby/object:Gem::Requirement
18
+ requirement: &70119527196580 !ruby/object:Gem::Requirement
20
19
  none: false
21
20
  requirements:
22
21
  - - ! '>='
@@ -24,10 +23,10 @@ dependencies:
24
23
  version: 2.5.0
25
24
  type: :development
26
25
  prerelease: false
27
- version_requirements: *70282392007960
26
+ version_requirements: *70119527196580
28
27
  - !ruby/object:Gem::Dependency
29
28
  name: rails
30
- requirement: &70282392004820 !ruby/object:Gem::Requirement
29
+ requirement: &70119527211980 !ruby/object:Gem::Requirement
31
30
  none: false
32
31
  requirements:
33
32
  - - ! '>='
@@ -35,10 +34,10 @@ dependencies:
35
34
  version: 3.0.0
36
35
  type: :development
37
36
  prerelease: false
38
- version_requirements: *70282392004820
37
+ version_requirements: *70119527211980
39
38
  - !ruby/object:Gem::Dependency
40
39
  name: rack
41
- requirement: &70282392002860 !ruby/object:Gem::Requirement
40
+ requirement: &70119527210920 !ruby/object:Gem::Requirement
42
41
  none: false
43
42
  requirements:
44
43
  - - ! '>='
@@ -46,10 +45,10 @@ dependencies:
46
45
  version: 1.2.1
47
46
  type: :development
48
47
  prerelease: false
49
- version_requirements: *70282392002860
48
+ version_requirements: *70119527210920
50
49
  - !ruby/object:Gem::Dependency
51
50
  name: rack-test
52
- requirement: &70282392001920 !ruby/object:Gem::Requirement
51
+ requirement: &70119527210060 !ruby/object:Gem::Requirement
53
52
  none: false
54
53
  requirements:
55
54
  - - ! '>='
@@ -57,21 +56,10 @@ dependencies:
57
56
  version: '0'
58
57
  type: :development
59
58
  prerelease: false
60
- version_requirements: *70282392001920
61
- - !ruby/object:Gem::Dependency
62
- name: ci_reporter
63
- requirement: &70282392000880 !ruby/object:Gem::Requirement
64
- none: false
65
- requirements:
66
- - - ! '>='
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- type: :development
70
- prerelease: false
71
- version_requirements: *70282392000880
59
+ version_requirements: *70119527210060
72
60
  - !ruby/object:Gem::Dependency
73
61
  name: json_pure
74
- requirement: &70282391999500 !ruby/object:Gem::Requirement
62
+ requirement: &70119527209120 !ruby/object:Gem::Requirement
75
63
  none: false
76
64
  requirements:
77
65
  - - ! '>='
@@ -79,32 +67,32 @@ dependencies:
79
67
  version: '0'
80
68
  type: :development
81
69
  prerelease: false
82
- version_requirements: *70282391999500
70
+ version_requirements: *70119527209120
83
71
  - !ruby/object:Gem::Dependency
84
72
  name: jasmine-core
85
- requirement: &70282391997920 !ruby/object:Gem::Requirement
73
+ requirement: &70119527208320 !ruby/object:Gem::Requirement
86
74
  none: false
87
75
  requirements:
88
76
  - - ! '>='
89
77
  - !ruby/object:Gem::Version
90
- version: 1.1.0
78
+ version: 1.2.0.rc3
91
79
  type: :runtime
92
80
  prerelease: false
93
- version_requirements: *70282391997920
81
+ version_requirements: *70119527208320
94
82
  - !ruby/object:Gem::Dependency
95
83
  name: rack
96
- requirement: &70282391996620 !ruby/object:Gem::Requirement
84
+ requirement: &70119527207280 !ruby/object:Gem::Requirement
97
85
  none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - ~>
100
88
  - !ruby/object:Gem::Version
101
- version: '1.1'
89
+ version: '1.0'
102
90
  type: :runtime
103
91
  prerelease: false
104
- version_requirements: *70282391996620
92
+ version_requirements: *70119527207280
105
93
  - !ruby/object:Gem::Dependency
106
94
  name: rspec
107
- requirement: &70282391995520 !ruby/object:Gem::Requirement
95
+ requirement: &70119527206480 !ruby/object:Gem::Requirement
108
96
  none: false
109
97
  requirements:
110
98
  - - ! '>='
@@ -112,10 +100,10 @@ dependencies:
112
100
  version: 1.3.1
113
101
  type: :runtime
114
102
  prerelease: false
115
- version_requirements: *70282391995520
103
+ version_requirements: *70119527206480
116
104
  - !ruby/object:Gem::Dependency
117
105
  name: selenium-webdriver
118
- requirement: &70282391994420 !ruby/object:Gem::Requirement
106
+ requirement: &70119527205400 !ruby/object:Gem::Requirement
119
107
  none: false
120
108
  requirements:
121
109
  - - ! '>='
@@ -123,7 +111,7 @@ dependencies:
123
111
  version: 0.1.3
124
112
  type: :runtime
125
113
  prerelease: false
126
- version_requirements: *70282391994420
114
+ version_requirements: *70119527205400
127
115
  description: Test your JavaScript without any framework dependencies, in any environment,
128
116
  and with a nice descriptive syntax.
129
117
  email: jasmine-js@googlegroups.com
@@ -133,6 +121,7 @@ extensions: []
133
121
  extra_rdoc_files: []
134
122
  files:
135
123
  - .gitignore
124
+ - .travis.yml
136
125
  - Gemfile
137
126
  - HOW_TO_TEST.markdown
138
127
  - MIT.LICENSE
@@ -150,8 +139,6 @@ files:
150
139
  - generators/jasmine/templates/lib/tasks/jasmine.rake
151
140
  - generators/jasmine/templates/spec/javascripts/support/jasmine-rails.yml
152
141
  - generators/jasmine/templates/spec/javascripts/support/jasmine.yml
153
- - generators/jasmine/templates/spec/javascripts/support/jasmine_config.rb
154
- - generators/jasmine/templates/spec/javascripts/support/jasmine_runner.rb
155
142
  - jasmine.gemspec
156
143
  - lib/generators/jasmine/examples/USAGE
157
144
  - lib/generators/jasmine/examples/examples_generator.rb
@@ -163,15 +150,10 @@ files:
163
150
  - lib/generators/jasmine/install/install_generator.rb
164
151
  - lib/generators/jasmine/install/templates/spec/javascripts/helpers/.gitkeep
165
152
  - lib/generators/jasmine/install/templates/spec/javascripts/support/jasmine.yml
166
- - lib/generators/jasmine/install/templates/spec/javascripts/support/jasmine_config.rb
167
- - lib/generators/jasmine/install/templates/spec/javascripts/support/jasmine_runner.rb
168
- - lib/generators/jasmine/jasmine_generator.rb
169
153
  - lib/generators/jasmine/templates/INSTALL
170
154
  - lib/generators/jasmine/templates/lib/tasks/jasmine.rake
171
155
  - lib/generators/jasmine/templates/spec/javascripts/support/jasmine-rails.yml
172
156
  - lib/generators/jasmine/templates/spec/javascripts/support/jasmine.yml
173
- - lib/generators/jasmine/templates/spec/javascripts/support/jasmine_config.rb
174
- - lib/generators/jasmine/templates/spec/javascripts/support/jasmine_runner.rb
175
157
  - lib/jasmine.rb
176
158
  - lib/jasmine/base.rb
177
159
  - lib/jasmine/command_line_tool.rb
@@ -183,10 +165,12 @@ files:
183
165
  - lib/jasmine/firebug/firebug.rb
184
166
  - lib/jasmine/railtie.rb
185
167
  - lib/jasmine/run.html.erb
168
+ - lib/jasmine/runner.rb
186
169
  - lib/jasmine/selenium_driver.rb
187
170
  - lib/jasmine/server.rb
188
171
  - lib/jasmine/spec_builder.rb
189
172
  - lib/jasmine/tasks/jasmine.rake
173
+ - lib/jasmine/tasks/jasmine_rails3.rake
190
174
  - lib/jasmine/version.rb
191
175
  - spec/config_spec.rb
192
176
  - spec/dependencies_spec.rb
@@ -203,7 +187,6 @@ files:
203
187
  - spec/jasmine_self_test_spec.rb
204
188
  - spec/server_spec.rb
205
189
  - spec/spec_helper.rb
206
- has_rdoc: true
207
190
  homepage: http://pivotal.github.com/jasmine
208
191
  licenses: []
209
192
  post_install_message:
@@ -219,19 +202,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
219
202
  version: '0'
220
203
  segments:
221
204
  - 0
222
- hash: -2801835989228056808
205
+ hash: 4256175879128965687
223
206
  required_rubygems_version: !ruby/object:Gem::Requirement
224
207
  none: false
225
208
  requirements:
226
- - - ! '>='
209
+ - - ! '>'
227
210
  - !ruby/object:Gem::Version
228
- version: '0'
229
- segments:
230
- - 0
231
- hash: -2801835989228056808
211
+ version: 1.3.1
232
212
  requirements: []
233
213
  rubyforge_project:
234
- rubygems_version: 1.6.2
214
+ rubygems_version: 1.8.10
235
215
  signing_key:
236
216
  specification_version: 3
237
217
  summary: JavaScript BDD framework
@@ -1,23 +0,0 @@
1
- module Jasmine
2
- class Config
3
-
4
- # Add your overrides or custom config code here
5
-
6
- end
7
- end
8
-
9
-
10
- # Note - this is necessary for rspec2, which has removed the backtrace
11
- module Jasmine
12
- class SpecBuilder
13
- def declare_spec(parent, spec)
14
- me = self
15
- example_name = spec["name"]
16
- @spec_ids << spec["id"]
17
- backtrace = @example_locations[parent.description + " " + example_name]
18
- parent.it example_name, {} do
19
- me.report_spec(spec["id"])
20
- end
21
- end
22
- end
23
- end
@@ -1,32 +0,0 @@
1
- $:.unshift(ENV['JASMINE_GEM_PATH']) if ENV['JASMINE_GEM_PATH'] # for gem testing purposes
2
-
3
- require 'rubygems'
4
- require 'jasmine'
5
- jasmine_config_overrides = File.expand_path(File.join(File.dirname(__FILE__), 'jasmine_config.rb'))
6
- require jasmine_config_overrides if File.exist?(jasmine_config_overrides)
7
- if Jasmine::Dependencies.rspec2?
8
- require 'rspec'
9
- else
10
- require 'spec'
11
- end
12
-
13
- jasmine_config = Jasmine::Config.new
14
- spec_builder = Jasmine::SpecBuilder.new(jasmine_config)
15
-
16
- should_stop = false
17
-
18
- if Jasmine::Dependencies.rspec2?
19
- RSpec.configuration.after(:suite) do
20
- spec_builder.stop if should_stop
21
- end
22
- else
23
- Spec::Runner.configure do |config|
24
- config.after(:suite) do
25
- spec_builder.stop if should_stop
26
- end
27
- end
28
- end
29
-
30
- spec_builder.start
31
- should_stop = true
32
- spec_builder.declare_suites
@@ -1,23 +0,0 @@
1
- module Jasmine
2
- class Config
3
-
4
- # Add your overrides or custom config code here
5
-
6
- end
7
- end
8
-
9
-
10
- # Note - this is necessary for rspec2, which has removed the backtrace
11
- module Jasmine
12
- class SpecBuilder
13
- def declare_spec(parent, spec)
14
- me = self
15
- example_name = spec["name"]
16
- @spec_ids << spec["id"]
17
- backtrace = @example_locations[parent.description + " " + example_name]
18
- parent.it example_name, {} do
19
- me.report_spec(spec["id"])
20
- end
21
- end
22
- end
23
- end
@@ -1,20 +0,0 @@
1
- $:.unshift(ENV['JASMINE_GEM_PATH']) if ENV['JASMINE_GEM_PATH'] # for gem testing purposes
2
-
3
- require 'rubygems'
4
- require 'jasmine'
5
- require 'rspec'
6
- jasmine_config_overrides = File.expand_path(File.join(File.dirname(__FILE__), 'jasmine_config.rb'))
7
- require jasmine_config_overrides if File.exists?(jasmine_config_overrides)
8
-
9
- jasmine_config = Jasmine::Config.new
10
- spec_builder = Jasmine::SpecBuilder.new(jasmine_config)
11
-
12
- should_stop = false
13
-
14
- RSpec.configuration.after(:suite) do
15
- spec_builder.stop if should_stop
16
- end
17
-
18
- spec_builder.start
19
- should_stop = true
20
- spec_builder.declare_suites
@@ -1,32 +0,0 @@
1
- class JasmineGenerator < Rails::Generator::Base
2
- def manifest
3
- m = ::Rails::Generator::Manifest.new
4
-
5
- m.directory "public/javascripts"
6
- m.file "jasmine-example/src/Player.js", "public/javascripts/Player.js"
7
- m.file "jasmine-example/src/Song.js", "public/javascripts/Song.js"
8
-
9
- m.directory "spec/javascripts"
10
- m.file "jasmine-example/spec/PlayerSpec.js", "spec/javascripts/PlayerSpec.js"
11
-
12
- m.directory "spec/javascripts/helpers"
13
- m.file "jasmine-example/spec/SpecHelper.js", "spec/javascripts/helpers/SpecHelper.js"
14
-
15
- m.directory "spec/javascripts/support"
16
- m.file "spec/javascripts/support/jasmine_runner.rb", "spec/javascripts/support/jasmine_runner.rb"
17
- m.file "spec/javascripts/support/jasmine_config.rb", "spec/javascripts/support/jasmine_config.rb"
18
- m.file "spec/javascripts/support/jasmine-rails.yml", "spec/javascripts/support/jasmine.yml"
19
- m.readme "INSTALL"
20
-
21
- unless ::Rails::VERSION::STRING[0,1] == "3"
22
- m.directory "lib/tasks"
23
- m.file "lib/tasks/jasmine.rake", "lib/tasks/jasmine.rake"
24
- end
25
- m
26
- end
27
-
28
- def file_name
29
- "create_blog"
30
- end
31
-
32
- end
@@ -1,23 +0,0 @@
1
- module Jasmine
2
- class Config
3
-
4
- # Add your overrides or custom config code here
5
-
6
- end
7
- end
8
-
9
-
10
- # Note - this is necessary for rspec2, which has removed the backtrace
11
- module Jasmine
12
- class SpecBuilder
13
- def declare_spec(parent, spec)
14
- me = self
15
- example_name = spec["name"]
16
- @spec_ids << spec["id"]
17
- backtrace = @example_locations[parent.description + " " + example_name]
18
- parent.it example_name, {} do
19
- me.report_spec(spec["id"])
20
- end
21
- end
22
- end
23
- end