toolkit/mozapps/extensions/test/browser/browser_bug580298.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/toolkit/mozapps/extensions/test/browser/browser_bug580298.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,111 @@
     1.4 +/* Any copyright is dedicated to the Public Domain.
     1.5 + * http://creativecommons.org/publicdomain/zero/1.0/
     1.6 + */
     1.7 +
     1.8 +// Tests that certain types of addons do not have their version number
     1.9 +// displayed. This currently only includes lightweight themes.
    1.10 +
    1.11 +var gManagerWindow;
    1.12 +var gCategoryUtilities;
    1.13 +var gProvider;
    1.14 +
    1.15 +function test() {
    1.16 +  waitForExplicitFinish();
    1.17 +
    1.18 +  gProvider = new MockProvider();
    1.19 +
    1.20 +  gProvider.createAddons([{
    1.21 +    id: "extension@tests.mozilla.org",
    1.22 +    name: "Extension 1",
    1.23 +    type: "extension",
    1.24 +    version: "123"
    1.25 +  }, {
    1.26 +    id: "theme@tests.mozilla.org",
    1.27 +    name: "Theme 2",
    1.28 +    type: "theme",
    1.29 +    version: "456"
    1.30 +  }, {
    1.31 +    id: "lwtheme@personas.mozilla.org",
    1.32 +    name: "Persona 3",
    1.33 +    type: "theme",
    1.34 +    version: "789"
    1.35 +  }]);
    1.36 +
    1.37 +  open_manager(null, function(aWindow) {
    1.38 +    gManagerWindow = aWindow;
    1.39 +    gCategoryUtilities = new CategoryUtilities(gManagerWindow);
    1.40 +    run_next_test();
    1.41 +  });
    1.42 +}
    1.43 +
    1.44 +function end_test() {
    1.45 +  close_manager(gManagerWindow, finish);
    1.46 +}
    1.47 +
    1.48 +function get(aId) {
    1.49 +  return gManagerWindow.document.getElementById(aId);
    1.50 +}
    1.51 +
    1.52 +function get_node(parent, anonid) {
    1.53 +  return parent.ownerDocument.getAnonymousElementByAttribute(parent, "anonid", anonid);
    1.54 +}
    1.55 +
    1.56 +function open_details(aList, aItem, aCallback) {
    1.57 +  aList.ensureElementIsVisible(aItem);
    1.58 +  EventUtils.synthesizeMouseAtCenter(aItem, { clickCount: 1 }, gManagerWindow);
    1.59 +  EventUtils.synthesizeMouseAtCenter(aItem, { clickCount: 2 }, gManagerWindow);
    1.60 +  wait_for_view_load(gManagerWindow, aCallback);
    1.61 +}
    1.62 +
    1.63 +function check_addon_has_version(aList, aName, aVersion) {
    1.64 +  for (let i = 0; i < aList.itemCount; i++) {
    1.65 +    let item = aList.getItemAtIndex(i);
    1.66 +    if (get_node(item, "name").value === aName) {
    1.67 +      ok(true, "Item with correct name found");
    1.68 +      is(get_node(item, "version").value, aVersion, "Item has correct version");
    1.69 +      return item;
    1.70 +    }
    1.71 +  }
    1.72 +  ok(false, "Item with correct name was not found");
    1.73 +  return null;
    1.74 +}
    1.75 +
    1.76 +add_test(function() {
    1.77 +  gCategoryUtilities.openType("extension", function() {
    1.78 +    info("Extension");
    1.79 +    let list = gManagerWindow.document.getElementById("addon-list");
    1.80 +    let item = check_addon_has_version(list, "Extension 1", "123");
    1.81 +    open_details(list, item, function() {
    1.82 +      is_element_visible(get("detail-version"), "Details view has version visible");
    1.83 +      is(get("detail-version").value, "123", "Details view has correct version");
    1.84 +      run_next_test();
    1.85 +    });
    1.86 +  });
    1.87 +});
    1.88 +
    1.89 +add_test(function() {
    1.90 +  gCategoryUtilities.openType("theme", function() {
    1.91 +    info("Normal theme");
    1.92 +    let list = gManagerWindow.document.getElementById("addon-list");
    1.93 +    let item = check_addon_has_version(list, "Theme 2", "456");
    1.94 +    open_details(list, item, function() {
    1.95 +      is_element_visible(get("detail-version"), "Details view has version visible");
    1.96 +      is(get("detail-version").value, "456", "Details view has correct version");
    1.97 +      run_next_test();
    1.98 +    });
    1.99 +  });
   1.100 +});
   1.101 +
   1.102 +add_test(function() {
   1.103 +  gCategoryUtilities.openType("theme", function() {
   1.104 +    info("Lightweight theme");
   1.105 +    let list = gManagerWindow.document.getElementById("addon-list");
   1.106 +    // See that the version isn't displayed
   1.107 +    let item = check_addon_has_version(list, "Persona 3", "");
   1.108 +    open_details(list, item, function() {
   1.109 +      is_element_hidden(get("detail-version"), "Details view has version hidden");
   1.110 +      // If the version element is hidden then we don't care about its value
   1.111 +      run_next_test();
   1.112 +    });
   1.113 +  });
   1.114 +});

mercurial