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

Unified Diff: chrome/test/data/extensions/api_test/webrequest/test_complex.html

Issue 7607003: Split ExtensionWebRequestApiTest.WebRequestEvents into multiple tests to (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 4 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_complex.html
diff --git a/chrome/test/data/extensions/api_test/webrequest/test_complex.html b/chrome/test/data/extensions/api_test/webrequest/test_complex.html
new file mode 100644
index 0000000000000000000000000000000000000000..6a560ca4d76d72afe8eeafb8a4cc3f6692db83ca
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/webrequest/test_complex.html
@@ -0,0 +1,353 @@
+<script src="framework.js">
+</script>
+<script>
+// Constants as functions, not to be called until after runTests.
+function getURLAuthRequired() {
+ return getServerURL('auth-basic');
+}
+function getURLHttpXHR() {
+ return getServerURL('files/extensions/api_test/webrequest/xhr/a.html');
+}
+function getURLHttpXHRData() {
+ return getServerURL('files/extensions/api_test/webrequest/xhr/data.json');
+}
+
+runTests([
+ // Navigates to a page with subresources.
+ function complexLoad() {
+ expect(
+ [ // events
+ { label: "a.html-onBeforeRequest",
+ event: "onBeforeRequest",
+ details: {
+ method: "GET",
+ tabId: tabId,
+ type: "main_frame",
+ url: getURL("complexLoad/a.html"),
+ frameUrl: getURL("complexLoad/a.html")
+ }
+ },
+ { label: "b.html-onBeforeRequest",
+ event: "onBeforeRequest",
+ details: {
+ method: "GET",
+ tabId: tabId,
+ type: "sub_frame",
+ url: getURL("complexLoad/b.html"),
+ frameUrl: getURL("complexLoad/b.html")
+ }
+ },
+ { label: "b.jpg-onBeforeRequest",
+ event: "onBeforeRequest",
+ details: {
+ method: "GET",
+ tabId: tabId,
+ type: "image",
+ url: getURL("complexLoad/b.jpg"),
+ frameUrl: getURL("complexLoad/b.html")
+ }
+ },
+ { label: "a.html-onResponseStarted",
+ event: "onResponseStarted",
+ details: {
+ url: getURL("complexLoad/a.html"),
+ fromCache: false,
+ statusCode: 200
+ // Request to chrome-extension:// url has no IP.
+ }
+ },
+ { label: "b.html-onResponseStarted",
+ event: "onResponseStarted",
+ details: {
+ url: getURL("complexLoad/b.html"),
+ fromCache: false,
+ statusCode: 200
+ // Request to chrome-extension:// url has no IP.
+ }
+ },
+ { label: "b.jpg-onResponseStarted",
+ event: "onResponseStarted",
+ details: {
+ url: getURL("complexLoad/b.jpg"),
+ fromCache: false,
+ statusCode: 200
+ // Request to chrome-extension:// url has no IP.
+ }
+ },
+ { label: "a.html-onCompleted",
+ event: "onCompleted",
+ details: {
+ url: getURL("complexLoad/a.html"),
+ fromCache: false,
+ statusCode: 200
+ // Request to chrome-extension:// url has no IP.
+ }
+ },
+ { label: "b.html-onCompleted",
+ event: "onCompleted",
+ details: {
+ url: getURL("complexLoad/b.html"),
+ fromCache: false,
+ statusCode: 200
+ // Request to chrome-extension:// url has no IP.
+ }
+ },
+ { label: "b.jpg-onCompleted",
+ event: "onCompleted",
+ details: {
+ url: getURL("complexLoad/b.jpg"),
+ fromCache: false,
+ statusCode: 200
+ // Request to chrome-extension:// url has no IP.
+ }
+ },
+ ],
+ [ // event order
+ ["a.html-onBeforeRequest", "a.html-onResponseStarted",
+ "b.html-onBeforeRequest", "b.html-onResponseStarted",
+ "b.jpg-onBeforeRequest", "b.jpg-onResponseStarted" ],
+ ["a.html-onResponseStarted", "a.html-onCompleted"],
+ ["b.html-onResponseStarted", "b.html-onCompleted"],
+ ["b.jpg-onResponseStarted", "b.jpg-onCompleted"] ]
+ );
+ navigateAndWait(getURL("complexLoad/a.html"));
+ },
+
+ // Loads several resources, but should only see the complexLoad main_frame
+ // and image due to the filter.
+ function complexLoadFiltered() {
+ expect(
+ [ // events
+ { label: "a-onBeforeRequest",
+ event: "onBeforeRequest",
+ details: {
+ method: "GET",
+ tabId: tabId,
+ type: "main_frame",
+ url: getURL("complexLoad/a.html"),
+ frameUrl: getURL("complexLoad/a.html")
+ }
+ },
+ { label: "b-onBeforeRequest",
+ event: "onBeforeRequest",
+ details: {
+ method: "GET",
+ tabId: tabId,
+ type: "image",
+ url: getURL("complexLoad/b.jpg"),
+ // As we do not listed to sub-frames we do not know the frameUrl.
+ frameUrl: "unknown frame URL"
+ }
+ },
+ { label: "a-onResponseStarted",
+ event: "onResponseStarted",
+ details: {
+ url: getURL("complexLoad/a.html"),
+ fromCache: false,
+ statusCode: 200
+ // Request to chrome-extension:// url has no IP.
+ }
+ },
+ { label: "b-onResponseStarted",
+ event: "onResponseStarted",
+ details: {
+ url: getURL("complexLoad/b.jpg"),
+ fromCache: false,
+ statusCode: 200
+ // Request to chrome-extension:// url has no IP.
+ }
+ },
+ { label: "a-onCompleted",
+ event: "onCompleted",
+ details: {
+ url: getURL("complexLoad/a.html"),
+ fromCache: false,
+ statusCode: 200
+ // Request to chrome-extension:// url has no IP.
+ }
+ },
+ { label: "b-onCompleted",
+ event: "onCompleted",
+ details: {
+ url: getURL("complexLoad/b.jpg"),
+ fromCache: false,
+ statusCode: 200
+ // Request to chrome-extension:// url has no IP.
+ }
+ },
+ ],
+ [ // event order
+ ["a-onBeforeRequest", "a-onResponseStarted",
+ "b-onBeforeRequest", "b-onResponseStarted"],
+ ["a-onResponseStarted", "a-onCompleted"],
+ ["b-onResponseStarted", "b-onCompleted"] ],
+ { // filters
+ urls: [getURL("complexLoad/*")],
+ types: ["main_frame", "image"],
+ tabId: tabId
+ });
+ chrome.tabs.create({ url: getURL("simpleLoad/a.html") },
+ function(newTab) {
+ chrome.tabs.remove(newTab.id);
+ navigateAndWait(getURL("complexLoad/a.html"));
+ });
+ },
+
+ // Loads a testserver page that requires authentication.
+ function authRequired() {
+ expect(
+ [ // events
+ { label: "onBeforeRequest",
+ event: "onBeforeRequest",
+ details: {
+ method: "GET",
+ tabId: tabId,
+ type: "main_frame",
+ url: getURLAuthRequired(),
+ frameUrl: getURLAuthRequired()
+ }
+ },
+ { label: "onBeforeSendHeaders",
+ event: "onBeforeSendHeaders",
+ details: {
+ url: getURLAuthRequired(),
+ // Note: no requestHeaders because we don't ask for them.
+ },
+ },
+ { label: "onSendHeaders",
+ event: "onSendHeaders",
+ details: {
+ url: getURLAuthRequired(),
+ }
+ },
+ { label: "onAuthRequired",
+ event: "onAuthRequired",
+ details: {
+ url: getURLAuthRequired(),
+ isProxy: false,
+ scheme: "basic",
+ realm: "testrealm",
+ }
+ },
+ { label: "onResponseStarted",
+ event: "onResponseStarted",
+ details: {
+ url: getURLAuthRequired(),
+ fromCache: false,
+ statusCode: 401,
+ ip: "127.0.0.1"
+ }
+ },
+ { label: "onCompleted",
+ event: "onCompleted",
+ details: {
+ url: getURLAuthRequired(),
+ fromCache: false,
+ statusCode: 401,
+ ip: "127.0.0.1"
+ }
+ },
+ ],
+ [ // event order
+ ["onBeforeRequest", "onBeforeSendHeaders", "onSendHeaders",
+ "onAuthRequired", "onResponseStarted", "onCompleted"]
+ ],
+ {}, []);
+ navigateAndWait(getURLAuthRequired());
+ },
+
+ // Navigates to a page to generates an XHR.
+ function xhrLoad() {
+ expect(
+ [ // events
+ { label: "onBeforeRequest-1",
+ event: "onBeforeRequest",
+ details: {
+ method: "GET",
+ tabId: tabId,
+ type: "main_frame",
+ url: getURLHttpXHR(),
+ frameUrl: getURLHttpXHR()
+ }
+ },
+ { label: "onBeforeSendHeaders-1",
+ event: "onBeforeSendHeaders",
+ details: {
+ url: getURLHttpXHR(),
+ }
+ },
+ { label: "onSendHeaders-1",
+ event: "onSendHeaders",
+ details: {
+ url: getURLHttpXHR(),
+ }
+ },
+ { label: "onResponseStarted-1",
+ event: "onResponseStarted",
+ details: {
+ url: getURLHttpXHR(),
+ statusCode: 200,
+ ip: "127.0.0.1",
+ fromCache: false,
+ }
+ },
+ { label: "onCompleted-1",
+ event: "onCompleted",
+ details: {
+ url: getURLHttpXHR(),
+ statusCode: 200,
+ ip: "127.0.0.1",
+ fromCache: false,
+ }
+ },
+ { label: "onBeforeRequest-2",
+ event: "onBeforeRequest",
+ details: {
+ method: "GET",
+ tabId: tabId,
+ type: "xmlhttprequest",
+ url: getURLHttpXHRData(),
+ frameUrl: getURLHttpXHR()
+ }
+ },
+ { label: "onBeforeSendHeaders-2",
+ event: "onBeforeSendHeaders",
+ details: {
+ url: getURLHttpXHRData(),
+ }
+ },
+ { label: "onSendHeaders-2",
+ event: "onSendHeaders",
+ details: {
+ url: getURLHttpXHRData(),
+ }
+ },
+ { label: "onResponseStarted-2",
+ event: "onResponseStarted",
+ details: {
+ url: getURLHttpXHRData(),
+ statusCode: 200,
+ ip: "127.0.0.1",
+ fromCache: false,
+ }
+ },
+ { label: "onCompleted-2",
+ event: "onCompleted",
+ details: {
+ url: getURLHttpXHRData(),
+ statusCode: 200,
+ ip: "127.0.0.1",
+ fromCache: false,
+ }
+ }
+ ],
+ [ // event order
+ ["onBeforeRequest-1", "onBeforeSendHeaders-1", "onSendHeaders-1",
+ "onResponseStarted-1", "onCompleted-1",
+ "onBeforeRequest-2", "onBeforeSendHeaders-2", "onSendHeaders-2",
+ "onResponseStarted-2", "onCompleted-2"] ],
+ {}, []);
+ navigateAndWait(getURLHttpXHR());
+ },
+]);
+</script>

Powered by Google App Engine
This is Rietveld 408576698