chromium/content/test/fake_network.h

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CONTENT_TEST_FAKE_NETWORK_H_
#define CONTENT_TEST_FAKE_NETWORK_H_

#include "content/public/test/url_loader_interceptor.h"

namespace content {

// Mocks network activity. Meant to be used by URLLoaderInterceptor.
//
// 1. By default, it returns 200 OK with a simple body to any request:
//    If request path ends in ".js", the body is
//    "/*this body came from the network*/". Otherwise, the body is
//    "this body came from the network".
// 2. Call SetDefaultResponse() to change the default response.
// 3. Call SetResponse() to set the response for a specific url.
//
// Example:
//   FakeNetwork fake_network;
//   URLLoaderInterceptor interceptor(base::BindRepeating(
//       &FakeNetwork::HandleRequest, base::Unretained(&fake_network_)));
//
//   // |fake_network| will now handle any network request.
//
//   // Customize a response.
//   fake_network_.SetResponse(...);
class FakeNetwork {};

}  // namespace content

#endif  // CONTENT_TEST_FAKE_NETWORK_H_