summaryrefslogtreecommitdiffstats
path: root/devtools/server/tests/browser/browser_stylesheets_nested-iframes.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/server/tests/browser/browser_stylesheets_nested-iframes.js')
-rw-r--r--devtools/server/tests/browser/browser_stylesheets_nested-iframes.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/devtools/server/tests/browser/browser_stylesheets_nested-iframes.js b/devtools/server/tests/browser/browser_stylesheets_nested-iframes.js
new file mode 100644
index 000000000..c382b6ce8
--- /dev/null
+++ b/devtools/server/tests/browser/browser_stylesheets_nested-iframes.js
@@ -0,0 +1,38 @@
+/* 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/ */
+
+"use strict";
+
+// Test that StyleSheetsActor.getStyleSheets() works if an iframe does not have
+// a content document.
+
+const {StyleSheetsFront} = require("devtools/shared/fronts/stylesheets");
+
+add_task(function* () {
+ let browser = yield addTab(MAIN_DOMAIN + "stylesheets-nested-iframes.html");
+ let doc = browser.contentDocument;
+
+ info("Initialising the debugger server and client.");
+ initDebuggerServer();
+ let client = new DebuggerClient(DebuggerServer.connectPipe());
+ let form = yield connectDebuggerClient(client);
+
+ info("Attaching to the active tab.");
+ yield client.attachTab(form.actor);
+
+ let front = StyleSheetsFront(client, form);
+ ok(front, "The StyleSheetsFront was created.");
+
+ let sheets = yield front.getStyleSheets();
+ ok(sheets, "getStyleSheets() succeeded even with documentless iframes.");
+
+ // Bug 285395 limits the number of nested iframes to 10. There's one sheet per
+ // frame so we should get 10 sheets. However, the limit might change in the
+ // future so it's better not to rely on the limit. Asserting > 2 ensures that
+ // the test page is actually loading nested iframes and this test is doing
+ // something sensible (if we got this far, the test has served its purpose).
+ ok(sheets.length > 2, sheets.length + " sheets found (expected 3 or more).");
+
+ yield client.close();
+});