OLD | NEW |
| (Empty) |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "config.h" | |
6 #include "modules/serviceworkers/FetchResponseData.h" | |
7 | |
8 #include "modules/serviceworkers/FetchHeaderList.h" | |
9 #include "platform/blob/BlobData.h" | |
10 #include "public/platform/WebServiceWorkerResponse.h" | |
11 | |
12 #include <gtest/gtest.h> | |
13 | |
14 namespace blink { | |
15 | |
16 class FetchResponseDataTest : public ::testing::Test { | |
17 public: | |
18 FetchResponseData* createInternalResponse() | |
19 { | |
20 FetchResponseData* internalResponse = FetchResponseData::create(); | |
21 internalResponse->setStatus(200); | |
22 internalResponse->setURL(KURL(ParsedURLString, "http://www.example.com")
); | |
23 internalResponse->headerList()->append("set-cookie", "foo"); | |
24 internalResponse->headerList()->append("bar", "bar"); | |
25 internalResponse->headerList()->append("cache-control", "no-cache"); | |
26 return internalResponse; | |
27 } | |
28 | |
29 void CheckHeaders(const WebServiceWorkerResponse& webResponse) | |
30 { | |
31 EXPECT_STREQ("foo", webResponse.getHeader("set-cookie").utf8().c_str()); | |
32 EXPECT_STREQ("bar", webResponse.getHeader("bar").utf8().c_str()); | |
33 EXPECT_STREQ("no-cache", webResponse.getHeader("cache-control").utf8().c
_str()); | |
34 } | |
35 }; | |
36 | |
37 TEST_F(FetchResponseDataTest, ToWebServiceWorkerDefaultType) | |
38 { | |
39 WebServiceWorkerResponse webResponse; | |
40 FetchResponseData* internalResponse = createInternalResponse(); | |
41 | |
42 internalResponse->populateWebServiceWorkerResponse(webResponse); | |
43 EXPECT_EQ(WebServiceWorkerResponseTypeDefault, webResponse.responseType()); | |
44 CheckHeaders(webResponse); | |
45 } | |
46 | |
47 TEST_F(FetchResponseDataTest, ToWebServiceWorkerBasicType) | |
48 { | |
49 WebServiceWorkerResponse webResponse; | |
50 FetchResponseData* internalResponse = createInternalResponse(); | |
51 FetchResponseData* basicResponseData = internalResponse->createBasicFiltered
Response(); | |
52 | |
53 basicResponseData->populateWebServiceWorkerResponse(webResponse); | |
54 EXPECT_EQ(WebServiceWorkerResponseTypeBasic, webResponse.responseType()); | |
55 CheckHeaders(webResponse); | |
56 } | |
57 | |
58 TEST_F(FetchResponseDataTest, ToWebServiceWorkerCORSType) | |
59 { | |
60 WebServiceWorkerResponse webResponse; | |
61 FetchResponseData* internalResponse = createInternalResponse(); | |
62 FetchResponseData* corsResponseData = internalResponse->createCORSFilteredRe
sponse(); | |
63 | |
64 corsResponseData->populateWebServiceWorkerResponse(webResponse); | |
65 EXPECT_EQ(WebServiceWorkerResponseTypeCORS, webResponse.responseType()); | |
66 CheckHeaders(webResponse); | |
67 } | |
68 | |
69 TEST_F(FetchResponseDataTest, ToWebServiceWorkerOpaqueType) | |
70 { | |
71 WebServiceWorkerResponse webResponse; | |
72 FetchResponseData* internalResponse = createInternalResponse(); | |
73 FetchResponseData* opaqueResponseData = internalResponse->createOpaqueFilter
edResponse(); | |
74 | |
75 opaqueResponseData->populateWebServiceWorkerResponse(webResponse); | |
76 EXPECT_EQ(WebServiceWorkerResponseTypeOpaque, webResponse.responseType()); | |
77 CheckHeaders(webResponse); | |
78 } | |
79 | |
80 } // namespace WebCore | |
OLD | NEW |