[Pkg-mozext-commits] [compactheader] 345/441: Version 2.0.4beta1 Another try to fix the compatibility with mnenhy addon.

David Prévot taffit at moszumanska.debian.org
Wed Mar 18 12:29:16 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository compactheader.

commit fa42663771b506e9b4b1570a0dc9cc09c5dcc7e2
Author: Joachim Herb <Joachim.Herb at gmx.de>
Date:   Fri Apr 13 22:37:56 2012 +0200

    Version 2.0.4beta1 Another try to fix the compatibility with mnenhy addon.
---
 .../CompactHeader/content/compactHeaderOverlay.js  |  54 ++++++----
 install.rdf                                        |   2 +-
 test/compactheader/test-compactheader-collapse.js  |  86 ++++++++++++++--
 .../test-compactheader-preferences.js              |   2 -
 test/compactheader/test-compactheader-toolbar.js   |  12 ---
 test/compactheader/test-more-button.js             | 113 +++++++++++++++++++--
 test/executeTests.pl                               |  16 ++-
 test/shared-modules/test-compactheader-helpers.js  |  12 +++
 8 files changed, 244 insertions(+), 53 deletions(-)

diff --git a/chrome/CompactHeader/content/compactHeaderOverlay.js b/chrome/CompactHeader/content/compactHeaderOverlay.js
index c8f9e60..09317f4 100644
--- a/chrome/CompactHeader/content/compactHeaderOverlay.js
+++ b/chrome/CompactHeader/content/compactHeaderOverlay.js
@@ -106,6 +106,8 @@ org.mozdev.compactHeader.pane = function() {
 
   var coheFirstTime = true;
   var headerFirstTime = true;
+  
+  var pressMores = null;
 
   function coheOutputSubject(headerEntry, headerValue) {
     var subjectBox;
@@ -200,29 +202,12 @@ org.mozdev.compactHeader.pane = function() {
       }
       let moreButton = document.getAnonymousElementByAttribute(document.getElementById("CompactHeader_collapsed2LtoCcBccBox"),
         "anonid", "more");
-      let moreButtonTo = document.getAnonymousElementByAttribute(document.getElementById("expandedtoBox"),
-          "anonid", "more");
-      let moreButtonCC = document.getAnonymousElementByAttribute(document.getElementById("expandedccBox"),
-          "anonid", "more");
-      let moreButtonBCC = document.getAnonymousElementByAttribute(document.getElementById("expandedbccBox"),
-          "anonid", "more");
 
       if (moreButton) {
         let oldToggleWrap = moreButton.parentNode.toggleWrap;
         moreButton.parentNode.toggleWrap = function() {
+          pressMores = pressMoreButtons;
           pub.coheToggleHeaderView();
-          if (!moreButtonTo.hasAttribute("collapsed")) {
-            moreButtonTo.click();
-            org.mozdev.compactHeader.debug.log("toggle To");
-          }
-          if (!moreButtonCC.hasAttribute("collapsed")) {
-            moreButtonCC.click();
-            org.mozdev.compactHeader.debug.log("toggle cc");
-          }
-          if (!moreButtonBCC.hasAttribute("collapsed")) {
-            moreButtonBCC.click();
-            org.mozdev.compactHeader.debug.log("toggle bcc");
-          }
         };
       }
     } else {
@@ -235,6 +220,28 @@ org.mozdev.compactHeader.pane = function() {
     org.mozdev.compactHeader.RSSLinkify.InitializeHeaderViewTables();
   }
 
+  function pressMoreButtons() {
+    let moreButtonTo = document.getAnonymousElementByAttribute(document.getElementById("expandedtoBox"),
+        "anonid", "more");
+    let moreButtonCC = document.getAnonymousElementByAttribute(document.getElementById("expandedccBox"),
+        "anonid", "more");
+    let moreButtonBCC = document.getAnonymousElementByAttribute(document.getElementById("expandedbccBox"),
+        "anonid", "more");
+    if (!moreButtonTo.hasAttribute("collapsed")) {
+      moreButtonTo.click();
+      org.mozdev.compactHeader.debug.log("toggle To");
+    }
+    if (!moreButtonCC.hasAttribute("collapsed")) {
+      moreButtonCC.click();
+      org.mozdev.compactHeader.debug.log("toggle cc");
+    }
+    if (!moreButtonBCC.hasAttribute("collapsed")) {
+      moreButtonBCC.click();
+      org.mozdev.compactHeader.debug.log("toggle bcc");
+    }
+    pressMores = null;
+  }
+  
   pub.coheOnLoadMsgHeaderPane = function() {
     org.mozdev.compactHeader.debug.log("coheOnLoadMsgHeaderPane start");
 
@@ -322,6 +329,10 @@ org.mozdev.compactHeader.pane = function() {
     function cML_onEndHeaders() {
       ClearHeaderView(gCoheCollapsedHeaderView);
       coheUpdateMessageHeaders();
+      if (pressMores) {
+        pressMoreButtons();
+        pressMore = null;
+      }
     },
 
     onEndAttachments: function cML_onEndAttachments(){}
@@ -413,12 +424,13 @@ org.mozdev.compactHeader.pane = function() {
 
     if (gCoheCollapsedHeaderViewMode) {
       deck.selectedPanel = document.getElementById("CompactHeader_collapsedHeaderView")
-      coheUpdateMessageHeaders();
+      gDBView.reloadMessage();
+      //coheUpdateMessageHeaders();
     } else {
       deck.selectedPanel = document.getElementById("expandedHeaderView");
       //ClearHeaderView(gExpandedHeaderView);
-      UpdateExpandedMessageHeaders();
-      //gDBView.reloadMessage();
+      gDBView.reloadMessage();
+      //UpdateExpandedMessageHeaders();
     }
 
     // Work around a xul deck bug where the height of the deck is determined
diff --git a/install.rdf b/install.rdf
index 5561631..354109e 100644
--- a/install.rdf
+++ b/install.rdf
@@ -6,7 +6,7 @@
 
 	<RDF:Description about="urn:mozilla:install-manifest">
 		<em:name>CompactHeader</em:name>
-		<em:version>2.0.3</em:version>
+		<em:version>2.0.4beta1</em:version>
 		<em:description>Add ability to reduce header size to one or two lines. Linkify subjects in RSS feeds.</em:description>
 		<em:creator>Joachim Herb</em:creator>
 		<em:contributor>Zamula</em:contributor>
diff --git a/test/compactheader/test-compactheader-collapse.js b/test/compactheader/test-compactheader-collapse.js
index 1ca96cc..a2ed1ed 100644
--- a/test/compactheader/test-compactheader-collapse.js
+++ b/test/compactheader/test-compactheader-collapse.js
@@ -35,7 +35,7 @@
  *
  * ***** END LICENSE BLOCK ***** */
 
-var MODULE_NAME = 'test-compactheader-preferences';
+var MODULE_NAME = 'test-compactheader-collapse';
 
 var RELATIVE_ROOT = '../shared-modules';
 var MODULE_REQUIRES = ['folder-display-helpers', 'window-helpers',
@@ -53,10 +53,6 @@ var WindowHelper;
 var folder1;
 var folder2;
 
-const PREF = "browser.preferences.instantApply";
-var prefBranch = Cc["@mozilla.org/preferences-service;1"]
-                    .getService(Ci.nsIPrefService).getBranch(null);
-
 var messageBodyISO8859_1 = "ae: " + String.fromCharCode(228) +
   ", oe: " + String.fromCharCode(246) +
   ", ue: " + String.fromCharCode(252) +
@@ -93,7 +89,6 @@ function setupModule(module) {
                               "Content-Base": "http://example.com/",
                               "Bcc": "Richard Roe <richard.roe at momo.invalid>"
                             }});
-
   add_message_to_folder(folder1, msg);
 
   let msg = create_message({cc: msgGen.makeNamesAndAddresses(2), // YYY
@@ -104,7 +99,6 @@ function setupModule(module) {
       "Content-Base": "http://example.com/",
       "Bcc": "Richard Roe <richard.roe at momo.invalid>"
     }});
-
   add_message_to_folder(folder1, msg);
 
   let msg = create_message({
@@ -115,7 +109,11 @@ function setupModule(module) {
       "cc": "S Soe <s.soe at s.invalid>",
     },
     });
+  add_message_to_folder(folder1, msg);
 
+  let msg = create_message({cc: msgGen.makeNamesAndAddresses(3),
+    to: msgGen.makeNamesAndAddresses(1)
+  });
   add_message_to_folder(folder1, msg);
 
 }
@@ -294,3 +292,77 @@ function test_address_type_order(){
     currentAddressType = addressType;
   }
 }
+
+function test_addresses_do_not_double(){
+  const MORE_PREF = "mailnews.headers.show_n_lines_before_more";
+  Services.prefs.setIntPref(MORE_PREF, 2);
+
+  select_message_in_folder(folder1, 2, mc);
+  collapse_and_assert_header(mc);
+  expand_and_assert_header(mc);
+  select_message_in_folder(folder1, 3, mc);
+
+  let addrs;
+  
+  let fromDescription = mc.a('expandedfromBox', {class: "headerValue"});
+  addrs = fromDescription.getElementsByTagName('mail-emailaddress');
+  let firstFromAddrNum = 0;
+    for (let i = 0; i<addrs.length; i++) {
+      if (isVisible(addrs[i])) {
+        firstFromAddrNum += 1;
+      }
+  }
+    
+  let toDescription = mc.a('expandedtoBox', {class: "headerValue"});
+  addrs = toDescription.getElementsByTagName('mail-emailaddress');
+  let firstToAddrNum = 0;
+  for (let i = 0; i<addrs.length; i++) {
+    if (isVisible(addrs[i])) {
+      firstToAddrNum += 1;
+    }
+  }
+  
+  let ccDescription = mc.a('expandedccBox', {class: "headerValue"});
+  addrs = ccDescription.getElementsByTagName('mail-emailaddress');
+  let firstCCAddrNum = 0;
+  for (let i = 0; i<addrs.length; i++) {
+    if (isVisible(addrs[i])) {
+      firstCCAddrNum += 1;
+    }
+  }
+
+  collapse_and_assert_header(mc);
+  expand_and_assert_header(mc);
+  
+  addrs = fromDescription.getElementsByTagName('mail-emailaddress');
+  let secondFromAddrNum = 0;
+  for (let i = 0; i<addrs.length; i++) {
+    if (isVisible(addrs[i])) {
+      secondFromAddrNum += 1;
+    }
+  }
+
+  addrs = toDescription.getElementsByTagName('mail-emailaddress');
+  let secondToAddrNum = 0;
+  for (let i = 0; i<addrs.length; i++) {
+    if (isVisible(addrs[i])) {
+      secondToAddrNum += 1;
+    }
+  }
+  
+  addrs = ccDescription.getElementsByTagName('mail-emailaddress');
+  let secondCCAddrNum = 0;
+  for (let i = 0; i<addrs.length; i++) {
+    if (isVisible(addrs[i])) {
+      secondCCAddrNum += 1;
+    }
+  }
+  
+  assert_true(firstFromAddrNum == secondFromAddrNum, "number of from addresses changed from " +
+      firstFromAddrNum + " to " + secondFromAddrNum);
+  assert_true(firstToAddrNum == secondToAddrNum, "number of to addresses changed from " +
+      firstToAddrNum + " to " + secondToAddrNum);
+  assert_true(firstCCAddrNum == secondCCAddrNum, "number of cc addresses changed from " +
+      firstCCAddrNum + " to " + secondCCAddrNum);
+  Services.prefs.clearUserPref(MORE_PREF);
+}
diff --git a/test/compactheader/test-compactheader-preferences.js b/test/compactheader/test-compactheader-preferences.js
index 4024be0..dc11904 100644
--- a/test/compactheader/test-compactheader-preferences.js
+++ b/test/compactheader/test-compactheader-preferences.js
@@ -54,8 +54,6 @@ var folder1;
 var folder2;
 
 const PREF = "browser.preferences.instantApply";
-var prefBranch = Cc["@mozilla.org/preferences-service;1"]
-                    .getService(Ci.nsIPrefService).getBranch(null);
 
 var messageBodyISO8859_1 = "ae: " + String.fromCharCode(228) +
   ", oe: " + String.fromCharCode(246) +
diff --git a/test/compactheader/test-compactheader-toolbar.js b/test/compactheader/test-compactheader-toolbar.js
index de8e42f..0d23489 100644
--- a/test/compactheader/test-compactheader-toolbar.js
+++ b/test/compactheader/test-compactheader-toolbar.js
@@ -787,15 +787,3 @@ function subtest_buttons_style(aIconVisibility, aLabelVisibility)
     }
   }
 }
-
-function isVisible(aElem) {
-  if (aElem.hidden || aElem.collapsed)
-    return false;
-  let parent = aElem.parentNode;
-  if (parent == null)
-    return true;
-  if (("selectedPanel" in parent) &&
-      parent.selectedPanel != aElem)
-    return false;
-  return isVisible(parent);
-}
\ No newline at end of file
diff --git a/test/compactheader/test-more-button.js b/test/compactheader/test-more-button.js
index bc47e84..08c13b6 100644
--- a/test/compactheader/test-more-button.js
+++ b/test/compactheader/test-more-button.js
@@ -52,9 +52,6 @@ var WindowHelper;
 
 var folder1;
 
-var prefBranch = Cc["@mozilla.org/preferences-service;1"]
-                    .getService(Ci.nsIPrefService).getBranch(null);
-
 function setupModule(module) {
   let fdh = collector.getModule('folder-display-helpers');
   fdh.installInto(module);
@@ -74,16 +71,20 @@ function setupModule(module) {
   let msg = create_message({cc: msgGen.makeNamesAndAddresses(10),
     to: msgGen.makeNamesAndAddresses(10)
   });
-
   add_message_to_folder(folder1, msg);
+
   let msg2 = create_message({cc: msgGen.makeNamesAndAddresses(10),
     to: msgGen.makeNamesAndAddresses(10)
   });
   add_message_to_folder(folder1, msg2);
 
-  prefBranch.clearUserPref("mailnews.headers.show_n_lines_before_more");
+  const MORE_PREF = "mailnews.headers.show_n_lines_before_more";
+  Services.prefs.clearUserPref(MORE_PREF);
 }
 
+/* click the more button in compact view should change to expanded
+ * header view
+ */
 function test_click_more(){
   select_message_in_folder(folder1, 1, mc);
   select_message_in_folder(folder1, 0, mc);
@@ -96,10 +97,11 @@ function test_click_more(){
   let moreIndicator = mc.window.document.getAnonymousElementByAttribute(
     L2Box, "anonid", "more");
   moreIndicator = new elementslib.Elem(moreIndicator);
+  assert_not_equals(null, moreIndicator);
+  assert_true(isVisible(moreIndicator))
   if (moreIndicator) {
     mc.click(moreIndicator);
-  }
-
+  } 
   assert_expanded(mc);
 
   let expandedToBox = mc.e("expandedtoBox");
@@ -117,6 +119,9 @@ function test_click_more(){
   assert_equals(eBCCmoreIndicator.getAttribute("collapsed"), "true");
 }
 
+/* all to and cc addresses should show up in the compact header view more
+ * button tooltip
+ */
 function test_more_tooltip(){
   select_message_in_folder(folder1, 0, mc);
   let msg = select_message_in_folder(folder1, 1, mc);
@@ -133,17 +138,19 @@ function test_more_tooltip(){
 
   let headerParser = Cc["@mozilla.org/messenger/headerparser;1"]
                         .getService(Ci.nsIMsgHeaderParser);
+
+  // check that all cc addresses are in more buttons tooltip
   let addresses = {};
   let fullNames = {};
   let names = {};
   let numAddresses = headerParser.parseHeadersWithArray(
     msg.ccList, addresses, names, fullNames);
-
   for (let i = 0; i < numAddresses; i++)
   {
     assert_true(tooltiptext.indexOf(fullNames.value[i]) != -1, fullNames.value[i]);
   }
 
+  // check that all to addresses are in more buttons tooltip
   addresses = {};
   fullNames = {};
   names = {};
@@ -156,3 +163,93 @@ function test_more_tooltip(){
   }
 }
 
+/* check if more button shows correct number of missing addresses
+ */
+function test_more_number_indicator(){
+  select_message_in_folder(folder1, 0, mc);
+  let msg = select_message_in_folder(folder1, 1, mc);
+  open_preferences_dialog(mc, set_preferences_twoline);
+  mc.sleep(10);
+  collapse_and_assert_header(mc);
+
+  let headerParser = Cc["@mozilla.org/messenger/headerparser;1"]
+                       .getService(Ci.nsIMsgHeaderParser);
+
+  // check for more indicator number of collapsed header view
+  let addresses = {};
+  let fullNames = {};
+  let names = {};
+  let numAddressesCC = headerParser.parseHeadersWithArray(
+    msg.ccList, addresses, names, fullNames);
+  let numAddressesTo = headerParser.parseHeadersWithArray(
+      msg.recipients, addresses, names, fullNames);
+
+  let toCcBccDescription = mc.a('CompactHeader_collapsed2LtoCcBccBox', {class: "headerValue"});
+  let addrs = toCcBccDescription.getElementsByTagName('mail-emailaddress');
+  let firstToCCBccAddrNum = 0;
+  for (let i=0; i<addrs.length; i++) {
+    if (isVisible(addrs[i])) {
+      firstToCCBccAddrNum += 1;
+    }
+  }
+
+  let hiddenAddresses = numAddressesCC + numAddressesTo - firstToCCBccAddrNum;
+
+  let moreIndicator = mc.eid("CompactHeader_collapsed2LtoCcBccBox");
+  moreIndicator = mc.window.document.getAnonymousElementByAttribute(
+                     moreIndicator.node, "anonid", "more");
+  let moreText = moreIndicator.getAttribute("value");
+  let moreSplit = moreText.split(" ");
+  let moreNumber = parseInt(moreSplit[0])
+
+  assert_not_equals(NaN, moreNumber);
+  assert_equals(hiddenAddresses, moreNumber);
+
+  // check for more indicator number of expanded header view
+  expand_and_assert_header(mc);
+
+  let ccDescription = mc.a('expandedccBox', {class: "headerValue"});
+  addrs = ccDescription.getElementsByTagName('mail-emailaddress');
+  let firstCCAddrNum = 0;
+  for (let i = 0; i<addrs.length; i++) {
+    if (isVisible(addrs[i])) {
+      firstCCAddrNum += 1;
+    }
+  }
+  let toDescription = mc.a('expandedtoBox', {class: "headerValue"});
+  addrs = toDescription.getElementsByTagName('mail-emailaddress');
+  let firstToAddrNum = 0;
+  for (let i = 0; i<addrs.length; i++) {
+    if (isVisible(addrs[i])) {
+      firstToAddrNum += 1;
+    }
+  }
+
+  let hiddenAddressesCC = numAddressesCC - firstCCAddrNum;
+  let hiddenAddressesTo = numAddressesTo - firstToAddrNum;
+
+  let expandedToBox = mc.e("expandedtoBox");
+  let expandedCCBox = mc.e("expandedccBox");
+  
+  let expandedToBox = mc.e("expandedtoBox");
+  let expandedCCBox = mc.e("expandedccBox");
+  let eTOmoreIndicator = mc.window.document.getAnonymousElementByAttribute(
+      expandedToBox, "anonid", "more");
+  let eCCmoreIndicator = mc.window.document.getAnonymousElementByAttribute(
+      expandedCCBox, "anonid", "more");
+  let moreTextTo = eTOmoreIndicator.getAttribute("value");
+  let moreTextCC = eCCmoreIndicator.getAttribute("value");
+
+  let moreSplitTo = moreTextTo.split(" ");
+  let moreNumberTo = parseInt(moreSplitTo[0])
+
+  assert_not_equals(NaN, moreNumberTo);
+  assert_equals(hiddenAddressesTo, moreNumberTo)
+
+  let moreSplitCC = moreTextCC.split(" ");
+  let moreNumberCC = parseInt(moreSplitCC[0])
+
+  assert_not_equals(NaN, moreNumberCC);
+  assert_equals(hiddenAddressesCC, moreNumberCC)
+}
+
diff --git a/test/executeTests.pl b/test/executeTests.pl
index 8291e5c..1b91189 100644
--- a/test/executeTests.pl
+++ b/test/executeTests.pl
@@ -83,12 +83,20 @@ my @children;
 my @files;
 my $dispMUAfile;
 my $dispMUA = "https://addons.mozilla.org/thunderbird/downloads/latest/562/addon-562-latest.xpi";
+
+my $mnenhyfile;
+my $mnenhy = "https://addons.mozilla.org/thunderbird/downloads/latest/2516/addon-2516-latest.xpi";
+
 my %testSpecs;
 
 system "wget", "-q", "-P", "$ftpdir", "-N", "$dispMUA";
 my @dispMUAfiles = glob("$ftpdir/display_*");
 $dispMUAfile = $dispMUAfiles[-1];
 
+system "wget", "-q", "-P", "$ftpdir", "-N", "$mnenhy";
+my @mnenhyfiles = glob("$ftpdir/mnenhy-*");
+$mnenhyfile = $mnenhyfiles[-1];
+
 while (my $line = <F>)
 {
   ($ostype,$hosttype,$ftppath,$app,$tests,$checksum, $lightning) =
@@ -210,13 +218,17 @@ foreach my $pid (@children) {
     $python = "python"
   }
 
-  # We have own tests for this, so delete it
+  # We have out own tests for this, so delete it
   unlink("message-header/test-header-toolbar.js");
   my @compatibility_apps = (
     glob("../../ftp//$ostype-$hosttype-$version/lightning*.xpi"),
-    "../../$dispMUAfile"
+    "../../$dispMUAfile",
+#    "../../$mnenhyfile" # activate when mozmill can handle this addon: 
   );
+  
   my $comp_apps = join(",", @compatibility_apps);
+  
+  print $comp_apps;
 #    print "$python runtest.py --binary=../thunderbird/$appbin -a $xpi -t compactheader 2>&1\n";
   $log = $log . `$python runtest.py --binary=../thunderbird/$appbin -a $xpi -t compactheader 2>&1`;
   $log = $log . `$python runtest.py --binary=../thunderbird/$appbin -a $xpi -t message-header 2>&1`;
diff --git a/test/shared-modules/test-compactheader-helpers.js b/test/shared-modules/test-compactheader-helpers.js
index 6e3daa8..a22d80d 100644
--- a/test/shared-modules/test-compactheader-helpers.js
+++ b/test/shared-modules/test-compactheader-helpers.js
@@ -87,6 +87,7 @@ function installInto(module) {
   module.set_preferences_oneline = set_preferences_oneline;
   module.assert_collapsed = assert_collapsed;
   module.assert_expanded = assert_expanded;
+  module.isVisible = isVisible;
 }
 
 function reopen_3pane_window() {
@@ -415,3 +416,14 @@ function set_preferences_oneline(aController) {
   close_preferences_dialog(aController);
 }
 
+function isVisible(aElem) {
+  if (aElem.hidden || aElem.collapsed)
+    return false;
+  let parent = aElem.parentNode;
+  if (parent == null)
+    return true;
+  if (("selectedPanel" in parent) &&
+      parent.selectedPanel != aElem)
+    return false;
+  return isVisible(parent);
+}
\ No newline at end of file

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/compactheader.git



More information about the Pkg-mozext-commits mailing list