Revert "[#33 state:resolved] refactored to move the config down to Webrat::Core as it seemed nicer"
This reverts commit 58cbf49119
.
This commit is contained in:
parent
58cbf49119
commit
19353b507b
@ -1,3 +1,4 @@
|
|||||||
|
require "webrat/core/configuration"
|
||||||
require "webrat/core/xml"
|
require "webrat/core/xml"
|
||||||
require "webrat/core/nokogiri"
|
require "webrat/core/nokogiri"
|
||||||
require "webrat/core/logging"
|
require "webrat/core/logging"
|
||||||
@ -11,39 +12,3 @@ require "webrat/core/select_option"
|
|||||||
require "webrat/core/session"
|
require "webrat/core/session"
|
||||||
require "webrat/core/methods"
|
require "webrat/core/methods"
|
||||||
require "webrat/core/matchers"
|
require "webrat/core/matchers"
|
||||||
|
|
||||||
module Webrat
|
|
||||||
class Core
|
|
||||||
|
|
||||||
# Configures Webrat. If this is not done, Webrat will be created
|
|
||||||
# with all of the default settings.
|
|
||||||
# Example:
|
|
||||||
# Webrat::Core.configure do |config|
|
|
||||||
# config.open_error_files = false
|
|
||||||
# end
|
|
||||||
def self.configure(configuration = Core.new)
|
|
||||||
yield configuration if block_given?
|
|
||||||
@@configuration = configuration
|
|
||||||
end
|
|
||||||
|
|
||||||
def self.configuration
|
|
||||||
@@configuration = Core.new unless @@configuration
|
|
||||||
@@configuration
|
|
||||||
end
|
|
||||||
|
|
||||||
# Sets whether to save and open pages with error status codes in a browser
|
|
||||||
attr_accessor :open_error_files
|
|
||||||
|
|
||||||
def initialize
|
|
||||||
self.open_error_files = default_open_error_files
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
@@configuration = nil
|
|
||||||
|
|
||||||
def default_open_error_files
|
|
||||||
true
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
end
|
|
@ -0,0 +1,33 @@
|
|||||||
|
module Webrat
|
||||||
|
module Core
|
||||||
|
class Configuration
|
||||||
|
|
||||||
|
# Configures Webrat. If this is not done, Webrat will be created
|
||||||
|
# with all of the default settings.
|
||||||
|
def self.configure(configuration = Webrat::Core::Configuration.new)
|
||||||
|
yield configuration if block_given?
|
||||||
|
@@configuration = configuration
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.configuration
|
||||||
|
@@configuration = Webrat::Core::Configuration.new unless @@configuration
|
||||||
|
@@configuration
|
||||||
|
end
|
||||||
|
|
||||||
|
# Sets whether to save and open pages with error status codes in a browser
|
||||||
|
attr_accessor :open_error_files
|
||||||
|
|
||||||
|
def initialize
|
||||||
|
self.open_error_files = default_open_error_files
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
@@configuration = nil
|
||||||
|
|
||||||
|
def default_open_error_files
|
||||||
|
true
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -86,7 +86,7 @@ module Webrat
|
|||||||
send "#{http_method}", url, data || {}, h
|
send "#{http_method}", url, data || {}, h
|
||||||
end
|
end
|
||||||
|
|
||||||
save_and_open_page if exception_caught? && Webrat::Core.configuration.open_error_files
|
save_and_open_page if exception_caught? && !Webrat::Core::Configuration.configuration.open_error_files
|
||||||
raise PageLoadError.new("Page load was not successful (Code: #{response_code.inspect}):\n#{formatted_error}") unless success_code?
|
raise PageLoadError.new("Page load was not successful (Code: #{response_code.inspect}):\n#{formatted_error}") unless success_code?
|
||||||
|
|
||||||
@_scopes = nil
|
@_scopes = nil
|
||||||
|
@ -12,11 +12,11 @@ Spec::Runner.configure do |config|
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
class Webrat::Core
|
class Webrat::Core::Configuration
|
||||||
@@previous_config = nil
|
@@previous_config = nil
|
||||||
|
|
||||||
def self.cache_config_for_test
|
def self.cache_config_for_test
|
||||||
@@configuration = Webrat::Core.configuration
|
@@configuration = Webrat::Core::Configuration.configuration
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.reset_for_test
|
def self.reset_for_test
|
||||||
|
30
spec/webrat/core/configuration_spec.rb
Executable file
30
spec/webrat/core/configuration_spec.rb
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
|
||||||
|
|
||||||
|
describe Webrat::Core::Configuration do
|
||||||
|
|
||||||
|
before do
|
||||||
|
Webrat::Core::Configuration.cache_config_for_test
|
||||||
|
end
|
||||||
|
|
||||||
|
after do
|
||||||
|
Webrat::Core::Configuration.reset_for_test
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should have a default config" do
|
||||||
|
Webrat::Core::Configuration.configuration.should be_an_instance_of(Webrat::Core::Configuration)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should set default values" do
|
||||||
|
config = Webrat::Core::Configuration.configuration
|
||||||
|
config.open_error_files.should == true
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should be configurable with a block" do
|
||||||
|
Webrat::Core::Configuration.configure do |config|
|
||||||
|
config.open_error_files = false
|
||||||
|
end
|
||||||
|
config = Webrat::Core::Configuration.configuration
|
||||||
|
config.open_error_files.should == false
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
@ -87,11 +87,11 @@ describe Webrat::Session do
|
|||||||
|
|
||||||
describe "#request_page" do
|
describe "#request_page" do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
Webrat::Core.cache_config_for_test
|
Webrat::Core::Configuration.cache_config_for_test
|
||||||
@session = Webrat::Session.new
|
@session = Webrat::Session.new
|
||||||
end
|
end
|
||||||
after(:each) do
|
after(:each) do
|
||||||
Webrat::Core.reset_for_test
|
Webrat::Core::Configuration.reset_for_test
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should raise an error if the request is not a success" do
|
it "should raise an error if the request is not a success" do
|
||||||
@ -105,9 +105,6 @@ describe Webrat::Session do
|
|||||||
end
|
end
|
||||||
|
|
||||||
it "should raise an error but not open if the request is not a success and config quashes save_and_open" do
|
it "should raise an error but not open if the request is not a success and config quashes save_and_open" do
|
||||||
Webrat::Core.configure do |config|
|
|
||||||
config.open_error_files = false
|
|
||||||
end
|
|
||||||
@session.stub!(:get)
|
@session.stub!(:get)
|
||||||
@session.stub!(:response_body).and_return("Exception caught")
|
@session.stub!(:response_body).and_return("Exception caught")
|
||||||
@session.stub!(:response_code).and_return(500)
|
@session.stub!(:response_code).and_return(500)
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
|
||||||
|
|
||||||
describe Webrat::Core do
|
|
||||||
|
|
||||||
before do
|
|
||||||
Webrat::Core.cache_config_for_test
|
|
||||||
end
|
|
||||||
|
|
||||||
after do
|
|
||||||
Webrat::Core.reset_for_test
|
|
||||||
end
|
|
||||||
|
|
||||||
it "should have a default config" do
|
|
||||||
Webrat::Core.configuration.should be_an_instance_of(Webrat::Core)
|
|
||||||
end
|
|
||||||
|
|
||||||
it "should set default values" do
|
|
||||||
config = Webrat::Core.configuration
|
|
||||||
config.open_error_files.should == true
|
|
||||||
end
|
|
||||||
|
|
||||||
it "should be configurable with a block" do
|
|
||||||
Webrat::Core.configure do |config|
|
|
||||||
config.open_error_files = false
|
|
||||||
end
|
|
||||||
config = Webrat::Core.configuration
|
|
||||||
config.open_error_files.should == false
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
Loading…
Reference in New Issue
Block a user