Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(477)

Side by Side Diff: third_party/WebKit/Source/core/fetch/ResourceLoaderOptionsTest.cpp

Issue 2584423002: Loading: move core/fetch to platform/loader/fetch (Closed)
Patch Set: rebase Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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 "core/fetch/ResourceLoaderOptions.h"
6
7 #include "testing/gtest/include/gtest/gtest.h"
8 #include <type_traits>
9
10 namespace blink {
11
12 namespace {
13
14 TEST(ResourceLoaderOptionsTest, DeepCopy) {
15 // Check that the fields of ResourceLoaderOptions are enums, except for
16 // initiatorInfo and securityOrigin.
17 static_assert(std::is_enum<DataBufferingPolicy>::value,
18 "DataBufferingPolicy should be an enum");
19 static_assert(std::is_enum<StoredCredentials>::value,
20 "StoredCredentials should be an enum");
21 static_assert(std::is_enum<CredentialRequest>::value,
22 "CredentialRequest should be an enum");
23 static_assert(std::is_enum<ContentSecurityPolicyDisposition>::value,
24 "ContentSecurityPolicyDisposition should be an enum");
25 static_assert(std::is_enum<RequestInitiatorContext>::value,
26 "RequestInitiatorContext should be an enum");
27 static_assert(std::is_enum<SynchronousPolicy>::value,
28 "SynchronousPolicy should be an enum");
29 static_assert(std::is_enum<CORSEnabled>::value,
30 "CORSEnabled should be an enum");
31
32 ResourceLoaderOptions original;
33 RefPtr<SecurityOrigin> securityOrigin =
34 SecurityOrigin::createFromString("http://www.google.com");
35 original.securityOrigin = securityOrigin;
36 original.initiatorInfo.name = AtomicString("xmlhttprequest");
37
38 CrossThreadResourceLoaderOptionsData copyData =
39 CrossThreadCopier<ResourceLoaderOptions>::copy(original);
40 ResourceLoaderOptions copy = copyData;
41
42 // Check that contents are correctly copied to |copyData|
43 EXPECT_EQ(original.dataBufferingPolicy, copyData.dataBufferingPolicy);
44 EXPECT_EQ(original.allowCredentials, copyData.allowCredentials);
45 EXPECT_EQ(original.credentialsRequested, copyData.credentialsRequested);
46 EXPECT_EQ(original.contentSecurityPolicyOption,
47 copyData.contentSecurityPolicyOption);
48 EXPECT_EQ(original.initiatorInfo.name, copyData.initiatorInfo.name);
49 EXPECT_EQ(original.initiatorInfo.position, copyData.initiatorInfo.position);
50 EXPECT_EQ(original.initiatorInfo.startTime, copyData.initiatorInfo.startTime);
51 EXPECT_EQ(original.requestInitiatorContext, copyData.requestInitiatorContext);
52 EXPECT_EQ(original.synchronousPolicy, copyData.synchronousPolicy);
53 EXPECT_EQ(original.corsEnabled, copyData.corsEnabled);
54 EXPECT_EQ(original.securityOrigin->protocol(),
55 copyData.securityOrigin->protocol());
56 EXPECT_EQ(original.securityOrigin->host(), copyData.securityOrigin->host());
57 EXPECT_EQ(original.securityOrigin->domain(),
58 copyData.securityOrigin->domain());
59
60 // Check that pointers are different between |original| and |copyData|
61 EXPECT_NE(original.initiatorInfo.name.impl(),
62 copyData.initiatorInfo.name.impl());
63 EXPECT_NE(original.securityOrigin.get(), copyData.securityOrigin.get());
64 EXPECT_NE(original.securityOrigin->protocol().impl(),
65 copyData.securityOrigin->protocol().impl());
66 EXPECT_NE(original.securityOrigin->host().impl(),
67 copyData.securityOrigin->host().impl());
68 EXPECT_NE(original.securityOrigin->domain().impl(),
69 copyData.securityOrigin->domain().impl());
70
71 // Check that contents are correctly copied to |copy|
72 EXPECT_EQ(original.dataBufferingPolicy, copy.dataBufferingPolicy);
73 EXPECT_EQ(original.allowCredentials, copy.allowCredentials);
74 EXPECT_EQ(original.credentialsRequested, copy.credentialsRequested);
75 EXPECT_EQ(original.contentSecurityPolicyOption,
76 copy.contentSecurityPolicyOption);
77 EXPECT_EQ(original.initiatorInfo.name, copy.initiatorInfo.name);
78 EXPECT_EQ(original.initiatorInfo.position, copy.initiatorInfo.position);
79 EXPECT_EQ(original.initiatorInfo.startTime, copy.initiatorInfo.startTime);
80 EXPECT_EQ(original.requestInitiatorContext, copy.requestInitiatorContext);
81 EXPECT_EQ(original.synchronousPolicy, copy.synchronousPolicy);
82 EXPECT_EQ(original.corsEnabled, copy.corsEnabled);
83 EXPECT_EQ(original.securityOrigin->protocol(),
84 copy.securityOrigin->protocol());
85 EXPECT_EQ(original.securityOrigin->host(), copy.securityOrigin->host());
86 EXPECT_EQ(original.securityOrigin->domain(), copy.securityOrigin->domain());
87
88 // Check that pointers are different between |original| and |copy|
89 // FIXME: When |original| and |copy| are in different threads, then
90 // EXPECT_NE(original.initiatorInfo.name.impl(),
91 // copy.initiatorInfo.name.impl());
92 // should pass. However, in the unit test here, these two pointers are the
93 // same, because initiatorInfo.name is AtomicString.
94 EXPECT_NE(original.securityOrigin.get(), copy.securityOrigin.get());
95 EXPECT_NE(original.securityOrigin->protocol().impl(),
96 copy.securityOrigin->protocol().impl());
97 EXPECT_NE(original.securityOrigin->host().impl(),
98 copy.securityOrigin->host().impl());
99 EXPECT_NE(original.securityOrigin->domain().impl(),
100 copy.securityOrigin->domain().impl());
101
102 // FIXME: The checks for content equality/pointer inequality for
103 // securityOrigin here is not complete (i.e. m_filePath is not checked). A
104 // unit test for SecurityOrigin::isolatedCopy() that covers these checks
105 // should be added.
106 }
107
108 } // namespace
109
110 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698