davidtrogers-webrat 0.4.4.2 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -1
- data/Gemfile +19 -0
- data/History.txt +99 -9
- data/Rakefile +141 -207
- data/Thorfile +118 -0
- data/lib/webrat.rb +10 -23
- data/lib/webrat/{mechanize.rb → adapters/mechanize.rb} +6 -2
- data/lib/webrat/adapters/merb.rb +11 -0
- data/lib/webrat/adapters/rack.rb +25 -0
- data/lib/webrat/{rails.rb → adapters/rails.rb} +5 -37
- data/lib/webrat/adapters/sinatra.rb +9 -0
- data/lib/webrat/core.rb +0 -1
- data/lib/webrat/core/configuration.rb +22 -18
- data/lib/webrat/core/elements/area.rb +2 -2
- data/lib/webrat/core/elements/element.rb +3 -3
- data/lib/webrat/core/elements/field.rb +113 -31
- data/lib/webrat/core/elements/form.rb +4 -4
- data/lib/webrat/core/elements/label.rb +4 -4
- data/lib/webrat/core/elements/link.rb +8 -7
- data/lib/webrat/core/elements/select_option.rb +15 -2
- data/lib/webrat/core/locators.rb +1 -1
- data/lib/webrat/core/locators/area_locator.rb +3 -3
- data/lib/webrat/core/locators/button_locator.rb +6 -6
- data/lib/webrat/core/locators/field_by_id_locator.rb +3 -3
- data/lib/webrat/core/locators/field_labeled_locator.rb +2 -2
- data/lib/webrat/core/locators/field_named_locator.rb +3 -3
- data/lib/webrat/core/locators/form_locator.rb +1 -1
- data/lib/webrat/core/locators/label_locator.rb +2 -2
- data/lib/webrat/core/locators/link_locator.rb +16 -8
- data/lib/webrat/core/locators/select_option_locator.rb +5 -5
- data/lib/webrat/core/logging.rb +4 -5
- data/lib/webrat/core/matchers/have_content.rb +3 -8
- data/lib/webrat/core/matchers/have_xpath.rb +3 -28
- data/lib/webrat/core/methods.rb +5 -4
- data/lib/webrat/core/mime.rb +11 -22
- data/lib/webrat/core/save_and_open_page.rb +7 -29
- data/lib/webrat/core/scope.rb +17 -2
- data/lib/webrat/core/session.rb +31 -19
- data/lib/webrat/core/xml.rb +41 -84
- data/lib/webrat/integrations/merb.rb +10 -0
- data/lib/webrat/integrations/rails.rb +25 -0
- data/lib/webrat/integrations/rspec-rails.rb +11 -0
- data/lib/webrat/integrations/selenium.rb +11 -0
- data/lib/webrat/rspec-rails.rb +2 -13
- data/lib/webrat/selenium.rb +0 -11
- data/lib/webrat/selenium/application_server_factory.rb +40 -0
- data/lib/webrat/selenium/application_servers.rb +5 -0
- data/lib/webrat/selenium/application_servers/base.rb +46 -0
- data/lib/webrat/selenium/application_servers/external.rb +26 -0
- data/lib/webrat/selenium/application_servers/merb.rb +50 -0
- data/lib/webrat/selenium/application_servers/rails.rb +44 -0
- data/lib/webrat/selenium/application_servers/sinatra.rb +37 -0
- data/lib/webrat/selenium/location_strategy_javascript/label.js +30 -3
- data/lib/webrat/selenium/location_strategy_javascript/webrat.js +1 -0
- data/lib/webrat/selenium/location_strategy_javascript/webratlink.js +24 -4
- data/lib/webrat/selenium/matchers/have_content.rb +22 -10
- data/lib/webrat/selenium/matchers/have_selector.rb +8 -0
- data/lib/webrat/selenium/matchers/have_xpath.rb +8 -0
- data/lib/webrat/selenium/selenium_rc_server.rb +8 -6
- data/lib/webrat/selenium/selenium_session.rb +43 -14
- data/lib/webrat/selenium/silence_stream.rb +2 -2
- data/spec/fakes/{test_session.rb → test_adapter.rb} +4 -5
- data/spec/integration/mechanize/Rakefile +7 -0
- data/spec/integration/mechanize/config.ru +2 -0
- data/spec/integration/mechanize/sample_app.rb +20 -0
- data/spec/integration/mechanize/spec/mechanize_spec.rb +22 -0
- data/spec/integration/mechanize/spec/spec_helper.rb +29 -0
- data/spec/integration/merb/app/controllers/testing.rb +9 -0
- data/spec/integration/merb/app/views/testing/upload.html.erb +9 -0
- data/spec/integration/merb/config/router.rb +1 -0
- data/spec/integration/merb/spec/spec_helper.rb +2 -0
- data/spec/integration/merb/spec/webrat_spec.rb +7 -0
- data/spec/integration/rack/app.rb +89 -0
- data/spec/integration/rack/test/helper.rb +21 -0
- data/spec/integration/rack/test/webrat_rack_test.rb +57 -51
- data/spec/integration/rails/app/controllers/{application.rb → application_controller.rb} +0 -0
- data/spec/integration/rails/app/controllers/webrat_controller.rb +16 -9
- data/spec/integration/rails/app/views/buttons/show.html.erb +0 -2
- data/spec/integration/rails/app/views/links/show.html.erb +2 -1
- data/spec/integration/rails/app/views/webrat/buttons.html.erb +0 -2
- data/spec/integration/rails/app/views/webrat/within.html.erb +3 -0
- data/spec/integration/rails/config/environment.rb +1 -1
- data/spec/integration/rails/config/routes.rb +2 -0
- data/spec/integration/rails/test/integration/button_click_test.rb +12 -26
- data/spec/integration/rails/test/integration/fill_in_test.rb +1 -1
- data/spec/integration/rails/test/integration/link_click_test.rb +8 -2
- data/spec/integration/rails/test/integration/webrat_test.rb +53 -5
- data/spec/integration/rails/test/test_helper.rb +7 -5
- data/spec/integration/sinatra/test/test_helper.rb +3 -2
- data/spec/private/core/configuration_spec.rb +8 -27
- data/spec/private/core/field_spec.rb +14 -16
- data/spec/private/core/link_spec.rb +1 -1
- data/spec/private/core/session_spec.rb +23 -26
- data/spec/private/mechanize/{mechanize_session_spec.rb → mechanize_adapter_spec.rb} +4 -12
- data/spec/private/nokogiri_spec.rb +2 -2
- data/spec/private/rails/{rails_session_spec.rb → rails_adapter_spec.rb} +11 -42
- data/spec/private/selenium/application_servers/rails_spec.rb +26 -0
- data/spec/public/basic_auth_spec.rb +13 -2
- data/spec/public/click_button_spec.rb +10 -12
- data/spec/public/click_link_spec.rb +21 -0
- data/spec/public/fill_in_spec.rb +15 -0
- data/spec/public/matchers/contain_spec.rb +12 -19
- data/spec/public/matchers/have_selector_spec.rb +6 -2
- data/spec/public/matchers/have_xpath_spec.rb +3 -3
- data/spec/public/save_and_open_spec.rb +15 -17
- data/spec/public/select_spec.rb +232 -26
- data/spec/public/selenium/application_server_factory_spec.rb +49 -0
- data/spec/public/selenium/application_servers/external_spec.rb +12 -0
- data/spec/public/selenium/selenium_session_spec.rb +37 -0
- data/spec/spec_helper.rb +5 -1
- data/vendor/selenium-server.jar +0 -0
- metadata +119 -69
- data/.dotest/0001 +0 -34
- data/.dotest/0002 +0 -34
- data/.dotest/binary +0 -1
- data/.dotest/final-commit +0 -1
- data/.dotest/head-name +0 -1
- data/.dotest/info +0 -5
- data/.dotest/keep +0 -1
- data/.dotest/last +0 -1
- data/.dotest/msg +0 -0
- data/.dotest/msg-clean +0 -0
- data/.dotest/next +0 -1
- data/.dotest/onto +0 -1
- data/.dotest/orig-head +0 -1
- data/.dotest/patch +0 -29
- data/.dotest/sign +0 -1
- data/.dotest/utf8 +0 -1
- data/.dotest/whitespace +0 -1
- data/VERSION +0 -1
- data/lib/webrat/core/xml/hpricot.rb +0 -19
- data/lib/webrat/core/xml/nokogiri.rb +0 -76
- data/lib/webrat/core/xml/rexml.rb +0 -24
- data/lib/webrat/merb_session.rb +0 -65
- data/lib/webrat/rack.rb +0 -24
- data/lib/webrat/rack_test.rb +0 -32
- data/lib/webrat/selenium/application_server.rb +0 -73
- data/lib/webrat/selenium/merb_application_server.rb +0 -48
- data/lib/webrat/selenium/rails_application_server.rb +0 -42
- data/lib/webrat/selenium/sinatra_application_server.rb +0 -35
- data/lib/webrat/sinatra.rb +0 -44
- data/spec/integration/rack/rack_app.rb +0 -16
- data/spec/integration/rack/test/test_helper.rb +0 -20
- data/spec/private/core/logging_spec.rb +0 -10
- data/spec/private/merb/merb_session_spec.rb +0 -42
data/.dotest/binary
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
t
|
data/.dotest/final-commit
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
trying yet again to build this gem :-)
|
data/.dotest/head-name
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
refs/heads/master
|
data/.dotest/info
DELETED
data/.dotest/keep
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
t
|
data/.dotest/last
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
2
|
data/.dotest/msg
DELETED
File without changes
|
data/.dotest/msg-clean
DELETED
File without changes
|
data/.dotest/next
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
1
|
data/.dotest/onto
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
4c5649e84445bdb08fb834705ec6793c831a85cc
|
data/.dotest/orig-head
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
2581869c832668aacf48e2e6dd7212721a6edceb
|
data/.dotest/patch
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
---
|
2
|
-
VERSION | 2 +-
|
3
|
-
webrat.gemspec | 2 +-
|
4
|
-
2 files changed, 2 insertions(+), 2 deletions(-)
|
5
|
-
|
6
|
-
diff --git a/VERSION b/VERSION
|
7
|
-
index 3b77b494a2e70cf4aa2800eab1e9b1cb6572afc4..77d6f4ca23711533e724789a0a0045eab28c5ea6 100644
|
8
|
-
--- a/VERSION
|
9
|
-
+++ b/VERSION
|
10
|
-
@@ -1 +1 @@
|
11
|
-
-0.4.4.2
|
12
|
-
+0.0.0
|
13
|
-
diff --git a/webrat.gemspec b/webrat.gemspec
|
14
|
-
index 752a14ff8fca2cae03a148e2ad2badfe80989cb6..d9061e244f0107ac06e3479a58c4e326d497bdfe 100644
|
15
|
-
--- a/webrat.gemspec
|
16
|
-
+++ b/webrat.gemspec
|
17
|
-
@@ -2,7 +2,7 @@
|
18
|
-
|
19
|
-
Gem::Specification.new do |s|
|
20
|
-
s.name = %q{webrat}
|
21
|
-
- s.version = "0.4.4.2"
|
22
|
-
+ s.version = "0.0.0"
|
23
|
-
|
24
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
25
|
-
s.authors = ["Dave Rogers"]
|
26
|
-
--
|
27
|
-
1.5.4.3
|
28
|
-
|
29
|
-
|
data/.dotest/sign
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
|
data/.dotest/utf8
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
t
|
data/.dotest/whitespace
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.0.0
|
@@ -1,19 +0,0 @@
|
|
1
|
-
module Webrat
|
2
|
-
|
3
|
-
def self.hpricot_document(stringlike)
|
4
|
-
return stringlike.dom if stringlike.respond_to?(:dom)
|
5
|
-
|
6
|
-
if Hpricot::Doc === stringlike
|
7
|
-
stringlike
|
8
|
-
elsif Hpricot::Elements === stringlike
|
9
|
-
stringlike
|
10
|
-
elsif StringIO === stringlike
|
11
|
-
Hpricot(stringlike.string)
|
12
|
-
elsif stringlike.respond_to?(:body)
|
13
|
-
Hpricot(stringlike.body.to_s)
|
14
|
-
else
|
15
|
-
Hpricot(stringlike.to_s)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
@@ -1,76 +0,0 @@
|
|
1
|
-
require "webrat/core_extensions/meta_class"
|
2
|
-
|
3
|
-
module Webrat
|
4
|
-
|
5
|
-
def self.nokogiri_document(stringlike) #:nodoc:
|
6
|
-
return stringlike.dom if stringlike.respond_to?(:dom)
|
7
|
-
|
8
|
-
if Nokogiri::HTML::Document === stringlike
|
9
|
-
stringlike
|
10
|
-
elsif Nokogiri::XML::NodeSet === stringlike
|
11
|
-
stringlike
|
12
|
-
elsif StringIO === stringlike
|
13
|
-
Nokogiri::HTML(stringlike.string)
|
14
|
-
elsif stringlike.respond_to?(:body)
|
15
|
-
Nokogiri::HTML(stringlike.body.to_s)
|
16
|
-
else
|
17
|
-
Nokogiri::HTML(stringlike.to_s)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.html_nokogiri_document(stringlike) #:nodoc:
|
22
|
-
return stringlike.dom if stringlike.respond_to?(:dom)
|
23
|
-
|
24
|
-
if Nokogiri::HTML::Document === stringlike
|
25
|
-
stringlike
|
26
|
-
elsif Nokogiri::XML::NodeSet === stringlike
|
27
|
-
stringlike
|
28
|
-
elsif StringIO === stringlike
|
29
|
-
Nokogiri::HTML(stringlike.string)
|
30
|
-
elsif stringlike.respond_to?(:body)
|
31
|
-
Nokogiri::HTML(stringlike.body.to_s)
|
32
|
-
else
|
33
|
-
Nokogiri::HTML(stringlike.to_s)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def self.xml_nokogiri_document(stringlike) #:nodoc:
|
38
|
-
return stringlike.dom if stringlike.respond_to?(:dom)
|
39
|
-
|
40
|
-
if Nokogiri::HTML::Document === stringlike
|
41
|
-
stringlike
|
42
|
-
elsif Nokogiri::XML::NodeSet === stringlike
|
43
|
-
stringlike
|
44
|
-
elsif StringIO === stringlike
|
45
|
-
Nokogiri::XML(stringlike.string)
|
46
|
-
elsif stringlike.respond_to?(:body)
|
47
|
-
Nokogiri::XML(stringlike.body.to_s)
|
48
|
-
else
|
49
|
-
Nokogiri::XML(stringlike.to_s)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
def self.define_dom_method(object, dom) #:nodoc:
|
54
|
-
object.meta_class.send(:define_method, :dom) do
|
55
|
-
dom
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
end
|
60
|
-
|
61
|
-
|
62
|
-
module Nokogiri #:nodoc:
|
63
|
-
module CSS #:nodoc:
|
64
|
-
class XPathVisitor #:nodoc:
|
65
|
-
|
66
|
-
def visit_pseudo_class_text(node) #:nodoc:
|
67
|
-
"@type='text'"
|
68
|
-
end
|
69
|
-
|
70
|
-
def visit_pseudo_class_password(node) #:nodoc:
|
71
|
-
"@type='password'"
|
72
|
-
end
|
73
|
-
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
module Webrat
|
2
|
-
|
3
|
-
def self.rexml_document(stringlike)
|
4
|
-
stringlike = stringlike.body.to_s if stringlike.respond_to?(:body)
|
5
|
-
|
6
|
-
case stringlike
|
7
|
-
when REXML::Document
|
8
|
-
stringlike.root
|
9
|
-
when REXML::Node, Array
|
10
|
-
stringlike
|
11
|
-
else
|
12
|
-
begin
|
13
|
-
REXML::Document.new(stringlike.to_s).root
|
14
|
-
rescue REXML::ParseException => e
|
15
|
-
if e.message.include?("second root element")
|
16
|
-
REXML::Document.new("<fake-root-element>#{stringlike}</fake-root-element>").root
|
17
|
-
else
|
18
|
-
raise e
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
data/lib/webrat/merb_session.rb
DELETED
@@ -1,65 +0,0 @@
|
|
1
|
-
require "webrat"
|
2
|
-
|
3
|
-
require "cgi"
|
4
|
-
gem "extlib"
|
5
|
-
require "extlib"
|
6
|
-
require "merb-core"
|
7
|
-
|
8
|
-
# HashWithIndifferentAccess = Mash
|
9
|
-
|
10
|
-
module Webrat
|
11
|
-
class MerbSession < Session #:nodoc:
|
12
|
-
include Merb::Test::MakeRequest
|
13
|
-
|
14
|
-
attr_accessor :response
|
15
|
-
|
16
|
-
def get(url, data, headers = nil)
|
17
|
-
do_request(url, data, headers, "GET")
|
18
|
-
end
|
19
|
-
|
20
|
-
def post(url, data, headers = nil)
|
21
|
-
do_request(url, data, headers, "POST")
|
22
|
-
end
|
23
|
-
|
24
|
-
def put(url, data, headers = nil)
|
25
|
-
do_request(url, data, headers, "PUT")
|
26
|
-
end
|
27
|
-
|
28
|
-
def delete(url, data, headers = nil)
|
29
|
-
do_request(url, data, headers, "DELETE")
|
30
|
-
end
|
31
|
-
|
32
|
-
def response_body
|
33
|
-
@response.body.to_s
|
34
|
-
end
|
35
|
-
|
36
|
-
def response_code
|
37
|
-
@response.status
|
38
|
-
end
|
39
|
-
|
40
|
-
def do_request(url, data, headers, method)
|
41
|
-
@response = request(url,
|
42
|
-
:params => (data && data.any?) ? data : nil,
|
43
|
-
:headers => headers,
|
44
|
-
:method => method)
|
45
|
-
end
|
46
|
-
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
module Merb #:nodoc:
|
51
|
-
module Test #:nodoc:
|
52
|
-
module RequestHelper #:nodoc:
|
53
|
-
def request(uri, env = {})
|
54
|
-
@_webrat_session ||= Webrat::MerbSession.new
|
55
|
-
@_webrat_session.response = @_webrat_session.request(uri, env)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
class Merb::Test::RspecStory #:nodoc:
|
62
|
-
def browser
|
63
|
-
@browser ||= Webrat::MerbSession.new
|
64
|
-
end
|
65
|
-
end
|
data/lib/webrat/rack.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
require 'webrat'
|
2
|
-
|
3
|
-
class CGIMethods #:nodoc:
|
4
|
-
def self.parse_query_parameters(params)
|
5
|
-
hash = {}
|
6
|
-
params.split('&').each do |p|
|
7
|
-
pair = p.split('=')
|
8
|
-
hash[pair[0]] = pair[1]
|
9
|
-
end
|
10
|
-
hash
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
module Webrat
|
15
|
-
class RackSession < Session #:nodoc:
|
16
|
-
def response_body
|
17
|
-
@response.body
|
18
|
-
end
|
19
|
-
|
20
|
-
def response_code
|
21
|
-
@response.status
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
data/lib/webrat/rack_test.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
module Webrat
|
2
|
-
class RackTestSession < Session
|
3
|
-
|
4
|
-
def initialize(rack_test_session) #:nodoc:
|
5
|
-
super()
|
6
|
-
@rack_test_session = rack_test_session
|
7
|
-
end
|
8
|
-
|
9
|
-
def response_body
|
10
|
-
response.body
|
11
|
-
end
|
12
|
-
|
13
|
-
def response_code
|
14
|
-
response.status
|
15
|
-
end
|
16
|
-
|
17
|
-
def response
|
18
|
-
@rack_test_session.last_response
|
19
|
-
end
|
20
|
-
|
21
|
-
protected
|
22
|
-
|
23
|
-
def process_request(http_method, url, data = {}, headers = {})
|
24
|
-
headers ||= {}
|
25
|
-
data ||= {}
|
26
|
-
|
27
|
-
env = headers.merge(:params => data, :method => http_method.to_s.upcase)
|
28
|
-
@rack_test_session.request(url, env)
|
29
|
-
end
|
30
|
-
|
31
|
-
end
|
32
|
-
end
|
@@ -1,73 +0,0 @@
|
|
1
|
-
module Webrat
|
2
|
-
module Selenium
|
3
|
-
|
4
|
-
class ApplicationServer
|
5
|
-
|
6
|
-
include Webrat::Selenium::SilenceStream
|
7
|
-
|
8
|
-
def self.boot
|
9
|
-
case Webrat.configuration.application_framework
|
10
|
-
when :sinatra
|
11
|
-
require "webrat/selenium/sinatra_application_server"
|
12
|
-
SinatraApplicationServer.new.boot
|
13
|
-
when :merb
|
14
|
-
require "webrat/selenium/merb_application_server"
|
15
|
-
MerbApplicationServer.new.boot
|
16
|
-
when :rails
|
17
|
-
require "webrat/selenium/rails_application_server"
|
18
|
-
RailsApplicationServer.new.boot
|
19
|
-
else
|
20
|
-
raise WebratError.new(<<-STR)
|
21
|
-
Unknown Webrat application_framework: #{Webrat.configuration.application_framework.inspect}
|
22
|
-
|
23
|
-
Please ensure you have a Webrat configuration block that specifies an application_framework
|
24
|
-
in your test_helper.rb, spec_helper.rb, or env.rb (for Cucumber).
|
25
|
-
|
26
|
-
For example:
|
27
|
-
|
28
|
-
Webrat.configure do |config|
|
29
|
-
# ...
|
30
|
-
config.application_framework = :rails
|
31
|
-
end
|
32
|
-
STR
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
def boot
|
37
|
-
start
|
38
|
-
wait
|
39
|
-
stop_at_exit
|
40
|
-
end
|
41
|
-
|
42
|
-
def stop_at_exit
|
43
|
-
at_exit do
|
44
|
-
stop
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def wait
|
49
|
-
$stderr.print "==> Waiting for #{Webrat.configuration.application_framework} application server on port #{Webrat.configuration.application_port}... "
|
50
|
-
wait_for_socket
|
51
|
-
$stderr.print "Ready!\n"
|
52
|
-
end
|
53
|
-
|
54
|
-
def wait_for_socket
|
55
|
-
silence_stream(STDOUT) do
|
56
|
-
TCPSocket.wait_for_service_with_timeout \
|
57
|
-
:host => Webrat.configuration.application_address,
|
58
|
-
:port => Webrat.configuration.application_port.to_i,
|
59
|
-
:timeout => 30 # seconds
|
60
|
-
end
|
61
|
-
rescue SocketError
|
62
|
-
fail
|
63
|
-
end
|
64
|
-
|
65
|
-
def prepare_pid_file(file_path, pid_file_name)
|
66
|
-
FileUtils.mkdir_p File.expand_path(file_path)
|
67
|
-
File.expand_path("#{file_path}/#{pid_file_name}")
|
68
|
-
end
|
69
|
-
|
70
|
-
end
|
71
|
-
|
72
|
-
end
|
73
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
module Webrat
|
2
|
-
module Selenium
|
3
|
-
|
4
|
-
class MerbApplicationServer < ApplicationServer
|
5
|
-
|
6
|
-
def start
|
7
|
-
system start_command
|
8
|
-
end
|
9
|
-
|
10
|
-
def stop
|
11
|
-
silence_stream(STDOUT) do
|
12
|
-
pid = File.read(pid_file)
|
13
|
-
system("kill -9 #{pid}")
|
14
|
-
FileUtils.rm_f pid_file
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
def fail
|
19
|
-
$stderr.puts
|
20
|
-
$stderr.puts
|
21
|
-
$stderr.puts "==> Failed to boot the Merb application server... exiting!"
|
22
|
-
$stderr.puts
|
23
|
-
$stderr.puts "Verify you can start a Merb server on port #{Webrat.configuration.application_port} with the following command:"
|
24
|
-
$stderr.puts
|
25
|
-
$stderr.puts " #{start_command}"
|
26
|
-
exit
|
27
|
-
end
|
28
|
-
|
29
|
-
def pid_file
|
30
|
-
"log/merb.#{Webrat.configuration.application_port}.pid"
|
31
|
-
end
|
32
|
-
|
33
|
-
def start_command
|
34
|
-
"#{merb_command} -d -p #{Webrat.configuration.application_port} -e #{Webrat.configuration.application_environment}"
|
35
|
-
end
|
36
|
-
|
37
|
-
def merb_command
|
38
|
-
if File.exist?('bin/merb')
|
39
|
-
merb_cmd = 'bin/merb'
|
40
|
-
else
|
41
|
-
merb_cmd = 'merb'
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
end
|
46
|
-
|
47
|
-
end
|
48
|
-
end
|