From 961afa19301fabfa65848242e896cc1e6a267f04 Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Wed, 04 Mar 2009 05:02:55 -0500 Subject: [PATCH] Add tests for external stylesheet handling --- tests/src/htmlbody.txt | 1 + tests/mailfunc.php | 6 +++++- 2 files changed, 6 insertions(+), 1 deletions(-) diff --git a/tests/mailfunc.php b/tests/mailfunc.php index 8fd2cd3..ae35c5d 100644 --- a/tests/mailfunc.php +++ b/tests/mailfunc.php @@ -55,15 +55,19 @@ $this->assertNoPattern('/<form [^>]+>/', $html, "No form tags allowed"); $this->assertPattern('/Subscription form/', $html, "Include <form> contents"); $this->assertPattern('/<!-- input not allowed -->/', $html, "No input elements allowed"); + $this->assertPattern('/<!-- link not allowed -->/', $html, "No external links allowed"); $this->assertPattern('/<a[^>]+ target="_blank">/', $html, "Set target to _blank"); $this->assertTrue($GLOBALS['REMOTE_OBJECTS'], "Remote object detected"); // render HTML in safe mode - $html2 = rcmail_print_body($part, array('safe' => true)); + $html2 = rcmail_html4inline(rcmail_print_body($part, array('safe' => true)), 'foo'); $this->assertPattern('/<style [^>]+>/', $html2, "Allow styles in safe mode"); $this->assertPattern('#src="http://evilsite.net/mailings/ex3.jpg"#', $html2, "Allow external images in HTML (safe mode)"); $this->assertPattern("#url\('http://evilsite.net/newsletter/image/bg/bg-64.jpg'\)#", $html2, "Allow external images in CSS (safe mode)"); + + $css = '<link rel="stylesheet" type="text/css" href="./bin/modcss.php?u='.urlencode('http://anysite.net/styles/mail.css').'&c=foo"'; + $this->assertPattern('#'.preg_quote($css).'#', $html2, "Filter external styleseehts with bin/modcss.php"); } /** diff --git a/tests/src/htmlbody.txt b/tests/src/htmlbody.txt index 5cdd757..a10bfe1 100644 --- a/tests/src/htmlbody.txt +++ b/tests/src/htmlbody.txt @@ -3,6 +3,7 @@ <head> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> <title>RoundCube Test Message</title> +<link rel="stylesheet" type="text/css" href="http://anysite.net/styles/mail.css"> <style type="text/css"> p, a { -- Gitblit v1.9.1