Removed legacy_browsr plugin

pull/298/merge
Aleksander Machniak 8 years ago
parent 9e3263acbe
commit 829442a4cd

@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
- Removed legacy_browser plugin
- Require PHP >= 5.4
- Add possibility to preview and download attachments in mail compose (#5053)
- Add possibility to rename attachments in mail compose (#4996)

@ -1,24 +0,0 @@
{
"name": "roundcube/legacy_browser",
"type": "roundcube-plugin",
"description": "Legacy browser (IE 7/8, Firefox < 4) support",
"license": "GPLv3+",
"version": "1.0",
"authors": [
{
"name": "Aleksander Machniak",
"email": "alec@alec.pl",
"role": "Lead"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3"
}
}

@ -1,108 +0,0 @@
// Make getElementById() case-sensitive on IE7
document._getElementById = document.getElementById;
document.getElementById = function(id)
{
var i = 0, obj = document._getElementById(id);
if (obj && obj.id != id)
while ((obj = document.all[i]) && obj.id != id)
i++;
return obj;
}
// fix missing :last-child selectors
$(document).ready(function() {
if (rcmail && rcmail.env.skin != 'classic')
$('ul.treelist ul').each(function(i, ul) {
$('li:last-child', ul).css('border-bottom', 0);
});
});
// gets cursor position (IE<9)
rcube_webmail.prototype.get_caret_pos = function(obj)
{
if (document.selection && document.selection.createRange) {
var range = document.selection.createRange();
if (range.parentElement() != obj)
return 0;
var gm = range.duplicate();
if (obj.tagName == 'TEXTAREA')
gm.moveToElementText(obj);
else
gm.expand('textedit');
gm.setEndPoint('EndToStart', range);
var p = gm.text.length;
return p <= obj.value.length ? p : -1;
}
return obj.value.length;
};
// moves cursor to specified position (IE<9)
rcube_webmail.prototype.set_caret_pos = function(obj, pos)
{
if (obj.createTextRange) {
var range = obj.createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
};
// get selected text from an input field (IE<9)
// http://stackoverflow.com/questions/7186586/how-to-get-the-selected-text-in-textarea-using-jquery-in-internet-explorer-7
rcube_webmail.prototype.get_input_selection = function(obj)
{
var start = 0, end = 0, len,
normalizedValue, textInputRange, endRange,
range = document.selection.createRange();
if (range && range.parentElement() == obj) {
len = obj.value.length;
normalizedValue = obj.value; //.replace(/\r\n/g, "\n");
// create a working TextRange that lives only in the input
textInputRange = obj.createTextRange();
textInputRange.moveToBookmark(range.getBookmark());
// Check if the start and end of the selection are at the very end
// of the input, since moveStart/moveEnd doesn't return what we want
// in those cases
endRange = obj.createTextRange();
endRange.collapse(false);
if (textInputRange.compareEndPoints("StartToEnd", endRange) > -1) {
start = end = len;
}
else {
start = -textInputRange.moveStart("character", -len);
start += normalizedValue.slice(0, start).split("\n").length - 1;
if (textInputRange.compareEndPoints("EndToEnd", endRange) > -1) {
end = len;
}
else {
end = -textInputRange.moveEnd("character", -len);
end += normalizedValue.slice(0, end).split("\n").length - 1;
}
}
}
return {start: start, end: end, text: normalizedValue.substr(start, end-start)};
};
// For IE<9 we have to do it this way
// otherwise the form will be posted to a new window
rcube_webmail.prototype.async_upload_form_frame = function(name)
{
document.body.insertAdjacentHTML('BeforeEnd', '<iframe name="' + name + '"'
+ ' src="' + rcmail.assets_path('program/resources/blank.gif') + '" style="width:0; height:0; visibility:hidden"></iframe>');
return $('iframe[name="' + name + '"]');
};

File diff suppressed because one or more lines are too long

@ -1,112 +0,0 @@
<?php
/**
* Plugin which adds support for legacy browsers (IE 7/8, Firefox < 4)
*
* @author Aleksander Machniak <alec@alec.pl>
* @license GNU GPLv3+
*/
class legacy_browser extends rcube_plugin
{
public $noajax = true;
private $rc;
public function init()
{
$this->rc = $rcube = rcube::get_instance();
if (
// IE < 9
($rcube->output->browser->ie && $rcube->output->browser->ver < 9)
// Firefox < 4 (Firefox 4 is recognized as 2.0)
|| ($rcube->output->browser->mz && $rcube->output->browser->ver < 2)
) {
$this->add_hook('send_page', array($this, 'send_page'));
$this->add_hook('render_page', array($this, 'render_page'));
}
}
function send_page($args)
{
$p1 = $this->rc->output->asset_url('program/js');
$p2 = $this->rc->output->asset_url('plugins/legacy_browser/js');
$assets_dir = $this->rc->config->get('assets_dir');
$ts1 = filemtime($this->home . '/js/jquery.min.js');
$ts2 = filemtime($this->home . '/js/iehacks.js');
if (!$ts1 && $assets_dir) {
$ts1 = filemtime($assets_dir . '/plugins/legacy_browser/js/jquery.min.js');
}
if (!$ts2 && $assets_dir) {
$ts2 = filemtime($assets_dir . '/plugins/legacy_browser/js/iehacks.js');
}
// put iehacks.js after app.js
if ($this->rc->output->browser->ie) {
$args['content'] = preg_replace(
'|(<script src="' . preg_quote($p1, '|') . '/app(\.min)?\.js(\?s=[0-9]+)?" type="text/javascript"></script>)|',
'\\1<script src="' . $p2 . '/iehacks.js?s=' . $ts2 . '" type="text/javascript"></script>',
$args['content'], 1, $count);
}
else {
$count = 1;
}
// replace jQuery 2.x with 1.x
$args['content'] = preg_replace(
'|<script src="' . preg_quote($p1, '|') . '/jquery\.min\.js(\?s=[0-9]+)?" type="text/javascript"></script>|',
'<script src="' . $p2 . '/jquery.min.js?s=' . $ts1 . '" type="text/javascript"></script>'
// add iehacks.js if it is IE and it wasn't added yet
. ($count ? '' : "\n".'<script src="' . $p2 . '/iehacks.js?s=' . $ts2 . '" type="text/javascript"></script>'),
$args['content'], 1);
return $args;
}
function render_page($args)
{
if (!$this->rc->output->browser->ie) {
return $args;
}
$skin = $this->skin();
if ($skin == 'classic') {
$minified = file_exists(INSTALL_PATH . '/plugins/legacy_browser/skins/classic/iehacks.min.css') ? '.min' : '';
$this->rc->output->add_header(
'<link rel="stylesheet" type="text/css" href="plugins/legacy_browser/skins/classic/iehacks' . $minified . '.css" />'
);
}
else if ($skin == 'larry') {
$minified = file_exists(INSTALL_PATH . '/plugins/legacy_browser/skins/larry/iehacks.min.css') ? '.min' : '';
$this->rc->output->add_header(
'<link rel="stylesheet" type="text/css" href="plugins/legacy_browser/skins/larry/iehacks' . $minified . '.css" />'
);
if ($this->rc->output->browser->ver < 8) {
$this->rc->output->add_header(
'<link rel="stylesheet" type="text/css" href="plugins/legacy_browser/skins/larry/ie7hacks' . $minified . '.css" />'
);
}
}
}
private function skin()
{
$skin = $this->rc->config->get('skin');
// external skin, find if it inherits from other skin
if ($skin != 'larry' && $skin != 'classic') {
$json = @file_get_contents(INSTALL_PATH . "/skins/$skin/meta.json");
$json = @json_decode($json, true);
if (!empty($json['extends'])) {
return $json['extends'];
}
}
return $skin;
}
}

@ -1,295 +0,0 @@
input, textarea
{
border-style: expression(this.type=='checkbox' || this.type=='radio' || this.id=='quicksearchbox' ? 'none' : 'solid');
border-width: expression(this.type=='checkbox' || this.type=='radio' ? '0' : '1px');
border-color: expression(this.type=='checkbox' || this.type=='radio' ? '' : '#666666');
background-color: expression(this.type=='checkbox' || this.type=='radio' ? 'transparent' : '#ffffff');
}
body.iframe
{
margin-top: 0px;
}
body.iframe div.boxcontent
{
margin-top: 20px;
z-index: 2;
}
body.iframe div.boxtitle
{
z-index: 100;
}
body.iframe #prefs-details
{
padding-top: 1px;
}
#login-form form
{
margin-top: 0;
}
.pagenav a.buttonPas
{
filter: alpha(opacity=35);
}
body > #message
{
filter: alpha(opacity=85);
}
.popupmenu
{
background-color: #ffffff;
}
#tabsbar,
#partheader
{
width: expression((parseInt(document.documentElement.clientWidth)-240)+'px');
}
#mainscreen
{
height: expression((parseInt(document.documentElement.clientHeight)-105)+'px');
}
#mainscreen,
#messagepartcontainer
{
width: expression((parseInt(document.documentElement.clientWidth)-40)+'px');
}
#messagetoolbar
{
width: expression((parseInt(document.documentElement.clientWidth)-215)+'px');
z-index: 240;
}
#messagetoolbar select.mboxlist
{
margin: 0 8px;
top: 8px;
}
div.messageheaderbox
{
margin-top: 0px;
}
body.iframe div.messageheaderbox
{
margin-top: 6px;
}
#abooktoolbar a.buttonPas
{
filter: alpha(opacity=35);
background-image: url(images/abook_toolbar.gif);
}
#messagetoolbar a.buttonPas
{
filter: alpha(opacity=35);
background-image: url(images/mail_toolbar.gif);
}
#listcontrols a.buttonPas
{
filter: alpha(opacity=35);
}
#quicksearchbar
{
z-index: 240;
}
#addresslist,
#sectionslist,
#identities-list,
#mailleftcontainer,
#mailrightcontainer,
#compose-container,
#compose-attachments,
#compose-contacts,
#mailcontframe,
#mailboxlist-container,
#mailrightcontent,
#messageframe,
#identity-details,
#contacts-box,
#prefs-box,
#folder-box,
#directorylistbox,
#addressscreen
{
height: expression(parseInt(this.parentNode.offsetHeight)+'px');
}
#mailrightcontainer
{
width: expression((parseInt(this.parentNode.offsetWidth)-170)+'px');
}
#messagepartcontainer
{
height: expression((parseInt(document.documentElement.clientHeight)-90)+'px');
}
#mailrightcontent
{
width: 100%;
}
#compose-div
{
height: expression((parseInt(this.parentNode.offsetHeight)-1-parseInt(document.getElementById('compose-headers').offsetHeight))+'px');
}
#compose-attachments ul li
{
width: 1000px; /* for IE7 */
}
#compose-attachments li a
{
float: left; /* for IE7 */
}
#messagelist
{
width: inherit;
*width: auto; /* IE6/7 conditional hack */
border-collapse: collapse;
}
#messagelist thead tr td,
#messagelist tbody tr td
{
height: 18px;
}
#messagelist tbody tr.unroot td.subject
{
text-decoration: underline;
}
#messageframe
{
width: expression((parseInt(this.parentNode.offsetWidth)-180)+'px');
overflow: hidden;
}
body.iframe
{
width: expression((parseInt(document.documentElement.clientWidth))+'px');
}
div.message-part pre,
div.message-htmlpart pre,
div.message-part div.pre
{
word-wrap: break-word;
}
#addressscreen
{
width: expression((parseInt(document.documentElement.clientWidth)-245)+'px');
}
#contacts-box,
#prefs-box,
#folder-box
{
width: expression((parseInt(this.parentNode.offsetWidth)-555)+'px');
overflow: hidden;
}
#rcmdraglayer
{
filter: alpha(opacity=82);
padding-left: 20px;
}
div.draglayercopy
{
border-color: #00cc00;
background: url(../../../skins/classic/images/messageactions.png) 0 -125px no-repeat #fff;
}
html.ie8 .draglayercopy:before
{
content: "";
display: none;
}
ul.toolbarmenu
{
margin: 0 0 -4px 0;
}
.popupmenu ul li,
ul.toolbarmenu li
{
min-width: auto;
}
.popupmenu ul li a,
ul.toolbarmenu li a
{
min-height: auto;
}
.popupmenu li.block a
{
clear: none;
display: inline-block;
padding-left: 2px;
}
#console
{
filter: alpha(opacity=80);
}
table.records-table thead tr td
{
height: 19px;
}
#listmenu fieldset
{
margin: 0 4px;
padding: 0.8em;
}
#listcontrols input
{
margin-top: 2px;
}
#contact-details
{
margin-top: 20px;
}
#contact-details form {
margin-top: -1px;
}
.contactfieldgroup legend
{
padding: 0 0 0.5em 0;
margin-left: -4px;
}
/* fix "jumping" login form in IE7 */
#login-form div.boxcontent
{
overflow: hidden;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

@ -1,211 +0,0 @@
/**
* Roundcube webmail CSS hacks for IE 7
*
* Copyright (c) 2012, The Roundcube Dev Team
*
* The contents are subject to the Creative Commons Attribution-ShareAlike
* License. It is allowed to copy, distribute, transmit and to adapt the work
* by keeping credits to the original autors in the README file.
* See http://creativecommons.org/licenses/by-sa/3.0/ for details.
*/
/* #1488618 */
#mainscreen {
height: expression((parseInt(document.documentElement.clientHeight)-108)+'px');
}
#mainscreen.offset {
height: expression((parseInt(document.documentElement.clientHeight)-150)+'px');
}
.minimal #mainscreen {
height: expression((parseInt(document.documentElement.clientHeight)-82)+'px');
}
.minimal #mainscreen.offset {
height: expression((parseInt(document.documentElement.clientHeight)-120)+'px');
}
#messagepartframe {
height: expression((parseInt(this.parentNode.offsetHeight)-1)+'px');
}
input.button {
display: inline;
font-size: 90%;
}
a.iconbutton,
a.deletebutton,
.boxpagenav a.icon,
a.button span.icon,
.pagenav a.button span.inner,
.boxfooter .listbutton .inner,
.attachmentslist li a.delete,
.attachmentslist li a.cancelupload,
#contacts-table td.action a,
.previewheader .iconlink,
.minimal #taskbar .button-inner,
#preferences-details fieldset.advanced .advanced-toggle {
/* workaround for text-indent which also offsets the background image */
text-indent: 0;
font-size: 0;
line-height: 0;
overflow: hidden;
text-align: right;
text-decoration: none;
}
.boxpagenav a.icon {
color: #bbd3da;
}
.pagenav a.button,
.pagenav a.button span.inner,
.previewheader .iconlink,
#uploadform a.iconlink {
display: inline;
}
.pagenavbuttons {
top: 4px;
}
.dropbutton .dropbuttontip {
right: -2px;
}
#login-form .box-inner form {
margin: 0;
}
#login-form #message div {
float: left;
display: block;
width: 200px;
margin-left: 130px;
white-space: nowrap;
text-align: left;
}
#messageheader.previewheader .iconlink {
color: #fff;
height: 14px;
}
#uploadform a.iconlink {
text-indent: 0px;
}
.boxfooter .countdisplay {
top: -12px;
}
ul.toolbarmenu li a {
width: 140px;
}
#threadselectmenu li a {
width: 160px;
}
#messagemenu li a {
width: 170px;
}
#rcmKSearchpane {
width: 400px;
}
#rcmKSearchpane ul li {
width: 380px;
text-overflow: ellipsis;
}
table.listing,
table.records-table {
display: block;
width: auto;
border-collapse: expression('separate', cellSpacing = '0');
}
.records-table tbody td span {
white-space: nowrap;
}
table.listing {
width: 100%;
}
ul.toolbarmenu li label {
margin: 0;
padding: 3px 8px;
}
.searchbox input {
padding-top: 4px;
padding-bottom: 2px;
}
#messagelistfooter #listcontrols,
#messagelistfooter #listselectors,
#messagelistfooter #countcontrols,
.pagenav .countdisplay {
display: inline;
}
#messagelistfooter #countcontrols {
position: relative;
top: -4px;
}
#messagecontframe,
#preferences-frame {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
#composeoptionstoggle {
display: inline;
top: 3px;
}
.propform {
margin: 0;
}
.propform fieldset legend {
color: #333;
margin-left: -5px;
padding-left: 0;
}
.contactfieldgroup legend {
margin-left: -14px;
}
.contactfieldcontent .contactfieldbutton {
top: -6px;
}
.tabsbar {
height: 15px;
padding-bottom: 15px;
}
.tabsbar .tablink {
padding: 0 1px 0 0;
}
.minimal #topline {
width: 100%;
height: 18px;
box-sizing: border-box;
}
.minimal #taskbar a:hover .tooltip {
right: 34px;
top: 1px;
}

@ -1,200 +0,0 @@
/**
* Roundcube webmail CSS hacks for IE < 9
*
* Copyright (c) 2012, The Roundcube Dev Team
*
* The contents are subject to the Creative Commons Attribution-ShareAlike
* License. It is allowed to copy, distribute, transmit and to adapt the work
* by keeping credits to the original autors in the README file.
* See http://creativecommons.org/licenses/by-sa/3.0/ for details.
*/
.ie8 .minimal #taskbar .tooltip:after {
top: -6px;
}
input.button,
a.disabled.button,
.buttongroup {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#e6e6e6', GradientType=0);
}
.formbuttons input.button {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#7b7b7b', endColorstr='#606060', GradientType=0);
}
.formbuttons input.button:active {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5c5c5c', endColorstr='#7b7b7b', GradientType=0);
}
input.button.mainaction {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#505050', endColorstr='#2a2e31', GradientType=0);
}
input.button.mainaction:active {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#2a2e31', endColorstr='#505050', GradientType=0);
}
a.button.pressed,
a.button:active,
input.button:active {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#e6e6e6', endColorstr='#f9f9f9', GradientType=0);
}
.pagenav.dark a.button {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#d8d8d8', endColorstr='#bababa', GradientType=0);
}
.pagenav.dark a.button.pressed {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#bababa', endColorstr='#d8d8d8', GradientType=0);
}
.buttongroup a.button.selected {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#909090', endColorstr='#858585', GradientType=0);
}
#message.statusbar {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eaeaea', endColorstr='#c8c8c8', GradientType=0);
}
#messagestack div {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#e0404040', endColorstr='#e0303030', GradientType=0);
}
.ui-dialog.popupmessage .ui-dialog-titlebar {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#e3e3e3', endColorstr='#cfcfcf', GradientType=0);
}
.ui-dialog.popupmessage .ui-widget-content {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#dcdcdc', GradientType=0);
}
#topnav {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#404040', endColorstr='#060606', GradientType=0);
}
#toplogo {
position: absolute;
top: 0px;
left: 10px;
}
.records-table tr.selected td {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#019bc6', endColorstr='#017cb4', GradientType=0);
}
.contentbox .boxtitle,
body.iframe .boxtitle {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#dfdfdf', GradientType=0);
}
#login-form input.button {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#e2e2e2', GradientType=0);
}
#login-form input.button:active {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#dcdcdc', endColorstr='#f9f9f9', GradientType=0);
}
.toolbar a.button {
filter: none;
}
a.menuselector {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f8f8f8', endColorstr='#dddddd', GradientType=0);
}
a.menuselector:active {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#dddddd', endColorstr='#f8f8f8', GradientType=0);
}
.googie_list td.googie_list_onhover,
ul.toolbarmenu li a.active:hover,
#rcmKSearchpane ul li.selected {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00aad6', endColorstr='#008fc9', GradientType=0);
}
.tabsbar .tablink {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f8f8f8', endColorstr='#d3d3d3 50%, #f8f8f8', GradientType=0);
}
.tabsbar .selected a {
background-color: #fff;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#efefef', GradientType=0);
}
.toolbar a.button.disabled,
.boxpagenav a.icon.disabled,
.pagenav a.button.disabled span.inner,
.boxfooter .listbutton.disabled .inner,
.dropbutton a.button.disabled + .dropbuttontip {
background-image: url(images/buttons.gif);
}
/*** addressbook.css ***/
.contactfieldgroup {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7f7f7', endColorstr='#eeeeee', GradientType=0);
}
.contactfieldgroup legend {
margin: -8px -8px 8px -8px;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f0f0f0', endColorstr='#d6d6d6', GradientType=0);
}
/*** mail.css ***/
#messagelistfooter {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb', endColorstr='#c6c6c6', GradientType=0);
}
#mailboxlist li.mailbox .unreadcount {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#82acb5', endColorstr='#6a939f', GradientType=0);
}
#mailboxlist li.mailbox.selected > a .unreadcount {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#005d76', endColorstr='#004558', GradientType=0);
}
#messageheader, #partheader, #composeheaders {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f0f0f0', GradientType=0);
}
.moreheaderstoggle {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbfbfb', endColorstr='#e9e9e9', GradientType=1);
}
#messagelist tbody tr td span.branch div {
float: left;
height: 18px;
}
a.button.disabled span.inner,
a.iconbutton.disabled,
.boxfooter .listbutton.disabled .inner,
.boxpagenav a.icon.disabled,
.toolbar a.button.disabled {
filter: alpha(opacity=40);
}
.dropbutton a.button.disabled + .dropbuttontip {
filter: alpha(opacity=50);
}
select.decorated {
filter: alpha(opacity=0);
}
ul.toolbarmenu li span.icon {
filter: alpha(opacity=20);
}
ul.toolbarmenu li a.active span.icon {
filter: alpha(opacity=100);
}
.minimal #topline:hover,
#rcmdraglayer {
filter: alpha(opacity=93);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

@ -1,23 +0,0 @@
<?php
class Legacy_Browser_Plugin extends PHPUnit_Framework_TestCase
{
function setUp()
{
include_once __DIR__ . '/../legacy_browser.php';
}
/**
* Plugin object construction test
*/
function test_constructor()
{
$rcube = rcube::get_instance();
$plugin = new legacy_browser($rcube->api);
$this->assertInstanceOf('legacy_browser', $plugin);
$this->assertInstanceOf('rcube_plugin', $plugin);
}
}

@ -70,7 +70,6 @@
<file>./../plugins/identity_select/tests/IdentitySelect.php</file>
<file>./../plugins/jqueryui/tests/Jqueryui.php</file>
<file>./../plugins/krb_authentication/tests/KrbAuthentication.php</file>
<file>./../plugins/legacy_browser/tests/LegacyBrowser.php</file>
<file>./../plugins/managesieve/tests/Managesieve.php</file>
<file>./../plugins/managesieve/tests/Parser.php</file>
<file>./../plugins/managesieve/tests/Tokenizer.php</file>

Loading…
Cancel
Save