From 5ee4f58134e3862cd90ac7636f53fd6d25dff003 Mon Sep 17 00:00:00 2001
From: Andrew Nicols <andrew@nicols.co.uk>
Date: Tue, 23 Dec 2014 14:25:20 +0800
Subject: [PATCH] MDL-48685 tests: Add additional User Agents

* Firefox 33; Mac OS X 10.10
* Chrome 39; Mac OS X
* Safari; iPhone 6 Plus; iOS 8.1; Build 12B411
* Opera 12.15 (Build 1748); Mac OS X
---
 lib/tests/useragent_test.php | 114 +++++++++++++++++++++++++++++++++++
 1 file changed, 114 insertions(+)

diff --git a/lib/tests/useragent_test.php b/lib/tests/useragent_test.php
index da027a0f2fd..f39f8e4e7e0 100644
--- a/lib/tests/useragent_test.php
+++ b/lib/tests/useragent_test.php
@@ -461,6 +461,7 @@ class core_useragent_testcase extends basic_testcase {
                         '20051116'                  => true,
                         '2006010100'                => true,
                         '3.6'                       => true,
+                        '20100101'                  => true,
                     ),
 
                     'versionclasses'                => array(
@@ -489,6 +490,7 @@ class core_useragent_testcase extends basic_testcase {
                         '20030516'                  => true,
                         '20051116'                  => true,
                         '2006010100'                => true,
+                        '20100101'                  => true,
                         '3.6'                       => true,
                         '4.0'                       => true,
                     ),
@@ -519,6 +521,7 @@ class core_useragent_testcase extends basic_testcase {
                         '20030516'                  => true,
                         '20051116'                  => true,
                         '2006010100'                => true,
+                        '20100101'                  => true,
                         '3.6'                       => true,
                         '4.0'                       => true,
                         '15.0'                      => true,
@@ -555,6 +558,44 @@ class core_useragent_testcase extends basic_testcase {
                         '4.0'                       => true,
                         '15.0'                      => true,
                         '18.0'                      => true,
+                        '20100101'                  => true,
+                    ),
+
+                    'versionclasses'                => array(
+                        'gecko',
+                    ),
+                ),
+            ),
+
+            // Firefox 33; Mac OS X 10.10.
+            array(
+                'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0',
+                array(
+                    'is_firefox'                    => true,
+                    'check_firefox_version'         => array(
+                        '1.5'                       => true,
+                        '3.0'                       => true,
+                        '4'                         => true,
+                        '10'                        => true,
+                        '15'                        => true,
+                        '18'                        => true,
+                        '19'                        => true,
+                        '33'                        => true,
+                    ),
+
+                    'is_gecko'                      => true,
+                    'check_gecko_version'           => array(
+                        '1'                         => true,
+                        '2'                         => true,
+                        '20030516'                  => true,
+                        '20051116'                  => true,
+                        '2006010100'                => true,
+                        '3.6'                       => true,
+                        '4.0'                       => true,
+                        '15.0'                      => true,
+                        '18.0'                      => true,
+                        '19.0'                      => true,
+                        '20100101'                  => true,
                     ),
 
                     'versionclasses'                => array(
@@ -595,6 +636,7 @@ class core_useragent_testcase extends basic_testcase {
                         '20030516'                  => true,
                         '20051116'                  => true,
                         '2006010100'                => true,
+                        '20100101'                  => true,
                         '3.6'                       => true,
                         '4.0'                       => true,
                     ),
@@ -624,6 +666,7 @@ class core_useragent_testcase extends basic_testcase {
                         '20030516'                  => true,
                         '20051116'                  => true,
                         '2006010100'                => true,
+                        '20100101'                  => true,
                         '3.6'                       => true,
                         '4.0'                       => true,
                     ),
@@ -778,6 +821,29 @@ class core_useragent_testcase extends basic_testcase {
                ),
             ),
 
+            // Safari; iPhone 6 Plus; iOS 8.1; Build 12B411.
+            array(
+                'Mozilla/5.0 (iPhone; CPU iPhone OS 10_10 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B411 Safari/600.1.4',
+                array(
+                    // Note: We do *not* identify mobile Safari as Safari.
+                    'is_safari_ios'                 => true,
+                    'check_safari_ios_version'      => array(
+                        '527'                       => true,
+                        '590'                       => true,
+                        '600'                       => true,
+                    ),
+
+                    'is_webkit'                     => true,
+
+                    'versionclasses'                => array(
+                        'safari',
+                        'ios',
+                    ),
+
+                    'devicetype'                    => 'mobile',
+               ),
+            ),
+
             // iOS Safari 533; iPad.
             array(
                 'Mozilla/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5',
@@ -918,6 +984,26 @@ class core_useragent_testcase extends basic_testcase {
                 ),
             ),
 
+            // Chrome 39; Mac OS X.
+            array(
+                'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36',
+                array(
+                    'is_chrome'                     => true,
+                    'check_chrome_version'          => array(
+                        '7'                         => true,
+                        '8'                         => true,
+                        '10'                        => true,
+                        '39'                        => true,
+                    ),
+
+                    'is_webkit'                     => true,
+
+                    'versionclasses'                => array(
+                        'safari',
+                    ),
+                ),
+            ),
+
             // Opera 8.51; Windows XP.
             array(
                 'Opera/8.51 (Windows NT 5.1; U; en)',
@@ -942,6 +1028,27 @@ class core_useragent_testcase extends basic_testcase {
                     'is_opera'                      => true,
                     'check_opera_version'           => array(
                         '8.0'                       => true,
+                        '9.0'                       => true,
+                    ),
+
+                    'versionclasses'                => array(
+                        'opera',
+                    ),
+
+                    'supports_svg'                  => false,
+               ),
+            ),
+
+            // Opera 12.15 (Build 1748); Mac OS X.
+            array(
+                'Opera/9.80 (Macintosh; Intel Mac OS X 10.10.0; Edition MAS) Presto/2.12.388 Version/12.15',
+                array(
+                    'is_opera'                      => true,
+                    'check_opera_version'           => array(
+                        '8.0'                       => true,
+                        '9.0'                       => true,
+                        '10.0'                      => true,
+                        '12.15'                     => true,
                     ),
 
                     'versionclasses'                => array(
@@ -959,6 +1066,7 @@ class core_useragent_testcase extends basic_testcase {
                     'is_opera'                      => true,
                     'check_opera_version'           => array(
                         '8.0'                       => true,
+                        '9.0'                       => true,
                     ),
 
                     'versionclasses'                => array(
@@ -1153,6 +1261,7 @@ class core_useragent_testcase extends basic_testcase {
             '7'         => false,
             '8'         => false,
             '10'        => false,
+            '39'        => false,
         );
 
         if (isset($tests['check_chrome_version'])) {
@@ -1226,6 +1335,7 @@ class core_useragent_testcase extends basic_testcase {
             // New versions should be added here.
             '527'       => false,
             '590'       => false,
+            '600'       => false,
         );
 
         if (isset($tests['check_safari_ios_version'])) {
@@ -1266,6 +1376,7 @@ class core_useragent_testcase extends basic_testcase {
             '20030516'      => false,
             '20051116'      => false,
             '2006010100'    => false,
+            '20100101'      => false,
             '15.0'          => false,
             '18.0'          => false,
             '19.0'          => false,
@@ -1309,6 +1420,7 @@ class core_useragent_testcase extends basic_testcase {
             '15'        => false,
             '18'        => false,
             '19'        => false,
+            '33'        => false,
         );
 
         if (isset($tests['check_firefox_version'])) {
@@ -1343,7 +1455,9 @@ class core_useragent_testcase extends basic_testcase {
         $versions = array(
             // New versions should be added here.
             '8.0'       => false,
+            '9.0'       => false,
             '10.0'      => false,
+            '12.15'     => false,
         );
 
         if (isset($tests['check_opera_version'])) {