Click here to Skip to main content
15,886,873 members
Articles / Web Development / IIS

Browser Detection using ASP.NET

Rate me:
Please Sign up or sign in to vote.
4.63/5 (56 votes)
6 May 2009CPOL5 min read 558.5K   6.3K   186  
Using and updating your machine.config file to better detect browser type in ASP.NET
using System;
using NUnit.Framework;

namespace Ocean.Nunit.HttpCapabilities
{
	/// <summary>
	/// Summary description for CapabilitiesSpiders.
	/// </summary>
	[TestFixture]
	public class CapabilitiesSpiders
	{
		Ocean.Web.HttpCapabilities.Settings Browser;
		Ocean.Web.HttpCapabilities.Result R;
		public CapabilitiesSpiders()
		{
			Browser = new Ocean.Web.HttpCapabilities.Settings(Ocean.Web.HttpCapabilities.EmbededFile.SpidersBots);
		}

		[Test]
		public void	Test_FASTWebCrawler()
		{
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("FAST-WebCrawler/3.6 (atw-crawler at fast dot no; http://fast.no/support/crawler.asp)");         
			Assert.AreEqual("FAST-WebCrawler",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("FAST-WebCrawler/3.6/FirstPage (atw-crawler at fast dot no;http://fast.no/support/crawler.asp)");
			Assert.AreEqual("FAST-WebCrawler",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("FAST-WebCrawler/3.6/FirstPage (crawler@fast.no; http://fast.no/support.php?c=faqs/crawler)");   
			Assert.AreEqual("FAST-WebCrawler",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("FAST-WebCrawler/3.7 (atw-crawler at fast dot no; http://fast.no/support/crawler.asp)");         
			Assert.AreEqual("FAST-WebCrawler",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("FAST-WebCrawler/3.7/FirstPage (atw-crawler at fast dot no;http://fast.no/support/crawler.asp)");
			Assert.AreEqual("FAST-WebCrawler",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("FAST-WebCrawler/3.8 (atw-crawler at fast dot no; http://fast.no/support/crawler.asp)");         
			Assert.AreEqual("FAST-WebCrawler",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("FAST-WebCrawler/3.8 (atw-crawler at fast dot no; http://www.alltheweb.com/help/webmaster/crawler)");                                                                                                        
			Assert.AreEqual("FAST-WebCrawler",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("FAST-WebCrawler/3.8 (crawler at trd dot overture dot com; http://www.alltheweb.com/help/webmaster/crawler)");                                                                                               
			Assert.AreEqual("FAST-WebCrawler",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("FAST-WebCrawler/3.8/Fresh (atw-crawler at fast dot no; http://fast.no/support/crawler.asp)");   
			Assert.AreEqual("FAST-WebCrawler",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Overture-WebCrawler/3.8/Fresh (atw-crawler at fast dot no; http://fast.no/support/crawler.asp)");                                                                                                           
			Assert.AreEqual("FAST-WebCrawler",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

		}
		[Test]
		public void	Test_GoogleBot()
		{
			//-------------------------------------------------------------------
			//this should return unknown, and false, since it does not match
			//what is known to be a valid google bot useragent.
			//-------------------------------------------------------------------
			R = Browser.Process("GoogleBot");
			Assert.AreEqual("Unknown",R.Browser, "Browser Name Compare");
			Assert.AreEqual(false,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Googlebot-Image/1.0");                                     
			Assert.AreEqual("Googlebot Image",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Googlebot-Image/1.0 ( http://www.googlebot.com/bot.html)");
			Assert.AreEqual("Googlebot Image",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Googlebot/2.1 ( http://www.google.com/bot.html)");
			Assert.AreEqual("Google",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Googlebot/2.1 ( http://www.googlebot.com/bot.html)");
			Assert.AreEqual("Google",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//this should return unknown, and false, since it does not match
			//what is known to be a valid google bot useragent.
			//-------------------------------------------------------------------
			R = Browser.Process("Googlebot/Test ( http://www.googlebot.com/bot.html)");
			Assert.AreEqual("Unknown",R.Browser, "Browser Name Compare");
			Assert.AreEqual(false,R.IsBot, "Browser IsBot");
		}
		[Test]
		public void	Test_iltrovatore()
		{
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Iltrovatore-Setaccio");                                                                                                                                                                                     
			Assert.AreEqual("iltrovatore.it",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("IlTrovatore-Setaccio ( http://www.iltrovatore.it)");                                                                                                                                                        
			Assert.AreEqual("iltrovatore.it",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("IlTrovatore-Setaccio/0.03-dev (Indexing; http://www.iltrovatore.it/bot.html; info@iltrovatore.it)");                                                                                                        
			Assert.AreEqual("iltrovatore.it",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Iltrovatore-Setaccio/0.3-dev (Indexing; http://www.iltrovatore.it/bot.html; info@iltrovatore.it)");                                                                                                         
			Assert.AreEqual("iltrovatore.it",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("IlTrovatore-Setaccio/1.2 (Indexing; http://www.iltrovatore.it/bot.html; bot@iltrovatore.it)");                                                                                                              
			Assert.AreEqual("iltrovatore.it",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("IlTrovatore-Setaccio/1.2 (Indexing; http://www.iltrovatore.it/bot.html; info@iltrovatore.it)");                                                                                                             
			Assert.AreEqual("iltrovatore.it",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Iltrovatore-Setaccio/1.2 (It-bot; http://www.iltrovatore.it/bot.html; info@iltrovatore.it)");                                                                                                               
			Assert.AreEqual("iltrovatore.it",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("IlTrovatore-Setaccio/1.2-dev (Indexing; http://www.iltrovatore.it/bot.html; info@iltrovatore.it)");                                                                                                         
			Assert.AreEqual("iltrovatore.it",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("iltrovatore-setaccio/1.2-dev (spidering; http://www.iltrovatore.it/aiuto/motore_di_ricerca.html#AggiungereunaUrlalmotorediricercaIlTrovatore; info@iltrovatore.it)");                                       
			Assert.AreEqual("iltrovatore.it",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
		}

		[Test]
		public void	Test_MJ12bot()
		{
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("MJ12bot/v0.5.0 (http://www.majestic12.co.uk/projects/dsearch/mj12bot.php) run by  PeerID=F43AA089D42A3C7610E3778C4E73A95E MemberID=C9403BB515387FBB631AC512950E6F0E");                                      
			Assert.AreEqual("majestic12.co.uk",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("MJ12bot/v0.7.3 (http://www.majestic12.co.uk/projects/dsearch/mj12bot.php?V=v0.7.3&NID=00B09BC717C17352&MID=AEC2CECD6E8A446E");                                                                              
			Assert.AreEqual("majestic12.co.uk",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("MJ12bot/v0.7.3 (http://www.majestic12.co.uk/projects/dsearch/mj12bot.php?V=v0.7.3&NID=00B09BC717C17352&MID=AEC2CECD6E8A446E&BID=3EBE640829EEA232CDF97D844126E136");                                         
			Assert.AreEqual("majestic12.co.uk",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("MJ12bot/v0.8.0 (http://www.majestic12.co.uk/projects/dsearch/mj12bot.php?V=v0.8.0&NID=00B09BC717C17352&MID=AEC2CECD6E8A446E&BID=FFD53BA66D1D20E45D46067109BD385B");                                         
			Assert.AreEqual("majestic12.co.uk",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
		}

		[Test]
		public void	Test_MSNBOT()
		{
		
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("MSNBOT/0.1 (http://search.msn.com/msnbot.htm)");                                                                                                                                                            
			Assert.AreEqual("MSNBOT",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("msnbot/0.11 ( http://search.msn.com/msnbot.htm)");                                                                                                                                                          
			Assert.AreEqual("MSNBOT",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("msnbot/0.3 ( http://search.msn.com/msnbot.htm)");                                                                                                                                                           
			Assert.AreEqual("MSNBOT",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("msnbot/1.0 ( http://search.msn.com/msnbot.htm)");                                                                                                                                                           
			Assert.AreEqual("MSNBOT",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

		}
		[Test]
		public void	Test_grubclient()
		{
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 (compatible; grub-client-1.0.4; Crawl your own stuff with http://grub.org)");                                                                                                                   
			Assert.AreEqual("grub-client",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 (compatible; grub-client-1.0.5; Crawl your own stuff with http://grub.org)");                                                                                                                   
			Assert.AreEqual("grub-client",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 (compatible; grub-client-1.0.6; Crawl your own stuff with http://grub.org)");                                                                                                                   
			Assert.AreEqual("grub-client",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 (compatible; grub-client-1.0.7; Crawl your own stuff with http://grub.org)");                                                                                                                   
			Assert.AreEqual("grub-client",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 (compatible; grub-client-1.07; Crawl your own stuff with http://grub.org)");                                                                                                                    
			Assert.AreEqual("grub-client",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 (compatible; grub-client-1.1.1; Crawl your own stuff with http://grub.org)");                                                                                                                   
			Assert.AreEqual("grub-client",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 (compatible; grub-client-1.2.1; Crawl your own stuff with http://grub.org)");                                                                                                                   
			Assert.AreEqual("grub-client",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 (compatible; grub-client-1.3.1; Crawl your own stuff with http://grub.org)");                                                                                                                   
			Assert.AreEqual("grub-client",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 (compatible; grub-client-1.3.7; Crawl your own stuff with http://grub.org)");                                                                                                                   
			Assert.AreEqual("grub-client",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 (compatible; grub-client-1.4.3; Crawl your own stuff with http://grub.org)");                                                                                                                   
			Assert.AreEqual("grub-client",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 (compatible; grub-client-1.5.3; Crawl your own stuff with http://grub.org)");                                                                                                                   
			Assert.AreEqual("grub-client",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 (compatible; grub-client-2.3)");                                                                                                                                                                
			Assert.AreEqual("grub-client",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
		}
		[Test]
		public void	Test_Slurp()
		{		
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/3.0 (Slurp/si; slurp@inktomi.com; http://www.inktomi.com/slurp.html)");                                                                                                                             
			Assert.AreEqual("Slurp",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/5.0 (compatible; Yahoo! Slurp/si-emb; http://help.yahoo.com/help/us/ysearch/slurp)");                                                                                                               
			Assert.AreEqual("Slurp",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)");                                                                                                                      
			Assert.AreEqual("Slurp",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/5.0 (Slurp.so/1.0; slurp@inktomi.com; http://www.inktomi.com/slurp.html)");                                                                                                                         
			Assert.AreEqual("Slurp",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/5.0 (Slurp/cat; slurp@inktomi.com; http://www.inktomi.com/slurp.html)");                                                                                                                            
			Assert.AreEqual("Slurp",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/5.0 (Slurp/si; slurp@inktomi.com; http://www.inktomi.com/slurp.html)");                                                                                                                             
			Assert.AreEqual("Slurp",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Slurp/si-emb (slurp@inktomi.com; http://www.inktomi.com/slurp.html)");                                                                                                                                      
			Assert.AreEqual("Slurp",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
		}
		[Test]
		public void	Test_YahooMMCrawler()
		{
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Yahoo-MMCrawler/3.x (mms dash mmcrawler dash support at yahoo dash inc dot com)");                                                                                                                          
			Assert.AreEqual("Yahoo-MMCrawler",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

		}

		[Test]
		public void	Test_AskJeeves()
		{
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/2.0 (compatible; Ask Jeeves)");                                                                                                                                                                     
			Assert.AreEqual("Ask Jeeves",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/2.0 (compatible; Ask Jeeves/Teoma)");                                                                                                                                                               
			Assert.AreEqual("Ask Jeeves",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/2.0 (compatible; Ask Jeeves/Teoma;  http://sp.ask.com/docs/about/tech_crawling.html)");                                                                                                             
			Assert.AreEqual("Ask Jeeves",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
		}
		[Test]
		public void	Test_larbin()
		{
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("eseek-crawler-larbin-2.63 (crawler@exactseek.com)");                                                                                                                                                        
			Assert.AreEqual("larbin",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("eseek-crawler-larbin-2.63 crawler@exactseek.com");                                                                                                                                                          
			Assert.AreEqual("larbin",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("eseek-larbin_2.6.2 (crawler@exactseek.com)");                                                                                                                                                               
			Assert.AreEqual("larbin",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("eseek-larbin_2.6.2 crawler@exactseek.com");                                                                                                                                                                 
			Assert.AreEqual("larbin",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("larbin (samualt9@bigfoot.com)");                                                                                                                                                              
			Assert.AreEqual("larbin",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("larbin samualt9@bigfoot.com");                                                                                                                                                                              
			Assert.AreEqual("larbin",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("larbin_2.6.2 (larbin2.6.2@unspecified.mail)");                                                                                                                                                              
			Assert.AreEqual("larbin",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("larbin_2.6.2 larbin2.6.2@unspecified.mail");                                                                                                                                                                
			Assert.AreEqual("larbin",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("larbin_2.6.3_for_(http://cosco.hiit.fi/search/) (tsilande@hiit.fi)");                                                                                                                                       
			Assert.AreEqual("larbin",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("larbin_2.6.3_for_(http://cosco.hiit.fi/search/) tsilande@hiit.fi");                                                                                                                                         
			Assert.AreEqual("larbin",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
		}
		[Test]
		public void	Test_libwwwperl()
		{
			R = Browser.Process("68/0.1 libwww-perl/5.66");                                                                                                                                                                                  
			Assert.AreEqual("libwww-perl",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("libwww-perl/5.22");                                                                                                                                                                                         
			Assert.AreEqual("libwww-perl",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("libwww-perl/5.48");                                                                                                                                                                                         
			Assert.AreEqual("libwww-perl",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("libwww-perl/5.52 FP/4.0");                                                                                                                                                                                  
			Assert.AreEqual("libwww-perl",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("libwww-perl/5.53");                                                                                                                                                                                         
			Assert.AreEqual("libwww-perl",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("libwww-perl/5.64");                                                                                                                                                                                         
			Assert.AreEqual("libwww-perl",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("libwww-perl/5.65");                                                                                                                                                                                         
			Assert.AreEqual("libwww-perl",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("libwww-perl/5.68");                                                                                                                                                                                         
			Assert.AreEqual("libwww-perl",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("libwww-perl/5.69");                                                                                                                                                                                         
			Assert.AreEqual("libwww-perl",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("libwww-perl/5.76");                                                                                                                                                                                         
			Assert.AreEqual("libwww-perl",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("libwww-perl/5.800");                                                                                                                                                                                        
			Assert.AreEqual("libwww-perl",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("libwww-perl/5.803");                                                                                                                                                                                        
			Assert.AreEqual("libwww-perl",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("linko/0.1 libwww-perl/5.65");                                                                                                                                                                               
			Assert.AreEqual("libwww-perl",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0_(compatible;_MSIE_6.0;_Windows_NT_5.1;_.NET_CLR_1.1.4322) libwww-perl/5.803");                                                                                                                  
			Assert.AreEqual("libwww-perl",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
		}
		[Test]
		public void	Test_nutch()
		{
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("http://www.nutch.org/");                                                                                                                                                                                    
			Assert.AreEqual("Nutch",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
						
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("NutchCVS/0.03-dev (Nutch; http://www.nutch.org/docs/bot.html; nutch-agent@lists.sourceforge.net)");                                                                                                         
			Assert.AreEqual("Nutch",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
						
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("NutchCVS/0.03-dev (Nutch; http://www.nutch.org/docs/en/bot.html; nutch-agent (at) lists.sourceforge.net)");                                                                                                 
			Assert.AreEqual("Nutch",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
						
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("NutchCVS/0.03-dev (Nutch; http://www.nutch.org/docs/en/bot.html; nutch-agent@lists.sourceforge.net)");                                                                                                      
			Assert.AreEqual("Nutch",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
						
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("NutchCVS/0.05 (Nutch; http://www.nutch.org/docs/en/bot.html; nutch-agent@lists.sourceforge.net)");                                                                                                          
			Assert.AreEqual("Nutch",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
						
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("NutchCVS/0.05-dev (Nutch; http://www.nutch.org/docs/en/bot.html; nutch-agent@lists.sourceforge.net)");                                                                                                      
			Assert.AreEqual("Nutch",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
						
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("NutchCVS/0.06-dev (Nutch; http://www.nutch.org/docs/en/bot.html; nutch-agent@lists.sourceforge.net)");                                                                                                      
			Assert.AreEqual("Nutch",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
						
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("NutchOrg/0.03-dev (Nutch; http://www.nutch.org/docs/bot.html; nutch-agent@lists.sourceforge.net)");                                                                                                         
			Assert.AreEqual("Nutch",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
						
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("NutchOrg/0.04-dev (Nutch; http://www.nutch.org/docs/en/bot.html; nutch-agent@lists.sourceforge.net)");                                                                                                      
			Assert.AreEqual("Nutch",R.Browser, "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
		}
		[Test]
		public void	Test_curl()
		{
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("curl/7.10.5 (win32) libcurl/7.10.5 zlib/1.1.4");                                                                                                                                                                                            
			Assert.AreEqual("curl",R.Browser,  "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
						
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("curl/7.7.1 (i386--freebsd4.3) libcurl 7.7.1 (SSL 0.9.6) (ipv6 enabled)");                                                                                                                                                                   
			Assert.AreEqual("curl",R.Browser,  "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
						
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("curl/7.7.2 (powerpc-apple-darwin6.0) libcurl 7.7.2 (OpenSSL 0.9.6b)");                                                                                                                                                                      
			Assert.AreEqual("curl",R.Browser,  "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
						
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("curl/7.8 (i386-redhat-linux-gnu) libcurl 7.8 (OpenSSL 0.9.6b) (ipv6 enabled)");                                                                                                                                                             
			Assert.AreEqual("curl",R.Browser,  "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
						
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("curl/7.9.1 (win32) libcurl 7.9.1");                                                                                                                                                                                                         
			Assert.AreEqual("curl",R.Browser,  "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
						
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("curl/7.9.8 (i386-redhat-linux-gnu) libcurl 7.9.8 (OpenSSL 0.9.7a) (ipv6 enabled)");                                                                                                                                                         
			Assert.AreEqual("curl",R.Browser,  "Browser Name Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
		}
		[Test]
		public void	Test_Java()
		{
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Java/1.4.1_01");
			Assert.AreEqual("Java", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.4",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Java/1.4.1_02");
			Assert.AreEqual("Java", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.4",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Java/1.4.1_05");
			Assert.AreEqual("Java", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.4",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Java/1.4.2");
			Assert.AreEqual("Java", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.4",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Java/1.4.2-beta");
			Assert.AreEqual("Java", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.4",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Java/1.4.2_01");
			Assert.AreEqual("Java", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.4",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Java/1.4.2_03");
			Assert.AreEqual("Java", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.4",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Java/1.4.2_04");
			Assert.AreEqual("Java", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.4",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Java/1.4.2_06");
			Assert.AreEqual("Java", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.4",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Java/1.5.0_01");
			Assert.AreEqual("Java", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.5",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Java1.1.8");
			Assert.AreEqual("Java", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.1",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Java1.3.0");
			Assert.AreEqual("Java", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.3",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Java1.3.1_06");
			Assert.AreEqual("Java", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.3",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Java1.3beta");
			Assert.AreEqual("Java", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.3",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Java1.4.0");
			Assert.AreEqual("Java", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.4",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Java1.4.0_02");
			Assert.AreEqual("Java", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.4",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Java1.4.0_03");
			Assert.AreEqual("Java", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.4",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
		}
		[Test]
		public void	Test_become()
		{
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/5.0 (compatible; BecomeBot/1.23;  http://www.become.com/webmasters.html)");
			Assert.AreEqual("become.com", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.23",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/5.0 (compatible; BecomeBot/1.70; MSIE 6.0 compatible;  http://www.become.com/webmasters.html)");
			Assert.AreEqual("become.com", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.70",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/5.0 (compatible; BecomeBot/2.0.3;  http://www.become.com/webmasters.html)");
			Assert.AreEqual("become.com", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("2.0",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/5.0 (compatible; BecomeBot/2.2.1; MSIE 6.0 compatible;  http://www.become.com/webmasters.html)");
			Assert.AreEqual("become.com", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("2.2",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/5.0 (compatible; BecomeBot/2.2.5; MSIE 6.0 compatible;  http://www.become.com/site_owners.html)");
			Assert.AreEqual("become.com", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("2.2",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
		}
		[Test]
		public void	Test_NaverBot()
		{
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("NaverBot-1.0 (NHN Corp. /  82-2-3011-1954 / nhnbot@naver.com)");
			Assert.AreEqual("NaverBot", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("0.0",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("NaverBot_dloader/1.5");
			Assert.AreEqual("NaverBot", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("0.0",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
		}

		[Test]
		public void	Test_WebServicesClient()
		{
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 1.0.3705.0)");
			Assert.AreEqual("MS Web Services Client Protocol", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("0.0",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 1.0.3705.288)");
			Assert.AreEqual("MS Web Services Client Protocol", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("0.0",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 1.1.4322.2032)");
			Assert.AreEqual("MS Web Services Client Protocol", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("0.0",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 1.1.4322.573)");
			Assert.AreEqual("MS Web Services Client Protocol", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("0.0",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
		}
		[Test]
		public void	Test_WISEnutbot()
		{
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 compatible ZyBorg/1.0 (wn-1.zyborg@looksmart.net; http://www.WISEnutbot.com)");
			Assert.AreEqual("WISEnutbot", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("0.0",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 compatible ZyBorg/1.0 (wn-12.zyborg@looksmart.net; http://www.WISEnutbot.com)");
			Assert.AreEqual("WISEnutbot", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("0.0",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 compatible ZyBorg/1.0 (wn-2.zyborg@looksmart.net; http://www.WISEnutbot.com)");
			Assert.AreEqual("WISEnutbot", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("0.0",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 compatible ZyBorg/1.0 (wn.zyborg@looksmart.net; http://www.WISEnutbot.com)");
			Assert.AreEqual("WISEnutbot", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("0.0",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 compatible ZyBorg/1.0 (ZyBorg@WISEnutbot.com; http://www.WISEnutbot.com)");
			Assert.AreEqual("WISEnutbot", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("0.0",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 compatible ZyBorg/1.0 Dead Link Checker (wn.zyborg@looksmart.net; http://www.WISEnutbot.com)");
			Assert.AreEqual("WISEnutbot", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("0.0",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 compatible ZyBorg/1.0 Dead Link Checker Beta-d01 (wn.zyborg@looksmart.net; http://www.WISEnutbot.com)");
			Assert.AreEqual("WISEnutbot", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("0.0",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
			
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Mozilla/4.0 compatible ZyBorg/1.0 DLC (wn.zyborg@looksmart.net; http://www.WISEnutbot.com)");
			Assert.AreEqual("WISEnutbot", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("0.0",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
		}
		[Test]
		public void	Test_wget()
		{
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Wget/1.5.3");
			Assert.AreEqual("wget", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.5",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Wget/1.5.3.1");
			Assert.AreEqual("wget", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.5",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Wget/1.6");
			Assert.AreEqual("wget", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.6",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Wget/1.7");
			Assert.AreEqual("wget", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.7",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Wget/1.8.1");
			Assert.AreEqual("wget", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.8",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Wget/1.8.2");
			Assert.AreEqual("wget", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.8",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Wget/1.9");
			Assert.AreEqual("wget", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.9",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Wget/1.9 cvs-stable (Red Hat modified)");
			Assert.AreEqual("wget", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.9",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");

			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("Wget/1.9.1");
			Assert.AreEqual("wget", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("1.9",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
		}
		[Test]
		public void Test_Jeanie()
		{
			//-------------------------------------------------------------------
			//
			//-------------------------------------------------------------------
			R = Browser.Process("compatible;MSIE+6.0;Windows+NT+5.51+SP+Jeanie/3.3.2.609+SP+Jeanie/3.3.2.609");
			Assert.AreEqual("Jeanie", R.Browser,  "Browser Name Compare");
			Assert.AreEqual("3.3",R.Version, "Browser Version Compare");
			Assert.AreEqual(true,R.IsBot, "Browser IsBot");
		}
	}
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Founder CodeProject
Canada Canada
Chris Maunder is the co-founder of CodeProject and ContentLab.com, and has been a prominent figure in the software development community for nearly 30 years. Hailing from Australia, Chris has a background in Mathematics, Astrophysics, Environmental Engineering and Defence Research. His programming endeavours span everything from FORTRAN on Super Computers, C++/MFC on Windows, through to to high-load .NET web applications and Python AI applications on everything from macOS to a Raspberry Pi. Chris is a full-stack developer who is as comfortable with SQL as he is with CSS.

In the late 1990s, he and his business partner David Cunningham recognized the need for a platform that would facilitate knowledge-sharing among developers, leading to the establishment of CodeProject.com in 1999. Chris's expertise in programming and his passion for fostering a collaborative environment have played a pivotal role in the success of CodeProject.com. Over the years, the website has grown into a vibrant community where programmers worldwide can connect, exchange ideas, and find solutions to coding challenges. Chris is a prolific contributor to the developer community through his articles and tutorials, and his latest passion project, CodeProject.AI.

In addition to his work with CodeProject.com, Chris co-founded ContentLab and DeveloperMedia, two projects focussed on helping companies make their Software Projects a success. Chris's roles included Product Development, Content Creation, Client Satisfaction and Systems Automation.

Comments and Discussions