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
@@ -1,87 +1,87 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
|
2
|
-
|
3
|
-
describe Webrat::Configuration do
|
4
|
-
|
5
|
-
Spec::Matchers.define :open_error_files do
|
6
|
-
match do |config|
|
7
|
-
config.open_error_files?
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should have a mode" do
|
12
|
-
Webrat.configuration.should respond_to(:mode)
|
13
|
-
end
|
14
|
-
|
15
|
-
it "should open error files by default" do
|
16
|
-
config = Webrat::Configuration.new
|
17
|
-
config.should open_error_files
|
18
|
-
end
|
19
|
-
|
20
|
-
it "should detect infinite redirects after 10" do
|
21
|
-
config = Webrat::Configuration.new
|
22
|
-
config.infinite_redirect_limit.should == 10
|
23
|
-
end
|
24
|
-
|
25
|
-
it "should be configurable with a block" do
|
26
|
-
Webrat.configure do |config|
|
27
|
-
config.open_error_files = false
|
28
|
-
end
|
29
|
-
|
30
|
-
config = Webrat.configuration
|
31
|
-
config.should_not open_error_files
|
32
|
-
end
|
33
|
-
|
34
|
-
it "should be configurable with multiple blocks" do
|
35
|
-
Webrat.configure do |config|
|
36
|
-
config.open_error_files = false
|
37
|
-
end
|
38
|
-
|
39
|
-
Webrat.configure do |config|
|
40
|
-
config.selenium_server_port = 1234
|
41
|
-
end
|
42
|
-
|
43
|
-
config = Webrat.configuration
|
44
|
-
config.should_not open_error_files
|
45
|
-
config.selenium_server_port.should == 1234
|
46
|
-
end
|
47
|
-
|
48
|
-
describe "Selenium" do
|
49
|
-
before :each do
|
50
|
-
@config = Webrat::Configuration.new
|
51
|
-
end
|
52
|
-
|
53
|
-
it "should use 'test' as the application environment by default" do
|
54
|
-
@config.application_environment.should == :test
|
55
|
-
end
|
56
|
-
|
57
|
-
it "should use 3001 as the application port by default" do
|
58
|
-
@config.application_port.should == 3001
|
59
|
-
end
|
60
|
-
|
61
|
-
it 'should default application address to localhost' do
|
62
|
-
@config.application_address.should == 'localhost'
|
63
|
-
end
|
64
|
-
|
65
|
-
it 'should default selenium server address to nil' do
|
66
|
-
@config.selenium_server_address.should be_nil
|
67
|
-
end
|
68
|
-
|
69
|
-
it 'should default selenium server port to 4444' do
|
70
|
-
@config.selenium_server_port.should == 4444
|
71
|
-
end
|
72
|
-
|
73
|
-
it 'should default selenium browser key to *firefox' do
|
74
|
-
@config.selenium_browser_key.should == '*firefox'
|
75
|
-
end
|
76
|
-
|
77
|
-
it 'should default selenium browser startup timeout to 5 seconds' do
|
78
|
-
@config.selenium_browser_startup_timeout.should == 5
|
79
|
-
end
|
80
|
-
|
81
|
-
it 'should allow overriding of the browser startup timeout' do
|
82
|
-
@config.selenium_browser_startup_timeout = 10
|
83
|
-
@config.selenium_browser_startup_timeout.should == 10
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
end
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
|
2
|
+
|
3
|
+
describe Webrat::Configuration do
|
4
|
+
|
5
|
+
Spec::Matchers.define :open_error_files do
|
6
|
+
match do |config|
|
7
|
+
config.open_error_files?
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should have a mode" do
|
12
|
+
Webrat.configuration.should respond_to(:mode)
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should open error files by default" do
|
16
|
+
config = Webrat::Configuration.new
|
17
|
+
config.should open_error_files
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should detect infinite redirects after 10" do
|
21
|
+
config = Webrat::Configuration.new
|
22
|
+
config.infinite_redirect_limit.should == 10
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should be configurable with a block" do
|
26
|
+
Webrat.configure do |config|
|
27
|
+
config.open_error_files = false
|
28
|
+
end
|
29
|
+
|
30
|
+
config = Webrat.configuration
|
31
|
+
config.should_not open_error_files
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should be configurable with multiple blocks" do
|
35
|
+
Webrat.configure do |config|
|
36
|
+
config.open_error_files = false
|
37
|
+
end
|
38
|
+
|
39
|
+
Webrat.configure do |config|
|
40
|
+
config.selenium_server_port = 1234
|
41
|
+
end
|
42
|
+
|
43
|
+
config = Webrat.configuration
|
44
|
+
config.should_not open_error_files
|
45
|
+
config.selenium_server_port.should == 1234
|
46
|
+
end
|
47
|
+
|
48
|
+
describe "Selenium" do
|
49
|
+
before :each do
|
50
|
+
@config = Webrat::Configuration.new
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should use 'test' as the application environment by default" do
|
54
|
+
@config.application_environment.should == :test
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should use 3001 as the application port by default" do
|
58
|
+
@config.application_port.should == 3001
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'should default application address to localhost' do
|
62
|
+
@config.application_address.should == 'localhost'
|
63
|
+
end
|
64
|
+
|
65
|
+
it 'should default selenium server address to nil' do
|
66
|
+
@config.selenium_server_address.should be_nil
|
67
|
+
end
|
68
|
+
|
69
|
+
it 'should default selenium server port to 4444' do
|
70
|
+
@config.selenium_server_port.should == 4444
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'should default selenium browser key to *firefox' do
|
74
|
+
@config.selenium_browser_key.should == '*firefox'
|
75
|
+
end
|
76
|
+
|
77
|
+
it 'should default selenium browser startup timeout to 5 seconds' do
|
78
|
+
@config.selenium_browser_startup_timeout.should == 5
|
79
|
+
end
|
80
|
+
|
81
|
+
it 'should allow overriding of the browser startup timeout' do
|
82
|
+
@config.selenium_browser_startup_timeout = 10
|
83
|
+
@config.selenium_browser_startup_timeout.should == 10
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
@@ -1,85 +1,85 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
|
2
|
-
|
3
|
-
module Webrat
|
4
|
-
describe Field do
|
5
|
-
unless RUBY_PLATFORM =~ /java/
|
6
|
-
it "should have nice inspect output" do
|
7
|
-
html = <<-HTML
|
8
|
-
<html>
|
9
|
-
<input type='checkbox' checked='checked' />
|
10
|
-
</html>
|
11
|
-
HTML
|
12
|
-
|
13
|
-
element = Webrat::XML.document(html).css("input").first
|
14
|
-
checkbox = CheckboxField.new(nil, element)
|
15
|
-
checkbox.inspect.should =~ /#<Webrat::CheckboxField @element=<input type=['"]checkbox['"] checked(=['"]checked['"])?\/?>>/
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
describe CheckboxField do
|
21
|
-
it "should say it is checked if it is" do
|
22
|
-
html = <<-HTML
|
23
|
-
<html>
|
24
|
-
<input type='checkbox' checked='checked' />
|
25
|
-
</html>
|
26
|
-
HTML
|
27
|
-
|
28
|
-
element = Webrat::XML.document(html).css("input").first
|
29
|
-
checkbox = CheckboxField.new(nil, element)
|
30
|
-
checkbox.should be_checked
|
31
|
-
end
|
32
|
-
|
33
|
-
it "should say it is not checked if it is not" do
|
34
|
-
html = <<-HTML
|
35
|
-
<html>
|
36
|
-
<input type='checkbox' />
|
37
|
-
</html>
|
38
|
-
HTML
|
39
|
-
|
40
|
-
element = Webrat::XML.document(html).css("input").first
|
41
|
-
checkbox = CheckboxField.new(nil, element)
|
42
|
-
checkbox.should_not be_checked
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
describe RadioField do
|
47
|
-
it "should say it is checked if it is" do
|
48
|
-
html = <<-HTML
|
49
|
-
<html>
|
50
|
-
<input type='radio' checked='checked' />
|
51
|
-
</html>
|
52
|
-
HTML
|
53
|
-
|
54
|
-
element = Webrat::XML.document(html).css("input").first
|
55
|
-
radio_button = RadioField.new(nil, element)
|
56
|
-
radio_button.should be_checked
|
57
|
-
end
|
58
|
-
|
59
|
-
it "should say it is not checked if it is not" do
|
60
|
-
html = <<-HTML
|
61
|
-
<html><input type='radio' /></html>
|
62
|
-
HTML
|
63
|
-
|
64
|
-
element = Webrat::XML.document(html).css("input").first
|
65
|
-
radio_button = RadioField.new(nil, element)
|
66
|
-
radio_button.should_not be_checked
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
describe TextField do
|
71
|
-
it 'should not escape values in mechanize mode' do
|
72
|
-
Webrat.configuration.mode = :mechanize
|
73
|
-
|
74
|
-
html = <<-HTML
|
75
|
-
<html>
|
76
|
-
<input type="text" name="email" value="user@example.com" />
|
77
|
-
</html>
|
78
|
-
HTML
|
79
|
-
|
80
|
-
element = Webrat::XML.document(html).css('input').first
|
81
|
-
text_field = TextField.new(nil, element)
|
82
|
-
text_field.to_param.should == { 'email' => 'user@example.com' }
|
83
|
-
end
|
84
|
-
end
|
85
|
-
end
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
|
2
|
+
|
3
|
+
module Webrat
|
4
|
+
describe Field do
|
5
|
+
unless RUBY_PLATFORM =~ /java/
|
6
|
+
it "should have nice inspect output" do
|
7
|
+
html = <<-HTML
|
8
|
+
<html>
|
9
|
+
<input type='checkbox' checked='checked' />
|
10
|
+
</html>
|
11
|
+
HTML
|
12
|
+
|
13
|
+
element = Webrat::XML.document(html).css("input").first
|
14
|
+
checkbox = CheckboxField.new(nil, element)
|
15
|
+
checkbox.inspect.should =~ /#<Webrat::CheckboxField @element=<input type=['"]checkbox['"] checked(=['"]checked['"])?\/?>>/
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe CheckboxField do
|
21
|
+
it "should say it is checked if it is" do
|
22
|
+
html = <<-HTML
|
23
|
+
<html>
|
24
|
+
<input type='checkbox' checked='checked' />
|
25
|
+
</html>
|
26
|
+
HTML
|
27
|
+
|
28
|
+
element = Webrat::XML.document(html).css("input").first
|
29
|
+
checkbox = CheckboxField.new(nil, element)
|
30
|
+
checkbox.should be_checked
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should say it is not checked if it is not" do
|
34
|
+
html = <<-HTML
|
35
|
+
<html>
|
36
|
+
<input type='checkbox' />
|
37
|
+
</html>
|
38
|
+
HTML
|
39
|
+
|
40
|
+
element = Webrat::XML.document(html).css("input").first
|
41
|
+
checkbox = CheckboxField.new(nil, element)
|
42
|
+
checkbox.should_not be_checked
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
describe RadioField do
|
47
|
+
it "should say it is checked if it is" do
|
48
|
+
html = <<-HTML
|
49
|
+
<html>
|
50
|
+
<input type='radio' checked='checked' />
|
51
|
+
</html>
|
52
|
+
HTML
|
53
|
+
|
54
|
+
element = Webrat::XML.document(html).css("input").first
|
55
|
+
radio_button = RadioField.new(nil, element)
|
56
|
+
radio_button.should be_checked
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should say it is not checked if it is not" do
|
60
|
+
html = <<-HTML
|
61
|
+
<html><input type='radio' /></html>
|
62
|
+
HTML
|
63
|
+
|
64
|
+
element = Webrat::XML.document(html).css("input").first
|
65
|
+
radio_button = RadioField.new(nil, element)
|
66
|
+
radio_button.should_not be_checked
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
describe TextField do
|
71
|
+
it 'should not escape values in mechanize mode' do
|
72
|
+
Webrat.configuration.mode = :mechanize
|
73
|
+
|
74
|
+
html = <<-HTML
|
75
|
+
<html>
|
76
|
+
<input type="text" name="email" value="user@example.com" />
|
77
|
+
</html>
|
78
|
+
HTML
|
79
|
+
|
80
|
+
element = Webrat::XML.document(html).css('input').first
|
81
|
+
text_field = TextField.new(nil, element)
|
82
|
+
text_field.to_param.should == { 'email' => 'user@example.com' }
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -1,24 +1,24 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
|
2
|
-
|
3
|
-
describe Webrat::Link do
|
4
|
-
# include Webrat::Link
|
5
|
-
|
6
|
-
before do
|
7
|
-
webrat_session = mock(Webrat::TestAdapter)
|
8
|
-
@link_text_with_nbsp = 'Link' + [0xA0].pack("U") + 'Text'
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should pass through relative urls" do
|
12
|
-
link = Webrat::Link.new(webrat_session, {"href" => "/path"})
|
13
|
-
webrat_session.should_receive(:request_page).with("/path", :get, {})
|
14
|
-
link.click
|
15
|
-
end
|
16
|
-
|
17
|
-
it "shouldnt put base url onto " do
|
18
|
-
url = "https://www.example.com/path"
|
19
|
-
webrat_session.should_receive(:request_page).with(url, :get, {})
|
20
|
-
link = Webrat::Link.new(webrat_session, {"href" => url})
|
21
|
-
link.click
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
|
2
|
+
|
3
|
+
describe Webrat::Link do
|
4
|
+
# include Webrat::Link
|
5
|
+
|
6
|
+
before do
|
7
|
+
webrat_session = mock(Webrat::TestAdapter)
|
8
|
+
@link_text_with_nbsp = 'Link' + [0xA0].pack("U") + 'Text'
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should pass through relative urls" do
|
12
|
+
link = Webrat::Link.new(webrat_session, {"href" => "/path"})
|
13
|
+
webrat_session.should_receive(:request_page).with("/path", :get, {})
|
14
|
+
link.click
|
15
|
+
end
|
16
|
+
|
17
|
+
it "shouldnt put base url onto " do
|
18
|
+
url = "https://www.example.com/path"
|
19
|
+
webrat_session.should_receive(:request_page).with(url, :get, {})
|
20
|
+
link = Webrat::Link.new(webrat_session, {"href" => url})
|
21
|
+
link.click
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|