diff --git a/.coveralls.yml b/.coveralls.yml index 6caf266..aa0dfba 100644 --- a/.coveralls.yml +++ b/.coveralls.yml @@ -1,3 +1,3 @@ service_name: travis-ci coverage_clover: build/logs/clover.xml -# json_path: tests/coveralls-upload.json \ No newline at end of file +#repo_token: VNsS1pG6yyIfxasg8yz8nf9IxTDRttlac diff --git a/composer.json b/composer.json index 68a4c9a..7df0428 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,6 @@ { "name" : "pluf/seo", + "version" : "6.0.5", "description" : "SEO package of pluf", "type" : "library", "license" : "MIT", @@ -35,6 +36,9 @@ "restfull", "pluf-module" ], + "include-path" : [ + "src/" + ], "autoload" : { "psr-0" : { "" : "src" @@ -43,15 +47,12 @@ "Pluf\\Seo\\" : "src6" } }, - "include-path" : [ - "src/" - ], "autoload-dev" : { "psr-4" : { "Pluf\\Test\\" : "tests" } }, - "repositories" : [{ + "repositories~" : [{ "type" : "path", "url" : "../core", "name" : "pluf/core", diff --git a/phpunit.xml b/phpunit.xml index d79aa3a..17a97b8 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -20,8 +20,15 @@ - - - + + + + + + \ No newline at end of file diff --git a/src/Seo/Engine/Global.php b/src/Seo/Engine/Global.php index 680beaa..cf6ad9a 100644 --- a/src/Seo/Engine/Global.php +++ b/src/Seo/Engine/Global.php @@ -122,7 +122,7 @@ public function fetchContentBinary($request, $content) try { // maso, 2017: fetch data from server $client = new \GuzzleHttp\Client(array( - 'base_uri' => Pluf::f('seo.prerender.global.url', 'localhost') + 'base_uri' => Pluf::f('seo_prerender_global_url', 'localhost') )); if (! defined('IN_UNIT_TESTS')) { $res = $client->request('GET', '/' . $content->url, array( diff --git a/src6/Middleware/Render.php b/src6/Middleware/Render.php index 14978d2..5bcad73 100644 --- a/src6/Middleware/Render.php +++ b/src6/Middleware/Render.php @@ -21,12 +21,13 @@ use Jaybizzle\CrawlerDetect\CrawlerDetect; use Pluf\Exception; +use Pluf\Middleware; use Pluf; use Pluf_HTTP_Request; use Pluf_HTTP_Response; -use Pluf_Middleware; use Seo_Backend; use Seo_Request; +use Pluf\Logger; /** * SEO middleware @@ -35,15 +36,15 @@ * @author maso * */ -class Render implements Pluf_Middleware +class Render implements Middleware { /** * * {@inheritdoc} - * @see Pluf_Middleware::process_request() + * @see Middleware::process_request() */ - function process_request(&$request) + function process_request(Pluf_HTTP_Request &$request) { if ($request->method !== 'GET') { return false; @@ -94,17 +95,17 @@ function prerenderResponse(Pluf_HTTP_Request $request) return new Pluf_HTTP_Response($response); } } catch (Exception $error) { - // TODO: maso, 2014: log the error + Logger::warn('A SEO Prerender Backedn fails to process a request', $backend, $error); } } // No prerender engine is set. So default prerender will be used. - if (Pluf::f('seo.prerender.default.enable', false)) { + if (Pluf::f('seo_prerender_default_enable', false)) { $backend = new Seo_Backend(); $backend->title = 'Default global prerenderer'; $backend->symbol = 'global'; $backend->engine = 'global'; - $backend->setMeta('period', Pluf::f('.prerender.default.period', '+7 days')); - $backend->setMeta('pattern', Pluf::f('seo.prerender.default.pattern', '.*')); + $backend->setMeta('period', Pluf::f('seo_prerender_default_period', '+7 days')); + $backend->setMeta('pattern', Pluf::f('seo_prerender_default_pattern', '.*')); return $backend->render($renderRequest); } @@ -114,8 +115,10 @@ function prerenderResponse(Pluf_HTTP_Request $request) /** * * {@inheritdoc} - * @see Pluf_Middleware::process_response() + * @see Middleware::process_response() */ - public function process_response($request, $response) - {} + public function process_response(Pluf_HTTP_Request $request, Pluf_HTTP_Response $response): Pluf_HTTP_Response + { + return $response; + } } diff --git a/src6/Middleware/Sitemap.php b/src6/Middleware/Sitemap.php deleted file mode 100644 index 1024b08..0000000 --- a/src6/Middleware/Sitemap.php +++ /dev/null @@ -1,43 +0,0 @@ -. - */ -namespace Pluf\Seo\Middleware; - -use Pluf_Middleware; - -class Sitemap implements Pluf_Middleware -{ - - /** - * - * {@inheritdoc} - * @see Pluf_Middleware::process_request() - */ - public function process_request($request) - {} - - /** - * - * {@inheritdoc} - * @see Pluf_Middleware::process_response() - */ - public function process_response($request, $response) - {} -} - diff --git a/src/Seo/templates/sitemap.template b/templates/sitemap.template similarity index 100% rename from src/Seo/templates/sitemap.template rename to templates/sitemap.template diff --git a/tests/Prerender.default/DefaultPrerenderEngineTest.php b/tests/Prerender.default/DefaultPrerenderEngineTest.php index 76a1540..86eac01 100755 --- a/tests/Prerender.default/DefaultPrerenderEngineTest.php +++ b/tests/Prerender.default/DefaultPrerenderEngineTest.php @@ -39,10 +39,10 @@ class DefaultPrerenderGlobalEngineTest extends TestCase public static function createDataBase() { $cfg = include (__DIR__ . '/../conf/config.php'); - $cfg['seo.prerender.default.engine'] = 'global'; - $cfg['seo.prerender.default.enable'] = true; - $cfg['seo.prerender.default.period'] = '+7 days'; - $cfg['seo.prerender.default.pattern'] = '.*'; + $cfg['seo_prerender_default_engine'] = 'fake'; + $cfg['seo_prerender_default_enable'] = true; + $cfg['seo_prerender_default_period'] = '+7 days'; + $cfg['seo_prerender_default_pattern'] = '.*'; Pluf::start($cfg); $m = new Pluf_Migration(); @@ -120,7 +120,7 @@ public function botRequest() $query = '/example/resource'; $_SERVER['REQUEST_METHOD'] = 'GET'; $_SERVER['REQUEST_URI'] = 'http://localhost/example/resource'; - $_SERVER['HTTP_USER_AGENT'] = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.89 Safari/537.36'; + $_SERVER['HTTP_USER_AGENT'] = 'Mozilla/5.0 (Linux; Android 5.0; SM-G920A) AppleWebKit (KHTML, like Gecko) Chrome Mobile Safari (compatible; AdsBot-Google-Mobile; +http://www.google.com/mobile/adsbot.html)'; $_SERVER['REMOTE_ADDR'] = 'not set'; $_SERVER['HTTP_HOST'] = 'localhost'; $GLOBALS['_PX_uniqid'] = 'example'; diff --git a/tests/Seo/Content/BasicsRestTest.php b/tests/Seo/Content/BasicsRestTest.php index aa5acee..ea63a97 100755 --- a/tests/Seo/Content/BasicsRestTest.php +++ b/tests/Seo/Content/BasicsRestTest.php @@ -151,8 +151,10 @@ public function registerUnknownContent() // call to get a link with crawler $pageAddress = '/random/page/test-page-' . rand(); - $client = new Client(); - $client->get($pageAddress); + try { + $client = new Client(); + $client->get($pageAddress); + } catch (\Pluf\Exception $ex) {} // Check if link is registered $url = "http://localhost" . $pageAddress; diff --git a/tests/Seo/MiddlewareTest.php b/tests/Seo/MiddlewareTest.php index d30194f..f30e449 100644 --- a/tests/Seo/MiddlewareTest.php +++ b/tests/Seo/MiddlewareTest.php @@ -35,7 +35,13 @@ class MiddlewareTest extends TestCase */ public function setUpTest() { - Pluf::start(__DIR__ . '/../conf/config.php'); + $cfg = include (__DIR__ . '/../conf/config.php'); + $cfg['seo_prerender_default_engine'] = 'fake'; + $cfg['seo_prerender_default_enable'] = true; + $cfg['seo_prerender_default_period'] = '+7 days'; + $cfg['seo_prerender_default_pattern'] = '.*'; + + Pluf::start($cfg); $m = new Pluf_Migration(); $m->install(); $m->init(); diff --git a/tests/Seo/Sitemap/XmlTest.php b/tests/Seo/Sitemap/XmlTest.php index 8b3eb48..f7ebea0 100755 --- a/tests/Seo/Sitemap/XmlTest.php +++ b/tests/Seo/Sitemap/XmlTest.php @@ -16,9 +16,13 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -use PHPUnit\Framework\TestCase; +namespace Pluf\Test\Seo\Sitemap; + use Pluf\Test\Client; -require_once 'Pluf.php'; +use Pluf\Test\TestCase; +use Pluf; +use Pluf_Migration; +use Seo_SitemapLink; /** * diff --git a/tests/conf/config.php b/tests/conf/config.php index 15b76ad..ed268f4 100644 --- a/tests/conf/config.php +++ b/tests/conf/config.php @@ -19,7 +19,8 @@ $cfg['upload_path'] = '/tmp'; $cfg['tmp_folder'] = '/tmp'; $cfg['middleware_classes'] = array( - 'Pluf_Middleware_Session', + '\Pluf\Seo\Middleware\Render', + '\Pluf\Middleware\Session', 'User_Middleware_Session' ); $cfg['secret_key'] = '5a8d7e0f2aad8bdab8f6eef725412850'; @@ -27,8 +28,9 @@ // ------------------------------------------------------------------------- // Template manager and compiler // ------------------------------------------------------------------------- -$cfg['templates_folder'] = array( - dirname(__FILE__) . '/../templates' +$cfg['template_folders'] = array( + __DIR__ . '/../../templates', // /vendor/pluf/seo/templates + __DIR__ . '/../templates' ); $cfg['template_tags'] = array( 'mytag' => 'Pluf_Template_Tag_Mytag' @@ -43,12 +45,11 @@ $cfg['log_formater'] = '\Pluf\LoggerFormatter\Plain'; $cfg['log_appender'] = '\Pluf\LoggerAppender\Console'; - // ------------------------------------------------------------------------- // Tenants // ------------------------------------------------------------------------- - -// multitenant +// $cfg['tenant_notfound_url'] = 'https://pluf.ir/wb/blog/page/how-config-notfound-tenant'; +// $cfg['multitenant'] = false; // ------------------------------------------------------------------------- // user @@ -57,4 +58,22 @@ $cfg['user_account_auto_activate'] = true; $cfg['user_avatar_default'] = __DIR__ . '/avatar.svg'; +// ------------------------------------------------------------------------- +// SEO +// ------------------------------------------------------------------------- +// +// Enable default prerender engine +// +// A prerender to use with all tenants if there is not render configuration. +// +// $cfg['seo_prerender_default_enable'] = false; + +// $cfg['seo_prerender_default_engine'] = 'global'; + +// $cfg['seo_prerender_default_period'] = '+7 days'; + +// $cfg['seo_prerender_default_pattern'] = '.*'; + +// $cfg['seo_prerender_global_url'] = 'localhost'; + return $cfg;