rsutphin-shenandoah 0.1.0

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