MFB: Tests for get_browser().

This commit is contained in:
Felix De Vliegher 2008-09-06 23:20:53 +00:00
parent 7a6170b389
commit 3d539dacd6
5 changed files with 19991 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,51 @@
<?php
/**
* Common browser names. Used with: get_browser()
*/
return array(
"Opera/7.11 (Windows NT 5.1; U) [en]",
"Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.0) Opera 7.02 Bork-edition [en]",
"Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 4.0) Opera 7.0 [en]",
"Mozilla/4.0 (compatible; MSIE 5.0; Windows 2000) Opera 6.0 [en]",
"Mozilla/4.0 (compatible; MSIE 5.0; Mac_PowerPC) Opera 5.0 [en]",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) Opera 8.60 [en]",
"Opera/9.00 (Windows NT 5.1; U; en)",
"Opera/9.26 (Macintosh; PPC Mac OS X; U; en)",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)",
"Mozilla/4.0 (compatible; MSIE 5.22; Mac_PowerPC)",
"Mozilla/4.0 (compatible; MSIE 5.0; Mac_PowerPC; e504460WanadooNL)",
"Mozilla/4.0 (Mozilla/4.0; MSIE 7.0; Windows NT 5.1; FDM; SV1; .NET CLR 3.0.04506.30)",
"Mozilla/4.0 (Mozilla/4.0; MSIE 7.0; Windows NT 5.1; FDM; SV1)",
"Mozilla/4.0 (compatible;MSIE 7.0;Windows NT 6.0)",
"Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/74 (KHTML, like Gecko) Safari/74",
"Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/51 (like Gecko) Safari/51",
"Mozilla/5.0 (Windows; U; Windows NT 6.0; en) AppleWebKit/522.11.3 (KHTML, like Gecko) Version/3.0 Safari/522.11.3",
"Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1C28 Safari/419.3",
"Mozilla/5.0 (iPod; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3A100a Safari/419.3",
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_4_11; ru-ru) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.1 Safari/525.18",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; en) AppleWebKit/526.9 (KHTML, like Gecko) Version/4.0dp1 Safari/526.8",
"Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en; rv:1.8.1.12) Gecko/20080206 Camino/1.5.5",
"Mozilla/5.0 (compatible; Konqueror/3.1; Linux; X11; i686)",
"Mozilla/5.0 (compatible; Konqueror/3.1; Linux 2.4.19-32mdkenterprise; X11; i686; ar, en_US)",
"Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4b) Gecko/20030504 Mozilla",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.2a) Gecko/20020910",
"Mozilla/5.0 (X11; U; Linux 2.4.3-20mdk i586; en-US; rv:0.9.1) Gecko/20010611",
"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.9) Gecko/20050711",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; cs; rv:1.9) Gecko/2008052906",
"Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:1.3a) Gecko/20021207 Phoenix/0.5",
"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4b) Gecko/20030516 Mozilla Firebird/0.6",
"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4a) Gecko/20030423 Firebird Browser/0.6",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040206 Firefox/0.8",
"Mozilla/5.0 (Windows 98; U; en; rv:1.8.0) Gecko/20060728 Firefox/1.5.0",
"Mozilla/5.0 (Macintosh; PPC Mac OS X; U; en; rv:1.8.0) Gecko/20060728 Firefox/1.5.0",
"Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.8.1.12) Gecko/20080210 Firefox/2.0.0.12",
"Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.1.12) Gecko/20080214 Firefox/2.0.0.12",
);

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,128 @@
--TEST--
Test get_browser() function : error functionality
--INI--
browscap=ext/standard/tests/misc/browscap.ini
unicode.runtime_encoding = utf-8
unicode.output_encoding = utf-8
--SKIPIF--
<?php
/**
* Basic test, it would be pretty much coincidence if there's
* a browscap.ini on another place that isn't valid.
*/
if(! is_readable( ini_get( 'browscap' ) ) ) {
die( 'skip: browscap.ini file ' . ini_get('browscap') . " not readable" );
}
?>
--FILE--
<?php
/* Prototype : mixed get_browser([string browser_name [, bool return_array]])
* Description: Get information about the capabilities of a browser.
* If browser_name is omitted or null, HTTP_USER_AGENT is used.
* Returns an object by default; if return_array is true, returns an array.
*
* Source code: ext/standard/browscap.c
* Alias to functions:
*/
$browsers = include dirname(__FILE__) . DIRECTORY_SEPARATOR . 'browsernames.php';
/* Needed for the unicode_decode() call later */
unicode_set_error_mode( TO_UNICODE, U_CONV_ERROR_ESCAPE_UNICODE );
echo "*** Testing get_browser() : error functionality ***\n";
/* Unknown browser uses defaults. */
$result = @get_browser( 'foobar', true );
foreach( $result as $k => $val ) {
$result[$k] = unicode_decode( $val, 'UTF-8' );
}
var_dump( $result );
/* More than expected arguments */
var_dump( get_browser( 'foobar', true, 15 ) );
/* Some wrong parameters, no HTTP_USER_AGENT set */
var_dump( get_browser( null, 'foobar' ) );
?>
===DONE===
--EXPECTF--
*** Testing get_browser() : error functionality ***
array(34) {
["browser_name_regex"]=>
unicode(12) "%XA7^.*$%XA7"
["browser_name_pattern"]=>
unicode(1) "*"
["browser"]=>
unicode(15) "Default Browser"
["version"]=>
unicode(1) "0"
["majorver"]=>
unicode(1) "0"
["minorver"]=>
unicode(1) "0"
["platform"]=>
unicode(7) "unknown"
["alpha"]=>
unicode(0) ""
["beta"]=>
unicode(0) ""
["win16"]=>
unicode(0) ""
["win32"]=>
unicode(0) ""
["win64"]=>
unicode(0) ""
["frames"]=>
unicode(1) "1"
["iframes"]=>
unicode(0) ""
["tables"]=>
unicode(1) "1"
["cookies"]=>
unicode(0) ""
["backgroundsounds"]=>
unicode(0) ""
["authenticodeupdate"]=>
unicode(1) "0"
["cdf"]=>
unicode(0) ""
["vbscript"]=>
unicode(0) ""
["javaapplets"]=>
unicode(0) ""
["javascript"]=>
unicode(0) ""
["activexcontrols"]=>
unicode(0) ""
["stripper"]=>
unicode(0) ""
["isbanned"]=>
unicode(0) ""
["wap"]=>
unicode(0) ""
["ismobiledevice"]=>
unicode(0) ""
["issyndicationreader"]=>
unicode(0) ""
["crawler"]=>
unicode(0) ""
["css"]=>
unicode(1) "0"
["cssversion"]=>
unicode(1) "0"
["supportscss"]=>
unicode(0) ""
["aol"]=>
unicode(0) ""
["aolversion"]=>
unicode(1) "0"
}
Warning: get_browser() expects at most 2 parameters, 3 given in %s on line %d
NULL
Warning: get_browser(): HTTP_USER_AGENT variable is not set, cannot determine user agent name in %s on line %d
bool(false)
===DONE===

File diff suppressed because it is too large Load Diff