edgecase-jasmine 1.0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. data/README.markdown +45 -0
  2. data/bin/jasmine +6 -0
  3. data/generators/jasmine/jasmine_generator.rb +30 -0
  4. data/generators/jasmine/templates/INSTALL +9 -0
  5. data/generators/jasmine/templates/jasmine-example/SpecRunner.html +27 -0
  6. data/generators/jasmine/templates/jasmine-example/spec/PlayerSpec.js +58 -0
  7. data/generators/jasmine/templates/jasmine-example/spec/SpecHelper.js +9 -0
  8. data/generators/jasmine/templates/jasmine-example/src/Player.js +22 -0
  9. data/generators/jasmine/templates/jasmine-example/src/Song.js +7 -0
  10. data/generators/jasmine/templates/lib/tasks/jasmine.rake +2 -0
  11. data/generators/jasmine/templates/spec/javascripts/support/jasmine-rails.yml +81 -0
  12. data/generators/jasmine/templates/spec/javascripts/support/jasmine.yml +73 -0
  13. data/generators/jasmine/templates/spec/javascripts/support/jasmine_runner.rb +21 -0
  14. data/jasmine/example/SpecRunner.html +27 -0
  15. data/jasmine/lib/jasmine-html.js +188 -0
  16. data/jasmine/lib/jasmine.css +166 -0
  17. data/jasmine/lib/jasmine.js +2421 -0
  18. data/jasmine/lib/json2.js +478 -0
  19. data/lib/jasmine.rb +8 -0
  20. data/lib/jasmine/base.rb +59 -0
  21. data/lib/jasmine/command_line_tool.rb +68 -0
  22. data/lib/jasmine/config.rb +186 -0
  23. data/lib/jasmine/run.html.erb +43 -0
  24. data/lib/jasmine/selenium_driver.rb +44 -0
  25. data/lib/jasmine/server.rb +120 -0
  26. data/lib/jasmine/spec_builder.rb +152 -0
  27. data/lib/jasmine/tasks/jasmine.rake +31 -0
  28. data/spec/config_spec.rb +259 -0
  29. data/spec/jasmine_command_line_tool_spec.rb +26 -0
  30. data/spec/jasmine_self_test_config.rb +15 -0
  31. data/spec/jasmine_self_test_spec.rb +18 -0
  32. data/spec/rails_generator_spec.rb +27 -0
  33. data/spec/server_spec.rb +82 -0
  34. data/spec/spec_helper.rb +40 -0
  35. metadata +204 -0
@@ -0,0 +1,15 @@
1
+ require 'jasmine'
2
+
3
+ class JasmineSelfTestConfig < Jasmine::Config
4
+ def project_root
5
+ File.expand_path(File.join(File.dirname(__FILE__), ".."))
6
+ end
7
+
8
+ def src_dir
9
+ File.join(project_root, 'src')
10
+ end
11
+
12
+ def spec_dir
13
+ File.join(project_root, 'jasmine/spec')
14
+ end
15
+ end
@@ -0,0 +1,18 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), "spec_helper"))
2
+
3
+ require 'jasmine_self_test_config'
4
+
5
+ jasmine_config = JasmineSelfTestConfig.new
6
+ spec_builder = Jasmine::SpecBuilder.new(jasmine_config)
7
+
8
+ should_stop = false
9
+
10
+ Spec::Runner.configure do |config|
11
+ config.after(:suite) do
12
+ spec_builder.stop if should_stop
13
+ end
14
+ end
15
+
16
+ spec_builder.start
17
+ should_stop = true
18
+ spec_builder.declare_suites
@@ -0,0 +1,27 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), "spec_helper"))
2
+
3
+ describe "Jasmine rails generator" do
4
+ before :each do
5
+ temp_dir_before
6
+ Dir::chdir @tmp
7
+ end
8
+
9
+ after :each do
10
+ temp_dir_after
11
+ end
12
+
13
+ it "should create files on init" do
14
+ `rails rails-project`
15
+ Dir::chdir 'rails-project'
16
+
17
+ FileUtils.cp_r(File.join(@root, 'generators'), 'vendor')
18
+
19
+ output = `./script/generate jasmine`
20
+ output.should =~ /Jasmine has been installed with example specs./
21
+
22
+ bootstrap = "$:.unshift('#{@root}/lib')"
23
+ ENV['JASMINE_GEM_PATH'] = "#{@root}/lib"
24
+ ci_output = `rake -E \"#{bootstrap}\" --trace jasmine:ci`
25
+ ci_output.should =~ (/[1-9][0-9]* examples, 0 failures/)
26
+ end
27
+ end
@@ -0,0 +1,82 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), "spec_helper"))
2
+ require 'rack/test'
3
+
4
+ describe "Jasmine.app" do
5
+ include Rack::Test::Methods
6
+
7
+ def app
8
+ config = Jasmine::Config.new
9
+ config.stub!(:project_root).and_return(Jasmine.root)
10
+ config.stub!(:spec_dir).and_return(File.join(Jasmine.root, "spec"))
11
+ config.stub!(:src_dir).and_return(File.join(Jasmine.root, "src"))
12
+ config.stub!(:src_files).and_return(["file1.js"])
13
+ config.stub!(:spec_files).and_return(["file2.js"])
14
+ Jasmine.app(config)
15
+ end
16
+
17
+ it "should serve static files from spec dir under __spec__" do
18
+ get "/__spec__/suites/EnvSpec.js"
19
+ last_response.status.should == 200
20
+ last_response.content_type.should == "application/javascript"
21
+ last_response.body.should == File.read(File.join(Jasmine.root, "spec/suites/EnvSpec.js"))
22
+ end
23
+
24
+ it "should serve static files from root dir under __root__" do
25
+ get "/__root__/src/base.js"
26
+ last_response.status.should == 200
27
+ last_response.content_type.should == "application/javascript"
28
+ last_response.body.should == File.read(File.join(Jasmine.root, "src/base.js"))
29
+ end
30
+
31
+ it "should serve static files from src dir under /" do
32
+ get "/base.js"
33
+ last_response.status.should == 200
34
+ last_response.content_type.should == "application/javascript"
35
+ last_response.body.should == File.read(File.join(Jasmine.root, "src/base.js"))
36
+ end
37
+
38
+ it "should serve Jasmine static files under /__JASMINE_ROOT__/" do
39
+ get "/__JASMINE_ROOT__/lib/jasmine.css"
40
+ last_response.status.should == 200
41
+ last_response.content_type.should == "text/css"
42
+ last_response.body.should == File.read(File.join(Jasmine.root, "lib/jasmine.css"))
43
+ end
44
+
45
+ it "should serve focused suites when prefixing spec files with /__suite__/" do
46
+ Dir.stub!(:glob).and_return do |glob_string|
47
+ [glob_string]
48
+ end
49
+ get "/__suite__/file2.js"
50
+ last_response.status.should == 200
51
+ last_response.content_type.should == "text/html"
52
+ last_response.body.should include("\"/__spec__/file2.js")
53
+ end
54
+
55
+ it "should redirect /run.html to /" do
56
+ get "/run.html"
57
+ last_response.status.should == 302
58
+ last_response.location.should == "/"
59
+ end
60
+
61
+ it "should 404 non-existent files" do
62
+ get "/some-non-existent-file"
63
+ last_response.should be_not_found
64
+ end
65
+
66
+ describe "/ page" do
67
+ it "should load each js file in order" do
68
+ get "/"
69
+ last_response.status.should == 200
70
+ last_response.body.should include("\"/file1.js")
71
+ last_response.body.should include("\"/__spec__/file2.js")
72
+ last_response.body.should satisfy {|s| s.index("/file1.js") < s.index("/__spec__/file2.js") }
73
+ end
74
+
75
+ it "should return an empty 200 for HEAD requests to /" do
76
+ head "/"
77
+ last_response.status.should == 200
78
+ last_response.headers.should == { 'Content-Type' => 'text/html' }
79
+ last_response.body.should == ''
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,40 @@
1
+ require "rubygems"
2
+ require "bundler"
3
+ require 'stringio'
4
+
5
+ Bundler.setup(:default, :test)
6
+
7
+ require 'spec'
8
+
9
+ $:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "../lib")))
10
+
11
+ require "jasmine"
12
+
13
+ def create_temp_dir
14
+ tmp = File.join(Dir.tmpdir, 'jasmine-gem-test')
15
+ FileUtils.rm_r(tmp, :force => true)
16
+ FileUtils.mkdir(tmp)
17
+ tmp
18
+ end
19
+
20
+ def temp_dir_before
21
+ @root = File.expand_path(File.join(File.dirname(__FILE__), ".."))
22
+ @old_dir = Dir::pwd
23
+ @tmp = create_temp_dir
24
+ end
25
+
26
+ def temp_dir_after
27
+ Dir::chdir @old_dir
28
+ FileUtils.rm_r @tmp
29
+ end
30
+
31
+ module Kernel
32
+ def capture_stdout
33
+ out = StringIO.new
34
+ $stdout = out
35
+ yield
36
+ return out.string
37
+ ensure
38
+ $stdout = STDOUT
39
+ end
40
+ end
metadata ADDED
@@ -0,0 +1,204 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: edgecase-jasmine
3
+ version: !ruby/object:Gem::Version
4
+ hash: 89
5
+ prerelease: false
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 1
10
+ - 1
11
+ version: 1.0.1.1
12
+ platform: ruby
13
+ authors:
14
+ - Rajan Agaskar
15
+ - Christian Williams
16
+ - Davis Frank
17
+ autorequire:
18
+ bindir: bin
19
+ cert_chain: []
20
+
21
+ date: 2010-11-03 00:00:00 -04:00
22
+ default_executable: jasmine
23
+ dependencies:
24
+ - !ruby/object:Gem::Dependency
25
+ prerelease: false
26
+ type: :runtime
27
+ name: rake
28
+ version_requirements: &id001 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ hash: 49
34
+ segments:
35
+ - 0
36
+ - 8
37
+ - 7
38
+ version: 0.8.7
39
+ requirement: *id001
40
+ - !ruby/object:Gem::Dependency
41
+ prerelease: false
42
+ type: :runtime
43
+ name: rspec
44
+ version_requirements: &id002 !ruby/object:Gem::Requirement
45
+ none: false
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ hash: 25
50
+ segments:
51
+ - 1
52
+ - 1
53
+ - 5
54
+ version: 1.1.5
55
+ requirement: *id002
56
+ - !ruby/object:Gem::Dependency
57
+ prerelease: false
58
+ type: :runtime
59
+ name: rack
60
+ version_requirements: &id003 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ hash: 23
66
+ segments:
67
+ - 1
68
+ - 0
69
+ - 0
70
+ version: 1.0.0
71
+ requirement: *id003
72
+ - !ruby/object:Gem::Dependency
73
+ prerelease: false
74
+ type: :runtime
75
+ name: selenium-rc
76
+ version_requirements: &id004 !ruby/object:Gem::Requirement
77
+ none: false
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ hash: 11
82
+ segments:
83
+ - 2
84
+ - 1
85
+ - 0
86
+ version: 2.1.0
87
+ requirement: *id004
88
+ - !ruby/object:Gem::Dependency
89
+ prerelease: false
90
+ type: :runtime
91
+ name: selenium-client
92
+ version_requirements: &id005 !ruby/object:Gem::Requirement
93
+ none: false
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ hash: 61
98
+ segments:
99
+ - 1
100
+ - 2
101
+ - 17
102
+ version: 1.2.17
103
+ requirement: *id005
104
+ - !ruby/object:Gem::Dependency
105
+ prerelease: false
106
+ type: :runtime
107
+ name: multi_json
108
+ version_requirements: &id006 !ruby/object:Gem::Requirement
109
+ none: false
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ hash: 23
114
+ segments:
115
+ - 0
116
+ - 0
117
+ - 4
118
+ version: 0.0.4
119
+ requirement: *id006
120
+ description: Javascript BDD test framework
121
+ email: jasmine-js@googlegroups.com
122
+ executables:
123
+ - jasmine
124
+ extensions: []
125
+
126
+ extra_rdoc_files:
127
+ - README.markdown
128
+ files:
129
+ - generators/jasmine/jasmine_generator.rb
130
+ - generators/jasmine/templates/INSTALL
131
+ - generators/jasmine/templates/jasmine-example/SpecRunner.html
132
+ - generators/jasmine/templates/jasmine-example/spec/PlayerSpec.js
133
+ - generators/jasmine/templates/jasmine-example/spec/SpecHelper.js
134
+ - generators/jasmine/templates/jasmine-example/src/Player.js
135
+ - generators/jasmine/templates/jasmine-example/src/Song.js
136
+ - generators/jasmine/templates/lib/tasks/jasmine.rake
137
+ - generators/jasmine/templates/spec/javascripts/support/jasmine-rails.yml
138
+ - generators/jasmine/templates/spec/javascripts/support/jasmine.yml
139
+ - generators/jasmine/templates/spec/javascripts/support/jasmine_runner.rb
140
+ - jasmine/example/SpecRunner.html
141
+ - jasmine/lib/jasmine-html.js
142
+ - jasmine/lib/jasmine.css
143
+ - jasmine/lib/jasmine.js
144
+ - jasmine/lib/json2.js
145
+ - lib/jasmine.rb
146
+ - lib/jasmine/base.rb
147
+ - lib/jasmine/command_line_tool.rb
148
+ - lib/jasmine/config.rb
149
+ - lib/jasmine/run.html.erb
150
+ - lib/jasmine/selenium_driver.rb
151
+ - lib/jasmine/server.rb
152
+ - lib/jasmine/spec_builder.rb
153
+ - lib/jasmine/tasks/jasmine.rake
154
+ - README.markdown
155
+ - spec/config_spec.rb
156
+ - spec/jasmine_command_line_tool_spec.rb
157
+ - spec/jasmine_self_test_config.rb
158
+ - spec/jasmine_self_test_spec.rb
159
+ - spec/rails_generator_spec.rb
160
+ - spec/server_spec.rb
161
+ - spec/spec_helper.rb
162
+ - bin/jasmine
163
+ has_rdoc: true
164
+ homepage: http://pivotal.github.com/jasmine
165
+ licenses: []
166
+
167
+ post_install_message:
168
+ rdoc_options:
169
+ - --charset=UTF-8
170
+ require_paths:
171
+ - lib
172
+ required_ruby_version: !ruby/object:Gem::Requirement
173
+ none: false
174
+ requirements:
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ hash: 3
178
+ segments:
179
+ - 0
180
+ version: "0"
181
+ required_rubygems_version: !ruby/object:Gem::Requirement
182
+ none: false
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ hash: 3
187
+ segments:
188
+ - 0
189
+ version: "0"
190
+ requirements: []
191
+
192
+ rubyforge_project:
193
+ rubygems_version: 1.3.7
194
+ signing_key:
195
+ specification_version: 3
196
+ summary: Jasmine Runner for Ruby
197
+ test_files:
198
+ - spec/config_spec.rb
199
+ - spec/jasmine_command_line_tool_spec.rb
200
+ - spec/jasmine_self_test_config.rb
201
+ - spec/jasmine_self_test_spec.rb
202
+ - spec/rails_generator_spec.rb
203
+ - spec/server_spec.rb
204
+ - spec/spec_helper.rb