mkuklis-webrat 0.5.1 → 0.6.rc1
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/.document +3 -3
- data/.gitignore +14 -14
- data/History.txt +413 -413
- data/MIT-LICENSE.txt +19 -19
- data/README.rdoc +84 -84
- data/Rakefile +187 -187
- data/VERSION +1 -1
- data/install.rb +1 -1
- data/lib/webrat/adapters/mechanize.rb +78 -78
- data/lib/webrat/adapters/merb.rb +11 -11
- data/lib/webrat/adapters/rack.rb +25 -25
- data/lib/webrat/adapters/rails.rb +81 -81
- data/lib/webrat/adapters/sinatra.rb +9 -9
- data/lib/webrat/core/configuration.rb +92 -92
- data/lib/webrat/core/elements/area.rb +31 -31
- data/lib/webrat/core/elements/element.rb +33 -33
- data/lib/webrat/core/elements/field.rb +487 -487
- data/lib/webrat/core/elements/form.rb +103 -103
- data/lib/webrat/core/elements/label.rb +31 -31
- data/lib/webrat/core/elements/link.rb +93 -93
- data/lib/webrat/core/elements/select_option.rb +48 -48
- data/lib/webrat/core/locators/area_locator.rb +38 -38
- data/lib/webrat/core/locators/button_locator.rb +54 -54
- data/lib/webrat/core/locators/field_by_id_locator.rb +37 -37
- data/lib/webrat/core/locators/field_labeled_locator.rb +56 -56
- data/lib/webrat/core/locators/field_locator.rb +25 -25
- data/lib/webrat/core/locators/field_named_locator.rb +41 -41
- data/lib/webrat/core/locators/form_locator.rb +19 -19
- data/lib/webrat/core/locators/label_locator.rb +34 -34
- data/lib/webrat/core/locators/link_locator.rb +74 -74
- data/lib/webrat/core/locators/locator.rb +20 -20
- data/lib/webrat/core/locators/select_option_locator.rb +59 -59
- data/lib/webrat/core/locators.rb +20 -20
- data/lib/webrat/core/logging.rb +23 -23
- data/lib/webrat/core/matchers/have_content.rb +68 -68
- data/lib/webrat/core/matchers/have_selector.rb +74 -74
- data/lib/webrat/core/matchers/have_tag.rb +21 -21
- data/lib/webrat/core/matchers/have_xpath.rb +122 -122
- data/lib/webrat/core/matchers.rb +4 -4
- data/lib/webrat/core/methods.rb +64 -64
- data/lib/webrat/core/mime.rb +18 -18
- data/lib/webrat/core/save_and_open_page.rb +48 -48
- data/lib/webrat/core/scope.rb +365 -365
- data/lib/webrat/core/session.rb +306 -306
- data/lib/webrat/core/xml.rb +72 -72
- data/lib/webrat/core.rb +13 -13
- data/lib/webrat/core_extensions/blank.rb +58 -58
- data/lib/webrat/core_extensions/deprecate.rb +8 -8
- data/lib/webrat/core_extensions/detect_mapped.rb +12 -12
- data/lib/webrat/core_extensions/meta_class.rb +6 -6
- data/lib/webrat/core_extensions/nil_to_param.rb +5 -5
- data/lib/webrat/core_extensions/tcp_socket.rb +27 -27
- data/lib/webrat/integrations/merb.rb +10 -10
- data/lib/webrat/integrations/rails.rb +25 -25
- data/lib/webrat/integrations/rspec-rails.rb +10 -10
- data/lib/webrat/integrations/selenium.rb +11 -11
- data/lib/webrat/merb.rb +9 -9
- data/lib/webrat/rspec-rails.rb +2 -2
- data/lib/webrat/selenium/application_server_factory.rb +40 -40
- data/lib/webrat/selenium/application_servers/external.rb +26 -26
- data/lib/webrat/selenium/application_servers/merb.rb +50 -50
- data/lib/webrat/selenium/application_servers/rails.rb +3 -6
- data/lib/webrat/selenium/application_servers/sinatra.rb +37 -37
- data/lib/webrat/selenium/application_servers.rb +5 -5
- data/lib/webrat/selenium/location_strategy_javascript/button.js +19 -19
- data/lib/webrat/selenium/location_strategy_javascript/label.js +42 -42
- data/lib/webrat/selenium/location_strategy_javascript/webrat.js +6 -6
- data/lib/webrat/selenium/location_strategy_javascript/webratlink.js +32 -32
- data/lib/webrat/selenium/location_strategy_javascript/webratlinkwithin.js +15 -15
- data/lib/webrat/selenium/location_strategy_javascript/webratselectwithoption.js +5 -5
- data/lib/webrat/selenium/matchers/have_content.rb +66 -66
- data/lib/webrat/selenium/matchers/have_selector.rb +49 -49
- data/lib/webrat/selenium/matchers/have_tag.rb +72 -72
- data/lib/webrat/selenium/matchers/have_xpath.rb +45 -45
- data/lib/webrat/selenium/matchers.rb +4 -4
- data/lib/webrat/selenium/selenium_extensions.js +5 -5
- data/lib/webrat/selenium/selenium_rc_server.rb +86 -86
- data/lib/webrat/selenium/selenium_session.rb +267 -272
- data/lib/webrat/selenium/silence_stream.rb +18 -18
- data/lib/webrat/selenium.rb +70 -70
- data/lib/webrat.rb +18 -18
- data/spec/fakes/test_adapter.rb +37 -37
- data/spec/integration/mechanize/Rakefile +6 -6
- data/spec/integration/mechanize/config.ru +1 -1
- data/spec/integration/mechanize/sample_app.rb +20 -20
- data/spec/integration/mechanize/spec/mechanize_spec.rb +22 -22
- data/spec/integration/mechanize/spec/spec_helper.rb +27 -27
- data/spec/integration/merb/.gitignore +20 -20
- data/spec/integration/merb/Rakefile +35 -35
- data/spec/integration/merb/app/controllers/application.rb +2 -2
- data/spec/integration/merb/app/controllers/exceptions.rb +13 -13
- data/spec/integration/merb/app/controllers/testing.rb +27 -27
- data/spec/integration/merb/app/views/exceptions/not_acceptable.html.erb +63 -63
- data/spec/integration/merb/app/views/exceptions/not_found.html.erb +47 -47
- data/spec/integration/merb/app/views/layout/application.html.erb +11 -11
- data/spec/integration/merb/app/views/testing/show_form.html.erb +26 -26
- data/spec/integration/merb/app/views/testing/upload.html.erb +8 -8
- data/spec/integration/merb/config/environments/development.rb +15 -15
- data/spec/integration/merb/config/environments/rake.rb +11 -11
- data/spec/integration/merb/config/environments/test.rb +14 -14
- data/spec/integration/merb/config/init.rb +25 -25
- data/spec/integration/merb/config/rack.rb +11 -11
- data/spec/integration/merb/config/router.rb +34 -34
- data/spec/integration/merb/spec/spec.opts +1 -1
- data/spec/integration/merb/spec/spec_helper.rb +26 -26
- data/spec/integration/merb/spec/webrat_spec.rb +39 -39
- data/spec/integration/merb/tasks/merb.thor/app_script.rb +31 -31
- data/spec/integration/merb/tasks/merb.thor/common.rb +64 -64
- data/spec/integration/merb/tasks/merb.thor/gem_ext.rb +124 -124
- data/spec/integration/merb/tasks/merb.thor/main.thor +149 -149
- data/spec/integration/merb/tasks/merb.thor/ops.rb +93 -93
- data/spec/integration/merb/tasks/merb.thor/utils.rb +40 -40
- data/spec/integration/rack/Rakefile +5 -5
- data/spec/integration/rack/app.rb +89 -89
- data/spec/integration/rack/test/helper.rb +21 -21
- data/spec/integration/rack/test/webrat_rack_test.rb +73 -73
- data/spec/integration/rails/.gitignore +3 -3
- data/spec/integration/rails/Rakefile +30 -30
- data/spec/integration/rails/app/controllers/application.rb +15 -15
- data/spec/integration/rails/app/controllers/buttons_controller.rb +7 -7
- data/spec/integration/rails/app/controllers/fields_controller.rb +4 -4
- data/spec/integration/rails/app/controllers/links_controller.rb +7 -7
- data/spec/integration/rails/app/controllers/webrat_controller.rb +46 -46
- data/spec/integration/rails/app/helpers/buttons_helper.rb +2 -2
- data/spec/integration/rails/app/helpers/fields_helper.rb +2 -2
- data/spec/integration/rails/app/helpers/links_helper.rb +2 -2
- data/spec/integration/rails/app/views/buttons/show.html.erb +10 -10
- data/spec/integration/rails/app/views/fields/show.html.erb +8 -8
- data/spec/integration/rails/app/views/links/show.html.erb +5 -5
- data/spec/integration/rails/app/views/webrat/before_redirect_form.html.erb +3 -3
- data/spec/integration/rails/app/views/webrat/buttons.html.erb +10 -10
- data/spec/integration/rails/app/views/webrat/form.html.erb +27 -27
- data/spec/integration/rails/app/views/webrat/within.html.erb +2 -2
- data/spec/integration/rails/config/boot.rb +109 -109
- data/spec/integration/rails/config/environment.rb +12 -12
- data/spec/integration/rails/config/environments/development.rb +17 -17
- data/spec/integration/rails/config/environments/selenium.rb +22 -22
- data/spec/integration/rails/config/environments/test.rb +22 -22
- data/spec/integration/rails/config/initializers/inflections.rb +10 -10
- data/spec/integration/rails/config/initializers/mime_types.rb +5 -5
- data/spec/integration/rails/config/initializers/new_rails_defaults.rb +17 -17
- data/spec/integration/rails/config/locales/en.yml +4 -4
- data/spec/integration/rails/config/routes.rb +19 -19
- data/spec/integration/rails/public/404.html +29 -29
- data/spec/integration/rails/public/422.html +29 -29
- data/spec/integration/rails/public/500.html +33 -33
- data/spec/integration/rails/script/about +3 -3
- data/spec/integration/rails/script/console +3 -3
- data/spec/integration/rails/script/dbconsole +3 -3
- data/spec/integration/rails/script/destroy +3 -3
- data/spec/integration/rails/script/generate +3 -3
- data/spec/integration/rails/script/performance/benchmarker +3 -3
- data/spec/integration/rails/script/performance/profiler +3 -3
- data/spec/integration/rails/script/performance/request +3 -3
- data/spec/integration/rails/script/plugin +3 -3
- data/spec/integration/rails/script/process/inspector +3 -3
- data/spec/integration/rails/script/process/reaper +3 -3
- data/spec/integration/rails/script/process/spawner +3 -3
- data/spec/integration/rails/script/runner +3 -3
- data/spec/integration/rails/script/server +3 -3
- data/spec/integration/rails/test/integration/button_click_test.rb +80 -80
- data/spec/integration/rails/test/integration/fill_in_test.rb +24 -24
- data/spec/integration/rails/test/integration/link_click_test.rb +27 -27
- data/spec/integration/rails/test/integration/webrat_test.rb +122 -122
- data/spec/integration/rails/test/test_helper.rb +26 -26
- data/spec/integration/sinatra/Rakefile +5 -5
- data/spec/integration/sinatra/classic_app.rb +64 -64
- data/spec/integration/sinatra/modular_app.rb +16 -16
- data/spec/integration/sinatra/test/classic_app_test.rb +37 -37
- data/spec/integration/sinatra/test/modular_app_test.rb +18 -18
- data/spec/integration/sinatra/test/test_helper.rb +17 -17
- data/spec/private/core/configuration_spec.rb +87 -87
- data/spec/private/core/field_spec.rb +85 -85
- data/spec/private/core/link_spec.rb +24 -24
- data/spec/private/core/session_spec.rb +200 -200
- data/spec/private/mechanize/mechanize_adapter_spec.rb +73 -73
- data/spec/private/nokogiri_spec.rb +77 -77
- data/spec/private/rails/attaches_file_spec.rb +81 -81
- data/spec/private/rails/rails_adapter_spec.rb +86 -86
- data/spec/private/selenium/application_servers/rails_spec.rb +26 -26
- data/spec/public/basic_auth_spec.rb +24 -24
- data/spec/public/check_spec.rb +191 -191
- data/spec/public/choose_spec.rb +118 -118
- data/spec/public/click_area_spec.rb +106 -106
- data/spec/public/click_button_spec.rb +494 -494
- data/spec/public/click_link_spec.rb +511 -511
- data/spec/public/fill_in_spec.rb +224 -224
- data/spec/public/locators/field_by_xpath_spec.rb +19 -19
- data/spec/public/locators/field_labeled_spec.rb +172 -172
- data/spec/public/locators/field_with_id_spec.rb +16 -16
- data/spec/public/matchers/contain_spec.rb +114 -114
- data/spec/public/matchers/have_selector_spec.rb +146 -146
- data/spec/public/matchers/have_tag_spec.rb +39 -39
- data/spec/public/matchers/have_xpath_spec.rb +136 -136
- data/spec/public/reload_spec.rb +10 -10
- data/spec/public/save_and_open_spec.rb +70 -70
- data/spec/public/select_date_spec.rb +112 -112
- data/spec/public/select_datetime_spec.rb +137 -137
- data/spec/public/select_spec.rb +455 -455
- data/spec/public/select_time_spec.rb +100 -100
- data/spec/public/selenium/application_server_factory_spec.rb +49 -49
- data/spec/public/selenium/application_servers/external_spec.rb +12 -12
- data/spec/public/selenium/selenium_session_spec.rb +37 -37
- data/spec/public/set_hidden_field_spec.rb +5 -5
- data/spec/public/submit_form_spec.rb +5 -5
- data/spec/public/visit_spec.rb +58 -58
- data/spec/public/within_spec.rb +177 -177
- data/spec/spec.opts +1 -1
- data/spec/spec_helper.rb +54 -54
- data/webrat.gemspec +360 -0
- metadata +6 -5
data/lib/webrat/core/xml.rb
CHANGED
@@ -1,72 +1,72 @@
|
|
1
|
-
require "webrat/core_extensions/meta_class"
|
2
|
-
|
3
|
-
module Webrat #:nodoc:
|
4
|
-
module XML #:nodoc:
|
5
|
-
|
6
|
-
def self.document(stringlike) #:nodoc:
|
7
|
-
return stringlike.dom if stringlike.respond_to?(:dom)
|
8
|
-
|
9
|
-
if Nokogiri::HTML::Document === stringlike
|
10
|
-
stringlike
|
11
|
-
elsif Nokogiri::XML::NodeSet === stringlike
|
12
|
-
stringlike
|
13
|
-
elsif stringlike.respond_to?(:body)
|
14
|
-
Nokogiri::HTML(stringlike.body.to_s)
|
15
|
-
else
|
16
|
-
Nokogiri::HTML(stringlike.to_s)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.html_document(stringlike) #:nodoc:
|
21
|
-
return stringlike.dom if stringlike.respond_to?(:dom)
|
22
|
-
|
23
|
-
if Nokogiri::HTML::Document === stringlike
|
24
|
-
stringlike
|
25
|
-
elsif Nokogiri::XML::NodeSet === stringlike
|
26
|
-
stringlike
|
27
|
-
elsif stringlike.respond_to?(:body)
|
28
|
-
Nokogiri::HTML(stringlike.body.to_s)
|
29
|
-
else
|
30
|
-
Nokogiri::HTML(stringlike.to_s)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def self.xml_document(stringlike) #:nodoc:
|
35
|
-
return stringlike.dom if stringlike.respond_to?(:dom)
|
36
|
-
|
37
|
-
if Nokogiri::HTML::Document === stringlike
|
38
|
-
stringlike
|
39
|
-
elsif Nokogiri::XML::NodeSet === stringlike
|
40
|
-
stringlike
|
41
|
-
elsif stringlike.respond_to?(:body)
|
42
|
-
Nokogiri::XML(stringlike.body.to_s)
|
43
|
-
else
|
44
|
-
Nokogiri::XML(stringlike.to_s)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def self.define_dom_method(object, dom) #:nodoc:
|
49
|
-
object.meta_class.send(:define_method, :dom) do
|
50
|
-
dom
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
module Nokogiri #:nodoc:
|
58
|
-
module CSS #:nodoc:
|
59
|
-
class XPathVisitor #:nodoc:
|
60
|
-
|
61
|
-
def visit_pseudo_class_text(node) #:nodoc:
|
62
|
-
"@type='text'"
|
63
|
-
end
|
64
|
-
|
65
|
-
def visit_pseudo_class_password(node) #:nodoc:
|
66
|
-
"@type='password'"
|
67
|
-
end
|
68
|
-
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
1
|
+
require "webrat/core_extensions/meta_class"
|
2
|
+
|
3
|
+
module Webrat #:nodoc:
|
4
|
+
module XML #:nodoc:
|
5
|
+
|
6
|
+
def self.document(stringlike) #:nodoc:
|
7
|
+
return stringlike.dom if stringlike.respond_to?(:dom)
|
8
|
+
|
9
|
+
if Nokogiri::HTML::Document === stringlike
|
10
|
+
stringlike
|
11
|
+
elsif Nokogiri::XML::NodeSet === stringlike
|
12
|
+
stringlike
|
13
|
+
elsif stringlike.respond_to?(:body)
|
14
|
+
Nokogiri::HTML(stringlike.body.to_s)
|
15
|
+
else
|
16
|
+
Nokogiri::HTML(stringlike.to_s)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.html_document(stringlike) #:nodoc:
|
21
|
+
return stringlike.dom if stringlike.respond_to?(:dom)
|
22
|
+
|
23
|
+
if Nokogiri::HTML::Document === stringlike
|
24
|
+
stringlike
|
25
|
+
elsif Nokogiri::XML::NodeSet === stringlike
|
26
|
+
stringlike
|
27
|
+
elsif stringlike.respond_to?(:body)
|
28
|
+
Nokogiri::HTML(stringlike.body.to_s)
|
29
|
+
else
|
30
|
+
Nokogiri::HTML(stringlike.to_s)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.xml_document(stringlike) #:nodoc:
|
35
|
+
return stringlike.dom if stringlike.respond_to?(:dom)
|
36
|
+
|
37
|
+
if Nokogiri::HTML::Document === stringlike
|
38
|
+
stringlike
|
39
|
+
elsif Nokogiri::XML::NodeSet === stringlike
|
40
|
+
stringlike
|
41
|
+
elsif stringlike.respond_to?(:body)
|
42
|
+
Nokogiri::XML(stringlike.body.to_s)
|
43
|
+
else
|
44
|
+
Nokogiri::XML(stringlike.to_s)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.define_dom_method(object, dom) #:nodoc:
|
49
|
+
object.meta_class.send(:define_method, :dom) do
|
50
|
+
dom
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
module Nokogiri #:nodoc:
|
58
|
+
module CSS #:nodoc:
|
59
|
+
class XPathVisitor #:nodoc:
|
60
|
+
|
61
|
+
def visit_pseudo_class_text(node) #:nodoc:
|
62
|
+
"@type='text'"
|
63
|
+
end
|
64
|
+
|
65
|
+
def visit_pseudo_class_password(node) #:nodoc:
|
66
|
+
"@type='password'"
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
data/lib/webrat/core.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
|
-
require "webrat/core/configuration"
|
2
|
-
require "webrat/core/xml"
|
3
|
-
require "webrat/core/logging"
|
4
|
-
require "webrat/core/elements/form"
|
5
|
-
require "webrat/core/scope"
|
6
|
-
require "webrat/core/elements/link"
|
7
|
-
require "webrat/core/elements/area"
|
8
|
-
require "webrat/core/elements/label"
|
9
|
-
require "webrat/core/elements/select_option"
|
10
|
-
require "webrat/core/session"
|
11
|
-
require "webrat/core/methods"
|
12
|
-
require "webrat/core/matchers"
|
13
|
-
require "webrat/core/save_and_open_page"
|
1
|
+
require "webrat/core/configuration"
|
2
|
+
require "webrat/core/xml"
|
3
|
+
require "webrat/core/logging"
|
4
|
+
require "webrat/core/elements/form"
|
5
|
+
require "webrat/core/scope"
|
6
|
+
require "webrat/core/elements/link"
|
7
|
+
require "webrat/core/elements/area"
|
8
|
+
require "webrat/core/elements/label"
|
9
|
+
require "webrat/core/elements/select_option"
|
10
|
+
require "webrat/core/session"
|
11
|
+
require "webrat/core/methods"
|
12
|
+
require "webrat/core/matchers"
|
13
|
+
require "webrat/core/save_and_open_page"
|
@@ -1,58 +1,58 @@
|
|
1
|
-
class Object #:nodoc:
|
2
|
-
# An object is blank if it's false, empty, or a whitespace string.
|
3
|
-
# For example, "", " ", +nil+, [], and {} are blank.
|
4
|
-
#
|
5
|
-
# This simplifies
|
6
|
-
#
|
7
|
-
# if !address.nil? && !address.empty?
|
8
|
-
#
|
9
|
-
# to
|
10
|
-
#
|
11
|
-
# if !address.blank?
|
12
|
-
def blank?
|
13
|
-
respond_to?(:empty?) ? empty? : !self
|
14
|
-
end
|
15
|
-
|
16
|
-
# An object is present if it's not blank.
|
17
|
-
def present?
|
18
|
-
!blank?
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
class NilClass #:nodoc:
|
23
|
-
def blank?
|
24
|
-
true
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
class FalseClass #:nodoc:
|
29
|
-
def blank?
|
30
|
-
true
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
class TrueClass #:nodoc:
|
35
|
-
def blank?
|
36
|
-
false
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
class Array #:nodoc:
|
41
|
-
alias_method :blank?, :empty?
|
42
|
-
end
|
43
|
-
|
44
|
-
class Hash #:nodoc:
|
45
|
-
alias_method :blank?, :empty?
|
46
|
-
end
|
47
|
-
|
48
|
-
class String #:nodoc:
|
49
|
-
def blank?
|
50
|
-
self !~ /\S/
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
class Numeric #:nodoc:
|
55
|
-
def blank?
|
56
|
-
false
|
57
|
-
end
|
58
|
-
end
|
1
|
+
class Object #:nodoc:
|
2
|
+
# An object is blank if it's false, empty, or a whitespace string.
|
3
|
+
# For example, "", " ", +nil+, [], and {} are blank.
|
4
|
+
#
|
5
|
+
# This simplifies
|
6
|
+
#
|
7
|
+
# if !address.nil? && !address.empty?
|
8
|
+
#
|
9
|
+
# to
|
10
|
+
#
|
11
|
+
# if !address.blank?
|
12
|
+
def blank?
|
13
|
+
respond_to?(:empty?) ? empty? : !self
|
14
|
+
end
|
15
|
+
|
16
|
+
# An object is present if it's not blank.
|
17
|
+
def present?
|
18
|
+
!blank?
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class NilClass #:nodoc:
|
23
|
+
def blank?
|
24
|
+
true
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
class FalseClass #:nodoc:
|
29
|
+
def blank?
|
30
|
+
true
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
class TrueClass #:nodoc:
|
35
|
+
def blank?
|
36
|
+
false
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
class Array #:nodoc:
|
41
|
+
alias_method :blank?, :empty?
|
42
|
+
end
|
43
|
+
|
44
|
+
class Hash #:nodoc:
|
45
|
+
alias_method :blank?, :empty?
|
46
|
+
end
|
47
|
+
|
48
|
+
class String #:nodoc:
|
49
|
+
def blank?
|
50
|
+
self !~ /\S/
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
class Numeric #:nodoc:
|
55
|
+
def blank?
|
56
|
+
false
|
57
|
+
end
|
58
|
+
end
|
@@ -1,8 +1,8 @@
|
|
1
|
-
class Module #:nodoc:
|
2
|
-
def webrat_deprecate(old_method_name, new_method_name)
|
3
|
-
define_method old_method_name do |*args|
|
4
|
-
warn "#{old_method_name} is deprecated. Use #{new_method_name} instead."
|
5
|
-
__send__(new_method_name, *args)
|
6
|
-
end
|
7
|
-
end
|
8
|
-
end
|
1
|
+
class Module #:nodoc:
|
2
|
+
def webrat_deprecate(old_method_name, new_method_name)
|
3
|
+
define_method old_method_name do |*args|
|
4
|
+
warn "#{old_method_name} is deprecated. Use #{new_method_name} instead."
|
5
|
+
__send__(new_method_name, *args)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
@@ -1,12 +1,12 @@
|
|
1
|
-
class Array #:nodoc:
|
2
|
-
|
3
|
-
def detect_mapped
|
4
|
-
each do |element|
|
5
|
-
result = yield element
|
6
|
-
return result if result
|
7
|
-
end
|
8
|
-
|
9
|
-
return nil
|
10
|
-
end
|
11
|
-
|
12
|
-
end
|
1
|
+
class Array #:nodoc:
|
2
|
+
|
3
|
+
def detect_mapped
|
4
|
+
each do |element|
|
5
|
+
result = yield element
|
6
|
+
return result if result
|
7
|
+
end
|
8
|
+
|
9
|
+
return nil
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
|
-
class ::Object #:nodoc:
|
2
|
-
def meta_class
|
3
|
-
class << self; self end
|
4
|
-
end
|
5
|
-
end
|
6
|
-
|
1
|
+
class ::Object #:nodoc:
|
2
|
+
def meta_class
|
3
|
+
class << self; self end
|
4
|
+
end
|
5
|
+
end
|
6
|
+
|
@@ -1,5 +1,5 @@
|
|
1
|
-
class NilClass #:nodoc:
|
2
|
-
def to_param
|
3
|
-
nil
|
4
|
-
end
|
5
|
-
end
|
1
|
+
class NilClass #:nodoc:
|
2
|
+
def to_param
|
3
|
+
nil
|
4
|
+
end
|
5
|
+
end
|
@@ -1,27 +1,27 @@
|
|
1
|
-
class TCPSocket
|
2
|
-
|
3
|
-
def self.wait_for_service_with_timeout(options)
|
4
|
-
start_time = Time.now
|
5
|
-
|
6
|
-
until listening_service?(options)
|
7
|
-
verbose_wait
|
8
|
-
|
9
|
-
if options[:timeout] && (Time.now > start_time + options[:timeout])
|
10
|
-
raise SocketError.new("Socket did not open within #{options[:timeout]} seconds")
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
def self.wait_for_service_termination_with_timeout(options)
|
16
|
-
start_time = Time.now
|
17
|
-
|
18
|
-
while listening_service?(options)
|
19
|
-
verbose_wait
|
20
|
-
|
21
|
-
if options[:timeout] && (Time.now > start_time + options[:timeout])
|
22
|
-
raise SocketError.new("Socket did not terminate within #{options[:timeout]} seconds")
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
1
|
+
class TCPSocket
|
2
|
+
|
3
|
+
def self.wait_for_service_with_timeout(options)
|
4
|
+
start_time = Time.now
|
5
|
+
|
6
|
+
until listening_service?(options)
|
7
|
+
verbose_wait
|
8
|
+
|
9
|
+
if options[:timeout] && (Time.now > start_time + options[:timeout])
|
10
|
+
raise SocketError.new("Socket did not open within #{options[:timeout]} seconds")
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.wait_for_service_termination_with_timeout(options)
|
16
|
+
start_time = Time.now
|
17
|
+
|
18
|
+
while listening_service?(options)
|
19
|
+
verbose_wait
|
20
|
+
|
21
|
+
if options[:timeout] && (Time.now > start_time + options[:timeout])
|
22
|
+
raise SocketError.new("Socket did not terminate within #{options[:timeout]} seconds")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -1,10 +1,10 @@
|
|
1
|
-
module Merb #:nodoc:
|
2
|
-
module Test #:nodoc:
|
3
|
-
module RequestHelper #:nodoc:
|
4
|
-
def request(uri, env = {})
|
5
|
-
@_webrat_session ||= Webrat::MerbAdapter.new
|
6
|
-
@_webrat_session.response = @_webrat_session.request(uri, env)
|
7
|
-
end
|
8
|
-
end
|
9
|
-
end
|
10
|
-
end
|
1
|
+
module Merb #:nodoc:
|
2
|
+
module Test #:nodoc:
|
3
|
+
module RequestHelper #:nodoc:
|
4
|
+
def request(uri, env = {})
|
5
|
+
@_webrat_session ||= Webrat::MerbAdapter.new
|
6
|
+
@_webrat_session.response = @_webrat_session.request(uri, env)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -1,25 +1,25 @@
|
|
1
|
-
require "action_controller"
|
2
|
-
require "action_controller/integration"
|
3
|
-
|
4
|
-
module ActionController #:nodoc:
|
5
|
-
IntegrationTest.class_eval do
|
6
|
-
include Webrat::Methods
|
7
|
-
include Webrat::Matchers
|
8
|
-
|
9
|
-
# The Rails version of within supports passing in a model and Webrat
|
10
|
-
# will apply a scope based on Rails' dom_id for that model.
|
11
|
-
#
|
12
|
-
# Example:
|
13
|
-
# within User.last do
|
14
|
-
# click_link "Delete"
|
15
|
-
# end
|
16
|
-
def within(selector_or_object, &block)
|
17
|
-
if selector_or_object.is_a?(String)
|
18
|
-
super
|
19
|
-
else
|
20
|
-
super('#' + RecordIdentifier.dom_id(selector_or_object), &block)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
25
|
-
end
|
1
|
+
require "action_controller"
|
2
|
+
require "action_controller/integration"
|
3
|
+
|
4
|
+
module ActionController #:nodoc:
|
5
|
+
IntegrationTest.class_eval do
|
6
|
+
include Webrat::Methods
|
7
|
+
include Webrat::Matchers
|
8
|
+
|
9
|
+
# The Rails version of within supports passing in a model and Webrat
|
10
|
+
# will apply a scope based on Rails' dom_id for that model.
|
11
|
+
#
|
12
|
+
# Example:
|
13
|
+
# within User.last do
|
14
|
+
# click_link "Delete"
|
15
|
+
# end
|
16
|
+
def within(selector_or_object, &block)
|
17
|
+
if selector_or_object.is_a?(String)
|
18
|
+
super
|
19
|
+
else
|
20
|
+
super('#' + RecordIdentifier.dom_id(selector_or_object), &block)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
@@ -1,10 +1,10 @@
|
|
1
|
-
# Supports using the matchers in controller, helper, and view specs if you're
|
2
|
-
# using rspec-rails. Just add a require statement to spec/spec_helper.rb or env.rb:
|
3
|
-
#
|
4
|
-
# require 'webrat/rspec-rails'
|
5
|
-
#
|
6
|
-
require "webrat/core/matchers"
|
7
|
-
|
8
|
-
Spec::Runner.configure do |config|
|
9
|
-
config.include(Webrat::Matchers, :type => [:controller, :helper, :view])
|
10
|
-
end
|
1
|
+
# Supports using the matchers in controller, helper, and view specs if you're
|
2
|
+
# using rspec-rails. Just add a require statement to spec/spec_helper.rb or env.rb:
|
3
|
+
#
|
4
|
+
# require 'webrat/rspec-rails'
|
5
|
+
#
|
6
|
+
require "webrat/core/matchers"
|
7
|
+
|
8
|
+
Spec::Runner.configure do |config|
|
9
|
+
config.include(Webrat::Matchers, :type => [:controller, :helper, :view])
|
10
|
+
end
|
@@ -1,11 +1,11 @@
|
|
1
|
-
require "webrat/selenium"
|
2
|
-
|
3
|
-
if defined?(ActionController::IntegrationTest)
|
4
|
-
module ActionController #:nodoc:
|
5
|
-
IntegrationTest.class_eval do
|
6
|
-
include Webrat::Methods
|
7
|
-
include Webrat::Selenium::Methods
|
8
|
-
include Webrat::Selenium::Matchers
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
1
|
+
require "webrat/selenium"
|
2
|
+
|
3
|
+
if defined?(ActionController::IntegrationTest)
|
4
|
+
module ActionController #:nodoc:
|
5
|
+
IntegrationTest.class_eval do
|
6
|
+
include Webrat::Methods
|
7
|
+
include Webrat::Selenium::Methods
|
8
|
+
include Webrat::Selenium::Matchers
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
data/lib/webrat/merb.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
require "webrat"
|
2
|
-
|
3
|
-
# This is a temporary hack to support backwards compatibility
|
4
|
-
# with Merb 1.0.8 until it's updated to use the new Webrat.configure
|
5
|
-
# syntax
|
6
|
-
|
7
|
-
Webrat.configure do |config|
|
8
|
-
config.mode = :merb
|
9
|
-
end
|
1
|
+
require "webrat"
|
2
|
+
|
3
|
+
# This is a temporary hack to support backwards compatibility
|
4
|
+
# with Merb 1.0.8 until it's updated to use the new Webrat.configure
|
5
|
+
# syntax
|
6
|
+
|
7
|
+
Webrat.configure do |config|
|
8
|
+
config.mode = :merb
|
9
|
+
end
|
data/lib/webrat/rspec-rails.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
warn("Requiring 'webrat/rspec-rails' is deprecated. Please require 'webrat/integrations/rspec-rails' instead")
|
2
|
-
require "webrat/integrations/rspec-rails"
|
1
|
+
warn("Requiring 'webrat/rspec-rails' is deprecated. Please require 'webrat/integrations/rspec-rails' instead")
|
2
|
+
require "webrat/integrations/rspec-rails"
|
@@ -1,40 +1,40 @@
|
|
1
|
-
module Webrat
|
2
|
-
module Selenium
|
3
|
-
|
4
|
-
class ApplicationServerFactory
|
5
|
-
|
6
|
-
def self.app_server_instance
|
7
|
-
case Webrat.configuration.application_framework
|
8
|
-
when :sinatra
|
9
|
-
require "webrat/selenium/application_servers/sinatra"
|
10
|
-
return Webrat::Selenium::ApplicationServers::Sinatra.new
|
11
|
-
when :merb
|
12
|
-
require "webrat/selenium/application_servers/merb"
|
13
|
-
return Webrat::Selenium::ApplicationServers::Merb.new
|
14
|
-
when :rails
|
15
|
-
require "webrat/selenium/application_servers/rails"
|
16
|
-
return Webrat::Selenium::ApplicationServers::Rails.new
|
17
|
-
when :external
|
18
|
-
require "webrat/selenium/application_servers/external"
|
19
|
-
return Webrat::Selenium::ApplicationServers::External.new
|
20
|
-
else
|
21
|
-
raise WebratError.new(<<-STR)
|
22
|
-
Unknown Webrat application_framework: #{Webrat.configuration.application_framework.inspect}
|
23
|
-
|
24
|
-
Please ensure you have a Webrat configuration block that specifies an application_framework
|
25
|
-
in your test_helper.rb, spec_helper.rb, or env.rb (for Cucumber).
|
26
|
-
|
27
|
-
For example:
|
28
|
-
|
29
|
-
Webrat.configure do |config|
|
30
|
-
# ...
|
31
|
-
config.application_framework = :rails
|
32
|
-
end
|
33
|
-
STR
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
40
|
-
end
|
1
|
+
module Webrat
|
2
|
+
module Selenium
|
3
|
+
|
4
|
+
class ApplicationServerFactory
|
5
|
+
|
6
|
+
def self.app_server_instance
|
7
|
+
case Webrat.configuration.application_framework
|
8
|
+
when :sinatra
|
9
|
+
require "webrat/selenium/application_servers/sinatra"
|
10
|
+
return Webrat::Selenium::ApplicationServers::Sinatra.new
|
11
|
+
when :merb
|
12
|
+
require "webrat/selenium/application_servers/merb"
|
13
|
+
return Webrat::Selenium::ApplicationServers::Merb.new
|
14
|
+
when :rails
|
15
|
+
require "webrat/selenium/application_servers/rails"
|
16
|
+
return Webrat::Selenium::ApplicationServers::Rails.new
|
17
|
+
when :external
|
18
|
+
require "webrat/selenium/application_servers/external"
|
19
|
+
return Webrat::Selenium::ApplicationServers::External.new
|
20
|
+
else
|
21
|
+
raise WebratError.new(<<-STR)
|
22
|
+
Unknown Webrat application_framework: #{Webrat.configuration.application_framework.inspect}
|
23
|
+
|
24
|
+
Please ensure you have a Webrat configuration block that specifies an application_framework
|
25
|
+
in your test_helper.rb, spec_helper.rb, or env.rb (for Cucumber).
|
26
|
+
|
27
|
+
For example:
|
28
|
+
|
29
|
+
Webrat.configure do |config|
|
30
|
+
# ...
|
31
|
+
config.application_framework = :rails
|
32
|
+
end
|
33
|
+
STR
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|