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/selenium.rb
CHANGED
@@ -1,70 +1,70 @@
|
|
1
|
-
require "webrat"
|
2
|
-
require "selenium/client"
|
3
|
-
require "webrat/selenium/silence_stream"
|
4
|
-
require "webrat/selenium/selenium_session"
|
5
|
-
require "webrat/selenium/matchers"
|
6
|
-
require "webrat/core_extensions/tcp_socket"
|
7
|
-
|
8
|
-
module Webrat
|
9
|
-
# To use Webrat's Selenium support, you'll need the selenium-client gem installed.
|
10
|
-
# Activate it with (for example, in your <tt>env.rb</tt>):
|
11
|
-
#
|
12
|
-
# require "webrat"
|
13
|
-
#
|
14
|
-
# Webrat.configure do |config|
|
15
|
-
# config.mode = :selenium
|
16
|
-
# end
|
17
|
-
#
|
18
|
-
# == Dropping down to the selenium-client API
|
19
|
-
#
|
20
|
-
# If you ever need to do something with Selenium not provided in the Webrat API,
|
21
|
-
# you can always drop down to the selenium-client API using the <tt>selenium</tt> method.
|
22
|
-
# For example:
|
23
|
-
#
|
24
|
-
# When "I drag the photo to the left" do
|
25
|
-
# selenium.dragdrop("id=photo_123", "+350, 0")
|
26
|
-
# end
|
27
|
-
#
|
28
|
-
# == Choosing the underlying framework to test
|
29
|
-
#
|
30
|
-
# Webrat assumes you're using rails by default but it can also work with sinatra
|
31
|
-
# and merb. To take advantage of this you can use the configuration block to
|
32
|
-
# set the application_framework variable.
|
33
|
-
# require "webrat"
|
34
|
-
#
|
35
|
-
# Webrat.configure do |config|
|
36
|
-
# config.mode = :selenium
|
37
|
-
# config.application_port = 4567
|
38
|
-
# config.application_framework = :sinatra # could also be :merb
|
39
|
-
# end
|
40
|
-
#
|
41
|
-
# == Auto-starting of the appserver and java server
|
42
|
-
#
|
43
|
-
# Webrat will automatically start the Selenium Java server process and an instance
|
44
|
-
# of Mongrel when a test is run. The Mongrel will run in the "selenium" environment
|
45
|
-
# instead of "test", so ensure you've got that defined, and will run on port
|
46
|
-
# Webrat.configuration.application_port.
|
47
|
-
#
|
48
|
-
# == Waiting
|
49
|
-
#
|
50
|
-
# In order to make writing Selenium tests as easy as possible, Webrat will automatically
|
51
|
-
# wait for the correct elements to exist on the page when trying to manipulate them
|
52
|
-
# with methods like <tt>fill_in</tt>, etc. In general, this means you should be able to write
|
53
|
-
# your Webrat::Selenium tests ignoring the concurrency issues that can plague in-browser
|
54
|
-
# testing, so long as you're using the Webrat API.
|
55
|
-
module Selenium
|
56
|
-
module Methods
|
57
|
-
def response
|
58
|
-
webrat_session.response
|
59
|
-
end
|
60
|
-
|
61
|
-
def wait_for(*args, &block)
|
62
|
-
webrat_session.wait_for(*args, &block)
|
63
|
-
end
|
64
|
-
|
65
|
-
def save_and_open_screengrab
|
66
|
-
webrat_session.save_and_open_screengrab
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
1
|
+
require "webrat"
|
2
|
+
require "selenium/client"
|
3
|
+
require "webrat/selenium/silence_stream"
|
4
|
+
require "webrat/selenium/selenium_session"
|
5
|
+
require "webrat/selenium/matchers"
|
6
|
+
require "webrat/core_extensions/tcp_socket"
|
7
|
+
|
8
|
+
module Webrat
|
9
|
+
# To use Webrat's Selenium support, you'll need the selenium-client gem installed.
|
10
|
+
# Activate it with (for example, in your <tt>env.rb</tt>):
|
11
|
+
#
|
12
|
+
# require "webrat"
|
13
|
+
#
|
14
|
+
# Webrat.configure do |config|
|
15
|
+
# config.mode = :selenium
|
16
|
+
# end
|
17
|
+
#
|
18
|
+
# == Dropping down to the selenium-client API
|
19
|
+
#
|
20
|
+
# If you ever need to do something with Selenium not provided in the Webrat API,
|
21
|
+
# you can always drop down to the selenium-client API using the <tt>selenium</tt> method.
|
22
|
+
# For example:
|
23
|
+
#
|
24
|
+
# When "I drag the photo to the left" do
|
25
|
+
# selenium.dragdrop("id=photo_123", "+350, 0")
|
26
|
+
# end
|
27
|
+
#
|
28
|
+
# == Choosing the underlying framework to test
|
29
|
+
#
|
30
|
+
# Webrat assumes you're using rails by default but it can also work with sinatra
|
31
|
+
# and merb. To take advantage of this you can use the configuration block to
|
32
|
+
# set the application_framework variable.
|
33
|
+
# require "webrat"
|
34
|
+
#
|
35
|
+
# Webrat.configure do |config|
|
36
|
+
# config.mode = :selenium
|
37
|
+
# config.application_port = 4567
|
38
|
+
# config.application_framework = :sinatra # could also be :merb
|
39
|
+
# end
|
40
|
+
#
|
41
|
+
# == Auto-starting of the appserver and java server
|
42
|
+
#
|
43
|
+
# Webrat will automatically start the Selenium Java server process and an instance
|
44
|
+
# of Mongrel when a test is run. The Mongrel will run in the "selenium" environment
|
45
|
+
# instead of "test", so ensure you've got that defined, and will run on port
|
46
|
+
# Webrat.configuration.application_port.
|
47
|
+
#
|
48
|
+
# == Waiting
|
49
|
+
#
|
50
|
+
# In order to make writing Selenium tests as easy as possible, Webrat will automatically
|
51
|
+
# wait for the correct elements to exist on the page when trying to manipulate them
|
52
|
+
# with methods like <tt>fill_in</tt>, etc. In general, this means you should be able to write
|
53
|
+
# your Webrat::Selenium tests ignoring the concurrency issues that can plague in-browser
|
54
|
+
# testing, so long as you're using the Webrat API.
|
55
|
+
module Selenium
|
56
|
+
module Methods
|
57
|
+
def response
|
58
|
+
webrat_session.response
|
59
|
+
end
|
60
|
+
|
61
|
+
def wait_for(*args, &block)
|
62
|
+
webrat_session.wait_for(*args, &block)
|
63
|
+
end
|
64
|
+
|
65
|
+
def save_and_open_screengrab
|
66
|
+
webrat_session.save_and_open_screengrab
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
data/lib/webrat.rb
CHANGED
@@ -1,18 +1,18 @@
|
|
1
|
-
require "rack"
|
2
|
-
require "nokogiri"
|
3
|
-
|
4
|
-
module Webrat
|
5
|
-
VERSION = "0.6.rc1"
|
6
|
-
|
7
|
-
autoload :MechanizeAdapter, "webrat/adapters/mechanize"
|
8
|
-
autoload :MerbAdapter, "webrat/adapters/merb"
|
9
|
-
autoload :RackAdapter, "webrat/adapters/rack"
|
10
|
-
autoload :RailsAdapter, "webrat/adapters/rails"
|
11
|
-
autoload :SinatraAdapter, "webrat/adapters/sinatra"
|
12
|
-
|
13
|
-
# The common base class for all exceptions raised by Webrat.
|
14
|
-
class WebratError < StandardError
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
require "webrat/core"
|
1
|
+
require "rack"
|
2
|
+
require "nokogiri"
|
3
|
+
|
4
|
+
module Webrat
|
5
|
+
VERSION = "0.6.rc1"
|
6
|
+
|
7
|
+
autoload :MechanizeAdapter, "webrat/adapters/mechanize"
|
8
|
+
autoload :MerbAdapter, "webrat/adapters/merb"
|
9
|
+
autoload :RackAdapter, "webrat/adapters/rack"
|
10
|
+
autoload :RailsAdapter, "webrat/adapters/rails"
|
11
|
+
autoload :SinatraAdapter, "webrat/adapters/sinatra"
|
12
|
+
|
13
|
+
# The common base class for all exceptions raised by Webrat.
|
14
|
+
class WebratError < StandardError
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
require "webrat/core"
|
data/spec/fakes/test_adapter.rb
CHANGED
@@ -1,37 +1,37 @@
|
|
1
|
-
module Webrat #:nodoc:
|
2
|
-
def self.adapter_class #:nodoc:
|
3
|
-
TestAdapter
|
4
|
-
end
|
5
|
-
|
6
|
-
class TestAdapter #:nodoc:
|
7
|
-
attr_accessor :response_body
|
8
|
-
attr_writer :response_code
|
9
|
-
|
10
|
-
def initialize(*args)
|
11
|
-
end
|
12
|
-
|
13
|
-
def doc_root
|
14
|
-
File.expand_path(File.join(".", "public"))
|
15
|
-
end
|
16
|
-
|
17
|
-
def response
|
18
|
-
@response ||= Object.new
|
19
|
-
end
|
20
|
-
|
21
|
-
def response_code
|
22
|
-
@response_code || 200
|
23
|
-
end
|
24
|
-
|
25
|
-
def get(url, data, headers = nil)
|
26
|
-
end
|
27
|
-
|
28
|
-
def post(url, data, headers = nil)
|
29
|
-
end
|
30
|
-
|
31
|
-
def put(url, data, headers = nil)
|
32
|
-
end
|
33
|
-
|
34
|
-
def delete(url, data, headers = nil)
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
1
|
+
module Webrat #:nodoc:
|
2
|
+
def self.adapter_class #:nodoc:
|
3
|
+
TestAdapter
|
4
|
+
end
|
5
|
+
|
6
|
+
class TestAdapter #:nodoc:
|
7
|
+
attr_accessor :response_body
|
8
|
+
attr_writer :response_code
|
9
|
+
|
10
|
+
def initialize(*args)
|
11
|
+
end
|
12
|
+
|
13
|
+
def doc_root
|
14
|
+
File.expand_path(File.join(".", "public"))
|
15
|
+
end
|
16
|
+
|
17
|
+
def response
|
18
|
+
@response ||= Object.new
|
19
|
+
end
|
20
|
+
|
21
|
+
def response_code
|
22
|
+
@response_code || 200
|
23
|
+
end
|
24
|
+
|
25
|
+
def get(url, data, headers = nil)
|
26
|
+
end
|
27
|
+
|
28
|
+
def post(url, data, headers = nil)
|
29
|
+
end
|
30
|
+
|
31
|
+
def put(url, data, headers = nil)
|
32
|
+
end
|
33
|
+
|
34
|
+
def delete(url, data, headers = nil)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'spec/rake/spectask'
|
3
|
-
|
4
|
-
Spec::Rake::SpecTask.new do |t|
|
5
|
-
t.spec_opts = ['--color']
|
6
|
-
t.spec_files = FileList['spec/**/*_spec.rb']
|
1
|
+
require 'rubygems'
|
2
|
+
require 'spec/rake/spectask'
|
3
|
+
|
4
|
+
Spec::Rake::SpecTask.new do |t|
|
5
|
+
t.spec_opts = ['--color']
|
6
|
+
t.spec_files = FileList['spec/**/*_spec.rb']
|
7
7
|
end
|
@@ -1,2 +1,2 @@
|
|
1
|
-
require "sample_app"
|
1
|
+
require "sample_app"
|
2
2
|
run SampleApp
|
@@ -1,20 +1,20 @@
|
|
1
|
-
require "rubygems"
|
2
|
-
require "sinatra/base"
|
3
|
-
|
4
|
-
class SampleApp < Sinatra::Default
|
5
|
-
get "/" do
|
6
|
-
"Hello World"
|
7
|
-
end
|
8
|
-
|
9
|
-
get "/internal_redirect" do
|
10
|
-
redirect URI.join(request.url, "redirected").to_s
|
11
|
-
end
|
12
|
-
|
13
|
-
get "/external_redirect" do
|
14
|
-
redirect "http://example.tst/"
|
15
|
-
end
|
16
|
-
|
17
|
-
get "/redirected" do
|
18
|
-
"Redirected"
|
19
|
-
end
|
20
|
-
end
|
1
|
+
require "rubygems"
|
2
|
+
require "sinatra/base"
|
3
|
+
|
4
|
+
class SampleApp < Sinatra::Default
|
5
|
+
get "/" do
|
6
|
+
"Hello World"
|
7
|
+
end
|
8
|
+
|
9
|
+
get "/internal_redirect" do
|
10
|
+
redirect URI.join(request.url, "redirected").to_s
|
11
|
+
end
|
12
|
+
|
13
|
+
get "/external_redirect" do
|
14
|
+
redirect "http://example.tst/"
|
15
|
+
end
|
16
|
+
|
17
|
+
get "/redirected" do
|
18
|
+
"Redirected"
|
19
|
+
end
|
20
|
+
end
|
@@ -1,22 +1,22 @@
|
|
1
|
-
require File.dirname(__FILE__) + "/spec_helper"
|
2
|
-
|
3
|
-
describe "Webrat's Mechanize mode" do
|
4
|
-
it "should work" do
|
5
|
-
response = visit("http://localhost:9292/")
|
6
|
-
response.should contain("Hello World")
|
7
|
-
end
|
8
|
-
|
9
|
-
it "should follow redirects" do
|
10
|
-
response = visit("http://localhost:9292/internal_redirect")
|
11
|
-
response.should contain("Redirected")
|
12
|
-
end
|
13
|
-
|
14
|
-
it "should follow links"
|
15
|
-
it "should submit forms"
|
16
|
-
it "should not follow external redirects" do
|
17
|
-
pending do
|
18
|
-
response = visit("http://localhost:9292/external_redirect")
|
19
|
-
response.should contain("Foo")
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
1
|
+
require File.dirname(__FILE__) + "/spec_helper"
|
2
|
+
|
3
|
+
describe "Webrat's Mechanize mode" do
|
4
|
+
it "should work" do
|
5
|
+
response = visit("http://localhost:9292/")
|
6
|
+
response.should contain("Hello World")
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should follow redirects" do
|
10
|
+
response = visit("http://localhost:9292/internal_redirect")
|
11
|
+
response.should contain("Redirected")
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should follow links"
|
15
|
+
it "should submit forms"
|
16
|
+
it "should not follow external redirects" do
|
17
|
+
pending do
|
18
|
+
response = visit("http://localhost:9292/external_redirect")
|
19
|
+
response.should contain("Foo")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -1,27 +1,27 @@
|
|
1
|
-
require "rubygems"
|
2
|
-
require "spec"
|
3
|
-
|
4
|
-
$LOAD_PATH.unshift File.dirname(__FILE__) + "/../../../../lib"
|
5
|
-
require "webrat"
|
6
|
-
|
7
|
-
Webrat.configure do |config|
|
8
|
-
config.mode = :mechanize
|
9
|
-
end
|
10
|
-
|
11
|
-
Spec::Runner.configure do |config|
|
12
|
-
config.include Webrat::Methods
|
13
|
-
config.include Webrat::Matchers
|
14
|
-
|
15
|
-
config.before :suite do
|
16
|
-
if File.exists?("rack.pid")
|
17
|
-
Process.kill("TERM", File.read("rack.pid").to_i)
|
18
|
-
end
|
19
|
-
|
20
|
-
system "rackup --daemonize --pid rack.pid config.ru"
|
21
|
-
end
|
22
|
-
|
23
|
-
config.after :suite do
|
24
|
-
Process.kill("TERM", File.read("rack.pid").to_i)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
1
|
+
require "rubygems"
|
2
|
+
require "spec"
|
3
|
+
|
4
|
+
$LOAD_PATH.unshift File.dirname(__FILE__) + "/../../../../lib"
|
5
|
+
require "webrat"
|
6
|
+
|
7
|
+
Webrat.configure do |config|
|
8
|
+
config.mode = :mechanize
|
9
|
+
end
|
10
|
+
|
11
|
+
Spec::Runner.configure do |config|
|
12
|
+
config.include Webrat::Methods
|
13
|
+
config.include Webrat::Matchers
|
14
|
+
|
15
|
+
config.before :suite do
|
16
|
+
if File.exists?("rack.pid")
|
17
|
+
Process.kill("TERM", File.read("rack.pid").to_i)
|
18
|
+
end
|
19
|
+
|
20
|
+
system "rackup --daemonize --pid rack.pid config.ru"
|
21
|
+
end
|
22
|
+
|
23
|
+
config.after :suite do
|
24
|
+
Process.kill("TERM", File.read("rack.pid").to_i)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
@@ -1,21 +1,21 @@
|
|
1
|
-
.DS_Store
|
2
|
-
log/*
|
3
|
-
tmp/*
|
4
|
-
TAGS
|
5
|
-
*~
|
6
|
-
.#*
|
7
|
-
schema/schema.rb
|
8
|
-
schema/*_structure.sql
|
9
|
-
schema/*.sqlite3
|
10
|
-
schema/*.sqlite
|
11
|
-
schema/*.db
|
12
|
-
*.sqlite
|
13
|
-
*.sqlite3
|
14
|
-
*.db
|
15
|
-
src/*
|
16
|
-
.hgignore
|
17
|
-
.hg/*
|
18
|
-
.svn/*
|
19
|
-
gems/gems/*
|
20
|
-
gems/specifications/*
|
1
|
+
.DS_Store
|
2
|
+
log/*
|
3
|
+
tmp/*
|
4
|
+
TAGS
|
5
|
+
*~
|
6
|
+
.#*
|
7
|
+
schema/schema.rb
|
8
|
+
schema/*_structure.sql
|
9
|
+
schema/*.sqlite3
|
10
|
+
schema/*.sqlite
|
11
|
+
schema/*.db
|
12
|
+
*.sqlite
|
13
|
+
*.sqlite3
|
14
|
+
*.db
|
15
|
+
src/*
|
16
|
+
.hgignore
|
17
|
+
.hg/*
|
18
|
+
.svn/*
|
19
|
+
gems/gems/*
|
20
|
+
gems/specifications/*
|
21
21
|
merb_profile_results
|
@@ -1,35 +1,35 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'rake/rdoctask'
|
3
|
-
|
4
|
-
require 'merb-core'
|
5
|
-
require 'merb-core/tasks/merb'
|
6
|
-
|
7
|
-
include FileUtils
|
8
|
-
|
9
|
-
# Load the basic runtime dependencies; this will include
|
10
|
-
# any plugins and therefore plugin rake tasks.
|
11
|
-
init_env = ENV['MERB_ENV'] || 'rake'
|
12
|
-
Merb.load_dependencies(:environment => init_env)
|
13
|
-
|
14
|
-
# Get Merb plugins and dependencies
|
15
|
-
Merb::Plugins.rakefiles.each { |r| require r }
|
16
|
-
|
17
|
-
# Load any app level custom rakefile extensions from lib/tasks
|
18
|
-
tasks_path = File.join(File.dirname(__FILE__), "lib", "tasks")
|
19
|
-
rake_files = Dir["#{tasks_path}/*.rake"]
|
20
|
-
rake_files.each{|rake_file| load rake_file }
|
21
|
-
|
22
|
-
desc "Start runner environment"
|
23
|
-
task :merb_env do
|
24
|
-
Merb.start_environment(:environment => init_env, :adapter => 'runner')
|
25
|
-
end
|
26
|
-
|
27
|
-
require 'spec/rake/spectask'
|
28
|
-
require 'merb-core/test/tasks/spectasks'
|
29
|
-
desc 'Default: run spec examples'
|
30
|
-
task :default => 'spec'
|
31
|
-
|
32
|
-
##############################################################################
|
33
|
-
# ADD YOUR CUSTOM TASKS IN /lib/tasks
|
34
|
-
# NAME YOUR RAKE FILES file_name.rake
|
35
|
-
##############################################################################
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake/rdoctask'
|
3
|
+
|
4
|
+
require 'merb-core'
|
5
|
+
require 'merb-core/tasks/merb'
|
6
|
+
|
7
|
+
include FileUtils
|
8
|
+
|
9
|
+
# Load the basic runtime dependencies; this will include
|
10
|
+
# any plugins and therefore plugin rake tasks.
|
11
|
+
init_env = ENV['MERB_ENV'] || 'rake'
|
12
|
+
Merb.load_dependencies(:environment => init_env)
|
13
|
+
|
14
|
+
# Get Merb plugins and dependencies
|
15
|
+
Merb::Plugins.rakefiles.each { |r| require r }
|
16
|
+
|
17
|
+
# Load any app level custom rakefile extensions from lib/tasks
|
18
|
+
tasks_path = File.join(File.dirname(__FILE__), "lib", "tasks")
|
19
|
+
rake_files = Dir["#{tasks_path}/*.rake"]
|
20
|
+
rake_files.each{|rake_file| load rake_file }
|
21
|
+
|
22
|
+
desc "Start runner environment"
|
23
|
+
task :merb_env do
|
24
|
+
Merb.start_environment(:environment => init_env, :adapter => 'runner')
|
25
|
+
end
|
26
|
+
|
27
|
+
require 'spec/rake/spectask'
|
28
|
+
require 'merb-core/test/tasks/spectasks'
|
29
|
+
desc 'Default: run spec examples'
|
30
|
+
task :default => 'spec'
|
31
|
+
|
32
|
+
##############################################################################
|
33
|
+
# ADD YOUR CUSTOM TASKS IN /lib/tasks
|
34
|
+
# NAME YOUR RAKE FILES file_name.rake
|
35
|
+
##############################################################################
|
@@ -1,2 +1,2 @@
|
|
1
|
-
class Application < Merb::Controller
|
2
|
-
end
|
1
|
+
class Application < Merb::Controller
|
2
|
+
end
|
@@ -1,13 +1,13 @@
|
|
1
|
-
class Exceptions < Merb::Controller
|
2
|
-
|
3
|
-
# handle NotFound exceptions (404)
|
4
|
-
def not_found
|
5
|
-
render :format => :html
|
6
|
-
end
|
7
|
-
|
8
|
-
# handle NotAcceptable exceptions (406)
|
9
|
-
def not_acceptable
|
10
|
-
render :format => :html
|
11
|
-
end
|
12
|
-
|
13
|
-
end
|
1
|
+
class Exceptions < Merb::Controller
|
2
|
+
|
3
|
+
# handle NotFound exceptions (404)
|
4
|
+
def not_found
|
5
|
+
render :format => :html
|
6
|
+
end
|
7
|
+
|
8
|
+
# handle NotAcceptable exceptions (406)
|
9
|
+
def not_acceptable
|
10
|
+
render :format => :html
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
@@ -1,27 +1,27 @@
|
|
1
|
-
class Testing < Application
|
2
|
-
|
3
|
-
def show_form
|
4
|
-
render
|
5
|
-
end
|
6
|
-
|
7
|
-
def upload
|
8
|
-
case request.method
|
9
|
-
when :get then render
|
10
|
-
when :post then
|
11
|
-
uploaded_file = params[:uploaded_file]
|
12
|
-
render [uploaded_file[:filename], uploaded_file[:tempfile].class.name].inspect
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
def submit_form
|
17
|
-
end
|
18
|
-
|
19
|
-
def internal_redirect
|
20
|
-
redirect "/"
|
21
|
-
end
|
22
|
-
|
23
|
-
def external_redirect
|
24
|
-
redirect "http://google.com"
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
1
|
+
class Testing < Application
|
2
|
+
|
3
|
+
def show_form
|
4
|
+
render
|
5
|
+
end
|
6
|
+
|
7
|
+
def upload
|
8
|
+
case request.method
|
9
|
+
when :get then render
|
10
|
+
when :post then
|
11
|
+
uploaded_file = params[:uploaded_file]
|
12
|
+
render [uploaded_file[:filename], uploaded_file[:tempfile].class.name].inspect
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def submit_form
|
17
|
+
end
|
18
|
+
|
19
|
+
def internal_redirect
|
20
|
+
redirect "/"
|
21
|
+
end
|
22
|
+
|
23
|
+
def external_redirect
|
24
|
+
redirect "http://google.com"
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|