/*
* Copyright 1999-2017 Alibaba Group Holding Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.alibaba.druid.bvt.support.http;
import org.junit.Assert;
import junit.framework.TestCase;
import com.alibaba.druid.support.http.stat.WebAppStat;
public class UserAgentBotStat extends TestCase {
public void test_youdao() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Mozilla/5.0 (compatible; YoudaoBot/1.0; http://www.youdao.com/help/webmaster/spider/; )");
Assert.assertEquals(1, stat.getBotCount());
Assert.assertEquals(1, stat.getBotYoudaoCount());
}
public void test_bing() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)");
Assert.assertEquals(1, stat.getBotCount());
Assert.assertEquals(1, stat.getBotBingCount());
}
public void test_google() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)");
Assert.assertEquals(1, stat.getBotCount());
Assert.assertEquals(1, stat.getBotGoogleCount());
}
public void test_baidu() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)");
Assert.assertEquals(1, stat.getBotCount());
Assert.assertEquals(1, stat.getBotBaiduCount());
}
public void test_soso() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Sosospider+(+http://help.soso.com/webspider.htm)");
Assert.assertEquals(1, stat.getBotCount());
Assert.assertEquals(1, stat.getBotSosoCount());
}
public void test_msn() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("msnbot/2.0b (+http://search.msn.com/msnbot.htm)._");
Assert.assertEquals(1, stat.getBotCount());
Assert.assertEquals(1, stat.getBotMsnCount());
}
public void test_sogou() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)");
Assert.assertEquals(1, stat.getBotCount());
Assert.assertEquals(1, stat.getBotSogouCount());
}
public void test_yahoo() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)");
Assert.assertEquals(1, stat.getBotCount());
Assert.assertEquals(1, stat.getBotYahooCount());
}
public void test_unkownBot() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Mozilla/5.0 ()");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_unkownBot1() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Mozilla/5.0 (compatible; Mail.RU/2.0)");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_unkownBot2() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Mozilla/5.0 (compatible; MJ12bot/v1.4.2; http://www.majestic12.co.uk/bot.php?+)");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_unkownBot3() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("-");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_unkownBot4() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("\"Mozilla/5.0");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_unkownBot5() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) Speedy Spider (http://www.entireweb.com/about/search_tech/speedy_spider/)");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_unkownBot6() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Mozilla");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_unkownBot7() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Crawl/0.01 libcrawl/0.3");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_unkownBot8() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("SkimBot/1.0 (www.skimlinks.com <dev@skimlinks.com>)");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_huawei() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("HuaweiSymantecSpider/1.0+DSE-support@huaweisymantec.com+(compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR ; http://www.huaweisymantec.com/en/IRL/spider)");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_Yeti() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Yeti/1.0 (NHN Corp.; http://help.naver.com/robots/)");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_KaloogaBot() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Mozilla/5.0 (compatible; KaloogaBot; http://kalooga.com/crawler)");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_YandexBot() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_Ezooms() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Mozilla/5.0 (compatible; Ezooms/1.0; ezooms.bot@gmail.com)");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_Exabot() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Mozilla/5.0 (compatible; Exabot/3.0; +http://www.exabot.com/go/robot)");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_mahonie() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("mahonie, neofonie search:robot/search:robot/0.0.1 (This is the MIA Bot - crawling for mia research project. If you feel unhappy and do not want to be visited by our crawler send an email to spider@neofonie.de; http://spider.neofonie.de; spider@neofonie.de)");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_AhrefsBot() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Mozilla/5.0 (compatible; AhrefsBot/3.0; +http://ahrefs.com/robot/)");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_Crawler() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Mozilla/5.0 (compatible; SISTRIX Crawler; http://crawler.sistrix.net/)");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_yodao() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Mozilla/5.0 (compatible; YodaoBot/1.0; http://www.yodao.com/help/webmaster/spider/; )");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_BeetleBot() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Mozilla/5.0 (compatible; BeetleBot; )");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_findlinks() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("findlinks/2.1.5 (+http://wortschatz.uni-leipzig.de/findlinks/)");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_Updownerbot() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Updownerbot (+http://www.updowner.com/bot)");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_archiveOrgBot() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Mozilla/5.0 (compatible; archive.org_bot +http://www.archive.org/details/archive.org_bot)");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_aiHitBot() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("Mozilla/5.0 (compatible; aiHitBot/1.1; +http://www.aihit.com/)");
Assert.assertEquals(1, stat.getBotCount());
}
public void test_DoCoMo() throws Exception {
WebAppStat stat = new WebAppStat("");
stat.computeUserAgent("DoCoMo/2.0 P900i(c100;TB;W24H11) (compatible; ichiro/mobile goo; +http://search.goo.ne.jp/option/use/sub4/sub4-1/)");
Assert.assertEquals(1, stat.getBotCount());
}
}