2
0

AbstractDeviceTest.php 67 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807
  1. <?php
  2. /**
  3. * Zend Framework
  4. *
  5. * LICENSE
  6. *
  7. * This source file is subject to the new BSD license that is bundled
  8. * with this package in the file LICENSE.txt.
  9. * It is also available through the world-wide-web at this URL:
  10. * http://framework.zend.com/license/new-bsd
  11. * If you did not receive a copy of the license and are unable to
  12. * obtain it through the world-wide-web, please send an email
  13. * to license@zend.com so we can send you a copy immediately.
  14. *
  15. * @category Zend
  16. * @package Zend_Http_UserAgent
  17. * @subpackage UnitTests
  18. * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
  19. * @license http://framework.zend.com/license/new-bsd New BSD License
  20. */
  21. require_once dirname(__FILE__) . '/../../../TestHelper.php';
  22. /**
  23. * Zend_Http_UserAgent
  24. */
  25. require_once 'Zend/Http/UserAgent.php';
  26. require_once 'Zend/Http/UserAgent/AbstractDevice.php';
  27. require_once 'Zend/Http/UserAgent/Bot.php';
  28. require_once 'Zend/Http/UserAgent/Checker.php';
  29. require_once 'Zend/Http/UserAgent/Console.php';
  30. require_once 'Zend/Http/UserAgent/Desktop.php';
  31. require_once 'Zend/Http/UserAgent/Email.php';
  32. require_once 'Zend/Http/UserAgent/Feed.php';
  33. require_once 'Zend/Http/UserAgent/Mobile.php';
  34. require_once 'Zend/Http/UserAgent/Offline.php';
  35. require_once 'Zend/Http/UserAgent/Probe.php';
  36. require_once 'Zend/Http/UserAgent/Spam.php';
  37. require_once 'Zend/Http/UserAgent/Text.php';
  38. require_once 'Zend/Http/UserAgent/Validator.php';
  39. /**
  40. * @category Zend
  41. * @package Zend_Http_UserAgent
  42. * @subpackage UnitTests
  43. * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
  44. * @license http://framework.zend.com/license/new-bsd New BSD License
  45. */
  46. class Zend_Http_UserAgent_AbstractDeviceTest extends PHPUnit_Framework_TestCase
  47. {
  48. public function testUserAgentSafari()
  49. {
  50. $userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/533.17.8 (KHTML, like Gecko) Version/5.0.1 Safari/533.17.8';
  51. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  52. $this->assertEquals('AppleWebKit', $extract['browser_engine']);
  53. $this->assertEquals('Safari', $extract['browser_name']);
  54. $this->assertEquals('5.0.1', $extract['browser_version']);
  55. $this->assertEquals('Windows Server 2003', $extract['device_os_name']);
  56. $userAgent = 'Mozilla/5.0 (iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10gin_lib.cc';
  57. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  58. $this->assertEquals('AppleWebKit', $extract['browser_engine']);
  59. $this->assertEquals('Safari Mobile', $extract['browser_name']);
  60. $this->assertEquals('4.0.4', $extract['browser_version']);
  61. $this->assertEquals('iPhone OS', $extract['device_os_token']);
  62. $userAgent = 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_4_11; hu-hu) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10';
  63. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  64. $this->assertEquals('AppleWebKit', $extract['browser_engine']);
  65. $this->assertEquals('Safari', $extract['browser_name']);
  66. $this->assertEquals('4.0.4', $extract['browser_version']);
  67. $this->assertEquals('PPC Mac OS X 10_4_11', $extract['device_os_token']);
  68. $userAgent = 'Mozilla/5.0 (iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314';
  69. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  70. $this->assertEquals('AppleWebKit', $extract['browser_engine']);
  71. $this->assertEquals('Safari Mobile', $extract['browser_name']);
  72. $this->assertEquals('4.0.4', $extract['browser_version']);
  73. $this->assertEquals('iPhone OS', $extract['device_os_token']);
  74. $userAgent = 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; pt-pt) AppleWebKit/418.9.1 (KHTML, like Gecko) Safari/419.3';
  75. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  76. $this->assertEquals('AppleWebKit', $extract['browser_engine']);
  77. $this->assertEquals('Safari', $extract['browser_name']);
  78. $this->assertEquals('2.0', $extract['browser_version']);
  79. $this->assertEquals('PPC Mac OS X', $extract['device_os_token']);
  80. $userAgent = 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fr-ch) AppleWebKit/312.1.1 (KHTML, like Gecko) Safari/312';
  81. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  82. $this->assertEquals('Safari', $extract['browser_name']);
  83. $this->assertEquals('1.3', $extract['browser_version']);
  84. $userAgent = 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fr) AppleWebKit/312.5.2 (KHTML, like Gecko) Safari/312.3.3';
  85. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  86. $this->assertEquals('Safari', $extract['browser_name']);
  87. $this->assertEquals('1.3', $extract['browser_version']);
  88. $userAgent = 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fr-fr) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5';
  89. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  90. $this->assertEquals('Safari', $extract['browser_name']);
  91. $this->assertEquals('1.0', $extract['browser_version']);
  92. $userAgent = 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-gb) AppleWebKit/85.8.5 (KHTML, like Gecko) Safari/85.8.1';
  93. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  94. $this->assertEquals('Safari', $extract['browser_name']);
  95. $this->assertEquals('1.0', $extract['browser_version']);
  96. $userAgent = 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/124 (KHTML, like Gecko) Safari/125';
  97. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  98. $this->assertEquals('Safari', $extract['browser_name']);
  99. $this->assertEquals('1.2', $extract['browser_version']);
  100. $userAgent = 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/418.9 (KHTML, like Gecko) Safari/419.3';
  101. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  102. $this->assertEquals('Safari', $extract['browser_name']);
  103. $this->assertEquals('2.0', $extract['browser_version']);
  104. $userAgent = 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/412.6.2 (KHTML, like Gecko) Safari/412.2.2';
  105. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  106. $this->assertEquals('Safari', $extract['browser_name']);
  107. $this->assertEquals('2.0', $extract['browser_version']);
  108. }
  109. public function testUserAgentInternetExplorer()
  110. {
  111. $userAgent = 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)';
  112. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  113. $this->assertEquals('MSIE', $extract['browser_engine']);
  114. $this->assertEquals('Internet Explorer', $extract['browser_name']);
  115. $this->assertEquals('9.0', $extract['browser_version']);
  116. $this->assertEquals('Windows 7', $extract['device_os_name']);
  117. $userAgent = 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; FDM; OfficeLiveConnector.1.4; OfficeLivePatch.1.3; .NET CLR 1.1.4322)';
  118. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  119. $this->assertEquals('MSIE', $extract['browser_engine']);
  120. $this->assertEquals('Internet Explorer', $extract['browser_name']);
  121. $this->assertEquals('8.0', $extract['browser_version']);
  122. $this->assertEquals('Windows 7', $extract['device_os_name']);
  123. $userAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)';
  124. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  125. $this->assertEquals('MSIE', $extract['browser_engine']);
  126. $this->assertEquals('Internet Explorer', $extract['browser_name']);
  127. $this->assertEquals('7.0', $extract['browser_version']);
  128. $this->assertEquals('Windows 7', $extract['device_os_name']);
  129. $userAgent = 'Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)';
  130. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  131. $this->assertEquals('MSIE', $extract['browser_engine']);
  132. $this->assertEquals('Internet Explorer', $extract['browser_name']);
  133. $this->assertEquals('7.0', $extract['browser_version']);
  134. $this->assertEquals('Windows Vista', $extract['device_os_name']);
  135. $userAgent = 'Mozilla/4.0 (Windows; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)';
  136. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  137. $this->assertEquals('MSIE', $extract['browser_engine']);
  138. $this->assertEquals('Internet Explorer', $extract['browser_name']);
  139. $this->assertEquals('7.0', $extract['browser_version']);
  140. $this->assertEquals('Windows XP', $extract['device_os_name']);
  141. $userAgent = 'Mozilla/45.0 (compatible; MSIE 6.0; Windows NT 5.1)';
  142. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  143. $this->assertEquals('MSIE', $extract['browser_engine']);
  144. $this->assertEquals('Internet Explorer', $extract['browser_name']);
  145. $this->assertEquals('6.0', $extract['browser_version']);
  146. $this->assertEquals('Windows XP', $extract['device_os_name']);
  147. $userAgent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.2; .NET CLR 1.1.4322)';
  148. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  149. $this->assertEquals('MSIE', $extract['browser_engine']);
  150. $this->assertEquals('Internet Explorer', $extract['browser_name']);
  151. $this->assertEquals('5.5', $extract['browser_version']);
  152. $this->assertEquals('Windows Server 2003', $extract['device_os_name']);
  153. $userAgent = 'Mozilla/4.0 (compatible; MSIE 5.12; Mac_PowerPC)';
  154. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  155. $this->assertEquals('MSIE', $extract['browser_engine']);
  156. $this->assertEquals('Internet Explorer', $extract['browser_name']);
  157. $this->assertEquals('5.12', $extract['browser_version']);
  158. $this->assertEquals('Mac_PowerPC', $extract['device_os_token']);
  159. $userAgent = 'Mozilla/4.0 (compatible; MSIE 4.5; Windows 98; )';
  160. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  161. $this->assertEquals('MSIE', $extract['browser_engine']);
  162. $this->assertEquals('Internet Explorer', $extract['browser_name']);
  163. $this->assertEquals('4.5', $extract['browser_version']);
  164. $this->assertEquals('Windows 98', $extract['device_os_name']);
  165. }
  166. public function testUserAgentFirefox()
  167. {
  168. $userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)';
  169. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  170. $this->assertEquals('Firefox', $extract['browser_name']);
  171. $this->assertEquals('4.0', $extract['browser_version']);
  172. $this->assertEquals('Windows 7', $extract['device_os_name']);
  173. $userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; nb-NO; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4 (.NET CLR 3.5.30729)';
  174. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  175. $this->assertEquals('Firefox', $extract['browser_name']);
  176. $this->assertEquals('3.6.4', $extract['browser_version']);
  177. $this->assertEquals('Windows XP', $extract['device_os_name']);
  178. $userAgent = 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.6) Gecko/2009020518 Ubuntu/9.04 (jaunty) Firefox/3.0.6';
  179. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  180. $this->assertEquals('Firefox', $extract['browser_name']);
  181. $this->assertEquals('3.0.6', $extract['browser_version']);
  182. $this->assertEquals('Linux i686', $extract['device_os_token']);
  183. $userAgent = 'Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9';
  184. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  185. $this->assertEquals('Firefox', $extract['browser_name']);
  186. $this->assertEquals('2.0.0.9', $extract['browser_version']);
  187. $this->assertEquals('Linux i686 (x86_64)', $extract['device_os_token']);
  188. $userAgent = 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.8) Gecko/20071019 Fedora/2.0.0.8-1.fc7 Firefox/2.0.0.8';
  189. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  190. $this->assertEquals('Firefox', $extract['browser_name']);
  191. $this->assertEquals('2.0.0.8', $extract['browser_version']);
  192. $this->assertEquals('Linux i686', $extract['device_os_token']);
  193. $userAgent = 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.1) Gecko/20060313 Debian/1.5.dfsg+1.5.0.1-4 Firefox/1.5.0.1';
  194. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  195. $this->assertEquals('Firefox', $extract['browser_name']);
  196. $this->assertEquals('1.5.0.1', $extract['browser_version']);
  197. $this->assertEquals('Linux i686', $extract['device_os_token']);
  198. }
  199. public function testUserAgentMozilla()
  200. {
  201. $userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; it; rv:2.0b4) Gecko/20100818';
  202. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  203. $this->assertEquals('Mozilla', $extract['browser_name']);
  204. $this->assertEquals('2.0b4', $extract['browser_version']);
  205. $userAgent = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en; rv:1.8.1.4pre) Gecko/20070521 Camino/1.6a1pre';
  206. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  207. $this->assertEquals('Camino', $extract['browser_name']);
  208. $this->assertEquals('1.6a1pre', $extract['browser_version']);
  209. $userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.0.7) Gecko/2009021910 MEGAUPLOAD 1.0';
  210. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  211. $this->assertEquals('Mozilla', $extract['browser_name']);
  212. $this->assertEquals('1.9.0.7', $extract['browser_version']);
  213. $userAgent = 'Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.6) Gecko/2009020911';
  214. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  215. $this->assertEquals('Mozilla', $extract['browser_name']);
  216. $this->assertEquals('1.9.0.6', $extract['browser_version']);
  217. $userAgent = 'Mozilla/5.001 (X11; U; Linux i686; rv:1.8.1.6; de-ch) Gecko/25250101 (ubuntu-feisty)';
  218. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  219. $this->assertEquals('Mozilla', $extract['browser_name']);
  220. $this->assertEquals('1.8.1.6', $extract['browser_version']);
  221. $userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.18) Gecko/20081029';
  222. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  223. $this->assertEquals('Mozilla', $extract['browser_name']);
  224. $this->assertEquals('1.8.1.18', $extract['browser_version']);
  225. $userAgent = 'Mozilla/5.0 (X11; U; Linux i586; de-AT; rv:1.4) Gecko/20030908 Debian/1.4-4';
  226. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  227. $this->assertEquals('Mozilla', $extract['browser_name']);
  228. $this->assertEquals('1.4', $extract['browser_version']);
  229. }
  230. public function testUserAgentChrome()
  231. {
  232. $userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.4 (KHTML, like Gecko) Chrome/6.0.481.0 Safari/534.4';
  233. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  234. $this->assertEquals('AppleWebKit', $extract['browser_engine']);
  235. $this->assertEquals('Chrome', $extract['browser_name']);
  236. $this->assertEquals('6.0.481.0', $extract['browser_version']);
  237. $this->assertEquals('Windows Server 2003', $extract['device_os_name']);
  238. $userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.514.0 Safari/534.7';
  239. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  240. $this->assertEquals('AppleWebKit', $extract['browser_engine']);
  241. $this->assertEquals('Chrome', $extract['browser_name']);
  242. $this->assertEquals('7.0.514.0', $extract['browser_version']);
  243. $this->assertEquals('Windows XP', $extract['device_os_name']);
  244. $userAgent = 'Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.1 (KHTML, like Gecko) Chrome/6.0.416.0 Safari/534.1';
  245. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  246. $this->assertEquals('AppleWebKit', $extract['browser_engine']);
  247. $this->assertEquals('Chrome', $extract['browser_name']);
  248. $this->assertEquals('6.0.416.0', $extract['browser_version']);
  249. $this->assertEquals('Linux i686', $extract['device_os_token']);
  250. }
  251. public function testUserAgentNetscape()
  252. {
  253. $userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9pre) Gecko/20071102 Firefox/2.0.0.9 Navigator/9.0.0.3';
  254. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  255. $this->assertEquals('Gecko', $extract['browser_engine']);
  256. $this->assertEquals('Netscape', $extract['browser_name']);
  257. $this->assertEquals('9.0.0.3', $extract['browser_version']);
  258. $this->assertEquals('Windows XP', $extract['device_os_name']);
  259. $userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.2) Gecko/20050208 Netscape/7.20';
  260. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  261. $this->assertEquals('Gecko', $extract['browser_engine']);
  262. $this->assertEquals('Netscape', $extract['browser_name']);
  263. $this->assertEquals('7.20', $extract['browser_version']);
  264. $this->assertEquals('Windows 2000', $extract['device_os_name']);
  265. $userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 5.0; fr-FR; rv:0.9.4) Gecko/20011128 Netscape6/6.2.1';
  266. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  267. $this->assertEquals('Gecko', $extract['browser_engine']);
  268. $this->assertEquals('Netscape', $extract['browser_name']);
  269. $this->assertEquals('6.2.1', $extract['browser_version']);
  270. $this->assertEquals('Windows 2000', $extract['device_os_name']);
  271. $userAgent = 'Mozilla/4.79 [en] (X11; U; SunOS 5.7 sun4u)';
  272. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  273. $this->assertEquals('Netscape', $extract['browser_name']);
  274. $this->assertEquals('4.79', $extract['browser_version']);
  275. $this->assertEquals('SunOS 5.7 sun4u', $extract['device_os_token']);
  276. $userAgent = 'Mozilla/4.04 [fr] (Macintosh; I; PPC, Nav)';
  277. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  278. $this->assertEquals('Netscape', $extract['browser_name']);
  279. $this->assertEquals('4.04', $extract['browser_version']);
  280. $this->assertEquals('Macintosh', $extract['compatibility_flag']);
  281. }
  282. public function testUserAgentOpera()
  283. {
  284. $userAgent = 'Opera/9.99 (Windows NT 5.1; U; pl) Presto/9.9.9';
  285. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  286. $this->assertEquals('Presto', $extract['browser_engine']);
  287. $this->assertEquals('Opera', $extract['browser_name']);
  288. $this->assertEquals('9.99', $extract['browser_version']);
  289. $userAgent = 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (Windows; U; Windows NT 5.1; en) AppleWebKit/886; U; en) Presto/2.4.15';
  290. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  291. $this->assertEquals('Presto', $extract['browser_engine']);
  292. $this->assertEquals('opera mini', strtolower($extract['browser_name']));
  293. $userAgent = 'Opera/9.70 (Linux ppc64 ; U; en) Presto/2.2.1';
  294. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  295. $this->assertEquals('Presto', $extract['browser_engine']);
  296. $this->assertEquals('Opera', $extract['browser_name']);
  297. $this->assertEquals('9.70', $extract['browser_version']);
  298. $userAgent = 'Mozilla/5.0 (Windows NT 5.1; U; en-GB; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.61';
  299. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  300. $this->assertEquals('Gecko', $extract['browser_engine']);
  301. $this->assertEquals('Opera', $extract['browser_name']);
  302. $this->assertEquals('9.61', $extract['browser_version']);
  303. $userAgent = 'Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux x86_64; en) Opera 9.60';
  304. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  305. $this->assertEquals('MSIE', $extract['browser_engine']);
  306. $this->assertEquals('Opera', $extract['browser_name']);
  307. $this->assertEquals('9.60', $extract['browser_version']);
  308. $userAgent = 'Opera/9.52 (Windows NT 6.0; U; Opera/9.52 (X11; Linux x86_64; U); en)';
  309. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  310. $this->assertEquals('Opera', $extract['browser_name']);
  311. $this->assertEquals('9.52', $extract['browser_version']);
  312. $userAgent = 'Opera/9.20 (Windows NT 6.0; U; de)';
  313. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  314. $this->assertEquals('Opera', $extract['browser_name']);
  315. $this->assertEquals('9.20', $extract['browser_version']);
  316. $userAgent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.54';
  317. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  318. $this->assertEquals('MSIE', $extract['browser_engine']);
  319. $this->assertEquals('Opera', $extract['browser_name']);
  320. $this->assertEquals('8.54', $extract['browser_version']);
  321. $userAgent = 'Opera/9.80 (Windows NT 5.1; U; zh-cn) Presto/2.2.15 Version/10.00';
  322. $extract = Zend_Http_UserAgent_Desktop::extractFromUserAgent($userAgent);
  323. $this->assertEquals('Presto', $extract['browser_engine']);
  324. $this->assertEquals('Opera', $extract['browser_name']);
  325. $this->assertEquals('10.00', $extract['browser_version']);
  326. }
  327. /**
  328. * examples from http://en.wikipedia.org/wiki/List_of_user_agents_for_mobile_phones
  329. */
  330. public function testMatchMobile()
  331. {
  332. $userAgent = 'Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleW1ebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A102 Safari/419.3';
  333. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  334. $userAgent = '8500: HTC-8500/1.2 Mozilla/4.0 (compatible; MSIE 5.5; Windows CE; PPC; 240x320) ';
  335. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  336. $userAgent = '8500: HTC-8500/1.2 Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.6) UP.Link/6.3.1.17.0 ';
  337. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  338. $userAgent = 'Alcatel OT-708: Alcatel-OT-708/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 ObigoInternetBrowser/Q03C ';
  339. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  340. $userAgent = 'Android SDK 1.5r3: Mozilla/5.0 (Linux; U; Android 1.5; de-; sdk Build/CUPCAKE) AppleWebkit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1 ';
  341. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  342. $userAgent = 'Apple iPad: Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B367 Safari/531.21.10 ';
  343. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  344. $userAgent = 'Apple iPhone OS 4: Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7 ';
  345. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  346. $userAgent = 'Apple iPhone: Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/1A542a Safari/419.3 ';
  347. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  348. $userAgent = 'BlackBerry 7100i: BlackBerry7100i/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/103 ';
  349. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  350. $userAgent = 'BlackBerry 7130e: BlackBerry7130e/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/104 ';
  351. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  352. $userAgent = 'BlackBerry 7230: BlackBerry7230/3.7.0 ';
  353. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  354. $userAgent = 'BlackBerry 7250: BlackBerry7250/4.0.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  355. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  356. $userAgent = 'BlackBerry 7520: BlackBerry7520/4.0.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  357. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  358. $userAgent = 'BlackBerry 7730: BlackBerry7730/3.7.0 ';
  359. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  360. $userAgent = 'BlackBerry 8100: Mozilla/4.0 BlackBerry8100/4.2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/100 ';
  361. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  362. $userAgent = 'BlackBerry 8130: BlackBerry8130/4.3.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/109 ';
  363. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  364. $userAgent = 'BlackBerry 8310: BlackBerry8310/4.2.2 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/121 ';
  365. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  366. $userAgent = 'BlackBerry 8320: BlackBerry8320/4.3.1 Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  367. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  368. $userAgent = 'BlackBerry 8700: BlackBerry8700/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/100 ';
  369. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  370. $userAgent = 'BlackBerry 8703e: BlackBerry8703e/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/105 ';
  371. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  372. $userAgent = 'BlackBerry 8820: BlackBerry8820/4.2.2 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/102 ';
  373. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  374. $userAgent = 'BlackBerry 8830: BlackBerry8830/4.2.2 Profile/MIDP-2.0 Configuration/CLOC-1.1 VendorID/105 ';
  375. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  376. $userAgent = 'BlackBerry 8900: BlackBerry8900/4.5.1.231 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/100 ';
  377. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  378. $userAgent = 'BlackBerry 9000: BlackBerry9000/4.6.0.65 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/102 ';
  379. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  380. $userAgent = 'BlackBerry 9530: BlackBerry9530/4.7.0.167 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/102 UP.Link/6.3.1.20.0';
  381. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  382. $userAgent = 'BlackBerry 9630 Tour BlackBerry9630/4.7.1.40 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/104 ';
  383. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  384. $userAgent = 'BlackBerry 9700 Bold: BlackBerry9700/5.0.0.423 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/100 ';
  385. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  386. $userAgent = 'BlackBerry 9800 Torch: Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en) AppleWebKit/534.1+ (KHTML, Like Gecko) Version/6.0.0.141 Mobile Safari/534.1 ';
  387. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  388. $userAgent = 'BlackBerry9530/5.0.0.328 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/105 ';
  389. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  390. $userAgent = 'Desire: Mozilla/5.0 (Linux; U; Android 2.1-update1; fr-fr; desire_A8181 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 ';
  391. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  392. $userAgent = 'EF81: SIE-EF81/58 UP.Browser/7.0.0.1.181 (GUI) MMP/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  393. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  394. $userAgent = 'Espresso: Mozilla/5.0 (Linux; U; Android 2.1-update1; en-us; T-Mobile_Espresso Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 ';
  395. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  396. $userAgent = 'EVO 4G: Mozilla/5.0 (Linux; U; Android 2.1-update1; en-us; Sprint APA9292KT Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) ';
  397. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  398. $userAgent = 'Hero: Mozilla/5.0 (Linux; U; Android 1.5; en-za; HTC Hero Build/CUPCAKE) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1 ';
  399. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  400. $userAgent = 'iPod Touch: Mozilla/5.0 (iPod; U; CPU iPhone OS 3_1_1 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Mobile/7C145 ';
  401. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  402. $userAgent = 'Legend: Mozilla/5.0 (Linux; U; Android 2.1; fr-fr; HTC Legend 1.32.163.1 Build/ERD79) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 ';
  403. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  404. $userAgent = 'LG B2050: LG-B2050 MIC/WAP2.0 MIDP-2.0/CLDC-1.0 ';
  405. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  406. $userAgent = 'LG C1100: LG-C1100 MIC/WAP2.0 MIDP-2.0/CLDC-1.0 ';
  407. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  408. $userAgent = 'LG CU720: LG-CU720/V1.0|Obigo/Q05A Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  409. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  410. $userAgent = 'LG CU8080: LGE-CU8080/1.0 UP.Browser/4.1.26l ';
  411. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  412. $userAgent = 'LG G1800: LG-G1800 MIC/WAP2.0 MIDP-2.0/CLDC-1.0 ';
  413. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  414. $userAgent = 'LG G210: LG-G210/SW100/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 ';
  415. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  416. $userAgent = 'LG G220: LG-G220/V100/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 ';
  417. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  418. $userAgent = 'LG G232: LG-G232/V100/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 ';
  419. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  420. $userAgent = 'LG G262: LG-G262/V100/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 ';
  421. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  422. $userAgent = 'LG G5200: LG-G5200 AU/4.10 ';
  423. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  424. $userAgent = 'LG G5600: LG-G5600 MIC/WAP2.0 MIDP-2.0/CLDC-1.0 ';
  425. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  426. $userAgent = 'LG G610: LG-G610 V100 AU/4.10 Profile/MIDP-1.0 Configuration/CLDC-1.0 ';
  427. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  428. $userAgent = 'LG G622: LG-G622/V100/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 ';
  429. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  430. $userAgent = 'LG G650: LG-G650 V100 AU/4.10 Profile/MIDP-1.0 Configuration/CLDC-1.0 ';
  431. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  432. $userAgent = 'LG G660: LG-G660/V100/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 ';
  433. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  434. $userAgent = 'LG G672: LG-G672/V100/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 ';
  435. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  436. $userAgent = 'LG G682: LG-G682 /V100/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 ';
  437. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  438. $userAgent = 'LG G688: LG-G688 MIC/V100/WAP2.0 MIDP-2.0/CLDC-1.0 ';
  439. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  440. $userAgent = 'LG G7000: LG-G7000 AU/4.10 ';
  441. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  442. $userAgent = 'LG G7050: LG-G7050 UP.Browser/6.2.2 (GUI) MMP/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 ';
  443. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  444. $userAgent = 'LG G7100: LG-G7100 AU/4.10 Profile/MIDP-1.0 Configuration/CLDC-1.0 ';
  445. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  446. $userAgent = 'LG G7200: LG-G7200 UP.Browser/6.2.2 (GUI) MMP/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 ';
  447. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  448. $userAgent = 'LG G822: LG-G822/SW100/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 ';
  449. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  450. $userAgent = 'LG G850: LG-G850 V100 UP.Browser/6.2.2 (GUI) MMP/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 ';
  451. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  452. $userAgent = 'LG G920: LG-G920/V122/WAP2.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 ';
  453. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  454. $userAgent = 'LG G922: LG-G922 Obigo/WAP2.0 MIDP-2.0/CLDC-1.1 ';
  455. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  456. $userAgent = 'LG G932: LG-G932 UP.Browser/6.2.3(GUI)MMP/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  457. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  458. $userAgent = 'LG KP500: LG-KP500 Teleca/WAP2.0 MIDP-2.0/CLDC-1.1 ';
  459. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  460. $userAgent = 'LG KS360: LG-KS360 Teleca/WAP2.0 MIDP-2.0/CLDC-1.1 ';
  461. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  462. $userAgent = 'LG L1100: LG-L1100 UP.Browser/6.2.2 (GUI) MMP/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 ';
  463. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  464. $userAgent = 'LG MX8700: LGE-MX8700/1.0 UP.Browser/6.2.3.2 (GUI) MMP/2.0 ';
  465. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  466. $userAgent = 'LG T5100: LG-T5100 UP.Browser/6.2.3 (GUI) MMP/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 ';
  467. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  468. $userAgent = 'LG U8120: LG/U8120/v1.0 ';
  469. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  470. $userAgent = 'LG U8130: LG/U8130/v1.0 ';
  471. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  472. $userAgent = 'LG U8138: LG/U8138/v2.0 ';
  473. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  474. $userAgent = 'LG U8180: LG/U8180/v1.0 ';
  475. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  476. $userAgent = 'LG U880: LG/U880/v1.0 ';
  477. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  478. $userAgent = 'LG VX9100: LGE-VX9100/1.0 UP.Browser/6.2.3.2 (GUI) MMP/2.0 ';
  479. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  480. $userAgent = 'Magic: Mozilla/5.0 (Linux; U; Android 1.5; en-dk; HTC Magic Build/CUPCAKE) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1 ';
  481. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  482. $userAgent = 'Motorola CLIQ: Mozilla/5.0 (Linux; U; Android 1.5; en-us; MB200 Build/CUPCAKE) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mob ';
  483. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  484. $userAgent = 'Motorola Droid V2.01: Mozilla/5.0 (Linux; U; Android 2.0.1; en-us; Droid Build/ESD56) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 ';
  485. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  486. $userAgent = 'Motorola Droid X Mozilla/5.0 (Linux; U; Android 2.1-update1; en-us; DROIDX Build/VZW) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 480X854 motorola DROIDX ';
  487. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  488. $userAgent = 'Motorola E398: MOT-E398/0E.20.59R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0 ';
  489. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  490. $userAgent = 'Motorola EM30: MOT-EM30/R6716_G_71.01.24R Mozilla/5.0 (compatible; OSS/1.0; Chameleon; Linux) BER/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 [es-co] ';
  491. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  492. $userAgent = 'Motorola KRZR K1: MOT-K1/08.03.08R MIB/BER2.2 Profile/MIDP-2.0 Configuration/CLDC-1.1 EGE/1.0 ';
  493. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  494. $userAgent = 'Motorola Motoroi(XT720) V2.01: Mozilla/5.0 (Linux; U; Android 2.0.1; ko-kr; XT720 Build/STSKT_N_79.11.31R) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 ';
  495. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  496. $userAgent = 'Motorola Motoroi(XT720) V2.1-update1: Mozilla/5.0 (Linux; U; Android 2.1-update1; ko-kr; XT720 Build/STSKT_N_79.11.33R) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 ';
  497. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  498. $userAgent = 'Motorola RAZR V3: MOT-V3/0E.42.0ER MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0 ';
  499. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  500. $userAgent = 'Motorola RAZR V3r: MOT-V3r/08.BD.43R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  501. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  502. $userAgent = 'Motorola RAZR V3xx: MOT-RAZRV3xx/96.64.21P BER2.2 Mozilla/4.0 (compatible; MSIE 6.0; 11003002) Profile/MIDP-2.0 Configuration/CLDC-1.1 Opera 8.00 [en] UP.Link/6.3.0.0.0 ';
  503. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  504. $userAgent = 'Motorola RAZR2 V8: motorazrV8/R601_G_80.42.0FRP Mozilla/4.0 (compatible; MSIE 6.0 Linux; Motorola V8;nnn) Profile/MIDP-2.0 Configuration/CLDC-1.1 Opera 8.50[yy] ';
  505. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  506. $userAgent = 'Motorola RAZR2 V9: MOT-MOTORAZRV9/4 BER2.2 Mozilla/4.0 (compatible; MSIE 6.0; 14003181) Profile/MIDP-2.0 Configuration/CLDC-1.1 Op! era 8.00 [en] UP.Link/6.3.0.0.0 ';
  507. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  508. $userAgent = 'Motorola RAZR2 V9x: MOT-MOTORAZRV9x/9E.03.15R BER2.2 Mozilla/4.0 (compatible; MSIE 6.0; 13003337) Profile/MIDP-2.0 Configuration/CLDC-1.1 Opera 8.60 [en] UP.Link/6.3.0.0.0 ';
  509. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  510. $userAgent = 'Motorola ROKR E8: Mozilla/5.0 (compatible; OSS/1.0; Chameleon; Linux) MOT-E8/R6713_G_71.02.07R BER/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  511. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  512. $userAgent = 'Motorola ROKR Z6: MOTOROKR Z6/R60_G_80.xx.yyl Mozilla/4.0 (compatible; MSIE 6.0 Linux; MOTOROKRZ6;nnn) Profile/MIDP-2.0 Configuration/CLDC-1.1 Opera 8.50[yy] ';
  513. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  514. $userAgent = 'Motorola SLVR L6: MOT-L6/0A.52.2BR MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  515. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  516. $userAgent = 'Motorola SLVR L7: MOT-L7/NA.ACR_RB MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  517. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  518. $userAgent = 'Motorola U9: Mozilla/5.0 (compatible; OSS/1.0; Chameleon; Linux) MOT-U9/R6632_G_81.11.29R BER/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  519. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  520. $userAgent = 'Motorola Z9: MOT-MOTOZ9/9E.01.03R BER2.2 Mozilla/4.0 (compatible; MSIE 6.0; 11003002) Profile/MIDP-2.0 Configuration/CLDC-1.1 Opera 8.60 [en] UP.Link/6.3.0.0.0 ';
  521. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  522. $userAgent = 'Motorola ZN5: MOT-ZN5/R6637_G_81.03.05R Mozilla/4.0 (compatible; OSS/1.0; Linux MOTOZINE ZN5) Profile/MIDP-2.0 Configuration/CLDC-1.1 Symphony 1.0 ';
  523. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  524. $userAgent = 'Mozilla/5.0 (SymbianOS/9.1; U; en-us) AppleWebKit/413 (KHTML, like Gecko) Safari/413 es65';
  525. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  526. $userAgent = 'Nexus One: Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 ';
  527. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  528. $userAgent = 'Nokia 2610: Nokia2610/2.0 (07.04a) Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Link/6.3.1.20.0 ';
  529. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  530. $userAgent = 'Nokia 5300: Nokia5300/2.0 (05.51) Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  531. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  532. $userAgent = 'Nokia 5530: Mozilla/5.0 (SymbianOS/9.4; U; Series60/5.0 Nokia5530c-2/10.0.050; Profile MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) Safari/525 ';
  533. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  534. $userAgent = 'Nokia 5630: Mozilla/5.0 (SymbianOS/9.3; U; Series60/3.2 Nokia5630d-1/012.020; Profile MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/413 (KHTML, like Gecko) Safari/413 ';
  535. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  536. $userAgent = 'Nokia 5800: Mozilla/5.0 (SymbianOS/9.4; U; Series60/5.0 Nokia5800d-1/31.0.101; Profile MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/413 (KHTML, like Gecko) Safari/413 ';
  537. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  538. $userAgent = 'Nokia 6030: Nokia6030/2.0 (y3.44) Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  539. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  540. $userAgent = 'Nokia 6230i: Nokia6230i/2.0 (03.40) Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  541. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  542. $userAgent = 'Nokia 6280: Nokia6280/2.0 (03.60) Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  543. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  544. $userAgent = 'Nokia 6650: Nokia6650d-1bh/ATT.2.15 Mozilla/5.0 (SymbianOS/9.3; U; [en]; Series60/3.2; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/413 (KHTML, like Gecko) Safari/413 ';
  545. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  546. $userAgent = 'Nokia E51-1: Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE51-1/220.34.37; Profile/MIDP-2.0 Configuration/CLDC-1.1) AppleWebKit/413 (KHTML, like Gecko) Safari/413 ';
  547. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  548. $userAgent = 'Nokia E71x: NokiaE71x/ATT.03.11.1 Mozilla/5.0 SymbianOS/9.3; U; [en]; Series60/3.2; Profile/MIDP-2.1 Configuration/CLDC-1.1 AppleWebKit/413 KHTML, like Gecko) Safari/413 UP.Link/6.3.0.0.0 ';
  549. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  550. $userAgent = 'Nokia N70: NokiaN70-1/5.0616.2.0.3 Series60/2.8 Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  551. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  552. $userAgent = 'Nokia N75: NokiaN75-3/3.0 (1.0635.0.0.6); SymbianOS/9.1 Series60/3.0 Profile/MIDP-2.0 Configuration/CLDC-1.1) UP.Link/6.3.0.0 ';
  553. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  554. $userAgent = 'Nokia N78: Mozilla/5.0 (SymbianOS/9.3; U; Series60/3.2 NokiaN78-1/12.046; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/413 (KHTML, like Gecko) Safari/413 ';
  555. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  556. $userAgent = 'Nokia N80: NokiaN80-1/3.0(4.0632.0.10) Series60/3.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  557. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  558. $userAgent = 'Nokia N90: NokiaN90-1/5.0607.7.3 Series60/2.8 Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  559. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  560. $userAgent = 'Nokia N900: Mozilla/5.0 (X11; U; Linux armv7l; en-GB; rv:1.9.2b6pre) Gecko/20100318 Firefox/3.5 Maemo Browser 1.7.4.8 RX-51 N900 ';
  561. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  562. $userAgent = 'Nokia N95: Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN95/11.0.026; Profile MIDP-2.0 Configuration/CLDC-1.1) AppleWebKit/413 (KHTML, like Gecko) Safari/413 ';
  563. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  564. $userAgent = 'Nokia N97-3: Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-3/21.2.045; Profile/MIDP-2.1 Configuration/CLDC-1.1;) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.4 ';
  565. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  566. $userAgent = 'nokia_e65 (partial string)';
  567. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  568. $userAgent = 'Note that Nokia Symbian phones may have two different user-agent strings, one for the classical WAP like:';
  569. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  570. $userAgent = 'Opera Mini on Samsung Z720: Opera/9.50 (J2ME/MIDP; Opera Mini/4.1.11355/542; U; en) ';
  571. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  572. $userAgent = 'P3450: Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 6.12) PPC; 240x320; HTC P3450; OpVer 23.116.1.611 ';
  573. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  574. $userAgent = 'P3650: HTC_P3650 Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.6) ';
  575. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  576. $userAgent = 'Pixi: Mozilla/5.0 (webOS/Palm webOS 1.2.9; U; en-US) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/1.0 Safari/525.27.1 Pixi/1.0 ';
  577. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  578. $userAgent = 'Pre: Mozilla/5.0 (webOS/1.4.0; U; en-US) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Pre/1.0 ';
  579. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  580. $userAgent = 'S68: SIE-S68/36 UP.Browser/7.1.0.e.18 (GUI) MMP/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  581. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  582. $userAgent = 'S710: Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.6) SP; 240x320; HTC_S710/1.0 ... ';
  583. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  584. $userAgent = 'Samsung A737: SAMSUNG-SGH-A737/1.0 SHP/VPP/R5 NetFront/3.3 SMM-MMS/1.2.0 profile/MIDP-2.0 configuration/CLDC-1.1 UP.Link/6.3.0.0.0 ';
  585. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  586. $userAgent = 'Samsung A737: SAMSUNG-SGH-A737/UCGI3 SHP/VPP/R5 NetFront/3.4 SMM-MMS/1.2.0 profile/MIDP-2.0 configuration/CLDC-1.1 UP.Link/6.3.1.17.0 ';
  587. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  588. $userAgent = 'Samsung A767: SAMSUNG-SGH-A767/A767UCHG2 SHP/VPP/R5 NetFront/3.4 SMM-MMS/1.2.0 profile/MIDP-2.0 configuration/CLDC-1.1 UP.Link/6.3.0.0.0 ';
  589. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  590. $userAgent = 'Samsung A867: SAMSUNG-SGH-A867/A867UCHG5 SHP/VPP/R5 NetFront/3.4 SMM-MMS/1.2.0 profile/MIDP-2.0 configuration/CLDC-1.1 UP.Link/6.3.0.0.0 ';
  591. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  592. $userAgent = 'Samsung A877: SAMSUNG-SGH-A877/A877UCHK1 SHP/VPP/R5 NetFront/3.5 SMM-MMS/1.2.0 profile/MIDP-2.1 configuration/CLDC-1.1 UP.Link/6.3.0.0.0 ';
  593. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  594. $userAgent = 'Samsung Captivate (Galaxy for AT&T): Mozilla/5.0 (Linux; U; Android 2.1-update1; en-us; SAMSUNG-SGH-I897/I897UCJF6 Build/ECLAIR) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 ';
  595. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  596. $userAgent = 'Samsung D600: SAMSUNG-SGH-D600/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 ';
  597. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  598. $userAgent = 'Samsung GT-S5230: SAMSUNG-GT-S5230/S523MXEIL2 SHP/VPP/R5 Jasmine/1.0 Nextreaming SMM-MMS/1.2.0 profile/MIDP-2.1 configuration/CLDC-1.1 ';
  599. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  600. $userAgent = 'Samsung i617: SAMSUNG-SGH-I617/1.0 Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 6.12) UP.Link/6.3.0.0.0 ';
  601. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  602. $userAgent = 'Samsung i7500 Galaxy: Mozilla/5.0 (Linux; U; Android 1.5; de-de; Galaxy Build/CUPCAKE) AppleWebkit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1 ';
  603. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  604. $userAgent = 'Samsung i9000 aka Galaxy S : Mozilla/5.0 (Linux; U; Android 2.1-update1; fr-fr; GT-I9000 Build/ECLAIR) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 ';
  605. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  606. $userAgent = 'Samsung SGH-E250: SAMSUNG-SGH-E250/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 ';
  607. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  608. $userAgent = 'Samsung SGH-i900 Omnia: SAMSUNG-SGH-i900/1.0 Opera 9.5 ';
  609. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  610. $userAgent = 'Samsung SGH-i907: SAMSUNG-SGH-i907/UCHI5 Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.11) ';
  611. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  612. $userAgent = 'Samsung SGH-T919: SAMSUNG-SGH-T919/919UVHL3SHP/VPP/R5NetFront/3.5SMM-MMS/1.2.0profile/MIDP-2.1configuration/CLDC-1.1 ';
  613. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  614. $userAgent = 'Samsung SGH-U600: SEC-SGHU600/1.0 NetFront/3.2 Profile ';
  615. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  616. $userAgent = 'Samsung SGH-U900: SAMSUNG-SGH-U900-Vodafone/U900BUHD6 SHP/VPP/R5 NetFront/3.4 Qtv5.3 SMM-MMS/1.2.0 profile/MIDP-2.0 configuration/CLDC-1.1 ';
  617. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  618. $userAgent = 'Samsung Z720: SAMSUNG-SGH-Z720/1.0 SHP/VPR/R5 NetFront/3.3 SMM-MMS/1.2.0 profile/MIDP-2.0 configuration/CLDC-1.1 ';
  619. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  620. $userAgent = 'Smart: HTC_Smart_F3188 Mozilla/5.0 (like Gecko) Obigo/Q7 ';
  621. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  622. $userAgent = 'SonyEricsson C901: SonyEricssonC901/R1EA Browser/NetFront/3.4 Profile/MIDP-2.1 Configuration/CLDC-1.1 JavaPlatform/JP-8.4.2 ';
  623. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  624. $userAgent = 'SonyEricsson C905: SonyEricssonC905/R1FA Browser/NetFront/3.4 Profile/MIDP-2.1 Configuration/CLDC-1.1 JavaPlatform/JP-8.4.3 ';
  625. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  626. $userAgent = 'SonyEricsson C905a: SonyEricssonC905a/R1FA Browser/NetFront/3.4 Profile/MIDP-2.1 Configuration/CLDC-1.1 JavaPlatform/JP-8.4.3 ';
  627. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  628. $userAgent = 'SonyEricsson K510i: SonyEricssonK510i/R4CJ Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  629. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  630. $userAgent = 'SonyEricsson K550i: SonyEricssonK550i/R8BA Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  631. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  632. $userAgent = 'SonyEricsson K600i: SonyEricssonK600i/R2BA Browser/SEMC-Browser/4.2 Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  633. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  634. $userAgent = 'SonyEricsson K610i: SonyEricssonK610i/R1CB Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  635. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  636. $userAgent = 'SonyEricsson K630i: SonyEricssonK630i/R1CA Browser/NetFront/3.4 Profile/MIDP-2.1 Configuration/CLDC-1.1 ';
  637. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  638. $userAgent = 'SonyEricsson K700: SonyEricssonK700/R1A Profile/MIDP-1.0 MIDP-2.0 Configuration/CLDC-1.1 ';
  639. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  640. $userAgent = 'SonyEricsson K750i: SonyEricssonK750i/R1CA Browser/SEMC-Browser/4.2 Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  641. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  642. $userAgent = 'SonyEricsson K790i: SonyEricssonK790i/R8BF Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  643. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  644. $userAgent = 'SonyEricsson K800i: SonyEricssonK800i/R8BF Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  645. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  646. $userAgent = 'SonyEricsson W800i: SonyEricssonW800i/R1AA Browser/SEMC-Browser/4.2 Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  647. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  648. $userAgent = 'SonyEricsson W810i: SonyEricssonW810i/MIDP-2.0 Configuration/CLDC-1.1 ';
  649. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  650. $userAgent = 'SonyEricsson W900i: SonyEricssonW900i/R5AH Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1 ';
  651. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  652. $userAgent = 'SonyEricsson W995i: SonyEricssonW995/R1DB Browser/NetFront/3.4 Profile/MIDP-2.1 Configuration/CLDC-1.1 JavaPlatform/JP-8.4.1 ';
  653. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  654. $userAgent = 'SonyEricsson X10: Mozilla/5.0 (Linux; U; Android 1.6; es-es; SonyEricssonX10i Build/R1FA016) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1 ';
  655. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  656. $userAgent = 'SonyEricsson Z500a: SonyEricssonZ500a/R1A SEMC-Browser/4.0.1 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Link/6.3.1.20.0 ';
  657. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  658. $userAgent = 'Tattoo: Mozilla/5.0 (Linux; U; Android 1.6; en-us; HTC_TATTOO_A3288 Build/DRC79) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1 ';
  659. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  660. $userAgent = 'The string that is presented depends on the APN settings that are used for browsing (WAP/ISP). As the traditional browser string does not usually give any clues as to the type of device, the user-agent alone is not a guaranteed method of identifying Nokia devices. However, when the traditional browser user-agent is used, Nokia devices also provide the x-Device-User-Agent header, which contains the device specific user-agent.';
  661. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  662. $userAgent = 'Treo 650: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/hspr-H102; Blazer/4.0) 16;320x320 ';
  663. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  664. $userAgent = 'V8301: ZTE-V8301/MB6801_V1_Z1_VN_F1BPa101 Profile/MIDP-2.0 Configuration/CLDC-1.1 Obigo/Q03C ';
  665. $this->assertTrue(Zend_Http_UserAgent_Mobile::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  666. }
  667. public function testMatchBot()
  668. {
  669. $userAgent = 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)';
  670. $this->assertTrue(Zend_Http_UserAgent_Bot::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  671. $userAgent = 'Googlebot/2.1 (+http://www.googlebot.com/bot.html)';
  672. $this->assertTrue(Zend_Http_UserAgent_Bot::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  673. $userAgent = 'Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)';
  674. $this->assertTrue(Zend_Http_UserAgent_Bot::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  675. $userAgent = 'YahooSeeker/1.2 (compatible; Mozilla 4.0; MSIE 5.5; yahooseeker at yahoo-inc dot com ; http://help.yahoo.com/help/us/shop/merchant/)';
  676. $this->assertTrue(Zend_Http_UserAgent_Bot::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  677. $userAgent = 'Mozilla/4.0 compatible ZyBorg/1.0 (wn.zyborg@looksmart.net; http://www.WISEnutbot.com)';
  678. $this->assertTrue(Zend_Http_UserAgent_Bot::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  679. }
  680. public function testMatchChecker()
  681. {
  682. $userAgent = 'Mozilla/5.0 (compatible; AbiLogicBot/1.0; +http://www.abilogic.com/bot.html)';
  683. $this->assertTrue(Zend_Http_UserAgent_Checker::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  684. $userAgent = 'W3C-checklink/4.5 [4.160] libwww-perl/5.823';
  685. $this->assertTrue(Zend_Http_UserAgent_Checker::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  686. }
  687. public function testMatchConsole()
  688. {
  689. $userAgent = 'Mozilla/5.0 (PLAYSTATION 3; 1.10)';
  690. $this->assertTrue(Zend_Http_UserAgent_Console::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  691. $userAgent = 'Opera/9.30 (Nintendo Wii; U; ; 2071; Wii Shop Channel/1.0; en)';
  692. $this->assertTrue(Zend_Http_UserAgent_Console::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  693. }
  694. public function testMatchEmail()
  695. {
  696. $userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.1.9) Gecko/20100317 Lightning/1.0b1 Thunderbird/3.0.4';
  697. $this->assertTrue(Zend_Http_UserAgent_Email::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  698. }
  699. public function testMatchFeed()
  700. {
  701. $userAgent = 'Bloglines/3.0-rho (http://www.bloglines.com; 3 subscribers)';
  702. $this->assertTrue(Zend_Http_UserAgent_Feed::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  703. }
  704. public function testMatchOffline()
  705. {
  706. $userAgent = 'Offline Explorer/2.5';
  707. $this->assertTrue(Zend_Http_UserAgent_Offline::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  708. $userAgent = 'Wget/1.9.1';
  709. $this->assertTrue(Zend_Http_UserAgent_Offline::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  710. $userAgent = 'WebCopier v3.2a';
  711. $this->assertTrue(Zend_Http_UserAgent_Offline::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  712. }
  713. public function _testMatchProbe()
  714. {
  715. $this->markTestIncomplete();
  716. }
  717. public function _testMatchSpam()
  718. {
  719. $this->markTestIncomplete();
  720. }
  721. public function testMatchText()
  722. {
  723. $userAgent = 'Lynx/2.8.6rel.4 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.8k';
  724. $this->assertTrue(Zend_Http_UserAgent_Text::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  725. $userAgent = 'w3m/0.5.1+cvs-1.968';
  726. $this->assertTrue(Zend_Http_UserAgent_Text::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  727. }
  728. public function testMatchValidator()
  729. {
  730. $userAgent = 'CSE HTML Validator Lite Online (http://online.htmlvalidator.com/php/onlinevallite.php)';
  731. $this->assertTrue(Zend_Http_UserAgent_Validator::match($userAgent,array('HTTP_USER_AGENT'=>$userAgent)));
  732. }
  733. }