gecko-dev/devtools/client/webconsole/test/browser_console_netlogging.js
Sami Jaktholm 9afc5381bb Bug 1239920 - Ignore unexpected requests in browser_console_netlogging.js;r=bgrins
The problem here is that the test expects to receive a request for the
|test-network-request.html| but the waitForFinishedRequest() accepts any
request that happens to occur at the same time. In this particular bug,
a GMP update is triggered during the test and the waitForFinishedRequest()
promise resolves with that particular request which obviously isn't the
one the test was expecting.

These changes add an optional predicate function parameter to
waitForFinishedRequest() which will be called for each completed request
and the returned promise only resolves when the predicate returns true for
a request.

Also, browser_console_netlogging.js begins to use the aforementioned
functionality by passing a predicate that only accepts the request for
|test-network-request.html| effectively fixing the intermittent failure.


MozReview-Commit-ID: AWhMRjrqP8i
2016-03-25 08:11:06 +02:00

39 lines
1.4 KiB
JavaScript

/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
// Tests that network log messages bring up the network panel.
"use strict";
const TEST_NETWORK_REQUEST_URI =
"http://example.com/browser/devtools/client/webconsole/test/" +
"test-network-request.html";
add_task(function* () {
let finishedRequest = waitForFinishedRequest(({ request }) => {
return request.url === TEST_NETWORK_REQUEST_URI;
});
const hud = yield loadPageAndGetHud(TEST_NETWORK_REQUEST_URI,
"browserConsole");
let request = yield finishedRequest;
ok(request, "Page load was logged");
let client = hud.ui.webConsoleClient;
let args = [request.actor];
const postData = yield getPacket(client, "getRequestPostData", args);
const responseContent = yield getPacket(client, "getResponseContent", args);
is(request.request.url, TEST_NETWORK_REQUEST_URI,
"Logged network entry is page load");
is(request.request.method, "GET", "Method is correct");
ok(!postData.postData.text, "No request body was stored");
ok(postData.postDataDiscarded, "Request body was discarded");
ok(!responseContent.content.text, "No response body was stored");
ok(responseContent.contentDiscarded || request.fromCache,
"Response body was discarded or response came from the cache");
});