function test()
{
  waitForExplicitFinish();

  var level1 = false;
  var level2 = false;
  function test1() {
    // Load the following URI (which runs some child popup tests) in a new window (B),
    // then add a blank tab to B and call replaceTabWithWindow to detach the URI tab
    // into yet a new window (C), then close B.
    // Now run the tests again and then close C.
    // The test results does not matter, all this is just to exercise some code to
    // catch assertions or crashes.
    var chromeroot = getRootDirectory(gTestPath);
    var uri = chromeroot + "browser_tab_dragdrop2_frame1.xul";
    let window_B = openDialog(location, "_blank", "chrome,all,dialog=no,left=200,top=200,width=200,height=200", uri);
    window_B.addEventListener("load", function(aEvent) {
      window_B.removeEventListener("load", arguments.callee, false);
      if (level1) return; level1=true;
      executeSoon(function () {
        window_B.gBrowser.addEventListener("load", function(aEvent) {
          window_B.removeEventListener("load", arguments.callee, true);
          if (level2) return; level2=true;
          is(window_B.gBrowser.getBrowserForTab(window_B.gBrowser.tabs[0]).contentWindow.location, uri, "sanity check");
          //alert("1:"+window_B.gBrowser.getBrowserForTab(window_B.gBrowser.tabs[0]).contentWindow.location);
          var windowB_tab2 = window_B.gBrowser.addTab("about:blank", {skipAnimation: true});
          setTimeout(function () {
            //alert("2:"+window_B.gBrowser.getBrowserForTab(window_B.gBrowser.tabs[0]).contentWindow.location);
            window_B.gBrowser.addEventListener("pagehide", function(aEvent) {
              window_B.gBrowser.removeEventListener("pagehide", arguments.callee, true);
              executeSoon(function () {
                // alert("closing window_B which has "+ window_B.gBrowser.tabs.length+" tabs\n"+
                //      window_B.gBrowser.getBrowserForTab(window_B.gBrowser.tabs[0]).contentWindow.location);
                window_B.close();

                var doc = window_C.gBrowser.getBrowserForTab(window_C.gBrowser.tabs[0])
                            .docShell.contentViewer.DOMDocument;
                var calls = doc.defaultView.test_panels();
                window_C.close();
                finish();
              });
            }, true);
            window_B.gBrowser.selectedTab = window_B.gBrowser.tabs[0];
            var window_C = window_B.gBrowser.replaceTabWithWindow(window_B.gBrowser.tabs[0]);
            }, 1000);  // 1 second to allow the tests to create the popups
        }, true);
      });
    }, false);
  }

  test1();
}
