1 /* ***** BEGIN LICENSE BLOCK *****
  2  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  3  *
  4  * The contents of this file are subject to the Mozilla Public License Version
  5  * 1.1 (the "License"); you may not use this file except in compliance with
  6  * the License. You may obtain a copy of the License at
  7  * http://www.mozilla.org/MPL/
  8  *
  9  * Software distributed under the License is distributed on an "AS IS" basis,
 10  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 11  * for the specific language governing rights and limitations under the
 12  * License.
 13  *
 14  * The Original Code is MozMill Test code.
 15  *
 16  * The Initial Developer of the Original Code is the Mozilla Foundation.
 17  * Portions created by the Initial Developer are Copyright (C) 2010
 18  * the Initial Developer. All Rights Reserved.
 19  *
 20  * Contributor(s):
 21  *   Henrik Skupin <hskupin@mozilla.com>
 22  *   Geo Mealer <gmealer@mozilla.com>
 23  *
 24  * Alternatively, the contents of this file may be used under the terms of
 25  * either the GNU General Public License Version 2 or later (the "GPL"), or
 26  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 27  * in which case the provisions of the GPL or the LGPL are applicable instead
 28  * of those above. If you wish to allow use of your version of this file only
 29  * under the terms of either the GPL or the LGPL, and not to allow others to
 30  * use your version of this file under the terms of the MPL, indicate your
 31  * decision by deleting the provisions above and replace them with the notice
 32  * and other provisions required by the GPL or the LGPL. If you do not delete
 33  * the provisions above, a recipient may use your version of this file under
 34  * the terms of any one of the MPL, the GPL or the LGPL.
 35  *
 36  * ***** END LICENSE BLOCK ***** */
 37 
 38 var TabBar = require("tabbar");
 39 var NavBar = require("navbar");
 40 var Widgets = require("widgets");
 41 var Inheritance = require("../external/inheritance");
 42 
 43 var get = function get(document) {
 44   return new Browser(document);
 45 }
 46 
 47 var Browser = Inheritance.Class.extend(Widgets.XulRegion, {
 48   initialize: function Browser_initialize(document) {
 49     this.parent("tag", "#main-window", document);
 50     
 51     this.tabBar = new TabBar.TabBar(this);
 52     this.navBar = new NavBar.NavBar(this);
 53   },
 54 
 55   // Original said this was part of tabs, but disagree. This will have to be
 56   // part of browser, because browser will be the class that has A) a link to
 57   // the navBar and B) a link to the tabs in order to check that the page
 58   // actually appeared after waitForPageLoad ends.
 59   openUrl: function Browser_openUrl(text, timeout) {
 60     this.navBar.urlBarText.type(text);
 61     this.navBar.urlBarText.keyPress("VK_RETURN");
 62     this.waitForPageLoad(timeout);
 63     // XXX: should check after itself to see if page is actually loaded and
 64     // throw an error if not.
 65   },
 66   
 67   waitForPageLoad: function Browser_waitForPageLoad(timeout) {
 68     this.controller.waitForPageLoad(timeout);
 69   }
 70 });
 71 
 72 exports.get = get;