edgecase-jasmine 1.0.1.1

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.
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