forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			99 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"use strict";
 | 
						|
 | 
						|
var gTestTab;
 | 
						|
var gContentAPI;
 | 
						|
 | 
						|
function test() {
 | 
						|
  requestLongerTimeout(2);
 | 
						|
  UITourTest();
 | 
						|
}
 | 
						|
 | 
						|
var tests = [
 | 
						|
  function test_no_params(done) {
 | 
						|
    function listener(event, params) {
 | 
						|
      is(event, "test-event-1", "Correct event name");
 | 
						|
      ok(!params, "No param object");
 | 
						|
      gContentAPI.observe(null);
 | 
						|
      done();
 | 
						|
    }
 | 
						|
 | 
						|
    gContentAPI.observe(listener, () => {
 | 
						|
      UITour.notify("test-event-1");
 | 
						|
    });
 | 
						|
  },
 | 
						|
  function test_param_string(done) {
 | 
						|
    function listener(event, params) {
 | 
						|
      is(event, "test-event-2", "Correct event name");
 | 
						|
      is(params, "a param", "Correct param string");
 | 
						|
      gContentAPI.observe(null);
 | 
						|
      done();
 | 
						|
    }
 | 
						|
 | 
						|
    gContentAPI.observe(listener, () => {
 | 
						|
      UITour.notify("test-event-2", "a param");
 | 
						|
    });
 | 
						|
  },
 | 
						|
  function test_param_object(done) {
 | 
						|
    function listener(event, params) {
 | 
						|
      is(event, "test-event-3", "Correct event name");
 | 
						|
      is(
 | 
						|
        JSON.stringify(params),
 | 
						|
        JSON.stringify({ key: "something" }),
 | 
						|
        "Correct param object"
 | 
						|
      );
 | 
						|
      gContentAPI.observe(null);
 | 
						|
      done();
 | 
						|
    }
 | 
						|
 | 
						|
    gContentAPI.observe(listener, () => {
 | 
						|
      UITour.notify("test-event-3", { key: "something" });
 | 
						|
    });
 | 
						|
  },
 | 
						|
  function test_background_tab(done) {
 | 
						|
    function listener(event, params) {
 | 
						|
      is(event, "test-event-background-1", "Correct event name");
 | 
						|
      ok(!params, "No param object");
 | 
						|
      gContentAPI.observe(null);
 | 
						|
      gBrowser.removeCurrentTab();
 | 
						|
      done();
 | 
						|
    }
 | 
						|
 | 
						|
    gContentAPI.observe(listener, () => {
 | 
						|
      gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser, "about:blank");
 | 
						|
      isnot(
 | 
						|
        gBrowser.selectedTab,
 | 
						|
        gTestTab,
 | 
						|
        "Make sure the selected tab changed"
 | 
						|
      );
 | 
						|
 | 
						|
      UITour.notify("test-event-background-1");
 | 
						|
    });
 | 
						|
  },
 | 
						|
  // Make sure the tab isn't torn down when switching back to the tour one.
 | 
						|
  function test_background_then_foreground_tab(done) {
 | 
						|
    let blankTab = null;
 | 
						|
    function listener(event, params) {
 | 
						|
      is(event, "test-event-4", "Correct event name");
 | 
						|
      ok(!params, "No param object");
 | 
						|
      gContentAPI.observe(null);
 | 
						|
      gBrowser.removeTab(blankTab);
 | 
						|
      done();
 | 
						|
    }
 | 
						|
 | 
						|
    gContentAPI.observe(listener, () => {
 | 
						|
      blankTab = gBrowser.selectedTab = BrowserTestUtils.addTab(
 | 
						|
        gBrowser,
 | 
						|
        "about:blank"
 | 
						|
      );
 | 
						|
      isnot(
 | 
						|
        gBrowser.selectedTab,
 | 
						|
        gTestTab,
 | 
						|
        "Make sure the selected tab changed"
 | 
						|
      );
 | 
						|
      gBrowser.selectedTab = gTestTab;
 | 
						|
      is(gBrowser.selectedTab, gTestTab, "Switch back to the test tab");
 | 
						|
 | 
						|
      UITour.notify("test-event-4");
 | 
						|
    });
 | 
						|
  },
 | 
						|
];
 |