chromium/third_party/blink/web_tests/http/tests/inspector-protocol/network/get-response-body-eviction.js

(async function(/** @type {import('test_runner').TestRunner} */ testRunner) {
  const {page, session, dp} = await testRunner.startBlank(
      `Tests test response bodies are evicted in accordance with configured max retention sizes.`);

  await dp.Network.enable();

  const resourceUrl = '/devtools/network/resources/resource.php';
  const requests = [];
  dp.Network.onRequestWillBeSent(event => {requests.push({
      requestId: event.params.requestId,
      url: event.params.request.url});
  });
  await session.evaluateAsync(`fetch("${resourceUrl}?size=1024").then(r => r.text())`);
  await session.evaluateAsync(`fetch("${resourceUrl}?size=2048").then(r => r.text())`);
  await session.evaluateAsync(`fetch("${resourceUrl}?size=4096").then(r => r.text())`);

  async function getResponseBodyAndDump(index) {
    const requestId = requests[index].requestId;
    const response = await dp.Network.getResponseBody({requestId});
    let result;
    if (response.error) {
      result = response.error.message;
    } else {
      const body = response.result.body;
      result = `body size: ${body.length}`;
    }
    testRunner.log(`#${index}: ${requests[index].url}, response body: ${result}`);
  }
  async function dumpBodies(message) {
    testRunner.log(message);
    for (let i = 0; i < requests.length; ++i)
      await getResponseBodyAndDump(i);
  }

  await dumpBodies(`Before further Network.enable commands`);

  await dp.Network.enable();
  await dumpBodies(`After duplicate Network.enable with default buffer sizes`);

  await dp.Network.enable({maxTotalBufferSize: 3000, maxResourceBufferSize: 3000});
  await dumpBodies(`After max resource size update`);

  dp.Network.disable();
  await dp.Network.enable();
  await dumpBodies(`After Network.disable and Network.enable`);

  testRunner.completeTest();
})