]> git.mjollnir.org Git - moodle.git/commitdiff
Issue 8417:
authornicolasconnault <nicolasconnault>
Thu, 1 Mar 2007 02:08:06 +0000 (02:08 +0000)
committernicolasconnault <nicolasconnault>
Thu, 1 Mar 2007 02:08:06 +0000 (02:08 +0000)
Added support for array of tested browsers to be passed to ajaxenabled()
Merged in from MOODLE_18_STABLE

lib/ajax/ajaxlib.php
lib/simpletest/testajaxlib.php

index 07bb5117ee3a701e0b087ae1926ecb18dd530b50..a2bd8b8ef403aaec2e2fbb96362cde63d2c8414d 100644 (file)
@@ -106,10 +106,23 @@ function ajax_get_lib($libname) {
 /**
  * Returns whether ajax is enabled/allowed or not.
  */
-function ajaxenabled() {
+function ajaxenabled($browsers = array()) {
 
     global $CFG, $USER;
     
+    if (!empty($browsers)) {
+        $valid = false;
+        foreach ($browsers as $brand => $version) {
+            if (check_browser_version($brand, $version)) {
+                $valid = true;
+            }    
+        }
+        
+        if (!$valid) {
+            return false;
+        }
+    }
+    
     $ie = check_browser_version('MSIE', 6.0);
     $ff = check_browser_version('Gecko', 20051106);
     $op = check_browser_version('Opera', 9.0);
index 19c05ba6003e2c208d7d2359a6ce248505609f88..2e0ff2ff614bbe117604f8a5a96e6f7221adfe4c 100644 (file)
@@ -87,6 +87,33 @@ class ajaxlib_test extends UnitTestCase {
         
         $_SERVER['HTTP_USER_AGENT'] = $user_agents['MSIE']['5.5']['Windows 2000'];
         $this->assertFalse(ajaxenabled());
+        
+        // Test array of tested browsers
+        $tested_browsers = array('MSIE' => 6.0, 'Gecko' => 20061111);
+        $_SERVER['HTTP_USER_AGENT'] = $user_agents['Firefox']['2.0']['Windows XP'];
+        $this->assertTrue(ajaxenabled($tested_browsers));
+        
+        $_SERVER['HTTP_USER_AGENT'] = $user_agents['MSIE']['7.0']['Windows XP SP2'];
+        $this->assertTrue(ajaxenabled($tested_browsers));
+        
+        $_SERVER['HTTP_USER_AGENT'] = $user_agents['Safari']['2.0']['Mac OS X'];
+        $this->assertFalse(ajaxenabled($tested_browsers));
+        
+        $_SERVER['HTTP_USER_AGENT'] = $user_agents['Opera']['9.0']['Windows XP'];
+        $this->assertFalse(ajaxenabled($tested_browsers));
+        
+        $tested_browsers = array('Safari' => 412, 'Opera' => 9.0);
+        $_SERVER['HTTP_USER_AGENT'] = $user_agents['Firefox']['2.0']['Windows XP'];
+        $this->assertFalse(ajaxenabled($tested_browsers));
+        
+        $_SERVER['HTTP_USER_AGENT'] = $user_agents['MSIE']['7.0']['Windows XP SP2'];
+        $this->assertFalse(ajaxenabled($tested_browsers));
+        
+        $_SERVER['HTTP_USER_AGENT'] = $user_agents['Safari']['2.0']['Mac OS X'];
+        $this->assertTrue(ajaxenabled($tested_browsers));
+        
+        $_SERVER['HTTP_USER_AGENT'] = $user_agents['Opera']['9.0']['Windows XP'];
+        $this->assertTrue(ajaxenabled($tested_browsers));
     }
 }