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 +});