rsutphin-shenandoah 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. data/.braids +8 -0
  2. data/.document +5 -0
  3. data/.gitignore +6 -0
  4. data/ChangeLog.markdown +13 -0
  5. data/LICENSE +20 -0
  6. data/LICENSE-Blue-Ridge +20 -0
  7. data/LICENSE-Screw.Unit +22 -0
  8. data/LICENSE-Smoke +22 -0
  9. data/README.markdown +280 -0
  10. data/Rakefile +71 -0
  11. data/VERSION.yml +4 -0
  12. data/lib/shenandoah/buildr.rb +9 -0
  13. data/lib/shenandoah/buildr/locator.rb +17 -0
  14. data/lib/shenandoah/buildr/shenandoah_tasks.rb +18 -0
  15. data/lib/shenandoah/buildr/test_framework.rb +28 -0
  16. data/lib/shenandoah/css/screw.css +90 -0
  17. data/lib/shenandoah/javascript/browser/runner.js +34 -0
  18. data/lib/shenandoah/javascript/common/jquery-1.3.2.js +4376 -0
  19. data/lib/shenandoah/javascript/common/jquery.fn.js +29 -0
  20. data/lib/shenandoah/javascript/common/jquery.print.js +109 -0
  21. data/lib/shenandoah/javascript/common/screw.behaviors.js +129 -0
  22. data/lib/shenandoah/javascript/common/screw.builder.js +104 -0
  23. data/lib/shenandoah/javascript/common/screw.events.js +45 -0
  24. data/lib/shenandoah/javascript/common/screw.matchers.js +254 -0
  25. data/lib/shenandoah/javascript/common/screw.mocking.js +22 -0
  26. data/lib/shenandoah/javascript/common/smoke.core.js +6 -0
  27. data/lib/shenandoah/javascript/common/smoke.mock.js +130 -0
  28. data/lib/shenandoah/javascript/common/smoke.stub.js +29 -0
  29. data/lib/shenandoah/javascript/console/consoleReportForRake.js +32 -0
  30. data/lib/shenandoah/javascript/console/env.rhino.js +8841 -0
  31. data/lib/shenandoah/javascript/console/js.jar +0 -0
  32. data/lib/shenandoah/javascript/console/runner.js +43 -0
  33. data/lib/shenandoah/javascript/console/shell.js.erb +23 -0
  34. data/lib/shenandoah/locator.rb +17 -0
  35. data/lib/shenandoah/rails/locator.rb +27 -0
  36. data/lib/shenandoah/rails/tasks.rb +16 -0
  37. data/lib/shenandoah/runner.rb +69 -0
  38. data/lib/shenandoah/server.rb +88 -0
  39. data/lib/shenandoah/server/views/index.haml +12 -0
  40. data/lib/shenandoah/tasks.rb +62 -0
  41. data/rails_generators/shen_spec/shen_spec_generator.rb +27 -0
  42. data/rails_generators/shen_spec/templates/fixture.html.erb +13 -0
  43. data/rails_generators/shen_spec/templates/javascript_spec.js.erb +8 -0
  44. data/rails_generators/shenandoah/shenandoah_generator.rb +21 -0
  45. data/rails_generators/shenandoah/templates/application.html +16 -0
  46. data/rails_generators/shenandoah/templates/application_spec.js +14 -0
  47. data/rails_generators/shenandoah/templates/shenandoah.rake +2 -0
  48. data/rails_generators/shenandoah/templates/spec_helper.js +1 -0
  49. data/shenandoah.gemspec +155 -0
  50. data/spec/rails_generators/shen_spec_generator_spec.rb +81 -0
  51. data/spec/rails_generators/shenandoah_generator_spec.rb +80 -0
  52. data/spec/rails_generators/spec_helper.rb +21 -0
  53. data/spec/shenandoah/buildr/locator_spec.rb +33 -0
  54. data/spec/shenandoah/buildr/shenandoah_tasks_spec.rb +27 -0
  55. data/spec/shenandoah/buildr/spec_helper.rb +2 -0
  56. data/spec/shenandoah/buildr/test_framework_spec.rb +77 -0
  57. data/spec/shenandoah/locator_spec.rb +74 -0
  58. data/spec/shenandoah/rails/locator_spec.rb +57 -0
  59. data/spec/shenandoah/rails/tasks_spec.rb +32 -0
  60. data/spec/shenandoah/runner_spec.rb +110 -0
  61. data/spec/shenandoah/server_spec.rb +216 -0
  62. data/spec/shenandoah/tasks_spec.rb +85 -0
  63. data/spec/spec_helper.rb +61 -0
  64. metadata +262 -0
@@ -0,0 +1,85 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ require 'shenandoah/tasks'
4
+ require 'shenandoah/locator'
5
+ require 'shenandoah/rails/locator'
6
+
7
+ describe Shenandoah::Tasks do
8
+ describe "init" do
9
+ include Shenandoah::Spec::Tmpfile
10
+
11
+ it "uses a DefaultLocator by default" do
12
+ Shenandoah::Tasks.new.locator.class.should == Shenandoah::DefaultLocator
13
+ end
14
+
15
+ it "configures the default locator with the provided options" do
16
+ Shenandoah::Tasks.new(:main_path => 'foo').locator.main_path.should == 'foo'
17
+ end
18
+
19
+ it "uses an explictly provided locator, ignoring other options" do
20
+ loc = Shenandoah::DefaultLocator.new(:main_path => 'bar')
21
+ tasks = Shenandoah::Tasks.new(:locator => loc, :main_path => 'foo')
22
+ tasks.locator.main_path.should == 'bar'
23
+ end
24
+ end
25
+
26
+ after do
27
+ Rake::Task.clear
28
+ end
29
+
30
+ describe "tasks" do
31
+ before do
32
+ Shenandoah::Tasks.new
33
+ end
34
+
35
+ it "adds a shen:serve task" do
36
+ Rake::Task::task_defined?('shen:serve').should be_true
37
+ end
38
+
39
+ it "adds a shen:shell task" do
40
+ Rake::Task::task_defined?('shen:shell').should be_true
41
+ end
42
+
43
+ it "adds a shen:spec task" do
44
+ Rake::Task::task_defined?('shen:spec').should be_true
45
+ end
46
+ end
47
+
48
+ describe "running" do
49
+ before do
50
+ @locator = mock(Shenandoah::DefaultLocator)
51
+ @runner = mock(Shenandoah::Runner)
52
+
53
+ @tasks = Shenandoah::Tasks.new
54
+ @tasks.locator = @locator
55
+ @tasks.runner = @runner
56
+ end
57
+
58
+ after do
59
+ ENV.delete 'SHEN_SPEC'
60
+ end
61
+
62
+ it "runs all the specs without ENV['SHEN_SPEC']" do
63
+ @locator.should_receive(:spec_files).and_return(%w(a b c))
64
+ @runner.should_receive(:run_console).with(%w(a b c)).and_return(%w(a b c))
65
+
66
+ @tasks.run_specs
67
+ end
68
+
69
+ it "only runs the specs matching ENV['SHEN_SPEC']" do
70
+ ENV['SHEN_SPEC'] = "b"
71
+
72
+ @locator.should_receive(:spec_files).and_return(%w(ab bc cd))
73
+ @runner.should_receive(:run_console).with(%w(ab bc)).and_return(%w(ab bc))
74
+
75
+ @tasks.run_specs
76
+ end
77
+
78
+ it "throws an exception on failure" do
79
+ @locator.should_receive(:spec_files).and_return(%w(a b c))
80
+ @runner.should_receive(:run_console).with(%w(a b c)).and_return(%w(a b))
81
+
82
+ lambda { @tasks.run_specs }.should raise_error(/Shenandoah specs failed!/)
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,61 @@
1
+ require 'spec'
2
+ require 'rubygems'
3
+
4
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
5
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
6
+
7
+ Spec::Runner.configure do |config|
8
+
9
+ end
10
+
11
+ module Shenandoah
12
+ module Spec
13
+ module Tmpfile
14
+ attr_writer :tmpdir
15
+
16
+ def tmpfile(name, contents="contents not important")
17
+ n = "#{tmpdir}/#{name}"
18
+ FileUtils.mkdir_p File.dirname(n)
19
+ File.open(n, 'w') { |f| f.write contents }
20
+ n
21
+ end
22
+
23
+ def tmpdir(name=nil)
24
+ n = @tmpdir
25
+ if (name)
26
+ n = File.join(n, name)
27
+ FileUtils.mkdir_p(n)
28
+ end
29
+ n
30
+ end
31
+
32
+ def self.included(klass)
33
+ klass.class_eval do
34
+ before do
35
+ FileUtils.mkdir_p(self.tmpdir = File.dirname(__FILE__) + "/tmp")
36
+ end
37
+
38
+ after do
39
+ FileUtils.rm_r self.tmpdir
40
+ end
41
+ end
42
+ end
43
+ end
44
+
45
+ module RailsRoot
46
+ def self.included(klass)
47
+ klass.class_eval do
48
+ include Shenandoah::Spec::Tmpfile
49
+
50
+ before do
51
+ Object.const_set(:RAILS_ROOT, tmpdir('rails-root'))
52
+ end
53
+
54
+ after do
55
+ Object.instance_eval { remove_const :RAILS_ROOT }
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
metadata ADDED
@@ -0,0 +1,262 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rsutphin-shenandoah
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Rhett Sutphin
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-06-16 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: sinatra
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.9.2
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: haml
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 2.0.9
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: rake
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "0"
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: rails
47
+ type: :runtime
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 2.1.0
54
+ version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ type: :development
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "="
62
+ - !ruby/object:Gem::Version
63
+ version: 1.2.4
64
+ version:
65
+ - !ruby/object:Gem::Dependency
66
+ name: rack-test
67
+ type: :development
68
+ version_requirement:
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 0.3.0
74
+ version:
75
+ - !ruby/object:Gem::Dependency
76
+ name: rspec_hpricot_matchers
77
+ type: :development
78
+ version_requirement:
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: 1.0.0
84
+ version:
85
+ - !ruby/object:Gem::Dependency
86
+ name: braid
87
+ type: :development
88
+ version_requirement:
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: 0.5.0
94
+ version:
95
+ - !ruby/object:Gem::Dependency
96
+ name: rake
97
+ type: :development
98
+ version_requirement:
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "="
102
+ - !ruby/object:Gem::Version
103
+ version: 0.8.4
104
+ version:
105
+ - !ruby/object:Gem::Dependency
106
+ name: net-ssh
107
+ type: :development
108
+ version_requirement:
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - "="
112
+ - !ruby/object:Gem::Version
113
+ version: 2.0.11
114
+ version:
115
+ - !ruby/object:Gem::Dependency
116
+ name: net-sftp
117
+ type: :development
118
+ version_requirement:
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "="
122
+ - !ruby/object:Gem::Version
123
+ version: 2.0.2
124
+ version:
125
+ - !ruby/object:Gem::Dependency
126
+ name: highline
127
+ type: :development
128
+ version_requirement:
129
+ version_requirements: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - "="
132
+ - !ruby/object:Gem::Version
133
+ version: 1.5.0
134
+ version:
135
+ - !ruby/object:Gem::Dependency
136
+ name: hoe
137
+ type: :development
138
+ version_requirement:
139
+ version_requirements: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - "="
142
+ - !ruby/object:Gem::Version
143
+ version: 1.12.2
144
+ version:
145
+ description:
146
+ email: rhett@detailedbalance.net
147
+ executables: []
148
+
149
+ extensions: []
150
+
151
+ extra_rdoc_files:
152
+ - ChangeLog.markdown
153
+ - LICENSE
154
+ - LICENSE-Blue-Ridge
155
+ - LICENSE-Screw.Unit
156
+ - LICENSE-Smoke
157
+ - README.markdown
158
+ files:
159
+ - .braids
160
+ - .document
161
+ - .gitignore
162
+ - ChangeLog.markdown
163
+ - LICENSE
164
+ - LICENSE-Blue-Ridge
165
+ - LICENSE-Screw.Unit
166
+ - LICENSE-Smoke
167
+ - README.markdown
168
+ - Rakefile
169
+ - VERSION.yml
170
+ - lib/shenandoah/buildr.rb
171
+ - lib/shenandoah/buildr/locator.rb
172
+ - lib/shenandoah/buildr/shenandoah_tasks.rb
173
+ - lib/shenandoah/buildr/test_framework.rb
174
+ - lib/shenandoah/css/screw.css
175
+ - lib/shenandoah/javascript/browser/runner.js
176
+ - lib/shenandoah/javascript/common/jquery-1.3.2.js
177
+ - lib/shenandoah/javascript/common/jquery.fn.js
178
+ - lib/shenandoah/javascript/common/jquery.print.js
179
+ - lib/shenandoah/javascript/common/screw.behaviors.js
180
+ - lib/shenandoah/javascript/common/screw.builder.js
181
+ - lib/shenandoah/javascript/common/screw.events.js
182
+ - lib/shenandoah/javascript/common/screw.matchers.js
183
+ - lib/shenandoah/javascript/common/screw.mocking.js
184
+ - lib/shenandoah/javascript/common/smoke.core.js
185
+ - lib/shenandoah/javascript/common/smoke.mock.js
186
+ - lib/shenandoah/javascript/common/smoke.stub.js
187
+ - lib/shenandoah/javascript/console/consoleReportForRake.js
188
+ - lib/shenandoah/javascript/console/env.rhino.js
189
+ - lib/shenandoah/javascript/console/js.jar
190
+ - lib/shenandoah/javascript/console/runner.js
191
+ - lib/shenandoah/javascript/console/shell.js.erb
192
+ - lib/shenandoah/locator.rb
193
+ - lib/shenandoah/rails/locator.rb
194
+ - lib/shenandoah/rails/tasks.rb
195
+ - lib/shenandoah/runner.rb
196
+ - lib/shenandoah/server.rb
197
+ - lib/shenandoah/server/views/index.haml
198
+ - lib/shenandoah/tasks.rb
199
+ - rails_generators/shen_spec/shen_spec_generator.rb
200
+ - rails_generators/shen_spec/templates/fixture.html.erb
201
+ - rails_generators/shen_spec/templates/javascript_spec.js.erb
202
+ - rails_generators/shenandoah/shenandoah_generator.rb
203
+ - rails_generators/shenandoah/templates/application.html
204
+ - rails_generators/shenandoah/templates/application_spec.js
205
+ - rails_generators/shenandoah/templates/shenandoah.rake
206
+ - rails_generators/shenandoah/templates/spec_helper.js
207
+ - shenandoah.gemspec
208
+ - spec/rails_generators/shen_spec_generator_spec.rb
209
+ - spec/rails_generators/shenandoah_generator_spec.rb
210
+ - spec/rails_generators/spec_helper.rb
211
+ - spec/shenandoah/buildr/locator_spec.rb
212
+ - spec/shenandoah/buildr/shenandoah_tasks_spec.rb
213
+ - spec/shenandoah/buildr/spec_helper.rb
214
+ - spec/shenandoah/buildr/test_framework_spec.rb
215
+ - spec/shenandoah/locator_spec.rb
216
+ - spec/shenandoah/rails/locator_spec.rb
217
+ - spec/shenandoah/rails/tasks_spec.rb
218
+ - spec/shenandoah/runner_spec.rb
219
+ - spec/shenandoah/server_spec.rb
220
+ - spec/shenandoah/tasks_spec.rb
221
+ - spec/spec_helper.rb
222
+ has_rdoc: false
223
+ homepage: http://github.com/rsutphin/shenandoah
224
+ post_install_message:
225
+ rdoc_options:
226
+ - --charset=UTF-8
227
+ require_paths:
228
+ - lib
229
+ required_ruby_version: !ruby/object:Gem::Requirement
230
+ requirements:
231
+ - - ">="
232
+ - !ruby/object:Gem::Version
233
+ version: "0"
234
+ version:
235
+ required_rubygems_version: !ruby/object:Gem::Requirement
236
+ requirements:
237
+ - - ">="
238
+ - !ruby/object:Gem::Version
239
+ version: "0"
240
+ version:
241
+ requirements: []
242
+
243
+ rubyforge_project: detailedbalance
244
+ rubygems_version: 1.2.0
245
+ signing_key:
246
+ specification_version: 3
247
+ summary: A javascript test framework for buildr, rails, and other ruby-built projects
248
+ test_files:
249
+ - spec/rails_generators/shen_spec_generator_spec.rb
250
+ - spec/rails_generators/shenandoah_generator_spec.rb
251
+ - spec/rails_generators/spec_helper.rb
252
+ - spec/shenandoah/buildr/locator_spec.rb
253
+ - spec/shenandoah/buildr/shenandoah_tasks_spec.rb
254
+ - spec/shenandoah/buildr/spec_helper.rb
255
+ - spec/shenandoah/buildr/test_framework_spec.rb
256
+ - spec/shenandoah/locator_spec.rb
257
+ - spec/shenandoah/rails/locator_spec.rb
258
+ - spec/shenandoah/rails/tasks_spec.rb
259
+ - spec/shenandoah/runner_spec.rb
260
+ - spec/shenandoah/server_spec.rb
261
+ - spec/shenandoah/tasks_spec.rb
262
+ - spec/spec_helper.rb