summaryrefslogtreecommitdiffstats
path: root/devtools/shared/webconsole/test/test_nsiconsolemessage.html
blob: ef8b8067e09bfe9b11df4781de8ce1d4432a25f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<!DOCTYPE HTML>
<html lang="en">
<head>
  <meta charset="utf8">
  <title>Test for nsIConsoleMessages</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>Make sure that nsIConsoleMessages are logged. See bug 859756.</p>

<script class="testbody" type="text/javascript;version=1.8">
"use strict";
SimpleTest.waitForExplicitFinish();

let expectedMessages = [];

function startTest()
{
  removeEventListener("load", startTest);
  attachConsole(["PageError"], onAttach);
}

function onAttach(aState, aResponse)
{
  onLogMessage = onLogMessage.bind(null, aState);
  aState.dbgClient.addListener("logMessage", onLogMessage);

  expectedMessages = [{
    message: "hello world! bug859756",
    timeStamp: /^\d+$/,
  }];

  Services.console.logStringMessage("hello world! bug859756");

  info("waiting for messages");
}

let receivedMessages = [];

function onLogMessage(aState, aType, aPacket)
{
  is(aPacket.from, aState.actor, "packet actor");
  info("received message: " + aPacket.message);

  let found = false;
  for (let expected of expectedMessages) {
    if (expected.message == aPacket.message) {
      found = true;
      break;
    }
  }
  if (!found) {
    return;
  }

  receivedMessages.push(aPacket);
  if (receivedMessages.length != expectedMessages.length) {
    return;
  }

  aState.dbgClient.removeListener("logMessage", onLogMessage);

  checkObject(receivedMessages, expectedMessages);

  closeDebugger(aState, () => SimpleTest.finish());
}

addEventListener("load", startTest);
</script>
</body>
</html>