culerity 0.2.10 → 0.2.12
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/VERSION.yml +1 -1
- data/culerity.gemspec +3 -2
- data/features/installing_culerity.feature +7 -5
- data/features/running_cucumber_without_explicitly_running_external_services.feature +4 -2
- data/features/step_definitions/rails_setup_steps.rb +8 -0
- data/features/support/env.rb +1 -0
- data/lib/culerity.rb +18 -2
- data/lib/start_celerity.rb +3 -0
- data/rails_generators/culerity/templates/config/environments/culerity.rb +1 -1
- data/rails_generators/culerity/templates/features/step_definitions/culerity_steps.rb +2 -5
- data/spec/culerity_spec.rb +106 -41
- metadata +4 -3
data/VERSION.yml
CHANGED
data/culerity.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{culerity}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.12"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Alexander Lang"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-08-20}
|
13
13
|
s.default_executable = %q{run_celerity_server.rb}
|
14
14
|
s.description = %q{Culerity integrates Cucumber and Celerity in order to test your application's full stack.}
|
15
15
|
s.email = %q{alex@upstream-berlin.com}
|
@@ -43,6 +43,7 @@ Gem::Specification.new do |s|
|
|
43
43
|
"lib/culerity/persistent_delivery.rb",
|
44
44
|
"lib/culerity/remote_browser_proxy.rb",
|
45
45
|
"lib/culerity/remote_object_proxy.rb",
|
46
|
+
"lib/start_celerity.rb",
|
46
47
|
"lib/tasks/rspec.rake",
|
47
48
|
"rails/init.rb",
|
48
49
|
"rails_generators/culerity/culerity_generator.rb",
|
@@ -5,15 +5,17 @@ Feature: Installing culerity
|
|
5
5
|
|
6
6
|
Background:
|
7
7
|
Given a Rails app
|
8
|
-
And I run executable "script/generate" with arguments "cucumber"
|
9
|
-
And I delete file "features/step_definitions/
|
8
|
+
And I run executable "script/generate" with arguments "cucumber --rspec --webrat"
|
9
|
+
And I delete file "features/step_definitions/web_steps.rb"
|
10
10
|
And I delete file "features/support/env.rb"
|
11
11
|
And culerity is installed as a plugin
|
12
12
|
And I invoke task "rake db:migrate"
|
13
13
|
When I run executable "script/generate" with arguments "culerity"
|
14
14
|
And I setup load path to local code
|
15
15
|
And I setup the culerity javascript helpers
|
16
|
-
|
16
|
+
And I add the JRUBY_INVOCATION check to "features/support/env.rb"
|
17
|
+
And I add an rvm_verbose_flag=0-wielding .rvmrc to the home folder
|
18
|
+
|
17
19
|
Scenario: Install culerity and test the rails start + stop tasks
|
18
20
|
When I invoke task "rake culerity:rails:start"
|
19
21
|
Then file "tmp/culerity_rails_server.pid" is created
|
@@ -23,7 +25,7 @@ Feature: Installing culerity
|
|
23
25
|
Scenario: Install culerity into a Rails app and check it works
|
24
26
|
Then file "features/step_definitions/culerity_steps.rb" is created
|
25
27
|
Then file "config/environments/culerity.rb" is created
|
26
|
-
|
28
|
+
|
27
29
|
When I run executable "cucumber" with arguments "features/"
|
28
30
|
Then I should see "0 scenarios"
|
29
31
|
And I should see "0 steps"
|
@@ -32,4 +34,4 @@ Feature: Installing culerity
|
|
32
34
|
And I run executable "cucumber" with arguments "features/"
|
33
35
|
Then I should see "1 scenario"
|
34
36
|
And I should see "5 steps (5 passed)"
|
35
|
-
And I should not see "WARNING: Speed up executing by running 'rake culerity:rails:start'"
|
37
|
+
And I should not see "WARNING: Speed up executing by running 'rake culerity:rails:start'"
|
@@ -5,14 +5,16 @@ Feature: Running cucumber without explicitly running external services
|
|
5
5
|
|
6
6
|
Background:
|
7
7
|
Given a Rails app
|
8
|
-
And I run executable "script/generate" with arguments "cucumber"
|
9
|
-
And I delete file "features/step_definitions/
|
8
|
+
And I run executable "script/generate" with arguments "cucumber --rspec --webrat"
|
9
|
+
And I delete file "features/step_definitions/web_steps.rb"
|
10
10
|
And I delete file "features/support/env.rb"
|
11
11
|
And culerity is installed as a plugin
|
12
12
|
And I invoke task "rake db:migrate"
|
13
13
|
When I run executable "script/generate" with arguments "culerity"
|
14
14
|
And I setup load path to local code
|
15
15
|
And I setup the culerity javascript helpers
|
16
|
+
And I add the JRUBY_INVOCATION check to "features/support/env.rb"
|
17
|
+
And I add an rvm_verbose_flag=0-wielding .rvmrc to the home folder
|
16
18
|
|
17
19
|
Scenario: Successfully run scenarios without requiring celerity or rails processes running
|
18
20
|
When I add a feature file to test Rails index.html default file
|
@@ -26,6 +26,14 @@ When /^I add a feature file to test Rails index.html default file$/ do
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
+
When /^(?:I )?add an rvm_verbose_flag=0-wielding \.rvmrc to the home folder$/ do
|
30
|
+
in_home_folder do
|
31
|
+
File.open('.rvmrc', 'w+') do |f|
|
32
|
+
f.puts "rvm_verbose_flag=0"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
29
37
|
When /^I setup the culerity javascript helpers$/ do
|
30
38
|
`cp #{File.dirname(__FILE__) + "/../fixtures/jquery"} #{File.join(@active_project_folder, 'public', 'javascripts', 'jquery.js')}`
|
31
39
|
in_project_folder do
|
data/features/support/env.rb
CHANGED
data/lib/culerity.rb
CHANGED
@@ -23,9 +23,25 @@ module Culerity
|
|
23
23
|
self.puts '["_clear_proxies_"]'
|
24
24
|
end
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
|
+
def self.culerity_root
|
28
|
+
File.expand_path('../../', __FILE__)
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.celerity_invocation
|
32
|
+
%{#{culerity_root}/lib/start_celerity.rb}
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.jruby_invocation
|
36
|
+
@jruby_invocation ||= (ENV["JRUBY_INVOCATION"] || "jruby")
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.jruby_invocation=(invocation)
|
40
|
+
@jruby_invocation = invocation
|
41
|
+
end
|
42
|
+
|
27
43
|
def self.run_server
|
28
|
-
IO.popen(
|
44
|
+
IO.popen(%{#{jruby_invocation} "#{celerity_invocation}"}, 'r+').extend(ServerCommands)
|
29
45
|
end
|
30
46
|
|
31
47
|
def self.run_rails(options = {})
|
@@ -146,14 +146,11 @@ Then /^the "([^\"]*)" checkbox should not be checked$/ do |label|
|
|
146
146
|
end
|
147
147
|
|
148
148
|
Then /I should see "([^\"]*)"/ do |text|
|
149
|
-
|
150
|
-
div = $browser.div(:text, /#{Regexp::escape(text)}/)
|
151
|
-
div.should be_exist
|
149
|
+
$browser.text.include?(text).should be_true
|
152
150
|
end
|
153
151
|
|
154
152
|
Then /I should not see "([^\"]*)"/ do |text|
|
155
|
-
|
156
|
-
div.should_not be_exist
|
153
|
+
$browser.text.include?(text).should_not be_true
|
157
154
|
end
|
158
155
|
|
159
156
|
def find_by_label_or_id(element, attribute)
|
data/spec/culerity_spec.rb
CHANGED
@@ -1,47 +1,112 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
2
|
|
3
|
-
describe Culerity
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
3
|
+
describe Culerity do
|
4
|
+
describe 'run_rails' do
|
5
|
+
def stub_rails_root!
|
6
|
+
unless defined?(::Rails)
|
7
|
+
Kernel.const_set "Rails", stub()
|
8
|
+
end
|
9
|
+
Rails.stub!(:root).and_return(Dir.pwd)
|
10
|
+
end
|
11
|
+
|
12
|
+
before(:each) do
|
13
|
+
Kernel.stub!(:sleep)
|
14
|
+
IO.stub!(:popen)
|
15
|
+
Culerity.stub!(:fork).and_yield.and_return(3200)
|
16
|
+
Culerity.stub!(:exec)
|
17
|
+
Culerity.stub!(:sleep)
|
18
|
+
[$stdin, $stdout, $stderr].each{|io| io.stub(:reopen)}
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should not run rails if we are not using rails" do
|
22
|
+
Culerity.should_not_receive(:exec)
|
23
|
+
Culerity.run_rails :port => 4000, :environment => 'culerity'
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "when Rails is being used" do
|
27
|
+
before(:each) do
|
28
|
+
stub_rails_root!
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should run rails with default values" do
|
32
|
+
Culerity.should_receive(:exec).with("script/server -e culerity -p 3001")
|
33
|
+
Culerity.run_rails
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should run rails with the given values" do
|
37
|
+
Culerity.should_receive(:exec).with("script/server -e culerity -p 4000")
|
38
|
+
Culerity.run_rails :port => 4000, :environment => 'culerity'
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should change into the rails root directory" do
|
42
|
+
Dir.should_receive(:chdir).with(Dir.pwd)
|
43
|
+
Culerity.run_rails :port => 4000, :environment => 'culerity'
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should wait for the server to start up" do
|
47
|
+
Culerity.should_receive(:sleep)
|
48
|
+
Culerity.run_rails :port => 4000, :environment => 'culerity'
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should reopen the i/o channels to /dev/null" do
|
52
|
+
[$stdin, $stdout, $stderr].each{|io| io.should_receive(:reopen).with("/dev/null")}
|
53
|
+
Culerity.run_rails :port => 4000, :environment => 'culerity'
|
54
|
+
end
|
55
|
+
end
|
11
56
|
end
|
12
57
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
58
|
+
describe "run_server" do
|
59
|
+
before(:each) do
|
60
|
+
IO.stub!(:popen)
|
61
|
+
end
|
62
|
+
|
63
|
+
after(:each) do
|
64
|
+
Culerity.jruby_invocation = nil
|
65
|
+
end
|
66
|
+
|
67
|
+
it "knows where it is located" do
|
68
|
+
Culerity.culerity_root.should == File.expand_path(File.dirname(__FILE__) + '/../')
|
69
|
+
end
|
70
|
+
|
71
|
+
it "has access to the Celerity invocation" do
|
72
|
+
Culerity.stub!(:culerity_root).and_return('/path/to/culerity')
|
73
|
+
|
74
|
+
Culerity.celerity_invocation.should == "/path/to/culerity/lib/start_celerity.rb"
|
75
|
+
end
|
76
|
+
|
77
|
+
describe "invoking JRuby" do
|
78
|
+
it "knows how to invoke it" do
|
79
|
+
Culerity.jruby_invocation.should == 'jruby'
|
80
|
+
end
|
81
|
+
|
82
|
+
it "allows for the invocation to be overridden directly" do
|
83
|
+
Culerity.jruby_invocation = '/opt/local/bin/jruby'
|
84
|
+
|
85
|
+
Culerity.jruby_invocation.should == '/opt/local/bin/jruby'
|
86
|
+
end
|
87
|
+
|
88
|
+
it "allows for the invocation to be overridden from an environment variable" do
|
89
|
+
ENV['JRUBY_INVOCATION'] = 'rvm jruby ruby'
|
90
|
+
|
91
|
+
Culerity.jruby_invocation.should == 'rvm jruby ruby'
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
it "shells out and sparks up jruby with the correct invocation" do
|
96
|
+
Culerity.stub!(:celerity_invocation).and_return('/path/to/start_celerity.rb')
|
97
|
+
|
98
|
+
IO.should_receive(:popen).with('jruby "/path/to/start_celerity.rb"', 'r+')
|
99
|
+
|
100
|
+
Culerity.run_server
|
101
|
+
end
|
102
|
+
|
103
|
+
it "allows a more complex situation, e.g. using RVM + named gemset" do
|
104
|
+
Culerity.stub!(:celerity_invocation).and_return('/path/to/start_celerity.rb')
|
105
|
+
|
106
|
+
IO.should_receive(:popen).with('rvm jruby@culerity ruby "/path/to/start_celerity.rb"', 'r+')
|
107
|
+
|
108
|
+
Culerity.jruby_invocation = "rvm jruby@culerity ruby"
|
109
|
+
Culerity.run_server
|
110
|
+
end
|
46
111
|
end
|
47
112
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 2
|
8
|
-
-
|
9
|
-
version: 0.2.
|
8
|
+
- 12
|
9
|
+
version: 0.2.12
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Alexander Lang
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-08-20 00:00:00 +02:00
|
18
18
|
default_executable: run_celerity_server.rb
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -75,6 +75,7 @@ files:
|
|
75
75
|
- lib/culerity/persistent_delivery.rb
|
76
76
|
- lib/culerity/remote_browser_proxy.rb
|
77
77
|
- lib/culerity/remote_object_proxy.rb
|
78
|
+
- lib/start_celerity.rb
|
78
79
|
- lib/tasks/rspec.rake
|
79
80
|
- rails/init.rb
|
80
81
|
- rails_generators/culerity/culerity_generator.rb
|