mirror of
https://github.com/moodle/moodle.git
synced 2025-08-04 16:36:37 +02:00
Merge branch 'MDL-52214-master-crawler' of git://github.com/mudrd8mz/moodle
This commit is contained in:
commit
57d4e11334
4 changed files with 62 additions and 4 deletions
|
@ -215,7 +215,7 @@ class core_useragent {
|
|||
* @return bool
|
||||
*/
|
||||
protected function is_useragent_web_crawler() {
|
||||
$regex = '/Googlebot|google\.com|Yahoo! Slurp|\[ZSEBOT\]|msnbot|bingbot|BingPreview|Yandex|AltaVista|Baiduspider|Teoma/';
|
||||
$regex = '/Googlebot|google\.com|Yahoo! Slurp|\[ZSEBOT\]|msnbot|bingbot|BingPreview|Yandex|AltaVista|Baiduspider|Teoma/i';
|
||||
return (preg_match($regex, $this->useragent));
|
||||
}
|
||||
|
||||
|
|
|
@ -2395,8 +2395,8 @@ function get_referer($stripquery = true) {
|
|||
* @deprecated since Moodle 3.0 use \core_useragent::is_web_crawler instead.
|
||||
*/
|
||||
function is_web_crawler() {
|
||||
debugging("is_web_crawler() has been deprecated, please use \\core_useragent\\is_web_crawler() instead.", DEBUG_DEVELOPER);
|
||||
return core_useragent::is_crawler();
|
||||
debugging('is_web_crawler() has been deprecated, please use core_useragent::is_web_crawler() instead.', DEBUG_DEVELOPER);
|
||||
return core_useragent::is_web_crawler();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
* @copyright 2013 Sam Hemelryk
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
class core_useragent_testcase extends basic_testcase {
|
||||
class core_useragent_testcase extends advanced_testcase {
|
||||
|
||||
/**
|
||||
* Restores the user agent to the default one.
|
||||
|
@ -1865,4 +1865,61 @@ class core_useragent_testcase extends basic_testcase {
|
|||
$expectation = isset($tests['is_web_crawler']) ? $tests['is_web_crawler'] : false;
|
||||
$this->assertSame($expectation, core_useragent::is_web_crawler());
|
||||
}
|
||||
|
||||
/**
|
||||
* Regression tests for the deprecated is_web_crawler() function
|
||||
*/
|
||||
public function test_deprecated_is_web_crawler() {
|
||||
|
||||
$browsers = array(
|
||||
'Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US))',
|
||||
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:18.0) Gecko/18.0 Firefox/18.0',
|
||||
'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/412 (KHTML, like Gecko) Safari/412',
|
||||
'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.215 Safari/534.10',
|
||||
'Opera/9.0 (Windows NT 5.1; U; en)',
|
||||
'Mozilla/5.0 (Linux; U; Android 2.1; en-us; Nexus One Build/ERD62) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 –Nexus',
|
||||
'Mozilla/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5',
|
||||
);
|
||||
$crawlers = array(
|
||||
// Google.
|
||||
'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)',
|
||||
'Googlebot/2.1 (+http://www.googlebot.com/bot.html)',
|
||||
'Googlebot-Image/1.0',
|
||||
// Yahoo.
|
||||
'Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)',
|
||||
// Bing.
|
||||
'Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)',
|
||||
'Mozilla/5.0 (compatible; bingbot/2.0 +http://www.bing.com/bingbot.htm)',
|
||||
// MSN.
|
||||
'msnbot/2.1',
|
||||
// Yandex.
|
||||
'Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)',
|
||||
'Mozilla/5.0 (compatible; YandexImages/3.0; +http://yandex.com/bots)',
|
||||
// AltaVista.
|
||||
'AltaVista V2.0B crawler@evreka.com',
|
||||
// ZoomSpider.
|
||||
'ZoomSpider - wrensoft.com [ZSEBOT]',
|
||||
// Baidu.
|
||||
'Baiduspider+(+http://www.baidu.com/search/spider_jp.html)',
|
||||
'Baiduspider+(+http://www.baidu.com/search/spider.htm)',
|
||||
'BaiDuSpider',
|
||||
// Ask.com.
|
||||
'User-Agent: Mozilla/2.0 (compatible; Ask Jeeves/Teoma)',
|
||||
);
|
||||
|
||||
foreach ($browsers as $agent) {
|
||||
core_useragent::instance(true, $agent);
|
||||
$this->assertSame($agent, core_useragent::get_user_agent_string());
|
||||
$this->assertFalse(is_web_crawler());
|
||||
$this->assertDebuggingCalled('is_web_crawler() has been deprecated, please use core_useragent::is_web_crawler() instead.',
|
||||
DEBUG_DEVELOPER);
|
||||
}
|
||||
foreach ($crawlers as $agent) {
|
||||
core_useragent::instance(true, $agent);
|
||||
$this->assertSame($agent, core_useragent::get_user_agent_string());
|
||||
$this->assertTrue(is_web_crawler(), "$agent should be considered a search engine");
|
||||
$this->assertDebuggingCalled('is_web_crawler() has been deprecated, please use core_useragent::is_web_crawler() instead.',
|
||||
DEBUG_DEVELOPER);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -151,6 +151,7 @@ information provided here is intended especially for developers.
|
|||
line interface scripts.
|
||||
* External function core_course_external::get_course_contents returned parameter "name" has been changed to PARAM_RAW,
|
||||
this is because the new external_format_string function may return raw data if the global moodlewssettingraw parameter is used.
|
||||
* Function is_web_crawler() has been deprecated, please use core_useragent::is_web_crawler() instead.
|
||||
|
||||
=== 2.9.1 ===
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue