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 #ifndef ResourceLoaderOptionsTest_h | |
6 #define ResourceLoaderOptionsTest_h | |
7 | |
8 #include "config.h" | |
9 #include "core/fetch/ResourceLoaderOptions.h" | |
10 | |
11 #include "wtf/TypeTraits.h" | |
12 | |
13 #include <gmock/gmock.h> | |
abarth-chromium
2014/10/16 16:21:31
Why do we need gmock?
hiroshige
2014/10/20 05:19:01
Removed.
| |
14 #include <gtest/gtest.h> | |
15 | |
16 namespace blink { | |
17 | |
18 namespace { | |
19 | |
20 TEST(ResourceLoaderOptionsTest, DeepCopy) | |
21 { | |
22 // Check that the fields of ResourceLoaderOptions are enums, | |
23 // except for initiatorInfo and securityOrigin. | |
24 COMPILE_ASSERT(WTF::IsConvertibleToInteger<DataBufferingPolicy>::value, Data BufferingPolicy_is_enum); | |
25 COMPILE_ASSERT(WTF::IsConvertibleToInteger<StoredCredentials>::value, Stored Credentials_is_enum); | |
26 COMPILE_ASSERT(WTF::IsConvertibleToInteger<CredentialRequest>::value, Creden tialRequest_is_enum); | |
27 COMPILE_ASSERT(WTF::IsConvertibleToInteger<ContentSecurityPolicyCheck>::valu e, ContentSecurityPolicyCheck_is_enum); | |
28 COMPILE_ASSERT(WTF::IsConvertibleToInteger<RequestInitiatorContext>::value, RequestInitiatorContext_is_enum); | |
29 COMPILE_ASSERT(WTF::IsConvertibleToInteger<MixedContentBlockingTreatment>::v alue, MixedContentBlockingTreatment_is_enum); | |
30 COMPILE_ASSERT(WTF::IsConvertibleToInteger<SynchronousPolicy>::value, Synchr onousPolicy_is_enum); | |
31 COMPILE_ASSERT(WTF::IsConvertibleToInteger<CORSEnabled>::value, CORSEnabled_ is_enum); | |
32 | |
33 ResourceLoaderOptions original; | |
34 RefPtr<SecurityOrigin> securityOrigin = SecurityOrigin::createFromString("ht tp://www.google.com"); | |
35 original.securityOrigin = securityOrigin; | |
36 original.initiatorInfo.name = AtomicString("xmlhttprequest"); | |
37 | |
38 CrossThreadResourceLoaderOptionsData copyData = CrossThreadCopier<ResourceLo aderOptions>::copy(original); | |
39 ResourceLoaderOptions copy = copyData; | |
40 | |
41 // Check that contents are correctly copied to |copyData| | |
42 EXPECT_EQ(original.dataBufferingPolicy, copyData.dataBufferingPolicy); | |
43 EXPECT_EQ(original.allowCredentials, copyData.allowCredentials); | |
44 EXPECT_EQ(original.credentialsRequested, copyData.credentialsRequested); | |
45 EXPECT_EQ(original.contentSecurityPolicyOption, copyData.contentSecurityPoli cyOption); | |
46 EXPECT_EQ(original.initiatorInfo.name, copyData.initiatorInfo.name); | |
47 EXPECT_EQ(original.initiatorInfo.position, copyData.initiatorInfo.position); | |
48 EXPECT_EQ(original.initiatorInfo.startTime, copyData.initiatorInfo.startTime ); | |
49 EXPECT_EQ(original.requestInitiatorContext, copyData.requestInitiatorContext ); | |
50 EXPECT_EQ(original.mixedContentBlockingTreatment, copyData.mixedContentBlock ingTreatment); | |
51 EXPECT_EQ(original.synchronousPolicy, copyData.synchronousPolicy); | |
52 EXPECT_EQ(original.corsEnabled, copyData.corsEnabled); | |
53 EXPECT_EQ(original.securityOrigin->protocol(), copyData.securityOrigin->prot ocol()); | |
54 EXPECT_EQ(original.securityOrigin->host(), copyData.securityOrigin->host()); | |
55 EXPECT_EQ(original.securityOrigin->domain(), copyData.securityOrigin->domain ()); | |
56 | |
57 // Check that pointers are different between |original| and |copyData| | |
58 EXPECT_NE(original.initiatorInfo.name.impl(), copyData.initiatorInfo.name.im pl()); | |
59 EXPECT_NE(original.securityOrigin.get(), copyData.securityOrigin.get()); | |
60 EXPECT_NE(original.securityOrigin->protocol().impl(), copyData.securityOrigi n->protocol().impl()); | |
61 EXPECT_NE(original.securityOrigin->host().impl(), copyData.securityOrigin->h ost().impl()); | |
62 EXPECT_NE(original.securityOrigin->domain().impl(), copyData.securityOrigin- >domain().impl()); | |
63 | |
64 // Check that contents are correctly copied to |copy| | |
65 EXPECT_EQ(original.dataBufferingPolicy, copy.dataBufferingPolicy); | |
66 EXPECT_EQ(original.allowCredentials, copy.allowCredentials); | |
67 EXPECT_EQ(original.credentialsRequested, copy.credentialsRequested); | |
68 EXPECT_EQ(original.contentSecurityPolicyOption, copy.contentSecurityPolicyOp tion); | |
69 EXPECT_EQ(original.initiatorInfo.name, copy.initiatorInfo.name); | |
70 EXPECT_EQ(original.initiatorInfo.position, copy.initiatorInfo.position); | |
71 EXPECT_EQ(original.initiatorInfo.startTime, copy.initiatorInfo.startTime); | |
72 EXPECT_EQ(original.requestInitiatorContext, copy.requestInitiatorContext); | |
73 EXPECT_EQ(original.mixedContentBlockingTreatment, copy.mixedContentBlockingT reatment); | |
74 EXPECT_EQ(original.synchronousPolicy, copy.synchronousPolicy); | |
75 EXPECT_EQ(original.corsEnabled, copy.corsEnabled); | |
76 EXPECT_EQ(original.securityOrigin->protocol(), copy.securityOrigin->protocol ()); | |
77 EXPECT_EQ(original.securityOrigin->host(), copy.securityOrigin->host()); | |
78 EXPECT_EQ(original.securityOrigin->domain(), copy.securityOrigin->domain()); | |
79 | |
80 // Check that pointers are different between |original| and |copy| | |
81 // FIXME: When |original| and |copy| are in different threads, then | |
82 // EXPECT_NE(original.initiatorInfo.name.impl(), copy.initiatorInfo.name.imp l()); | |
83 // should pass. However, in the unit test here, these two pointers are the | |
84 // same, because initiatorInfo.name is AtomicString. | |
85 EXPECT_NE(original.securityOrigin.get(), copy.securityOrigin.get()); | |
86 EXPECT_NE(original.securityOrigin->protocol().impl(), copy.securityOrigin->p rotocol().impl()); | |
87 EXPECT_NE(original.securityOrigin->host().impl(), copy.securityOrigin->host( ).impl()); | |
88 EXPECT_NE(original.securityOrigin->domain().impl(), copy.securityOrigin->dom ain().impl()); | |
89 | |
90 // FIXME: The checks for content equality/pointer inequality for | |
91 // securityOrigin here is not complete (i.e. m_filePath is not checked). | |
92 // A unit test for SecurityOrigin::isolatedCopy() that covers these checks | |
93 // should be added. | |
94 } | |
95 | |
96 } // namespace | |
97 | |
98 } // namespace blink | |
99 | |
100 #endif // ResourceLoaderOptionsTest_h | |
OLD | NEW |