Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/UserSettings')
-rw-r--r--plugins/UserSettings/API.php5
-rw-r--r--plugins/UserSettings/Controller.php2
-rw-r--r--plugins/UserSettings/UserSettings.php39
-rw-r--r--plugins/UserSettings/functions.php35
-rw-r--r--plugins/UserSettings/images/browsers/AB.gifbin1065 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/browsers/AN.gifbin568 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/browsers/BE.gifbin1074 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/browsers/BX.gifbin522 -> 55 bytes
-rw-r--r--plugins/UserSettings/images/browsers/CO.gifbin1043 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/browsers/CS.gifbin549 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/browsers/DI.gifbin1092 -> 55 bytes
-rw-r--r--plugins/UserSettings/images/browsers/EL.gifbin90 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/browsers/EP.gifbin317 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/browsers/FD.gifbin1051 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/browsers/FE.gifbin550 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/browsers/FL.gifbin1039 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/browsers/GE.gifbin999 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/browsers/HA.gifbin1009 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/browsers/KP.gifbin1040 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/browsers/KZ.gifbin1063 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/browsers/MI.gifbin1028 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/browsers/WO.gifbin1065 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/browsers/WP.gifbin983 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/os/AIX.gifbin925 -> 330 bytes
-rw-r--r--plugins/UserSettings/images/os/AMI.gifbin1060 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/os/BEO.gifbin1030 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/os/BSD.gifbin1016 -> 1084 bytes
-rw-r--r--plugins/UserSettings/images/os/DFB.gifbin338 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/os/DSI.gifbin1090 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/os/HPX.gifbin245 -> 1115 bytes
-rw-r--r--plugins/UserSettings/images/os/IPA.gifbin582 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/os/IPH.gifbin582 -> 569 bytes
-rw-r--r--plugins/UserSettings/images/os/IRI.gifbin179 -> 1113 bytes
-rw-r--r--plugins/UserSettings/images/os/LIN.gifbin170 -> 1084 bytes
-rw-r--r--plugins/UserSettings/images/os/MAC.gifbin171 -> 1083 bytes
-rw-r--r--plugins/UserSettings/images/os/NBS.gifbin168 -> 1084 bytes
-rw-r--r--plugins/UserSettings/images/os/NDS.gifbin1091 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/os/OBS.gifbin572 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/os/OS2.gifbin214 -> 1068 bytes
-rw-r--r--plugins/UserSettings/images/os/POS.gifbin1067 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/os/SOS.gifbin1077 -> 1026 bytes
-rw-r--r--plugins/UserSettings/images/os/SYL.gifbin1019 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/os/T64.gifbin235 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/os/UNK.gifbin61 -> 975 bytes
-rw-r--r--plugins/UserSettings/images/os/W2K.gifbin239 -> 1100 bytes
-rw-r--r--plugins/UserSettings/images/os/W95.gifbin239 -> 1100 bytes
-rw-r--r--plugins/UserSettings/images/os/W98.gifbin239 -> 1100 bytes
-rw-r--r--plugins/UserSettings/images/os/WI7.gifbin245 -> 1118 bytes
-rw-r--r--plugins/UserSettings/images/os/WME.gifbin239 -> 1100 bytes
-rw-r--r--plugins/UserSettings/images/os/WNT.gifbin239 -> 1100 bytes
-rw-r--r--plugins/UserSettings/images/os/WOS.gifbin70 -> 0 bytes
-rw-r--r--plugins/UserSettings/images/os/WS3.gifbin245 -> 1118 bytes
-rw-r--r--plugins/UserSettings/images/os/WVI.gifbin245 -> 1118 bytes
-rw-r--r--plugins/UserSettings/images/os/WXP.gifbin245 -> 1118 bytes
-rw-r--r--plugins/UserSettings/images/plugins/cookie.gifbin211 -> 351 bytes
-rw-r--r--plugins/UserSettings/images/plugins/director.gifbin887 -> 887 bytes
-rw-r--r--plugins/UserSettings/images/plugins/flash.gifbin1018 -> 957 bytes
-rw-r--r--plugins/UserSettings/images/plugins/gears.gifbin950 -> 550 bytes
-rw-r--r--plugins/UserSettings/images/plugins/java.gifbin961 -> 706 bytes
-rw-r--r--plugins/UserSettings/images/plugins/pdf.gifbin1018 -> 951 bytes
-rw-r--r--plugins/UserSettings/images/plugins/quicktime.gifbin999 -> 846 bytes
-rw-r--r--plugins/UserSettings/images/plugins/realplayer.gifbin1026 -> 661 bytes
-rw-r--r--plugins/UserSettings/images/plugins/silverlight.gifbin1007 -> 1007 bytes
-rw-r--r--plugins/UserSettings/images/plugins/windowsmedia.gifbin1026 -> 703 bytes
-rw-r--r--plugins/UserSettings/images/screens/dual.gifbin1081 -> 1089 bytes
-rw-r--r--plugins/UserSettings/images/screens/normal.gifbin1088 -> 1096 bytes
-rw-r--r--plugins/UserSettings/images/screens/wide.gifbin1020 -> 1028 bytes
-rw-r--r--plugins/UserSettings/templates/index.tpl2
-rw-r--r--plugins/UserSettings/tests/UserSettings.test.php800
69 files changed, 46 insertions, 837 deletions
diff --git a/plugins/UserSettings/API.php b/plugins/UserSettings/API.php
index aab8f3416a..8e3b65c734 100644
--- a/plugins/UserSettings/API.php
+++ b/plugins/UserSettings/API.php
@@ -10,6 +10,9 @@
* @package Piwik_UserSettings
*/
+// no direct access
+defined('PIWIK_INCLUDE_PATH') or die;
+
/**
* @see plugins/UserSettings/functions.php
*/
@@ -39,10 +42,8 @@ class Piwik_UserSettings_API
$dataTable = $archive->getDataTable($name);
$dataTable->filter('Sort', array(Piwik_Archive::INDEX_NB_VISITS));
$dataTable->queueFilter('ReplaceColumnNames');
- $dataTable->queueFilter('ReplaceSummaryRowLabel');
return $dataTable;
}
-
public function getResolution( $idSite, $period, $date )
{
$dataTable = $this->getDataTable('UserSettings_resolution', $idSite, $period, $date);
diff --git a/plugins/UserSettings/Controller.php b/plugins/UserSettings/Controller.php
index ac3a72291e..367ef275d2 100644
--- a/plugins/UserSettings/Controller.php
+++ b/plugins/UserSettings/Controller.php
@@ -58,7 +58,7 @@ class Piwik_UserSettings_Controller extends Piwik_Controller
__FUNCTION__,
'UserSettings.getOS'
);
- $view->setColumnTranslation('label', Piwik_Translate('UserSettings_ColumnOperatingSystem'));
+ $view->setColumnTranslation('label', Piwik_Translate('UserSettings_ColumnOperatinsSystem'));
return $this->renderView($view, $fetch);
}
diff --git a/plugins/UserSettings/UserSettings.php b/plugins/UserSettings/UserSettings.php
index bb0c10dddf..66243c7ce6 100644
--- a/plugins/UserSettings/UserSettings.php
+++ b/plugins/UserSettings/UserSettings.php
@@ -19,21 +19,29 @@ class Piwik_UserSettings extends Piwik_Plugin
public function getInformation()
{
$info = array(
- 'description' => Piwik_Translate('UserSettings_PluginDescription'),
+ 'name' => 'Visitors Settings',
+ 'description' => 'Reports various User Settings: Browser, Browser Family, Operating System, Plugins, Resolution, Global Settings.',
'author' => 'Piwik',
- 'author_homepage' => 'http://piwik.org/',
- 'version' => Piwik_Version::VERSION,
+ 'homepage' => 'http://piwik.org/',
+ 'version' => '0.1',
);
return $info;
}
+ // source: http://en.wikipedia.org/wiki/List_of_web_browsers
+ static public $browserType = array(
+ "ie" => array("IE"),
+ "gecko" => array("NS", "PX", "FF", "FB", "CA", "GA", "KM", "MO", "SM"),
+ "khtml" => array("SF", "KO", "OW", "CH", "AR"),
+ "opera" => array("OP")
+ );
+
static public $browserType_display = array(
- 'ie' => 'Trident (IE)',
- 'gecko' => 'Gecko (Firefox)',
- 'khtml' => 'KHTML (Konqueror)',
- 'webkit' => 'WebKit (Safari)',
- 'opera' => 'Presto (Opera)',
+ 'ie' => 'Internet Explorer',
+ 'gecko' => 'Gecko (Mozilla, Netscape)',
+ 'khtml' => 'KHTML (Safari, Chrome)',
+ 'opera' => 'Opera',
);
function getListHooksRegistered()
@@ -60,14 +68,12 @@ class Piwik_UserSettings extends Piwik_Plugin
function addMenu()
{
- Piwik_AddMenu('General_Visitors', 'UserSettings_SubmenuSettings', array('module' => 'UserSettings', 'action' => 'index'));
+ Piwik_AddMenu('General_Visitors', 'UserSettings_SubmenuSettings', array('module' => 'UserSettings'));
}
function archiveDay( $notification )
{
require_once PIWIK_INCLUDE_PATH . '/plugins/UserSettings/functions.php';
- $maximumRowsInDataTable = Zend_Registry::get('config')->General->datatable_archiving_maximum_rows_standard;
- $columnToSortByBeforeTruncation = Piwik_Archive::INDEX_NB_VISITS;
$archiveProcessing = $notification->getNotificationObject();
$this->archiveProcessing = $archiveProcessing;
@@ -76,21 +82,21 @@ class Piwik_UserSettings extends Piwik_Plugin
$labelSQL = "CONCAT(config_os, ';', config_browser_name, ';', config_resolution)";
$interestByConfiguration = $archiveProcessing->getArrayInterestForLabel($labelSQL);
$tableConfiguration = $archiveProcessing->getDataTableFromArray($interestByConfiguration);
- $archiveProcessing->insertBlobRecord($recordName, $tableConfiguration->getSerialized($maximumRowsInDataTable, null, $columnToSortByBeforeTruncation));
+ $archiveProcessing->insertBlobRecord($recordName, $tableConfiguration->getSerialized());
destroy($tableConfiguration);
$recordName = 'UserSettings_os';
$labelSQL = "config_os";
$interestByOs = $archiveProcessing->getArrayInterestForLabel($labelSQL);
$tableOs = $archiveProcessing->getDataTableFromArray($interestByOs);
- $archiveProcessing->insertBlobRecord($recordName, $tableOs->getSerialized($maximumRowsInDataTable, null, $columnToSortByBeforeTruncation));
+ $archiveProcessing->insertBlobRecord($recordName, $tableOs->getSerialized());
destroy($tableOs);
$recordName = 'UserSettings_browser';
$labelSQL = "CONCAT(config_browser_name, ';', config_browser_version)";
$interestByBrowser = $archiveProcessing->getArrayInterestForLabel($labelSQL);
$tableBrowser = $archiveProcessing->getDataTableFromArray($interestByBrowser);
- $archiveProcessing->insertBlobRecord($recordName, $tableBrowser->getSerialized($maximumRowsInDataTable, null, $columnToSortByBeforeTruncation));
+ $archiveProcessing->insertBlobRecord($recordName, $tableBrowser->getSerialized());
$recordName = 'UserSettings_browserType';
$tableBrowserType = $this->getTableBrowserByType($tableBrowser);
@@ -103,7 +109,7 @@ class Piwik_UserSettings extends Piwik_Plugin
$interestByResolution = $archiveProcessing->getArrayInterestForLabel($labelSQL);
$tableResolution = $archiveProcessing->getDataTableFromArray($interestByResolution);
$tableResolution->filter('ColumnCallbackDeleteRow', array('label', 'Piwik_UserSettings_keepStrlenGreater'));
- $archiveProcessing->insertBlobRecord($recordName, $tableResolution->getSerialized($maximumRowsInDataTable, null, $columnToSortByBeforeTruncation));
+ $archiveProcessing->insertBlobRecord($recordName, $tableResolution->getSerialized());
$recordName = 'UserSettings_wideScreen';
$tableWideScreen = $this->getTableWideScreen($tableResolution);
@@ -120,7 +126,6 @@ class Piwik_UserSettings extends Piwik_Plugin
function archivePeriod( $notification )
{
$archiveProcessing = $notification->getNotificationObject();
- $maximumRowsInDataTable = Zend_Registry::get('config')->General->datatable_archiving_maximum_rows_standard;
$dataTableToSum = array(
'UserSettings_configuration',
@@ -132,7 +137,7 @@ class Piwik_UserSettings extends Piwik_Plugin
'UserSettings_plugin',
);
- $archiveProcessing->archiveDataTable($dataTableToSum, null, $maximumRowsInDataTable);
+ $archiveProcessing->archiveDataTable($dataTableToSum);
}
protected function getTableWideScreen($tableResolution)
diff --git a/plugins/UserSettings/functions.php b/plugins/UserSettings/functions.php
index c2aebe7b64..95d19e4817 100644
--- a/plugins/UserSettings/functions.php
+++ b/plugins/UserSettings/functions.php
@@ -10,6 +10,9 @@
* @package Piwik_UserSettings
*/
+// no direct access
+defined('PIWIK_INCLUDE_PATH') or die;
+
/**
* @see libs/UserAgentParser/UserAgentParser.php
*/
@@ -29,7 +32,7 @@ function Piwik_getOSLabel($osId)
}
if( $osId == 'UNK')
{
- return html_entity_decode(Piwik_Translate('General_Unknown'), ENT_COMPAT, 'UTF-8');
+ return Piwik_Translate('General_Unknown');
}
return $osId;
}
@@ -43,7 +46,7 @@ function Piwik_getOSShortLabel($osId)
}
if( $osId == 'UNK')
{
- return html_entity_decode(Piwik_Translate('General_Unknown'), ENT_COMPAT, 'UTF-8');
+ return Piwik_Translate('General_Unknown');
}
return $osId;
}
@@ -56,7 +59,7 @@ function Piwik_getBrowserTypeLabel($oldLabel)
}
if($oldLabel == 'unknown')
{
- return html_entity_decode(Piwik_Translate('General_Unknown'), ENT_COMPAT, 'UTF-8');
+ return Piwik_Translate('General_Unknown');
}
return $oldLabel;
}
@@ -75,7 +78,7 @@ function Piwik_getConfigurationLabel($str)
$browser = UserAgentParser::getBrowserNameFromId($name);
if($browser === false)
{
- $browser = html_entity_decode(Piwik_Translate('General_Unknown'), ENT_COMPAT, 'UTF-8');
+ $browser = Piwik_Translate('General_Unknown');
}
$resolution = $values[2];
return $os . " / " . $browser . " / " . $resolution;
@@ -92,7 +95,7 @@ function Piwik_getBrowserLabel($oldLabel)
}
if( $browserId == 'UNK')
{
- return html_entity_decode(Piwik_Translate('General_Unknown'), ENT_COMPAT, 'UTF-8');
+ return Piwik_Translate('General_Unknown');
}
return $oldLabel;
}
@@ -108,7 +111,7 @@ function Piwik_getBrowserShortLabel($oldLabel)
}
if( $browserId == 'UNK')
{
- return html_entity_decode(Piwik_Translate('General_Unknown'), ENT_COMPAT, 'UTF-8');
+ return Piwik_Translate('General_Unknown');
}
return $oldLabel;
}
@@ -126,19 +129,11 @@ function Piwik_getBrowserVersion($str)
function Piwik_getBrowsersLogo($label)
{
$id = Piwik_getBrowserId($label);
- // For aggregated row 'Others'
- if(empty($id)) {
- $id = 'UNK';
- }
return 'plugins/UserSettings/images/browsers/'. $id . '.gif';
}
function Piwik_getOSLogo($label)
{
- // For aggregated row 'Others'
- if(empty($label)) {
- $label = 'UNK';
- }
$path = 'plugins/UserSettings/images/os/'. $label . '.gif';
return $path;
}
@@ -176,6 +171,14 @@ function Piwik_getScreenTypeFromResolution($resolution)
function Piwik_getBrowserFamily($browserLabel)
{
- $familyNameToUse = UserAgentParser::getBrowserFamilyFromId(substr($browserLabel, 0, 2));
+ $familyNameToUse = 'unknown';
+ foreach(Piwik_UserSettings::$browserType as $familyName => $aBrowsers)
+ {
+ if(in_array(substr($browserLabel, 0, 2), $aBrowsers))
+ {
+ $familyNameToUse = $familyName;
+ break;
+ }
+ }
return $familyNameToUse;
-}
+}
diff --git a/plugins/UserSettings/images/browsers/AB.gif b/plugins/UserSettings/images/browsers/AB.gif
deleted file mode 100644
index cd651565b1..0000000000
--- a/plugins/UserSettings/images/browsers/AB.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/browsers/AN.gif b/plugins/UserSettings/images/browsers/AN.gif
deleted file mode 100644
index 9c69167f2f..0000000000
--- a/plugins/UserSettings/images/browsers/AN.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/browsers/BE.gif b/plugins/UserSettings/images/browsers/BE.gif
deleted file mode 100644
index 2e952f5c2c..0000000000
--- a/plugins/UserSettings/images/browsers/BE.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/browsers/BX.gif b/plugins/UserSettings/images/browsers/BX.gif
index a34ba48408..73053607b7 100644
--- a/plugins/UserSettings/images/browsers/BX.gif
+++ b/plugins/UserSettings/images/browsers/BX.gif
Binary files differ
diff --git a/plugins/UserSettings/images/browsers/CO.gif b/plugins/UserSettings/images/browsers/CO.gif
deleted file mode 100644
index 462c7f6e6c..0000000000
--- a/plugins/UserSettings/images/browsers/CO.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/browsers/CS.gif b/plugins/UserSettings/images/browsers/CS.gif
deleted file mode 100644
index 9078936525..0000000000
--- a/plugins/UserSettings/images/browsers/CS.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/browsers/DI.gif b/plugins/UserSettings/images/browsers/DI.gif
index 0ae8bbcdb0..73053607b7 100644
--- a/plugins/UserSettings/images/browsers/DI.gif
+++ b/plugins/UserSettings/images/browsers/DI.gif
Binary files differ
diff --git a/plugins/UserSettings/images/browsers/EL.gif b/plugins/UserSettings/images/browsers/EL.gif
deleted file mode 100644
index 92de33e4ab..0000000000
--- a/plugins/UserSettings/images/browsers/EL.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/browsers/EP.gif b/plugins/UserSettings/images/browsers/EP.gif
deleted file mode 100644
index 647095ec78..0000000000
--- a/plugins/UserSettings/images/browsers/EP.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/browsers/FD.gif b/plugins/UserSettings/images/browsers/FD.gif
deleted file mode 100644
index e39e41ca22..0000000000
--- a/plugins/UserSettings/images/browsers/FD.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/browsers/FE.gif b/plugins/UserSettings/images/browsers/FE.gif
deleted file mode 100644
index d9c6c9edac..0000000000
--- a/plugins/UserSettings/images/browsers/FE.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/browsers/FL.gif b/plugins/UserSettings/images/browsers/FL.gif
deleted file mode 100644
index c52999e4ac..0000000000
--- a/plugins/UserSettings/images/browsers/FL.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/browsers/GE.gif b/plugins/UserSettings/images/browsers/GE.gif
deleted file mode 100644
index 3401b729d3..0000000000
--- a/plugins/UserSettings/images/browsers/GE.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/browsers/HA.gif b/plugins/UserSettings/images/browsers/HA.gif
deleted file mode 100644
index 7c87ca4f36..0000000000
--- a/plugins/UserSettings/images/browsers/HA.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/browsers/KP.gif b/plugins/UserSettings/images/browsers/KP.gif
deleted file mode 100644
index 58258f12fc..0000000000
--- a/plugins/UserSettings/images/browsers/KP.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/browsers/KZ.gif b/plugins/UserSettings/images/browsers/KZ.gif
deleted file mode 100644
index 3042cc80f5..0000000000
--- a/plugins/UserSettings/images/browsers/KZ.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/browsers/MI.gif b/plugins/UserSettings/images/browsers/MI.gif
deleted file mode 100644
index 0688fffc23..0000000000
--- a/plugins/UserSettings/images/browsers/MI.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/browsers/WO.gif b/plugins/UserSettings/images/browsers/WO.gif
deleted file mode 100644
index fd0debbd8c..0000000000
--- a/plugins/UserSettings/images/browsers/WO.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/browsers/WP.gif b/plugins/UserSettings/images/browsers/WP.gif
deleted file mode 100644
index 22cd2a5adf..0000000000
--- a/plugins/UserSettings/images/browsers/WP.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/os/AIX.gif b/plugins/UserSettings/images/os/AIX.gif
index 9a663f2be6..90581d1377 100644
--- a/plugins/UserSettings/images/os/AIX.gif
+++ b/plugins/UserSettings/images/os/AIX.gif
Binary files differ
diff --git a/plugins/UserSettings/images/os/AMI.gif b/plugins/UserSettings/images/os/AMI.gif
deleted file mode 100644
index 2b28a93a64..0000000000
--- a/plugins/UserSettings/images/os/AMI.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/os/BEO.gif b/plugins/UserSettings/images/os/BEO.gif
deleted file mode 100644
index f38d8b90e3..0000000000
--- a/plugins/UserSettings/images/os/BEO.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/os/BSD.gif b/plugins/UserSettings/images/os/BSD.gif
index 326d33d8de..c09e375398 100644
--- a/plugins/UserSettings/images/os/BSD.gif
+++ b/plugins/UserSettings/images/os/BSD.gif
Binary files differ
diff --git a/plugins/UserSettings/images/os/DFB.gif b/plugins/UserSettings/images/os/DFB.gif
deleted file mode 100644
index 6935e91a80..0000000000
--- a/plugins/UserSettings/images/os/DFB.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/os/DSI.gif b/plugins/UserSettings/images/os/DSI.gif
deleted file mode 100644
index 6fb563dfa5..0000000000
--- a/plugins/UserSettings/images/os/DSI.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/os/HPX.gif b/plugins/UserSettings/images/os/HPX.gif
index 062ec181a9..37a836180b 100644
--- a/plugins/UserSettings/images/os/HPX.gif
+++ b/plugins/UserSettings/images/os/HPX.gif
Binary files differ
diff --git a/plugins/UserSettings/images/os/IPA.gif b/plugins/UserSettings/images/os/IPA.gif
deleted file mode 100644
index 4e9113fac4..0000000000
--- a/plugins/UserSettings/images/os/IPA.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/os/IPH.gif b/plugins/UserSettings/images/os/IPH.gif
index 82e583558d..dae428be44 100644
--- a/plugins/UserSettings/images/os/IPH.gif
+++ b/plugins/UserSettings/images/os/IPH.gif
Binary files differ
diff --git a/plugins/UserSettings/images/os/IRI.gif b/plugins/UserSettings/images/os/IRI.gif
index 65dd44a9aa..f615f25cf0 100644
--- a/plugins/UserSettings/images/os/IRI.gif
+++ b/plugins/UserSettings/images/os/IRI.gif
Binary files differ
diff --git a/plugins/UserSettings/images/os/LIN.gif b/plugins/UserSettings/images/os/LIN.gif
index 12e3888175..2ef898de04 100644
--- a/plugins/UserSettings/images/os/LIN.gif
+++ b/plugins/UserSettings/images/os/LIN.gif
Binary files differ
diff --git a/plugins/UserSettings/images/os/MAC.gif b/plugins/UserSettings/images/os/MAC.gif
index 73b2d9cac5..d6af9e1d57 100644
--- a/plugins/UserSettings/images/os/MAC.gif
+++ b/plugins/UserSettings/images/os/MAC.gif
Binary files differ
diff --git a/plugins/UserSettings/images/os/NBS.gif b/plugins/UserSettings/images/os/NBS.gif
index 33e6749cf0..c09e375398 100644
--- a/plugins/UserSettings/images/os/NBS.gif
+++ b/plugins/UserSettings/images/os/NBS.gif
Binary files differ
diff --git a/plugins/UserSettings/images/os/NDS.gif b/plugins/UserSettings/images/os/NDS.gif
deleted file mode 100644
index fe731351e4..0000000000
--- a/plugins/UserSettings/images/os/NDS.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/os/OBS.gif b/plugins/UserSettings/images/os/OBS.gif
deleted file mode 100644
index 01c1b07a98..0000000000
--- a/plugins/UserSettings/images/os/OBS.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/os/OS2.gif b/plugins/UserSettings/images/os/OS2.gif
index 4ec088d1b9..90fbdab26c 100644
--- a/plugins/UserSettings/images/os/OS2.gif
+++ b/plugins/UserSettings/images/os/OS2.gif
Binary files differ
diff --git a/plugins/UserSettings/images/os/POS.gif b/plugins/UserSettings/images/os/POS.gif
deleted file mode 100644
index 49e089ef24..0000000000
--- a/plugins/UserSettings/images/os/POS.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/os/SOS.gif b/plugins/UserSettings/images/os/SOS.gif
index 9d17c20246..f4a97e87f2 100644
--- a/plugins/UserSettings/images/os/SOS.gif
+++ b/plugins/UserSettings/images/os/SOS.gif
Binary files differ
diff --git a/plugins/UserSettings/images/os/SYL.gif b/plugins/UserSettings/images/os/SYL.gif
deleted file mode 100644
index c6e1f25687..0000000000
--- a/plugins/UserSettings/images/os/SYL.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/os/T64.gif b/plugins/UserSettings/images/os/T64.gif
deleted file mode 100644
index 3255046dc6..0000000000
--- a/plugins/UserSettings/images/os/T64.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/os/UNK.gif b/plugins/UserSettings/images/os/UNK.gif
index ec7aa05e07..6de56a753a 100644
--- a/plugins/UserSettings/images/os/UNK.gif
+++ b/plugins/UserSettings/images/os/UNK.gif
Binary files differ
diff --git a/plugins/UserSettings/images/os/W2K.gif b/plugins/UserSettings/images/os/W2K.gif
index 404eeabc72..19d75be8c8 100644
--- a/plugins/UserSettings/images/os/W2K.gif
+++ b/plugins/UserSettings/images/os/W2K.gif
Binary files differ
diff --git a/plugins/UserSettings/images/os/W95.gif b/plugins/UserSettings/images/os/W95.gif
index 404eeabc72..19d75be8c8 100644
--- a/plugins/UserSettings/images/os/W95.gif
+++ b/plugins/UserSettings/images/os/W95.gif
Binary files differ
diff --git a/plugins/UserSettings/images/os/W98.gif b/plugins/UserSettings/images/os/W98.gif
index 404eeabc72..19d75be8c8 100644
--- a/plugins/UserSettings/images/os/W98.gif
+++ b/plugins/UserSettings/images/os/W98.gif
Binary files differ
diff --git a/plugins/UserSettings/images/os/WI7.gif b/plugins/UserSettings/images/os/WI7.gif
index d782a6d42d..a91e528b5c 100644
--- a/plugins/UserSettings/images/os/WI7.gif
+++ b/plugins/UserSettings/images/os/WI7.gif
Binary files differ
diff --git a/plugins/UserSettings/images/os/WME.gif b/plugins/UserSettings/images/os/WME.gif
index 404eeabc72..19d75be8c8 100644
--- a/plugins/UserSettings/images/os/WME.gif
+++ b/plugins/UserSettings/images/os/WME.gif
Binary files differ
diff --git a/plugins/UserSettings/images/os/WNT.gif b/plugins/UserSettings/images/os/WNT.gif
index 404eeabc72..19d75be8c8 100644
--- a/plugins/UserSettings/images/os/WNT.gif
+++ b/plugins/UserSettings/images/os/WNT.gif
Binary files differ
diff --git a/plugins/UserSettings/images/os/WOS.gif b/plugins/UserSettings/images/os/WOS.gif
deleted file mode 100644
index 60dcc17d6a..0000000000
--- a/plugins/UserSettings/images/os/WOS.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/UserSettings/images/os/WS3.gif b/plugins/UserSettings/images/os/WS3.gif
index d782a6d42d..a91e528b5c 100644
--- a/plugins/UserSettings/images/os/WS3.gif
+++ b/plugins/UserSettings/images/os/WS3.gif
Binary files differ
diff --git a/plugins/UserSettings/images/os/WVI.gif b/plugins/UserSettings/images/os/WVI.gif
index d782a6d42d..a91e528b5c 100644
--- a/plugins/UserSettings/images/os/WVI.gif
+++ b/plugins/UserSettings/images/os/WVI.gif
Binary files differ
diff --git a/plugins/UserSettings/images/os/WXP.gif b/plugins/UserSettings/images/os/WXP.gif
index d782a6d42d..a91e528b5c 100644
--- a/plugins/UserSettings/images/os/WXP.gif
+++ b/plugins/UserSettings/images/os/WXP.gif
Binary files differ
diff --git a/plugins/UserSettings/images/plugins/cookie.gif b/plugins/UserSettings/images/plugins/cookie.gif
index 7e5f561527..1a518e122c 100644
--- a/plugins/UserSettings/images/plugins/cookie.gif
+++ b/plugins/UserSettings/images/plugins/cookie.gif
Binary files differ
diff --git a/plugins/UserSettings/images/plugins/director.gif b/plugins/UserSettings/images/plugins/director.gif
index d40a752044..4d6de84f5e 100644
--- a/plugins/UserSettings/images/plugins/director.gif
+++ b/plugins/UserSettings/images/plugins/director.gif
Binary files differ
diff --git a/plugins/UserSettings/images/plugins/flash.gif b/plugins/UserSettings/images/plugins/flash.gif
index d144c55b8d..1388f67da0 100644
--- a/plugins/UserSettings/images/plugins/flash.gif
+++ b/plugins/UserSettings/images/plugins/flash.gif
Binary files differ
diff --git a/plugins/UserSettings/images/plugins/gears.gif b/plugins/UserSettings/images/plugins/gears.gif
index ea5f0dd3f8..d721ed7840 100644
--- a/plugins/UserSettings/images/plugins/gears.gif
+++ b/plugins/UserSettings/images/plugins/gears.gif
Binary files differ
diff --git a/plugins/UserSettings/images/plugins/java.gif b/plugins/UserSettings/images/plugins/java.gif
index 0aae25f993..2525255334 100644
--- a/plugins/UserSettings/images/plugins/java.gif
+++ b/plugins/UserSettings/images/plugins/java.gif
Binary files differ
diff --git a/plugins/UserSettings/images/plugins/pdf.gif b/plugins/UserSettings/images/plugins/pdf.gif
index ac908f408f..41ae83e801 100644
--- a/plugins/UserSettings/images/plugins/pdf.gif
+++ b/plugins/UserSettings/images/plugins/pdf.gif
Binary files differ
diff --git a/plugins/UserSettings/images/plugins/quicktime.gif b/plugins/UserSettings/images/plugins/quicktime.gif
index 4822161249..144f9f60a3 100644
--- a/plugins/UserSettings/images/plugins/quicktime.gif
+++ b/plugins/UserSettings/images/plugins/quicktime.gif
Binary files differ
diff --git a/plugins/UserSettings/images/plugins/realplayer.gif b/plugins/UserSettings/images/plugins/realplayer.gif
index 6078f1a427..1e32d9632f 100644
--- a/plugins/UserSettings/images/plugins/realplayer.gif
+++ b/plugins/UserSettings/images/plugins/realplayer.gif
Binary files differ
diff --git a/plugins/UserSettings/images/plugins/silverlight.gif b/plugins/UserSettings/images/plugins/silverlight.gif
index 227f132254..d25ee0a23c 100644
--- a/plugins/UserSettings/images/plugins/silverlight.gif
+++ b/plugins/UserSettings/images/plugins/silverlight.gif
Binary files differ
diff --git a/plugins/UserSettings/images/plugins/windowsmedia.gif b/plugins/UserSettings/images/plugins/windowsmedia.gif
index 04f816250d..99a4318f29 100644
--- a/plugins/UserSettings/images/plugins/windowsmedia.gif
+++ b/plugins/UserSettings/images/plugins/windowsmedia.gif
Binary files differ
diff --git a/plugins/UserSettings/images/screens/dual.gif b/plugins/UserSettings/images/screens/dual.gif
index 5cdbbae22e..c54b5473c1 100644
--- a/plugins/UserSettings/images/screens/dual.gif
+++ b/plugins/UserSettings/images/screens/dual.gif
Binary files differ
diff --git a/plugins/UserSettings/images/screens/normal.gif b/plugins/UserSettings/images/screens/normal.gif
index 1c5c39976e..7ffecc304c 100644
--- a/plugins/UserSettings/images/screens/normal.gif
+++ b/plugins/UserSettings/images/screens/normal.gif
Binary files differ
diff --git a/plugins/UserSettings/images/screens/wide.gif b/plugins/UserSettings/images/screens/wide.gif
index 6b726d55c1..36ff560b50 100644
--- a/plugins/UserSettings/images/screens/wide.gif
+++ b/plugins/UserSettings/images/screens/wide.gif
Binary files differ
diff --git a/plugins/UserSettings/templates/index.tpl b/plugins/UserSettings/templates/index.tpl
index 35c0e4b51a..91400a6e7c 100644
--- a/plugins/UserSettings/templates/index.tpl
+++ b/plugins/UserSettings/templates/index.tpl
@@ -13,7 +13,7 @@
<h2>{'UserSettings_Configurations'|translate}</h2>
{$dataTableConfiguration}
- <h2>{'UserSettings_OperatingSystems'|translate}</h2>
+ <h2>{'UserSettings_OperatinsSystems'|translate}</h2>
{$dataTableOS}
<h2>{'UserSettings_Resolutions'|translate}</h2>
diff --git a/plugins/UserSettings/tests/UserSettings.test.php b/plugins/UserSettings/tests/UserSettings.test.php
deleted file mode 100644
index e9e8f00378..0000000000
--- a/plugins/UserSettings/tests/UserSettings.test.php
+++ /dev/null
@@ -1,800 +0,0 @@
-<?php
-if(!defined("PIWIK_PATH_TEST_TO_ROOT")) {
- define('PIWIK_PATH_TEST_TO_ROOT', getcwd().'/../../..');
-}
-if(!defined('PIWIK_CONFIG_TEST_INCLUDED'))
-{
- require_once PIWIK_PATH_TEST_TO_ROOT . "/tests/config_test.php";
-}
-
-if(!class_exists('Piwik_UserSettings', false))
-{
- require_once 'UserSettings/UserSettings.php';
-}
-require 'UserSettings/functions.php';
-
-class Test_Piwik_UserSettings extends UnitTestCase
-{
- // User agent strings and expected parser results
- protected $userAgents = array(
- // 'User Agent String' => array(
- // array( browser_id, name, short_name, version, major_number, minor_number, family ),
- // array( os_id, name, short_name )),
-
- // ABrowse
- 'Mozilla/5.0 (compatible; U; ABrowse 0.6; Syllable) AppleWebKit/420+ (KHTML, like Gecko)' => array(
- array('AB', 'ABrowse', 'ABrowse', '0.6', '0', '6', 'webkit'),
- array('SYL', 'Syllable', 'Syllable')),
- 'Mozilla/5.0 (compatible; ABrowse 0.4; Syllable)' => array(
- array('AB', 'ABrowse', 'ABrowse', '0.4', '0', '4', 'webkit'),
- array('SYL', 'Syllable', 'Syllable')),
-
- // Acoo Browser (treat as IE)
- 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6; Acoo Browser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)' => array(
- array('IE', 'Internet Explorer', 'IE', '8.0', '8', '0', 'ie'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Acoo Browser; .NET CLR 2.0.50727; .NET CLR 1.1.4322)' => array(
- array('IE', 'Internet Explorer', 'IE', '7.0', '7', '0', 'ie'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Acoo Browser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)' => array(
- array('IE', 'Internet Explorer', 'IE', '6.0', '6', '0', 'ie'),
- array('WXP', 'Windows XP', 'Win XP')),
-
- // Amaya
- 'amaya/9.52 libwww/5.4.0' => array(
- array('AM', 'Amaya', 'Amaya', '9.52', '9', '52', 'unknown'),
- false),
-
- // AmigaVoyager
- 'AmigaVoyager/3.2 (AmigaOS/MC680x0)' => array(
- array('AV', 'AmigaVoyager', 'AmigaVoyager', '3.2', '3', '2', 'unknown'),
- array('AMI', 'AmigaOS', 'AmigaOS')),
- 'AmigaVoyager/2.95 (compatible; MC680x0; AmigaOS; SV1)' => array(
- array('AV', 'AmigaVoyager', 'AmigaVoyager', '2.95', '2', '95', 'unknown'),
- array('AMI', 'AmigaOS', 'AmigaOS')),
- 'AmigaVoyager/2.95 (compatible; MC680x0; AmigaOS)' => array(
- array('AV', 'AmigaVoyager', 'AmigaVoyager', '2.95', '2', '95', 'unknown'),
- array('AMI', 'AmigaOS', 'AmigaOS')),
-
- // Android
- 'Mozilla/5.0 (Linux; U; Android 1.1; en-us; dream) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2' => array(
- array('AN', 'Android', 'Android', '3.0', '3', '0', 'webkit'),
- array('AND', 'Android', 'Android')),
-
- // AOL / America Online Browser (treat as IE)
- 'Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.5; AOLBuild 4337.43; Windows NT 5.1; .NET CLR 1.1.4322)' => array(
- array('IE', 'Internet Explorer', 'IE', '7.0', '7', '0', 'ie'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.1; AOLBuild 4334.5009; Windows NT 5.1; GTB5; .NET CLR 1.1.4322)' => array(
- array('IE', 'Internet Explorer', 'IE', '7.0', '7', '0', 'ie'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.0; Windows NT 5.1; InfoPath.1)' => array(
- array('IE', 'Internet Explorer', 'IE', '7.0', '7', '0', 'ie'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/4.0 (compatible; MSIE 6.0; AOL 8.0; Windows NT 5.1; SV1)' => array(
- array('IE', 'Internet Explorer', 'IE', '6.0', '6', '0', 'ie'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/4.0 (compatible; MSIE 7.0; AOL 7.0; Windows NT 5.1)' => array(
- array('IE', 'Internet Explorer', 'IE', '7.0', '7', '0', 'ie'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/4.0 (compatible; MSIE 5.5; AOL 6.0; Windows 98; Win 9x 4.90)' => array(
- array('IE', 'Internet Explorer', 'IE', '5.5', '5', '5', 'ie'),
- array('WME', 'Windows Me', 'Win Me')),
- 'Mozilla/4.0 (compatible; MSIE 5.5; AOL 5.0; Windows NT 5.0)' => array(
- array('IE', 'Internet Explorer', 'IE', '5.5', '5', '5', 'ie'),
- array('W2K', 'Windows 2000', 'Win 2000')),
- 'Mozilla/4.0 (compatible; MSIE 4.01; AOL 4.0; Windows 95)' => array(
- array('IE', 'Internet Explorer', 'IE', '4.01', '4', '01', 'ie'),
- array('W95', 'Windows 95', 'Win 95')),
- 'Mozilla/4.0 (compatible; MSIE 7.0; America Online Browser 1.1; Windows NT 5.1; (R1 1.5); .NET CLR 2.0.50727; InfoPath.1)' => array(
- array('IE', 'Internet Explorer', 'IE', '7.0', '7', '0', 'ie'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/4.0 (compatible; MSIE 6.0; America Online Browser 1.1; Windows 98)' => array(
- array('IE', 'Internet Explorer', 'IE', '6.0', '6', '0', 'ie'),
- array('W98', 'Windows 98', 'Win 98')),
-
- // Arora
- 'Mozilla/5.0 (X11; U; Linux; de-DE) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.8.0' => array(
- array('AR', 'Arora', 'Arora', '0.8', '0', '8', 'webkit'),
- array('LIN', 'Linux', 'Linux')),
- 'Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6' => array(
- array('AR', 'Arora', 'Arora', '0.6', '0', '6', 'webkit'),
- array('LIN', 'Linux', 'Linux')),
- 'Mozilla/5.0 (Windows; U; Windows NT 5.2; pt-BR) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.4 (Change: )' => array(
- array('AR', 'Arora', 'Arora', '0.4', '0', '4', 'webkit'),
- array('WS3', 'Windows Server 2003 / XP x64', 'Win S2003')),
- 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)' => array(
- array('AR', 'Arora', 'Arora', '0.3', '0', '3', 'webkit'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.2 (Change: 189 35c14e0)' => array(
- array('AR', 'Arora', 'Arora', '0.2', '0', '2', 'webkit'),
- array('LIN', 'Linux', 'Linux')),
-
- // Avant (treat as IE)
- 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Avant Browser; .NET CLR 2.0.50727; MAXTHON 2.0)' => array(
- array('IE', 'Internet Explorer', 'IE', '7.0', '7', '0', 'ie'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; Avant Browser; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)' => array(
- array('IE', 'Internet Explorer', 'IE', '8.0', '8', '0', 'ie'),
- array('WI7', 'Windows 7', 'Win 7')),
-
- // AWeb
- 'Amiga-AWeb/3.5.07 beta' => array(
- array('AW', 'Amiga AWeb', 'AWeb', '3.5', '3', '5', 'unknown'),
- array('AMI', 'AmigaOS', 'AmigaOS')),
- 'Mozilla/6.0; (Spoofed by Amiga-AWeb/3.5.07 beta)' => array(
- array('AW', 'Amiga AWeb', 'AWeb', '3.5', '3', '5', 'unknown'),
- array('AMI', 'AmigaOS', 'AmigaOS')),
- 'MSIE/6.0; (Spoofed by Amiga-AWeb/3.4APL)' => array(
- array('AW', 'Amiga AWeb', 'AWeb', '3.4', '3', '4', 'unknown'),
- array('AMI', 'AmigaOS', 'AmigaOS')),
-
- // Beonex
- 'Mozilla/5.0 (Windows; U; WinNT; en; rv:1.0.2) Gecko/20030311 Beonex/0.8.2-stable' => array(
- array('BE', 'Beonex', 'Beonex', '0.8', '0', '8', 'unknown'),
- array('WNT', 'Windows NT', 'Win NT')),
- 'Mozilla/5.0 (Windows; U; WinNT; en; Preview) Gecko/20020603 Beonex/0.8-stable' => array(
- array('BE', 'Beonex', 'Beonex', '0.8', '0', '8', 'unknown'),
- array('WNT', 'Windows NT', 'Win NT')),
-
- // BlackBerry
- 'BlackBerry8700/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1' => array(
- array('BB', 'BlackBerry', 'BlackBerry', '8700.0', '8700', '0', 'unknown'),
- array('BLB', 'BlackBerry', 'BlackBerry')),
-
- // BrowseX
- 'Mozilla/4.61 [en] (X11; U; ) - BrowseX (2.0.0 Windows)' => array(
- array('BX', 'BrowseX', 'BrowseX', '2.0', '2', '0', 'unknown'),
- false),
-
- // Camino (formerly known as Chimera; not to be confused with another browser also named Chimera)
- 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en; rv:1.9.0.8pre) Gecko/2009022800 Camino/2.0b3pre' => array(
- array('CA', 'Camino', 'Camino', '2.0', '2', '0', 'gecko'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en; rv:1.9.0.10pre) Gecko/2009041800 Camino/2.0b3pre (like Firefox/3.0.10pre)' => array(
- array('CA', 'Camino', 'Camino', '2.0', '2', '0', 'gecko'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en; rv:1.8.1.4pre) Gecko/20070511 Camino/1.6pre' => array(
- array('CA', 'Camino', 'Camino', '1.6', '1', '6', 'gecko'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en; rv:1.8.1.6) Gecko/20070809 Firefox/2.0.0.6 Camino/1.5.1' => array(
- array('CA', 'Camino', 'Camino', '1.5', '1', '5', 'gecko'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.0.1) Gecko/20030306 Camino/0.7' => array(
- array('CA', 'Camino', 'Camino', '0.7', '0', '7', 'gecko'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; pl-PL; rv:1.0.1) Gecko/20021111 Chimera/0.6' => array(
- array('CA', 'Camino', 'Camino', '0.6', '0', '6', 'gecko'),
- array('MAC', 'Mac OS', 'Mac OS')),
-
- // Cheshire
- 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/418.8 (KHTML, like Gecko, Safari) Cheshire/1.0.UNOFFICIAL' => array(
- array('CS', 'Cheshire', 'Cheshire', '1.0', '1', '0', 'webkit'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/419 (KHTML, like Gecko, Safari/419.3) Cheshire/1.0.ALPHA' => array(
- array('CS', 'Cheshire', 'Cheshire', '1.0', '1', '0', 'webkit'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/418.9 (KHTML, like Safari) Cheshire/1.0.ALPHA' => array(
- array('CS', 'Cheshire', 'Cheshire', '1.0', '1', '0', 'webkit'),
- array('MAC', 'Mac OS', 'Mac OS')),
-
- // Chrome / Chromium
- 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/532.9 (KHTML, like Gecko) Chrome/5.0.310.0 Safari/532.9' => array(
- array('CH', 'Chrome', 'Chrome', '5.0', '5', '0', 'webkit'),
- array('WS3', 'Windows Server 2003 / XP x64', 'Win S2003')),
- 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.48 Safari/525.19' => array(
- array('CH', 'Chrome', 'Chrome', '1.0', '1', '0', 'webkit'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/5.0 (Linux; U; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13' => array(
- array('CH', 'Chrome', 'Chrome', '0.2', '0', '2', 'webkit'),
- array('LIN', 'Linux', 'Linux')),
-
- // ChromePlus (treat as Chrome)
- 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.2 (KHTML, like Gecko) ChromePlus/4.0.222.3 Chrome/4.0.222.3 Safari/532.2' => array(
- array('CH', 'Chrome', 'Chrome', '4.0', '4', '0', 'webkit'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.28.3 (KHTML, like Gecko) Version/3.2.3 ChromePlus/4.0.222.3 Chrome/4.0.222.3 Safari/525.28.3' => array(
- array('CH', 'Chrome', 'Chrome', '3.2', '3', '2', 'webkit'),
- array('WXP', 'Windows XP', 'Win XP')),
-
- // CometBird
- 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2009011615 Firefox/3.0.5 CometBird/3.0.5' => array(
- array('CO', 'CometBird', 'CometBird', '3.0', '3', '0', 'gecko'),
- array('WXP', 'Windows XP', 'Win XP')),
-
- // Crazy Browser (treat as IE)
- 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 1.1.4322; Crazy Browser 3.0.0 Beta2)' => array(
- array('IE', 'Internet Explorer', 'IE', '7.0', '7', '0', 'ie'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Avant Browser; .NET CLR 2.0.50727; .NET CLR 3.0.04506.590; .NET CLR 3.5.20706; Crazy Browser 2.0.1)' => array(
- array('IE', 'Internet Explorer', 'IE', '7.0', '7', '0', 'ie'),
- array('WXP', 'Windows XP', 'Win XP')),
-
- // Dillo
- 'Dillo/2.0' => array(
- array('DI', 'Dillo', 'Dillo', '2.0', '2', '0', 'unknown'),
- false),
- 'Dillo/0.6.4' => array(
- array('DI', 'Dillo', 'Dillo', '0.6', '0', '6', 'unknown'),
- false),
-
- // ELinks
- 'ELinks/0.12~pre2.dfsg0-1ubuntu1-lite (textmode; Debian; Linux 2.6.32-4-jolicloud i686; 143x37-2)' => array(
- array('EL', 'ELinks', 'ELinks', '0.12', '0', '12', 'unknown'),
- array('LIN', 'Linux', 'Linux')),
- 'ELinks/0.12pre5.GIT (textmode; CYGWIN_NT-6.1 1.7.1(0.218/5/3) i686; 80x24-2)' => array(
- array('EL', 'ELinks', 'ELinks', '0.12', '0', '12', 'unknown'),
- array('WI7', 'Windows 7', 'Win 7')),
- 'ELinks (0.4.3; NetBSD 3.0.2_PATCH sparc64; 141x19)' => array(
- array('EL', 'ELinks', 'ELinks', '0.4', '0', '4', 'unknown'),
- array('NBS', 'NetBSD', 'NetBSD')),
-
- // Epiphany
- 'Mozilla/5.0 (X11; U; Linux i686; en-us) AppleWebKit/531.2+ (KHTML, like Gecko) Safari/531.2+ Epiphany/2.29.5' => array(
- array('EP', 'Epiphany', 'Epiphany', '2.29', '2', '29', 'webkit'),
- array('LIN', 'Linux', 'Linux')),
- 'Mozilla/5.0 (X11; U; Linux i686; en; rv:1.9.0.11) Gecko/20080528 Epiphany/2.22 Firefox/3.0' => array(
- // technically, this should be 'gecko' but UserAgentParser only supports one browserType (family) per browser
- array('EP', 'Epiphany', 'Epiphany', '2.22', '2', '22', 'webkit'),
- array('LIN', 'Linux', 'Linux')),
-
- // Fennec
- 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2a1pre) Gecko/20090626 Fennec/1.0b2' => array(
- array('FE', 'Fennec', 'Fennec', '1.0', '1', '0', 'gecko'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/5.0 (X11; U; Linux armv6l; en-US; rv:1.9.1b1pre) Gecko/20081005220218 Gecko/2008052201 Fennec/0.9pre' => array(
- array('FE', 'Fennec', 'Fennec', '0.9', '0', '9', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
- 'Mozilla/5.0 (X11; U; Linux armv6l; en-US; rv:1.9.1a1pre) Gecko/2008071707 Fennec/0.5' => array(
- array('FE', 'Fennec', 'Fennec', '0.5', '0', '5', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
-
- // Firefox (formerly Firebird, formerly Phoenix; and rebranded versions)
- 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:2.0a1pre) Gecko/2008060602 Minefield/4.0a1pre' => array(
- array('FF', 'Firefox', 'Firefox', '4.0', '4', '0', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
- 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:2.0a1pre) Gecko/2008060602 Minefield/4.0a1p' => array(
- array('FF', 'Firefox', 'Firefox', '4.0', '4', '0', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
- 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2a2pre) Gecko/20090826 Namoroka/3.6a2pre' => array(
- array('FF', 'Firefox', 'Firefox', '3.6', '3', '6', 'gecko'),
- array('WVI', 'Windows Vista', 'Win Vista')),
- 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2) Gecko/20100119 Namoroka/3.6' => array(
- array('FF', 'Firefox', 'Firefox', '3.6', '3', '6', 'gecko'),
- array('WI7', 'Windows 7', 'Win 7')),
- 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1b4pre) Gecko/20090420 Shiretoko/3.5b4pre (.NET CLR 3.5.30729)' => array(
- array('FF', 'Firefox', 'Firefox', '3.5', '3', '5', 'gecko'),
- array('WI7', 'Windows 7', 'Win 7')),
- 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.2) Gecko/20090803 Ubuntu/9.04 (jaunty) Shiretoko/3.5.2' => array(
- array('FF', 'Firefox', 'Firefox', '3.5', '3', '5', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
- 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6' => array(
- array('FF', 'Firefox', 'Firefox', '3.0', '3', '0', 'gecko'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9a7) Gecko/2007080210 GranParadiso/3.0a7' => array(
- array('FF', 'Firefox', 'Firefox', '3.0', '3', '0', 'gecko'),
- array('WVI', 'Windows Vista', 'Win Vista')),
- 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008072716 IceCat/3.0.1-g1' => array(
- array('FF', 'Firefox', 'Firefox', '3.0', '3', '0', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
- 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.1) Gecko/2008071420 Iceweasel/3.0.1 (Debian-3.0.1-1)' => array(
- array('FF', 'Firefox', 'Firefox', '3.0', '3', '0', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
- 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1b2) Gecko/20060821 BonEcho/2.0b2' => array(
- array('FF', 'Firefox', 'Firefox', '2.0', '2', '0', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
- 'Mozilla/5.0 (X11; U; Darwin Power Macintosh; en-US; rv:1.8.0.12) Gecko/20070803 Firefox/1.5.0.12 Fink Community Edition' => array(
- array('FF', 'Firefox', 'Firefox', '1.5', '1', '5', 'gecko'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6b) Gecko/20031212 Firebird/0.7+' => array(
- array('FB', 'Firebird', 'Firebird', '0.7', '0', '7', 'gecko'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/5.0 (Windows; U; Win98; de-DE; rv:1.4b) Gecko/20030516 Mozilla Firebird/0.6' => array(
- array('FB', 'Firebird', 'Firebird', '0.6', '0', '6', 'gecko'),
- array('W98', 'Windows 98', 'Win 98')),
- 'Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:1.3a) Gecko/20021207 Phoenix/0.5' => array(
- array('PX', 'Phoenix', 'Phoenix', '0.5', '0', '5', 'gecko'),
- array('WNT', 'Windows NT', 'Win NT')),
- 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.2b) Gecko/20020923 Phoenix/0.1' => array(
- array('PX', 'Phoenix', 'Phoenix', '0.1', '0', '1', 'gecko'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/5.0 (Nintendo DS v4; U; M3 Adapter CF + PassMe2; en-US; rv:1.8.0.6 ) Gecko/20060728 Firefox/1.5.0.6 (firefox.gba.ds)' => array(
- array('FF', 'Firefox', 'Firefox', '1.5', '1', '5', 'gecko'),
- array('NDS', 'Nintendo DS', 'DS')),
-
- // Flock
- 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Flock/3.0.0.3737 Chrome/4.1.249.1071 Safari/532.5' => array(
- array('FL', 'Flock', 'Flock', '3.0', '3', '0', 'webkit'),
- array('WI7', 'Windows 7', 'Win 7')),
- // pre-3.0 is actually gecko
- 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 Flock/2.5.6 (.NET CLR 3.5.30729)' => array(
- array('FL', 'Flock', 'Flock', '2.5', '2', '5', 'webkit'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.7) Gecko/20091221 AppleWebKit/531.21.8 KHTML/4.3.5 (like Gecko) Firefox/3.5.7 Flock/2.5.6 (.NET CLR 3.5.30729)' => array(
- array('FL', 'Flock', 'Flock', '2.5', '2', '5', 'webkit'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.7) Gecko/20091221 AppleWebKit/531.21.8 (KHTML, like Gecko) Firefox/3.5.7 Flock/2.5.6 (.NET CLR 3.5.30729)' => array(
- array('FL', 'Flock', 'Flock', '2.5', '2', '5', 'webkit'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.9) Gecko/20071106 Firefox/2.0.0.9 Flock/1.0.1' => array(
- array('FL', 'Flock', 'Flock', '1.0', '1', '0', 'webkit'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1.8) Gecko/20071101 Firefox/2.0.0.8 Flock/1.0' => array(
- array('FL', 'Flock', 'Flock', '1.0', '1', '0', 'webkit'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8b5) Gecko/20051021 Flock/0.4 Firefox/1.0+' => array(
- array('FL', 'Flock', 'Flock', '0.4', '0', '4', 'webkit'),
- array('MAC', 'Mac OS', 'Mac OS')),
-
- // Fluid
- 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_1; nl-nl) AppleWebKit/532.3+ (KHTML, like Gecko) Fluid/0.9.6 Safari/532.3+' => array(
- array('FD', 'Fluid', 'Fluid', '0.9', '0', '9', 'webkit'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Fluid/0.9.4 Safari/525.13' => array(
- array('FD', 'Fluid', 'Fluid', '0.9', '0', '9', 'webkit'),
- array('WXP', 'Windows XP', 'Win XP')),
-
- // Galeon
- 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko/20090327 Galeon/2.0.7' => array(
- array('GA', 'Galeon', 'Galeon', '2.0', '2', '0', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
- 'Mozilla/5.0 (X11; U; OpenBSD i386; en-US; rv:1.8.1.19) Gecko/20090701 Galeon/2.0.7' => array(
- array('GA', 'Galeon', 'Galeon', '2.0', '2', '0', 'gecko'),
- array('OBS', 'OpenBSD', 'OpenBSD')),
- 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.19) Gecko/20081216 Galeon/2.0.4 Firefox/2.0.0.19' => array(
- array('GA', 'Galeon', 'Galeon', '2.0', '2', '0', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
- 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.13pre) Gecko/20080207 Galeon/2.0.1 (Ubuntu package 2.0.1-1ubuntu2) Firefox/1.5.0.13pre' => array(
- array('GA', 'Galeon', 'Galeon', '2.0', '2', '0', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
- 'Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.6) Gecko/20040406 Galeon/1.3.15' => array(
- array('GA', 'Galeon', 'Galeon', '1.3', '1', '3', 'gecko'),
- array('BSD', 'FreeBSD', 'FreeBSD')),
- 'Mozilla/5.0 Galeon/1.2.9 (X11; Linux i686; U;) Gecko/20021213 Debian/1.2.9-0.bunk' => array(
- array('GA', 'Galeon', 'Galeon', '1.2', '1', '2', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
- 'Mozilla/5.0 Galeon/1.0.3 (X11; Linux i686; U;) Gecko/0' => array(
- array('GA', 'Galeon', 'Galeon', '1.0', '1', '0', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
-
- // Google Earth embedded browser
- 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.4 (KHTML, like Gecko) Google Earth/5.2.1.1329 Safari/532.4' => array(
- array('GE', 'Google Earth', 'Google Earth', '5.2', '5', '2', 'webkit'),
- array('WI7', 'Windows 7', 'Win 7')),
-
- // GreenBrowser (treat as IE)
- 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0; .NET CLR 3.5.21022; GreenBrowser)' => array(
- array('IE', 'Internet Explorer', 'IE', '6.0', '6', '0', 'ie'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; InfoPath.2; .NET CLR 3.0.30729; GreenBrowser)' => array(
- array('IE', 'Internet Explorer', 'IE', '7.0', '7', '0', 'ie'),
- array('WVI', 'Windows Vista', 'Win Vista')),
-
- // Hana
- 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/418.9 (KHTML, like Gecko) Hana/1.1' => array(
- array('HA', 'Hana', 'Hana', '1.1', '1', '1', 'webkit'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/417.9 (KHTML, like Gecko) Hana/1.0' => array(
- array('HA', 'Hana', 'Hana', '1.0', '1', '0', 'webkit'),
- array('MAC', 'Mac OS', 'Mac OS')),
-
- // HotJava
- 'HotJava/1.1.2 FCS' => array(
- array('HJ', 'HotJava', 'HotJava', '1.1', '1', '1', 'unknown'),
- false),
- 'HotJava/1.0.1/JRE1.1.x' => array(
- array('HJ', 'HotJava', 'HotJava', '1.0', '1', '0', 'unknown'),
- false),
-
- // iBrowse
- 'Mozilla/5.0 (compatible; IBrowse 3.0; AmigaOS4.0)' => array(
- array('IB', 'IBrowse', 'IBrowse', '3.0', '3', '0', 'unknown'),
- array('AMI', 'AmigaOS', 'AmigaOS')),
- 'Mozilla/4.0 (compatible; IBrowse 2.3; AmigaOS4.0)' => array(
- array('IB', 'IBrowse', 'IBrowse', '2.3', '2', '3', 'unknown'),
- array('AMI', 'AmigaOS', 'AmigaOS')),
- 'IBrowse/2.4 (AmigaOS 3.9; 68K)' => array(
- array('IB', 'IBrowse', 'IBrowse', '2.4', '2', '4', 'unknown'),
- array('AMI', 'AmigaOS', 'AmigaOS')),
- 'IBrowse/2.3 (AmigaOS V51)' => array(
- array('IB', 'IBrowse', 'IBrowse', '2.3', '2', '3', 'unknown'),
- array('AMI', 'AmigaOS', 'AmigaOS')),
- 'IBrowse/2.3 (AmigaOS 4.0)' => array(
- array('IB', 'IBrowse', 'IBrowse', '2.3', '2', '3', 'unknown'),
- array('AMI', 'AmigaOS', 'AmigaOS')),
-
- // iCab
- 'iCab/4.5 (Macintosh; U; PPC Mac OS X)' => array(
- array('IC', 'iCab', 'iCab', '4.5', '4', '5', 'unknown'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'iCab/4.5 (Macintosh; U; Mac OS X Leopard 10.5.7)' => array(
- array('IC', 'iCab', 'iCab', '4.5', '4', '5', 'unknown'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/5.0 (compatible; iCab 3.0.5; Macintosh; U; PPC Mac OS)' => array(
- array('IC', 'iCab', 'iCab', '3.0', '3', '0', 'unknown'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/5.0 (compatible; iCab 3.0.5; Macintosh; U; PPC Mac OS X)' => array(
- array('IC', 'iCab', 'iCab', '3.0', '3', '0', 'unknown'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/5.0 (Macintosh; U; PPC Mac OS; en) iCab 3' => array(
- array('IC', 'iCab', 'iCab', '3.0', '3', '0', 'unknown'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/4.5 (compatible; iCab 2.7.1; Macintosh; I; PPC)' => array(
- array('IC', 'iCab', 'iCab', '2.7', '2', '7', 'unknown'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'iCab/2.9.8 (Macintosh; U; 68K)' => array(
- array('IC', 'iCab', 'iCab', '2.9', '2', '9', 'unknown'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Lynx/2.8 (compatible; iCab 2.9.8; Macintosh; U; 68K)' => array(
- array('IC', 'iCab', 'iCab', '2.9', '2', '9', 'unknown'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/4/5 (compatible; iCab 2.9.8; Macintosh; U; 68K)' => array(
- array('IC', 'iCab', 'iCab', '2.9', '2', '9', 'unknown'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/4.0 (compatible; MSIE 5.0; Mac_PowerPC)' => array(
- array('IE', 'Internet Explorer', 'IE', '5.0', '5', '0', 'ie'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/4.76 (Macintosh; I; PPC)' => array(
- array('NS', 'Netscape', 'Netscape', '4.76', '4', '76', 'gecko'),
- array('MAC', 'Mac OS', 'Mac OS')),
-
- // Internet Explorer
- 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)' => array(
- array('IE', 'Internet Explorer', 'IE', '9.0', '9', '0', 'ie'),
- array('WI7', 'Windows 7', 'Win 7')),
- 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/5.0)' => array(
- array('IE', 'Internet Explorer', 'IE', '7.0', '7', '0', 'ie'),
- array('WVI', 'Windows Vista', 'Win Vista')),
- 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET CLR 3.0.04506; .NET CLR 3.5.21022; InfoPath.2; SLCC1; Zune 3.0)' => array(
- array('IE', 'Internet Explorer', 'IE', '8.0', '8', '0', 'ie'),
- array('WI7', 'Windows 7', 'Win 7')),
- 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)' => array(
- array('IE', 'Internet Explorer', 'IE', '8.0', '8', '0', 'ie'),
- array('WVI', 'Windows Vista', 'Win Vista')),
- 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0)' => array(
- array('IE', 'Internet Explorer', 'IE', '7.0', '7', '0', 'ie'),
- array('WVI', 'Windows Vista', 'Win Vista')),
- 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)' => array(
- array('IE', 'Internet Explorer', 'IE', '8.0', '8', '0', 'ie'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648)' => array(
- array('IE', 'Internet Explorer', 'IE', '6.0', '6', '0', 'ie'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)' => array(
- array('IE', 'Internet Explorer', 'IE', '6.0', '6', '0', 'ie'),
- array('WS3', 'Windows Server 2003 / XP x64', 'Win S2003')),
- 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; WOW64; SV1; .NET CLR 2.0.50727)' => array(
- array('IE', 'Internet Explorer', 'IE', '6.0', '6', '0', 'ie'),
- array('WS3', 'Windows Server 2003 / XP x64', 'Win S2003')),
- 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; Win64; x64; SV1; .NET CLR 2.0.50727)' => array(
- array('IE', 'Internet Explorer', 'IE', '6.0', '6', '0', 'ie'),
- array('WS3', 'Windows Server 2003 / XP x64', 'Win S2003')),
-
- // Internet Explorer with misbehaving Google Tool Bar
- 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6.5; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)' => array(
- array('IE', 'Internet Explorer', 'IE', '8.0', '8', '0', 'ie'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB0.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)' => array(
- array('IE', 'Internet Explorer', 'IE', '8.0', '8', '0', 'ie'),
- array('WXP', 'Windows XP', 'Win XP')),
-
- // Iron
- 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/531.0 (KHTML, like Gecko) Iron/3.0.189.0 Safari/531.0' => array(
- array('IR', 'Iron', 'Iron', '3.0', '3', '0', 'webkit'),
- array('WI7', 'Windows 7', 'Win 7')),
-
- // K-Meleon
- 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.21) Gecko/20090331 K-Meleon/1.5.3' => array(
- array('KM', 'K-Meleon', 'K-Meleon', '1.5', '1', '5', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
- 'Mozilla/5.0 (Darwin; FreeBSD 5.6; en-GB; rv:1.8.1.17pre) Gecko/20080716 K-Meleon/1.5.0' => array(
- array('KM', 'K-Meleon', 'K-Meleon', '1.5', '1', '5', 'gecko'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:1.2b) Gecko/20021016 K-Meleon 0.7' => array(
- array('KM', 'K-Meleon', 'K-Meleon', '0.7', '0', '7', 'gecko'),
- array('WNT', 'Windows NT', 'Win NT')),
-
- // Kapiko
- 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.1) Gecko/20080722 Firefox/3.0.1 Kapiko/3.0' => array(
- array('KP', 'Kapiko', 'Kapiko', '3.0', '3', '0', 'gecko'),
- array('WXP', 'Windows XP', 'Win XP')),
-
- // Kazehakase
- 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.11) Gecko Kazehakase/0.5.4 Debian/0.5.4-2.1ubuntu3' => array(
- array('KZ', 'Kazehakase', 'Kazehakase', '0.5', '0', '5', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
- 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.13) Gecko/20080311 (Debian-1.8.1.13+nobinonly-0ubuntu1) Kazehakase/0.5.2' => array(
- array('KZ', 'Kazehakase', 'Kazehakase', '0.5', '0', '5', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
- 'Mozilla/5.0 (X11; Linux x86_64; U;) Gecko/20060207 Kazehakase/0.3.5 Debian/0.3.5-1' => array(
- array('KZ', 'Kazehakase', 'Kazehakase', '0.3', '0', '3', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
-
- // KKMAN (treat as IE)
- 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; KKMAN3.2)' => array(
- array('IE', 'Internet Explorer', 'IE', '7.0', '7', '0', 'ie'),
- array('WXP', 'Windows XP', 'Win XP')),
-
- // Konqueror
- 'Mozilla/5.0 (compatible; Konqueror/4.0; Linux) KHTML/4.0.5 (like Gecko)' => array(
- array('KO', 'Konqueror', 'Konqueror', '4.0', '4', '0', 'khtml'),
- array('LIN', 'Linux', 'Linux')),
- 'Mozilla/5.0 (compatible; Konqueror/4.0; Microsoft Windows) KHTML/4.0.80 (like Gecko)' => array(
- array('KO', 'Konqueror', 'Konqueror', '4.0', '4', '0', 'khtml'),
- false),
- 'Mozilla/5.0 (compatible; Konqueror/3.5; GNU/kFreeBSD) KHTML/3.5.9 (like Gecko) (Debian)' => array(
- array('KO', 'Konqueror', 'Konqueror', '3.5', '3', '5', 'khtml'),
- array('BSD', 'FreeBSD', 'FreeBSD')),
- 'Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)' => array(
- array('KO', 'Konqueror', 'Konqueror', '2.1', '2', '1', 'khtml'),
- false),
-
- // Links
- 'Links' => array(
- false,
- false),
- 'Links (2.1pre31; Linux 2.6.21-omap1 armv6l; x)' => array(
- array('LI', 'Links', 'Links', '2.1', '2', '1', 'unknown'),
- array('LIN', 'Linux', 'Linux')),
- 'Links (0.99; OS/2 1 i386; 80x33)' => array(
- array('LI', 'Links', 'Links', '0.99', '0', '99', 'unknown'),
- array('OS2', 'OS/2', 'OS/2')),
-
- // Lunascape (identity crisis)
- 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1) Gecko/20090701 Firefox/3.5 Lunascape/5.1.2.3' => array(
- array('FF', 'Firefox', 'Firefox', '3.5', '3', '5', 'gecko'),
- array('WVI', 'Windows Vista', 'Win Vista')),
- 'Mozilla/5.0 (Windows; U; ; cs-CZ) AppleWebKit/532+ (KHTML, like Gecko, Safari/532.0) Lunascape/5.1.2.3' => array(
- array('SF', 'Safari', 'Safari', '4.0', '4', '0', 'webkit'),
- false),
- 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; InfoPath.1; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Lunascape 5.1.2.3)' => array(
- array('IE', 'Internet Explorer', 'IE', '6.0', '6', '0', 'ie'),
- array('WXP', 'Windows XP', 'Win XP')),
-
- // Lynx
- 'Lynx (textmode)' => array(
- false,
- false),
- 'Lynx/2.8.7dev.9 libwww-FM/2.14' => array(
- array('LX', 'Lynx', 'Lynx', '2.8', '2', '8', 'unknown'),
- false),
-
- // Maxathon (treat as IE)
- 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)' => array(
- array('IE', 'Internet Explorer', 'IE', '7.0', '7', '0', 'ie'),
- array('WXP', 'Windows XP', 'Win XP')),
-
- // Midori
- 'Midori/0.1.9 (X11; Linux i686; U; fr-fr) WebKit/532+' => array(
- array('MI', 'Midori', 'Midori', '0.1', '0', '1', 'webkit'),
- array('LIN', 'Linux', 'Linux')),
-
- // Mozilla Suite
- 'Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.7) Gecko/20070606' => array(
- array('MO', 'Mozilla', 'Mozilla', '1.7', '1', '7', 'gecko'),
- array('SOS', 'SunOS', 'SunOS')),
- 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050927 Debian/1.7.8-1sarge3' => array(
- array('MO', 'Mozilla', 'Mozilla', '1.7', '1', '7', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
-
- // NCSA Mosaic
- 'PATHWORKS Mosaic/1.0 libwww/2.15_Spyglass' => array(
- array('MC', 'NCSA Mosaic', 'Mosaic', '1.0', '1', '0', 'unknown'),
- false),
- 'WinMosaic/Version 2.0 (ALPHA 2)' => array(
- array('MC', 'NCSA Mosaic', 'Mosaic', '2.0', '2', '0', 'unknown'),
- false),
- 'VMS_Mosaic/3.8-1 (Motif;OpenVMS V7.3-2 DEC 3000 - M700) libwww/2.12_Mosaic' => array(
- array('MC', 'NCSA Mosaic', 'Mosaic', '3.8', '3', '8', 'unknown'),
- false),
- 'Mosaic from Digital/1.02_Win32' => array(
- array('MC', 'NCSA Mosaic', 'Mosaic', '1.02', '1', '02', 'unknown'),
- array('W95', 'Windows 95', 'Win 95')),
- 'NCSA Mosaic/2.0.0b4 (Windows AXP)' => array(
- array('MC', 'NCSA Mosaic', 'Mosaic', '2.0', '2', '0', 'unknown'),
- false),
- 'NCSA_Mosaic/2.7b5 (X11;Linux 2.6.7 i686) libwww/2.12 modified' => array(
- array('MC', 'NCSA Mosaic', 'Mosaic', '2.7', '2', '7', 'unknown'),
- array('LIN', 'Linux', 'Linux')),
- 'mMosaic/3.6.6 (X11;SunOS 5.8 sun4m)' => array(
- array('MC', 'NCSA Mosaic', 'Mosaic', '3.6', '3', '6', 'unknown'),
- array('SOS', 'SunOS', 'SunOS')),
-
- // Netscape Navigator (9.x)
- 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.8pre) Gecko/20071015 Firefox/2.0.0.7 Navigator/9.0' => array(
- array('NS', 'Netscape', 'Netscape', '9.0', '9', '0', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
- 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.5) Gecko/20070321 Netscape/9.0' => array(
- array('NS', 'Netscape', 'Netscape', '9.0', '9', '0', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
-
- // Netscape (6.x - 8.x)
- 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.5) Gecko/20070321 Netscape/8.1.3' => array(
- array('NS', 'Netscape', 'Netscape', '8.1', '8', '1', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
- 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax)' => array(
- array('NS', 'Netscape', 'Netscape', '7.2', '7', '2', 'gecko'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/5.0 (X11; U; OSF1 alpha; en-US; rv:0.9.4.1) Gecko/20020517 Netscape6/6.2.3' => array(
- array('NS', 'Netscape', 'Netscape', '6.2', '6', '2', 'gecko'),
- array('T64', 'Tru64', 'Tru64')),
- 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.2) Gecko/20010726 Netscape6/6.1' => array(
- array('NS', 'Netscape', 'Netscape', '6.1', '6', '1', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
-
- // Netscape Communicator (4.x)
- 'Mozilla/4.76C-SGI [en] (X11; I; IRIX64 6.5 IP30)' => array(
- array('NS', 'Netscape', 'Netscape', '4.76', '4', '76', 'gecko'),
- array('IRI', 'IRIX', 'IRIX')),
- 'Mozilla/4.72 [en] (X11; I; HP-UX B.11.00 9000/800)' => array(
- array('NS', 'Netscape', 'Netscape', '4.72', '4', '72', 'gecko'),
- array('HPX', 'HP-UX', 'HP-UX')),
- 'Mozilla/4.41 (BEOS; U ;Nav)' => array(
- array('NS', 'Netscape', 'Netscape', '4.41', '4', '41', 'gecko'),
- array('BEO', 'BeOS', 'BeOS')),
- 'Mozilla/4.0 (compatible; Windows NT 5.1; U; en)' => array(
- array('NS', 'Netscape', 'Netscape', '4.0', '4', '0', 'gecko'),
- array('WXP', 'Windows XP', 'Win XP')),
-
- // Netscape Navigator (up to 3.x)
- 'Mozilla/3.0 (X11; I; AIX 2)' => array(
- array('NS', 'Netscape', 'Netscape', '3.0', '3', '0', 'gecko'),
- array('AIX', 'AIX', 'AIX')),
- 'Mozilla/2.02 [fr] (WinNT; I)' => array(
- array('NS', 'Netscape', 'Netscape', '2.02', '2', '02', 'gecko'),
- array('WNT', 'Windows NT', 'Win NT')),
-
- // Omniweb
- 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US) AppleWebKit/525.18 (KHTML, like Gecko, Safari/525.20) OmniWeb/v622.3.0.105198' => array(
- array('OW', 'OmniWeb', 'OmniWeb', '5.8', '5', '8', 'webkit'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/522+ (KHTML, like Gecko, Safari/522) OmniWeb/v613' => array(
- array('OW', 'OmniWeb', 'OmniWeb', '5.6', '5', '6', 'webkit'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/420+ (KHTML, like Gecko, Safari/420) OmniWeb/v607' => array(
- array('OW', 'OmniWeb', 'OmniWeb', '5.5', '5', '5', 'webkit'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/125.4 (KHTML, like Gecko, Safari) OmniWeb/v563.34' => array(
- array('OW', 'OmniWeb', 'OmniWeb', '5.1', '5', '1', 'webkit'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/85 (KHTML, like Gecko) OmniWeb/v558.36' => array(
- array('OW', 'OmniWeb', 'OmniWeb', '5.0', '5', '0', 'webkit'),
- array('MAC', 'Mac OS', 'Mac OS')),
- 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/85 (KHTML, like Gecko) OmniWeb/v496' => array(
- array('OW', 'OmniWeb', 'OmniWeb', '4.5', '4', '5', 'webkit'),
- array('MAC', 'Mac OS', 'Mac OS')),
-
- // Opera
- 'Opera/9.63 (Windows NT 5.1; U; en) Presto/2.1.1' => array(
- array('OP', 'Opera', 'Opera', '9.63', '9', '63', 'opera'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Opera/9.30 (Nintendo Wii; U; ; 2047-7; en)' => array(
- array('OP', 'Opera', 'Opera', '9.30', '9', '30', 'opera'),
- array('WII', 'Nintendo Wii', 'Wii')),
- 'Opera/9.64 (Windows ME; U; en) Presto/2.1.1' => array(
- array('OP', 'Opera', 'Opera', '9.64', '9', '64', 'opera'),
- array('WME', 'Windows Me', 'Win Me')),
- 'Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.00' => array(
- array('OP', 'Opera', 'Opera', '10.00', '10', '0', 'opera'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/4.0 (compatible; MSIE 6.0; Nitro) Opera 8.50 [en Mozilla/4.0 (compatible; MSIE 6.0; Nitro) Opera 8.50 [ja]' => array(
- array('OP', 'Opera', 'Opera', '8.50', '8', '50', 'opera'),
- array('NDS', 'Nintendo DS', 'DS')),
- 'Opera/9.00 (Nintendo DS U; ; 1309-9; de)' => array(
- array('OP', 'Opera', 'Opera', '9.00', '9', '00', 'opera'),
- array('NDS', 'Nintendo DS', 'DS')),
- 'Opera/9.50 (Nintendo DSi; Opera/507; U; en-US) ' => array(
- array('OP', 'Opera', 'Opera', '9.50', '9', '50', 'opera'),
- array('DSI', 'Nintendo DSi', 'DSi')),
-
- // PSP
- 'PSP (PlayStation Portable); 2.00' => array(
- false,
- array('PSP', 'PlayStation Portable', 'PSP')),
- 'Mozilla/4.0 (PSP (PlayStation Portable); 2.00)' => array(
- false,
- array('PSP', 'PlayStation Portable', 'PSP')),
-
- // Safari
- 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Version/3.1.2 Safari/525.21' => array(
- array('SF', 'Safari', 'Safari', '3.1', '3', '1', 'webkit'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_2 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5G77 Safari/525.20' => array(
- array('SF', 'Safari', 'Safari', '3.1', '3', '1', 'webkit'),
- array('IPH', 'iPhone', 'iPhone')),
- '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' => array(
- array('SF', 'Safari', 'Safari', '3.0', '3', '0', 'webkit'),
- array('IPD', 'iPod', 'iPod')),
- 'Mozilla/5.0 (iPod; U; CPU iPhone OS 2_2_1 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5H11a Safari/525.20' => array(
- array('SF', 'Safari', 'Safari', '3.1', '3', '1', 'webkit'),
- array('IPD', 'iPod', 'iPod')),
- 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_5; en-us) AppleWebKit/527.3+ (KHTML, like Gecko) Version/3.1.2 Safari/525.20.1' => array(
- array('SF', 'Safari', 'Safari', '3.1', '3', '1', 'webkit'),
- array('MAC', 'Mac OS', 'Mac OS')),
- '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.10' => array(
- array('SF', 'Safari', 'Safari', '4.0', '4', '0', 'webkit'),
- array('IPA', 'iPad', 'iPad')),
-
- // SeaMonkey (formerly Mozilla Suite and rebranded versions)
- 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.8) Gecko/20071008 Iceape/1.1.5 (Ubuntu-1.1.5-1ubuntu0.7.10)' => array(
- array('SM', 'SeaMonkey', 'SeaMonkey', '1.1', '1', '1', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
- 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1b4pre) Gecko/20090405 SeaMonkey/2.0b1pre' => array(
- array('SM', 'SeaMonkey', 'SeaMonkey', '2.0', '2', '0', 'gecko'),
- array('LIN', 'Linux', 'Linux')),
- 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9) Gecko' => array(
- // this pre-2.0 UA is missing the SeaMonkey/X.Y
- array('SM', 'SeaMonkey', 'SeaMonkey', '1.9', '1', '9', 'gecko'),
- array('WXP', 'Windows XP', 'Win XP')),
- 'Mozilla/5.0 (Windows; U; Windows NT 5.1; cs; rv:1.9) Gecko/2008052906' => array(
- // this pre-2.0 UA is missing the SeaMonkey/X.Y
- array('SM', 'SeaMonkey', 'SeaMonkey', '1.9', '1', '9', 'gecko'),
- array('WXP', 'Windows XP', 'Win XP')),
-
- // Palm webOS
- 'Mozilla/5.0 (webOS/1.0; U; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/1.0 Safari/525.27.1 Pre/1.0' => array(
- array('WO', 'Palm webOS', 'webOS', '1.0', '1', '0', 'webkit'),
- array('WOS', 'Palm webOS', 'webOS')),
- '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' => array(
- array('WO', 'Palm webOS', 'webOS', '1.0', '1', '0', 'webkit'),
- array('WOS', 'Palm webOS', 'webOS')),
- 'Mozilla/5.0 [en] (PalmOS; U; WebPro/3.5; Palm-Zi72)' => array(
- array('WP', 'WebPro', 'WebPro', '3.5', '3', '5', 'unknown'),
- array('POS', 'Palm OS', 'Palm OS')),
-
- // Palm WebPro
- 'Mozilla/4.76 [en] (PalmOS; U; WebPro/3.0.1a; Palm-Cct1)' => array(
- array('WP', 'WebPro', 'WebPro', '3.0', '3', '0', 'unknown'),
- array('POS', 'Palm OS', 'Palm OS')),
- 'Mozilla/4.76 [en] (PalmOS; U; WebPro/3.0; Palm-Arz1)' => array(
- array('WP', 'WebPro', 'WebPro', '3.0', '3', '0', 'unknown'),
- array('POS', 'Palm OS', 'Palm OS')),
- );
-
- public function test_getBrowser()
- {
- foreach($this->userAgents as $userAgent => $expected)
- {
- $res = UserAgentParser::getBrowser($userAgent);
- $family = false;
-
- if($res === false)
- $ok = $res === $expected[0];
- else
- {
- $family = Piwik_getBrowserFamily($res['id']);
- $ok = $expected[0][0] == $res['id'] &&
- $expected[0][1] == $res['name'] &&
- $expected[0][2] == $res['short_name'] &&
- $expected[0][3] == $res['version'] &&
- $expected[0][4] == $res['major_number'] &&
- $expected[0][5] == $res['minor_number'] &&
- $expected[0][6] == $family;
- }
-
- $this->assertTrue($ok);
- if(!$ok)
- {
- var_dump(array($userAgent, $res, $family));
- }
- }
- }
-
- public function test_getOperatingSystem()
- {
- foreach($this->userAgents as $userAgent => $expected)
- {
- $res = UserAgentParser::getOperatingSystem($userAgent);
-
- $ok = $expected[1][0] == $res['id'] &&
- $expected[1][1] == $res['name'] &&
- $expected[1][2] == $res['short_name'];
-
- $this->assertTrue($ok);
- if(!$ok)
- {
- var_dump(array($userAgent, $res));
- }
- }
- }
-}