| 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
|
|
|