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

Unified Diff: headless/public/util/testing/generic_url_request_mocks.h

Issue 2260793002: Headless utility classes for making deterministic protocol handlers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressing comments Created 4 years, 4 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
Index: headless/public/util/testing/generic_url_request_mocks.h
diff --git a/headless/public/util/testing/generic_url_request_mocks.h b/headless/public/util/testing/generic_url_request_mocks.h
new file mode 100644
index 0000000000000000000000000000000000000000..922b2f91ef3ff4b82542f3acc7ec3699524e23f6
--- /dev/null
+++ b/headless/public/util/testing/generic_url_request_mocks.h
@@ -0,0 +1,149 @@
+// Copyright 2016 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.
+
+#ifndef HEADLESS_PUBLIC_UTIL_TESTING_GENERIC_URL_REQUEST_MOCKS_H_
+#define HEADLESS_PUBLIC_UTIL_TESTING_GENERIC_URL_REQUEST_MOCKS_H_
+
+#include <memory>
+#include <string>
+
+#include "base/macros.h"
+#include "headless/public/util/generic_url_request_job.h"
+#include "headless/public/util/testing/generic_url_request_mocks.h"
+#include "net/cookies/cookie_store.h"
+#include "net/url_request/url_request.h"
+#include "net/url_request/url_request_context.h"
+#include "net/url_request/url_request_job_factory.h"
+
+namespace net {
+class URLRequestJob;
+} // namespace net
+
+namespace htmlrender_webkit_headless_proto {
+class Resource;
+} // htmlrender_webkit_headless_proto net
+
+namespace headless {
+
+class MockGenericURLRequestJobDelegate : public GenericURLRequestJob::Delegate {
+ public:
+ MockGenericURLRequestJobDelegate();
+ ~MockGenericURLRequestJobDelegate() override;
+
+ bool BlockOrRewriteRequest(
+ const GURL& url,
+ const std::string& referrer,
+ GenericURLRequestJob::RewriteCallback callback) override;
+
+ const GenericURLRequestJob::HttpResponse* MaybeMatchResource(
+ const GURL& url,
+ const net::HttpRequestHeaders& request_headers) override;
+
+ void OnResourceLoadComplete(const GURL& final_url,
+ const std::string& mime_type,
+ int http_response_code) override;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(MockGenericURLRequestJobDelegate);
+};
+
+// TODO(alexclarke): We may be able to replace this with the CookieMonster.
+class MockCookieStore : public net::CookieStore {
+ public:
+ MockCookieStore();
+ ~MockCookieStore() override;
+
+ // net::CookieStore implementation:
+ void SetCookieWithOptionsAsync(const GURL& url,
+ const std::string& cookie_line,
+ const net::CookieOptions& options,
+ const SetCookiesCallback& callback) override;
+
+ void SetCookieWithDetailsAsync(const GURL& url,
+ const std::string& name,
+ const std::string& value,
+ const std::string& domain,
+ const std::string& path,
+ base::Time creation_time,
+ base::Time expiration_time,
+ base::Time last_access_time,
+ bool secure,
+ bool http_only,
+ net::CookieSameSite same_site,
+ bool enforce_strict_secure,
+ net::CookiePriority priority,
+ const SetCookiesCallback& callback) override;
+
+ void GetCookiesWithOptionsAsync(const GURL& url,
+ const net::CookieOptions& options,
+ const GetCookiesCallback& callback) override;
+
+ void GetCookieListWithOptionsAsync(
+ const GURL& url,
+ const net::CookieOptions& options,
+ const GetCookieListCallback& callback) override;
+
+ void GetAllCookiesAsync(const GetCookieListCallback& callback) override;
+
+ void DeleteCookieAsync(const GURL& url,
+ const std::string& cookie_name,
+ const base::Closure& callback) override;
+
+ void DeleteCanonicalCookieAsync(const net::CanonicalCookie& cookie,
+ const DeleteCallback& callback) override;
+
+ void DeleteAllCreatedBetweenAsync(const base::Time& delete_begin,
+ const base::Time& delete_end,
+ const DeleteCallback& callback) override;
+
+ void DeleteAllCreatedBetweenWithPredicateAsync(
+ const base::Time& delete_begin,
+ const base::Time& delete_end,
+ const CookiePredicate& predicate,
+ const DeleteCallback& callback) override;
+
+ void DeleteSessionCookiesAsync(const DeleteCallback&) override;
+
+ void FlushStore(const base::Closure& callback) override;
+
+ void SetForceKeepSessionState() override;
+
+ std::unique_ptr<CookieChangedSubscription> AddCallbackForCookie(
+ const GURL& url,
+ const std::string& name,
+ const CookieChangedCallback& callback) override;
+
+ bool IsEphemeral() override;
+
+ net::CookieList* cookies() { return &cookies_; }
+
+ private:
+ void SendCookies(const GURL& url,
+ const net::CookieOptions& options,
+ const GetCookieListCallback& callback);
+
+ net::CookieList cookies_;
+
+ DISALLOW_COPY_AND_ASSIGN(MockCookieStore);
+};
+
+class MockURLRequestDelegate : public net::URLRequest::Delegate {
+ public:
+ MockURLRequestDelegate();
+ ~MockURLRequestDelegate() override;
+
+ void OnResponseStarted(net::URLRequest* request) override;
+ void OnReadCompleted(net::URLRequest* request, int bytes_read) override;
+ const std::string& response_data() const;
+ const net::IOBufferWithSize* metadata() const;
+
+ private:
+ std::string response_data_;
+
+ DISALLOW_COPY_AND_ASSIGN(MockURLRequestDelegate);
+};
+
+} // namespace headless
+
+#endif // HEADLESS_PUBLIC_UTIL_TESTING_GENERIC_URL_REQUEST_MOCKS_H_

Powered by Google App Engine
This is Rietveld 408576698