Closed Bug 677193 Opened 13 years ago Closed 13 years ago

Mozmill test for uninstalling a theme

Categories

(Mozilla QA Graveyard :: Mozmill Tests, defect)

defect
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: remus.pop, Assigned: remus.pop)

References

Details

(Whiteboard: [mozmill-restart][mozmill-aom])

Attachments

(1 file, 16 obsolete files)

(deleted), patch
u279076
: review+
Details | Diff | Splinter Review
User Agent: Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0 Build ID: 20110622232052 Steps to reproduce: Tracking creation of new mozmill test for uninstalling a theme. Litmus test: https://litmus.mozilla.org/show_test.cgi?id=15697
Status: UNCONFIRMED → NEW
Ever confirmed: true
Assignee: nobody → remus.pop
A Pivotal Tracker story has been created for this Bug: https://www.pivotaltracker.com/story/show/16881653
vlad.maniac added a comment in Pivotal Tracker: I will own Remus's stories until he get access in pivotal to create his own
Status: NEW → ASSIGNED
Depends on 680366 because we cannot use the handleInstallDialog.
Depends on: 680366
Looks like bug 680366 was just resolved. Is this working for you now, Remus?
Yes, Anthony, this is working for me now. I will soon upload my proposed test.
Attached patch proposed test v1 (obsolete) (deleted) — Splinter Review
Used the theme install and check part from Vlad.
Attachment #554406 - Flags: review?(vlad.mozbugs)
Attached patch proposed test v1 (obsolete) (deleted) — Splinter Review
Changed r=alex.lakatos
Attachment #554406 - Attachment is obsolete: true
Attachment #554406 - Flags: review?(vlad.mozbugs)
Attachment #555053 - Flags: review?(alex.lakatos)
Comment on attachment 555053 [details] [diff] [review] proposed test v1 >+/** >+ * Verifies the theme is installed >+ */ Can you please reword this to "Test that verifies the theme is installed"? >+ assert.equal(theme.length, 0, >+ "Number of installed themes with given id must be 0"); >+} Please use soft assertions. Why can't we use addonsManager.isAddonInstalled() here?
Attachment #555053 - Flags: review?(alex.lakatos) → review-
Attached patch patch v2 (obsolete) (deleted) — Splinter Review
Modified as requested. We cannot use the addonsManager.isAddonInstalled() because we must supply it with an addon. We cannot get an addon once it is removed and passing it through the persisted object will result also in an error.
Attachment #555053 - Attachment is obsolete: true
Attachment #556515 - Flags: review?(alex.lakatos)
Attachment #556515 - Flags: review?(anthony.s.hughes)
Attachment #556515 - Flags: review?(alex.lakatos)
Attachment #556515 - Flags: review+
Comment on attachment 556515 [details] [diff] [review] patch v2 >+ * Contributor(s): >+ * Vlad Maniac <vlad.maniac@softvisioninc.eu> (original author) Add yourself as a contributor if you have altered/supplemented any of Vlad's code. >+ var addToFirefox = new elementslib.Selector(controller.tabs.activeTab, >+ ".install-button a"); Make the string ".install-button a" a const for your test, something like SELECTOR_ADD_TO_FIREFOX >+ expect.equal(theme.length, 0, >+ "Number of installed themes with given id"); Please concat the theme id and length into the error message to make it more informative.
Attachment #556515 - Flags: review?(anthony.s.hughes) → review-
(In reply to Anthony Hughes, Mozilla QA (irc: ashughes) from comment #10) > >+ var addToFirefox = new elementslib.Selector(controller.tabs.activeTab, > >+ ".install-button a"); > > Make the string ".install-button a" a const for your test, something like > SELECTOR_ADD_TO_FIREFOX Fairly, I'm not really sure if it makes sense to split out everything as constants. For things like that it makes the test way harder to read because you have to look at two different locations. The value is also used only once and no-where else. Just my opinion. > >+ expect.equal(theme.length, 0, > >+ "Number of installed themes with given id"); > > Please concat the theme id and length into the error message to make it more > informative. The message is wrong and should say: "No theme should be installed anymore". There is no need to concat the length because that's done internally by equal.
Attached patch patch v3 (obsolete) (deleted) — Splinter Review
Changed last expect.equal message.
Attachment #556515 - Attachment is obsolete: true
Attachment #557128 - Flags: review?(anthony.s.hughes)
Comment on attachment 557128 [details] [diff] [review] patch v3 I agree with your comment 11, Henrik; it makes sense. @Remus, I assume this patch has been tested and is good to land for Nightly, Aurora, Beta, and Release?
Attachment #557128 - Flags: review?(anthony.s.hughes) → review+
Keywords: checkin-needed
Depends on: 672763
Anthony, this bug would be very much dependent on bug 672763. We need to have our own test theme to work on, so when Henrik checks in Alex's patch for that, we can modify this test and then check in. To my mind, we would not want to check in this yet. It's kind of instable due to compatibility issues and depends much on network connection and the availability of amo preview site.
Removing check-in needed due to blocker bug 672763. Vlad, please re-test this patch once that bug is fixed. If it passes we can check it in at that time. Thanks
Keywords: checkin-needed
Whiteboard: [mozmill-aom]
Attached patch patch v4 (obsolete) (deleted) — Splinter Review
Updated the theme part to use our newly created test theme "Theme (Plain)".
Attachment #557128 - Attachment is obsolete: true
Attachment #559087 - Flags: review?(vlad.mozbugs)
Comment on attachment 559087 [details] [diff] [review] patch v4 >+const THEME = { >+ name: "Theme (Plain)", >+ id: "plain.theme@quality.mozilla.org", >+ url: "http://mozqa.com/data/firefox/addons/install.html?addon=themes/plain.jar" We want to install it from localhost not from mozqa.com.
Attachment #559087 - Flags: feedback-
Attached patch patch v5 + theme (obsolete) (deleted) — Splinter Review
Updated patch to install the theme from local directory data/theme. This patch also contains binary data for the theme itself and the install script.
Attachment #559087 - Attachment is obsolete: true
Attachment #559087 - Flags: review?(vlad.mozbugs)
Attachment #559116 - Flags: review?(vlad.mozbugs)
Attached patch patch v5 + theme (obsolete) (deleted) — Splinter Review
Sorry, wrong patch applied earlier.
Attachment #559116 - Attachment is obsolete: true
Attachment #559116 - Flags: review?(vlad.mozbugs)
Attachment #559122 - Flags: review?(vlad.mozbugs)
Comment on attachment 559122 [details] [diff] [review] patch v5 + theme ># HG changeset patch ># User Remus Pop <remus.pop@softvision.ro> ># Date 1315485690 -10800 ># Node ID 1198daeda37a00f241833aa9e5d383f8d1c675f1 ># Parent 1a4bb374ff803a734dc5d708895a1105cc1a49d5 >Bug 677193 - Mozmill test for uninstalling a theme r=vlad.maniac > >diff --git a/data/theme/install.html b/data/theme/install.html >new file mode 100644 >--- /dev/null >+++ b/data/theme/install.html >@@ -0,0 +1,32 @@ >+<html> >+ <head> >+ <title>Test page for installing an addon/theme</title> >+ <script type="text/javascript"> >+ function generateLink() { >+ var addonLink = /\?addon=(.+)$/.exec(window.document.location)[1]; >+ var path = /(.*)\/.*\?.*/.exec(window.location.toString())[1]; >+ var installLink = path + '/' + addonLink; >+ >+ var installElement = document.getElementById("addon"); >+ installElement.href = installLink; >+ installElement.text = installLink; >+ } >+ >+ function install(aEvent) { >+ var params = { >+ "Foo": { URL: aEvent.target.href, >+ toString: function () { return this.URL; } >+ } >+ }; >+ >+ InstallTrigger.install(params); >+ return false; >+ } >+ </script> >+ </head> >+ <body onLoad="generateLink();"> >+ <div> >+ <p>Install the add-on: <a href="#" id="addon" onClick="return install(event);"></a></p> >+ </div> >+ </body> >+</html> >diff --git a/data/theme/plain.jar b/data/theme/plain.jar >new file mode 100644 >index 0000000000000000000000000000000000000000..6be4a69a1c87e4ddc28852e46c634dc8860c6e01 >GIT binary patch >literal 11911 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 > >diff --git a/tests/functional/restartTests/testAddons_uninstallTheme/test1.js b/tests/functional/restartTests/testAddons_uninstallTheme/test1.js >new file mode 100644 >--- /dev/null >+++ b/tests/functional/restartTests/testAddons_uninstallTheme/test1.js >@@ -0,0 +1,80 @@ >+/* ***** 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 MozMill Test code. >+ * >+ * The Initial Developer of the Original Code is the Mozilla Foundation. >+ * Portions created by the Initial Developer are Copyright (C) 2011 >+ * the Initial Developer. All Rights Reserved. >+ * >+ * Contributor(s): >+ * Vlad Maniac <vlad.maniac@softvisioninc.eu> (original author) >+ * Remus Pop <remus.pop@softvision.ro> >+ * >+ * 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 ***** */ >+ >+// Include required modules >+var addons = require("../../../../lib/addons"); >+var modalDialog = require("../../../../lib/modal-dialog"); >+var tabs = require("../../../../lib/tabs"); >+ >+const LOCAL_INSTALL_SCRIPT = "theme/install.html?addon="; >+const LOCAL_TEST_FOLDER = collector.addHttpResource('../../../../data/'); >+const TIMEOUT_DOWNLOAD = 25000; >+ >+const THEME = { >+ name: "Theme (Plain)", >+ id: "plain.theme@quality.mozilla.org", >+ url: LOCAL_TEST_FOLDER + LOCAL_INSTALL_SCRIPT + "plain.jar" >+}; >+ >+function setupModule() { >+ controller = mozmill.getBrowserController(); >+ addonsManager = new addons.AddonsManager(controller); >+ >+ // Whitelist add the AMO preview site >+ addons.addToWhiteList(LOCAL_TEST_FOLDER); >+ >+ // Store the theme in the persisted object >+ persisted.theme = THEME; >+ >+ tabs.closeAllTabs(controller); >+} >+ >+/** >+ * Test installing a theme >+ */ >+function testInstallTheme() { >+ // Go to theme url and perform install >+ controller.open(persisted.theme.url); >+ controller.waitForPageLoad(); >+ >+ var installLink = new elementslib.ID(controller.tabs.activeTab, "addon"); >+ var md = new modalDialog.modalDialog(addonsManager.controller.window); >+ >+ md.start(addons.handleInstallAddonDialog); >+ controller.click(installLink); >+ md.waitForDialog(TIMEOUT_DOWNLOAD); >+} >diff --git a/tests/functional/restartTests/testAddons_uninstallTheme/test2.js b/tests/functional/restartTests/testAddons_uninstallTheme/test2.js >new file mode 100644 >--- /dev/null >+++ b/tests/functional/restartTests/testAddons_uninstallTheme/test2.js >@@ -0,0 +1,69 @@ >+/* ***** 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 MozMill Test code. >+ * >+ * The Initial Developer of the Original Code is the Mozilla Foundation. >+ * Portions created by the Initial Developer are Copyright (C) 2011 >+ * the Initial Developer. All Rights Reserved. >+ * >+ * Contributor(s): >+ * Vlad Maniac <vlad.maniac@softvisioninc.eu> (original author) >+ * Remus Pop <remus.pop@softvision.ro> >+ * >+ * 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 ***** */ >+ >+// Include required modules >+var addons = require("../../../../lib/addons"); >+var {expect} = require("../../../../lib/assertions"); >+var tabs = require("../../../../lib/tabs"); >+ >+function setupModule() { >+ controller = mozmill.getBrowserController(); >+ addonsManager = new addons.AddonsManager(controller); >+ >+ tabs.closeAllTabs(controller); >+} >+ >+/** >+ * Test that verifies the theme is installed >+ */ >+function testThemeIsInstalled() { >+ addonsManager.open(); >+ >+ // Set category to 'Appearance' >+ addonsManager.setCategory({ >+ category: addonsManager.getCategoryById({id: "theme"}) >+ }); >+ >+ // Verify the theme is installed >+ var aTheme = addonsManager.getAddons({attribute: "value", value: persisted.theme.id})[0]; >+ var themeIsInstalled = addonsManager.isAddonInstalled({addon: aTheme}); >+ >+ expect.ok(themeIsInstalled, "The theme is successfully installed"); >+ >+ // Remove theme >+ addonsManager.removeAddon({addon: aTheme}); >+} >diff --git a/tests/functional/restartTests/testAddons_uninstallTheme/test3.js b/tests/functional/restartTests/testAddons_uninstallTheme/test3.js >new file mode 100644 >--- /dev/null >+++ b/tests/functional/restartTests/testAddons_uninstallTheme/test3.js >@@ -0,0 +1,63 @@ >+/* ***** 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 MozMill Test code. >+ * >+ * The Initial Developer of the Original Code is the Mozilla Foundation. >+ * Portions created by the Initial Developer are Copyright (C) 2011 >+ * the Initial Developer. All Rights Reserved. >+ * >+ * Contributor(s): >+ * Remus Pop <remus.pop@softvision.ro> (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 ***** */ >+ >+// Include required modules >+var addons = require("../../../../lib/addons"); >+var {expect} = require("../../../../lib/assertions"); >+var tabs = require("../../../../lib/tabs"); >+ >+function setupModule(module) { >+ controller = mozmill.getBrowserController(); >+ addonsManager = new addons.AddonsManager(controller); >+} >+ >+function teardownModule() { >+ delete persisted.theme; >+ >+ addonsManager.close(); >+} >+ >+/** >+ * Test that a theme has been uninstalled >+ */ >+function testThemeIsUninstalled() { >+ addonsManager.open(); >+ >+ var theme = addonsManager.getAddons({attribute: "value", >+ value: persisted.theme.id}); >+ >+ expect.equal(theme.length, 0, "No theme should be installed anymore"); >+}
Attachment #559122 - Flags: review?(vlad.mozbugs)
Cancelling r? request untill Alex gets the stuff on mozmill-tests/data. Then Remus, please upload a patch without the binary content. Thanks
We need the local theme.
Depends on: 685515
Attached patch patch v6 (obsolete) (deleted) — Splinter Review
This uses the theme from the local repo.
Attachment #559122 - Attachment is obsolete: true
Attachment #561992 - Flags: review?(alex.lakatos)
Attachment #561992 - Flags: review?(vlad.mozbugs)
Comment on attachment 561992 [details] [diff] [review] patch v6 >+const LOCAL_INSTALL_SCRIPT = "addons/install.html?addon="; >+const LOCAL_TEST_FOLDER = collector.addHttpResource('../../../../data/'); >+const TIMEOUT_DOWNLOAD = 25000; >+ >+const THEME = { >+ name: "Theme (Plain)", >+ id: "plain.theme@quality.mozilla.org", >+ url: LOCAL_TEST_FOLDER + LOCAL_INSTALL_SCRIPT + "themes/plain.jar" >+}; Small nit: Please move const TIMEOUT_DOWNLOAD = 25000; under THEME making sure you leave an empty line Otherwise the patch looks fine.
Attachment #561992 - Flags: review?(vlad.mozbugs)
Attachment #561992 - Flags: review?(alex.lakatos)
Attachment #561992 - Flags: review-
Comment on attachment 561992 [details] [diff] [review] patch v6 >+ >+ // Whitelist add the AMO preview site >+ addons.addToWhiteList(LOCAL_TEST_FOLDER); While you're at it, please change the comment. You're not whitelisting the AMO preview site here anymore.
Attachment #561992 - Flags: review-
Attached file patch v7 (obsolete) (deleted) —
Updated as requested.
Attachment #561992 - Attachment is obsolete: true
Attachment #562729 - Flags: review?(vlad.mozbugs)
Attached patch patch v7 (obsolete) (deleted) — Splinter Review
Attachment #562729 - Attachment is obsolete: true
Attachment #562729 - Flags: review?(vlad.mozbugs)
Attachment #562732 - Flags: review?(vlad.mozbugs)
Comment on attachment 562732 [details] [diff] [review] patch v7 >+ expect.ok(themeIsInstalled, "The theme is successfully installed"); Please use assert instead of expect. We do not want to continue with the test if the installation is not successful >+ >+ var theme = addonsManager.getAddons({attribute: "value", >+ value: persisted.theme.id}); Please be consistent across tests. Whether name "aTheme" or "theme" >+ expect.equal(theme.length, 0, "No theme should be installed anymore"); Please change the expect to an assert, for the same reason as pointed out above Fix the nits and will be a + then. Thanks Remus
Attachment #562732 - Flags: review?(vlad.mozbugs) → review-
Attached patch patch v8 (obsolete) (deleted) — Splinter Review
Addressed all requests besides the last one. The test finishes at that line so it's alright to use a soft assert.
Attachment #562732 - Attachment is obsolete: true
Attachment #564527 - Flags: review?(vlad.mozbugs)
Comment on attachment 564527 [details] [diff] [review] patch v8 We do not need the add-on binary content anymore since its landed under data/ Also, the install script is no longer needed. Remus, please remove those and upload a clean test-patch. I'm sure it will be a + then code-wise
Attachment #564527 - Flags: review?(vlad.mozbugs) → review-
(In reply to Maniac Vlad Florin (:vladmaniac) from comment #30) > Also, the install script is no longer needed. That's not true. For theme installation you will always have to use the install page. JAR files aren't handled that good as their XPI variants.
Attached patch patch v9 (obsolete) (deleted) — Splinter Review
The path to the install script wasn't correct either so I modified it and removed extra constant for the local install script.
Attachment #564527 - Attachment is obsolete: true
Attachment #566482 - Flags: review?(vlad.mozbugs)
(In reply to Henrik Skupin (:whimboo) from comment #31) > (In reply to Maniac Vlad Florin (:vladmaniac) from comment #30) > > Also, the install script is no longer needed. > > That's not true. For theme installation you will always have to use the > install page. JAR files aren't handled that good as their XPI variants. No longer needed in the patch :)
Comment on attachment 566482 [details] [diff] [review] patch v9 >+const THEME = { >+ name: "Theme (Plain)", >+ id: "plain.theme@quality.mozilla.org", >+ url: LOCAL_TEST_FOLDER + "addons/install.html?addon=/themes/plain.jar" >+}; Please add "addons/install.html?addon=" to a constant called LOCAL_INSTALL_SCRIPT to be consistent with the other tests With this nit addressed it's an r+ from my end. please fix then ask for r from anthony. thanks Remus
Attachment #566482 - Flags: review?(vlad.mozbugs) → review-
Attached patch patch v10 (obsolete) (deleted) — Splinter Review
Addressed Vlad's request.
Attachment #566482 - Attachment is obsolete: true
Attachment #566511 - Flags: review?(anthony.s.hughes)
(In reply to Maniac Vlad Florin (:vladmaniac) from comment #34) > >+const THEME = { > >+ name: "Theme (Plain)", > >+ id: "plain.theme@quality.mozilla.org", > >+ url: LOCAL_TEST_FOLDER + "addons/install.html?addon=/themes/plain.jar" > >+}; > > Please add "addons/install.html?addon=" to a constant called > LOCAL_INSTALL_SCRIPT to be consistent with the other tests Please keep in mind that I have requested the opposite direction for a review on one of your patches. Let's Anthony decide what he wants to have.
Comment on attachment 566511 [details] [diff] [review] patch v10 >+const THEME = { >+ name: "Theme (Plain)", >+ id: "plain.theme@quality.mozilla.org", >+ url: LOCAL_TEST_FOLDER + LOCAL_INSTALL_SCRIPT + "/themes/plain.jar" >+}; Agree with Henrik. Please use... LOCAL_TEST_FOLDER + "addons/install.html?addon=/themes/plain.jar" >+ assert.ok(themeIsInstalled, "The theme is successfully installed"); This should be "expect" since we cannot continue the test if the theme was not installed. >+ expect.equal(theme.length, 0, "No theme should be installed anymore"); Please use the theme ID in the message: "THEME_ID has been uninstalled"
Attachment #566511 - Flags: review?(anthony.s.hughes) → review-
Attached patch patch v11 (obsolete) (deleted) — Splinter Review
Removed const LOCAL_INSTALL_SCRIPT. Changed the last expect message in test3 so the id of the theme is shown. Anthony, with assert and expect it's the other way around. We use assert when our check will invalidate the rest of the test. Here we wouldn't be able to remove the theme because it isn't there. If we would have use expect, an error will be thrown for ~ "addon not specified".
Attachment #566511 - Attachment is obsolete: true
Attachment #567711 - Flags: review?(anthony.s.hughes)
Attached patch patch v11 (obsolete) (deleted) — Splinter Review
Sorry about that. This is the correct patch.
Attachment #567711 - Attachment is obsolete: true
Attachment #567711 - Flags: review?(anthony.s.hughes)
Attachment #567718 - Flags: review?(anthony.s.hughes)
Attachment #567718 - Attachment is patch: true
Comment on attachment 567718 [details] [diff] [review] patch v11 >+ assert.ok(themeIsInstalled, "The theme is successfully installed"); Sorry if I missed this in my last review. Please use the theme ID in the message and no need for the word "successfully". >+ expect.equal(theme.length, 0, persisted.theme.id + " should be uninstalled"); "is uninstalled" -- also, I'm not sure if this should be an assert instead since it is the final check in a test. Henrik, do you have any thoughts on this?
Attachment #567718 - Flags: review?(anthony.s.hughes) → review-
(In reply to Anthony Hughes, Mozilla QA (irc: ashughes) from comment #40) > >+ expect.equal(theme.length, 0, persisted.theme.id + " should be uninstalled"); > > "is uninstalled" -- also, I'm not sure if this should be an assert instead > since it is the final check in a test. Henrik, do you have any thoughts on > this? Doesn't matter, but to be consistent with one of your former comments and the fact that we would not be able to continue the test if more code would exist afterward, I second in using assert.
Attached patch patch v12 (obsolete) (deleted) — Splinter Review
Addressed all requests.
Attachment #567718 - Attachment is obsolete: true
Attachment #568014 - Flags: review?(anthony.s.hughes)
Comment on attachment 568014 [details] [diff] [review] patch v12 >ug 677193 - Mozmill test for uninstalling a theme r=vlad.maniac, r=ashughes Fix comment >+/** >+ * Test that verifies the theme is installed >+ */ Reword, "Test theme has been installed then uninstall"
Attachment #568014 - Flags: review?(anthony.s.hughes) → review-
Attached patch patch v13 [checked-in] (deleted) — Splinter Review
Addressed all requests.
Attachment #568014 - Attachment is obsolete: true
Attachment #570660 - Flags: review?(anthony.s.hughes)
Comment on attachment 570660 [details] [diff] [review] patch v13 [checked-in] Remus, while Anthony's on vacation, please ask for review from Henrik or Geo. Thanks
Attachment #570660 - Flags: review?(anthony.s.hughes) → review?(hskupin)
Attachment #570660 - Flags: review?(hskupin) → review?(gmealer)
Attachment #570660 - Flags: review?(gmealer) → review?(anthony.s.hughes)
Comment on attachment 570660 [details] [diff] [review] patch v13 [checked-in] >+ assert.equal(theme.length, 0, persisted.theme.id + " is uninstalled"); Just a small nit here. I'm wondering if this is the safest way we determine if a theme has been uninstalled. This will fail if someone is running Mozmill tests on a profile with profiles pre-installed, I believe. It might be safe enough to check for the existance of any Themes with the same ID as your's installed.
Attachment #570660 - Flags: review?(anthony.s.hughes) → review-
(In reply to Anthony Hughes, Mozilla QA (irc: ashughes) from comment #46) > It might be safe enough to check for the existance of any Themes with the > same ID as your's installed. We actually do that. We search for addons with the specified id, which is the theme id: > var theme = addonsManager.getAddons({attribute: "value", value: persisted.theme.id}); If an empty array is returned, the theme is no longer installed.
Attachment #570660 - Flags: review- → review?(anthony.s.hughes)
Comment on attachment 570660 [details] [diff] [review] patch v13 [checked-in] >+ // Whitelist add the AMO preview site >+ addons.addToWhiteList(LOCAL_TEST_FOLDER); Should this should have a corresponding removal from the whitelist in the teardownModule of the final test?
Attachment #570660 - Flags: review?(anthony.s.hughes) → review-
> >+ // Whitelist add the AMO preview site > >+ addons.addToWhiteList(LOCAL_TEST_FOLDER); > > Should this should have a corresponding removal from the whitelist in the > teardownModule of the final test? No restart test has remove from whitelist in teardownModule. Henrik, can I get your feedback on this?
Right. No need for that line because the profile gets thrown away right after.
Comment on attachment 570660 [details] [diff] [review] patch v13 [checked-in] If that is the case, please review this again, Anthony.
Attachment #570660 - Flags: review?(anthony.s.hughes)
Attachment #570660 - Flags: review?(anthony.s.hughes) → review+
Attachment #570660 - Attachment description: patch v13 → patch v13 [checked-in]
Attachment #570660 - Flags: review-
Please verify with tomorrow's testrun and update the spreadsheet and Litmus test.
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Whiteboard: [mozmill-aom] → [mozmill-functional][mozmill-aom]
No fail since checked-in.
Status: RESOLVED → VERIFIED
Whiteboard: [mozmill-functional][mozmill-aom] → [mozmill-restart][mozmill-aom]
Product: Mozilla QA → Mozilla QA Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: