| Index: chrome/test/data/extensions/api_test/webrequest/test_post.js
|
| diff --git a/chrome/test/data/extensions/api_test/webrequest/test_post.js b/chrome/test/data/extensions/api_test/webrequest/test_post.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..57f29800bf1f6ebdf55c72861277155f2c07a14c
|
| --- /dev/null
|
| +++ b/chrome/test/data/extensions/api_test/webrequest/test_post.js
|
| @@ -0,0 +1,134 @@
|
| +// Copyright (c) 2012 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.
|
| +
|
| +var dirName = "requestBody/";
|
| +
|
| +function sendPost(formFile, ParseableForm) {
|
| + // The following variables must be updated when files in |dirName| change.
|
| + var parsedForm = {
|
| + check: ["option_A"],
|
| + password: ["password"],
|
| + radio: ["Yes"],
|
| + select: ["one"],
|
| + text1: ["TEST_TEXT_1"],
|
| + text2: ["TEST_TEXT_2"],
|
| + text3: ["TEST_TEXT_3"],
|
| + txtarea: ["Text"]
|
| + };
|
| + var encodedData =
|
| + "dGV4dDE9VEVTVF9URVhUXzENCnRleHQyPVRFU1RfVEVYVF8yDQp0ZXh0Mz1URVNUX1RFW"
|
| + + "FRfMw0KcGFzc3dvcmQ9cGFzc3dvcmQNCnJhZGlvPVllcw0KY2hlY2s9b3B0aW9uX0EN"
|
| + + "CnR4dGFyZWE9VGV4dA0Kc2VsZWN0PW9uZQ==";
|
| + return function submitForm() {
|
| + expect(
|
| + [ // events
|
| + { label: "a-onBeforeRequest",
|
| + event: "onBeforeRequest",
|
| + details: {
|
| + method: "GET",
|
| + type: "main_frame",
|
| + url: getURL(dirName + formFile),
|
| + frameUrl: getURL(dirName + formFile)
|
| + }
|
| + },
|
| + { label: "a-onResponseStarted",
|
| + event: "onResponseStarted",
|
| + details: {
|
| + fromCache: false,
|
| + method: "GET",
|
| + statusCode: 200,
|
| + statusLine: "HTTP/1.1 200 OK",
|
| + type: "main_frame",
|
| + url: getURL(dirName + formFile)
|
| + }
|
| + },
|
| + { label: "a-onCompleted",
|
| + event: "onCompleted",
|
| + details: {
|
| + fromCache: false,
|
| + method: "GET",
|
| + statusCode: 200,
|
| + statusLine: "HTTP/1.1 200 OK",
|
| + type: "main_frame",
|
| + url: getURL(dirName + formFile)
|
| + }
|
| + },
|
| + { label: "s-onBeforeRequest",
|
| + event: "onBeforeRequest",
|
| + details: {
|
| + method: "GET",
|
| + type: "script",
|
| + url: getURL("requestBody/submit.js"),
|
| + frameUrl: getURL(dirName + formFile)
|
| + }
|
| + },
|
| + { label: "s-onResponseStarted",
|
| + event: "onResponseStarted",
|
| + details: {
|
| + fromCache: false,
|
| + method: "GET",
|
| + statusCode: 200,
|
| + statusLine: "HTTP/1.1 200 OK",
|
| + type: "script",
|
| + url: getURL("requestBody/submit.js")
|
| + }
|
| + },
|
| + { label: "s-onCompleted",
|
| + event: "onCompleted",
|
| + details: {
|
| + fromCache: false,
|
| + method: "GET",
|
| + statusCode: 200,
|
| + statusLine: "HTTP/1.1 200 OK",
|
| + type: "script",
|
| + url: getURL("requestBody/submit.js")
|
| + }
|
| + },
|
| + { label: "b-onBeforeRequest",
|
| + event: "onBeforeRequest",
|
| + details: {
|
| + method: "POST",
|
| + type: "main_frame",
|
| + url: getURL("requestBody/nonExistingTarget.html"),
|
| + frameUrl: getURL("requestBody/nonExistingTarget.html"),
|
| + body: ParseableForm ? {
|
| + parsedForm: parsedForm
|
| + } : {
|
| + raw: encodedData
|
| + }
|
| + }
|
| + },
|
| + { label: "b-onErrorOccurred",
|
| + event: "onErrorOccurred",
|
| + details: {
|
| + error: "net::ERR_FILE_NOT_FOUND",
|
| + fromCache: false,
|
| + method: "POST",
|
| + type: "main_frame",
|
| + url: getURL("requestBody/nonExistingTarget.html")
|
| + }
|
| + }
|
| + ],
|
| + [ // event order
|
| + ["a-onBeforeRequest", "a-onResponseStarted", "a-onCompleted",
|
| + "s-onBeforeRequest", "s-onResponseStarted", "s-onCompleted",
|
| + "b-onBeforeRequest", "b-onErrorOccurred"]
|
| + ],
|
| + {urls: ["<all_urls>"]}, // filter
|
| + ["body"]);
|
| + navigateAndWait(getURL(dirName + formFile));
|
| + close();
|
| + }
|
| +}
|
| +
|
| +runTests([
|
| + // Navigates to a page with a form and submits it, generating a POST request.
|
| + // First two result in url-encoded form.
|
| + sendPost('no-enctype.html', true),
|
| + sendPost('urlencoded.html', true),
|
| + // Third results in multipart-encoded form.
|
| + sendPost('multipart.html', true),
|
| + // Fourth results in unparseable form, and thus raw data string.
|
| + sendPost('plaintext.html', false),
|
| +]);
|
|
|