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

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

Issue 1456873003: More regular Platform implementations in unit tests (reland.) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: have GN disable c4267 also Created 5 years 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
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 #include "core/fetch/Resource.h" 6 #include "core/fetch/Resource.h"
7 7
8 #include "core/fetch/ResourcePtr.h" 8 #include "core/fetch/ResourcePtr.h"
9 #include "platform/network/ResourceRequest.h" 9 #include "platform/network/ResourceRequest.h"
10 #include "platform/network/ResourceResponse.h" 10 #include "platform/network/ResourceResponse.h"
11 #include "platform/testing/TestingPlatformSupport.h"
11 #include "platform/testing/URLTestHelpers.h" 12 #include "platform/testing/URLTestHelpers.h"
12 #include "public/platform/Platform.h" 13 #include "public/platform/Platform.h"
13 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
14 #include "wtf/Vector.h" 15 #include "wtf/Vector.h"
15 16
16 namespace blink { 17 namespace blink {
17 18
18 namespace { 19 namespace {
19 20
20 class MockPlatform final : public Platform { 21 class MockPlatform final : public TestingPlatformSupport {
21 public: 22 public:
22 MockPlatform() : m_oldPlatform(Platform::current()) { } 23 MockPlatform() { }
23 ~MockPlatform() override { } 24 ~MockPlatform() override { }
24 25
25 // From blink::Platform: 26 // From blink::Platform:
26 void cacheMetadata(const WebURL& url, int64, const char*, size_t) override 27 void cacheMetadata(const WebURL& url, int64, const char*, size_t) override
27 { 28 {
28 m_cachedURLs.append(url); 29 m_cachedURLs.append(url);
29 } 30 }
30 31
31 const Vector<WebURL>& cachedURLs() const 32 const Vector<WebURL>& cachedURLs() const
32 { 33 {
33 return m_cachedURLs; 34 return m_cachedURLs;
34 } 35 }
35 36
36 WebThread* currentThread() override
37 {
38 return m_oldPlatform->currentThread();
39 }
40
41 // These blink::Platform methods must be overriden to make a usable object.
42 void cryptographicallyRandomValues(unsigned char* buffer, size_t length) ove rride
43 {
44 ASSERT_NOT_REACHED();
45 }
46
47 const unsigned char* getTraceCategoryEnabledFlag(const char* categoryName) o verride
48 {
49 static const unsigned char tracingIsDisabled = 0;
50 return &tracingIsDisabled;
51 }
52
53 private: 37 private:
54 Platform* m_oldPlatform; // Not owned.
55 Vector<WebURL> m_cachedURLs; 38 Vector<WebURL> m_cachedURLs;
56 }; 39 };
57 40
58 class AutoInstallMockPlatform {
59 public:
60 AutoInstallMockPlatform()
61 {
62 m_oldPlatform = Platform::current();
63 Platform::initialize(&m_mockPlatform);
64 }
65 ~AutoInstallMockPlatform()
66 {
67 Platform::initialize(m_oldPlatform);
68 }
69 MockPlatform* platform() { return &m_mockPlatform; }
70 private:
71 MockPlatform m_mockPlatform;
72 Platform* m_oldPlatform;
73 };
74
75 PassOwnPtr<ResourceResponse> createTestResourceResponse() 41 PassOwnPtr<ResourceResponse> createTestResourceResponse()
76 { 42 {
77 OwnPtr<ResourceResponse> response = adoptPtr(new ResourceResponse); 43 OwnPtr<ResourceResponse> response = adoptPtr(new ResourceResponse);
78 response->setURL(URLTestHelpers::toKURL("https://example.com/")); 44 response->setURL(URLTestHelpers::toKURL("https://example.com/"));
79 response->setHTTPStatusCode(200); 45 response->setHTTPStatusCode(200);
80 return response.release(); 46 return response.release();
81 } 47 }
82 48
83 void createTestResourceAndSetCachedMetadata(const ResourceResponse* response) 49 void createTestResourceAndSetCachedMetadata(const ResourceResponse* response)
84 { 50 {
85 const char testData[] = "test data"; 51 const char testData[] = "test data";
86 ResourcePtr<Resource> resource = new Resource(ResourceRequest(response->url( )), Resource::Raw); 52 ResourcePtr<Resource> resource = new Resource(ResourceRequest(response->url( )), Resource::Raw);
87 resource->setResponse(*response); 53 resource->setResponse(*response);
88 resource->cacheHandler()->setCachedMetadata(100, testData, sizeof(testData), CachedMetadataHandler::SendToPlatform); 54 resource->cacheHandler()->setCachedMetadata(100, testData, sizeof(testData), CachedMetadataHandler::SendToPlatform);
89 return; 55 return;
90 } 56 }
91 57
92 } // anonymous namespace 58 } // anonymous namespace
93 59
94 TEST(ResourceTest, SetCachedMetadata_SendsMetadataToPlatform) 60 TEST(ResourceTest, SetCachedMetadata_SendsMetadataToPlatform)
95 { 61 {
96 AutoInstallMockPlatform mock; 62 MockPlatform mock;
97 OwnPtr<ResourceResponse> response(createTestResourceResponse()); 63 OwnPtr<ResourceResponse> response(createTestResourceResponse());
98 createTestResourceAndSetCachedMetadata(response.get()); 64 createTestResourceAndSetCachedMetadata(response.get());
99 EXPECT_EQ(1u, mock.platform()->cachedURLs().size()); 65 EXPECT_EQ(1u, mock.cachedURLs().size());
100 } 66 }
101 67
102 TEST(ResourceTest, SetCachedMetadata_DoesNotSendMetadataToPlatformWhenFetchedVia ServiceWorker) 68 TEST(ResourceTest, SetCachedMetadata_DoesNotSendMetadataToPlatformWhenFetchedVia ServiceWorker)
103 { 69 {
104 AutoInstallMockPlatform mock; 70 MockPlatform mock;
105 OwnPtr<ResourceResponse> response(createTestResourceResponse()); 71 OwnPtr<ResourceResponse> response(createTestResourceResponse());
106 response->setWasFetchedViaServiceWorker(true); 72 response->setWasFetchedViaServiceWorker(true);
107 createTestResourceAndSetCachedMetadata(response.get()); 73 createTestResourceAndSetCachedMetadata(response.get());
108 EXPECT_EQ(0u, mock.platform()->cachedURLs().size()); 74 EXPECT_EQ(0u, mock.cachedURLs().size());
109 } 75 }
110 76
111 } // namespace blink 77 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/fetch/CachingCorrectnessTest.cpp ('k') | third_party/WebKit/Source/platform/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698