Closed
Bug 677193
Opened 13 years ago
Closed 13 years ago
Mozmill test for uninstalling a theme
Categories
(Mozilla QA Graveyard :: Mozmill Tests, defect)
Mozilla QA Graveyard
Mozmill Tests
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)
9.25 KB,
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
Updated•13 years ago
|
Status: UNCONFIRMED → NEW
Ever confirmed: true
Assignee | ||
Updated•13 years ago
|
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
Assignee | ||
Comment 3•13 years ago
|
||
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?
Assignee | ||
Comment 5•13 years ago
|
||
Yes, Anthony, this is working for me now. I will soon upload my proposed test.
Assignee | ||
Comment 6•13 years ago
|
||
Used the theme install and check part from Vlad.
Attachment #554406 -
Flags: review?(vlad.mozbugs)
Assignee | ||
Comment 7•13 years ago
|
||
Changed r=alex.lakatos
Attachment #554406 -
Attachment is obsolete: true
Attachment #554406 -
Flags: review?(vlad.mozbugs)
Attachment #555053 -
Flags: review?(alex.lakatos)
Comment 8•13 years ago
|
||
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-
Assignee | ||
Comment 9•13 years ago
|
||
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)
Updated•13 years ago
|
Attachment #556515 -
Flags: review?(anthony.s.hughes)
Attachment #556515 -
Flags: review?(alex.lakatos)
Attachment #556515 -
Flags: review+
Comment 10•13 years ago
|
||
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-
Comment 11•13 years ago
|
||
(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.
Assignee | ||
Comment 12•13 years ago
|
||
Changed last expect.equal message.
Attachment #556515 -
Attachment is obsolete: true
Attachment #557128 -
Flags: review?(anthony.s.hughes)
Comment 13•13 years ago
|
||
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
Comment 14•13 years ago
|
||
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.
Comment 15•13 years ago
|
||
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
Assignee | ||
Comment 16•13 years ago
|
||
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 17•13 years ago
|
||
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-
Assignee | ||
Comment 18•13 years ago
|
||
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)
Assignee | ||
Comment 19•13 years ago
|
||
Sorry, wrong patch applied earlier.
Attachment #559116 -
Attachment is obsolete: true
Attachment #559116 -
Flags: review?(vlad.mozbugs)
Attachment #559122 -
Flags: review?(vlad.mozbugs)
Comment 20•13 years ago
|
||
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)
Comment 21•13 years ago
|
||
Cancelling r? request untill Alex gets the stuff on mozmill-tests/data.
Then Remus, please upload a patch without the binary content.
Thanks
Assignee | ||
Comment 23•13 years ago
|
||
This uses the theme from the local repo.
Attachment #559122 -
Attachment is obsolete: true
Attachment #561992 -
Flags: review?(alex.lakatos)
Updated•13 years ago
|
Attachment #561992 -
Flags: review?(vlad.mozbugs)
Comment 24•13 years ago
|
||
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 25•13 years ago
|
||
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-
Assignee | ||
Comment 26•13 years ago
|
||
Updated as requested.
Attachment #561992 -
Attachment is obsolete: true
Attachment #562729 -
Flags: review?(vlad.mozbugs)
Assignee | ||
Comment 27•13 years ago
|
||
Attachment #562729 -
Attachment is obsolete: true
Attachment #562729 -
Flags: review?(vlad.mozbugs)
Assignee | ||
Updated•13 years ago
|
Attachment #562732 -
Flags: review?(vlad.mozbugs)
Comment 28•13 years ago
|
||
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-
Assignee | ||
Comment 29•13 years ago
|
||
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 30•13 years ago
|
||
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-
Comment 31•13 years ago
|
||
(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.
Assignee | ||
Comment 32•13 years ago
|
||
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)
Comment 33•13 years ago
|
||
(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 34•13 years ago
|
||
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-
Assignee | ||
Comment 35•13 years ago
|
||
Addressed Vlad's request.
Attachment #566482 -
Attachment is obsolete: true
Attachment #566511 -
Flags: review?(anthony.s.hughes)
Comment 36•13 years ago
|
||
(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 37•13 years ago
|
||
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-
Assignee | ||
Comment 38•13 years ago
|
||
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)
Assignee | ||
Comment 39•13 years ago
|
||
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)
Assignee | ||
Updated•13 years ago
|
Attachment #567718 -
Attachment is patch: true
Comment 40•13 years ago
|
||
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-
Comment 41•13 years ago
|
||
(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.
Assignee | ||
Comment 42•13 years ago
|
||
Addressed all requests.
Attachment #567718 -
Attachment is obsolete: true
Attachment #568014 -
Flags: review?(anthony.s.hughes)
Comment 43•13 years ago
|
||
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-
Assignee | ||
Comment 44•13 years ago
|
||
Addressed all requests.
Attachment #568014 -
Attachment is obsolete: true
Attachment #570660 -
Flags: review?(anthony.s.hughes)
Comment 45•13 years ago
|
||
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)
Assignee | ||
Updated•13 years ago
|
Attachment #570660 -
Flags: review?(hskupin) → review?(gmealer)
Assignee | ||
Updated•13 years ago
|
Attachment #570660 -
Flags: review?(gmealer) → review?(anthony.s.hughes)
Comment 46•13 years ago
|
||
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-
Assignee | ||
Comment 47•13 years ago
|
||
(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.
Assignee | ||
Updated•13 years ago
|
Attachment #570660 -
Flags: review- → review?(anthony.s.hughes)
Comment 48•13 years ago
|
||
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-
Assignee | ||
Comment 49•13 years ago
|
||
> >+ // 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?
Comment 50•13 years ago
|
||
Right. No need for that line because the profile gets thrown away right after.
Assignee | ||
Comment 51•13 years ago
|
||
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+
Comment 52•13 years ago
|
||
Comment on attachment 570660 [details] [diff] [review]
patch v13 [checked-in]
Landed:
http://hg.mozilla.org/qa/mozmill-tests/rev/5bba4fac8a2c (default)
http://hg.mozilla.org/qa/mozmill-tests/rev/83392beb117a (mozilla-aurora)
http://hg.mozilla.org/qa/mozmill-tests/rev/24603a1abad6 (mozilla-beta)
http://hg.mozilla.org/qa/mozmill-tests/rev/c8024b96a187 (mozilla-release)
Attachment #570660 -
Attachment description: patch v13 → patch v13 [checked-in]
Attachment #570660 -
Flags: review-
Comment 53•13 years ago
|
||
Please verify with tomorrow's testrun and update the spreadsheet and Litmus test.
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Whiteboard: [mozmill-functional][mozmill-aom] → [mozmill-restart][mozmill-aom]
Updated•5 years ago
|
Product: Mozilla QA → Mozilla QA Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•