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

Side by Side Diff: Source/core/fetch/CachingCorrectnessTest.cpp

Issue 1052103004: Make test proxy Platform objects provide currentThread(). (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Code formatting only Created 5 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/animation/CompositorAnimationsTestHelper.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2014, Google Inc. All rights reserved. 2 * Copyright (c) 2014, Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 FetchRequest fetchRequest(ResourceRequest(KURL(ParsedURLString, kResourc eURL)), FetchInitiatorInfo()); 117 FetchRequest fetchRequest(ResourceRequest(KURL(ParsedURLString, kResourc eURL)), FetchInitiatorInfo());
118 return m_fetcher->fetchImage(fetchRequest); 118 return m_fetcher->fetchImage(fetchRequest);
119 } 119 }
120 120
121 ResourceFetcher* fetcher() const { return m_fetcher.get(); } 121 ResourceFetcher* fetcher() const { return m_fetcher.get(); }
122 122
123 private: 123 private:
124 // A simple platform that mocks out the clock, for cache freshness testing. 124 // A simple platform that mocks out the clock, for cache freshness testing.
125 class ProxyPlatform : public blink::Platform { 125 class ProxyPlatform : public blink::Platform {
126 public: 126 public:
127 ProxyPlatform() : m_elapsedSeconds(0.) { } 127 ProxyPlatform() : m_platform(blink::Platform::current()), m_elapsedSecon ds(0.) { }
128
129 ~ProxyPlatform()
130 {
131 blink::Platform::initialize(m_platform);
132 }
128 133
129 void advanceClock(double seconds) 134 void advanceClock(double seconds)
130 { 135 {
131 m_elapsedSeconds += seconds; 136 m_elapsedSeconds += seconds;
132 } 137 }
133 138
139 WebThread* currentThread() override
140 {
141 return m_platform->currentThread();
142 }
143
134 private: 144 private:
135 // From blink::Platform: 145 // From blink::Platform:
136 virtual double currentTime() 146 virtual double currentTime()
137 { 147 {
138 return kOriginalRequestDateAsDouble + m_elapsedSeconds; 148 return kOriginalRequestDateAsDouble + m_elapsedSeconds;
139 } 149 }
140 150
141 // These blink::Platform methods must be overriden to make a usable obje ct. 151 // These blink::Platform methods must be overriden to make a usable obje ct.
142 virtual void cryptographicallyRandomValues(unsigned char* buffer, size_t length) { ASSERT_NOT_REACHED(); } 152 virtual void cryptographicallyRandomValues(unsigned char* buffer, size_t length) { ASSERT_NOT_REACHED(); }
143 virtual const unsigned char* getTraceCategoryEnabledFlag(const char* cat egoryName) 153 virtual const unsigned char* getTraceCategoryEnabledFlag(const char* cat egoryName)
144 { 154 {
145 return &kAConstUnsignedCharZero; 155 return &kAConstUnsignedCharZero;
146 } 156 }
147 157
158 blink::Platform* m_platform; // Not owned.
148 double m_elapsedSeconds; 159 double m_elapsedSeconds;
149 }; 160 };
150 161
151 virtual void SetUp() 162 virtual void SetUp()
152 { 163 {
153 m_savedPlatform = blink::Platform::current();
154 blink::Platform::initialize(&m_proxyPlatform); 164 blink::Platform::initialize(&m_proxyPlatform);
155 165
156 // Save the global memory cache to restore it upon teardown. 166 // Save the global memory cache to restore it upon teardown.
157 m_globalMemoryCache = replaceMemoryCacheForTesting(MemoryCache::create() ); 167 m_globalMemoryCache = replaceMemoryCacheForTesting(MemoryCache::create() );
158 168
159 m_fetcher = ResourceFetcher::create(MockFetchContext::create()); 169 m_fetcher = ResourceFetcher::create(MockFetchContext::create());
160 } 170 }
161 171
162 virtual void TearDown() 172 virtual void TearDown()
163 { 173 {
164 memoryCache()->evictResources(); 174 memoryCache()->evictResources();
165 175
166 // Yield the ownership of the global memory cache back. 176 // Yield the ownership of the global memory cache back.
167 replaceMemoryCacheForTesting(m_globalMemoryCache.release()); 177 replaceMemoryCacheForTesting(m_globalMemoryCache.release());
168
169 blink::Platform::initialize(m_savedPlatform);
170 } 178 }
171 179
172 blink::Platform* m_savedPlatform;
173 ProxyPlatform m_proxyPlatform; 180 ProxyPlatform m_proxyPlatform;
174 181
175 OwnPtrWillBePersistent<MemoryCache> m_globalMemoryCache; 182 OwnPtrWillBePersistent<MemoryCache> m_globalMemoryCache;
176 RefPtrWillBePersistent<ResourceFetcher> m_fetcher; 183 RefPtrWillBePersistent<ResourceFetcher> m_fetcher;
177 }; 184 };
178 185
179 TEST_F(CachingCorrectnessTest, FreshFromLastModified) 186 TEST_F(CachingCorrectnessTest, FreshFromLastModified)
180 { 187 {
181 ResourceResponse fresh200Response; 188 ResourceResponse fresh200Response;
182 fresh200Response.setHTTPStatusCode(200); 189 fresh200Response.setHTTPStatusCode(200);
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after
569 firstResource->setResponse(fresh200Response); 576 firstResource->setResponse(fresh200Response);
570 memoryCache()->add(firstResource.get()); 577 memoryCache()->add(firstResource.get());
571 578
572 advanceClock(500.); 579 advanceClock(500.);
573 580
574 ResourcePtr<Resource> fetched = fetch(); 581 ResourcePtr<Resource> fetched = fetch();
575 EXPECT_EQ(firstResource, fetched); 582 EXPECT_EQ(firstResource, fetched);
576 } 583 }
577 584
578 } // namespace 585 } // namespace
OLDNEW
« no previous file with comments | « Source/core/animation/CompositorAnimationsTestHelper.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698