culerity 0.2.3
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/.gitignore +6 -0
- data/MIT-LICENSE +20 -0
- data/README.textile +106 -0
- data/Rakefile +43 -0
- data/VERSION.yml +4 -0
- data/culerity.gemspec +78 -0
- data/features/fixtures/sample_feature +14 -0
- data/features/installing_culerity.feature +46 -0
- data/features/running_cucumber_without_explicitly_running_external_services.feature +24 -0
- data/features/step_definitions/common_steps.rb +175 -0
- data/features/step_definitions/culerity_setup_steps.rb +7 -0
- data/features/step_definitions/jruby_steps.rb +11 -0
- data/features/step_definitions/rails_setup_steps.rb +26 -0
- data/features/support/common.rb +32 -0
- data/features/support/env.rb +24 -0
- data/features/support/matchers.rb +11 -0
- data/init.rb +1 -0
- data/lib/culerity.rb +60 -0
- data/lib/culerity/celerity_server.rb +81 -0
- data/lib/culerity/remote_browser_proxy.rb +58 -0
- data/lib/culerity/remote_object_proxy.rb +76 -0
- data/rails/init.rb +1 -0
- data/rails_generators/culerity/culerity_generator.rb +25 -0
- data/rails_generators/culerity/templates/config/environments/culerity_continuousintegration.rb +28 -0
- data/rails_generators/culerity/templates/config/environments/culerity_development.rb +17 -0
- data/rails_generators/culerity/templates/features/step_definitions/common_celerity_steps.rb +93 -0
- data/rails_generators/culerity/templates/lib/tasks/culerity.rake +38 -0
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/spec/celerity_server_spec.rb +97 -0
- data/spec/remote_browser_proxy_spec.rb +62 -0
- data/spec/remote_object_proxy_spec.rb +63 -0
- data/spec/spec_helper.rb +7 -0
- metadata +110 -0
@@ -0,0 +1,17 @@
|
|
1
|
+
config.cache_classes = false
|
2
|
+
|
3
|
+
# Log error messages when you accidentally call methods on nil.
|
4
|
+
config.whiny_nils = true
|
5
|
+
|
6
|
+
# Show full error reports and disable caching
|
7
|
+
config.action_controller.consider_all_requests_local = true
|
8
|
+
config.action_controller.perform_caching = false
|
9
|
+
config.action_view.cache_template_loading = false
|
10
|
+
|
11
|
+
# Disable request forgery protection in test environment
|
12
|
+
config.action_controller.allow_forgery_protection = false
|
13
|
+
|
14
|
+
# Tell Action Mailer not to deliver emails to the real world.
|
15
|
+
# The :test delivery method accumulates sent emails in the
|
16
|
+
# ActionMailer::Base.deliveries array.
|
17
|
+
config.action_mailer.delivery_method = :test
|
@@ -0,0 +1,93 @@
|
|
1
|
+
require 'culerity'
|
2
|
+
|
3
|
+
Before do
|
4
|
+
unless $rails_server
|
5
|
+
$rails_server = Culerity::run_rails
|
6
|
+
sleep 5
|
7
|
+
end
|
8
|
+
|
9
|
+
$server ||= Culerity::run_server
|
10
|
+
$browser = Culerity::RemoteBrowserProxy.new $server, {:browser => :firefox}
|
11
|
+
@host = 'http://localhost:3001'
|
12
|
+
end
|
13
|
+
|
14
|
+
at_exit do
|
15
|
+
$browser.exit if $browser
|
16
|
+
$server.exit_server if $server
|
17
|
+
Process.kill(6, $rails_server.pid.to_i) if $rails_server
|
18
|
+
end
|
19
|
+
|
20
|
+
When /I press "(.*)"/ do |button|
|
21
|
+
$browser.button(:text, button).click
|
22
|
+
assert_successful_response
|
23
|
+
end
|
24
|
+
|
25
|
+
When /I follow "(.*)"/ do |link|
|
26
|
+
$browser.link(:text, /#{link}/).click
|
27
|
+
assert_successful_response
|
28
|
+
end
|
29
|
+
|
30
|
+
When /I fill in "(.*)" for "(.*)"/ do |value, field|
|
31
|
+
$browser.text_field(:id, find_label(field).for).set(value)
|
32
|
+
end
|
33
|
+
|
34
|
+
When /I check "(.*)"/ do |field|
|
35
|
+
$browser.check_box(:id, find_label(field).for).set(true)
|
36
|
+
end
|
37
|
+
|
38
|
+
When /^I uncheck "(.*)"$/ do |field|
|
39
|
+
$browser.check_box(:id, find_label(field).for).set(false)
|
40
|
+
end
|
41
|
+
|
42
|
+
When /I select "(.*)" from "(.*)"/ do |value, field|
|
43
|
+
$browser.select_list(:id, find_label(field).for).select value
|
44
|
+
end
|
45
|
+
|
46
|
+
When /I choose "(.*)"/ do |field|
|
47
|
+
$browser.radio(:id, find_label(field).for).set(true)
|
48
|
+
end
|
49
|
+
|
50
|
+
When /I go to (.+)/ do |path|
|
51
|
+
$browser.goto @host + path_to(path)
|
52
|
+
assert_successful_response
|
53
|
+
end
|
54
|
+
|
55
|
+
When /I wait for the AJAX call to finish/ do
|
56
|
+
$browser.wait
|
57
|
+
end
|
58
|
+
|
59
|
+
Then /I should see "(.*)"/ do |text|
|
60
|
+
# if we simply check for the browser.html content we don't find content that has been added dynamically, e.g. after an ajax call
|
61
|
+
div = $browser.div(:text, /#{text}/)
|
62
|
+
begin
|
63
|
+
div.html
|
64
|
+
rescue
|
65
|
+
#puts $browser.html
|
66
|
+
raise("div with '#{text}' not found")
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
Then /I should not see "(.*)"/ do |text|
|
71
|
+
div = $browser.div(:text, /#{text}/).html rescue nil
|
72
|
+
div.should be_nil
|
73
|
+
end
|
74
|
+
|
75
|
+
def find_label(text)
|
76
|
+
$browser.label :text, text
|
77
|
+
end
|
78
|
+
|
79
|
+
def assert_successful_response
|
80
|
+
status = $browser.page.web_response.status_code
|
81
|
+
if(status == 302 || status == 301)
|
82
|
+
location = $browser.page.web_response.get_response_header_value('Location')
|
83
|
+
puts "Being redirected to #{location}"
|
84
|
+
$browser.goto location
|
85
|
+
assert_successful_response
|
86
|
+
elsif status != 200
|
87
|
+
tmp = Tempfile.new 'culerity_results'
|
88
|
+
tmp << $browser.html
|
89
|
+
tmp.close
|
90
|
+
`open -a /Applications/Safari.app #{tmp.path}`
|
91
|
+
raise "Brower returned Response Code #{$browser.page.web_response.status_code}"
|
92
|
+
end
|
93
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
namespace 'culerity' do
|
2
|
+
namespace 'rails' do
|
3
|
+
desc "Starts a rails server for cucumber/culerity tests"
|
4
|
+
task :start => :environment do
|
5
|
+
port = ENV['PORT'] || 3001
|
6
|
+
environment = 'culerity_development'
|
7
|
+
pid_file = RAILS_ROOT + "/tmp/culerity_rails_server.pid"
|
8
|
+
if File.exists?(pid_file)
|
9
|
+
puts "culerity rails server already running; if not, delete tmp/culerity_rails_server.pid and try again"
|
10
|
+
exit 1
|
11
|
+
end
|
12
|
+
rails_server = IO.popen("script/server -e #{environment} -p #{port}", 'r+')
|
13
|
+
File.open(pid_file, "w") { |file| file << rails_server.pid }
|
14
|
+
end
|
15
|
+
|
16
|
+
desc "Stops the running rails server for cucumber/culerity tests"
|
17
|
+
task :stop => :environment do
|
18
|
+
pid_file = RAILS_ROOT + "/tmp/culerity_rails_server.pid"
|
19
|
+
if File.exists?(pid_file)
|
20
|
+
pid = File.read(pid_file).to_i
|
21
|
+
Process.kill(6, pid)
|
22
|
+
File.delete(pid_file)
|
23
|
+
else
|
24
|
+
puts "No culerity rails server running. Doing nothing."
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
desc "Restarts the rails server for cucumber/culerity tests"
|
29
|
+
task :restart => [:stop, :start]
|
30
|
+
end
|
31
|
+
|
32
|
+
desc "Install required gems into jruby"
|
33
|
+
task :install => :environment do
|
34
|
+
jgem_cmd = `which jruby`.strip
|
35
|
+
raise "ERROR: You need to install jruby to use culerity and celerity." if jgem_cmd.blank?
|
36
|
+
sh "#{jgem_cmd} -S gem install jarib-celerity --source=http://gems.github.com"
|
37
|
+
end
|
38
|
+
end
|
data/script/console
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# File: script/console
|
3
|
+
irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
|
4
|
+
|
5
|
+
libs = " -r irb/completion"
|
6
|
+
# Perhaps use a console_lib to store any extra methods I may want available in the cosole
|
7
|
+
# libs << " -r #{File.dirname(__FILE__) + '/../lib/console_lib/console_logger.rb'}"
|
8
|
+
libs << " -r #{File.dirname(__FILE__) + '/../lib/culerity.rb'}"
|
9
|
+
puts "Loading culerity gem"
|
10
|
+
exec "#{irb} #{libs} --simple-prompt"
|
data/script/destroy
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'rubigen'
|
6
|
+
rescue LoadError
|
7
|
+
require 'rubygems'
|
8
|
+
require 'rubigen'
|
9
|
+
end
|
10
|
+
require 'rubigen/scripts/destroy'
|
11
|
+
|
12
|
+
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
13
|
+
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
14
|
+
RubiGen::Scripts::Destroy.new.run(ARGV)
|
data/script/generate
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'rubigen'
|
6
|
+
rescue LoadError
|
7
|
+
require 'rubygems'
|
8
|
+
require 'rubigen'
|
9
|
+
end
|
10
|
+
require 'rubigen/scripts/generate'
|
11
|
+
|
12
|
+
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
13
|
+
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
14
|
+
RubiGen::Scripts::Generate.new.run(ARGV)
|
@@ -0,0 +1,97 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
+
|
3
|
+
describe Culerity::CelerityServer do
|
4
|
+
before(:each) do
|
5
|
+
@browser = stub 'browser'
|
6
|
+
Celerity::Browser.stub!(:new).and_return(@browser)
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should pass the method call to the celerity browser" do
|
10
|
+
@browser.should_receive(:goto).with('/homepage')
|
11
|
+
_in = stub 'in'
|
12
|
+
_in.stub!(:gets).and_return("[\"browser0\", \"goto\", \"/homepage\"]\n", "[\"_exit_\"]\n")
|
13
|
+
_out = stub 'out', :<< => nil
|
14
|
+
Culerity::CelerityServer.new(_in, _out)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should return the browser id when a new browser is requested" do
|
18
|
+
_in = stub 'in'
|
19
|
+
_in.stub!(:gets).and_return("[\"celerity\", \"new_browser\", {}]\n", "[\"_exit_\"]\n")
|
20
|
+
_out = stub 'out'
|
21
|
+
_out.should_receive(:<<).with("[:return, \"browser0\"]\n")
|
22
|
+
Culerity::CelerityServer.new(_in, _out)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should create a new browser with the provided options" do
|
26
|
+
_in = stub 'in'
|
27
|
+
_in.stub!(:gets).and_return("[\"celerity\", \"new_browser\", {:browser => :firefox}]\n", "[\"_exit_\"]\n")
|
28
|
+
Celerity::Browser.should_receive(:new).with(:browser => :firefox)
|
29
|
+
Culerity::CelerityServer.new(_in, stub.as_null_object)
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should create multiple browsers and return the appropriate id for each" do
|
33
|
+
_in = stub 'in'
|
34
|
+
_in.stub!(:gets).and_return("[\"celerity\", \"new_browser\", {}]\n", "[\"celerity\", \"new_browser\", {}]\n", "[\"_exit_\"]\n")
|
35
|
+
Celerity::Browser.should_receive(:new).twice
|
36
|
+
_out = stub 'out'
|
37
|
+
_out.should_receive(:<<).with("[:return, \"browser0\"]\n").ordered
|
38
|
+
_out.should_receive(:<<).with("[:return, \"browser1\"]\n").ordered
|
39
|
+
Culerity::CelerityServer.new(_in, _out)
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
it "should send back the return value of the call" do
|
45
|
+
@browser.stub!(:goto).and_return(true)
|
46
|
+
_in = stub 'in'
|
47
|
+
_in.stub!(:gets).and_return("[\"browser0\", \"goto\", \"/homepage\"]\n", "[\"_exit_\"]\n")
|
48
|
+
_out = stub 'out'
|
49
|
+
_out.should_receive(:<<).with("[:return, true]\n")
|
50
|
+
Culerity::CelerityServer.new(_in, _out)
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should ignore empty inputs" do
|
54
|
+
_in = stub 'in'
|
55
|
+
_in.stub!(:gets).and_return("\n", "[\"_exit_\"]\n")
|
56
|
+
_out = stub 'out'
|
57
|
+
_out.should_not_receive(:<<)
|
58
|
+
Culerity::CelerityServer.new(_in, _out)
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should send back a proxy if the return value is not a string, number, nil or boolean" do
|
62
|
+
@browser.stub!(:goto).and_return(stub('123', :object_id => 456))
|
63
|
+
_in = stub 'in'
|
64
|
+
_in.stub!(:gets).and_return("[\"browser0\", \"goto\", \"/homepage\"]\n", "[\"_exit_\"]\n")
|
65
|
+
_out = stub 'out'
|
66
|
+
_out.should_receive(:<<).with("[:return, Culerity::RemoteObjectProxy.new(456, @io)]\n")
|
67
|
+
Culerity::CelerityServer.new(_in, _out)
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should pass the method call to a proxy" do
|
71
|
+
proxy = stub('123', :object_id => 456)
|
72
|
+
@browser.stub!(:goto).and_return(proxy)
|
73
|
+
_in = stub 'in'
|
74
|
+
_in.stub!(:gets).and_return("[\"browser0\", \"goto\", \"/homepage\"]\n", "[456, \"goto_2\", \"1\"]", "[\"_exit_\"]\n")
|
75
|
+
_out = stub 'out', :<< => nil
|
76
|
+
proxy.should_receive(:goto_2).with('1')
|
77
|
+
Culerity::CelerityServer.new(_in, _out)
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should pass multiple method calls" do
|
81
|
+
@browser.should_receive(:goto).with('/homepage')
|
82
|
+
@browser.should_receive(:goto).with('/page2')
|
83
|
+
_in = stub 'in'
|
84
|
+
_in.stub!(:gets).and_return("[\"browser0\", \"goto\", \"/homepage\"]\n", "[\"browser0\", \"goto\", \"/page2\"]\n", "[\"_exit_\"]\n")
|
85
|
+
_out = stub 'out', :<< => nil
|
86
|
+
Culerity::CelerityServer.new(_in, _out)
|
87
|
+
end
|
88
|
+
|
89
|
+
it "should return an exception" do
|
90
|
+
@browser.stub!(:goto).and_raise(RuntimeError.new('test exception with "quotes"'))
|
91
|
+
_in = stub 'in'
|
92
|
+
_in.stub!(:gets).and_return("[\"browser0\", \"goto\", \"/homepage\"]\n", "[\"_exit_\"]\n")
|
93
|
+
_out = stub 'out'
|
94
|
+
_out.should_receive(:<<).with(/^\[:exception, \"RuntimeError\", \"test exception with \\\"quotes\\\"\", \[.*\]\]\n$/)
|
95
|
+
Culerity::CelerityServer.new(_in, _out)
|
96
|
+
end
|
97
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
+
|
3
|
+
describe Culerity::RemoteBrowserProxy do
|
4
|
+
before(:each) do
|
5
|
+
@io = stub 'io', :gets => "[:return, \"browser0\"]", :<< => nil
|
6
|
+
end
|
7
|
+
it "should send the serialized method call to the output" do
|
8
|
+
@io.should_receive(:<<).with("[\"celerity\", \"new_browser\", {}]\n").ordered
|
9
|
+
@io.should_receive(:<<).with("[\"browser0\", \"goto\", \"/homepage\"]\n").ordered
|
10
|
+
proxy = Culerity::RemoteBrowserProxy.new @io
|
11
|
+
proxy.goto '/homepage'
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should return the deserialized return value" do
|
15
|
+
io = stub 'io', :gets => "[:return, :okay]\n", :<< => nil
|
16
|
+
proxy = Culerity::RemoteBrowserProxy.new io
|
17
|
+
proxy.goto.should == :okay
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should send the brower options to the remote server" do
|
21
|
+
io = stub 'io', :gets => "[:return, \"browser0\"]"
|
22
|
+
io.should_receive(:<<).with('["celerity", "new_browser", {:browser=>:firefox}]' + "\n")
|
23
|
+
proxy = Culerity::RemoteBrowserProxy.new io, {:browser => :firefox}
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should timeout if wait_until takes too long" do
|
27
|
+
proxy = Culerity::RemoteBrowserProxy.new @io
|
28
|
+
lambda {
|
29
|
+
proxy.wait_until(0.1) { false }
|
30
|
+
}.should raise_error(Timeout::Error)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should return successfully when wait_until returns true" do
|
34
|
+
proxy = Culerity::RemoteBrowserProxy.new @io
|
35
|
+
proxy.wait_until(0.1) { true }.should == true
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should timeout if wait_while takes too long" do
|
39
|
+
proxy = Culerity::RemoteBrowserProxy.new @io
|
40
|
+
lambda {
|
41
|
+
proxy.wait_while(0.1) { true }
|
42
|
+
}.should raise_error(Timeout::Error)
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should return successfully when wait_while returns !true" do
|
46
|
+
proxy = Culerity::RemoteBrowserProxy.new @io
|
47
|
+
proxy.wait_while(0.1) { false }.should == true
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should accept all javascript confirmation dialogs" do
|
51
|
+
proxy = Culerity::RemoteBrowserProxy.new @io
|
52
|
+
|
53
|
+
proxy.should_receive(:send_remote).with(:add_listener, :confirm).and_return(true)
|
54
|
+
proxy.should_receive(:send_remote).with(:goto, "http://example.com").and_return(true)
|
55
|
+
proxy.should_receive(:send_remote).with(:remove_listener, :confirm).and_return(true)
|
56
|
+
|
57
|
+
proxy.confirm(true) do
|
58
|
+
proxy.goto "http://example.com"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
+
|
3
|
+
describe Culerity::RemoteObjectProxy do
|
4
|
+
describe "block_to_string method" do
|
5
|
+
it "should return block result when result is lambda string" do
|
6
|
+
proxy = Culerity::RemoteObjectProxy.new nil, nil
|
7
|
+
block = lambda { "lambda { true}" }
|
8
|
+
proxy.send(:block_to_string, &block).should == "lambda { true}"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should return lambda string when block result isn't a lambda string" do
|
12
|
+
proxy = Culerity::RemoteObjectProxy.new nil, nil
|
13
|
+
[true, false, "blah", 5].each do |var|
|
14
|
+
block = lambda { var }
|
15
|
+
proxy.send(:block_to_string, &block).should == "lambda { #{var} }"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should send the serialized method call to the output" do
|
21
|
+
io = stub 'io', :gets => '[:return]'
|
22
|
+
io.should_receive(:<<).with(%Q{[345, "goto", "/homepage"]\n})
|
23
|
+
proxy = Culerity::RemoteObjectProxy.new 345, io
|
24
|
+
proxy.goto '/homepage'
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should send the serialized method call with argument plus block to the output" do
|
28
|
+
io = stub 'io', :gets => "[:return]"
|
29
|
+
io.should_receive(:<<).with(%Q{[345, "method", true, lambda { true }]\n})
|
30
|
+
proxy = Culerity::RemoteObjectProxy.new 345, io
|
31
|
+
|
32
|
+
proxy.send_remote(:method, true) { "lambda { true }" }
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should send the serialized method call without argument plus block to the output" do
|
36
|
+
io = stub 'io', :gets => "[:return]"
|
37
|
+
io.should_receive(:<<).with(%Q{[345, "method", lambda { true }]\n})
|
38
|
+
proxy = Culerity::RemoteObjectProxy.new 345, io
|
39
|
+
|
40
|
+
proxy.send_remote(:method) { "lambda { true }" }
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should return the deserialized return value" do
|
44
|
+
io = stub 'io', :gets => "[:return, :okay]\n", :<< => nil
|
45
|
+
proxy = Culerity::RemoteObjectProxy.new 345, io
|
46
|
+
proxy.goto.should == :okay
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should raise the received exception" do
|
50
|
+
io = stub 'io', :gets => %Q{[:exception, "RuntimeError", "test exception", []]}, :<< => nil
|
51
|
+
proxy = Culerity::RemoteObjectProxy.new 345, io
|
52
|
+
lambda {
|
53
|
+
proxy.goto '/home'
|
54
|
+
}.should raise_error(Culerity::CulerityException)
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should send exit" do
|
58
|
+
io = stub 'io', :gets => '[:return]'
|
59
|
+
io.should_receive(:<<).with('["_exit_"]')
|
60
|
+
proxy = Culerity::RemoteObjectProxy.new 345, io
|
61
|
+
proxy.exit
|
62
|
+
end
|
63
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,110 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: culerity
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Alexander Lang
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-09-08 00:00:00 +02:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: cucumber
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0"
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rspec
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "0"
|
34
|
+
version:
|
35
|
+
description: Culerity integrates Cucumber and Celerity in order to test your application's full stack.
|
36
|
+
email: alex@upstream-berlin.com
|
37
|
+
executables: []
|
38
|
+
|
39
|
+
extensions: []
|
40
|
+
|
41
|
+
extra_rdoc_files:
|
42
|
+
- README.textile
|
43
|
+
files:
|
44
|
+
- .gitignore
|
45
|
+
- MIT-LICENSE
|
46
|
+
- README.textile
|
47
|
+
- Rakefile
|
48
|
+
- VERSION.yml
|
49
|
+
- culerity.gemspec
|
50
|
+
- features/fixtures/sample_feature
|
51
|
+
- features/installing_culerity.feature
|
52
|
+
- features/running_cucumber_without_explicitly_running_external_services.feature
|
53
|
+
- features/step_definitions/common_steps.rb
|
54
|
+
- features/step_definitions/culerity_setup_steps.rb
|
55
|
+
- features/step_definitions/jruby_steps.rb
|
56
|
+
- features/step_definitions/rails_setup_steps.rb
|
57
|
+
- features/support/common.rb
|
58
|
+
- features/support/env.rb
|
59
|
+
- features/support/matchers.rb
|
60
|
+
- init.rb
|
61
|
+
- lib/culerity.rb
|
62
|
+
- lib/culerity/celerity_server.rb
|
63
|
+
- lib/culerity/remote_browser_proxy.rb
|
64
|
+
- lib/culerity/remote_object_proxy.rb
|
65
|
+
- rails/init.rb
|
66
|
+
- rails_generators/culerity/culerity_generator.rb
|
67
|
+
- rails_generators/culerity/templates/config/environments/culerity_continuousintegration.rb
|
68
|
+
- rails_generators/culerity/templates/config/environments/culerity_development.rb
|
69
|
+
- rails_generators/culerity/templates/features/step_definitions/common_celerity_steps.rb
|
70
|
+
- rails_generators/culerity/templates/lib/tasks/culerity.rake
|
71
|
+
- script/console
|
72
|
+
- script/destroy
|
73
|
+
- script/generate
|
74
|
+
- spec/celerity_server_spec.rb
|
75
|
+
- spec/remote_browser_proxy_spec.rb
|
76
|
+
- spec/remote_object_proxy_spec.rb
|
77
|
+
- spec/spec_helper.rb
|
78
|
+
has_rdoc: true
|
79
|
+
homepage: http://github.com/langalex/culerity
|
80
|
+
licenses: []
|
81
|
+
|
82
|
+
post_install_message:
|
83
|
+
rdoc_options:
|
84
|
+
- --charset=UTF-8
|
85
|
+
require_paths:
|
86
|
+
- lib
|
87
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: "0"
|
92
|
+
version:
|
93
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: "0"
|
98
|
+
version:
|
99
|
+
requirements: []
|
100
|
+
|
101
|
+
rubyforge_project:
|
102
|
+
rubygems_version: 1.3.5
|
103
|
+
signing_key:
|
104
|
+
specification_version: 3
|
105
|
+
summary: Culerity integrates Cucumber and Celerity in order to test your application's full stack.
|
106
|
+
test_files:
|
107
|
+
- spec/celerity_server_spec.rb
|
108
|
+
- spec/remote_browser_proxy_spec.rb
|
109
|
+
- spec/remote_object_proxy_spec.rb
|
110
|
+
- spec/spec_helper.rb
|