Index: Source/modules/serviceworkers/FetchResponseDataTest.cpp |
diff --git a/Source/modules/serviceworkers/FetchResponseDataTest.cpp b/Source/modules/serviceworkers/FetchResponseDataTest.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f5f0ab9495c5ec659c7626345897173cb423b373 |
--- /dev/null |
+++ b/Source/modules/serviceworkers/FetchResponseDataTest.cpp |
@@ -0,0 +1,80 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "config.h" |
+#include "modules/serviceworkers/FetchResponseData.h" |
+ |
+#include "modules/serviceworkers/FetchHeaderList.h" |
+#include "platform/blob/BlobData.h" |
+#include "public/platform/WebServiceWorkerResponse.h" |
+ |
+#include <gtest/gtest.h> |
+ |
+namespace blink { |
+ |
+class FetchResponseDataTest : public ::testing::Test { |
+public: |
+ FetchResponseData* createInternalResponse() |
+ { |
+ FetchResponseData* internalResponse = FetchResponseData::create(); |
+ internalResponse->setStatus(200); |
+ internalResponse->setURL(KURL(ParsedURLString, "http://www.example.com")); |
+ internalResponse->headerList()->append("set-cookie", "foo"); |
+ internalResponse->headerList()->append("bar", "bar"); |
+ internalResponse->headerList()->append("cache-control", "no-cache"); |
+ return internalResponse; |
+ } |
+ |
+ void CheckHeaders(const WebServiceWorkerResponse& webResponse) |
+ { |
+ EXPECT_STREQ("foo", webResponse.getHeader("set-cookie").utf8().c_str()); |
+ EXPECT_STREQ("bar", webResponse.getHeader("bar").utf8().c_str()); |
+ EXPECT_STREQ("no-cache", webResponse.getHeader("cache-control").utf8().c_str()); |
+ } |
+}; |
+ |
+TEST_F(FetchResponseDataTest, ToWebServiceWorkerDefaultType) |
+{ |
+ WebServiceWorkerResponse webResponse; |
+ FetchResponseData* internalResponse = createInternalResponse(); |
+ |
+ internalResponse->populateWebServiceWorkerResponse(webResponse); |
+ EXPECT_EQ(WebServiceWorkerResponse::DefaultType, webResponse.responseType()); |
+ CheckHeaders(webResponse); |
+} |
+ |
+TEST_F(FetchResponseDataTest, ToWebServiceWorkerBasicType) |
+{ |
+ WebServiceWorkerResponse webResponse; |
+ FetchResponseData* internalResponse = createInternalResponse(); |
+ FetchResponseData* basicResponseData = internalResponse->createBasicFilteredResponse(); |
+ |
+ basicResponseData->populateWebServiceWorkerResponse(webResponse); |
+ EXPECT_EQ(WebServiceWorkerResponse::BasicType, webResponse.responseType()); |
+ CheckHeaders(webResponse); |
+} |
+ |
+TEST_F(FetchResponseDataTest, ToWebServiceWorkerCORSType) |
+{ |
+ WebServiceWorkerResponse webResponse; |
+ FetchResponseData* internalResponse = createInternalResponse(); |
+ FetchResponseData* corsResponseData = internalResponse->createCORSFilteredResponse(); |
+ |
+ corsResponseData->populateWebServiceWorkerResponse(webResponse); |
+ EXPECT_EQ(WebServiceWorkerResponse::CORSType, webResponse.responseType()); |
+ CheckHeaders(webResponse); |
+} |
+ |
+TEST_F(FetchResponseDataTest, ToWebServiceWorkerOpaqueType) |
+{ |
+ WebServiceWorkerResponse webResponse; |
+ FetchResponseData* internalResponse = createInternalResponse(); |
+ FetchResponseData* opaqueResponseData = internalResponse->createOpaqueFilteredResponse(); |
+ |
+ opaqueResponseData->populateWebServiceWorkerResponse(webResponse); |
+ EXPECT_EQ(WebServiceWorkerResponse::OpaqueType, webResponse.responseType()); |
+ CheckHeaders(webResponse); |
+} |
+ |
+} // namespace WebCore |