mirror of
https://github.com/e107inc/e107.git
synced 2025-07-26 01:11:28 +02:00
Issue #5119 setFavicon() method added.
This commit is contained in:
@@ -187,6 +187,8 @@ class e_jsmanager
|
|||||||
|
|
||||||
protected $_theme_css_processor = false;
|
protected $_theme_css_processor = false;
|
||||||
|
|
||||||
|
private $_favicon = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
@@ -2246,6 +2248,16 @@ class e_jsmanager
|
|||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set a custom favicon (must be a .png file)
|
||||||
|
* @param string $path to a png file. eg. {e_PLUGIN}gallery/images/icon_32.png
|
||||||
|
* @return e_jsmanager
|
||||||
|
*/
|
||||||
|
public function setFavicon($path)
|
||||||
|
{
|
||||||
|
$this->_favicon = $path;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Render favicon HTML code - used in header.php and header_default.php
|
* Render favicon HTML code - used in header.php and header_default.php
|
||||||
@@ -2257,6 +2269,20 @@ class e_jsmanager
|
|||||||
|
|
||||||
$ret = '';
|
$ret = '';
|
||||||
|
|
||||||
|
if(!empty($this->_favicon))
|
||||||
|
{
|
||||||
|
$iconSizes = [16 => 'icon',32 => 'icon',48 => 'icon',192 => 'icon',167 => 'apple-touch-icon',180 => 'apple-touch-icon'];
|
||||||
|
|
||||||
|
foreach($iconSizes as $size => $rel)
|
||||||
|
{
|
||||||
|
$sizes = $size.'x'.$size;
|
||||||
|
$url = e107::getParser()->thumbUrl($this->_favicon, ['w'=>$size, 'h'=>$size, 'crop'=>1]);
|
||||||
|
$ret .= "<link rel='$rel' type='image/png' sizes='$sizes' href='".$url."'>\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
|
||||||
if(file_exists(e_THEME . $sitetheme . "/favicon.ico"))
|
if(file_exists(e_THEME . $sitetheme . "/favicon.ico"))
|
||||||
{
|
{
|
||||||
$ret = "<link rel='icon' href='" . e_THEME_ABS . $sitetheme . "/favicon.ico' type='image/x-icon' />\n<link rel='shortcut icon' href='" . e_THEME_ABS . $sitetheme . "/favicon.ico' type='image/xicon' />\n";
|
$ret = "<link rel='icon' href='" . e_THEME_ABS . $sitetheme . "/favicon.ico' type='image/x-icon' />\n<link rel='shortcut icon' href='" . e_THEME_ABS . $sitetheme . "/favicon.ico' type='image/xicon' />\n";
|
||||||
|
@@ -378,7 +378,7 @@ class e_plugin
|
|||||||
|
|
||||||
if($opt === 'path')
|
if($opt === 'path')
|
||||||
{
|
{
|
||||||
return e107::getParser()->createConstants(e_PLUGIN_ABS.$this->_plugdir.'/'.$link[$key]);
|
return e107::getParser()->createConstants(e_PLUGIN_ABS.$this->_plugdir.'/'.$link[$key], 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
return "<img src='".e_PLUGIN.$this->_plugdir.'/'.$link[$key] ."' alt=\"".$caption."\" class='icon S".$size."' />";
|
return "<img src='".e_PLUGIN.$this->_plugdir.'/'.$link[$key] ."' alt=\"".$caption."\" class='icon S".$size."' />";
|
||||||
|
@@ -1,409 +1,420 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* e107 website system
|
* e107 website system
|
||||||
*
|
*
|
||||||
* Copyright (C) 2008-2019 e107 Inc (e107.org)
|
* Copyright (C) 2008-2019 e107 Inc (e107.org)
|
||||||
* Released under the terms and conditions of the
|
* Released under the terms and conditions of the
|
||||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
class e_jsmanagerTest extends \Codeception\Test\Unit
|
class e_jsmanagerTest extends \Codeception\Test\Unit
|
||||||
|
{
|
||||||
|
|
||||||
|
/** @var e_jsmanager */
|
||||||
|
protected $js;
|
||||||
|
|
||||||
|
protected function _before()
|
||||||
{
|
{
|
||||||
|
|
||||||
/** @var e_jsmanager */
|
try
|
||||||
protected $js;
|
|
||||||
|
|
||||||
protected function _before()
|
|
||||||
{
|
{
|
||||||
|
$this->js = $this->make('e_jsmanager');
|
||||||
|
}
|
||||||
|
catch(Exception $e)
|
||||||
|
{
|
||||||
|
$this->assertTrue(false, "Couldn't load e_jsmanager object");
|
||||||
|
}
|
||||||
|
|
||||||
try
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
public function testHeaderPlugin()
|
||||||
{
|
{
|
||||||
$this->js = $this->make('e_jsmanager');
|
|
||||||
}
|
|
||||||
catch(Exception $e)
|
|
||||||
{
|
|
||||||
$this->assertTrue(false, "Couldn't load e_jsmanager object");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
public function testTryHeaderInline()
|
||||||
|
|
||||||
/*
|
|
||||||
public function testHeaderPlugin()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testTryHeaderInline()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
public function testIsInAdmin()
|
|
||||||
{
|
|
||||||
$result = $this->js->isInAdmin();
|
|
||||||
$this->assertFalse($result);
|
|
||||||
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
public function testRequireCoreLib()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testSetInAdmin()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testCoreCSS()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testResetDependency()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testJsSettings()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testGetInstance()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testFooterFile()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testSetData()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testLibraryCSS()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testTryHeaderFile()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testThemeCSS()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testOtherCSS()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testSetLastModfied()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testRenderLinks()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testThemeLib()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testRenderFile()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testHeaderCore()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testRenderInline()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testFooterTheme()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testGetData()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testRequirePluginLib()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testGetCacheId()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testHeaderTheme()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testInlineCSS()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
public function testHeaderFile()
|
|
||||||
{
|
|
||||||
$load = array(
|
|
||||||
0 => array(
|
|
||||||
'file' => '{e_PLUGIN}forum/js/forum.js',
|
|
||||||
'zone' => 5,
|
|
||||||
'opts' => []
|
|
||||||
),
|
|
||||||
1 => array(
|
|
||||||
'file' => 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js',
|
|
||||||
'zone' => 1,
|
|
||||||
'opts' => []
|
|
||||||
),
|
|
||||||
2 => array(
|
|
||||||
'file' => '{e_WEB}js/bootstrap-notify/js/bootstrap-notify.js',
|
|
||||||
'zone' => 2,
|
|
||||||
'opts' => []
|
|
||||||
|
|
||||||
),
|
|
||||||
3 => array(
|
|
||||||
'file' => 'https://somewhere/something.min.js',
|
|
||||||
'zone' => 3,
|
|
||||||
'opts' => array('defer'=>true)
|
|
||||||
),
|
|
||||||
4 => array(
|
|
||||||
'file' => 'https://somewhere/async.js',
|
|
||||||
'zone' => 4,
|
|
||||||
'opts' => array('defer', 'async')
|
|
||||||
),
|
|
||||||
|
|
||||||
|
|
||||||
);
|
|
||||||
|
|
||||||
foreach($load as $t)
|
|
||||||
{
|
{
|
||||||
$this->js->headerFile($t['file'], $t['zone'], null, null, $t['opts']);
|
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
public function testIsInAdmin()
|
||||||
|
{
|
||||||
|
$result = $this->js->isInAdmin();
|
||||||
|
$this->assertFalse($result);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
public function testRequireCoreLib()
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test loaded files.
|
public function testSetInAdmin()
|
||||||
|
|
||||||
$result = $this->js->renderJs('header', 1, true, true);
|
|
||||||
$this->assertStringContainsString('<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>', $result);
|
|
||||||
$this->assertStringContainsString('zone #1', $result);
|
|
||||||
|
|
||||||
$result = $this->js->renderJs('header', 3, true, true);
|
|
||||||
$this->assertStringContainsString('<script src="https://somewhere/something.min.js" defer></script>', $result);
|
|
||||||
$this->assertStringContainsString('zone #3', $result);
|
|
||||||
|
|
||||||
$result = $this->js->renderJs('header', 4, true, true);
|
|
||||||
$this->assertStringContainsString('<script src="https://somewhere/async.js" defer async></script>', $result);
|
|
||||||
$this->assertStringContainsString('zone #4', $result);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testFooterFile()
|
|
||||||
{
|
|
||||||
$load = array(
|
|
||||||
0 => array(
|
|
||||||
'file' => '{e_PLUGIN}forum/js/forum.js',
|
|
||||||
'zone' => 5,
|
|
||||||
'opts' => []
|
|
||||||
),
|
|
||||||
1 => array(
|
|
||||||
'file' => 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js',
|
|
||||||
'zone' => 1,
|
|
||||||
'opts' => []
|
|
||||||
),
|
|
||||||
2 => array(
|
|
||||||
'file' => '{e_WEB}js/bootstrap-notify/js/bootstrap-notify.js',
|
|
||||||
'zone' => 2,
|
|
||||||
'opts' => []
|
|
||||||
|
|
||||||
),
|
|
||||||
3 => array(
|
|
||||||
'file' => 'https://somewhere/something.min.js',
|
|
||||||
'zone' => 3,
|
|
||||||
'opts' => array('defer'=>true)
|
|
||||||
),
|
|
||||||
|
|
||||||
4 => array(
|
|
||||||
'file' => 'https://somewhere/async.js',
|
|
||||||
'zone' => 4,
|
|
||||||
'opts' => array('defer', 'async')
|
|
||||||
),
|
|
||||||
|
|
||||||
|
|
||||||
);
|
|
||||||
|
|
||||||
foreach($load as $t)
|
|
||||||
{
|
{
|
||||||
$this->js->footerFile($t['file'], $t['zone'], null, null, $t['opts']);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test loaded files.
|
public function testCoreCSS()
|
||||||
|
{
|
||||||
|
|
||||||
$result = $this->js->renderJs('footer', 1, true, true);
|
}
|
||||||
$this->assertStringContainsString('<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>', $result);
|
|
||||||
$this->assertStringContainsString('priority #1', $result);
|
|
||||||
|
|
||||||
$result = $this->js->renderJs('footer', 3, true, true);
|
public function testResetDependency()
|
||||||
$this->assertStringContainsString('<script src="https://somewhere/something.min.js" defer></script>', $result);
|
{
|
||||||
$this->assertStringContainsString('priority #3', $result);
|
|
||||||
|
|
||||||
$result = $this->js->renderJs('footer', 4, true, true);
|
}
|
||||||
$this->assertStringContainsString('<script src="https://somewhere/async.js" defer async></script>', $result);
|
|
||||||
$this->assertStringContainsString('priority #4', $result);
|
|
||||||
|
|
||||||
}
|
public function testJsSettings()
|
||||||
/*
|
{
|
||||||
public function testSetDependency()
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testGetInstance()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testFooterFile()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testSetData()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testLibraryCSS()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testTryHeaderFile()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testThemeCSS()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testOtherCSS()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testSetLastModfied()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testRenderLinks()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testThemeLib()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testRenderFile()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testHeaderCore()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testRenderInline()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testFooterTheme()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testGetData()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testRequirePluginLib()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testGetCacheId()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testHeaderTheme()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testInlineCSS()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
public function testHeaderFile()
|
||||||
|
{
|
||||||
|
$load = array(
|
||||||
|
0 => array(
|
||||||
|
'file' => '{e_PLUGIN}forum/js/forum.js',
|
||||||
|
'zone' => 5,
|
||||||
|
'opts' => []
|
||||||
|
),
|
||||||
|
1 => array(
|
||||||
|
'file' => 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js',
|
||||||
|
'zone' => 1,
|
||||||
|
'opts' => []
|
||||||
|
),
|
||||||
|
2 => array(
|
||||||
|
'file' => '{e_WEB}js/bootstrap-notify/js/bootstrap-notify.js',
|
||||||
|
'zone' => 2,
|
||||||
|
'opts' => []
|
||||||
|
|
||||||
|
),
|
||||||
|
3 => array(
|
||||||
|
'file' => 'https://somewhere/something.min.js',
|
||||||
|
'zone' => 3,
|
||||||
|
'opts' => array('defer' => true)
|
||||||
|
),
|
||||||
|
4 => array(
|
||||||
|
'file' => 'https://somewhere/async.js',
|
||||||
|
'zone' => 4,
|
||||||
|
'opts' => array('defer', 'async')
|
||||||
|
),
|
||||||
|
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
foreach($load as $t)
|
||||||
{
|
{
|
||||||
|
$this->js->headerFile($t['file'], $t['zone'], null, null, $t['opts']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testHeaderInline()
|
// Test loaded files.
|
||||||
|
|
||||||
|
$result = $this->js->renderJs('header', 1, true, true);
|
||||||
|
$this->assertStringContainsString('<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>', $result);
|
||||||
|
$this->assertStringContainsString('zone #1', $result);
|
||||||
|
|
||||||
|
$result = $this->js->renderJs('header', 3, true, true);
|
||||||
|
$this->assertStringContainsString('<script src="https://somewhere/something.min.js" defer></script>', $result);
|
||||||
|
$this->assertStringContainsString('zone #3', $result);
|
||||||
|
|
||||||
|
$result = $this->js->renderJs('header', 4, true, true);
|
||||||
|
$this->assertStringContainsString('<script src="https://somewhere/async.js" defer async></script>', $result);
|
||||||
|
$this->assertStringContainsString('zone #4', $result);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testFooterFile()
|
||||||
|
{
|
||||||
|
$load = array(
|
||||||
|
0 => array(
|
||||||
|
'file' => '{e_PLUGIN}forum/js/forum.js',
|
||||||
|
'zone' => 5,
|
||||||
|
'opts' => []
|
||||||
|
),
|
||||||
|
1 => array(
|
||||||
|
'file' => 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js',
|
||||||
|
'zone' => 1,
|
||||||
|
'opts' => []
|
||||||
|
),
|
||||||
|
2 => array(
|
||||||
|
'file' => '{e_WEB}js/bootstrap-notify/js/bootstrap-notify.js',
|
||||||
|
'zone' => 2,
|
||||||
|
'opts' => []
|
||||||
|
|
||||||
|
),
|
||||||
|
3 => array(
|
||||||
|
'file' => 'https://somewhere/something.min.js',
|
||||||
|
'zone' => 3,
|
||||||
|
'opts' => array('defer' => true)
|
||||||
|
),
|
||||||
|
|
||||||
|
4 => array(
|
||||||
|
'file' => 'https://somewhere/async.js',
|
||||||
|
'zone' => 4,
|
||||||
|
'opts' => array('defer', 'async')
|
||||||
|
),
|
||||||
|
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
foreach($load as $t)
|
||||||
{
|
{
|
||||||
|
$this->js->footerFile($t['file'], $t['zone'], null, null, $t['opts']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testGetLastModfied()
|
// Test loaded files.
|
||||||
|
|
||||||
|
$result = $this->js->renderJs('footer', 1, true, true);
|
||||||
|
$this->assertStringContainsString('<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>', $result);
|
||||||
|
$this->assertStringContainsString('priority #1', $result);
|
||||||
|
|
||||||
|
$result = $this->js->renderJs('footer', 3, true, true);
|
||||||
|
$this->assertStringContainsString('<script src="https://somewhere/something.min.js" defer></script>', $result);
|
||||||
|
$this->assertStringContainsString('priority #3', $result);
|
||||||
|
|
||||||
|
$result = $this->js->renderJs('footer', 4, true, true);
|
||||||
|
$this->assertStringContainsString('<script src="https://somewhere/async.js" defer async></script>', $result);
|
||||||
|
$this->assertStringContainsString('priority #4', $result);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
public function testSetDependency()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testHeaderInline()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testGetLastModfied()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testSetCacheId()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testGetCurrentTheme()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPluginCSS()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testCheckLibDependence()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testRenderCached()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testGetCurrentLocation()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testFooterInline()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testAddLibPref()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
public function testAddLink()
|
||||||
|
{
|
||||||
|
$tests = array(
|
||||||
|
0 => array(
|
||||||
|
'expected' => '<link rel="preload" href="https://fonts.googleapis.com/css?family=Nunito&display=swap" as="style" onload="this.onload=null;" />',
|
||||||
|
'input' => array('rel' => 'preload', 'href' => 'https://fonts.googleapis.com/css?family=Nunito&display=swap', 'as' => 'style', 'onload' => "this.onload=null;"),
|
||||||
|
'cacheid' => false,
|
||||||
|
),
|
||||||
|
1 => array(
|
||||||
|
'expected' => '<link rel="preload" href="' . e_THEME_ABS . 'bootstrap3/assets/fonts/fontawesome-webfont.woff2?v=4.7.0" as="font" type="font/woff2" crossorigin />', // partial
|
||||||
|
'input' => 'rel="preload" href="{THEME}assets/fonts/fontawesome-webfont.woff2?v=4.7.0" as="font" type="font/woff2" crossorigin',
|
||||||
|
'cacheid' => false,
|
||||||
|
),
|
||||||
|
2 => array(
|
||||||
|
'expected' => '<link rel="preload" href="' . e_WEB_ABS . 'script.js?0" as="script" />',
|
||||||
|
'input' => array('rel' => 'preload', 'href' => '{e_WEB}script.js', 'as' => 'script'),
|
||||||
|
'cacheid' => true,
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Static URLs enabled from this point. */
|
||||||
|
|
||||||
|
3 => array(
|
||||||
|
'expected' => '<link rel="preload" href="https://static.mydomain.com/e107_web/script.js?0" as="script" />',
|
||||||
|
'input' => array('rel' => 'preload', 'href' => '{e_WEB}script.js', 'as' => 'script'),
|
||||||
|
'cacheid' => true,
|
||||||
|
'static' => true,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
$tp = e107::getParser();
|
||||||
|
|
||||||
|
foreach($tests as $var)
|
||||||
{
|
{
|
||||||
|
$static = !empty($var['static']) ? 'https://static.mydomain.com/' : null;
|
||||||
|
$tp->setStaticUrl($static);
|
||||||
|
|
||||||
|
$this->js->addLink($var['input'], $var['cacheid']);
|
||||||
|
// $this->assertSame($var['expected'],$actual);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testSetCacheId()
|
$actual = $this->js->renderLinks(true);
|
||||||
|
|
||||||
|
foreach($tests as $var)
|
||||||
{
|
{
|
||||||
|
$result = (strpos($actual, $var['expected']) !== false);
|
||||||
|
$this->assertTrue($result, $var['expected'] . " was not found in the rendered links. Render links result:" . $actual . "\n\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testGetCurrentTheme()
|
$tp->setStaticUrl(null);
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testPluginCSS()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testCheckLibDependence()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testRenderCached()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testGetCurrentLocation()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testFooterInline()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testAddLibPref()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
public function testAddLink()
|
|
||||||
{
|
|
||||||
$tests = array(
|
|
||||||
0 => array(
|
|
||||||
'expected' => '<link rel="preload" href="https://fonts.googleapis.com/css?family=Nunito&display=swap" as="style" onload="this.onload=null;" />',
|
|
||||||
'input' => array('rel'=>'preload', 'href'=>'https://fonts.googleapis.com/css?family=Nunito&display=swap', 'as'=>'style', 'onload' => "this.onload=null;"),
|
|
||||||
'cacheid' => false,
|
|
||||||
),
|
|
||||||
1 => array(
|
|
||||||
'expected' => '<link rel="preload" href="'.e_THEME_ABS.'bootstrap3/assets/fonts/fontawesome-webfont.woff2?v=4.7.0" as="font" type="font/woff2" crossorigin />', // partial
|
|
||||||
'input' => 'rel="preload" href="{THEME}assets/fonts/fontawesome-webfont.woff2?v=4.7.0" as="font" type="font/woff2" crossorigin',
|
|
||||||
'cacheid' => false,
|
|
||||||
),
|
|
||||||
2 => array(
|
|
||||||
'expected' => '<link rel="preload" href="'.e_WEB_ABS.'script.js?0" as="script" />',
|
|
||||||
'input' => array('rel'=>'preload', 'href'=>'{e_WEB}script.js', 'as'=>'script'),
|
|
||||||
'cacheid' => true,
|
|
||||||
),
|
|
||||||
|
|
||||||
/* Static URLs enabled from this point. */
|
|
||||||
|
|
||||||
3 => array(
|
|
||||||
'expected' => '<link rel="preload" href="https://static.mydomain.com/e107_web/script.js?0" as="script" />',
|
|
||||||
'input' => array('rel'=>'preload', 'href'=>'{e_WEB}script.js', 'as'=>'script'),
|
|
||||||
'cacheid' => true,
|
|
||||||
'static' => true,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
$tp = e107::getParser();
|
|
||||||
|
|
||||||
foreach($tests as $var)
|
|
||||||
{
|
|
||||||
$static = !empty($var['static']) ? 'https://static.mydomain.com/' : null;
|
|
||||||
$tp->setStaticUrl($static);
|
|
||||||
|
|
||||||
$this->js->addLink($var['input'], $var['cacheid']);
|
|
||||||
// $this->assertSame($var['expected'],$actual);
|
|
||||||
}
|
|
||||||
|
|
||||||
$actual = $this->js->renderLinks(true);
|
|
||||||
|
|
||||||
foreach($tests as $var)
|
|
||||||
{
|
|
||||||
$result = (strpos($actual, $var['expected']) !== false);
|
|
||||||
$this->assertTrue($result, $var['expected']." was not found in the rendered links. Render links result:".$actual."\n\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
$tp->setStaticUrl(null);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
public function testLibDisabled()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testArrayMergeDeepArray()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testRenderJs()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testRemoveLibPref()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
public function testLibDisabled()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testArrayMergeDeepArray()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testRenderJs()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testRemoveLibPref()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function testRenderFavicon()
|
||||||
|
{
|
||||||
|
$file = e_PLUGIN."gsitemap/images/icon.png";
|
||||||
|
$result = $this->js->renderFavicon($file);
|
||||||
|
self::assertNotEmpty($result);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user