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

Unified Diff: net/http/mock_http_cache.h

Issue 992733002: Remove //net (except for Android test stuff) and sdch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/http/mock_gssapi_library_posix.cc ('k') | net/http/mock_http_cache.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/http/mock_http_cache.h
diff --git a/net/http/mock_http_cache.h b/net/http/mock_http_cache.h
deleted file mode 100644
index bcc7925dec87b4670a42d6162958ed9d1f764158..0000000000000000000000000000000000000000
--- a/net/http/mock_http_cache.h
+++ /dev/null
@@ -1,266 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// This is a mock of the http cache and related testing classes. To be fair, it
-// is not really a mock http cache given that it uses the real implementation of
-// the http cache, but it has fake implementations of all required components,
-// so it is useful for unit tests at the http layer.
-
-#ifndef NET_HTTP_MOCK_HTTP_CACHE_H_
-#define NET_HTTP_MOCK_HTTP_CACHE_H_
-
-#include "base/containers/hash_tables.h"
-#include "net/disk_cache/disk_cache.h"
-#include "net/http/http_cache.h"
-#include "net/http/http_transaction_test_util.h"
-
-//-----------------------------------------------------------------------------
-// Mock disk cache (a very basic memory cache implementation).
-
-class MockDiskEntry : public disk_cache::Entry,
- public base::RefCounted<MockDiskEntry> {
- public:
- explicit MockDiskEntry(const std::string& key);
-
- bool is_doomed() const { return doomed_; }
-
- void Doom() override;
- void Close() override;
- std::string GetKey() const override;
- base::Time GetLastUsed() const override;
- base::Time GetLastModified() const override;
- int32 GetDataSize(int index) const override;
- int ReadData(int index,
- int offset,
- net::IOBuffer* buf,
- int buf_len,
- const net::CompletionCallback& callback) override;
- int WriteData(int index,
- int offset,
- net::IOBuffer* buf,
- int buf_len,
- const net::CompletionCallback& callback,
- bool truncate) override;
- int ReadSparseData(int64 offset,
- net::IOBuffer* buf,
- int buf_len,
- const net::CompletionCallback& callback) override;
- int WriteSparseData(int64 offset,
- net::IOBuffer* buf,
- int buf_len,
- const net::CompletionCallback& callback) override;
- int GetAvailableRange(int64 offset,
- int len,
- int64* start,
- const net::CompletionCallback& callback) override;
- bool CouldBeSparse() const override;
- void CancelSparseIO() override;
- int ReadyForSparseIO(
- const net::CompletionCallback& completion_callback) override;
-
- // Fail most subsequent requests.
- void set_fail_requests() { fail_requests_ = true; }
-
- void set_fail_sparse_requests() { fail_sparse_requests_ = true; }
-
- // If |value| is true, don't deliver any completion callbacks until called
- // again with |value| set to false. Caution: remember to enable callbacks
- // again or all subsequent tests will fail.
- static void IgnoreCallbacks(bool value);
-
- private:
- friend class base::RefCounted<MockDiskEntry>;
- struct CallbackInfo;
-
- ~MockDiskEntry() override;
-
- // Unlike the callbacks for MockHttpTransaction, we want this one to run even
- // if the consumer called Close on the MockDiskEntry. We achieve that by
- // leveraging the fact that this class is reference counted.
- void CallbackLater(const net::CompletionCallback& callback, int result);
-
- void RunCallback(const net::CompletionCallback& callback, int result);
-
- // When |store| is true, stores the callback to be delivered later; otherwise
- // delivers any callback previously stored.
- static void StoreAndDeliverCallbacks(bool store, MockDiskEntry* entry,
- const net::CompletionCallback& callback,
- int result);
-
- static const int kNumCacheEntryDataIndices = 3;
-
- std::string key_;
- std::vector<char> data_[kNumCacheEntryDataIndices];
- int test_mode_;
- bool doomed_;
- bool sparse_;
- bool fail_requests_;
- bool fail_sparse_requests_;
- bool busy_;
- bool delayed_;
- static bool cancel_;
- static bool ignore_callbacks_;
-};
-
-class MockDiskCache : public disk_cache::Backend {
- public:
- MockDiskCache();
- ~MockDiskCache() override;
-
- net::CacheType GetCacheType() const override;
- int32 GetEntryCount() const override;
- int OpenEntry(const std::string& key,
- disk_cache::Entry** entry,
- const net::CompletionCallback& callback) override;
- int CreateEntry(const std::string& key,
- disk_cache::Entry** entry,
- const net::CompletionCallback& callback) override;
- int DoomEntry(const std::string& key,
- const net::CompletionCallback& callback) override;
- int DoomAllEntries(const net::CompletionCallback& callback) override;
- int DoomEntriesBetween(base::Time initial_time,
- base::Time end_time,
- const net::CompletionCallback& callback) override;
- int DoomEntriesSince(base::Time initial_time,
- const net::CompletionCallback& callback) override;
- scoped_ptr<Iterator> CreateIterator() override;
- void GetStats(
- std::vector<std::pair<std::string, std::string>>* stats) override;
- void OnExternalCacheHit(const std::string& key) override;
-
- // Returns number of times a cache entry was successfully opened.
- int open_count() const { return open_count_; }
-
- // Returns number of times a cache entry was successfully created.
- int create_count() const { return create_count_; }
-
- // Fail any subsequent CreateEntry and OpenEntry.
- void set_fail_requests() { fail_requests_ = true; }
-
- // Return entries that fail some of their requests.
- void set_soft_failures(bool value) { soft_failures_ = value; }
-
- // Makes sure that CreateEntry is not called twice for a given key.
- void set_double_create_check(bool value) { double_create_check_ = value; }
-
- // Makes all requests for data ranges to fail as not implemented.
- void set_fail_sparse_requests() { fail_sparse_requests_ = true; }
-
- void ReleaseAll();
-
- private:
- typedef base::hash_map<std::string, MockDiskEntry*> EntryMap;
- class NotImplementedIterator;
-
- void CallbackLater(const net::CompletionCallback& callback, int result);
-
- EntryMap entries_;
- int open_count_;
- int create_count_;
- bool fail_requests_;
- bool soft_failures_;
- bool double_create_check_;
- bool fail_sparse_requests_;
-};
-
-class MockBackendFactory : public net::HttpCache::BackendFactory {
- public:
- int CreateBackend(net::NetLog* net_log,
- scoped_ptr<disk_cache::Backend>* backend,
- const net::CompletionCallback& callback) override;
-};
-
-class MockHttpCache {
- public:
- MockHttpCache();
- explicit MockHttpCache(net::HttpCache::BackendFactory* disk_cache_factory);
-
- net::HttpCache* http_cache() { return &http_cache_; }
-
- MockNetworkLayer* network_layer() {
- return static_cast<MockNetworkLayer*>(http_cache_.network_layer());
- }
- MockDiskCache* disk_cache();
-
- // Wrapper around http_cache()->CreateTransaction(net::DEFAULT_PRIORITY...)
- int CreateTransaction(scoped_ptr<net::HttpTransaction>* trans);
-
- // Wrapper to bypass the cache lock for new transactions.
- void BypassCacheLock();
-
- // Wrapper to fail request conditionalization for new transactions.
- void FailConditionalizations();
-
- // Helper function for reading response info from the disk cache.
- static bool ReadResponseInfo(disk_cache::Entry* disk_entry,
- net::HttpResponseInfo* response_info,
- bool* response_truncated);
-
- // Helper function for writing response info into the disk cache.
- static bool WriteResponseInfo(disk_cache::Entry* disk_entry,
- const net::HttpResponseInfo* response_info,
- bool skip_transient_headers,
- bool response_truncated);
-
- // Helper function to synchronously open a backend entry.
- bool OpenBackendEntry(const std::string& key, disk_cache::Entry** entry);
-
- // Helper function to synchronously create a backend entry.
- bool CreateBackendEntry(const std::string& key, disk_cache::Entry** entry,
- net::NetLog* net_log);
-
- // Returns the test mode after considering the global override.
- static int GetTestMode(int test_mode);
-
- // Overrides the test mode for a given operation. Remember to reset it after
- // the test! (by setting test_mode to zero).
- static void SetTestMode(int test_mode);
-
- private:
- net::HttpCache http_cache_;
-};
-
-// This version of the disk cache doesn't invoke CreateEntry callbacks.
-class MockDiskCacheNoCB : public MockDiskCache {
- int CreateEntry(const std::string& key,
- disk_cache::Entry** entry,
- const net::CompletionCallback& callback) override;
-};
-
-class MockBackendNoCbFactory : public net::HttpCache::BackendFactory {
- public:
- int CreateBackend(net::NetLog* net_log,
- scoped_ptr<disk_cache::Backend>* backend,
- const net::CompletionCallback& callback) override;
-};
-
-// This backend factory allows us to control the backend instantiation.
-class MockBlockingBackendFactory : public net::HttpCache::BackendFactory {
- public:
- MockBlockingBackendFactory();
- ~MockBlockingBackendFactory() override;
-
- int CreateBackend(net::NetLog* net_log,
- scoped_ptr<disk_cache::Backend>* backend,
- const net::CompletionCallback& callback) override;
-
- // Completes the backend creation. Any blocked call will be notified via the
- // provided callback.
- void FinishCreation();
-
- scoped_ptr<disk_cache::Backend>* backend() { return backend_; }
- void set_fail(bool fail) { fail_ = fail; }
-
- const net::CompletionCallback& callback() { return callback_; }
-
- private:
- int Result() { return fail_ ? net::ERR_FAILED : net::OK; }
-
- scoped_ptr<disk_cache::Backend>* backend_;
- net::CompletionCallback callback_;
- bool block_;
- bool fail_;
-};
-
-#endif // NET_HTTP_MOCK_HTTP_CACHE_H_
« no previous file with comments | « net/http/mock_gssapi_library_posix.cc ('k') | net/http/mock_http_cache.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698