From 547881bcfb6187bc32a81a3e0d9468846092cba5 Mon Sep 17 00:00:00 2001 From: "rflint@ryanflint.com" Date: Mon, 25 Feb 2008 14:13:30 -0800 Subject: [PATCH] Bug 415700. r=gavin a=blocking-fx3 --- browser/components/search/nsSearchService.js | 6 +- browser/components/search/test/Makefile.in | 2 + .../components/search/test/browser_415700.js | 90 +++++++++++++++++++ browser/components/search/test/testEngine.xml | 12 +++ 4 files changed, 105 insertions(+), 5 deletions(-) create mode 100644 browser/components/search/test/browser_415700.js create mode 100644 browser/components/search/test/testEngine.xml diff --git a/browser/components/search/nsSearchService.js b/browser/components/search/nsSearchService.js index dcc430a4f1e..70309fa7bad 100755 --- a/browser/components/search/nsSearchService.js +++ b/browser/components/search/nsSearchService.js @@ -1396,7 +1396,7 @@ Engine.prototype = { this._urls.push(new EngineURL("text/html", aMethod, aTemplate)); this._name = aName; - this._alias = aAlias; + this.alias = aAlias; this._description = aDescription; this._setIcon(aIconURL, true); @@ -1526,9 +1526,6 @@ Engine.prototype = { break; // Non-OpenSearch elements - case "Alias": - this._alias = child.textContent; - break; case "SearchForm": this._searchForm = child.textContent; break; @@ -1905,7 +1902,6 @@ Engine.prototype = { } } - appendTextNode(MOZSEARCH_NS_10, "Alias", this.alias); appendTextNode(MOZSEARCH_NS_10, "UpdateInterval", this._updateInterval); appendTextNode(MOZSEARCH_NS_10, "UpdateUrl", this._updateURL); appendTextNode(MOZSEARCH_NS_10, "IconUpdateUrl", this._iconUpdateURL); diff --git a/browser/components/search/test/Makefile.in b/browser/components/search/test/Makefile.in index fd0abcdd16f..5f35f3fab52 100644 --- a/browser/components/search/test/Makefile.in +++ b/browser/components/search/test/Makefile.in @@ -45,6 +45,8 @@ include $(DEPTH)/config/autoconf.mk include $(topsrcdir)/config/rules.mk _BROWSER_TEST_FILES = browser_405664.js \ + browser_415700.js \ + testEngine.xml \ $(NULL) libs:: $(_BROWSER_TEST_FILES) diff --git a/browser/components/search/test/browser_415700.js b/browser/components/search/test/browser_415700.js new file mode 100644 index 00000000000..37368ff2597 --- /dev/null +++ b/browser/components/search/test/browser_415700.js @@ -0,0 +1,90 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is mozilla.org code. + * + * The Initial Developer of the Original Code is Mozilla Foundation. + * Portions created by the Initial Developer are Copyright (C) 2008 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Ryan Flint (Original Author) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ +var gSS = Cc["@mozilla.org/browser/search-service;1"]. + getService(Ci.nsIBrowserSearchService); +var gObs = Cc["@mozilla.org/observer-service;1"]. + getService(Ci.nsIObserverService); + +var observers = { + observe: function(aSubject, aTopic, aData) { + switch (aData) { + case "engine-added": + test2(); + break; + case "engine-current": + test3(); + break; + case "engine-removed": + test4(); + break; + } + } +}; + +function test() { + waitForExplicitFinish(); + gObs.addObserver(observers, "browser-search-engine-modified", false); + + gSS.addEngine("http://localhost:8888/browser/browser/components/search/test/testEngine.xml", + Ci.nsISearchEngine.DATA_XML, "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAABGklEQVQoz2NgGB6AnZ1dUlJSXl4eSDIyMhLW4Ovr%2B%2Fr168uXL69Zs4YoG%2BLi4i5dusTExMTGxsbNzd3f37937976%2BnpmZmagbHR09J49e5YvX66kpATVEBYW9ubNm2nTphkbG7e2tp44cQLIuHfvXm5urpaWFlDKysqqu7v73LlzECMYIiIiHj58mJCQoKKicvXq1bS0NKBgW1vbjh074uPjgeqAXE1NzSdPnvDz84M0AEUvXLgAsW379u1z5swBen3jxo2zZ892cHB4%2BvQp0KlAfwI1cHJyghQFBwfv2rULokFXV%2FfixYu7d%2B8GGqGgoMDKyrpu3br9%2B%2FcDuXl5eVA%2FAEWBfoWHAdAYoNuAYQ0XAeoUERFhGDYAAPoUaT2dfWJuAAAAAElFTkSuQmCC", + false); +} + +function test2() { + var engine = gSS.getEngineByName("Foo"); + ok(engine, "Engine was added."); + + var aEngine = gSS.getEngineByAlias("fooalias"); + ok(!aEngine, "Alias was not parsed from engine description"); + + gSS.currentEngine = engine; +} + +function test3() { + var engine = gSS.currentEngine; + is(engine.name, "Foo", "Current engine was changed successfully"); + + gSS.removeEngine(engine); +} + +function test4() { + var engine = gSS.currentEngine; + ok(engine, "An engine is present."); + isnot(engine.name, "Foo", "Current engine reset after removal"); + + gObs.removeObserver(observers, "browser-search-engine-modified"); + finish(); +} diff --git a/browser/components/search/test/testEngine.xml b/browser/components/search/test/testEngine.xml new file mode 100644 index 00000000000..416c0bb5eed --- /dev/null +++ b/browser/components/search/test/testEngine.xml @@ -0,0 +1,12 @@ + + Foo + Foo Search + utf-8 + data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAABGklEQVQoz2NgGB6AnZ1dUlJSXl4eSDIyMhLW4Ovr%2B%2Fr168uXL69Zs4YoG%2BLi4i5dusTExMTGxsbNzd3f37937976%2BnpmZmagbHR09J49e5YvX66kpATVEBYW9ubNm2nTphkbG7e2tp44cQLIuHfvXm5urpaWFlDKysqqu7v73LlzECMYIiIiHj58mJCQoKKicvXq1bS0NKBgW1vbjh074uPjgeqAXE1NzSdPnvDz84M0AEUvXLgAsW379u1z5swBen3jxo2zZ892cHB4%2BvQp0KlAfwI1cHJyghQFBwfv2rULokFXV%2FfixYu7d%2B8GGqGgoMDKyrpu3br9%2B%2FcDuXl5eVA%2FAEWBfoWHAdAYoNuAYQ0XAeoUERFhGDYAAPoUaT2dfWJuAAAAAElFTkSuQmCC + + + + http://localhost:8888/browser/browser/components/search/test/ + fooalias +