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

Unified Diff: chrome/test/data/extensions/api_test/webrequest/test_post.js

Issue 10694055: Add read-only access to POST data for webRequest's onBeforeRequest (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Unescaping field name + corresponding api tests enhanced Created 8 years, 3 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: 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..3c4ca2b4349daf45007456ccdef1d19ea34d4abc
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/webrequest/test_post.js
@@ -0,0 +1,130 @@
+// 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 formData = {
+ "check": ["option_A"],
+ "password": ["password"],
+ "radio": ["Yes"],
+ "select": ["one"],
+ "text\"1\u011B\u0161\u00FD\u4EBA\r\n \r\n": ["TEST_TEXT_1"],
vabr (Chromium) 2012/09/03 09:55:30 Added control and non-ASCII characters to test aga
+ "text2": ["TEST_TEXT_2"],
+ "text3": ["TEST_TEXT_3"],
+ "txtarea": ["text\"1\u011B\u0161\u00FD\u4EBA\r\n \r\n"]
+ };
+ 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"),
+ requestBody: parseableForm ? {
+ formData: formData
+ } : {
+ raw: [{bytes: {byteLength: 158}}]
+ }
+ }
+ },
+ { 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
+ ["requestBody"]);
+ navigateAndWait(getURL(dirName + formFile), function() {close();});
+ 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),
+]);

Powered by Google App Engine
This is Rietveld 408576698