/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */


function test() {
  waitForExplicitFinish();

  // create two groups and each group has one tab item
  let newState = {
    windows: [{
      tabs: [{
        entries: [{ url: "http://www.google.com" }],
        hidden: true,
        attributes: {},
        extData: {
          "tabview-tab":
            '{"bounds":{"left":21,"top":29,"width":204,"height":153},' +
            '"userSize":null,"url":"http://www.google.com","groupID":1,' +
            '"imageData":null,"title":null}'
        }
      },{
        entries: [{ url: "about:blank" }],
        hidden: false,
        attributes: {},
        extData: {
          "tabview-tab":
            '{"bounds":{"left":315,"top":29,"width":111,"height":84},' +
            '"userSize":null,"url":"about:blank","groupID":2,' +
            '"imageData":null,"title":null}'
        },
      }],
      selected:2,
      _closedTabs: [],
      extData: {
        "tabview-groups": '{"nextID":3,"activeGroupId":2}',
        "tabview-group":
          '{"1":{"bounds":{"left":15,"top":5,"width":280,"height":232},' +
          '"userSize":null,"title":"","id":1},' +
          '"2":{"bounds":{"left":309,"top":5,"width":267,"height":226},' +
          '"userSize":null,"title":"","id":2}}',
        "tabview-ui": '{"pageBounds":{"left":0,"top":0,"width":788,"height":548}}'
      }, sizemode:"normal"
    }]
  };

  newWindowWithState(newState, function(win) {
    registerCleanupFunction(function () win.close());

    let selectedTab = win.gBrowser.selectedTab;

    win.addEventListener("tabviewframeinitialized", function onInit() {
      win.removeEventListener("tabviewframeinitialized", onInit, false);
      // ensure the TabView.contentWindow is set.
      executeSoon(function() {
        let cw = win.TabView.getContentWindow();

        is(cw.GroupItems.groupItems.length, 2, "There are two groups");
        is(cw.GroupItems.getActiveGroupItem().id, 1, "The active group item is 1");
        isnot(selectedTab, win.gBrowser.selectedTab, "The selected tab is different");

        finish();
      });
    }, false);

    goToNextGroup(win);
  });
}
