diff options
| author | Brice Figureau <brice-puppet@daysofwonder.com> | 2009-08-10 23:08:21 +0200 |
|---|---|---|
| committer | James Turnbull <james@lovedthanlost.net> | 2009-08-13 08:11:12 +1000 |
| commit | 601a2e54aecccedfc0bdd94939d44cc07b4d6588 (patch) | |
| tree | 31bbc59f277582b9d4ef04de519d2f2ff110b49d /spec/unit/network/http | |
| parent | d86bc889390e56aa007b0099f9f407d4be98c876 (diff) | |
| download | puppet-601a2e54aecccedfc0bdd94939d44cc07b4d6588.tar.gz puppet-601a2e54aecccedfc0bdd94939d44cc07b4d6588.tar.xz puppet-601a2e54aecccedfc0bdd94939d44cc07b4d6588.zip | |
Fix #2516 - Fix format detection when content-type contains charset
Even though Puppet never transmist a charset information in its
response/request content-type, some proxy (especially Apache with the
infamous AddDefaultCharset configuration) may add this "incorrect"
information.
This patch makes sure that only the mime-type is used when looking
for the format associated with a response or a request.
The patch also provides a better error message when the client or server
code is fed with a request whose mime-type can not be mapped to a known
format.
It also fixes a typo noticed by the original reporter.
Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
Diffstat (limited to 'spec/unit/network/http')
| -rwxr-xr-x | spec/unit/network/http/handler.rb | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/spec/unit/network/http/handler.rb b/spec/unit/network/http/handler.rb index a0c817361..1addb5890 100755 --- a/spec/unit/network/http/handler.rb +++ b/spec/unit/network/http/handler.rb @@ -129,6 +129,16 @@ describe Puppet::Network::HTTP::Handler do @handler.do_exception(@response, "A test", 404) end + it "should raise an error if the request is formatted in an unknown format" do + @handler.stubs(:content_type_header).returns "unknown format" + lambda { @handler.request_format(@request) }.should raise_error + end + + it "should still find the correct format if content type contains charset information" do + @handler.stubs(:content_type_header).returns "text/plain; charset=UTF-8" + @handler.request_format(@request).should == "s" + end + describe "when finding a model instance" do before do @irequest = stub 'indirection_request', :method => :find, :indirection_name => "my_handler", :to_hash => {}, :key => "my_result", :model => @model_class |
