diff --git a/toolkit/mozapps/downloads/tests/Makefile.in b/toolkit/mozapps/downloads/tests/Makefile.in index a9da746819d..ef7541b491c 100644 --- a/toolkit/mozapps/downloads/tests/Makefile.in +++ b/toolkit/mozapps/downloads/tests/Makefile.in @@ -49,6 +49,7 @@ XPCSHELL_TESTS = \ unit \ $(NULL) +DIRS += browser DIRS += chrome include $(topsrcdir)/config/rules.mk diff --git a/toolkit/mozapps/downloads/tests/browser/Makefile.in b/toolkit/mozapps/downloads/tests/browser/Makefile.in new file mode 100644 index 00000000000..2665bc5a205 --- /dev/null +++ b/toolkit/mozapps/downloads/tests/browser/Makefile.in @@ -0,0 +1,54 @@ +# +# ***** 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 code. +# +# The Initial Developer of the Original Code is +# Mozilla Corporation. +# Portions created by the Initial Developer are Copyright (C) 2008 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Shawn Wilsher (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 ***** + +DEPTH = ../../../../.. +topsrcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ +relativesrcdir = toolkit/mozapps/downloads/tests/browser + +include $(DEPTH)/config/autoconf.mk +include $(topsrcdir)/config/rules.mk + +_BROWSER_FILES = \ + browser_bug_406857.js \ + browser_bug_412360.js \ + $(NULL) + +libs:: $(_BROWSER_FILES) + $(INSTALL) $(foreach f,$^,"$f") $(DEPTH)/_tests/testing/mochitest/browser/$(relativesrcdir) diff --git a/toolkit/components/downloads/test/unit/test_bug_406857.js b/toolkit/mozapps/downloads/tests/browser/browser_bug_406857.js similarity index 72% rename from toolkit/components/downloads/test/unit/test_bug_406857.js rename to toolkit/mozapps/downloads/tests/browser/browser_bug_406857.js index 9d9ff76d152..9db3598167c 100644 --- a/toolkit/components/downloads/test/unit/test_bug_406857.js +++ b/toolkit/mozapps/downloads/tests/browser/browser_bug_406857.js @@ -39,12 +39,15 @@ * retrying the download. */ -function run_test() +function test() { let dm = Cc["@mozilla.org/download-manager;1"]. getService(Ci.nsIDownloadManager); let db = dm.DBConnection; + // Empty any old downloads + db.executeSimpleSQL("DELETE FROM moz_downloads"); + let stmt = db.createStatement( "INSERT INTO moz_downloads (source, target, state, referrer) " + "VALUES (?1, ?2, ?3, ?4)"); @@ -76,22 +79,46 @@ function run_test() { switch (aDownload.state) { case dm.DOWNLOAD_DOWNLOADING: - do_check_eq(aDownload.referrer.spec, referrer); + ok(aDownload.referrer.spec == referrer, "Got referrer on download"); break; case dm.DOWNLOAD_FINISHED: - do_check_eq(aDownload.referrer.spec, referrer); + ok(aDownload.referrer.spec == referrer, "Got referrer on finish"); dm.removeListener(listener); + obs.removeObserver(testObs, DLMGR_UI_DONE); try { file.remove(false); } catch(e) { /* stupid windows box */ } - do_test_finished(); + finish(); break; } } }; dm.addListener(listener); - // Retry the download, and wait. - dm.retryDownload(1); + // Close the UI if necessary + let wm = Cc["@mozilla.org/appshell/window-mediator;1"]. + getService(Ci.nsIWindowMediator); + let win = wm.getMostRecentWindow("Download:Manager"); + if (win) win.close(); - do_test_pending(); + let obs = Cc["@mozilla.org/observer-service;1"]. + getService(Ci.nsIObserverService); + const DLMGR_UI_DONE = "download-manager-ui-done"; + + let testObs = { + observe: function(aSubject, aTopic, aData) { + if (aTopic != DLMGR_UI_DONE) + return; + + // Send the enter key to Download Manager to retry the download + let win = aSubject.QueryInterface(Ci.nsIDOMWindow); + EventUtils.synthesizeKey("VK_ENTER", {}, win); + } + }; + obs.addObserver(testObs, DLMGR_UI_DONE, false); + + // Show the Download Manager UI + Cc["@mozilla.org/download-manager-ui;1"]. + getService(Ci.nsIDownloadManagerUI).show(); + + waitForExplicitFinish(); } diff --git a/toolkit/mozapps/downloads/tests/chrome/test_bug_412360.xul b/toolkit/mozapps/downloads/tests/browser/browser_bug_412360.js similarity index 57% rename from toolkit/mozapps/downloads/tests/chrome/test_bug_412360.xul rename to toolkit/mozapps/downloads/tests/browser/browser_bug_412360.js index a2cdf67d381..3fbfd9b2cb9 100644 --- a/toolkit/mozapps/downloads/tests/chrome/test_bug_412360.xul +++ b/toolkit/mozapps/downloads/tests/browser/browser_bug_412360.js @@ -1,5 +1,3 @@ - - - - - - - - -

- -

-  
-
diff --git a/toolkit/mozapps/downloads/tests/chrome/Makefile.in b/toolkit/mozapps/downloads/tests/chrome/Makefile.in index 9bb242f44ba..d9c750de851 100644 --- a/toolkit/mozapps/downloads/tests/chrome/Makefile.in +++ b/toolkit/mozapps/downloads/tests/chrome/Makefile.in @@ -60,7 +60,6 @@ _CHROME_FILES = \ test_select_all.xul \ test_space_key_pauses_resumes.xul \ test_ui_stays_open_on_alert_clickback.xul \ - test_bug_412360.xul \ test_bug_429247.xul \ $(NULL)