summaryrefslogtreecommitdiff
path: root/dom/tests/mochitest/geolocation/test_manyWindows.html
blob: a2e682ba1c4ea17c2c755c1dab5547f49ffe9e31 (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
<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=478911
-->
<head>
  <title>Test for many windows </title>
  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
  <script type="text/javascript" src="geolocation_common.js"></script>

<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<a target="_blank"
href="https://bugzilla.mozilla.org/show_bug.cgi?id=478911">Crash in Multiple Windows</a>
<p id="display"></p>
<div id="content" style="display: none">
  
</div>
<pre id="test">
<script class="testbody" type="text/javascript">

// ensure we are using the right testing provider
resume_geolocationProvider(function() {
  force_prompt(true, test1);
});

/** Test for Bug  **/

var numberOfWindows = 5;  // 20 seems to be the default max popups during the mochitest run
var loadedWindows = 0;

var windows = new Array(numberOfWindows);

addEventListener("message", function() {
  ++loadedWindows;
  if (loadedWindows == numberOfWindows) {
    SimpleTest.executeSoon(closeWindows);
  }
}, false);

function test1() {
  for(var i = 0; i < numberOfWindows; i++) {
    windows[i] = window.open("geolocation.html", "_blank", "width=700,height=400");
  }
}

function closeWindows()
{
  for(var i = 0; i < numberOfWindows; i++) {
    windows[i].close();
  }
  SimpleTest.waitForFocus(done);
}

SimpleTest.waitForExplicitFinish();

function done()
{
  ok(navigator.geolocation, "Opened a bunch of windows and didn't crash.");
  SimpleTest.finish();
}

</script>
</pre>
</body>
</html>