summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/general/browser_bug495058.js
blob: a82c6c93156ac719c802487c89f7edd622f83553 (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
/**
 * Tests that the right elements of a tab are focused when it is
 * torn out into its own window.
 */

const URIS = [
  "about:blank",
  "about:sessionrestore",
  "about:privatebrowsing",
];

add_task(function*() {
  for (let uri of URIS) {
    let tab = gBrowser.addTab();
    yield BrowserTestUtils.loadURI(tab.linkedBrowser, uri);

    let win = gBrowser.replaceTabWithWindow(tab);
    yield TestUtils.topicObserved("browser-delayed-startup-finished",
                                  subject => subject == win);
    tab = win.gBrowser.selectedTab;

    // BrowserTestUtils doesn't get the add-on shims, which means that
    // MozAfterPaint won't get shimmed over if we add an event handler
    // for it in the parent.
    if (tab.linkedBrowser.isRemoteBrowser) {
      yield BrowserTestUtils.waitForContentEvent(tab.linkedBrowser, "MozAfterPaint");
    } else {
      yield BrowserTestUtils.waitForEvent(tab.linkedBrowser, "MozAfterPaint");
    }

    Assert.equal(win.gBrowser.currentURI.spec, uri, uri + ": uri loaded in detached tab");
    Assert.equal(win.document.activeElement, win.gBrowser.selectedBrowser, uri + ": browser is focused");
    Assert.equal(win.gURLBar.value, "", uri + ": urlbar is empty");
    Assert.ok(win.gURLBar.placeholder, uri + ": placeholder text is present");

    yield BrowserTestUtils.closeWindow(win);
  }
});