alecpl
2010-02-05 ad18d63cc15d7b0a77a5d90dc9f8bd7476b90c8d
- Fix handling of extended mailto links (with params) (#1486354)


3 files modified
1 files added
29 ■■■■■ changed files
CHANGELOG 1 ●●●● patch | view | raw | blame | history
program/steps/mail/func.inc 4 ●●●● patch | view | raw | blame | history
tests/mailfunc.php 16 ●●●●● patch | view | raw | blame | history
tests/src/mailto.txt 8 ●●●●● patch | view | raw | blame | history
CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG RoundCube Webmail
===========================
- Fix handling of extended mailto links (with params) (#1486354)
- Fix sorting by date of messages without date header on servers without SORT (#1486286)
- Fix inconsistency when not using default table names (#1486467)
- Fix folder rename/delete buttons do not appear on creation of first folder (#1486468)
program/steps/mail/func.inc
@@ -1148,12 +1148,12 @@
    $attrib['href'] = "./bin/modcss.php?u=" . urlencode($attrib['href']) . "&c=" . urlencode($GLOBALS['rcmail_html_container_id']);
    $end = ' />';
  }
  else if (preg_match("/^mailto:$EMAIL_ADDRESS_PATTERN/i", $attrib['href'], $mailto)) {
  else if (preg_match('/^mailto:'.$EMAIL_ADDRESS_PATTERN.'(\?[^"\'>]+)?/i', $attrib['href'], $mailto)) {
    $attrib['href'] = $mailto[0];
    $attrib['onclick'] = sprintf(
      "return %s.command('compose','%s',this)",
      JS_OBJECT_NAME,
      JQ($mailto[1]));
      JQ($mailto[1].$mailto[2]));
  }
  else if (!empty($attrib['href']) && $attrib['href'][0] != '#') {
    $attrib['target'] = '_blank';
tests/mailfunc.php
@@ -114,6 +114,22 @@
    $this->assertPattern('#<a href="http://www.apple.com/legal/privacy/" target="_blank">http://www.apple.com/legal/privacy/</a>#', $html, "Links with target=_blank");
  }
  /**
   * Test mailto links in html messages
   */
  function test_mailto()
  {
    $part = $this->get_html_part('src/mailto.txt');
    // render HTML in normal mode
    $html = rcmail_html4inline(rcmail_print_body($part, array('safe' => false)), 'foo');
    $mailto = '<a href="mailto:me@me.com?subject=this is the subject&amp;body=this is the body"'
      .' onclick="return rcmail.command(\'compose\',\'me@me.com?subject=this is the subject&amp;body=this is the body\',this)">e-mail</a>';
    $this->assertPattern('|'.preg_quote($mailto, '|').'|', $html, "Extended mailto links");
  }
}
?>
tests/src/mailto.txt
New file
@@ -0,0 +1,8 @@
<html>
<head></head>
<body>
<a href="mailto:me@me.com?subject=this is the subject&body=this is the body">e-mail</a>
</body>
</html>