Bladeren bron

2008-11-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

	Fixed the bug that metalink file is not processed if
	Content-Type field has a paramter.
	* src/HttpResponse.cc
	* src/HttpResponse.h
	* test/HttpResponseTest.cc
Tatsuhiro Tsujikawa 17 jaren geleden
bovenliggende
commit
82b80c33d8
4 gewijzigde bestanden met toevoegingen van 14 en 3 verwijderingen
  1. 8 0
      ChangeLog
  2. 2 1
      src/HttpResponse.cc
  3. 1 0
      src/HttpResponse.h
  4. 3 2
      test/HttpResponseTest.cc

+ 8 - 0
ChangeLog

@@ -1,3 +1,11 @@
+2008-11-11  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
+
+	Fixed the bug that metalink file is not processed if Content-Type
+	field has a paramter.
+	* src/HttpResponse.cc
+	* src/HttpResponse.h
+	* test/HttpResponseTest.cc
+
 2008-11-10  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
 
 	Removed unused code.

+ 2 - 1
src/HttpResponse.cc

@@ -212,7 +212,8 @@ std::string HttpResponse::getContentType() const
   if(httpHeader.isNull()) {
     return A2STR::NIL;
   } else {
-    return httpHeader->getFirst(HttpHeader::CONTENT_TYPE);
+    return
+      Util::split(httpHeader->getFirst(HttpHeader::CONTENT_TYPE), ";").first;
   }
 }
 

+ 1 - 0
src/HttpResponse.h

@@ -97,6 +97,7 @@ public:
 
   uint64_t getEntityLength() const;
 
+  // Returns type "/" subtype. The parameter is removed.
   std::string getContentType() const;
 
   void setHttpHeader(const SharedHandle<HttpHeader>& httpHeader);

+ 3 - 2
test/HttpResponseTest.cc

@@ -122,9 +122,10 @@ void HttpResponseTest::testGetContentType()
 {
   HttpResponse httpResponse;
   SharedHandle<HttpHeader> httpHeader(new HttpHeader());
-  httpHeader->put("content-type", "application/octet-stream");
+  httpHeader->put("content-type", "application/metalink+xml; charset=UTF-8");
   httpResponse.setHttpHeader(httpHeader);
-  CPPUNIT_ASSERT_EQUAL(std::string("application/octet-stream"),
+  // See paramter is ignored.
+  CPPUNIT_ASSERT_EQUAL(std::string("application/metalink+xml"),
 		       httpResponse.getContentType());
 }