summaryrefslogtreecommitdiffstats
path: root/devtools/shared/webconsole/test/test_reflow.html
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/shared/webconsole/test/test_reflow.html')
-rw-r--r--devtools/shared/webconsole/test/test_reflow.html94
1 files changed, 94 insertions, 0 deletions
diff --git a/devtools/shared/webconsole/test/test_reflow.html b/devtools/shared/webconsole/test/test_reflow.html
new file mode 100644
index 000000000..2ac2ca509
--- /dev/null
+++ b/devtools/shared/webconsole/test/test_reflow.html
@@ -0,0 +1,94 @@
+<!DOCTYPE HTML>
+<html lang="en">
+<head>
+ <meta charset="utf8">
+ <title>Test for the Reflow Activity</title>
+ <script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
+ <script type="text/javascript;version=1.8" src="common.js"></script>
+ <!-- Any copyright is dedicated to the Public Domain.
+ - http://creativecommons.org/publicdomain/zero/1.0/ -->
+</head>
+<body>
+<p>Test for reflow events</p>
+
+<script class="testbody" type="text/javascript;version=1.8">
+SimpleTest.waitForExplicitFinish();
+
+let client;
+
+function generateReflow()
+{
+ top.document.documentElement.style.display = "none";
+ top.document.documentElement.getBoundingClientRect();
+ top.document.documentElement.style.display = "block";
+}
+
+function startTest()
+{
+ removeEventListener("load", startTest);
+ attachConsoleToTab(["ReflowActivity"], onAttach);
+}
+
+function onAttach(aState, aResponse)
+{
+ client = aState.dbgClient;
+
+ onReflowActivity = onReflowActivity.bind(null, aState);
+ client.addListener("reflowActivity", onReflowActivity);
+ generateReflow();
+}
+
+// We are expecting 3 reflow events.
+let expectedEvents = [
+ {
+ interruptible: false,
+ sourceURL: "chrome://mochitests/content/chrome/devtools/shared/webconsole/test/test_reflow.html",
+ functionName: "generateReflow"
+ },
+ {
+ interruptible: true,
+ sourceURL: null,
+ functionName: null
+ },
+ {
+ interruptible: true,
+ sourceURL: null,
+ functionName: null
+ },
+];
+
+let receivedEvents = [];
+
+
+function onReflowActivity(aState, aType, aPacket)
+{
+ info("packet: " + aPacket.message);
+ receivedEvents.push(aPacket);
+ if (receivedEvents.length == expectedEvents.length) {
+ checkEvents();
+ finish(aState);
+ }
+}
+
+function checkEvents() {
+ for (let i = 0; i < expectedEvents.length; i++) {
+ let a = expectedEvents[i];
+ let b = receivedEvents[i];
+ for (let key in a) {
+ is(a[key], b[key], "field " + key + " is valid");
+ }
+ }
+}
+
+function finish(aState) {
+ client.removeListener("reflowActivity", onReflowActivity);
+ closeDebugger(aState, function() {
+ SimpleTest.finish();
+ });
+}
+
+addEventListener("load", startTest);
+
+</script>
+</body>
+</html>