From 42e4411a9fce49e94b798c700e393684cb75b034 Mon Sep 17 00:00:00 2001
From: Triangle717
Date: Tue, 18 Mar 2014 22:46:52 -0400
Subject: [PATCH 01/62] Add $.browser.mobile and $.browser.desktop
---
README.md | 18 +++++++++++++++++-
dist/jquery.browser.js | 12 +++++++++++-
dist/jquery.browser.js.coffee | 8 ++++++++
3 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index d6effe9..bbb4b4c 100644
--- a/README.md
+++ b/README.md
@@ -28,7 +28,7 @@ Reading the browser verion
## Things not included in the original jQuery $.browser implementation
-- Detect Windows, Mac, Linux, iPad, iPhone, Android and Windows Phone useragents
+- Detect Windows, Mac, Linux, iPad, iPhone, Android and Windows Phone useragents, in addition to desktop and mobile browsers
```javascript
$.browser.ipad
@@ -38,6 +38,22 @@ Reading the browser verion
$.browser.win
$.browser.mac
$.browser.linux
+ $.browser.desktop
+ $.browser.mobile
+```
+
+```javascript
+ // User Agent for Firefox on Windows
+ User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0
+
+ $.browser.desktop // Returns true as a boolean
+```
+
+```javascript
+ // User Agent for Safari on iPhone
+ User-Agent: Mozilla/5.0(iPhone; CPU iPhone OS 7_0_3 like Mac OS X; en-us) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B508 Safari/9537.53
+
+ $.browser.mobile // Returns true as a boolean
```
- Detect the browser's major version
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index 8eeb108..42eac7f 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -53,13 +53,23 @@ browser = {};
if ( matched.browser ) {
browser[ matched.browser ] = true;
browser.version = matched.version;
- browser.versionNumber = parseInt(matched.version);
+ browser.versionNumber = parseInt(matched.version);
}
if ( matched.platform ) {
browser[ matched.platform ] = true;
}
+// These are all considered mobile platforms, meaning they run a mobile browser
+if ( browser.android || browser.ipad || browser.iphone || browser[ "windows phone" ] ) {
+ browser.mobile = true;
+}
+
+// These are all considered desktop platforms, meaning they run a desktop browser
+if ( browser.mac || browser.linux || browser.win ) {
+ browser.desktop = true;
+}
+
// Chrome, Opera 15+ and Safari are webkit based browsers
if ( browser.chrome || browser.opr || browser.safari ) {
browser.webkit = true;
diff --git a/dist/jquery.browser.js.coffee b/dist/jquery.browser.js.coffee
index 8b7f7ce..7f2bedb 100644
--- a/dist/jquery.browser.js.coffee
+++ b/dist/jquery.browser.js.coffee
@@ -37,6 +37,14 @@
if matched.platform
browser[matched.platform] = true
+ # These are all considered mobile platforms, meaning they run a mobile browser
+ if browser.android or browser.ipad or browser.iphone or browser["windows phone"]
+ browser.mobile = true
+
+ # These are all considered desktop platforms, meaning they run a desktop browser
+ if browser.mac or browser.linux or browser.win
+ browser.desktop = true
+
# Chrome, Opera 15+ and Safari are webkit based browsers
if browser.chrome or browser.opr or browser.safari
browser.webkit = true
From 0cf7d33c2a4b5cd7a5df5b7de534ac755c3c4868 Mon Sep 17 00:00:00 2001
From: Triangle717
Date: Tue, 18 Mar 2014 22:59:46 -0400
Subject: [PATCH 02/62] Add tests for new options, minor string and semi colon
fixes
---
test/test.js | 50 ++++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 42 insertions(+), 8 deletions(-)
diff --git a/test/test.js b/test/test.js
index 780f8fe..a527feb 100644
--- a/test/test.js
+++ b/test/test.js
@@ -1,4 +1,4 @@
-test_url = "http://localhost:8008"
+test_url = "http://localhost:8008";
var casper = require('casper').create({
verbose: true
@@ -77,7 +77,7 @@ ua = {
},
name: "android"
}
-}
+};
casper.test.begin("when using Chrome on Windows", 6, function(test) {
casper.userAgent(ua.chrome.windows);
@@ -95,6 +95,7 @@ casper.test.begin("when using Chrome on Windows", 6, function(test) {
test.assertEquals(browser.version, ua.chrome.version, "String version should be " + ua.chrome.version);
test.assertEquals(browser.versionNumber, ua.chrome.versionNumber, "Number version should be " + ua.chrome.versionNumber);
+ test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.win, "Platform should be Windows");
}).run(function(){
@@ -118,7 +119,8 @@ casper.test.begin("when using Chrome on Mac", 6, function(test) {
test.assertEquals(browser.version, ua.chrome.version, "Version should be " + ua.chrome.version);
test.assertEquals(browser.versionNumber, ua.chrome.versionNumber, "Number version should be " + ua.chrome.versionNumber);
- test.assert(browser.mac, "Platform should be mac");
+ test.assert(browser.desktop, "Browser platform should be desktop");
+ test.assert(browser.mac, "Platform should be Mac");
}).run(function(){
test.done();
@@ -141,7 +143,8 @@ casper.test.begin("when using Chrome on an Android device", 6, function(test) {
test.assertEquals(browser.version, ua.chrome.version, "Version should be " + ua.chrome.version);
test.assertEquals(browser.versionNumber, ua.chrome.versionNumber, "Version should be " + ua.chrome.versionNumber);
- test.assert(browser.android, "Platform should be android");
+ test.assert(browser.mobile, "Browser platform should be mobile");
+ test.assert(browser.android, "Platform should be Android");
}).run(function(){
test.done();
@@ -164,7 +167,8 @@ casper.test.begin("when using Chrome on Linux", 6, function(test) {
test.assertEquals(browser.version, ua.chrome.version, "Version should be " + ua.chrome.version);
test.assertEquals(browser.versionNumber, ua.chrome.versionNumber, "Version should be " + ua.chrome.versionNumber);
- test.assert(browser.linux, "Platform should be linux");
+ test.assert(browser.desktop, "Browser platform should be desktop");
+ test.assert(browser.linux, "Platform should be Linux");
}).run(function(){
test.done();
@@ -185,6 +189,8 @@ casper.test.begin("when using Firefox on Windows", 6, function(test) {
test.assertEquals(browser.version, ua.firefox.version, "Version should be " + ua.firefox.version);
test.assertEquals(browser.versionNumber, ua.firefox.versionNumber, "Version should be " + ua.firefox.versionNumber);
+
+ test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.win, "Platform should be Windows");
test.assertFalsy(browser.webkit, "Browser should NOT be webkit based");
@@ -208,7 +214,9 @@ casper.test.begin("when using Firefox on Mac", 6, function(test) {
test.assertEquals(browser.version, ua.firefox.version, "Version should be " + ua.firefox.version);
test.assertEquals(browser.versionNumber, ua.firefox.versionNumber, "Version should be " + ua.firefox.versionNumber);
- test.assert(browser.mac, "Platform should be mac");
+
+ test.assert(browser.desktop, "Browser platform should be desktop");
+ test.assert(browser.mac, "Platform should be Mac");
test.assertFalsy(browser.webkit, "Browser should NOT be webkit based");
@@ -231,7 +239,9 @@ casper.test.begin("when using Firefox on Linux", 6, function(test) {
test.assertEquals(browser.version, ua.firefox.version, "Version should be " + ua.firefox.version);
test.assertEquals(browser.versionNumber, ua.firefox.versionNumber, "Version should be " + ua.firefox.versionNumber);
- test.assert(browser.linux, "Platform should be linux");
+
+ test.assert(browser.desktop, "Browser platform should be desktop");
+ test.assert(browser.linux, "Platform should be Linux");
test.assertFalsy(browser.webkit, "Browser should NOT be webkit based");
@@ -256,7 +266,8 @@ casper.test.begin("when using Safari on Mac", 6, function(test) {
test.assertEquals(browser.version, ua.safari.version, "Version should be " + ua.safari.version);
test.assertEquals(browser.versionNumber, ua.safari.versionNumber, "Version should be " + ua.safari.versionNumber);
- test.assert(browser.mac, "Platform should be mac");
+ test.assert(browser.desktop, "Browser platform should be desktop");
+ test.assert(browser.mac, "Platform should be Mac");
}).run(function(){
test.done();
@@ -279,6 +290,7 @@ casper.test.begin("when using Safari on iPad", 6, function(test) {
test.assertEquals(browser.version, ua.safari.version, "Version should be " + ua.safari.version);
test.assertEquals(browser.versionNumber, ua.safari.versionNumber, "Version number should be " + ua.safari.versionNumber);
+ test.assert(browser.mobile, "Browser platform should be mobile");
test.assert(browser.ipad, "Platform should be iPad");
}).run(function(){
@@ -302,6 +314,7 @@ casper.test.begin("when using Safari on iPhone", 6, function(test) {
test.assertEquals(browser.version, ua.safari.version, "Version should be " + ua.safari.version);
test.assertEquals(browser.versionNumber, ua.safari.versionNumber, "Version number should be " + ua.safari.versionNumber);
+ test.assert(browser.mobile, "Browser platform should be mobile");
test.assert(browser.iphone, "Platform should be iPhone");
}).run(function(){
@@ -323,6 +336,8 @@ casper.test.begin("when using IE9", 6, function(test) {
test.assertEquals(browser.version, "9.0", "Version should be 9.0");
test.assertEquals(browser.versionNumber, 9, "Version should be 9");
+
+ test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.win, "Platform should be Windows");
test.assertFalsy(browser.webkit, "Browser should NOT be webkit based");
@@ -346,6 +361,8 @@ casper.test.begin("when using IE10", 6, function(test) {
test.assertEquals(browser.version, "10.0", "Version should be 10");
test.assertEquals(browser.versionNumber, 10, "Version should be 10");
+
+ test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.win, "Platform should be Windows");
test.assertFalsy(browser.webkit, "Browser should NOT be webkit based");
@@ -369,6 +386,8 @@ casper.test.begin("when using IE11", 6, function(test) {
test.assertEquals(browser.version, "11.0", "Version should be 11.0");
test.assertEquals(browser.versionNumber, 11, "Version should be 11");
+
+ test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.win, "Platform should be Windows");
test.assertFalsy(browser.webkit, "Browser should NOT be webkit based");
@@ -392,6 +411,8 @@ casper.test.begin("when using IE10 on a Windows Phone", 6, function(test) {
test.assertEquals(browser.version, "10.0", "Version should be 10.0");
test.assertEquals(browser.versionNumber, 10, "Version should be 10");
+
+ test.assert(browser.mobile, "Browser platform should be mobile");
test.assert(browser["windows phone"], "Platform should be Windows Phone");
test.assertFalsy(browser.webkit, "Browser should NOT be webkit based");
@@ -415,6 +436,8 @@ casper.test.begin("when using Opera 15+ on Windows", 6, function(test) {
test.assertEquals(browser.version, ua.opera.v_15.version, "Version should be " + ua.opera.v_15.version);
test.assertEquals(browser.versionNumber, ua.opera.v_15.versionNumber, "Version number should be " + ua.opera.v_15.versionNumber);
+
+ test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.win, "Platform should be Windows");
test.assert(browser.webkit, "Browser should be webkit based");
@@ -438,6 +461,8 @@ casper.test.begin("when using Opera 15+ on Mac", 6, function(test) {
test.assertEquals(browser.version, ua.opera.v_15.version, "Version should be " + ua.opera.v_15.version)
test.assertEquals(browser.versionNumber, ua.opera.v_15.versionNumber, "Version number should be " + ua.opera.v_15.versionNumber);
+
+ test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.mac, "Platform should be Mac");
test.assert(browser.webkit, "Browser should be webkit based");
@@ -461,6 +486,8 @@ casper.test.begin("when using Opera 10 on Windows", 6, function(test) {
test.assertEquals(browser.version, ua.opera.v_10.version, "Version should be " + ua.opera.v_10.version);
test.assertEquals(browser.versionNumber, ua.opera.v_10.versionNumber, "Version number should be " + ua.opera.v_10.versionNumber);
+
+ test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.win, "Platform should be Windows");
test.assertFalsy(browser.webkit, "Browser should NOT be webkit based");
@@ -484,6 +511,8 @@ casper.test.begin("when using Opera 10 on Mac", 6, function(test) {
test.assertEquals(browser.version, ua.opera.v_10.version, "Version should be " + ua.opera.v_10.version);
test.assertEquals(browser.versionNumber, ua.opera.v_10.versionNumber, "Version number should be " + ua.opera.v_10.versionNumber);
+
+ test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.mac, "Platform should be Mac");
test.assertFalsy(browser.webkit, "Browser should NOT be webkit based");
@@ -507,6 +536,8 @@ casper.test.begin("when using Opera 12.11 on Windows", 6, function(test) {
test.assertEquals(browser.version, ua.opera.v_12.version, "Version should be " + ua.opera.v_12.version);
test.assertEquals(browser.versionNumber, ua.opera.v_12.versionNumber, "Version number should be " + ua.opera.v_12.versionNumber);
+
+ test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.win, "Platform should be Windows");
test.assertFalsy(browser.webkit, "Browser should NOT be webkit based");
@@ -530,6 +561,8 @@ casper.test.begin("when using Opera 12.11 on Mac", 6, function(test) {
test.assertEquals(browser.version, ua.opera.v_12.version, "Version should be " + ua.opera.v_12.version);
test.assertEquals(browser.versionNumber, ua.opera.v_12.versionNumber, "Version number should be " + ua.opera.v_12.versionNumber);
+
+ test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.mac, "Platform should be Mac");
test.assertFalsy(browser.webkit, "Browser should NOT be webkit based");
@@ -554,6 +587,7 @@ casper.test.begin("when using Android 4.4 stock browser on Android", 5, function
test.assertEquals(browser.version, ua.android.v_4_4.version, "Version should be " + ua.android.v_4_4.version);
test.assertEquals(browser.versionNumber, ua.android.v_4_4.versionNumber, "Version number should be " + ua.android.v_4_4.versionNumber);
+ test.assert(browser.mobile, "Browser platform should be mobile");
test.assert(browser.webkit, "Browser should be webkit based");
}).run(function(){
From 1fe20dfe135548b655549cb92a456b285d52015e Mon Sep 17 00:00:00 2001
From: Gabriel Cebrian
Date: Wed, 19 Mar 2014 11:44:06 -0700
Subject: [PATCH 03/62] Modified min version Fixed number of test on test.js
now that we added mobile and desktop flags Updated test jquery browser file
---
dist/jquery.browser.min.js | 4 ++--
test/src/jquery.browser.js | 12 ++++++++++-
test/test.js | 42 +++++++++++++++++++-------------------
3 files changed, 34 insertions(+), 24 deletions(-)
diff --git a/dist/jquery.browser.min.js b/dist/jquery.browser.min.js
index a65ec8c..c0e7f2a 100644
--- a/dist/jquery.browser.min.js
+++ b/dist/jquery.browser.min.js
@@ -10,5 +10,5 @@
*
* Released under the MIT license
*
- * Date: 05-01-2014
- */!function(a,b){"use strict";var c,d;if(a.uaMatch=function(a){a=a.toLowerCase();var b=/(opr)[\/]([\w.]+)/.exec(a)||/(chrome)[ \/]([\w.]+)/.exec(a)||/(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[],c=/(ipad)/.exec(a)||/(iphone)/.exec(a)||/(android)/.exec(a)||/(windows phone)/.exec(a)||/(win)/.exec(a)||/(mac)/.exec(a)||/(linux)/.exec(a)||[];return{browser:b[3]||b[1]||"",version:b[2]||"0",platform:c[0]||""}},c=a.uaMatch(b.navigator.userAgent),d={},c.browser&&(d[c.browser]=!0,d.version=c.version,d.versionNumber=parseInt(c.version)),c.platform&&(d[c.platform]=!0),(d.chrome||d.opr||d.safari)&&(d.webkit=!0),d.rv){var e="msie";c.browser=e,d[e]=!0}if(d.opr){var f="opera";c.browser=f,d[f]=!0}if(d.safari&&d.android){var g="android";c.browser=g,d[g]=!0}d.name=c.browser,d.platform=c.platform,a.browser=d}(jQuery,window);
\ No newline at end of file
+ * Date: 19-03-2014
+ */!function(a,b){"use strict";var c,d;if(a.uaMatch=function(a){a=a.toLowerCase();var b=/(opr)[\/]([\w.]+)/.exec(a)||/(chrome)[ \/]([\w.]+)/.exec(a)||/(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[],c=/(ipad)/.exec(a)||/(iphone)/.exec(a)||/(android)/.exec(a)||/(windows phone)/.exec(a)||/(win)/.exec(a)||/(mac)/.exec(a)||/(linux)/.exec(a)||[];return{browser:b[3]||b[1]||"",version:b[2]||"0",platform:c[0]||""}},c=a.uaMatch(b.navigator.userAgent),d={},c.browser&&(d[c.browser]=!0,d.version=c.version,d.versionNumber=parseInt(c.version)),c.platform&&(d[c.platform]=!0),(d.android||d.ipad||d.iphone||d["windows phone"])&&(d.mobile=!0),(d.mac||d.linux||d.win)&&(d.desktop=!0),(d.chrome||d.opr||d.safari)&&(d.webkit=!0),d.rv){var e="msie";c.browser=e,d[e]=!0}if(d.opr){var f="opera";c.browser=f,d[f]=!0}if(d.safari&&d.android){var g="android";c.browser=g,d[g]=!0}d.name=c.browser,d.platform=c.platform,a.browser=d}(jQuery,window);
\ No newline at end of file
diff --git a/test/src/jquery.browser.js b/test/src/jquery.browser.js
index 8eeb108..42eac7f 100644
--- a/test/src/jquery.browser.js
+++ b/test/src/jquery.browser.js
@@ -53,13 +53,23 @@ browser = {};
if ( matched.browser ) {
browser[ matched.browser ] = true;
browser.version = matched.version;
- browser.versionNumber = parseInt(matched.version);
+ browser.versionNumber = parseInt(matched.version);
}
if ( matched.platform ) {
browser[ matched.platform ] = true;
}
+// These are all considered mobile platforms, meaning they run a mobile browser
+if ( browser.android || browser.ipad || browser.iphone || browser[ "windows phone" ] ) {
+ browser.mobile = true;
+}
+
+// These are all considered desktop platforms, meaning they run a desktop browser
+if ( browser.mac || browser.linux || browser.win ) {
+ browser.desktop = true;
+}
+
// Chrome, Opera 15+ and Safari are webkit based browsers
if ( browser.chrome || browser.opr || browser.safari ) {
browser.webkit = true;
diff --git a/test/test.js b/test/test.js
index a527feb..8c3f259 100644
--- a/test/test.js
+++ b/test/test.js
@@ -79,7 +79,7 @@ ua = {
}
};
-casper.test.begin("when using Chrome on Windows", 6, function(test) {
+casper.test.begin("when using Chrome on Windows", 7, function(test) {
casper.userAgent(ua.chrome.windows);
casper.start(test_url).then(function(){
@@ -103,7 +103,7 @@ casper.test.begin("when using Chrome on Windows", 6, function(test) {
});
});
-casper.test.begin("when using Chrome on Mac", 6, function(test) {
+casper.test.begin("when using Chrome on Mac", 7, function(test) {
casper.userAgent(ua.chrome.mac);
casper.start(test_url).then(function(){
@@ -127,7 +127,7 @@ casper.test.begin("when using Chrome on Mac", 6, function(test) {
});
});
-casper.test.begin("when using Chrome on an Android device", 6, function(test) {
+casper.test.begin("when using Chrome on an Android device", 7, function(test) {
casper.userAgent(ua.chrome.android);
casper.start(test_url).then(function(){
@@ -151,7 +151,7 @@ casper.test.begin("when using Chrome on an Android device", 6, function(test) {
});
});
-casper.test.begin("when using Chrome on Linux", 6, function(test) {
+casper.test.begin("when using Chrome on Linux", 7, function(test) {
casper.userAgent(ua.chrome.linux);
casper.start(test_url).then(function(){
@@ -175,7 +175,7 @@ casper.test.begin("when using Chrome on Linux", 6, function(test) {
});
});
-casper.test.begin("when using Firefox on Windows", 6, function(test) {
+casper.test.begin("when using Firefox on Windows", 7, function(test) {
casper.userAgent(ua.firefox.windows);
casper.start(test_url).then(function(){
@@ -200,7 +200,7 @@ casper.test.begin("when using Firefox on Windows", 6, function(test) {
});
});
-casper.test.begin("when using Firefox on Mac", 6, function(test) {
+casper.test.begin("when using Firefox on Mac", 7, function(test) {
casper.userAgent(ua.firefox.mac);
casper.start(test_url).then(function(){
@@ -225,7 +225,7 @@ casper.test.begin("when using Firefox on Mac", 6, function(test) {
});
});
-casper.test.begin("when using Firefox on Linux", 6, function(test) {
+casper.test.begin("when using Firefox on Linux", 7, function(test) {
casper.userAgent(ua.firefox.linux);
casper.start(test_url).then(function(){
@@ -250,7 +250,7 @@ casper.test.begin("when using Firefox on Linux", 6, function(test) {
});
});
-casper.test.begin("when using Safari on Mac", 6, function(test) {
+casper.test.begin("when using Safari on Mac", 7, function(test) {
casper.userAgent(ua.safari.mac);
casper.start(test_url).then(function(){
@@ -274,7 +274,7 @@ casper.test.begin("when using Safari on Mac", 6, function(test) {
});
});
-casper.test.begin("when using Safari on iPad", 6, function(test) {
+casper.test.begin("when using Safari on iPad", 7, function(test) {
casper.userAgent(ua.safari.ipad);
casper.start(test_url).then(function(){
@@ -298,7 +298,7 @@ casper.test.begin("when using Safari on iPad", 6, function(test) {
});
});
-casper.test.begin("when using Safari on iPhone", 6, function(test) {
+casper.test.begin("when using Safari on iPhone", 7, function(test) {
casper.userAgent(ua.safari.iphone);
casper.start(test_url).then(function(){
@@ -322,7 +322,7 @@ casper.test.begin("when using Safari on iPhone", 6, function(test) {
});
});
-casper.test.begin("when using IE9", 6, function(test) {
+casper.test.begin("when using IE9", 7, function(test) {
casper.userAgent(ua.ie.windows.v_9);
casper.start(test_url).then(function(){
@@ -347,7 +347,7 @@ casper.test.begin("when using IE9", 6, function(test) {
});
});
-casper.test.begin("when using IE10", 6, function(test) {
+casper.test.begin("when using IE10", 7, function(test) {
casper.userAgent(ua.ie.windows.v_10);
casper.start(test_url).then(function(){
@@ -372,7 +372,7 @@ casper.test.begin("when using IE10", 6, function(test) {
});
});
-casper.test.begin("when using IE11", 6, function(test) {
+casper.test.begin("when using IE11", 7, function(test) {
casper.userAgent(ua.ie.windows.v_11);
casper.start(test_url).then(function(){
@@ -397,7 +397,7 @@ casper.test.begin("when using IE11", 6, function(test) {
});
});
-casper.test.begin("when using IE10 on a Windows Phone", 6, function(test) {
+casper.test.begin("when using IE10 on a Windows Phone", 7, function(test) {
casper.userAgent(ua.ie.win_phone.v_10);
casper.start(test_url).then(function(){
@@ -422,7 +422,7 @@ casper.test.begin("when using IE10 on a Windows Phone", 6, function(test) {
});
});
-casper.test.begin("when using Opera 15+ on Windows", 6, function(test) {
+casper.test.begin("when using Opera 15+ on Windows", 7, function(test) {
casper.userAgent(ua.opera.v_15.windows);
casper.start(test_url).then(function(){
@@ -447,7 +447,7 @@ casper.test.begin("when using Opera 15+ on Windows", 6, function(test) {
});
});
-casper.test.begin("when using Opera 15+ on Mac", 6, function(test) {
+casper.test.begin("when using Opera 15+ on Mac", 7, function(test) {
casper.userAgent(ua.opera.v_15.mac);
casper.start(test_url).then(function(){
@@ -472,7 +472,7 @@ casper.test.begin("when using Opera 15+ on Mac", 6, function(test) {
});
});
-casper.test.begin("when using Opera 10 on Windows", 6, function(test) {
+casper.test.begin("when using Opera 10 on Windows", 7, function(test) {
casper.userAgent(ua.opera.v_10.windows);
casper.start(test_url).then(function(){
@@ -497,7 +497,7 @@ casper.test.begin("when using Opera 10 on Windows", 6, function(test) {
});
});
-casper.test.begin("when using Opera 10 on Mac", 6, function(test) {
+casper.test.begin("when using Opera 10 on Mac", 7, function(test) {
casper.userAgent(ua.opera.v_10.mac);
casper.start(test_url).then(function(){
@@ -522,7 +522,7 @@ casper.test.begin("when using Opera 10 on Mac", 6, function(test) {
});
});
-casper.test.begin("when using Opera 12.11 on Windows", 6, function(test) {
+casper.test.begin("when using Opera 12.11 on Windows", 7, function(test) {
casper.userAgent(ua.opera.v_12.windows);
casper.start(test_url).then(function(){
@@ -547,7 +547,7 @@ casper.test.begin("when using Opera 12.11 on Windows", 6, function(test) {
});
});
-casper.test.begin("when using Opera 12.11 on Mac", 6, function(test) {
+casper.test.begin("when using Opera 12.11 on Mac", 7, function(test) {
casper.userAgent(ua.opera.v_12.mac);
casper.start(test_url).then(function(){
@@ -572,7 +572,7 @@ casper.test.begin("when using Opera 12.11 on Mac", 6, function(test) {
});
});
-casper.test.begin("when using Android 4.4 stock browser on Android", 5, function(test) {
+casper.test.begin("when using Android 4.4 stock browser on Android", 6, function(test) {
casper.userAgent(ua.android.v_4_4.android);
casper.start(test_url).then(function(){
From 2860e5e5c68bc62ca74d6e4901564b4a6c58cbce Mon Sep 17 00:00:00 2001
From: Triangle717
Date: Fri, 28 Mar 2014 20:05:47 -0400
Subject: [PATCH 04/62] Attempt to detect Chrome OS
---
dist/jquery.browser.js | 7 ++++---
dist/jquery.browser.js.coffee | 2 +-
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index 42eac7f..7cccc0b 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -23,7 +23,7 @@ jQuery.uaMatch = function( ua ) {
var match = /(opr)[\/]([\w.]+)/.exec( ua ) ||
/(chrome)[ \/]([\w.]+)/.exec( ua ) ||
- /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(ua) ||
+ /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
/(msie) ([\w.]+)/.exec( ua ) ||
@@ -34,16 +34,17 @@ jQuery.uaMatch = function( ua ) {
var platform_match = /(ipad)/.exec( ua ) ||
/(iphone)/.exec( ua ) ||
/(android)/.exec( ua ) ||
- /(windows phone)/.exec(ua) ||
+ /(windows phone)/.exec( ua ) ||
/(win)/.exec( ua ) ||
/(mac)/.exec( ua ) ||
/(linux)/.exec( ua ) ||
+ /(cros)/i.exec( ua ) ||
[];
return {
browser: match[ 3 ] || match[ 1 ] || "",
version: match[ 2 ] || "0",
- platform: platform_match[0] || ""
+ platform: platform_match[ 0 ] || ""
};
};
diff --git a/dist/jquery.browser.js.coffee b/dist/jquery.browser.js.coffee
index 7f2bedb..13686af 100644
--- a/dist/jquery.browser.js.coffee
+++ b/dist/jquery.browser.js.coffee
@@ -21,7 +21,7 @@
jQuery.uaMatch = (ua) ->
ua = ua.toLowerCase()
match = /(opr)[\/]([\w.]+)/.exec(ua) or /(chrome)[ \/]([\w.]+)/.exec(ua) or /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(ua) or /(webkit)[ \/]([\w.]+)/.exec(ua) or /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) or /(msie) ([\w.]+)/.exec(ua) or ua.indexOf("trident") >= 0 and /(rv)(?::| )([\w.]+)/.exec(ua) or ua.indexOf("compatible") < 0 and /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) or []
- platform_match = /(ipad)/.exec(ua) or /(iphone)/.exec(ua) or /(android)/.exec(ua) or /(windows phone)/.exec(ua) or /(win)/.exec(ua) or /(mac)/.exec(ua) or /(linux)/.exec(ua) or []
+ platform_match = /(ipad)/.exec(ua) or /(iphone)/.exec(ua) or /(android)/.exec(ua) or /(windows phone)/.exec(ua) or /(win)/.exec(ua) or /(mac)/.exec(ua) or /(linux)/.exec(ua) or /(cros)/i.exec(ua) or []
browser: match[3] or match[1] or ""
version: match[2] or "0"
platform: platform_match[0] or ""
From 0f94180223948c3dee165b5aa0618d70d85df06c Mon Sep 17 00:00:00 2001
From: Triangle717
Date: Sun, 30 Mar 2014 17:52:07 -0400
Subject: [PATCH 05/62] $.browser.mobile now recognizes $.browser.cros
---
README.md | 9 +++++----
dist/jquery.browser.js | 2 +-
dist/jquery.browser.js.coffee | 2 +-
test/src/jquery.browser.js | 9 +++++----
4 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/README.md b/README.md
index bbb4b4c..6b29fc3 100644
--- a/README.md
+++ b/README.md
@@ -14,11 +14,11 @@ Returns true if the current useragent is some version of Microsoft's Internet Ex
$.browser.msie;
-Returns true if the current useragent is some version of a Webkit browser (Safari, Chrome and Opera 15+).
+Returns true if the current useragent is some version of a WebKit browser (Safari, Chrome and Opera 15+)
$.browser.webkit;
-Returns true if the current useragent is some version of Firefox.
+Returns true if the current useragent is some version of Firefox
$.browser.mozilla;
@@ -28,13 +28,14 @@ Reading the browser verion
## Things not included in the original jQuery $.browser implementation
-- Detect Windows, Mac, Linux, iPad, iPhone, Android and Windows Phone useragents, in addition to desktop and mobile browsers
+- Detect Windows, Mac, Linux, iPad, iPhone, Android, Chrome OS, and Windows Phone useragents, in addition to desktop and mobile browsers
```javascript
$.browser.ipad
$.browser.iphone
$.browser["windows phone"]
$.browser.android
+ $.browser.cros
$.browser.win
$.browser.mac
$.browser.linux
@@ -66,7 +67,7 @@ Reading the browser verion
```
- Support for new useragent on IE11
-- Support for webkit based Opera browsers
+- Support for WebKit based Opera browsers
- Added testing using PhantomJS and different browser user agents
## Testing
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index 7cccc0b..4b9c964 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -62,7 +62,7 @@ if ( matched.platform ) {
}
// These are all considered mobile platforms, meaning they run a mobile browser
-if ( browser.android || browser.ipad || browser.iphone || browser[ "windows phone" ] ) {
+if ( browser.android || browser.cros || browser.ipad || browser.iphone || browser[ "windows phone" ] ) {
browser.mobile = true;
}
diff --git a/dist/jquery.browser.js.coffee b/dist/jquery.browser.js.coffee
index 13686af..f8c4392 100644
--- a/dist/jquery.browser.js.coffee
+++ b/dist/jquery.browser.js.coffee
@@ -38,7 +38,7 @@
browser[matched.platform] = true
# These are all considered mobile platforms, meaning they run a mobile browser
- if browser.android or browser.ipad or browser.iphone or browser["windows phone"]
+ if browser.android or brower.cros or browser.ipad or browser.iphone or browser["windows phone"]
browser.mobile = true
# These are all considered desktop platforms, meaning they run a desktop browser
diff --git a/test/src/jquery.browser.js b/test/src/jquery.browser.js
index 42eac7f..4b9c964 100644
--- a/test/src/jquery.browser.js
+++ b/test/src/jquery.browser.js
@@ -23,7 +23,7 @@ jQuery.uaMatch = function( ua ) {
var match = /(opr)[\/]([\w.]+)/.exec( ua ) ||
/(chrome)[ \/]([\w.]+)/.exec( ua ) ||
- /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(ua) ||
+ /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
/(msie) ([\w.]+)/.exec( ua ) ||
@@ -34,16 +34,17 @@ jQuery.uaMatch = function( ua ) {
var platform_match = /(ipad)/.exec( ua ) ||
/(iphone)/.exec( ua ) ||
/(android)/.exec( ua ) ||
- /(windows phone)/.exec(ua) ||
+ /(windows phone)/.exec( ua ) ||
/(win)/.exec( ua ) ||
/(mac)/.exec( ua ) ||
/(linux)/.exec( ua ) ||
+ /(cros)/i.exec( ua ) ||
[];
return {
browser: match[ 3 ] || match[ 1 ] || "",
version: match[ 2 ] || "0",
- platform: platform_match[0] || ""
+ platform: platform_match[ 0 ] || ""
};
};
@@ -61,7 +62,7 @@ if ( matched.platform ) {
}
// These are all considered mobile platforms, meaning they run a mobile browser
-if ( browser.android || browser.ipad || browser.iphone || browser[ "windows phone" ] ) {
+if ( browser.android || browser.cros || browser.ipad || browser.iphone || browser[ "windows phone" ] ) {
browser.mobile = true;
}
From 95ec39e923a911290d551f40d26867d8374dc887 Mon Sep 17 00:00:00 2001
From: Triangle717
Date: Sun, 30 Mar 2014 18:18:17 -0400
Subject: [PATCH 06/62] Add new Chrome OS test
---
test/test.js | 67 ++++++++++++++++++++++++++++++++++++----------------
1 file changed, 46 insertions(+), 21 deletions(-)
diff --git a/test/test.js b/test/test.js
index 8c3f259..a2fa3fb 100644
--- a/test/test.js
+++ b/test/test.js
@@ -17,6 +17,7 @@ ua = {
mac: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36",
android: "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Mobile Safari/537.36",
linux: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36",
+ cros: "Mozilla/5.0 (X11; CrOS i686 14.811.2011) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.834.0 Safari/535.1",
version : "32.0.1664.3",
versionNumber : 32,
name : "chrome"
@@ -91,7 +92,7 @@ casper.test.begin("when using Chrome on Windows", 7, function(test) {
test.assert(browser.chrome, "Browser should be Chrome");
test.assertEquals(browser.name, ua.chrome.name,"Browser name should be " + ua.chrome.name);
- test.assert(browser.webkit, "Browser should be webkit based");
+ test.assert(browser.webkit, "Browser should be WebKit based");
test.assertEquals(browser.version, ua.chrome.version, "String version should be " + ua.chrome.version);
test.assertEquals(browser.versionNumber, ua.chrome.versionNumber, "Number version should be " + ua.chrome.versionNumber);
@@ -115,7 +116,7 @@ casper.test.begin("when using Chrome on Mac", 7, function(test) {
test.assert(browser.chrome, "Browser should be Chrome");
test.assertEquals(browser.name, ua.chrome.name,"Browser name should be " + ua.chrome.name);
- test.assert(browser.webkit, "Browser should be webkit based");
+ test.assert(browser.webkit, "Browser should be WebKit based");
test.assertEquals(browser.version, ua.chrome.version, "Version should be " + ua.chrome.version);
test.assertEquals(browser.versionNumber, ua.chrome.versionNumber, "Number version should be " + ua.chrome.versionNumber);
@@ -139,7 +140,7 @@ casper.test.begin("when using Chrome on an Android device", 7, function(test) {
test.assert(browser.chrome, "Browser should be Chrome");
test.assertEquals(browser.name, ua.chrome.name,"Browser name should be " + ua.chrome.name);
- test.assert(browser.webkit, "Browser should be webkit based");
+ test.assert(browser.webkit, "Browser should be WebKit based");
test.assertEquals(browser.version, ua.chrome.version, "Version should be " + ua.chrome.version);
test.assertEquals(browser.versionNumber, ua.chrome.versionNumber, "Version should be " + ua.chrome.versionNumber);
@@ -163,7 +164,7 @@ casper.test.begin("when using Chrome on Linux", 7, function(test) {
test.assert(browser.chrome, "Browser should be Chrome");
test.assertEquals(browser.name, ua.chrome.name,"Browser name should be " + ua.chrome.name);
- test.assert(browser.webkit, "Browser should be webkit based");
+ test.assert(browser.webkit, "Browser should be WebKit based");
test.assertEquals(browser.version, ua.chrome.version, "Version should be " + ua.chrome.version);
test.assertEquals(browser.versionNumber, ua.chrome.versionNumber, "Version should be " + ua.chrome.versionNumber);
@@ -175,6 +176,30 @@ casper.test.begin("when using Chrome on Linux", 7, function(test) {
});
});
+casper.test.begin("when using Chrome on Chrome OS", 7, function(test) {
+ casper.userAgent(ua.chrome.cros);
+
+ casper.start(test_url).then(function(){
+
+ var browser = casper.evaluate(function(){
+ return $.browser;
+ });
+
+ test.assert(browser.chrome, "Browser should be Chrome");
+ test.assertEquals(browser.name, ua.chrome.name,"Browser name should be " + ua.chrome.name);
+
+ test.assert(browser.webkit, "Browser should be WebKit based");
+ test.assertEquals(browser.version, ua.chrome.version, "Version should be " + ua.chrome.version);
+ test.assertEquals(browser.versionNumber, ua.chrome.versionNumber, "Version should be " + ua.chrome.versionNumber);
+
+ test.assert(browser.mobile, "Browser platform should be mobile");
+ test.assert(browser.cros, "Platform should be Chrome OS");
+
+ }).run(function(){
+ test.done();
+ });
+});
+
casper.test.begin("when using Firefox on Windows", 7, function(test) {
casper.userAgent(ua.firefox.windows);
@@ -193,7 +218,7 @@ casper.test.begin("when using Firefox on Windows", 7, function(test) {
test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.win, "Platform should be Windows");
- test.assertFalsy(browser.webkit, "Browser should NOT be webkit based");
+ test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
}).run(function(){
test.done();
@@ -218,7 +243,7 @@ casper.test.begin("when using Firefox on Mac", 7, function(test) {
test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.mac, "Platform should be Mac");
- test.assertFalsy(browser.webkit, "Browser should NOT be webkit based");
+ test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
}).run(function(){
test.done();
@@ -243,7 +268,7 @@ casper.test.begin("when using Firefox on Linux", 7, function(test) {
test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.linux, "Platform should be Linux");
- test.assertFalsy(browser.webkit, "Browser should NOT be webkit based");
+ test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
}).run(function(){
test.done();
@@ -262,7 +287,7 @@ casper.test.begin("when using Safari on Mac", 7, function(test) {
test.assert(browser.safari, "Browser should be Safari");
test.assertEquals(browser.name, ua.safari.name,"Browser name should be " + ua.safari.name);
- test.assert(browser.webkit, "Browser should be webkit based");
+ test.assert(browser.webkit, "Browser should be WebKit based");
test.assertEquals(browser.version, ua.safari.version, "Version should be " + ua.safari.version);
test.assertEquals(browser.versionNumber, ua.safari.versionNumber, "Version should be " + ua.safari.versionNumber);
@@ -286,7 +311,7 @@ casper.test.begin("when using Safari on iPad", 7, function(test) {
test.assert(browser.safari, "Browser should be Safari");
test.assertEquals(browser.name, ua.safari.name,"Browser name should be " + ua.safari.name);
- test.assert(browser.webkit, "Browser should be webkit based");
+ test.assert(browser.webkit, "Browser should be WebKit based");
test.assertEquals(browser.version, ua.safari.version, "Version should be " + ua.safari.version);
test.assertEquals(browser.versionNumber, ua.safari.versionNumber, "Version number should be " + ua.safari.versionNumber);
@@ -310,7 +335,7 @@ casper.test.begin("when using Safari on iPhone", 7, function(test) {
test.assert(browser.safari, "Browser should be Safari");
test.assertEquals(browser.name, ua.safari.name,"Browser name should be " + ua.safari.name);
- test.assert(browser.webkit, "Browser should be webkit based");
+ test.assert(browser.webkit, "Browser should be WebKit based");
test.assertEquals(browser.version, ua.safari.version, "Version should be " + ua.safari.version);
test.assertEquals(browser.versionNumber, ua.safari.versionNumber, "Version number should be " + ua.safari.versionNumber);
@@ -340,7 +365,7 @@ casper.test.begin("when using IE9", 7, function(test) {
test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.win, "Platform should be Windows");
- test.assertFalsy(browser.webkit, "Browser should NOT be webkit based");
+ test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
}).run(function(){
test.done();
@@ -365,7 +390,7 @@ casper.test.begin("when using IE10", 7, function(test) {
test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.win, "Platform should be Windows");
- test.assertFalsy(browser.webkit, "Browser should NOT be webkit based");
+ test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
}).run(function(){
test.done();
@@ -390,7 +415,7 @@ casper.test.begin("when using IE11", 7, function(test) {
test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.win, "Platform should be Windows");
- test.assertFalsy(browser.webkit, "Browser should NOT be webkit based");
+ test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
}).run(function(){
test.done();
@@ -415,7 +440,7 @@ casper.test.begin("when using IE10 on a Windows Phone", 7, function(test) {
test.assert(browser.mobile, "Browser platform should be mobile");
test.assert(browser["windows phone"], "Platform should be Windows Phone");
- test.assertFalsy(browser.webkit, "Browser should NOT be webkit based");
+ test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
}).run(function(){
test.done();
@@ -440,7 +465,7 @@ casper.test.begin("when using Opera 15+ on Windows", 7, function(test) {
test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.win, "Platform should be Windows");
- test.assert(browser.webkit, "Browser should be webkit based");
+ test.assert(browser.webkit, "Browser should be WebKit based");
}).run(function(){
test.done();
@@ -465,7 +490,7 @@ casper.test.begin("when using Opera 15+ on Mac", 7, function(test) {
test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.mac, "Platform should be Mac");
- test.assert(browser.webkit, "Browser should be webkit based");
+ test.assert(browser.webkit, "Browser should be WebKit based");
}).run(function(){
test.done();
@@ -490,7 +515,7 @@ casper.test.begin("when using Opera 10 on Windows", 7, function(test) {
test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.win, "Platform should be Windows");
- test.assertFalsy(browser.webkit, "Browser should NOT be webkit based");
+ test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
}).run(function(){
test.done();
@@ -515,7 +540,7 @@ casper.test.begin("when using Opera 10 on Mac", 7, function(test) {
test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.mac, "Platform should be Mac");
- test.assertFalsy(browser.webkit, "Browser should NOT be webkit based");
+ test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
}).run(function(){
test.done();
@@ -540,7 +565,7 @@ casper.test.begin("when using Opera 12.11 on Windows", 7, function(test) {
test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.win, "Platform should be Windows");
- test.assertFalsy(browser.webkit, "Browser should NOT be webkit based");
+ test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
}).run(function(){
test.done();
@@ -565,7 +590,7 @@ casper.test.begin("when using Opera 12.11 on Mac", 7, function(test) {
test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.mac, "Platform should be Mac");
- test.assertFalsy(browser.webkit, "Browser should NOT be webkit based");
+ test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
}).run(function(){
test.done();
@@ -588,7 +613,7 @@ casper.test.begin("when using Android 4.4 stock browser on Android", 6, function
test.assertEquals(browser.versionNumber, ua.android.v_4_4.versionNumber, "Version number should be " + ua.android.v_4_4.versionNumber);
test.assert(browser.mobile, "Browser platform should be mobile");
- test.assert(browser.webkit, "Browser should be webkit based");
+ test.assert(browser.webkit, "Browser should be WebKit based");
}).run(function(){
test.done();
From bc0ffbc87d52a950e7afb66fa3e6b3653481ea46 Mon Sep 17 00:00:00 2001
From: Triangle717
Date: Sun, 30 Mar 2014 18:23:52 -0400
Subject: [PATCH 07/62] Consistently use double quotes
---
dist/jquery.browser.js | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index 4b9c964..4df9372 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -79,7 +79,7 @@ if ( browser.chrome || browser.opr || browser.safari ) {
// IE11 has a new token so we will assign it msie to avoid breaking changes
if ( browser.rv )
{
- var ie = 'msie';
+ var ie = "msie";
matched.browser = ie;
browser[ie] = true;
@@ -88,16 +88,16 @@ if ( browser.rv )
// Opera 15+ are identified as opr
if ( browser.opr )
{
- var opera = 'opera';
+ var opera = "opera";
matched.browser = opera;
browser[opera] = true;
}
-// Stock Android browsers are marked as safari on Android.
+// Stock Android browsers are marked as Safari on Android.
if ( browser.safari && browser.android )
{
- var android = 'android';
+ var android = "android";
matched.browser = android;
browser[android] = true;
From 19fecb07641904492b83adac1a9625f9b4039571 Mon Sep 17 00:00:00 2001
From: Triangle717
Date: Sun, 30 Mar 2014 20:38:16 -0400
Subject: [PATCH 08/62] Move under $.browser.desktop per review
---
dist/jquery.browser.js | 4 ++--
dist/jquery.browser.js.coffee | 4 ++--
test/src/jquery.browser.js | 12 ++++++------
3 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index 4df9372..c87f79c 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -62,12 +62,12 @@ if ( matched.platform ) {
}
// These are all considered mobile platforms, meaning they run a mobile browser
-if ( browser.android || browser.cros || browser.ipad || browser.iphone || browser[ "windows phone" ] ) {
+if ( browser.android || browser.ipad || browser.iphone || browser[ "windows phone" ] ) {
browser.mobile = true;
}
// These are all considered desktop platforms, meaning they run a desktop browser
-if ( browser.mac || browser.linux || browser.win ) {
+if ( browser.cros || browser.mac || browser.linux || browser.win ) {
browser.desktop = true;
}
diff --git a/dist/jquery.browser.js.coffee b/dist/jquery.browser.js.coffee
index f8c4392..ad6e001 100644
--- a/dist/jquery.browser.js.coffee
+++ b/dist/jquery.browser.js.coffee
@@ -38,11 +38,11 @@
browser[matched.platform] = true
# These are all considered mobile platforms, meaning they run a mobile browser
- if browser.android or brower.cros or browser.ipad or browser.iphone or browser["windows phone"]
+ if browser.android or browser.ipad or browser.iphone or browser["windows phone"]
browser.mobile = true
# These are all considered desktop platforms, meaning they run a desktop browser
- if browser.mac or browser.linux or browser.win
+ if brower.cros or browser.mac or browser.linux or browser.win
browser.desktop = true
# Chrome, Opera 15+ and Safari are webkit based browsers
diff --git a/test/src/jquery.browser.js b/test/src/jquery.browser.js
index 4b9c964..c87f79c 100644
--- a/test/src/jquery.browser.js
+++ b/test/src/jquery.browser.js
@@ -62,12 +62,12 @@ if ( matched.platform ) {
}
// These are all considered mobile platforms, meaning they run a mobile browser
-if ( browser.android || browser.cros || browser.ipad || browser.iphone || browser[ "windows phone" ] ) {
+if ( browser.android || browser.ipad || browser.iphone || browser[ "windows phone" ] ) {
browser.mobile = true;
}
// These are all considered desktop platforms, meaning they run a desktop browser
-if ( browser.mac || browser.linux || browser.win ) {
+if ( browser.cros || browser.mac || browser.linux || browser.win ) {
browser.desktop = true;
}
@@ -79,7 +79,7 @@ if ( browser.chrome || browser.opr || browser.safari ) {
// IE11 has a new token so we will assign it msie to avoid breaking changes
if ( browser.rv )
{
- var ie = 'msie';
+ var ie = "msie";
matched.browser = ie;
browser[ie] = true;
@@ -88,16 +88,16 @@ if ( browser.rv )
// Opera 15+ are identified as opr
if ( browser.opr )
{
- var opera = 'opera';
+ var opera = "opera";
matched.browser = opera;
browser[opera] = true;
}
-// Stock Android browsers are marked as safari on Android.
+// Stock Android browsers are marked as Safari on Android.
if ( browser.safari && browser.android )
{
- var android = 'android';
+ var android = "android";
matched.browser = android;
browser[android] = true;
From a13ec5252bc69649f0fb6e2e4cc9d22ea844ca14 Mon Sep 17 00:00:00 2001
From: Gabriel Cebrian
Date: Sun, 30 Mar 2014 17:56:12 -0700
Subject: [PATCH 09/62] Fixed test to check for Chrome OS on desktop platforms
Added ChromeOS versions to test instead of regular Chrome version.
---
dist/jquery.browser.min.js | 4 ++--
test/test.js | 8 +++++---
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/dist/jquery.browser.min.js b/dist/jquery.browser.min.js
index c0e7f2a..39ad9a6 100644
--- a/dist/jquery.browser.min.js
+++ b/dist/jquery.browser.min.js
@@ -10,5 +10,5 @@
*
* Released under the MIT license
*
- * Date: 19-03-2014
- */!function(a,b){"use strict";var c,d;if(a.uaMatch=function(a){a=a.toLowerCase();var b=/(opr)[\/]([\w.]+)/.exec(a)||/(chrome)[ \/]([\w.]+)/.exec(a)||/(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[],c=/(ipad)/.exec(a)||/(iphone)/.exec(a)||/(android)/.exec(a)||/(windows phone)/.exec(a)||/(win)/.exec(a)||/(mac)/.exec(a)||/(linux)/.exec(a)||[];return{browser:b[3]||b[1]||"",version:b[2]||"0",platform:c[0]||""}},c=a.uaMatch(b.navigator.userAgent),d={},c.browser&&(d[c.browser]=!0,d.version=c.version,d.versionNumber=parseInt(c.version)),c.platform&&(d[c.platform]=!0),(d.android||d.ipad||d.iphone||d["windows phone"])&&(d.mobile=!0),(d.mac||d.linux||d.win)&&(d.desktop=!0),(d.chrome||d.opr||d.safari)&&(d.webkit=!0),d.rv){var e="msie";c.browser=e,d[e]=!0}if(d.opr){var f="opera";c.browser=f,d[f]=!0}if(d.safari&&d.android){var g="android";c.browser=g,d[g]=!0}d.name=c.browser,d.platform=c.platform,a.browser=d}(jQuery,window);
\ No newline at end of file
+ * Date: 30-03-2014
+ */!function(a,b){"use strict";var c,d;if(a.uaMatch=function(a){a=a.toLowerCase();var b=/(opr)[\/]([\w.]+)/.exec(a)||/(chrome)[ \/]([\w.]+)/.exec(a)||/(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[],c=/(ipad)/.exec(a)||/(iphone)/.exec(a)||/(android)/.exec(a)||/(windows phone)/.exec(a)||/(win)/.exec(a)||/(mac)/.exec(a)||/(linux)/.exec(a)||/(cros)/i.exec(a)||[];return{browser:b[3]||b[1]||"",version:b[2]||"0",platform:c[0]||""}},c=a.uaMatch(b.navigator.userAgent),d={},c.browser&&(d[c.browser]=!0,d.version=c.version,d.versionNumber=parseInt(c.version)),c.platform&&(d[c.platform]=!0),(d.android||d.ipad||d.iphone||d["windows phone"])&&(d.mobile=!0),(d.cros||d.mac||d.linux||d.win)&&(d.desktop=!0),(d.chrome||d.opr||d.safari)&&(d.webkit=!0),d.rv){var e="msie";c.browser=e,d[e]=!0}if(d.opr){var f="opera";c.browser=f,d[f]=!0}if(d.safari&&d.android){var g="android";c.browser=g,d[g]=!0}d.name=c.browser,d.platform=c.platform,a.browser=d}(jQuery,window);
\ No newline at end of file
diff --git a/test/test.js b/test/test.js
index a2fa3fb..b895230 100644
--- a/test/test.js
+++ b/test/test.js
@@ -20,6 +20,8 @@ ua = {
cros: "Mozilla/5.0 (X11; CrOS i686 14.811.2011) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.834.0 Safari/535.1",
version : "32.0.1664.3",
versionNumber : 32,
+ chromeOsVersion: "14.0.834.0",
+ chromeOsVersionNumber: 14,
name : "chrome"
},
safari : {
@@ -189,10 +191,10 @@ casper.test.begin("when using Chrome on Chrome OS", 7, function(test) {
test.assertEquals(browser.name, ua.chrome.name,"Browser name should be " + ua.chrome.name);
test.assert(browser.webkit, "Browser should be WebKit based");
- test.assertEquals(browser.version, ua.chrome.version, "Version should be " + ua.chrome.version);
- test.assertEquals(browser.versionNumber, ua.chrome.versionNumber, "Version should be " + ua.chrome.versionNumber);
+ test.assertEquals(browser.version, ua.chrome.chromeOsVersion, "Version should be " + ua.chrome.chromeOsVersion);
+ test.assertEquals(browser.versionNumber, ua.chrome.chromeOsVersionNumber, "Version should be " + ua.chrome.chromeOsVersionNumber);
- test.assert(browser.mobile, "Browser platform should be mobile");
+ test.assert(browser.desktop, "Browser platform should be desktop");
test.assert(browser.cros, "Platform should be Chrome OS");
}).run(function(){
From 1d235da0901f91f15c9331acfe91992743685be2 Mon Sep 17 00:00:00 2001
From: Gabriel Cebrian
Date: Sun, 30 Mar 2014 18:09:29 -0700
Subject: [PATCH 10/62] Tabbed js code. Code now uses 2 Spaces instead of Tabs.
Fixes #26 (at least on my machine)
---
dist/jquery.browser.js | 191 ++++++++++++++++++-------------------
test/src/jquery.browser.js | 191 ++++++++++++++++++-------------------
2 files changed, 190 insertions(+), 192 deletions(-)
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index c87f79c..01c2bee 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -14,100 +14,99 @@
*/
(function( jQuery, window, undefined ) {
-"use strict";
-
-var matched, browser;
-
-jQuery.uaMatch = function( ua ) {
- ua = ua.toLowerCase();
-
- var match = /(opr)[\/]([\w.]+)/.exec( ua ) ||
- /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
- /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
- /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
- /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
- /(msie) ([\w.]+)/.exec( ua ) ||
- ua.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec( ua ) ||
- ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
- [];
-
- var platform_match = /(ipad)/.exec( ua ) ||
- /(iphone)/.exec( ua ) ||
- /(android)/.exec( ua ) ||
- /(windows phone)/.exec( ua ) ||
- /(win)/.exec( ua ) ||
- /(mac)/.exec( ua ) ||
- /(linux)/.exec( ua ) ||
- /(cros)/i.exec( ua ) ||
- [];
-
- return {
- browser: match[ 3 ] || match[ 1 ] || "",
- version: match[ 2 ] || "0",
- platform: platform_match[ 0 ] || ""
- };
-};
-
-matched = jQuery.uaMatch( window.navigator.userAgent );
-browser = {};
-
-if ( matched.browser ) {
- browser[ matched.browser ] = true;
- browser.version = matched.version;
- browser.versionNumber = parseInt(matched.version);
-}
-
-if ( matched.platform ) {
- browser[ matched.platform ] = true;
-}
-
-// These are all considered mobile platforms, meaning they run a mobile browser
-if ( browser.android || browser.ipad || browser.iphone || browser[ "windows phone" ] ) {
- browser.mobile = true;
-}
-
-// These are all considered desktop platforms, meaning they run a desktop browser
-if ( browser.cros || browser.mac || browser.linux || browser.win ) {
- browser.desktop = true;
-}
-
-// Chrome, Opera 15+ and Safari are webkit based browsers
-if ( browser.chrome || browser.opr || browser.safari ) {
- browser.webkit = true;
-}
-
-// IE11 has a new token so we will assign it msie to avoid breaking changes
-if ( browser.rv )
-{
- var ie = "msie";
-
- matched.browser = ie;
- browser[ie] = true;
-}
-
-// Opera 15+ are identified as opr
-if ( browser.opr )
-{
- var opera = "opera";
-
- matched.browser = opera;
- browser[opera] = true;
-}
-
-// Stock Android browsers are marked as Safari on Android.
-if ( browser.safari && browser.android )
-{
- var android = "android";
-
- matched.browser = android;
- browser[android] = true;
-}
-
-// Assign the name and platform variable
-browser.name = matched.browser;
-browser.platform = matched.platform;
-
-
-jQuery.browser = browser;
-
+ "use strict";
+
+ var matched, browser;
+
+ jQuery.uaMatch = function( ua ) {
+ ua = ua.toLowerCase();
+
+ var match = /(opr)[\/]([\w.]+)/.exec( ua ) ||
+ /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
+ /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
+ /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
+ /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
+ /(msie) ([\w.]+)/.exec( ua ) ||
+ ua.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec( ua ) ||
+ ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
+ [];
+
+ var platform_match = /(ipad)/.exec( ua ) ||
+ /(iphone)/.exec( ua ) ||
+ /(android)/.exec( ua ) ||
+ /(windows phone)/.exec( ua ) ||
+ /(win)/.exec( ua ) ||
+ /(mac)/.exec( ua ) ||
+ /(linux)/.exec( ua ) ||
+ /(cros)/i.exec( ua ) ||
+ [];
+
+ return {
+ browser: match[ 3 ] || match[ 1 ] || "",
+ version: match[ 2 ] || "0",
+ platform: platform_match[ 0 ] || ""
+ };
+ };
+
+ matched = jQuery.uaMatch( window.navigator.userAgent );
+ browser = {};
+
+ if ( matched.browser ) {
+ browser[ matched.browser ] = true;
+ browser.version = matched.version;
+ browser.versionNumber = parseInt(matched.version);
+ }
+
+ if ( matched.platform ) {
+ browser[ matched.platform ] = true;
+ }
+
+ // These are all considered mobile platforms, meaning they run a mobile browser
+ if ( browser.android || browser.ipad || browser.iphone || browser[ "windows phone" ] ) {
+ browser.mobile = true;
+ }
+
+ // These are all considered desktop platforms, meaning they run a desktop browser
+ if ( browser.cros || browser.mac || browser.linux || browser.win ) {
+ browser.desktop = true;
+ }
+
+ // Chrome, Opera 15+ and Safari are webkit based browsers
+ if ( browser.chrome || browser.opr || browser.safari ) {
+ browser.webkit = true;
+ }
+
+ // IE11 has a new token so we will assign it msie to avoid breaking changes
+ if ( browser.rv )
+ {
+ var ie = "msie";
+
+ matched.browser = ie;
+ browser[ie] = true;
+ }
+
+ // Opera 15+ are identified as opr
+ if ( browser.opr )
+ {
+ var opera = "opera";
+
+ matched.browser = opera;
+ browser[opera] = true;
+ }
+
+ // Stock Android browsers are marked as Safari on Android.
+ if ( browser.safari && browser.android )
+ {
+ var android = "android";
+
+ matched.browser = android;
+ browser[android] = true;
+ }
+
+ // Assign the name and platform variable
+ browser.name = matched.browser;
+ browser.platform = matched.platform;
+
+
+ jQuery.browser = browser;
})( jQuery, window );
\ No newline at end of file
diff --git a/test/src/jquery.browser.js b/test/src/jquery.browser.js
index c87f79c..01c2bee 100644
--- a/test/src/jquery.browser.js
+++ b/test/src/jquery.browser.js
@@ -14,100 +14,99 @@
*/
(function( jQuery, window, undefined ) {
-"use strict";
-
-var matched, browser;
-
-jQuery.uaMatch = function( ua ) {
- ua = ua.toLowerCase();
-
- var match = /(opr)[\/]([\w.]+)/.exec( ua ) ||
- /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
- /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
- /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
- /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
- /(msie) ([\w.]+)/.exec( ua ) ||
- ua.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec( ua ) ||
- ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
- [];
-
- var platform_match = /(ipad)/.exec( ua ) ||
- /(iphone)/.exec( ua ) ||
- /(android)/.exec( ua ) ||
- /(windows phone)/.exec( ua ) ||
- /(win)/.exec( ua ) ||
- /(mac)/.exec( ua ) ||
- /(linux)/.exec( ua ) ||
- /(cros)/i.exec( ua ) ||
- [];
-
- return {
- browser: match[ 3 ] || match[ 1 ] || "",
- version: match[ 2 ] || "0",
- platform: platform_match[ 0 ] || ""
- };
-};
-
-matched = jQuery.uaMatch( window.navigator.userAgent );
-browser = {};
-
-if ( matched.browser ) {
- browser[ matched.browser ] = true;
- browser.version = matched.version;
- browser.versionNumber = parseInt(matched.version);
-}
-
-if ( matched.platform ) {
- browser[ matched.platform ] = true;
-}
-
-// These are all considered mobile platforms, meaning they run a mobile browser
-if ( browser.android || browser.ipad || browser.iphone || browser[ "windows phone" ] ) {
- browser.mobile = true;
-}
-
-// These are all considered desktop platforms, meaning they run a desktop browser
-if ( browser.cros || browser.mac || browser.linux || browser.win ) {
- browser.desktop = true;
-}
-
-// Chrome, Opera 15+ and Safari are webkit based browsers
-if ( browser.chrome || browser.opr || browser.safari ) {
- browser.webkit = true;
-}
-
-// IE11 has a new token so we will assign it msie to avoid breaking changes
-if ( browser.rv )
-{
- var ie = "msie";
-
- matched.browser = ie;
- browser[ie] = true;
-}
-
-// Opera 15+ are identified as opr
-if ( browser.opr )
-{
- var opera = "opera";
-
- matched.browser = opera;
- browser[opera] = true;
-}
-
-// Stock Android browsers are marked as Safari on Android.
-if ( browser.safari && browser.android )
-{
- var android = "android";
-
- matched.browser = android;
- browser[android] = true;
-}
-
-// Assign the name and platform variable
-browser.name = matched.browser;
-browser.platform = matched.platform;
-
-
-jQuery.browser = browser;
-
+ "use strict";
+
+ var matched, browser;
+
+ jQuery.uaMatch = function( ua ) {
+ ua = ua.toLowerCase();
+
+ var match = /(opr)[\/]([\w.]+)/.exec( ua ) ||
+ /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
+ /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
+ /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
+ /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
+ /(msie) ([\w.]+)/.exec( ua ) ||
+ ua.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec( ua ) ||
+ ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
+ [];
+
+ var platform_match = /(ipad)/.exec( ua ) ||
+ /(iphone)/.exec( ua ) ||
+ /(android)/.exec( ua ) ||
+ /(windows phone)/.exec( ua ) ||
+ /(win)/.exec( ua ) ||
+ /(mac)/.exec( ua ) ||
+ /(linux)/.exec( ua ) ||
+ /(cros)/i.exec( ua ) ||
+ [];
+
+ return {
+ browser: match[ 3 ] || match[ 1 ] || "",
+ version: match[ 2 ] || "0",
+ platform: platform_match[ 0 ] || ""
+ };
+ };
+
+ matched = jQuery.uaMatch( window.navigator.userAgent );
+ browser = {};
+
+ if ( matched.browser ) {
+ browser[ matched.browser ] = true;
+ browser.version = matched.version;
+ browser.versionNumber = parseInt(matched.version);
+ }
+
+ if ( matched.platform ) {
+ browser[ matched.platform ] = true;
+ }
+
+ // These are all considered mobile platforms, meaning they run a mobile browser
+ if ( browser.android || browser.ipad || browser.iphone || browser[ "windows phone" ] ) {
+ browser.mobile = true;
+ }
+
+ // These are all considered desktop platforms, meaning they run a desktop browser
+ if ( browser.cros || browser.mac || browser.linux || browser.win ) {
+ browser.desktop = true;
+ }
+
+ // Chrome, Opera 15+ and Safari are webkit based browsers
+ if ( browser.chrome || browser.opr || browser.safari ) {
+ browser.webkit = true;
+ }
+
+ // IE11 has a new token so we will assign it msie to avoid breaking changes
+ if ( browser.rv )
+ {
+ var ie = "msie";
+
+ matched.browser = ie;
+ browser[ie] = true;
+ }
+
+ // Opera 15+ are identified as opr
+ if ( browser.opr )
+ {
+ var opera = "opera";
+
+ matched.browser = opera;
+ browser[opera] = true;
+ }
+
+ // Stock Android browsers are marked as Safari on Android.
+ if ( browser.safari && browser.android )
+ {
+ var android = "android";
+
+ matched.browser = android;
+ browser[android] = true;
+ }
+
+ // Assign the name and platform variable
+ browser.name = matched.browser;
+ browser.platform = matched.platform;
+
+
+ jQuery.browser = browser;
})( jQuery, window );
\ No newline at end of file
From 1efa52dee883e8d3e4929b644ff1350bf203a62b Mon Sep 17 00:00:00 2001
From: Gabriel Cebrian
Date: Sun, 30 Mar 2014 18:11:40 -0700
Subject: [PATCH 11/62] Bumped to v0.0.6
---
browser.jquery.json | 2 +-
dist/jquery.browser.js | 2 +-
dist/jquery.browser.js.coffee | 2 +-
dist/jquery.browser.min.js | 2 +-
package.json | 2 +-
test/src/jquery.browser.js | 2 +-
6 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/browser.jquery.json b/browser.jquery.json
index 7ef36b5..4e4c14c 100644
--- a/browser.jquery.json
+++ b/browser.jquery.json
@@ -9,7 +9,7 @@
"html5",
"support"
],
- "version": "0.0.5",
+ "version": "0.0.6",
"author": {
"name": "Gabriel Cebrian. Initial implementation by the jQuery Team",
"url": "https://github.com/gabceb/jquery-browser-plugin/wiki/Authors"
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index 01c2bee..3bb26d7 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -1,5 +1,5 @@
/*!
- * jQuery Browser Plugin v0.0.5
+ * jQuery Browser Plugin v0.0.6
* https://github.com/gabceb/jquery-browser-plugin
*
* Original jquery-browser code Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors
diff --git a/dist/jquery.browser.js.coffee b/dist/jquery.browser.js.coffee
index ad6e001..a41d105 100644
--- a/dist/jquery.browser.js.coffee
+++ b/dist/jquery.browser.js.coffee
@@ -1,5 +1,5 @@
#!
-# jQuery Browser Plugin v0.0.5
+# jQuery Browser Plugin v0.0.6
# https://github.com/gabceb/jquery-browser-plugin
#
# Original jquery-browser code Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors
diff --git a/dist/jquery.browser.min.js b/dist/jquery.browser.min.js
index 39ad9a6..eadf06e 100644
--- a/dist/jquery.browser.min.js
+++ b/dist/jquery.browser.min.js
@@ -1,5 +1,5 @@
/*!
- * jQuery Browser Plugin 0.0.5
+ * jQuery Browser Plugin 0.0.6
* https://github.com/gabceb/jquery-browser-plugin
*
* Original jquery-browser code Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors
diff --git a/package.json b/package.json
index 9fc9d8c..a3db42b 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "jquery.browser",
- "version": "0.0.5",
+ "version": "0.0.6",
"authors": [
"Gabriel Cebrian ",
"jQuery Team "
diff --git a/test/src/jquery.browser.js b/test/src/jquery.browser.js
index 01c2bee..3bb26d7 100644
--- a/test/src/jquery.browser.js
+++ b/test/src/jquery.browser.js
@@ -1,5 +1,5 @@
/*!
- * jQuery Browser Plugin v0.0.5
+ * jQuery Browser Plugin v0.0.6
* https://github.com/gabceb/jquery-browser-plugin
*
* Original jquery-browser code Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors
From 560058cea10bb22cc848c48f3ee7a1f7a29a4685 Mon Sep 17 00:00:00 2001
From: Gabriel Cebrian
Date: Sun, 30 Mar 2014 18:32:22 -0700
Subject: [PATCH 12/62] Fixed indentation on test.js
---
test/test.js | 304 +++++++++++++++++++++++++--------------------------
1 file changed, 152 insertions(+), 152 deletions(-)
diff --git a/test/test.js b/test/test.js
index b895230..5bd5b4f 100644
--- a/test/test.js
+++ b/test/test.js
@@ -1,20 +1,20 @@
test_url = "http://localhost:8008";
var casper = require('casper').create({
- verbose: true
+ verbose: true
});
require('casperserver.js').create(casper);
casper.server.start();
casper.on('exit', function(status){
- casper.server.end();
+ casper.server.end();
});
ua = {
- chrome : {
- windows: "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36",
- mac: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36",
+ chrome : {
+ windows: "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36",
+ mac: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36",
android: "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Mobile Safari/537.36",
linux: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36",
cros: "Mozilla/5.0 (X11; CrOS i686 14.811.2011) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.834.0 Safari/535.1",
@@ -23,34 +23,34 @@ ua = {
chromeOsVersion: "14.0.834.0",
chromeOsVersionNumber: 14,
name : "chrome"
- },
- safari : {
- mac: "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9) AppleWebKit/537.71 (KHTML, like Gecko) Version/7.0 Safari/537.71",
- ipad: "Mozilla/5.0(iPad; U; CPU iPhone OS 7_0_3 like Mac OS X; en-us) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B508 Safari/9537.53",
- iphone: "Mozilla/5.0(iPhone; CPU iPhone OS 7_0_3 like Mac OS X; en-us) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B508 Safari/9537.53",
- version: "7.0",
+ },
+ safari : {
+ mac: "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9) AppleWebKit/537.71 (KHTML, like Gecko) Version/7.0 Safari/537.71",
+ ipad: "Mozilla/5.0(iPad; U; CPU iPhone OS 7_0_3 like Mac OS X; en-us) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B508 Safari/9537.53",
+ iphone: "Mozilla/5.0(iPhone; CPU iPhone OS 7_0_3 like Mac OS X; en-us) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B508 Safari/9537.53",
+ version: "7.0",
versionNumber: 7,
name : "safari"
- },
- firefox : {
- windows: "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0",
- mac: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:25.0) Gecko/20100101 Firefox/25.0",
+ },
+ firefox : {
+ windows: "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0",
+ mac: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:25.0) Gecko/20100101 Firefox/25.0",
linux: "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:25.0) Gecko/20100101 Firefox/25.0",
- version: "25.0",
+ version: "25.0",
versionNumber: 25,
name : "mozilla"
- },
- ie : {
- windows : {
- v_9: "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0)",
- v_10: "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)",
- v_11: 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko'
- },
- win_phone : {
- v_10: "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 1020)"
- },
- name : "msie"
- },
+ },
+ ie : {
+ windows : {
+ v_9: "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0)",
+ v_10: "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)",
+ v_11: 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko'
+ },
+ win_phone : {
+ v_10: "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 1020)"
+ },
+ name : "msie"
+ },
opera : {
v_15: {
mac : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.20 Safari/537.36 OPR/15.0.1147.18",
@@ -86,23 +86,23 @@ casper.test.begin("when using Chrome on Windows", 7, function(test) {
casper.userAgent(ua.chrome.windows);
casper.start(test_url).then(function(){
-
- var browser = casper.evaluate(function(){
- return $.browser;
- });
-
- test.assert(browser.chrome, "Browser should be Chrome");
+
+ var browser = casper.evaluate(function(){
+ return $.browser;
+ });
+
+ test.assert(browser.chrome, "Browser should be Chrome");
test.assertEquals(browser.name, ua.chrome.name,"Browser name should be " + ua.chrome.name);
- test.assert(browser.webkit, "Browser should be WebKit based");
- test.assertEquals(browser.version, ua.chrome.version, "String version should be " + ua.chrome.version);
+ test.assert(browser.webkit, "Browser should be WebKit based");
+ test.assertEquals(browser.version, ua.chrome.version, "String version should be " + ua.chrome.version);
test.assertEquals(browser.versionNumber, ua.chrome.versionNumber, "Number version should be " + ua.chrome.versionNumber);
- test.assert(browser.desktop, "Browser platform should be desktop");
- test.assert(browser.win, "Platform should be Windows");
+ test.assert(browser.desktop, "Browser platform should be desktop");
+ test.assert(browser.win, "Platform should be Windows");
}).run(function(){
- test.done();
+ test.done();
});
});
@@ -110,23 +110,23 @@ casper.test.begin("when using Chrome on Mac", 7, function(test) {
casper.userAgent(ua.chrome.mac);
casper.start(test_url).then(function(){
-
- var browser = casper.evaluate(function(){
- return $.browser;
- });
-
- test.assert(browser.chrome, "Browser should be Chrome");
+
+ var browser = casper.evaluate(function(){
+ return $.browser;
+ });
+
+ test.assert(browser.chrome, "Browser should be Chrome");
test.assertEquals(browser.name, ua.chrome.name,"Browser name should be " + ua.chrome.name);
- test.assert(browser.webkit, "Browser should be WebKit based");
- test.assertEquals(browser.version, ua.chrome.version, "Version should be " + ua.chrome.version);
+ test.assert(browser.webkit, "Browser should be WebKit based");
+ test.assertEquals(browser.version, ua.chrome.version, "Version should be " + ua.chrome.version);
test.assertEquals(browser.versionNumber, ua.chrome.versionNumber, "Number version should be " + ua.chrome.versionNumber);
- test.assert(browser.desktop, "Browser platform should be desktop");
- test.assert(browser.mac, "Platform should be Mac");
+ test.assert(browser.desktop, "Browser platform should be desktop");
+ test.assert(browser.mac, "Platform should be Mac");
}).run(function(){
- test.done();
+ test.done();
});
});
@@ -134,7 +134,7 @@ casper.test.begin("when using Chrome on an Android device", 7, function(test) {
casper.userAgent(ua.chrome.android);
casper.start(test_url).then(function(){
-
+
var browser = casper.evaluate(function(){
return $.browser;
});
@@ -158,7 +158,7 @@ casper.test.begin("when using Chrome on Linux", 7, function(test) {
casper.userAgent(ua.chrome.linux);
casper.start(test_url).then(function(){
-
+
var browser = casper.evaluate(function(){
return $.browser;
});
@@ -182,7 +182,7 @@ casper.test.begin("when using Chrome on Chrome OS", 7, function(test) {
casper.userAgent(ua.chrome.cros);
casper.start(test_url).then(function(){
-
+
var browser = casper.evaluate(function(){
return $.browser;
});
@@ -206,24 +206,24 @@ casper.test.begin("when using Firefox on Windows", 7, function(test) {
casper.userAgent(ua.firefox.windows);
casper.start(test_url).then(function(){
-
- var browser = casper.evaluate(function(){
- return $.browser;
- });
+
+ var browser = casper.evaluate(function(){
+ return $.browser;
+ });
- test.assert(browser.mozilla, "Browser should be Mozilla");
+ test.assert(browser.mozilla, "Browser should be Mozilla");
test.assertEquals(browser.name, ua.firefox.name,"Browser name should be " + ua.firefox.name);
- test.assertEquals(browser.version, ua.firefox.version, "Version should be " + ua.firefox.version);
+ test.assertEquals(browser.version, ua.firefox.version, "Version should be " + ua.firefox.version);
test.assertEquals(browser.versionNumber, ua.firefox.versionNumber, "Version should be " + ua.firefox.versionNumber);
- test.assert(browser.desktop, "Browser platform should be desktop");
- test.assert(browser.win, "Platform should be Windows");
+ test.assert(browser.desktop, "Browser platform should be desktop");
+ test.assert(browser.win, "Platform should be Windows");
- test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
+ test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
}).run(function(){
- test.done();
+ test.done();
});
});
@@ -231,24 +231,24 @@ casper.test.begin("when using Firefox on Mac", 7, function(test) {
casper.userAgent(ua.firefox.mac);
casper.start(test_url).then(function(){
-
- var browser = casper.evaluate(function(){
- return $.browser;
- });
-
- test.assert(browser.mozilla, "Browser should be Mozilla");
+
+ var browser = casper.evaluate(function(){
+ return $.browser;
+ });
+
+ test.assert(browser.mozilla, "Browser should be Mozilla");
test.assertEquals(browser.name, ua.firefox.name,"Browser name should be " + ua.firefox.name);
- test.assertEquals(browser.version, ua.firefox.version, "Version should be " + ua.firefox.version);
+ test.assertEquals(browser.version, ua.firefox.version, "Version should be " + ua.firefox.version);
test.assertEquals(browser.versionNumber, ua.firefox.versionNumber, "Version should be " + ua.firefox.versionNumber);
- test.assert(browser.desktop, "Browser platform should be desktop");
- test.assert(browser.mac, "Platform should be Mac");
+ test.assert(browser.desktop, "Browser platform should be desktop");
+ test.assert(browser.mac, "Platform should be Mac");
- test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
+ test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
}).run(function(){
- test.done();
+ test.done();
});
});
@@ -256,7 +256,7 @@ casper.test.begin("when using Firefox on Linux", 7, function(test) {
casper.userAgent(ua.firefox.linux);
casper.start(test_url).then(function(){
-
+
var browser = casper.evaluate(function(){
return $.browser;
});
@@ -281,23 +281,23 @@ casper.test.begin("when using Safari on Mac", 7, function(test) {
casper.userAgent(ua.safari.mac);
casper.start(test_url).then(function(){
-
- var browser = casper.evaluate(function(){
- return $.browser;
- });
-
- test.assert(browser.safari, "Browser should be Safari");
+
+ var browser = casper.evaluate(function(){
+ return $.browser;
+ });
+
+ test.assert(browser.safari, "Browser should be Safari");
test.assertEquals(browser.name, ua.safari.name,"Browser name should be " + ua.safari.name);
- test.assert(browser.webkit, "Browser should be WebKit based");
- test.assertEquals(browser.version, ua.safari.version, "Version should be " + ua.safari.version);
+ test.assert(browser.webkit, "Browser should be WebKit based");
+ test.assertEquals(browser.version, ua.safari.version, "Version should be " + ua.safari.version);
test.assertEquals(browser.versionNumber, ua.safari.versionNumber, "Version should be " + ua.safari.versionNumber);
- test.assert(browser.desktop, "Browser platform should be desktop");
- test.assert(browser.mac, "Platform should be Mac");
+ test.assert(browser.desktop, "Browser platform should be desktop");
+ test.assert(browser.mac, "Platform should be Mac");
}).run(function(){
- test.done();
+ test.done();
});
});
@@ -305,23 +305,23 @@ casper.test.begin("when using Safari on iPad", 7, function(test) {
casper.userAgent(ua.safari.ipad);
casper.start(test_url).then(function(){
-
- var browser = casper.evaluate(function(){
- return $.browser;
- });
-
- test.assert(browser.safari, "Browser should be Safari");
- test.assertEquals(browser.name, ua.safari.name,"Browser name should be " + ua.safari.name);
+
+ var browser = casper.evaluate(function(){
+ return $.browser;
+ });
+
+ test.assert(browser.safari, "Browser should be Safari");
+ test.assertEquals(browser.name, ua.safari.name,"Browser name should be " + ua.safari.name);
- test.assert(browser.webkit, "Browser should be WebKit based");
- test.assertEquals(browser.version, ua.safari.version, "Version should be " + ua.safari.version);
- test.assertEquals(browser.versionNumber, ua.safari.versionNumber, "Version number should be " + ua.safari.versionNumber);
+ test.assert(browser.webkit, "Browser should be WebKit based");
+ test.assertEquals(browser.version, ua.safari.version, "Version should be " + ua.safari.version);
+ test.assertEquals(browser.versionNumber, ua.safari.versionNumber, "Version number should be " + ua.safari.versionNumber);
- test.assert(browser.mobile, "Browser platform should be mobile");
- test.assert(browser.ipad, "Platform should be iPad");
+ test.assert(browser.mobile, "Browser platform should be mobile");
+ test.assert(browser.ipad, "Platform should be iPad");
}).run(function(){
- test.done();
+ test.done();
});
});
@@ -329,23 +329,23 @@ casper.test.begin("when using Safari on iPhone", 7, function(test) {
casper.userAgent(ua.safari.iphone);
casper.start(test_url).then(function(){
-
- var browser = casper.evaluate(function(){
- return $.browser;
- });
-
- test.assert(browser.safari, "Browser should be Safari");
+
+ var browser = casper.evaluate(function(){
+ return $.browser;
+ });
+
+ test.assert(browser.safari, "Browser should be Safari");
test.assertEquals(browser.name, ua.safari.name,"Browser name should be " + ua.safari.name);
- test.assert(browser.webkit, "Browser should be WebKit based");
- test.assertEquals(browser.version, ua.safari.version, "Version should be " + ua.safari.version);
+ test.assert(browser.webkit, "Browser should be WebKit based");
+ test.assertEquals(browser.version, ua.safari.version, "Version should be " + ua.safari.version);
test.assertEquals(browser.versionNumber, ua.safari.versionNumber, "Version number should be " + ua.safari.versionNumber);
- test.assert(browser.mobile, "Browser platform should be mobile");
- test.assert(browser.iphone, "Platform should be iPhone");
+ test.assert(browser.mobile, "Browser platform should be mobile");
+ test.assert(browser.iphone, "Platform should be iPhone");
}).run(function(){
- test.done();
+ test.done();
});
});
@@ -353,24 +353,24 @@ casper.test.begin("when using IE9", 7, function(test) {
casper.userAgent(ua.ie.windows.v_9);
casper.start(test_url).then(function(){
-
- var browser = casper.evaluate(function(){
- return $.browser;
- });
-
- test.assert(browser.msie, "Browser should be IE");
+
+ var browser = casper.evaluate(function(){
+ return $.browser;
+ });
+
+ test.assert(browser.msie, "Browser should be IE");
test.assertEquals(browser.name, ua.ie.name,"Browser name should be " + ua.ie.name);
- test.assertEquals(browser.version, "9.0", "Version should be 9.0");
+ test.assertEquals(browser.version, "9.0", "Version should be 9.0");
test.assertEquals(browser.versionNumber, 9, "Version should be 9");
- test.assert(browser.desktop, "Browser platform should be desktop");
- test.assert(browser.win, "Platform should be Windows");
+ test.assert(browser.desktop, "Browser platform should be desktop");
+ test.assert(browser.win, "Platform should be Windows");
- test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
+ test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
}).run(function(){
- test.done();
+ test.done();
});
});
@@ -378,24 +378,24 @@ casper.test.begin("when using IE10", 7, function(test) {
casper.userAgent(ua.ie.windows.v_10);
casper.start(test_url).then(function(){
-
- var browser = casper.evaluate(function(){
- return $.browser;
- });
-
- test.assert(browser.msie, "Browser should be IE");
+
+ var browser = casper.evaluate(function(){
+ return $.browser;
+ });
+
+ test.assert(browser.msie, "Browser should be IE");
test.assertEquals(browser.name, ua.ie.name,"Browser name should be " + ua.ie.name);
- test.assertEquals(browser.version, "10.0", "Version should be 10");
+ test.assertEquals(browser.version, "10.0", "Version should be 10");
test.assertEquals(browser.versionNumber, 10, "Version should be 10");
- test.assert(browser.desktop, "Browser platform should be desktop");
- test.assert(browser.win, "Platform should be Windows");
+ test.assert(browser.desktop, "Browser platform should be desktop");
+ test.assert(browser.win, "Platform should be Windows");
- test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
+ test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
}).run(function(){
- test.done();
+ test.done();
});
});
@@ -403,24 +403,24 @@ casper.test.begin("when using IE11", 7, function(test) {
casper.userAgent(ua.ie.windows.v_11);
casper.start(test_url).then(function(){
-
- var browser = casper.evaluate(function(){
- return $.browser;
- });
-
- test.assert(browser.msie, "Browser should be IE");
+
+ var browser = casper.evaluate(function(){
+ return $.browser;
+ });
+
+ test.assert(browser.msie, "Browser should be IE");
test.assertEquals(browser.name, ua.ie.name,"Browser name should be " + ua.ie.name);
- test.assertEquals(browser.version, "11.0", "Version should be 11.0");
+ test.assertEquals(browser.version, "11.0", "Version should be 11.0");
test.assertEquals(browser.versionNumber, 11, "Version should be 11");
- test.assert(browser.desktop, "Browser platform should be desktop");
- test.assert(browser.win, "Platform should be Windows");
+ test.assert(browser.desktop, "Browser platform should be desktop");
+ test.assert(browser.win, "Platform should be Windows");
- test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
+ test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
}).run(function(){
- test.done();
+ test.done();
});
});
@@ -428,9 +428,9 @@ casper.test.begin("when using IE10 on a Windows Phone", 7, function(test) {
casper.userAgent(ua.ie.win_phone.v_10);
casper.start(test_url).then(function(){
-
+
var browser = casper.evaluate(function(){
- return $.browser;
+ return $.browser;
});
test.assert(browser.msie, "Browser should be IE");
@@ -453,7 +453,7 @@ casper.test.begin("when using Opera 15+ on Windows", 7, function(test) {
casper.userAgent(ua.opera.v_15.windows);
casper.start(test_url).then(function(){
-
+
var browser = casper.evaluate(function(){
return $.browser;
});
@@ -478,7 +478,7 @@ casper.test.begin("when using Opera 15+ on Mac", 7, function(test) {
casper.userAgent(ua.opera.v_15.mac);
casper.start(test_url).then(function(){
-
+
var browser = casper.evaluate(function(){
return $.browser;
});
@@ -503,7 +503,7 @@ casper.test.begin("when using Opera 10 on Windows", 7, function(test) {
casper.userAgent(ua.opera.v_10.windows);
casper.start(test_url).then(function(){
-
+
var browser = casper.evaluate(function(){
return $.browser;
});
@@ -528,7 +528,7 @@ casper.test.begin("when using Opera 10 on Mac", 7, function(test) {
casper.userAgent(ua.opera.v_10.mac);
casper.start(test_url).then(function(){
-
+
var browser = casper.evaluate(function(){
return $.browser;
});
@@ -553,7 +553,7 @@ casper.test.begin("when using Opera 12.11 on Windows", 7, function(test) {
casper.userAgent(ua.opera.v_12.windows);
casper.start(test_url).then(function(){
-
+
var browser = casper.evaluate(function(){
return $.browser;
});
@@ -578,7 +578,7 @@ casper.test.begin("when using Opera 12.11 on Mac", 7, function(test) {
casper.userAgent(ua.opera.v_12.mac);
casper.start(test_url).then(function(){
-
+
var browser = casper.evaluate(function(){
return $.browser;
});
@@ -603,7 +603,7 @@ casper.test.begin("when using Android 4.4 stock browser on Android", 6, function
casper.userAgent(ua.android.v_4_4.android);
casper.start(test_url).then(function(){
-
+
var browser = casper.evaluate(function(){
return $.browser;
});
From 07ed2226500c8d076a45e13a232a3e96499463fa Mon Sep 17 00:00:00 2001
From: Stephane Thomas
Date: Mon, 7 Apr 2014 11:23:40 -0700
Subject: [PATCH 13/62] Correct plugin coffee edition - Removed javascript
'var' element
---
dist/jquery.browser.js.coffee | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dist/jquery.browser.js.coffee b/dist/jquery.browser.js.coffee
index a41d105..6b041f3 100644
--- a/dist/jquery.browser.js.coffee
+++ b/dist/jquery.browser.js.coffee
@@ -65,7 +65,7 @@
# Stock Android browsers are marked as safari on Android.
if browser.safari && browser.android
- var android = 'android'
+ android = 'android'
matched.browser = android
browser[android] = true
@@ -75,4 +75,4 @@
browser.platform = matched.platform
jQuery.browser = browser
-) jQuery, window
\ No newline at end of file
+) jQuery, window
From 7a3efb9697cfa566eb8b4bceab4ecd99a3af2b28 Mon Sep 17 00:00:00 2001
From: Stephane Thomas
Date: Mon, 7 Apr 2014 11:29:54 -0700
Subject: [PATCH 14/62] Correct typo on coffee jquery-browser-plugin
---
dist/jquery.browser.js.coffee | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dist/jquery.browser.js.coffee b/dist/jquery.browser.js.coffee
index 6b041f3..d236bfe 100644
--- a/dist/jquery.browser.js.coffee
+++ b/dist/jquery.browser.js.coffee
@@ -42,7 +42,7 @@
browser.mobile = true
# These are all considered desktop platforms, meaning they run a desktop browser
- if brower.cros or browser.mac or browser.linux or browser.win
+ if browser.cros or browser.mac or browser.linux or browser.win
browser.desktop = true
# Chrome, Opera 15+ and Safari are webkit based browsers
From 03723be1e223436f3189c9921811cca28f544752 Mon Sep 17 00:00:00 2001
From: Michiel ter Reehorst
Date: Tue, 29 Apr 2014 08:14:02 +0200
Subject: [PATCH 15/62] Add a main file which is returned on require
Point to the `jquery.browser.js` file when requiring this module. At the moment it can't be required by simply doing `require('jquery.browser')`.
---
package.json | 1 +
1 file changed, 1 insertion(+)
diff --git a/package.json b/package.json
index a3db42b..4312f40 100644
--- a/package.json
+++ b/package.json
@@ -6,6 +6,7 @@
"jQuery Team "
],
"description": "A jQuery plugin for browser detection.",
+ "main": "dist/jquery.browser.js",
"repository": "git@github.com:gabceb/jquery-browser-plugin.git",
"devDependencies": {
"webserver": "*",
From ae5e88aa7a26f583e8865c3961ba857918c4c9c1 Mon Sep 17 00:00:00 2001
From: JC Brand
Date: Mon, 6 Oct 2014 21:24:09 +0200
Subject: [PATCH 16/62] Make the plugin AMD friendly.
---
dist/jquery.browser.js | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index 3bb26d7..b22317b 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -13,7 +13,17 @@
* Date: 2013-07-29T17:23:27-07:00
*/
-(function( jQuery, window, undefined ) {
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module.
+ define(['jquery'], function ($) {
+ factory($, root);
+ });
+ } else {
+ // Browser globals
+ factory(jQuery, root);
+ }
+}(this, function(jQuery, window) {
"use strict";
var matched, browser;
@@ -107,6 +117,6 @@
browser.name = matched.browser;
browser.platform = matched.platform;
-
jQuery.browser = browser;
-})( jQuery, window );
\ No newline at end of file
+ return browser;
+}));
From 174a1760b86eedea1ed7a9ae65b78704c94efeb5 Mon Sep 17 00:00:00 2001
From: Gabriel Cebrian
Date: Sun, 28 Sep 2014 18:53:11 -0700
Subject: [PATCH 17/62] Remove adding a new reference to make it work with
casper 1.1.0-beta3
---
test/test.js | 4 ----
1 file changed, 4 deletions(-)
diff --git a/test/test.js b/test/test.js
index 5bd5b4f..1580f5e 100644
--- a/test/test.js
+++ b/test/test.js
@@ -1,9 +1,5 @@
test_url = "http://localhost:8008";
-var casper = require('casper').create({
- verbose: true
-});
-
require('casperserver.js').create(casper);
casper.server.start();
From c91197027f272f83a9cc046db7915e113358d7f2 Mon Sep 17 00:00:00 2001
From: Gabriel Cebrian
Date: Sun, 28 Sep 2014 20:44:17 -0700
Subject: [PATCH 18/62] Make the grunt test task copy the source file and then
test Changed versions and browsers on testing
---
Gruntfile.js | 2 +-
dist/jquery.browser.min.js | 4 +-
test/src/jquery.browser.js | 85 +++++++++++++++++++-------------------
test/test.js | 8 ++--
4 files changed, 50 insertions(+), 49 deletions(-)
diff --git a/Gruntfile.js b/Gruntfile.js
index c2c4f4e..ef523ae 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -43,5 +43,5 @@ module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-exec');
grunt.registerTask('default', ['jshint', 'uglify', 'copy']);
- grunt.registerTask('test', ['exec']);
+ grunt.registerTask('test', ['default', 'exec']);
};
\ No newline at end of file
diff --git a/dist/jquery.browser.min.js b/dist/jquery.browser.min.js
index eadf06e..d5f6aa3 100644
--- a/dist/jquery.browser.min.js
+++ b/dist/jquery.browser.min.js
@@ -10,5 +10,5 @@
*
* Released under the MIT license
*
- * Date: 30-03-2014
- */!function(a,b){"use strict";var c,d;if(a.uaMatch=function(a){a=a.toLowerCase();var b=/(opr)[\/]([\w.]+)/.exec(a)||/(chrome)[ \/]([\w.]+)/.exec(a)||/(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[],c=/(ipad)/.exec(a)||/(iphone)/.exec(a)||/(android)/.exec(a)||/(windows phone)/.exec(a)||/(win)/.exec(a)||/(mac)/.exec(a)||/(linux)/.exec(a)||/(cros)/i.exec(a)||[];return{browser:b[3]||b[1]||"",version:b[2]||"0",platform:c[0]||""}},c=a.uaMatch(b.navigator.userAgent),d={},c.browser&&(d[c.browser]=!0,d.version=c.version,d.versionNumber=parseInt(c.version)),c.platform&&(d[c.platform]=!0),(d.android||d.ipad||d.iphone||d["windows phone"])&&(d.mobile=!0),(d.cros||d.mac||d.linux||d.win)&&(d.desktop=!0),(d.chrome||d.opr||d.safari)&&(d.webkit=!0),d.rv){var e="msie";c.browser=e,d[e]=!0}if(d.opr){var f="opera";c.browser=f,d[f]=!0}if(d.safari&&d.android){var g="android";c.browser=g,d[g]=!0}d.name=c.browser,d.platform=c.platform,a.browser=d}(jQuery,window);
\ No newline at end of file
+ * Date: 28-09-2014
+ */!function(a,b){"use strict";var c,d;if(a.uaMatch=function(a){a=a.toLowerCase();var b=/(opr)[\/]([\w.]+)/.exec(a)||/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[],c=/(ipad)/.exec(a)||/(iphone)/.exec(a)||/(android)/.exec(a)||/(windows phone)/.exec(a)||/(win)/.exec(a)||/(mac)/.exec(a)||/(linux)/.exec(a)||/(cros)/.exec(a)||[];return{browser:b[3]||b[1]||"",version:b[4]||b[2],versionNumber:b[2]||"0",platform:c[0]||""}},c=a.uaMatch(b.navigator.userAgent),d={},c.browser&&(d[c.browser]=!0,d.version=c.version,d.versionNumber=parseInt(c.versionNumber)),c.platform&&(d[c.platform]=!0),(d.android||d.ipad||d.iphone||d["windows phone"])&&(d.mobile=!0),(d.cros||d.mac||d.linux||d.win)&&(d.desktop=!0),(d.chrome||d.opr||d.safari)&&(d.webkit=!0),d.rv){var e="msie";c.browser=e,d[e]=!0}if(d.opr){var f="opera";c.browser=f,d[f]=!0}if(d.safari&&d.android){var g="android";c.browser=g,d[g]=!0}d.name=c.browser,d.platform=c.platform,a.browser=d}(jQuery,window);
\ No newline at end of file
diff --git a/test/src/jquery.browser.js b/test/src/jquery.browser.js
index 3bb26d7..ceea0e4 100644
--- a/test/src/jquery.browser.js
+++ b/test/src/jquery.browser.js
@@ -21,86 +21,87 @@
jQuery.uaMatch = function( ua ) {
ua = ua.toLowerCase();
- var match = /(opr)[\/]([\w.]+)/.exec( ua ) ||
- /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
- /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
- /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
- /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
- /(msie) ([\w.]+)/.exec( ua ) ||
- ua.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec( ua ) ||
- ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
- [];
-
- var platform_match = /(ipad)/.exec( ua ) ||
- /(iphone)/.exec( ua ) ||
- /(android)/.exec( ua ) ||
- /(windows phone)/.exec( ua ) ||
- /(win)/.exec( ua ) ||
- /(mac)/.exec( ua ) ||
- /(linux)/.exec( ua ) ||
- /(cros)/i.exec( ua ) ||
- [];
-
- return {
- browser: match[ 3 ] || match[ 1 ] || "",
- version: match[ 2 ] || "0",
- platform: platform_match[ 0 ] || ""
- };
+ var match = /(opr)[\/]([\w.]+)/.exec( ua ) ||
+ /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
+ /(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
+ /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
+ /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
+ /(msie) ([\w.]+)/.exec( ua ) ||
+ ua.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec( ua ) ||
+ ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
+ [];
+
+ var platform_match = /(ipad)/.exec( ua ) ||
+ /(iphone)/.exec( ua ) ||
+ /(android)/.exec( ua ) ||
+ /(windows phone)/.exec( ua ) ||
+ /(win)/.exec( ua ) ||
+ /(mac)/.exec( ua ) ||
+ /(linux)/.exec( ua ) ||
+ /(cros)/.exec( ua ) ||
+ [];
+
+ return {
+ browser: match[ 3 ] || match[ 1 ] || "",
+ version: match[ 4 ] || match[ 2 ],
+ versionNumber: match[ 2 ] || "0",
+ platform: platform_match[ 0 ] || ""
+ };
};
matched = jQuery.uaMatch( window.navigator.userAgent );
browser = {};
if ( matched.browser ) {
- browser[ matched.browser ] = true;
- browser.version = matched.version;
- browser.versionNumber = parseInt(matched.version);
+ browser[ matched.browser ] = true;
+ browser.version = matched.version;
+ browser.versionNumber = parseInt(matched.versionNumber);
}
if ( matched.platform ) {
- browser[ matched.platform ] = true;
+ browser[ matched.platform ] = true;
}
// These are all considered mobile platforms, meaning they run a mobile browser
if ( browser.android || browser.ipad || browser.iphone || browser[ "windows phone" ] ) {
- browser.mobile = true;
+ browser.mobile = true;
}
// These are all considered desktop platforms, meaning they run a desktop browser
if ( browser.cros || browser.mac || browser.linux || browser.win ) {
- browser.desktop = true;
+ browser.desktop = true;
}
// Chrome, Opera 15+ and Safari are webkit based browsers
if ( browser.chrome || browser.opr || browser.safari ) {
- browser.webkit = true;
+ browser.webkit = true;
}
// IE11 has a new token so we will assign it msie to avoid breaking changes
if ( browser.rv )
{
- var ie = "msie";
+ var ie = "msie";
- matched.browser = ie;
- browser[ie] = true;
+ matched.browser = ie;
+ browser[ie] = true;
}
// Opera 15+ are identified as opr
if ( browser.opr )
{
- var opera = "opera";
+ var opera = "opera";
- matched.browser = opera;
- browser[opera] = true;
+ matched.browser = opera;
+ browser[opera] = true;
}
// Stock Android browsers are marked as Safari on Android.
if ( browser.safari && browser.android )
{
- var android = "android";
+ var android = "android";
- matched.browser = android;
- browser[android] = true;
+ matched.browser = android;
+ browser[android] = true;
}
// Assign the name and platform variable
@@ -109,4 +110,4 @@
jQuery.browser = browser;
-})( jQuery, window );
\ No newline at end of file
+})( jQuery, window );
diff --git a/test/test.js b/test/test.js
index 1580f5e..538d96b 100644
--- a/test/test.js
+++ b/test/test.js
@@ -22,9 +22,9 @@ ua = {
},
safari : {
mac: "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9) AppleWebKit/537.71 (KHTML, like Gecko) Version/7.0 Safari/537.71",
- ipad: "Mozilla/5.0(iPad; U; CPU iPhone OS 7_0_3 like Mac OS X; en-us) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B508 Safari/9537.53",
- iphone: "Mozilla/5.0(iPhone; CPU iPhone OS 7_0_3 like Mac OS X; en-us) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B508 Safari/9537.53",
- version: "7.0",
+ ipad: "Mozilla/5.0 (iPad; CPU OS 7_0 like Mac OS X) AppleWebKit/537.71 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53",
+ iphone: "Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.71 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53",
+ version: "537.71",
versionNumber: 7,
name : "safari"
},
@@ -71,7 +71,7 @@ ua = {
android : {
v_4_4: {
android : "Mozilla/5.0 (Linux; Android 4.4.1; Nexus 5 Build/KOT49E) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36",
- version: "4.0",
+ version: "537.36",
versionNumber: 4
},
name: "android"
From 83e56995fcfe91106777f354abc7a0426ec15b66 Mon Sep 17 00:00:00 2001
From: Gabriel Cebrian
Date: Wed, 8 Oct 2014 15:25:03 -0700
Subject: [PATCH 19/62] Removed coffeescript file. Closes #38
---
dist/jquery.browser.js.coffee | 78 -----------------------------------
1 file changed, 78 deletions(-)
delete mode 100644 dist/jquery.browser.js.coffee
diff --git a/dist/jquery.browser.js.coffee b/dist/jquery.browser.js.coffee
deleted file mode 100644
index d236bfe..0000000
--- a/dist/jquery.browser.js.coffee
+++ /dev/null
@@ -1,78 +0,0 @@
-#!
-# jQuery Browser Plugin v0.0.6
-# https://github.com/gabceb/jquery-browser-plugin
-#
-# Original jquery-browser code Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors
-# http://jquery.org/license
-#
-# Modifications Copyright 2013 Gabriel Cebrian
-# https://github.com/gabceb
-#
-# Released under the MIT license
-#
-# Date: 2013-07-29T17:23:27-07:00
-#
-
-((jQuery, window, undefined_) ->
- "use strict"
- matched = undefined
- browser = undefined
-
- jQuery.uaMatch = (ua) ->
- ua = ua.toLowerCase()
- match = /(opr)[\/]([\w.]+)/.exec(ua) or /(chrome)[ \/]([\w.]+)/.exec(ua) or /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(ua) or /(webkit)[ \/]([\w.]+)/.exec(ua) or /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) or /(msie) ([\w.]+)/.exec(ua) or ua.indexOf("trident") >= 0 and /(rv)(?::| )([\w.]+)/.exec(ua) or ua.indexOf("compatible") < 0 and /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) or []
- platform_match = /(ipad)/.exec(ua) or /(iphone)/.exec(ua) or /(android)/.exec(ua) or /(windows phone)/.exec(ua) or /(win)/.exec(ua) or /(mac)/.exec(ua) or /(linux)/.exec(ua) or /(cros)/i.exec(ua) or []
- browser: match[3] or match[1] or ""
- version: match[2] or "0"
- platform: platform_match[0] or ""
-
- matched = jQuery.uaMatch(window.navigator.userAgent)
- browser = {}
-
- if matched.browser
- browser[matched.browser] = true
- browser.version = matched.version
- browser.versionNumber = parseInt(matched.version)
-
- if matched.platform
- browser[matched.platform] = true
-
- # These are all considered mobile platforms, meaning they run a mobile browser
- if browser.android or browser.ipad or browser.iphone or browser["windows phone"]
- browser.mobile = true
-
- # These are all considered desktop platforms, meaning they run a desktop browser
- if browser.cros or browser.mac or browser.linux or browser.win
- browser.desktop = true
-
- # Chrome, Opera 15+ and Safari are webkit based browsers
- if browser.chrome or browser.opr or browser.safari
- browser.webkit = true
-
- # IE11 has a new token so we will assign it msie to avoid breaking changes
- if browser.rv
- ie = "msie"
-
- matched.browser = ie
- browser[ie] = true
-
- # Opera 15+ are identified as opr
- if browser.opr
- opera = "opera"
-
- matched.browser = opera
- browser[opera] = true
-
- # Stock Android browsers are marked as safari on Android.
- if browser.safari && browser.android
- android = 'android'
-
- matched.browser = android
- browser[android] = true
-
- # Assign the name and platform variable
- browser.name = matched.browser
- browser.platform = matched.platform
-
-jQuery.browser = browser
-) jQuery, window
From 8b1f3699eea825717fe8210d5fb47e269e2e9315 Mon Sep 17 00:00:00 2001
From: phistuck
Date: Sun, 16 Nov 2014 16:06:23 +0200
Subject: [PATCH 20/62] Supported the deceptive Internet Explorer 12
Internet Explorer 12 disguises as Chrome 36, but adds a new Edge/x.x token.
https://gist.github.com/jacobrossi/c9699b27df2f4e97c0bd
Sneaky.
---
dist/jquery.browser.js | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index b22317b..ddacbe6 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -31,7 +31,8 @@
jQuery.uaMatch = function( ua ) {
ua = ua.toLowerCase();
- var match = /(opr)[\/]([\w.]+)/.exec( ua ) ||
+ var match = /(edge)\/([\w.]+)/.exec( ua ) ||
+ /(opr)[\/]([\w.]+)/.exec( ua ) ||
/(chrome)[ \/]([\w.]+)/.exec( ua ) ||
/(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
@@ -87,7 +88,8 @@
}
// IE11 has a new token so we will assign it msie to avoid breaking changes
- if ( browser.rv )
+ // IE12 disguises as Chrome, but adds a new Edge token.
+ if ( browser.rv || browser.edge )
{
var ie = "msie";
From 649d140458c1a0c97b3f58a3953222a3c998f2ce Mon Sep 17 00:00:00 2001
From: phistuck
Date: Mon, 17 Nov 2014 10:37:25 +0200
Subject: [PATCH 21/62] Added a test for desktop Internet Explorer 12
A simple copy and paste of the Internet Explorer 11 test and a few digit change.
---
test/test.js | 28 +++++++++++++++++++++++++++-
1 file changed, 27 insertions(+), 1 deletion(-)
diff --git a/test/test.js b/test/test.js
index 538d96b..06a0529 100644
--- a/test/test.js
+++ b/test/test.js
@@ -40,7 +40,8 @@ ua = {
windows : {
v_9: "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0)",
v_10: "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)",
- v_11: 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko'
+ v_11: 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko',
+ v_12: 'Mozilla/5.0 (Windows NT 6.4; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36 Edge/12.0'
},
win_phone : {
v_10: "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 1020)"
@@ -445,6 +446,31 @@ casper.test.begin("when using IE10 on a Windows Phone", 7, function(test) {
});
});
+casper.test.begin("when using IE12", 7, function(test) {
+ casper.userAgent(ua.ie.windows.v_12);
+
+ casper.start(test_url).then(function(){
+
+ var browser = casper.evaluate(function(){
+ return $.browser;
+ });
+
+ test.assert(browser.msie, "Browser should be IE");
+ test.assertEquals(browser.name, ua.ie.name,"Browser name should be " + ua.ie.name);
+
+ test.assertEquals(browser.version, "12.0", "Version should be 12.0");
+ test.assertEquals(browser.versionNumber, 12, "Version should be 12");
+
+ test.assert(browser.desktop, "Browser platform should be desktop");
+ test.assert(browser.win, "Platform should be Windows");
+
+ test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
+
+ }).run(function(){
+ test.done();
+ });
+});
+
casper.test.begin("when using Opera 15+ on Windows", 7, function(test) {
casper.userAgent(ua.opera.v_15.windows);
From 1b56b02c7a059e77c1f380ffb62874b6ef4baaeb Mon Sep 17 00:00:00 2001
From: phistuck
Date: Mon, 17 Nov 2014 23:15:39 +0200
Subject: [PATCH 22/62] Fixed a whitespace and tab inconsistency
There were only whitespace characters, while the rest of the lines use a weird combination of tabs and spaces, but general consistency within a file comes first.
---
dist/jquery.browser.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index ddacbe6..73cebce 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -32,7 +32,7 @@
ua = ua.toLowerCase();
var match = /(edge)\/([\w.]+)/.exec( ua ) ||
- /(opr)[\/]([\w.]+)/.exec( ua ) ||
+ /(opr)[\/]([\w.]+)/.exec( ua ) ||
/(chrome)[ \/]([\w.]+)/.exec( ua ) ||
/(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
From 489a4c8e6c14a51347f32d11730e82008a571c77 Mon Sep 17 00:00:00 2001
From: Triangle717
Date: Mon, 17 Nov 2014 16:28:06 -0500
Subject: [PATCH 23/62] Add a much needed .editorconfig
---
.editorconfig | 8 ++++++++
1 file changed, 8 insertions(+)
create mode 100644 .editorconfig
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..85cb735
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,8 @@
+# EditorConfig.org
+root = true
+
+[*]
+insert_final_newline = true
+trim_trailing_whitespace = true
+indent_style = space
+indent_size = 2
From 75f0cc30e2c2f1071c1eee194927bfbca9953efb Mon Sep 17 00:00:00 2001
From: Triangle717
Date: Mon, 17 Nov 2014 16:34:07 -0500
Subject: [PATCH 24/62] Make script consistently use 2 spaces,
* Do the same for tests
* Fix lint errors in test
* Do same in Gruntfile
* Set JSHint to lint tests
---
Gruntfile.js | 88 ++++++++++++++++----------------
dist/jquery.browser.js | 113 ++++++++++++++++++++---------------------
test/test.js | 106 +++++++++++++++++++-------------------
3 files changed, 153 insertions(+), 154 deletions(-)
diff --git a/Gruntfile.js b/Gruntfile.js
index ef523ae..0291f8a 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -1,47 +1,47 @@
-module.exports = function(grunt) {
- grunt.initConfig({
- pkg: grunt.file.readJSON('package.json'),
- jshint: {
- files: ['gruntfile.js', 'jquery.browser.js'],
+module.exports = function(grunt) {
+ grunt.initConfig({
+ pkg: grunt.file.readJSON('package.json'),
+ jshint: {
+ files: ['gruntfile.js', 'jquery.browser.js', 'test/test.js'],
- options: {
- globals: {
- jQuery: true,
- console: true,
- module: true
- }
- }
- },
- uglify: {
- options: {
- banner: '/*!\n * jQuery Browser Plugin <%= pkg.version %>\n * https://github.com/gabceb/jquery-browser-plugin\n *\n * Original jquery-browser code Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors\n * http://jquery.org/license\n *\n * Modifications Copyright <%= grunt.template.today("yyyy") %> Gabriel Cebrian\n * https://github.com/gabceb\n *\n * Released under the MIT license\n *\n * Date: <%= grunt.template.today("dd-mm-yyyy")%>\n */'
- },
- dist: {
- files: {
- 'dist/<%= pkg.name %>.min.js': 'dist/<%= pkg.name %>.js'
- }
- }
- },
- copy: {
- main:{
- src: "dist/<%= pkg.name %>.js",
- dest: "test/src/<%= pkg.name %>.js"
- }
- },
- exec: {
- test: {
- command: "casperjs test test/test.js",
- stdout: true,
- stderr: true
- }
- }
- });
+ options: {
+ globals: {
+ jQuery: true,
+ console: true,
+ module: true
+ }
+ }
+ },
+ uglify: {
+ options: {
+ banner: '/*!\n * jQuery Browser Plugin <%= pkg.version %>\n * https://github.com/gabceb/jquery-browser-plugin\n *\n * Original jquery-browser code Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors\n * http://jquery.org/license\n *\n * Modifications Copyright <%= grunt.template.today("yyyy") %> Gabriel Cebrian\n * https://github.com/gabceb\n *\n * Released under the MIT license\n *\n * Date: <%= grunt.template.today("dd-mm-yyyy")%>\n */'
+ },
+ dist: {
+ files: {
+ 'dist/<%= pkg.name %>.min.js': 'dist/<%= pkg.name %>.js'
+ }
+ }
+ },
+ copy: {
+ main:{
+ src: "dist/<%= pkg.name %>.js",
+ dest: "test/src/<%= pkg.name %>.js"
+ }
+ },
+ exec: {
+ test: {
+ command: "casperjs test test/test.js",
+ stdout: true,
+ stderr: true
+ }
+ }
+ });
- grunt.loadNpmTasks('grunt-contrib-jshint');
- grunt.loadNpmTasks('grunt-contrib-uglify');
- grunt.loadNpmTasks('grunt-contrib-copy');
- grunt.loadNpmTasks('grunt-exec');
+ grunt.loadNpmTasks('grunt-contrib-jshint');
+ grunt.loadNpmTasks('grunt-contrib-uglify');
+ grunt.loadNpmTasks('grunt-contrib-copy');
+ grunt.loadNpmTasks('grunt-exec');
- grunt.registerTask('default', ['jshint', 'uglify', 'copy']);
- grunt.registerTask('test', ['default', 'exec']);
-};
\ No newline at end of file
+ grunt.registerTask('default', ['jshint', 'uglify', 'copy']);
+ grunt.registerTask('test', ['default', 'exec']);
+};
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index 73cebce..c312d74 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -14,15 +14,15 @@
*/
(function (root, factory) {
- if (typeof define === 'function' && define.amd) {
- // AMD. Register as an anonymous module.
- define(['jquery'], function ($) {
- factory($, root);
- });
- } else {
- // Browser globals
- factory(jQuery, root);
- }
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module.
+ define(['jquery'], function ($) {
+ factory($, root);
+ });
+ } else {
+ // Browser globals
+ factory(jQuery, root);
+ }
}(this, function(jQuery, window) {
"use strict";
@@ -31,88 +31,85 @@
jQuery.uaMatch = function( ua ) {
ua = ua.toLowerCase();
- var match = /(edge)\/([\w.]+)/.exec( ua ) ||
- /(opr)[\/]([\w.]+)/.exec( ua ) ||
- /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
- /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
- /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
- /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
- /(msie) ([\w.]+)/.exec( ua ) ||
- ua.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec( ua ) ||
- ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
- [];
-
- var platform_match = /(ipad)/.exec( ua ) ||
- /(iphone)/.exec( ua ) ||
- /(android)/.exec( ua ) ||
- /(windows phone)/.exec( ua ) ||
- /(win)/.exec( ua ) ||
- /(mac)/.exec( ua ) ||
- /(linux)/.exec( ua ) ||
- /(cros)/i.exec( ua ) ||
- [];
-
- return {
- browser: match[ 3 ] || match[ 1 ] || "",
- version: match[ 2 ] || "0",
- platform: platform_match[ 0 ] || ""
- };
+ var match = /(edge)\/([\w.]+)/.exec( ua ) ||
+ /(opr)[\/]([\w.]+)/.exec( ua ) ||
+ /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
+ /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
+ /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
+ /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
+ /(msie) ([\w.]+)/.exec( ua ) ||
+ ua.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec( ua ) ||
+ ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
+ [];
+
+ var platform_match = /(ipad)/.exec( ua ) ||
+ /(iphone)/.exec( ua ) ||
+ /(android)/.exec( ua ) ||
+ /(windows phone)/.exec( ua ) ||
+ /(win)/.exec( ua ) ||
+ /(mac)/.exec( ua ) ||
+ /(linux)/.exec( ua ) ||
+ /(cros)/i.exec( ua ) ||
+ [];
+
+ return {
+ browser: match[ 3 ] || match[ 1 ] || "",
+ version: match[ 2 ] || "0",
+ platform: platform_match[ 0 ] || ""
+ };
};
matched = jQuery.uaMatch( window.navigator.userAgent );
browser = {};
if ( matched.browser ) {
- browser[ matched.browser ] = true;
- browser.version = matched.version;
- browser.versionNumber = parseInt(matched.version);
+ browser[ matched.browser ] = true;
+ browser.version = matched.version;
+ browser.versionNumber = parseInt(matched.version);
}
if ( matched.platform ) {
- browser[ matched.platform ] = true;
+ browser[ matched.platform ] = true;
}
// These are all considered mobile platforms, meaning they run a mobile browser
if ( browser.android || browser.ipad || browser.iphone || browser[ "windows phone" ] ) {
- browser.mobile = true;
+ browser.mobile = true;
}
// These are all considered desktop platforms, meaning they run a desktop browser
if ( browser.cros || browser.mac || browser.linux || browser.win ) {
- browser.desktop = true;
+ browser.desktop = true;
}
// Chrome, Opera 15+ and Safari are webkit based browsers
if ( browser.chrome || browser.opr || browser.safari ) {
- browser.webkit = true;
+ browser.webkit = true;
}
// IE11 has a new token so we will assign it msie to avoid breaking changes
- // IE12 disguises as Chrome, but adds a new Edge token.
- if ( browser.rv || browser.edge )
- {
- var ie = "msie";
+ // IE12 disguises itself as Chrome, but adds a new Edge token.
+ if ( browser.rv || browser.edge ) {
+ var ie = "msie";
- matched.browser = ie;
- browser[ie] = true;
+ matched.browser = ie;
+ browser[ie] = true;
}
// Opera 15+ are identified as opr
- if ( browser.opr )
- {
- var opera = "opera";
+ if ( browser.opr ) {
+ var opera = "opera";
- matched.browser = opera;
- browser[opera] = true;
+ matched.browser = opera;
+ browser[opera] = true;
}
// Stock Android browsers are marked as Safari on Android.
- if ( browser.safari && browser.android )
- {
- var android = "android";
+ if ( browser.safari && browser.android ) {
+ var android = "android";
- matched.browser = android;
- browser[android] = true;
+ matched.browser = android;
+ browser[android] = true;
}
// Assign the name and platform variable
diff --git a/test/test.js b/test/test.js
index 06a0529..e12beb8 100644
--- a/test/test.js
+++ b/test/test.js
@@ -1,77 +1,79 @@
-test_url = "http://localhost:8008";
+/*global casper, require, $ */
-require('casperserver.js').create(casper);
+var test_url = "http://localhost:8008";
+
+require("casperserver.js").create(casper);
casper.server.start();
-casper.on('exit', function(status){
+casper.on("exit", function(status){
casper.server.end();
});
-ua = {
- chrome : {
+var ua = {
+ chrome: {
windows: "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36",
mac: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36",
android: "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Mobile Safari/537.36",
linux: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36",
cros: "Mozilla/5.0 (X11; CrOS i686 14.811.2011) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.834.0 Safari/535.1",
- version : "32.0.1664.3",
- versionNumber : 32,
+ version: "32.0.1664.3",
+ versionNumber: 32,
chromeOsVersion: "14.0.834.0",
chromeOsVersionNumber: 14,
- name : "chrome"
+ name: "chrome"
},
- safari : {
+ safari: {
mac: "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9) AppleWebKit/537.71 (KHTML, like Gecko) Version/7.0 Safari/537.71",
ipad: "Mozilla/5.0 (iPad; CPU OS 7_0 like Mac OS X) AppleWebKit/537.71 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53",
iphone: "Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.71 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53",
version: "537.71",
versionNumber: 7,
- name : "safari"
+ name: "safari"
},
- firefox : {
+ firefox: {
windows: "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0",
mac: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:25.0) Gecko/20100101 Firefox/25.0",
linux: "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:25.0) Gecko/20100101 Firefox/25.0",
version: "25.0",
versionNumber: 25,
- name : "mozilla"
+ name: "mozilla"
},
- ie : {
+ ie: {
windows : {
v_9: "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0)",
v_10: "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)",
- v_11: 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko',
- v_12: 'Mozilla/5.0 (Windows NT 6.4; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36 Edge/12.0'
+ v_11: "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko",
+ v_12: "Mozilla/5.0 (Windows NT 6.4; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36 Edge/12.0"
},
win_phone : {
v_10: "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 1020)"
},
- name : "msie"
+ name: "msie"
},
- opera : {
+ opera: {
v_15: {
- mac : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.20 Safari/537.36 OPR/15.0.1147.18",
+ mac: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.20 Safari/537.36 OPR/15.0.1147.18",
windows: "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.20 Safari/537.36 OPR/15.0.1147.18",
version: "15.0.1147.18",
versionNumber: 15
},
v_10: {
- mac : "Opera/9.80 (Macintosh; Intel Mac OS X; U; en) Presto/2.2.15 Version/10.00",
+ mac: "Opera/9.80 (Macintosh; Intel Mac OS X; U; en) Presto/2.2.15 Version/10.00",
windows: "Opera/9.80 (Windows NT 6.1; U; en) Presto/2.6.30 Version/10.00",
version: "10.00",
versionNumber: 10
},
v_12: {
- mac : "Opera/9.80 (Macintosh; Intel Mac OS X; U; en) Presto/2.2.15 Version/12.11",
+ mac: "Opera/9.80 (Macintosh; Intel Mac OS X; U; en) Presto/2.2.15 Version/12.11",
windows: "Opera/9.80 (Windows NT 6.1; U; en) Presto/2.6.30 Version/12.11",
version: "12.11",
versionNumber: 12
},
- name : "opera"
+ name: "opera"
},
- android : {
+ android: {
v_4_4: {
- android : "Mozilla/5.0 (Linux; Android 4.4.1; Nexus 5 Build/KOT49E) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36",
+ android: "Mozilla/5.0 (Linux; Android 4.4.1; Nexus 5 Build/KOT49E) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36",
version: "537.36",
versionNumber: 4
},
@@ -83,7 +85,7 @@ casper.test.begin("when using Chrome on Windows", 7, function(test) {
casper.userAgent(ua.chrome.windows);
casper.start(test_url).then(function(){
-
+
var browser = casper.evaluate(function(){
return $.browser;
});
@@ -135,7 +137,7 @@ casper.test.begin("when using Chrome on an Android device", 7, function(test) {
var browser = casper.evaluate(function(){
return $.browser;
});
-
+
test.assert(browser.chrome, "Browser should be Chrome");
test.assertEquals(browser.name, ua.chrome.name,"Browser name should be " + ua.chrome.name);
@@ -159,7 +161,7 @@ casper.test.begin("when using Chrome on Linux", 7, function(test) {
var browser = casper.evaluate(function(){
return $.browser;
});
-
+
test.assert(browser.chrome, "Browser should be Chrome");
test.assertEquals(browser.name, ua.chrome.name,"Browser name should be " + ua.chrome.name);
@@ -183,7 +185,7 @@ casper.test.begin("when using Chrome on Chrome OS", 7, function(test) {
var browser = casper.evaluate(function(){
return $.browser;
});
-
+
test.assert(browser.chrome, "Browser should be Chrome");
test.assertEquals(browser.name, ua.chrome.name,"Browser name should be " + ua.chrome.name);
@@ -203,7 +205,7 @@ casper.test.begin("when using Firefox on Windows", 7, function(test) {
casper.userAgent(ua.firefox.windows);
casper.start(test_url).then(function(){
-
+
var browser = casper.evaluate(function(){
return $.browser;
});
@@ -228,7 +230,7 @@ casper.test.begin("when using Firefox on Mac", 7, function(test) {
casper.userAgent(ua.firefox.mac);
casper.start(test_url).then(function(){
-
+
var browser = casper.evaluate(function(){
return $.browser;
});
@@ -257,7 +259,7 @@ casper.test.begin("when using Firefox on Linux", 7, function(test) {
var browser = casper.evaluate(function(){
return $.browser;
});
-
+
test.assert(browser.mozilla, "Browser should be Mozilla");
test.assertEquals(browser.name, ua.firefox.name,"Browser name should be " + ua.firefox.name);
@@ -278,7 +280,7 @@ casper.test.begin("when using Safari on Mac", 7, function(test) {
casper.userAgent(ua.safari.mac);
casper.start(test_url).then(function(){
-
+
var browser = casper.evaluate(function(){
return $.browser;
});
@@ -302,11 +304,11 @@ casper.test.begin("when using Safari on iPad", 7, function(test) {
casper.userAgent(ua.safari.ipad);
casper.start(test_url).then(function(){
-
+
var browser = casper.evaluate(function(){
return $.browser;
});
-
+
test.assert(browser.safari, "Browser should be Safari");
test.assertEquals(browser.name, ua.safari.name,"Browser name should be " + ua.safari.name);
@@ -326,11 +328,11 @@ casper.test.begin("when using Safari on iPhone", 7, function(test) {
casper.userAgent(ua.safari.iphone);
casper.start(test_url).then(function(){
-
+
var browser = casper.evaluate(function(){
return $.browser;
});
-
+
test.assert(browser.safari, "Browser should be Safari");
test.assertEquals(browser.name, ua.safari.name,"Browser name should be " + ua.safari.name);
@@ -350,11 +352,11 @@ casper.test.begin("when using IE9", 7, function(test) {
casper.userAgent(ua.ie.windows.v_9);
casper.start(test_url).then(function(){
-
+
var browser = casper.evaluate(function(){
return $.browser;
});
-
+
test.assert(browser.msie, "Browser should be IE");
test.assertEquals(browser.name, ua.ie.name,"Browser name should be " + ua.ie.name);
@@ -375,11 +377,11 @@ casper.test.begin("when using IE10", 7, function(test) {
casper.userAgent(ua.ie.windows.v_10);
casper.start(test_url).then(function(){
-
+
var browser = casper.evaluate(function(){
return $.browser;
});
-
+
test.assert(browser.msie, "Browser should be IE");
test.assertEquals(browser.name, ua.ie.name,"Browser name should be " + ua.ie.name);
@@ -400,11 +402,11 @@ casper.test.begin("when using IE11", 7, function(test) {
casper.userAgent(ua.ie.windows.v_11);
casper.start(test_url).then(function(){
-
+
var browser = casper.evaluate(function(){
return $.browser;
});
-
+
test.assert(browser.msie, "Browser should be IE");
test.assertEquals(browser.name, ua.ie.name,"Browser name should be " + ua.ie.name);
@@ -429,7 +431,7 @@ casper.test.begin("when using IE10 on a Windows Phone", 7, function(test) {
var browser = casper.evaluate(function(){
return $.browser;
});
-
+
test.assert(browser.msie, "Browser should be IE");
test.assertEquals(browser.name, ua.ie.name,"Browser name should be " + ua.ie.name);
@@ -450,11 +452,11 @@ casper.test.begin("when using IE12", 7, function(test) {
casper.userAgent(ua.ie.windows.v_12);
casper.start(test_url).then(function(){
-
+
var browser = casper.evaluate(function(){
return $.browser;
});
-
+
test.assert(browser.msie, "Browser should be IE");
test.assertEquals(browser.name, ua.ie.name,"Browser name should be " + ua.ie.name);
@@ -479,7 +481,7 @@ casper.test.begin("when using Opera 15+ on Windows", 7, function(test) {
var browser = casper.evaluate(function(){
return $.browser;
});
-
+
test.assert(browser.opera, "Browser should be Opera");
test.assertEquals(browser.name, ua.opera.name,"Browser name should be " + ua.opera.name);
@@ -504,11 +506,11 @@ casper.test.begin("when using Opera 15+ on Mac", 7, function(test) {
var browser = casper.evaluate(function(){
return $.browser;
});
-
+
test.assert(browser.opera, "Browser should be Opera");
test.assertEquals(browser.name, ua.opera.name,"Browser name should be " + ua.opera.name);
- test.assertEquals(browser.version, ua.opera.v_15.version, "Version should be " + ua.opera.v_15.version)
+ test.assertEquals(browser.version, ua.opera.v_15.version, "Version should be " + ua.opera.v_15.version);
test.assertEquals(browser.versionNumber, ua.opera.v_15.versionNumber, "Version number should be " + ua.opera.v_15.versionNumber);
test.assert(browser.desktop, "Browser platform should be desktop");
@@ -529,7 +531,7 @@ casper.test.begin("when using Opera 10 on Windows", 7, function(test) {
var browser = casper.evaluate(function(){
return $.browser;
});
-
+
test.assert(browser.opera, "Browser should be Opera");
test.assertEquals(browser.name, ua.opera.name,"Browser name should be " + ua.opera.name);
@@ -554,7 +556,7 @@ casper.test.begin("when using Opera 10 on Mac", 7, function(test) {
var browser = casper.evaluate(function(){
return $.browser;
});
-
+
test.assert(browser.opera, "Browser should be Opera");
test.assertEquals(browser.name, ua.opera.name,"Browser name should be " + ua.opera.name);
@@ -579,7 +581,7 @@ casper.test.begin("when using Opera 12.11 on Windows", 7, function(test) {
var browser = casper.evaluate(function(){
return $.browser;
});
-
+
test.assert(browser.opera, "Browser should be Opera");
test.assertEquals(browser.name, ua.opera.name,"Browser name should be " + ua.opera.name);
@@ -604,7 +606,7 @@ casper.test.begin("when using Opera 12.11 on Mac", 7, function(test) {
var browser = casper.evaluate(function(){
return $.browser;
});
-
+
test.assert(browser.opera, "Browser should be Opera");
test.assertEquals(browser.name, ua.opera.name,"Browser name should be " + ua.opera.name);
@@ -629,7 +631,7 @@ casper.test.begin("when using Android 4.4 stock browser on Android", 6, function
var browser = casper.evaluate(function(){
return $.browser;
});
-
+
test.assert(browser.android, "Browser should be Android");
test.assertEquals(browser.name, ua.android.name,"Browser name should be " + ua.android.name);
From 6a8a428b6c33b5e81d5224ec1b110ef175b07a99 Mon Sep 17 00:00:00 2001
From: Triangle717
Date: Tue, 18 Nov 2014 10:59:27 -0500
Subject: [PATCH 25/62] For #46.
---
Gruntfile.js | 2 +-
README.md | 7 ++-----
dist/jquery.browser.js | 14 ++++++++------
test/test.js | 27 ++++++++++++++-------------
4 files changed, 25 insertions(+), 25 deletions(-)
diff --git a/Gruntfile.js b/Gruntfile.js
index 0291f8a..bf401eb 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -2,7 +2,7 @@ module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
jshint: {
- files: ['gruntfile.js', 'jquery.browser.js', 'test/test.js'],
+ files: ['Gruntfile.js', 'dist/jquery.browser.js', 'test/test.js'],
options: {
globals: {
diff --git a/README.md b/README.md
index 6b29fc3..2a48746 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@ Include script *after* the jQuery library:
## Usage
-Returns true if the current useragent is some version of Microsoft's Internet Explorer. Supports all IE versions including IE11
+Returns true if the current useragent is some version of Microsoft's Internet Explorer. Supports all IE versions including IE 12.
$.browser.msie;
@@ -66,7 +66,7 @@ Reading the browser verion
$.browser.versionNumber // Returns 32 as a number
```
-- Support for new useragent on IE11
+- Support for new useragent on IE 11 and IE 12
- Support for WebKit based Opera browsers
- Added testing using PhantomJS and different browser user agents
@@ -94,6 +94,3 @@ Once Casperjs and the grunt-cli npm package is installed you can execute all the
- [Examples and original implementation](http://api.jquery.com/jQuery.browser/)
- [Original Gist used for the plugin](https://gist.github.com/adeelejaz/4714079)
-
-[](https://bitdeli.com/free "Bitdeli Badge")
-
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index c312d74..a56e816 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -17,7 +17,7 @@
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['jquery'], function ($) {
- factory($, root);
+ factory($, root);
});
} else {
// Browser globals
@@ -34,7 +34,8 @@
var match = /(edge)\/([\w.]+)/.exec( ua ) ||
/(opr)[\/]([\w.]+)/.exec( ua ) ||
/(chrome)[ \/]([\w.]+)/.exec( ua ) ||
- /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
+ /(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
+ /(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
/(msie) ([\w.]+)/.exec( ua ) ||
@@ -49,12 +50,13 @@
/(win)/.exec( ua ) ||
/(mac)/.exec( ua ) ||
/(linux)/.exec( ua ) ||
- /(cros)/i.exec( ua ) ||
+ /(cros)/.exec( ua ) ||
[];
return {
- browser: match[ 3 ] || match[ 1 ] || "",
- version: match[ 2 ] || "0",
+ browser: match[ 5 ] || match[ 3 ] || match[ 1 ] || "",
+ version: match[ 2 ] || match[ 4 ] || "0",
+ versionNumber: match[ 4 ] || match[ 2 ] || "0",
platform: platform_match[ 0 ] || ""
};
};
@@ -65,7 +67,7 @@
if ( matched.browser ) {
browser[ matched.browser ] = true;
browser.version = matched.version;
- browser.versionNumber = parseInt(matched.version);
+ browser.versionNumber = parseInt(matched.versionNumber, 10);
}
if ( matched.platform ) {
diff --git a/test/test.js b/test/test.js
index e12beb8..82e3937 100644
--- a/test/test.js
+++ b/test/test.js
@@ -398,8 +398,9 @@ casper.test.begin("when using IE10", 7, function(test) {
});
});
-casper.test.begin("when using IE11", 7, function(test) {
- casper.userAgent(ua.ie.windows.v_11);
+
+casper.test.begin("when using IE10 on a Windows Phone", 7, function(test) {
+ casper.userAgent(ua.ie.win_phone.v_10);
casper.start(test_url).then(function(){
@@ -410,21 +411,21 @@ casper.test.begin("when using IE11", 7, function(test) {
test.assert(browser.msie, "Browser should be IE");
test.assertEquals(browser.name, ua.ie.name,"Browser name should be " + ua.ie.name);
- test.assertEquals(browser.version, "11.0", "Version should be 11.0");
- test.assertEquals(browser.versionNumber, 11, "Version should be 11");
+ test.assertEquals(browser.version, "10.0", "Version should be 10.0");
+ test.assertEquals(browser.versionNumber, 10, "Version should be 10");
- test.assert(browser.desktop, "Browser platform should be desktop");
- test.assert(browser.win, "Platform should be Windows");
+ test.assert(browser.mobile, "Browser platform should be mobile");
+ test.assert(browser["windows phone"], "Platform should be Windows Phone");
test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
}).run(function(){
- test.done();
+ test.done();
});
});
-casper.test.begin("when using IE10 on a Windows Phone", 7, function(test) {
- casper.userAgent(ua.ie.win_phone.v_10);
+casper.test.begin("when using IE11", 7, function(test) {
+ casper.userAgent(ua.ie.windows.v_11);
casper.start(test_url).then(function(){
@@ -435,11 +436,11 @@ casper.test.begin("when using IE10 on a Windows Phone", 7, function(test) {
test.assert(browser.msie, "Browser should be IE");
test.assertEquals(browser.name, ua.ie.name,"Browser name should be " + ua.ie.name);
- test.assertEquals(browser.version, "10.0", "Version should be 10.0");
- test.assertEquals(browser.versionNumber, 10, "Version should be 10");
+ test.assertEquals(browser.version, "11.0", "Version should be 11.0");
+ test.assertEquals(browser.versionNumber, 11, "Version should be 11");
- test.assert(browser.mobile, "Browser platform should be mobile");
- test.assert(browser["windows phone"], "Platform should be Windows Phone");
+ test.assert(browser.desktop, "Browser platform should be desktop");
+ test.assert(browser.win, "Platform should be Windows");
test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
From 21ae8c571a8f3772478981ee62d9cb34d32fe0a1 Mon Sep 17 00:00:00 2001
From: Baraa
Date: Sat, 22 Nov 2014 21:57:14 -0800
Subject: [PATCH 26/62] Update Browser Detection to Support iPod, Kindle and
BlackBerry devices.
---
README.md | 22 +++--
dist/jquery.browser.js | 37 ++++++---
test/test.js | 180 +++++++++++++++++++++++++++++++++++++++++
3 files changed, 222 insertions(+), 17 deletions(-)
diff --git a/README.md b/README.md
index 2a48746..2dd1943 100644
--- a/README.md
+++ b/README.md
@@ -28,17 +28,27 @@ Reading the browser verion
## Things not included in the original jQuery $.browser implementation
-- Detect Windows, Mac, Linux, iPad, iPhone, Android, Chrome OS, and Windows Phone useragents, in addition to desktop and mobile browsers
+- Detect specifically Windows, Mac, Linux, iPad, iPhone, iPod, Android, Kindle, BlackBerry, Chrome OS, and Windows Phone useragents
```javascript
- $.browser.ipad
- $.browser.iphone
- $.browser["windows phone"]
$.browser.android
+ $.browser.blackberry
$.browser.cros
- $.browser.win
- $.browser.mac
+ $.browser.ipad
+ $.browser.iphone
+ $.browser.ipod
+ $.browser.kindle
$.browser.linux
+ $.browser.mac
+ $.browser.playbook
+ $.browser.silk
+ $.browser.win
+ $.browser["windows phone"]
+```
+
+Alternatively, you can detect for generic classifications such as desktop or mobile
+
+```javascript
$.browser.desktop
$.browser.mobile
```
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index a56e816..dd3c9d3 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -31,26 +31,32 @@
jQuery.uaMatch = function( ua ) {
ua = ua.toLowerCase();
- var match = /(edge)\/([\w.]+)/.exec( ua ) ||
+ var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
+ /(edge)\/([\w.]+)/.exec( ua ) ||
+ /(msie) ([\w.]+)/.exec( ua ) ||
+ /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
/(opr)[\/]([\w.]+)/.exec( ua ) ||
- /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
/(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
- /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
- /(msie) ([\w.]+)/.exec( ua ) ||
ua.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec( ua ) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
[];
- var platform_match = /(ipad)/.exec( ua ) ||
+ var platform_match = /(android)/.exec( ua ) ||
+ /(bb)/.exec( ua ) ||
+ /(blackberry)/.exec( ua ) ||
+ /(cros)/.exec( ua ) ||
+ /(ipad)/.exec( ua ) ||
/(iphone)/.exec( ua ) ||
- /(android)/.exec( ua ) ||
- /(windows phone)/.exec( ua ) ||
- /(win)/.exec( ua ) ||
- /(mac)/.exec( ua ) ||
+ /(ipod)/.exec( ua ) ||
+ /(kindle)/.exec( ua ) ||
/(linux)/.exec( ua ) ||
- /(cros)/.exec( ua ) ||
+ /(mac)/.exec( ua ) ||
+ /(playbook)/.exec( ua ) ||
+ /(silk)/.exec( ua ) ||
+ /(win)/.exec( ua ) ||
+ /(windows phone)/.exec( ua ) ||
[];
return {
@@ -75,7 +81,8 @@
}
// These are all considered mobile platforms, meaning they run a mobile browser
- if ( browser.android || browser.ipad || browser.iphone || browser[ "windows phone" ] ) {
+ if ( browser.android || browser.bb || browser.blackberry || browser.ipad || browser.iphone ||
+ browser.ipod || browser.kindle || browser.playbook || browser.silk || browser[ "windows phone" ]) {
browser.mobile = true;
}
@@ -98,6 +105,14 @@
browser[ie] = true;
}
+ // BB10 is a newer OS version of BlackBerry
+ if ( browser.bb ) {
+ var blackberry = "blackberry";
+
+ matched.browser = blackberry;
+ browser[blackberry] = true;
+ }
+
// Opera 15+ are identified as opr
if ( browser.opr ) {
var opera = "opera";
diff --git a/test/test.js b/test/test.js
index 82e3937..43b4232 100644
--- a/test/test.js
+++ b/test/test.js
@@ -26,6 +26,7 @@ var ua = {
mac: "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9) AppleWebKit/537.71 (KHTML, like Gecko) Version/7.0 Safari/537.71",
ipad: "Mozilla/5.0 (iPad; CPU OS 7_0 like Mac OS X) AppleWebKit/537.71 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53",
iphone: "Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.71 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53",
+ ipod: "Mozilla/5.0 (iPod; CPU iPod OS 7_0 like Mac OS X) AppleWebKit/537.71 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53",
version: "537.71",
versionNumber: 7,
name: "safari"
@@ -78,6 +79,46 @@ var ua = {
versionNumber: 4
},
name: "android"
+ },
+ kindle : {
+ v_4: {
+ kindle : "Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Kindle Fire Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
+ version: "533.1",
+ versionNumber: 4
+ },
+ name: "kindle"
+ },
+ silk : {
+ v_5: {
+ silk : "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.1.0-80) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16 Silk-Accelerated=true",
+ version: "533.16",
+ versionNumber: 5
+ },
+ name: "silk"
+ },
+ blackberry : {
+ v_7: {
+ blackberry : "Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.346 Mobile Safari/534.11+",
+ version: "534.11",
+ versionNumber: 7
+ },
+ name: "blackberry"
+ },
+ bb : {
+ v_10: {
+ bb : "Mozilla/5.0 (BB10; Touch) AppleWebKit/537.1 (KHTML, like Gecko) Version/10.0.0.1337 Mobile Safari/537.1",
+ version: "537.1",
+ versionNumber: 10
+ },
+ name: "bb"
+ },
+ playbook : {
+ v_7: {
+ playbook : "Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML, like Gecko) Version/7.2.1.0 Safari/536.2+",
+ version: "536.2",
+ versionNumber: 7
+ },
+ name: "playbook"
}
};
@@ -348,6 +389,30 @@ casper.test.begin("when using Safari on iPhone", 7, function(test) {
});
});
+casper.test.begin("when using Safari on iPod", 7, function(test) {
+ casper.userAgent(ua.safari.ipod);
+
+ casper.start(test_url).then(function(){
+
+ var browser = casper.evaluate(function(){
+ return $.browser;
+ });
+
+ test.assert(browser.safari, "Browser should be Safari");
+ test.assertEquals(browser.name, ua.safari.name,"Browser name should be " + ua.safari.name);
+
+ test.assert(browser.webkit, "Browser should be WebKit based");
+ test.assertEquals(browser.version, ua.safari.version, "Version should be " + ua.safari.version);
+ test.assertEquals(browser.versionNumber, ua.safari.versionNumber, "Version number should be " + ua.safari.versionNumber);
+
+ test.assert(browser.mobile, "Browser platform should be mobile");
+ test.assert(browser.ipod, "Platform should be iPod");
+
+ }).run(function(){
+ test.done();
+ });
+});
+
casper.test.begin("when using IE9", 7, function(test) {
casper.userAgent(ua.ie.windows.v_9);
@@ -642,6 +707,121 @@ casper.test.begin("when using Android 4.4 stock browser on Android", 6, function
test.assert(browser.mobile, "Browser platform should be mobile");
test.assert(browser.webkit, "Browser should be WebKit based");
+ }).run(function(){
+ test.done();
+ });
+});
+
+casper.test.begin("when using Kindle 4 stock browser", 6, function(test) {
+ casper.userAgent(ua.kindle.v_4.kindle);
+
+ casper.start(test_url).then(function(){
+
+ var browser = casper.evaluate(function(){
+ return $.browser;
+ });
+
+ test.assert(browser.kindle, "Browser should be Kindle");
+ test.assertEquals(browser.name, ua.kindle.name,"Browser name should be " + ua.kindle.name);
+
+ test.assertEquals(browser.version, ua.kindle.v_4.version, "Version should be " + ua.kindle.v_4.version);
+ test.assertEquals(browser.versionNumber, ua.kindle.v_4.versionNumber, "Version number should be " + ua.kindle.v_4.versionNumber);
+
+ test.assert(browser.mobile, "Browser platform should be mobile");
+ test.assert(browser.webkit, "Browser should be WebKit based");
+
+ }).run(function(){
+ test.done();
+ });
+});
+
+casper.test.begin("when using Kindle Silk 5 browser", 6, function(test) {
+ casper.userAgent(ua.silk.v_5.silk);
+
+ casper.start(test_url).then(function(){
+
+ var browser = casper.evaluate(function(){
+ return $.browser;
+ });
+
+ test.assert(browser.silk, "Browser should be Silk");
+ test.assertEquals(browser.name, ua.silk.name,"Browser name should be " + ua.silk.name);
+
+ test.assertEquals(browser.version, ua.silk.v_5.version, "Version should be " + ua.silk.v_5.version);
+ test.assertEquals(browser.versionNumber, ua.silk.v_5.versionNumber, "Version number should be " + ua.silk.v_5.versionNumber);
+
+ test.assert(browser.mobile, "Browser platform should be mobile");
+ test.assert(browser.webkit, "Browser should be WebKit based");
+
+ }).run(function(){
+ test.done();
+ });
+});
+
+casper.test.begin("when using BlackBerry 7 stock browser", 6, function(test) {
+ casper.userAgent(ua.blackberry.v_7.blackberry);
+
+ casper.start(test_url).then(function(){
+
+ var browser = casper.evaluate(function(){
+ return $.browser;
+ });
+
+ test.assert(browser.blackberry, "Browser should be BlackBerry");
+ test.assertEquals(browser.name, ua.blackberry.name,"Browser name should be " + ua.blackberry.name);
+
+ test.assertEquals(browser.version, ua.blackberry.v_7.version, "Version should be " + ua.blackberry.v_7.version);
+ test.assertEquals(browser.versionNumber, ua.blackberry.v_7.versionNumber, "Version number should be " + ua.blackberry.v_7.versionNumber);
+
+ test.assert(browser.mobile, "Browser platform should be mobile");
+ test.assert(browser.webkit, "Browser should be WebKit based");
+
+ }).run(function(){
+ test.done();
+ });
+});
+
+casper.test.begin("when using BB10 stock browser", 6, function(test) {
+ casper.userAgent(ua.bb.v_10.bb);
+
+ casper.start(test_url).then(function(){
+
+ var browser = casper.evaluate(function(){
+ return $.browser;
+ });
+
+ test.assert(browser.blackberry, "Browser should be BlackBerry");
+ test.assertEquals(browser.name, ua.blackberry.name,"Browser name should be " + ua.blackberry.name);
+
+ test.assertEquals(browser.version, ua.bb.v_10.version, "Version should be " + ua.bb.v_10.version);
+ test.assertEquals(browser.versionNumber, ua.bb.v_10.versionNumber, "Version number should be " + ua.bb.v_10.versionNumber);
+
+ test.assert(browser.mobile, "Browser platform should be mobile");
+ test.assert(browser.webkit, "Browser should be WebKit based");
+
+ }).run(function(){
+ test.done();
+ });
+});
+
+casper.test.begin("when using BlackBerry PlayBook stock browser", 6, function(test) {
+ casper.userAgent(ua.playbook.v_7.playbook);
+
+ casper.start(test_url).then(function(){
+
+ var browser = casper.evaluate(function(){
+ return $.browser;
+ });
+
+ test.assert(browser.playbook, "Browser should be BlackBerry PlayBook");
+ test.assertEquals(browser.name, ua.playbook.name,"Browser name should be " + ua.playbook.name);
+
+ test.assertEquals(browser.version, ua.playbook.v_7.version, "Version should be " + ua.playbook.v_7.version);
+ test.assertEquals(browser.versionNumber, ua.playbook.v_7.versionNumber, "Version number should be " + ua.playbook.v_7.versionNumber);
+
+ test.assert(browser.mobile, "Browser platform should be mobile");
+ test.assert(browser.webkit, "Browser should be WebKit based");
+
}).run(function(){
test.done();
casper.exit();
From 4bb46ae5018e40a3d19745a21558cf3c7306a915 Mon Sep 17 00:00:00 2001
From: Triangle717
Date: Fri, 12 Dec 2014 12:02:52 -0500
Subject: [PATCH 27/62] Restore and improve ordering of `match` and
`platform_match`, fix incorrect identification of all Blackberry and Kindle
browers
---
dist/jquery.browser.js | 64 +++++++++++++++++++++++++++++++-----------
1 file changed, 48 insertions(+), 16 deletions(-)
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index dd3c9d3..064e75f 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -31,32 +31,32 @@
jQuery.uaMatch = function( ua ) {
ua = ua.toLowerCase();
- var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
- /(edge)\/([\w.]+)/.exec( ua ) ||
- /(msie) ([\w.]+)/.exec( ua ) ||
- /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
+ var match = /(edge)\/([\w.]+)/.exec( ua ) ||
/(opr)[\/]([\w.]+)/.exec( ua ) ||
+ /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
/(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
+ /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
+ /(msie) ([\w.]+)/.exec( ua ) ||
ua.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec( ua ) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
[];
- var platform_match = /(android)/.exec( ua ) ||
- /(bb)/.exec( ua ) ||
- /(blackberry)/.exec( ua ) ||
- /(cros)/.exec( ua ) ||
- /(ipad)/.exec( ua ) ||
- /(iphone)/.exec( ua ) ||
+ var platform_match = /(ipad)/.exec( ua ) ||
/(ipod)/.exec( ua ) ||
+ /(iphone)/.exec( ua ) ||
/(kindle)/.exec( ua ) ||
- /(linux)/.exec( ua ) ||
- /(mac)/.exec( ua ) ||
- /(playbook)/.exec( ua ) ||
/(silk)/.exec( ua ) ||
- /(win)/.exec( ua ) ||
+ /(android)/.exec( ua ) ||
/(windows phone)/.exec( ua ) ||
+ /(win)/.exec( ua ) ||
+ /(mac)/.exec( ua ) ||
+ /(linux)/.exec( ua ) ||
+ /(cros)/.exec( ua ) ||
+ /(playbook)/.exec( ua ) ||
+ /(bb)/.exec( ua ) ||
+ /(blackberry)/.exec( ua ) ||
[];
return {
@@ -105,14 +105,30 @@
browser[ie] = true;
}
- // BB10 is a newer OS version of BlackBerry
- if ( browser.bb ) {
+ // Blackberry browsers are marked as Safari on BlackBerry
+ if ( browser.safari && browser.blackberry ) {
var blackberry = "blackberry";
matched.browser = blackberry;
browser[blackberry] = true;
}
+ // Playbook browsers are marked as Safari on Playbook
+ if ( browser.safari && browser.playbook ) {
+ var playbook = "playbook";
+
+ matched.browser = playbook;
+ browser[playbook] = true;
+ }
+
+ // BB10 is a newer OS version of BlackBerry
+ if ( browser.bb ) {
+ var bb = "blackberry";
+
+ matched.browser = bb;
+ browser[bb] = true;
+ }
+
// Opera 15+ are identified as opr
if ( browser.opr ) {
var opera = "opera";
@@ -129,6 +145,22 @@
browser[android] = true;
}
+ // Kindle browsers are marked as Safari on Kindle
+ if ( browser.safari && browser.kindle ) {
+ var kindle = "kindle";
+
+ matched.browser = kindle;
+ browser[kindle] = true;
+ }
+
+ // Kindle Silk browsers are marked as Safari on Kindle
+ if ( browser.safari && browser.silk ) {
+ var silk = "silk";
+
+ matched.browser = silk;
+ browser[silk] = true;
+ }
+
// Assign the name and platform variable
browser.name = matched.browser;
browser.platform = matched.platform;
From 7ed56e71bc4500dabbc39615a6ad1195fc3e8173 Mon Sep 17 00:00:00 2001
From: Triangle717
Date: Fri, 12 Dec 2014 17:54:35 -0500
Subject: [PATCH 28/62] Update version to v0.0.7
---
dist/jquery.browser.js | 6 +-
dist/jquery.browser.min.js | 6 +-
package.json | 2 +-
test/src/jquery.browser.js | 125 +++++++++++++++++++++++++++----------
4 files changed, 98 insertions(+), 41 deletions(-)
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index 064e75f..e105e95 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -1,16 +1,16 @@
/*!
- * jQuery Browser Plugin v0.0.6
+ * jQuery Browser Plugin 0.0.7
* https://github.com/gabceb/jquery-browser-plugin
*
* Original jquery-browser code Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors
* http://jquery.org/license
*
- * Modifications Copyright 2013 Gabriel Cebrian
+ * Modifications Copyright 2014 Gabriel Cebrian
* https://github.com/gabceb
*
* Released under the MIT license
*
- * Date: 2013-07-29T17:23:27-07:00
+ * Date: 12-12-2014
*/
(function (root, factory) {
diff --git a/dist/jquery.browser.min.js b/dist/jquery.browser.min.js
index d5f6aa3..f8e0482 100644
--- a/dist/jquery.browser.min.js
+++ b/dist/jquery.browser.min.js
@@ -1,5 +1,5 @@
/*!
- * jQuery Browser Plugin 0.0.6
+ * jQuery Browser Plugin 0.0.7
* https://github.com/gabceb/jquery-browser-plugin
*
* Original jquery-browser code Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors
@@ -10,5 +10,5 @@
*
* Released under the MIT license
*
- * Date: 28-09-2014
- */!function(a,b){"use strict";var c,d;if(a.uaMatch=function(a){a=a.toLowerCase();var b=/(opr)[\/]([\w.]+)/.exec(a)||/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[],c=/(ipad)/.exec(a)||/(iphone)/.exec(a)||/(android)/.exec(a)||/(windows phone)/.exec(a)||/(win)/.exec(a)||/(mac)/.exec(a)||/(linux)/.exec(a)||/(cros)/.exec(a)||[];return{browser:b[3]||b[1]||"",version:b[4]||b[2],versionNumber:b[2]||"0",platform:c[0]||""}},c=a.uaMatch(b.navigator.userAgent),d={},c.browser&&(d[c.browser]=!0,d.version=c.version,d.versionNumber=parseInt(c.versionNumber)),c.platform&&(d[c.platform]=!0),(d.android||d.ipad||d.iphone||d["windows phone"])&&(d.mobile=!0),(d.cros||d.mac||d.linux||d.win)&&(d.desktop=!0),(d.chrome||d.opr||d.safari)&&(d.webkit=!0),d.rv){var e="msie";c.browser=e,d[e]=!0}if(d.opr){var f="opera";c.browser=f,d[f]=!0}if(d.safari&&d.android){var g="android";c.browser=g,d[g]=!0}d.name=c.browser,d.platform=c.platform,a.browser=d}(jQuery,window);
\ No newline at end of file
+ * Date: 12-12-2014
+ */!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(c){b(c,a)}):b(jQuery,a)}(this,function(a,b){"use strict";var c,d;if(a.uaMatch=function(a){a=a.toLowerCase();var b=/(edge)\/([\w.]+)/.exec(a)||/(opr)[\/]([\w.]+)/.exec(a)||/(chrome)[ \/]([\w.]+)/.exec(a)||/(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[],c=/(ipad)/.exec(a)||/(ipod)/.exec(a)||/(iphone)/.exec(a)||/(kindle)/.exec(a)||/(silk)/.exec(a)||/(android)/.exec(a)||/(windows phone)/.exec(a)||/(win)/.exec(a)||/(mac)/.exec(a)||/(linux)/.exec(a)||/(cros)/.exec(a)||/(playbook)/.exec(a)||/(bb)/.exec(a)||/(blackberry)/.exec(a)||[];return{browser:b[5]||b[3]||b[1]||"",version:b[2]||b[4]||"0",versionNumber:b[4]||b[2]||"0",platform:c[0]||""}},c=a.uaMatch(b.navigator.userAgent),d={},c.browser&&(d[c.browser]=!0,d.version=c.version,d.versionNumber=parseInt(c.versionNumber,10)),c.platform&&(d[c.platform]=!0),(d.android||d.bb||d.blackberry||d.ipad||d.iphone||d.ipod||d.kindle||d.playbook||d.silk||d["windows phone"])&&(d.mobile=!0),(d.cros||d.mac||d.linux||d.win)&&(d.desktop=!0),(d.chrome||d.opr||d.safari)&&(d.webkit=!0),d.rv||d.edge){var e="msie";c.browser=e,d[e]=!0}if(d.safari&&d.blackberry){var f="blackberry";c.browser=f,d[f]=!0}if(d.safari&&d.playbook){var g="playbook";c.browser=g,d[g]=!0}if(d.bb){var h="blackberry";c.browser=h,d[h]=!0}if(d.opr){var i="opera";c.browser=i,d[i]=!0}if(d.safari&&d.android){var j="android";c.browser=j,d[j]=!0}if(d.safari&&d.kindle){var k="kindle";c.browser=k,d[k]=!0}if(d.safari&&d.silk){var l="silk";c.browser=l,d[l]=!0}return d.name=c.browser,d.platform=c.platform,a.browser=d,d});
\ No newline at end of file
diff --git a/package.json b/package.json
index 4312f40..df0b02b 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "jquery.browser",
- "version": "0.0.6",
+ "version": "0.0.7",
"authors": [
"Gabriel Cebrian ",
"jQuery Team "
diff --git a/test/src/jquery.browser.js b/test/src/jquery.browser.js
index ceea0e4..e105e95 100644
--- a/test/src/jquery.browser.js
+++ b/test/src/jquery.browser.js
@@ -1,19 +1,29 @@
/*!
- * jQuery Browser Plugin v0.0.6
+ * jQuery Browser Plugin 0.0.7
* https://github.com/gabceb/jquery-browser-plugin
*
* Original jquery-browser code Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors
* http://jquery.org/license
*
- * Modifications Copyright 2013 Gabriel Cebrian
+ * Modifications Copyright 2014 Gabriel Cebrian
* https://github.com/gabceb
*
* Released under the MIT license
*
- * Date: 2013-07-29T17:23:27-07:00
+ * Date: 12-12-2014
*/
-(function( jQuery, window, undefined ) {
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module.
+ define(['jquery'], function ($) {
+ factory($, root);
+ });
+ } else {
+ // Browser globals
+ factory(jQuery, root);
+ }
+}(this, function(jQuery, window) {
"use strict";
var matched, browser;
@@ -21,30 +31,38 @@
jQuery.uaMatch = function( ua ) {
ua = ua.toLowerCase();
- var match = /(opr)[\/]([\w.]+)/.exec( ua ) ||
- /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
- /(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
- /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
- /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
- /(msie) ([\w.]+)/.exec( ua ) ||
- ua.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec( ua ) ||
- ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
- [];
+ var match = /(edge)\/([\w.]+)/.exec( ua ) ||
+ /(opr)[\/]([\w.]+)/.exec( ua ) ||
+ /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
+ /(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
+ /(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
+ /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
+ /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
+ /(msie) ([\w.]+)/.exec( ua ) ||
+ ua.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec( ua ) ||
+ ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
+ [];
var platform_match = /(ipad)/.exec( ua ) ||
- /(iphone)/.exec( ua ) ||
- /(android)/.exec( ua ) ||
- /(windows phone)/.exec( ua ) ||
- /(win)/.exec( ua ) ||
- /(mac)/.exec( ua ) ||
- /(linux)/.exec( ua ) ||
- /(cros)/.exec( ua ) ||
- [];
+ /(ipod)/.exec( ua ) ||
+ /(iphone)/.exec( ua ) ||
+ /(kindle)/.exec( ua ) ||
+ /(silk)/.exec( ua ) ||
+ /(android)/.exec( ua ) ||
+ /(windows phone)/.exec( ua ) ||
+ /(win)/.exec( ua ) ||
+ /(mac)/.exec( ua ) ||
+ /(linux)/.exec( ua ) ||
+ /(cros)/.exec( ua ) ||
+ /(playbook)/.exec( ua ) ||
+ /(bb)/.exec( ua ) ||
+ /(blackberry)/.exec( ua ) ||
+ [];
return {
- browser: match[ 3 ] || match[ 1 ] || "",
- version: match[ 4 ] || match[ 2 ],
- versionNumber: match[ 2 ] || "0",
+ browser: match[ 5 ] || match[ 3 ] || match[ 1 ] || "",
+ version: match[ 2 ] || match[ 4 ] || "0",
+ versionNumber: match[ 4 ] || match[ 2 ] || "0",
platform: platform_match[ 0 ] || ""
};
};
@@ -55,7 +73,7 @@
if ( matched.browser ) {
browser[ matched.browser ] = true;
browser.version = matched.version;
- browser.versionNumber = parseInt(matched.versionNumber);
+ browser.versionNumber = parseInt(matched.versionNumber, 10);
}
if ( matched.platform ) {
@@ -63,7 +81,8 @@
}
// These are all considered mobile platforms, meaning they run a mobile browser
- if ( browser.android || browser.ipad || browser.iphone || browser[ "windows phone" ] ) {
+ if ( browser.android || browser.bb || browser.blackberry || browser.ipad || browser.iphone ||
+ browser.ipod || browser.kindle || browser.playbook || browser.silk || browser[ "windows phone" ]) {
browser.mobile = true;
}
@@ -78,17 +97,40 @@
}
// IE11 has a new token so we will assign it msie to avoid breaking changes
- if ( browser.rv )
- {
+ // IE12 disguises itself as Chrome, but adds a new Edge token.
+ if ( browser.rv || browser.edge ) {
var ie = "msie";
matched.browser = ie;
browser[ie] = true;
}
+ // Blackberry browsers are marked as Safari on BlackBerry
+ if ( browser.safari && browser.blackberry ) {
+ var blackberry = "blackberry";
+
+ matched.browser = blackberry;
+ browser[blackberry] = true;
+ }
+
+ // Playbook browsers are marked as Safari on Playbook
+ if ( browser.safari && browser.playbook ) {
+ var playbook = "playbook";
+
+ matched.browser = playbook;
+ browser[playbook] = true;
+ }
+
+ // BB10 is a newer OS version of BlackBerry
+ if ( browser.bb ) {
+ var bb = "blackberry";
+
+ matched.browser = bb;
+ browser[bb] = true;
+ }
+
// Opera 15+ are identified as opr
- if ( browser.opr )
- {
+ if ( browser.opr ) {
var opera = "opera";
matched.browser = opera;
@@ -96,18 +138,33 @@
}
// Stock Android browsers are marked as Safari on Android.
- if ( browser.safari && browser.android )
- {
+ if ( browser.safari && browser.android ) {
var android = "android";
matched.browser = android;
browser[android] = true;
}
+ // Kindle browsers are marked as Safari on Kindle
+ if ( browser.safari && browser.kindle ) {
+ var kindle = "kindle";
+
+ matched.browser = kindle;
+ browser[kindle] = true;
+ }
+
+ // Kindle Silk browsers are marked as Safari on Kindle
+ if ( browser.safari && browser.silk ) {
+ var silk = "silk";
+
+ matched.browser = silk;
+ browser[silk] = true;
+ }
+
// Assign the name and platform variable
browser.name = matched.browser;
browser.platform = matched.platform;
-
jQuery.browser = browser;
-})( jQuery, window );
+ return browser;
+}));
From 551e46471fe3df20e9bcdd35fe42eb2f77b0a2f2 Mon Sep 17 00:00:00 2001
From: Michael Wiencek
Date: Wed, 24 Dec 2014 13:41:58 -0600
Subject: [PATCH 29/62] Support for node/browserify
Fixes two compatibility issues:
1. Inside wrapped browserify modules, `this` does not refer to `window`,
it's the `exports` object. Since it doesn't really make sense to use
this plugin in environments that don't have a window.navigator object,
the code now just references 'window' directly.
2. The plugin did a global export if AMD wasn't detected, which assumed
there was a global jQuery object. The added `module.exports`-detection
uses `require` to pull in jQuery instead.
---
dist/jquery.browser.js | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index e105e95..c36fb85 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -13,17 +13,20 @@
* Date: 12-12-2014
*/
-(function (root, factory) {
+(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['jquery'], function ($) {
- factory($, root);
+ factory($);
});
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ // Node-like environment
+ module.exports = factory(require('jquery'));
} else {
// Browser globals
- factory(jQuery, root);
+ factory(jQuery);
}
-}(this, function(jQuery, window) {
+}(function(jQuery) {
"use strict";
var matched, browser;
From 4ad34a3deee392e555d7a71288ec3d0006920ab4 Mon Sep 17 00:00:00 2001
From: Michael Wiencek
Date: Wed, 24 Dec 2014 14:47:50 -0600
Subject: [PATCH 30/62] Ignore JSLint "window is not defined" warning
---
dist/jquery.browser.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index c36fb85..1bd144a 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -70,6 +70,7 @@
};
};
+ /*global window: false */
matched = jQuery.uaMatch( window.navigator.userAgent );
browser = {};
From 890ce608ed2293e57b9ef6467b2e0d2ffb72ecf3 Mon Sep 17 00:00:00 2001
From: Michael Wiencek
Date: Wed, 24 Dec 2014 16:39:00 -0600
Subject: [PATCH 31/62] Move JSLint hint to top of file
---
dist/jquery.browser.js | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index 1bd144a..57b58e7 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -13,6 +13,8 @@
* Date: 12-12-2014
*/
+/*global window: false */
+
(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
@@ -70,7 +72,6 @@
};
};
- /*global window: false */
matched = jQuery.uaMatch( window.navigator.userAgent );
browser = {};
From e4a01fd783d4684659b3193626b5553f0d8f6758 Mon Sep 17 00:00:00 2001
From: Michael Wiencek
Date: Wed, 24 Dec 2014 16:40:41 -0600
Subject: [PATCH 32/62] Remove newline
---
dist/jquery.browser.js | 1 -
1 file changed, 1 deletion(-)
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index 57b58e7..cb3db86 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -12,7 +12,6 @@
*
* Date: 12-12-2014
*/
-
/*global window: false */
(function (factory) {
From 28e2f4d6965150d9bd44aec4ee35754ff67329a7 Mon Sep 17 00:00:00 2001
From: Gabriel Cebrian
Date: Thu, 25 Dec 2014 15:21:44 -0500
Subject: [PATCH 33/62] Add travis testing to project
---
package.json | 3 +++
travis.yml | 5 +++++
2 files changed, 8 insertions(+)
create mode 100644 travis.yml
diff --git a/package.json b/package.json
index df0b02b..1359416 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,9 @@
"Gabriel Cebrian ",
"jQuery Team "
],
+ "scripts": {
+ "test": "grunt test"
+ },
"description": "A jQuery plugin for browser detection.",
"main": "dist/jquery.browser.js",
"repository": "git@github.com:gabceb/jquery-browser-plugin.git",
diff --git a/travis.yml b/travis.yml
new file mode 100644
index 0000000..feb6515
--- /dev/null
+++ b/travis.yml
@@ -0,0 +1,5 @@
+language: node_js
+node_js:
+ - "0.10.x"
+before_install: npm install -g grunt-cli; npm install -g casperjs
+install: npm install
\ No newline at end of file
From 28668043dc93aec6f923226e0ae3e93de63ed60b Mon Sep 17 00:00:00 2001
From: Gabriel Cebrian
Date: Thu, 25 Dec 2014 15:23:39 -0500
Subject: [PATCH 34/62] Fixed travis config filename
---
travis.yml => .travis.yml | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename travis.yml => .travis.yml (100%)
diff --git a/travis.yml b/.travis.yml
similarity index 100%
rename from travis.yml
rename to .travis.yml
From 4936b779c939d0ba4d64fa8ae3e80bdd63e7ebbe Mon Sep 17 00:00:00 2001
From: Gabriel Cebrian
Date: Thu, 25 Dec 2014 15:25:49 -0500
Subject: [PATCH 35/62] Fixed Node version on travis file
---
.travis.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index feb6515..8deaf3f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,5 +1,5 @@
language: node_js
node_js:
- - "0.10.x"
+ - "0.10"
before_install: npm install -g grunt-cli; npm install -g casperjs
install: npm install
\ No newline at end of file
From 0780928fba9c0dce01ef2e6ceece24d7f47d9bc7 Mon Sep 17 00:00:00 2001
From: Gabriel Cebrian
Date: Thu, 25 Dec 2014 15:31:11 -0500
Subject: [PATCH 36/62] Added build status to README file Fixes #45
---
README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/README.md b/README.md
index 2dd1943..99c60ee 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@
[](https://nodei.co/npm/jquery.browser/)
+[](https://travis-ci.org/gabceb/jquery-browser-plugin)
+
A jQuery plugin for browser detection. jQuery removed support for browser detection on 1.9.1 so it was abstracted into a jQuery plugin
## Installation
From 471b236a18f7aff3d3b9c4372eaef641ddda03d8 Mon Sep 17 00:00:00 2001
From: Gabriel Cebrian
Date: Thu, 25 Dec 2014 15:41:48 -0500
Subject: [PATCH 37/62] Removed test src file so we can gitignore it
---
test/src/jquery.browser.js | 170 -------------------------------------
1 file changed, 170 deletions(-)
delete mode 100644 test/src/jquery.browser.js
diff --git a/test/src/jquery.browser.js b/test/src/jquery.browser.js
deleted file mode 100644
index e105e95..0000000
--- a/test/src/jquery.browser.js
+++ /dev/null
@@ -1,170 +0,0 @@
-/*!
- * jQuery Browser Plugin 0.0.7
- * https://github.com/gabceb/jquery-browser-plugin
- *
- * Original jquery-browser code Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors
- * http://jquery.org/license
- *
- * Modifications Copyright 2014 Gabriel Cebrian
- * https://github.com/gabceb
- *
- * Released under the MIT license
- *
- * Date: 12-12-2014
- */
-
-(function (root, factory) {
- if (typeof define === 'function' && define.amd) {
- // AMD. Register as an anonymous module.
- define(['jquery'], function ($) {
- factory($, root);
- });
- } else {
- // Browser globals
- factory(jQuery, root);
- }
-}(this, function(jQuery, window) {
- "use strict";
-
- var matched, browser;
-
- jQuery.uaMatch = function( ua ) {
- ua = ua.toLowerCase();
-
- var match = /(edge)\/([\w.]+)/.exec( ua ) ||
- /(opr)[\/]([\w.]+)/.exec( ua ) ||
- /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
- /(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
- /(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
- /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
- /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
- /(msie) ([\w.]+)/.exec( ua ) ||
- ua.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec( ua ) ||
- ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
- [];
-
- var platform_match = /(ipad)/.exec( ua ) ||
- /(ipod)/.exec( ua ) ||
- /(iphone)/.exec( ua ) ||
- /(kindle)/.exec( ua ) ||
- /(silk)/.exec( ua ) ||
- /(android)/.exec( ua ) ||
- /(windows phone)/.exec( ua ) ||
- /(win)/.exec( ua ) ||
- /(mac)/.exec( ua ) ||
- /(linux)/.exec( ua ) ||
- /(cros)/.exec( ua ) ||
- /(playbook)/.exec( ua ) ||
- /(bb)/.exec( ua ) ||
- /(blackberry)/.exec( ua ) ||
- [];
-
- return {
- browser: match[ 5 ] || match[ 3 ] || match[ 1 ] || "",
- version: match[ 2 ] || match[ 4 ] || "0",
- versionNumber: match[ 4 ] || match[ 2 ] || "0",
- platform: platform_match[ 0 ] || ""
- };
- };
-
- matched = jQuery.uaMatch( window.navigator.userAgent );
- browser = {};
-
- if ( matched.browser ) {
- browser[ matched.browser ] = true;
- browser.version = matched.version;
- browser.versionNumber = parseInt(matched.versionNumber, 10);
- }
-
- if ( matched.platform ) {
- browser[ matched.platform ] = true;
- }
-
- // These are all considered mobile platforms, meaning they run a mobile browser
- if ( browser.android || browser.bb || browser.blackberry || browser.ipad || browser.iphone ||
- browser.ipod || browser.kindle || browser.playbook || browser.silk || browser[ "windows phone" ]) {
- browser.mobile = true;
- }
-
- // These are all considered desktop platforms, meaning they run a desktop browser
- if ( browser.cros || browser.mac || browser.linux || browser.win ) {
- browser.desktop = true;
- }
-
- // Chrome, Opera 15+ and Safari are webkit based browsers
- if ( browser.chrome || browser.opr || browser.safari ) {
- browser.webkit = true;
- }
-
- // IE11 has a new token so we will assign it msie to avoid breaking changes
- // IE12 disguises itself as Chrome, but adds a new Edge token.
- if ( browser.rv || browser.edge ) {
- var ie = "msie";
-
- matched.browser = ie;
- browser[ie] = true;
- }
-
- // Blackberry browsers are marked as Safari on BlackBerry
- if ( browser.safari && browser.blackberry ) {
- var blackberry = "blackberry";
-
- matched.browser = blackberry;
- browser[blackberry] = true;
- }
-
- // Playbook browsers are marked as Safari on Playbook
- if ( browser.safari && browser.playbook ) {
- var playbook = "playbook";
-
- matched.browser = playbook;
- browser[playbook] = true;
- }
-
- // BB10 is a newer OS version of BlackBerry
- if ( browser.bb ) {
- var bb = "blackberry";
-
- matched.browser = bb;
- browser[bb] = true;
- }
-
- // Opera 15+ are identified as opr
- if ( browser.opr ) {
- var opera = "opera";
-
- matched.browser = opera;
- browser[opera] = true;
- }
-
- // Stock Android browsers are marked as Safari on Android.
- if ( browser.safari && browser.android ) {
- var android = "android";
-
- matched.browser = android;
- browser[android] = true;
- }
-
- // Kindle browsers are marked as Safari on Kindle
- if ( browser.safari && browser.kindle ) {
- var kindle = "kindle";
-
- matched.browser = kindle;
- browser[kindle] = true;
- }
-
- // Kindle Silk browsers are marked as Safari on Kindle
- if ( browser.safari && browser.silk ) {
- var silk = "silk";
-
- matched.browser = silk;
- browser[silk] = true;
- }
-
- // Assign the name and platform variable
- browser.name = matched.browser;
- browser.platform = matched.platform;
-
- jQuery.browser = browser;
- return browser;
-}));
From 269a616e961cad95768fba86a0f334ca02cb3ad3 Mon Sep 17 00:00:00 2001
From: Gabriel Cebrian
Date: Thu, 25 Dec 2014 15:43:07 -0500
Subject: [PATCH 38/62] Ignore the copied test src file
---
.gitignore | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/.gitignore b/.gitignore
index 1d6f27b..edfa242 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,6 +7,8 @@ lib-cov
*.pid
*.gz
+test/src/
+
pids
logs
results
@@ -14,4 +16,4 @@ results
npm-debug.log
node_modules
-.DS_STORE
\ No newline at end of file
+.DS_STORE
From bc41bf89481ee3e009178c3c2dbf34e23622764b Mon Sep 17 00:00:00 2001
From: Gabriel Cebrian
Date: Thu, 25 Dec 2014 15:43:20 -0500
Subject: [PATCH 39/62] Updated min file
---
dist/jquery.browser.min.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dist/jquery.browser.min.js b/dist/jquery.browser.min.js
index f8e0482..adbfd0a 100644
--- a/dist/jquery.browser.min.js
+++ b/dist/jquery.browser.min.js
@@ -10,5 +10,5 @@
*
* Released under the MIT license
*
- * Date: 12-12-2014
- */!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(c){b(c,a)}):b(jQuery,a)}(this,function(a,b){"use strict";var c,d;if(a.uaMatch=function(a){a=a.toLowerCase();var b=/(edge)\/([\w.]+)/.exec(a)||/(opr)[\/]([\w.]+)/.exec(a)||/(chrome)[ \/]([\w.]+)/.exec(a)||/(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[],c=/(ipad)/.exec(a)||/(ipod)/.exec(a)||/(iphone)/.exec(a)||/(kindle)/.exec(a)||/(silk)/.exec(a)||/(android)/.exec(a)||/(windows phone)/.exec(a)||/(win)/.exec(a)||/(mac)/.exec(a)||/(linux)/.exec(a)||/(cros)/.exec(a)||/(playbook)/.exec(a)||/(bb)/.exec(a)||/(blackberry)/.exec(a)||[];return{browser:b[5]||b[3]||b[1]||"",version:b[2]||b[4]||"0",versionNumber:b[4]||b[2]||"0",platform:c[0]||""}},c=a.uaMatch(b.navigator.userAgent),d={},c.browser&&(d[c.browser]=!0,d.version=c.version,d.versionNumber=parseInt(c.versionNumber,10)),c.platform&&(d[c.platform]=!0),(d.android||d.bb||d.blackberry||d.ipad||d.iphone||d.ipod||d.kindle||d.playbook||d.silk||d["windows phone"])&&(d.mobile=!0),(d.cros||d.mac||d.linux||d.win)&&(d.desktop=!0),(d.chrome||d.opr||d.safari)&&(d.webkit=!0),d.rv||d.edge){var e="msie";c.browser=e,d[e]=!0}if(d.safari&&d.blackberry){var f="blackberry";c.browser=f,d[f]=!0}if(d.safari&&d.playbook){var g="playbook";c.browser=g,d[g]=!0}if(d.bb){var h="blackberry";c.browser=h,d[h]=!0}if(d.opr){var i="opera";c.browser=i,d[i]=!0}if(d.safari&&d.android){var j="android";c.browser=j,d[j]=!0}if(d.safari&&d.kindle){var k="kindle";c.browser=k,d[k]=!0}if(d.safari&&d.silk){var l="silk";c.browser=l,d[l]=!0}return d.name=c.browser,d.platform=c.platform,a.browser=d,d});
\ No newline at end of file
+ * Date: 25-12-2014
+ */!function(a){"function"==typeof define&&define.amd?define(["jquery"],function(b){a(b)}):"object"==typeof module&&"object"==typeof module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){"use strict";var b,c;if(a.uaMatch=function(a){a=a.toLowerCase();var b=/(edge)\/([\w.]+)/.exec(a)||/(opr)[\/]([\w.]+)/.exec(a)||/(chrome)[ \/]([\w.]+)/.exec(a)||/(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[],c=/(ipad)/.exec(a)||/(ipod)/.exec(a)||/(iphone)/.exec(a)||/(kindle)/.exec(a)||/(silk)/.exec(a)||/(android)/.exec(a)||/(windows phone)/.exec(a)||/(win)/.exec(a)||/(mac)/.exec(a)||/(linux)/.exec(a)||/(cros)/.exec(a)||/(playbook)/.exec(a)||/(bb)/.exec(a)||/(blackberry)/.exec(a)||[];return{browser:b[5]||b[3]||b[1]||"",version:b[2]||b[4]||"0",versionNumber:b[4]||b[2]||"0",platform:c[0]||""}},b=a.uaMatch(window.navigator.userAgent),c={},b.browser&&(c[b.browser]=!0,c.version=b.version,c.versionNumber=parseInt(b.versionNumber,10)),b.platform&&(c[b.platform]=!0),(c.android||c.bb||c.blackberry||c.ipad||c.iphone||c.ipod||c.kindle||c.playbook||c.silk||c["windows phone"])&&(c.mobile=!0),(c.cros||c.mac||c.linux||c.win)&&(c.desktop=!0),(c.chrome||c.opr||c.safari)&&(c.webkit=!0),c.rv||c.edge){var d="msie";b.browser=d,c[d]=!0}if(c.safari&&c.blackberry){var e="blackberry";b.browser=e,c[e]=!0}if(c.safari&&c.playbook){var f="playbook";b.browser=f,c[f]=!0}if(c.bb){var g="blackberry";b.browser=g,c[g]=!0}if(c.opr){var h="opera";b.browser=h,c[h]=!0}if(c.safari&&c.android){var i="android";b.browser=i,c[i]=!0}if(c.safari&&c.kindle){var j="kindle";b.browser=j,c[j]=!0}if(c.safari&&c.silk){var k="silk";b.browser=k,c[k]=!0}return c.name=b.browser,c.platform=b.platform,a.browser=c,c});
\ No newline at end of file
From ece5dcecf7b7ad338919caedb6757e7fb3c888b9 Mon Sep 17 00:00:00 2001
From: Gabriel Cebrian
Date: Thu, 25 Dec 2014 16:52:39 -0500
Subject: [PATCH 40/62] Make gitignore more specific
---
.gitignore | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.gitignore b/.gitignore
index edfa242..1bdc9b3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,7 +7,7 @@ lib-cov
*.pid
*.gz
-test/src/
+test/src/jquery.browser.js
pids
logs
From 3f6c1da52cb5c3d5f4a9fc2d6af6e61f4529574a Mon Sep 17 00:00:00 2001
From: Gabriel Cebrian
Date: Thu, 25 Dec 2014 16:58:10 -0500
Subject: [PATCH 41/62] Added simple RequireJs testing using browserify
---
.gitignore | 1 +
Gruntfile.js | 17 ++++++++++++++++-
package.json | 12 ++++++++----
test/src/require/test.js | 21 +++++++++++++++++++++
4 files changed, 46 insertions(+), 5 deletions(-)
create mode 100644 test/src/require/test.js
diff --git a/.gitignore b/.gitignore
index 1bdc9b3..b76bbf2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,6 +8,7 @@ lib-cov
*.gz
test/src/jquery.browser.js
+test/test-require.js
pids
logs
diff --git a/Gruntfile.js b/Gruntfile.js
index bf401eb..2e6961b 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -1,6 +1,12 @@
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
+ browserify: {
+ 'test/test-require.js': ['test/src/require/test.js'],
+ options: {
+ banner: '/*\n\n ****** Testing Require file ****** \n\n*/'
+ }
+ },
jshint: {
files: ['Gruntfile.js', 'dist/jquery.browser.js', 'test/test.js'],
@@ -33,6 +39,11 @@ module.exports = function(grunt) {
command: "casperjs test test/test.js",
stdout: true,
stderr: true
+ },
+ 'test-require': {
+ command: "./node_modules/.bin/mocha test/test-require.js",
+ stdout: true,
+ stderr: true
}
}
});
@@ -41,7 +52,11 @@ module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-exec');
+ grunt.loadNpmTasks('grunt-browserify');
grunt.registerTask('default', ['jshint', 'uglify', 'copy']);
- grunt.registerTask('test', ['default', 'exec']);
+
+ grunt.registerTask('test-jquery', ['default', 'exec']);
+ grunt.registerTask('test-require', ['default', 'browserify', 'exec:test-require']);
+ grunt.registerTask('test', ['test-jquery', 'test-require']);
};
diff --git a/package.json b/package.json
index 1359416..7116c1d 100644
--- a/package.json
+++ b/package.json
@@ -12,13 +12,17 @@
"main": "dist/jquery.browser.js",
"repository": "git@github.com:gabceb/jquery-browser-plugin.git",
"devDependencies": {
- "webserver": "*",
- "utils": "*",
+ "chai": "^1.10.0",
"grunt": "~0.4.0",
+ "grunt-browserify": "^3.2.1",
+ "grunt-contrib-copy": "~0.4.1",
"grunt-contrib-jshint": "~0.1.1",
"grunt-contrib-uglify": "~0.2.7",
- "grunt-contrib-copy": "~0.4.1",
- "grunt-exec": "~0.4.2"
+ "grunt-exec": "~0.4.2",
+ "jquery": "^2.1.3",
+ "mocha": "^2.1.0",
+ "utils": "*",
+ "webserver": "*"
},
"license": "MIT",
"engines": {
diff --git a/test/src/require/test.js b/test/src/require/test.js
new file mode 100644
index 0000000..4fde14b
--- /dev/null
+++ b/test/src/require/test.js
@@ -0,0 +1,21 @@
+// Emulate the browser
+global.window = {
+ navigator: {
+ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.45 Safari/537.36'
+ }
+};
+
+var browser = require('../jquery.browser.js');
+
+var should = require('chai').should();
+
+describe('jQuery browser', function() {
+ it('should have the correct properties for a Chrome browser on a Mac', function(done) {
+ browser.webkit.should.be.ok;
+ browser.mac.should.be.ok;
+ browser.desktop.should.be.ok;
+
+ done();
+ });
+})
+
From c6f7f62521d212e0a2adb033050b30389cdc62f6 Mon Sep 17 00:00:00 2001
From: Gabriel Cebrian
Date: Thu, 25 Dec 2014 17:03:05 -0500
Subject: [PATCH 42/62] Fixed Gruntfile
---
Gruntfile.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Gruntfile.js b/Gruntfile.js
index 2e6961b..d3406d8 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -35,7 +35,7 @@ module.exports = function(grunt) {
}
},
exec: {
- test: {
+ 'test-jquery': {
command: "casperjs test test/test.js",
stdout: true,
stderr: true
@@ -56,7 +56,7 @@ module.exports = function(grunt) {
grunt.registerTask('default', ['jshint', 'uglify', 'copy']);
- grunt.registerTask('test-jquery', ['default', 'exec']);
+ grunt.registerTask('test-jquery', ['default', 'exec:test-jquery']);
grunt.registerTask('test-require', ['default', 'browserify', 'exec:test-require']);
grunt.registerTask('test', ['test-jquery', 'test-require']);
};
From 17953638a73d2cd741e2133af18aea3f242d3c00 Mon Sep 17 00:00:00 2001
From: Gabriel Cebrian
Date: Thu, 25 Dec 2014 17:03:33 -0500
Subject: [PATCH 43/62] Use specific package and remove unused one
---
package.json | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/package.json b/package.json
index 7116c1d..abc22ab 100644
--- a/package.json
+++ b/package.json
@@ -21,8 +21,7 @@
"grunt-exec": "~0.4.2",
"jquery": "^2.1.3",
"mocha": "^2.1.0",
- "utils": "*",
- "webserver": "*"
+ "webserver": "^1.1.2"
},
"license": "MIT",
"engines": {
From 3a4f38ff0aeeeb65691f5c91b33f4acb811d2838 Mon Sep 17 00:00:00 2001
From: Gabriel Cebrian
Date: Thu, 25 Dec 2014 17:23:40 -0500
Subject: [PATCH 44/62] Updated test command on readme file
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 99c60ee..abbdc88 100644
--- a/README.md
+++ b/README.md
@@ -95,7 +95,7 @@ Run `npm install` to install all dependencies including grunt and all tasks
Once Casperjs and the grunt-cli npm package is installed you can execute all the tests by using:
- grunt test
+ npm test
## Development
From 2daa751d9cbfd18f0a984b7d77767a302d5e6ed5 Mon Sep 17 00:00:00 2001
From: Triangle717
Date: Fri, 16 Jan 2015 22:11:48 -0500
Subject: [PATCH 45/62] Convert `jQuery.uaMatch()` to traditional function
I've chosen `jQBrowser()` as this is the jQuery.browser plugin,
and
because I cannot think of an uncommon but descriptive name for it,
for I do not want to pollute the common namespace.
---
dist/jquery.browser.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index cb3db86..b6fb765 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -32,7 +32,7 @@
var matched, browser;
- jQuery.uaMatch = function( ua ) {
+ window.jQBrowser = function( ua ) {
ua = ua.toLowerCase();
var match = /(edge)\/([\w.]+)/.exec( ua ) ||
@@ -71,7 +71,7 @@
};
};
- matched = jQuery.uaMatch( window.navigator.userAgent );
+ matched = jQBrowser( window.navigator.userAgent );
browser = {};
if ( matched.browser ) {
From 9d1323bf7c464536e2ad21bd606bc5b7479b7cd8 Mon Sep 17 00:00:00 2001
From: Triangle717
Date: Fri, 16 Jan 2015 22:19:16 -0500
Subject: [PATCH 46/62] If an UA is not provided, default to browser UA.
By optionally going jQuery free, this allows a new use-case: detecting a
browser from an arbitrary UA. However, because the majority of cases
will involve detecting the current browser, default to the UA if the
function is called without passing parameters. When using jQuery, the UA
is always provided.
---
dist/jquery.browser.js | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index b6fb765..38a4ec3 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -33,6 +33,10 @@
var matched, browser;
window.jQBrowser = function( ua ) {
+ // If an UA is not provided, default to the current browser UA.
+ if ( ua === undefined ) {
+ ua = window.navigator.userAgent;
+ }
ua = ua.toLowerCase();
var match = /(edge)\/([\w.]+)/.exec( ua ) ||
From 17658dfc91236f4d30232f365d456954b48f2d6b Mon Sep 17 00:00:00 2001
From: Triangle717
Date: Fri, 16 Jan 2015 22:41:44 -0500
Subject: [PATCH 47/62] Allow calling of jQBrowser if jQuery is not defined
This required a tad bit of restructuring, mainly making the browser
matching a part of the function and not outside of it. This also
prevents the code from running twice if jQuery is loaded and the
function is called.
It may be that we want the function to be called on page load
regardless. In that case, the changes required are trivial.
---
dist/jquery.browser.js | 31 +++++++++++++++++--------------
1 file changed, 17 insertions(+), 14 deletions(-)
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index 38a4ec3..b565f2c 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -17,7 +17,7 @@
(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
- define(['jquery'], function ($) {
+ define(['jquery'], function($) {
factory($);
});
} else if (typeof module === 'object' && typeof module.exports === 'object') {
@@ -25,7 +25,7 @@
module.exports = factory(require('jquery'));
} else {
// Browser globals
- factory(jQuery);
+ factory(window.jQuery);
}
}(function(jQuery) {
"use strict";
@@ -67,16 +67,13 @@
/(blackberry)/.exec( ua ) ||
[];
- return {
- browser: match[ 5 ] || match[ 3 ] || match[ 1 ] || "",
- version: match[ 2 ] || match[ 4 ] || "0",
- versionNumber: match[ 4 ] || match[ 2 ] || "0",
- platform: platform_match[ 0 ] || ""
- };
- };
-
- matched = jQBrowser( window.navigator.userAgent );
- browser = {};
+ var browser = {},
+ matched = {
+ browser: match[ 5 ] || match[ 3 ] || match[ 1 ] || "",
+ version: match[ 2 ] || match[ 4 ] || "0",
+ versionNumber: match[ 4 ] || match[ 2 ] || "0",
+ platform: platform_match[ 0 ] || ""
+ };
if ( matched.browser ) {
browser[ matched.browser ] = true;
@@ -172,7 +169,13 @@
// Assign the name and platform variable
browser.name = matched.browser;
browser.platform = matched.platform;
-
- jQuery.browser = browser;
return browser;
+
+ };
+
+ // Only assign to jQuery.browser if jQuery is loaded
+ if ( jQuery ) {
+ var browser = jQBrowser( window.navigator.userAgent );
+ jQuery.browser = browser;
+ }
}));
From 85deb50dc817eff38c224ed5db3e6b85b2dfc606 Mon Sep 17 00:00:00 2001
From: Triangle717
Date: Sat, 17 Jan 2015 12:05:45 -0500
Subject: [PATCH 48/62] Fix JSHint and indentation errors
---
dist/jquery.browser.js | 153 ++++++++++++++++++++---------------------
1 file changed, 75 insertions(+), 78 deletions(-)
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index b565f2c..3040936 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -12,7 +12,7 @@
*
* Date: 12-12-2014
*/
-/*global window: false */
+/*global window: false, jQBrowser */
(function (factory) {
if (typeof define === 'function' && define.amd) {
@@ -30,8 +30,6 @@
}(function(jQuery) {
"use strict";
- var matched, browser;
-
window.jQBrowser = function( ua ) {
// If an UA is not provided, default to the current browser UA.
if ( ua === undefined ) {
@@ -75,102 +73,101 @@
platform: platform_match[ 0 ] || ""
};
- if ( matched.browser ) {
- browser[ matched.browser ] = true;
- browser.version = matched.version;
- browser.versionNumber = parseInt(matched.versionNumber, 10);
- }
-
- if ( matched.platform ) {
- browser[ matched.platform ] = true;
- }
+ if ( matched.browser ) {
+ browser[ matched.browser ] = true;
+ browser.version = matched.version;
+ browser.versionNumber = parseInt(matched.versionNumber, 10);
+ }
- // These are all considered mobile platforms, meaning they run a mobile browser
- if ( browser.android || browser.bb || browser.blackberry || browser.ipad || browser.iphone ||
- browser.ipod || browser.kindle || browser.playbook || browser.silk || browser[ "windows phone" ]) {
- browser.mobile = true;
- }
+ if ( matched.platform ) {
+ browser[ matched.platform ] = true;
+ }
- // These are all considered desktop platforms, meaning they run a desktop browser
- if ( browser.cros || browser.mac || browser.linux || browser.win ) {
- browser.desktop = true;
- }
+ // These are all considered mobile platforms, meaning they run a mobile browser
+ if ( browser.android || browser.bb || browser.blackberry || browser.ipad || browser.iphone ||
+ browser.ipod || browser.kindle || browser.playbook || browser.silk || browser[ "windows phone" ]) {
+ browser.mobile = true;
+ }
- // Chrome, Opera 15+ and Safari are webkit based browsers
- if ( browser.chrome || browser.opr || browser.safari ) {
- browser.webkit = true;
- }
+ // These are all considered desktop platforms, meaning they run a desktop browser
+ if ( browser.cros || browser.mac || browser.linux || browser.win ) {
+ browser.desktop = true;
+ }
- // IE11 has a new token so we will assign it msie to avoid breaking changes
- // IE12 disguises itself as Chrome, but adds a new Edge token.
- if ( browser.rv || browser.edge ) {
- var ie = "msie";
+ // Chrome, Opera 15+ and Safari are webkit based browsers
+ if ( browser.chrome || browser.opr || browser.safari ) {
+ browser.webkit = true;
+ }
- matched.browser = ie;
- browser[ie] = true;
- }
+ // IE11 has a new token so we will assign it msie to avoid breaking changes
+ // IE12 disguises itself as Chrome, but adds a new Edge token.
+ if ( browser.rv || browser.edge ) {
+ var ie = "msie";
- // Blackberry browsers are marked as Safari on BlackBerry
- if ( browser.safari && browser.blackberry ) {
- var blackberry = "blackberry";
+ matched.browser = ie;
+ browser[ie] = true;
+ }
- matched.browser = blackberry;
- browser[blackberry] = true;
- }
+ // Blackberry browsers are marked as Safari on BlackBerry
+ if ( browser.safari && browser.blackberry ) {
+ var blackberry = "blackberry";
- // Playbook browsers are marked as Safari on Playbook
- if ( browser.safari && browser.playbook ) {
- var playbook = "playbook";
+ matched.browser = blackberry;
+ browser[blackberry] = true;
+ }
- matched.browser = playbook;
- browser[playbook] = true;
- }
+ // Playbook browsers are marked as Safari on Playbook
+ if ( browser.safari && browser.playbook ) {
+ var playbook = "playbook";
- // BB10 is a newer OS version of BlackBerry
- if ( browser.bb ) {
- var bb = "blackberry";
+ matched.browser = playbook;
+ browser[playbook] = true;
+ }
- matched.browser = bb;
- browser[bb] = true;
- }
+ // BB10 is a newer OS version of BlackBerry
+ if ( browser.bb ) {
+ var bb = "blackberry";
- // Opera 15+ are identified as opr
- if ( browser.opr ) {
- var opera = "opera";
+ matched.browser = bb;
+ browser[bb] = true;
+ }
- matched.browser = opera;
- browser[opera] = true;
- }
+ // Opera 15+ are identified as opr
+ if ( browser.opr ) {
+ var opera = "opera";
- // Stock Android browsers are marked as Safari on Android.
- if ( browser.safari && browser.android ) {
- var android = "android";
+ matched.browser = opera;
+ browser[opera] = true;
+ }
- matched.browser = android;
- browser[android] = true;
- }
+ // Stock Android browsers are marked as Safari on Android.
+ if ( browser.safari && browser.android ) {
+ var android = "android";
- // Kindle browsers are marked as Safari on Kindle
- if ( browser.safari && browser.kindle ) {
- var kindle = "kindle";
+ matched.browser = android;
+ browser[android] = true;
+ }
- matched.browser = kindle;
- browser[kindle] = true;
- }
+ // Kindle browsers are marked as Safari on Kindle
+ if ( browser.safari && browser.kindle ) {
+ var kindle = "kindle";
- // Kindle Silk browsers are marked as Safari on Kindle
- if ( browser.safari && browser.silk ) {
- var silk = "silk";
+ matched.browser = kindle;
+ browser[kindle] = true;
+ }
- matched.browser = silk;
- browser[silk] = true;
- }
+ // Kindle Silk browsers are marked as Safari on Kindle
+ if ( browser.safari && browser.silk ) {
+ var silk = "silk";
- // Assign the name and platform variable
- browser.name = matched.browser;
- browser.platform = matched.platform;
- return browser;
+ matched.browser = silk;
+ browser[silk] = true;
+ }
+ // Assign the name and platform variable
+ browser.name = matched.browser;
+ browser.platform = matched.platform;
+ return browser;
};
// Only assign to jQuery.browser if jQuery is loaded
From fa811c883101f974f32affc0914c7c66b70e1ce3 Mon Sep 17 00:00:00 2001
From: Triangle717
Date: Tue, 20 Jan 2015 21:03:17 -0500
Subject: [PATCH 49/62] Auto-run function on page load,
add the `uaMatch` function to the returned object for use if desired
---
Gruntfile.js | 2 +-
dist/jquery.browser.js | 14 +++++++++-----
2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/Gruntfile.js b/Gruntfile.js
index d3406d8..95dc931 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -29,7 +29,7 @@ module.exports = function(grunt) {
}
},
copy: {
- main:{
+ main: {
src: "dist/<%= pkg.name %>.js",
dest: "test/src/<%= pkg.name %>.js"
}
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index 3040936..078dbd0 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -12,7 +12,7 @@
*
* Date: 12-12-2014
*/
-/*global window: false, jQBrowser */
+/*global window: false */
(function (factory) {
if (typeof define === 'function' && define.amd) {
@@ -30,7 +30,7 @@
}(function(jQuery) {
"use strict";
- window.jQBrowser = function( ua ) {
+ function uaMatch( ua ) {
// If an UA is not provided, default to the current browser UA.
if ( ua === undefined ) {
ua = window.navigator.userAgent;
@@ -168,11 +168,15 @@
browser.name = matched.browser;
browser.platform = matched.platform;
return browser;
- };
+ }
+
+ // Run the matching process, also assign the function to the returned object
+ // for manual, jQuery-free use if desired
+ window.jQBrowser = uaMatch( window.navigator.userAgent );
+ window.jQBrowser.uaMatch = uaMatch;
// Only assign to jQuery.browser if jQuery is loaded
if ( jQuery ) {
- var browser = jQBrowser( window.navigator.userAgent );
- jQuery.browser = browser;
+ jQuery.browser = window.jQBrowser;
}
}));
From 63b620e30a384c624690e48334a2a745266e946c Mon Sep 17 00:00:00 2001
From: Gabriel Cebrian
Date: Tue, 20 Jan 2015 18:45:56 -0800
Subject: [PATCH 50/62] Always return browser to be able to require the module
Added 'require' to the require test so you can differentiate with other tests
---
dist/jquery.browser.js | 2 ++
dist/jquery.browser.min.js | 6 +++---
test/src/require/test.js | 2 +-
3 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index 078dbd0..9bd4648 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -179,4 +179,6 @@
if ( jQuery ) {
jQuery.browser = window.jQBrowser;
}
+
+ return window.jQBrowser;
}));
diff --git a/dist/jquery.browser.min.js b/dist/jquery.browser.min.js
index adbfd0a..55f8cf5 100644
--- a/dist/jquery.browser.min.js
+++ b/dist/jquery.browser.min.js
@@ -5,10 +5,10 @@
* Original jquery-browser code Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors
* http://jquery.org/license
*
- * Modifications Copyright 2014 Gabriel Cebrian
+ * Modifications Copyright 2015 Gabriel Cebrian
* https://github.com/gabceb
*
* Released under the MIT license
*
- * Date: 25-12-2014
- */!function(a){"function"==typeof define&&define.amd?define(["jquery"],function(b){a(b)}):"object"==typeof module&&"object"==typeof module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){"use strict";var b,c;if(a.uaMatch=function(a){a=a.toLowerCase();var b=/(edge)\/([\w.]+)/.exec(a)||/(opr)[\/]([\w.]+)/.exec(a)||/(chrome)[ \/]([\w.]+)/.exec(a)||/(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[],c=/(ipad)/.exec(a)||/(ipod)/.exec(a)||/(iphone)/.exec(a)||/(kindle)/.exec(a)||/(silk)/.exec(a)||/(android)/.exec(a)||/(windows phone)/.exec(a)||/(win)/.exec(a)||/(mac)/.exec(a)||/(linux)/.exec(a)||/(cros)/.exec(a)||/(playbook)/.exec(a)||/(bb)/.exec(a)||/(blackberry)/.exec(a)||[];return{browser:b[5]||b[3]||b[1]||"",version:b[2]||b[4]||"0",versionNumber:b[4]||b[2]||"0",platform:c[0]||""}},b=a.uaMatch(window.navigator.userAgent),c={},b.browser&&(c[b.browser]=!0,c.version=b.version,c.versionNumber=parseInt(b.versionNumber,10)),b.platform&&(c[b.platform]=!0),(c.android||c.bb||c.blackberry||c.ipad||c.iphone||c.ipod||c.kindle||c.playbook||c.silk||c["windows phone"])&&(c.mobile=!0),(c.cros||c.mac||c.linux||c.win)&&(c.desktop=!0),(c.chrome||c.opr||c.safari)&&(c.webkit=!0),c.rv||c.edge){var d="msie";b.browser=d,c[d]=!0}if(c.safari&&c.blackberry){var e="blackberry";b.browser=e,c[e]=!0}if(c.safari&&c.playbook){var f="playbook";b.browser=f,c[f]=!0}if(c.bb){var g="blackberry";b.browser=g,c[g]=!0}if(c.opr){var h="opera";b.browser=h,c[h]=!0}if(c.safari&&c.android){var i="android";b.browser=i,c[i]=!0}if(c.safari&&c.kindle){var j="kindle";b.browser=j,c[j]=!0}if(c.safari&&c.silk){var k="silk";b.browser=k,c[k]=!0}return c.name=b.browser,c.platform=b.platform,a.browser=c,c});
\ No newline at end of file
+ * Date: 20-01-2015
+ */!function(a){"function"==typeof define&&define.amd?define(["jquery"],function(b){a(b)}):"object"==typeof module&&"object"==typeof module.exports?module.exports=a(require("jquery")):a(window.jQuery)}(function(a){"use strict";function b(a){void 0===a&&(a=window.navigator.userAgent),a=a.toLowerCase();var b=/(edge)\/([\w.]+)/.exec(a)||/(opr)[\/]([\w.]+)/.exec(a)||/(chrome)[ \/]([\w.]+)/.exec(a)||/(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[],c=/(ipad)/.exec(a)||/(ipod)/.exec(a)||/(iphone)/.exec(a)||/(kindle)/.exec(a)||/(silk)/.exec(a)||/(android)/.exec(a)||/(windows phone)/.exec(a)||/(win)/.exec(a)||/(mac)/.exec(a)||/(linux)/.exec(a)||/(cros)/.exec(a)||/(playbook)/.exec(a)||/(bb)/.exec(a)||/(blackberry)/.exec(a)||[],d={},e={browser:b[5]||b[3]||b[1]||"",version:b[2]||b[4]||"0",versionNumber:b[4]||b[2]||"0",platform:c[0]||""};if(e.browser&&(d[e.browser]=!0,d.version=e.version,d.versionNumber=parseInt(e.versionNumber,10)),e.platform&&(d[e.platform]=!0),(d.android||d.bb||d.blackberry||d.ipad||d.iphone||d.ipod||d.kindle||d.playbook||d.silk||d["windows phone"])&&(d.mobile=!0),(d.cros||d.mac||d.linux||d.win)&&(d.desktop=!0),(d.chrome||d.opr||d.safari)&&(d.webkit=!0),d.rv||d.edge){var f="msie";e.browser=f,d[f]=!0}if(d.safari&&d.blackberry){var g="blackberry";e.browser=g,d[g]=!0}if(d.safari&&d.playbook){var h="playbook";e.browser=h,d[h]=!0}if(d.bb){var i="blackberry";e.browser=i,d[i]=!0}if(d.opr){var j="opera";e.browser=j,d[j]=!0}if(d.safari&&d.android){var k="android";e.browser=k,d[k]=!0}if(d.safari&&d.kindle){var l="kindle";e.browser=l,d[l]=!0}if(d.safari&&d.silk){var m="silk";e.browser=m,d[m]=!0}return d.name=e.browser,d.platform=e.platform,d}return window.jQBrowser=b(window.navigator.userAgent),window.jQBrowser.uaMatch=b,a&&(a.browser=window.jQBrowser),window.jQBrowser});
\ No newline at end of file
diff --git a/test/src/require/test.js b/test/src/require/test.js
index 4fde14b..596b114 100644
--- a/test/src/require/test.js
+++ b/test/src/require/test.js
@@ -9,7 +9,7 @@ var browser = require('../jquery.browser.js');
var should = require('chai').should();
-describe('jQuery browser', function() {
+describe('require jQuery browser', function() {
it('should have the correct properties for a Chrome browser on a Mac', function(done) {
browser.webkit.should.be.ok;
browser.mac.should.be.ok;
From 5c17c77d276fd7dcb36a551d5909aa14959f8cad Mon Sep 17 00:00:00 2001
From: Gabriel Cebrian
Date: Tue, 20 Jan 2015 18:53:33 -0800
Subject: [PATCH 51/62] Added tests for new jQuery-less function and manual UA
matching
---
test/test.js | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)
diff --git a/test/test.js b/test/test.js
index 43b4232..122923b 100644
--- a/test/test.js
+++ b/test/test.js
@@ -827,3 +827,51 @@ casper.test.begin("when using BlackBerry PlayBook stock browser", 6, function(te
casper.exit();
});
});
+
+casper.test.begin("when using Chrome on Windows w/o jQuery", 7, function(test) {
+ casper.userAgent(ua.chrome.windows);
+
+ casper.start(test_url).then(function(){
+
+ var browser = casper.evaluate(function(){
+ return window.jQBrowser;
+ });
+
+ test.assert(browser.chrome, "Browser should be Chrome");
+ test.assertEquals(browser.name, ua.chrome.name,"Browser name should be " + ua.chrome.name);
+
+ test.assert(browser.webkit, "Browser should be WebKit based");
+ test.assertEquals(browser.version, ua.chrome.version, "String version should be " + ua.chrome.version);
+ test.assertEquals(browser.versionNumber, ua.chrome.versionNumber, "Number version should be " + ua.chrome.versionNumber);
+
+ test.assert(browser.desktop, "Browser platform should be desktop");
+ test.assert(browser.win, "Platform should be Windows");
+
+ }).run(function(){
+ test.done();
+ });
+});
+
+casper.test.begin("when trying to match a browser that is not the browser used by the user", 7, function(test) {
+ casper.userAgent(ua.chrome.mac); // Use the Mac Chrome browser
+
+ casper.start(test_url).then(function(){
+
+ var browser = casper.evaluate(function(){
+ return window.jQBrowser.uaMatch(ua.chrome.windows); // Match the Windows Chrome browser
+ });
+
+ test.assert(browser.chrome, "Browser should be Chrome");
+ test.assertEquals(browser.name, ua.chrome.name,"Browser name should be " + ua.chrome.name);
+
+ test.assert(browser.webkit, "Browser should be WebKit based");
+ test.assertEquals(browser.version, ua.chrome.version, "String version should be " + ua.chrome.version);
+ test.assertEquals(browser.versionNumber, ua.chrome.versionNumber, "Number version should be " + ua.chrome.versionNumber);
+
+ test.assert(browser.desktop, "Browser platform should be desktop");
+ test.assert(browser.win, "Platform should be Windows");
+
+ }).run(function(){
+ test.done();
+ });
+});
From 46f56d8776e5bc2ec8041cb7fb205a323d90ffe0 Mon Sep 17 00:00:00 2001
From: Baraa
Date: Sun, 19 Apr 2015 13:21:52 -0400
Subject: [PATCH 52/62] 2015 Updates!
---
Gruntfile.js | 2 +-
MIT-LICENSE.txt | 4 ++--
dist/jquery.browser.js | 6 +++---
dist/jquery.browser.min.js | 7 ++++---
4 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/Gruntfile.js b/Gruntfile.js
index 95dc931..4d3c2fb 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -20,7 +20,7 @@ module.exports = function(grunt) {
},
uglify: {
options: {
- banner: '/*!\n * jQuery Browser Plugin <%= pkg.version %>\n * https://github.com/gabceb/jquery-browser-plugin\n *\n * Original jquery-browser code Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors\n * http://jquery.org/license\n *\n * Modifications Copyright <%= grunt.template.today("yyyy") %> Gabriel Cebrian\n * https://github.com/gabceb\n *\n * Released under the MIT license\n *\n * Date: <%= grunt.template.today("dd-mm-yyyy")%>\n */'
+ banner: '/*!\n * jQuery Browser Plugin <%= pkg.version %>\n * https://github.com/gabceb/jquery-browser-plugin\n *\n * Original jquery-browser code Copyright 2005, 2015 jQuery Foundation, Inc. and other contributors\n * http://jquery.org/license\n *\n * Modifications Copyright <%= grunt.template.today("yyyy") %> Gabriel Cebrian\n * https://github.com/gabceb\n *\n * Released under the MIT license\n *\n * Date: <%= grunt.template.today("dd-mm-yyyy")%>\n */'
},
dist: {
files: {
diff --git a/MIT-LICENSE.txt b/MIT-LICENSE.txt
index d04f9a7..c6ae678 100644
--- a/MIT-LICENSE.txt
+++ b/MIT-LICENSE.txt
@@ -1,5 +1,5 @@
-Copyright 2013 jQuery Foundation and other contributors, http://jquery.com/
-Modifications Copyright 2013 Gabriel Cebrian, https://www.github.com/gabceb
+Copyright 2015 jQuery Foundation and other contributors, http://jquery.com/
+Modifications Copyright 2015 Gabriel Cebrian, https://www.github.com/gabceb
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index 9bd4648..f3248b8 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -2,15 +2,15 @@
* jQuery Browser Plugin 0.0.7
* https://github.com/gabceb/jquery-browser-plugin
*
- * Original jquery-browser code Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors
+ * Original jquery-browser code Copyright 2005, 2015 jQuery Foundation, Inc. and other contributors
* http://jquery.org/license
*
- * Modifications Copyright 2014 Gabriel Cebrian
+ * Modifications Copyright 2015 Gabriel Cebrian
* https://github.com/gabceb
*
* Released under the MIT license
*
- * Date: 12-12-2014
+ * Date: 19-05-2015
*/
/*global window: false */
diff --git a/dist/jquery.browser.min.js b/dist/jquery.browser.min.js
index 55f8cf5..223144e 100644
--- a/dist/jquery.browser.min.js
+++ b/dist/jquery.browser.min.js
@@ -2,7 +2,7 @@
* jQuery Browser Plugin 0.0.7
* https://github.com/gabceb/jquery-browser-plugin
*
- * Original jquery-browser code Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors
+ * Original jquery-browser code Copyright 2005, 2015 jQuery Foundation, Inc. and other contributors
* http://jquery.org/license
*
* Modifications Copyright 2015 Gabriel Cebrian
@@ -10,5 +10,6 @@
*
* Released under the MIT license
*
- * Date: 20-01-2015
- */!function(a){"function"==typeof define&&define.amd?define(["jquery"],function(b){a(b)}):"object"==typeof module&&"object"==typeof module.exports?module.exports=a(require("jquery")):a(window.jQuery)}(function(a){"use strict";function b(a){void 0===a&&(a=window.navigator.userAgent),a=a.toLowerCase();var b=/(edge)\/([\w.]+)/.exec(a)||/(opr)[\/]([\w.]+)/.exec(a)||/(chrome)[ \/]([\w.]+)/.exec(a)||/(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[],c=/(ipad)/.exec(a)||/(ipod)/.exec(a)||/(iphone)/.exec(a)||/(kindle)/.exec(a)||/(silk)/.exec(a)||/(android)/.exec(a)||/(windows phone)/.exec(a)||/(win)/.exec(a)||/(mac)/.exec(a)||/(linux)/.exec(a)||/(cros)/.exec(a)||/(playbook)/.exec(a)||/(bb)/.exec(a)||/(blackberry)/.exec(a)||[],d={},e={browser:b[5]||b[3]||b[1]||"",version:b[2]||b[4]||"0",versionNumber:b[4]||b[2]||"0",platform:c[0]||""};if(e.browser&&(d[e.browser]=!0,d.version=e.version,d.versionNumber=parseInt(e.versionNumber,10)),e.platform&&(d[e.platform]=!0),(d.android||d.bb||d.blackberry||d.ipad||d.iphone||d.ipod||d.kindle||d.playbook||d.silk||d["windows phone"])&&(d.mobile=!0),(d.cros||d.mac||d.linux||d.win)&&(d.desktop=!0),(d.chrome||d.opr||d.safari)&&(d.webkit=!0),d.rv||d.edge){var f="msie";e.browser=f,d[f]=!0}if(d.safari&&d.blackberry){var g="blackberry";e.browser=g,d[g]=!0}if(d.safari&&d.playbook){var h="playbook";e.browser=h,d[h]=!0}if(d.bb){var i="blackberry";e.browser=i,d[i]=!0}if(d.opr){var j="opera";e.browser=j,d[j]=!0}if(d.safari&&d.android){var k="android";e.browser=k,d[k]=!0}if(d.safari&&d.kindle){var l="kindle";e.browser=l,d[l]=!0}if(d.safari&&d.silk){var m="silk";e.browser=m,d[m]=!0}return d.name=e.browser,d.platform=e.platform,d}return window.jQBrowser=b(window.navigator.userAgent),window.jQBrowser.uaMatch=b,a&&(a.browser=window.jQBrowser),window.jQBrowser});
\ No newline at end of file
+ * Date: 19-05-2015
+ */
+!function(a){"function"==typeof define&&define.amd?define(["jquery"],function(b){a(b)}):"object"==typeof module&&"object"==typeof module.exports?module.exports=a(require("jquery")):a(window.jQuery)}(function(a){"use strict";function b(a){void 0===a&&(a=window.navigator.userAgent),a=a.toLowerCase();var b=/(edge)\/([\w.]+)/.exec(a)||/(opr)[\/]([\w.]+)/.exec(a)||/(chrome)[ \/]([\w.]+)/.exec(a)||/(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[],c=/(ipad)/.exec(a)||/(ipod)/.exec(a)||/(iphone)/.exec(a)||/(kindle)/.exec(a)||/(silk)/.exec(a)||/(android)/.exec(a)||/(windows phone)/.exec(a)||/(win)/.exec(a)||/(mac)/.exec(a)||/(linux)/.exec(a)||/(cros)/.exec(a)||/(playbook)/.exec(a)||/(bb)/.exec(a)||/(blackberry)/.exec(a)||[],d={},e={browser:b[5]||b[3]||b[1]||"",version:b[2]||b[4]||"0",versionNumber:b[4]||b[2]||"0",platform:c[0]||""};if(e.browser&&(d[e.browser]=!0,d.version=e.version,d.versionNumber=parseInt(e.versionNumber,10)),e.platform&&(d[e.platform]=!0),(d.android||d.bb||d.blackberry||d.ipad||d.iphone||d.ipod||d.kindle||d.playbook||d.silk||d["windows phone"])&&(d.mobile=!0),(d.cros||d.mac||d.linux||d.win)&&(d.desktop=!0),(d.chrome||d.opr||d.safari)&&(d.webkit=!0),d.rv||d.edge){var f="msie";e.browser=f,d[f]=!0}if(d.safari&&d.blackberry){var g="blackberry";e.browser=g,d[g]=!0}if(d.safari&&d.playbook){var h="playbook";e.browser=h,d[h]=!0}if(d.bb){var i="blackberry";e.browser=i,d[i]=!0}if(d.opr){var j="opera";e.browser=j,d[j]=!0}if(d.safari&&d.android){var k="android";e.browser=k,d[k]=!0}if(d.safari&&d.kindle){var l="kindle";e.browser=l,d[l]=!0}if(d.safari&&d.silk){var m="silk";e.browser=m,d[m]=!0}return d.name=e.browser,d.platform=e.platform,d}return window.jQBrowser=b(window.navigator.userAgent),window.jQBrowser.uaMatch=b,a&&(a.browser=window.jQBrowser),window.jQBrowser});
From 1c8e69209269591d26c84173b30de1fd943a20fb Mon Sep 17 00:00:00 2001
From: artemkaint
Date: Mon, 19 Jan 2015 11:16:59 +0300
Subject: [PATCH 53/62] Merge (fix) #57 - Fix bower AMD loading
---
dist/jquery.browser.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index f3248b8..f7f7872 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -17,8 +17,8 @@
(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
- define(['jquery'], function($) {
- factory($);
+ define(['jquery'], function ($) {
+ return factory($);
});
} else if (typeof module === 'object' && typeof module.exports === 'object') {
// Node-like environment
From e651dd59375dc3da684a55919666b7a956c34f03 Mon Sep 17 00:00:00 2001
From: Triangle717
Date: Tue, 23 Jun 2015 14:46:00 -0400
Subject: [PATCH 54/62] Disable sudo on Travis CI
This help speed up the builds and make use of updated Travis
infrastructure.
---
.travis.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.travis.yml b/.travis.yml
index 8deaf3f..0a7a84e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,3 +1,4 @@
+sudo: false
language: node_js
node_js:
- "0.10"
From 04a369383dc2aa1e327679cce68482bb24d55a75 Mon Sep 17 00:00:00 2001
From: Triangle717
Date: Tue, 23 Jun 2015 15:18:37 -0400
Subject: [PATCH 55/62] Initial README update
---
README.md | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/README.md b/README.md
index abbdc88..362c0fb 100644
--- a/README.md
+++ b/README.md
@@ -2,17 +2,20 @@
[](https://travis-ci.org/gabceb/jquery-browser-plugin)
-A jQuery plugin for browser detection. jQuery removed support for browser detection on 1.9.1 so it was abstracted into a jQuery plugin
+A jQuery plugin for browser detection. jQuery v1.9.1 dropped support for browser detection, and this project aims to keep the detection up-to-date.
## Installation
Include script *after* the jQuery library:
+```html
+
+```
-
+Alternatively, you can use the plugin without jQuery by substituting `$.browser` for the global `jQBrowser` object.
## Usage
-Returns true if the current useragent is some version of Microsoft's Internet Explorer. Supports all IE versions including IE 12.
+Returns true if the current useragent is some version of Microsoft's Internet Explorer. Supports all IE versions including IE 11.
$.browser.msie;
@@ -24,10 +27,14 @@ Returns true if the current useragent is some version of Firefox
$.browser.mozilla;
-Reading the browser verion
-
+Reading the browser version
+
$.browser.version
+You can also examine arbitrary useragents
+
+ jQBrowser.uaMatch();
+
## Things not included in the original jQuery $.browser implementation
- Detect specifically Windows, Mac, Linux, iPad, iPhone, iPod, Android, Kindle, BlackBerry, Chrome OS, and Windows Phone useragents
@@ -78,7 +85,7 @@ Alternatively, you can detect for generic classifications such as desktop or mob
$.browser.versionNumber // Returns 32 as a number
```
-- Support for new useragent on IE 11 and IE 12
+- Support for new useragent on IE 11
- Support for WebKit based Opera browsers
- Added testing using PhantomJS and different browser user agents
From 3498df963b11a5748e7b44e4b38dc09cfb5c44ed Mon Sep 17 00:00:00 2001
From: Caleb Ely
Date: Sun, 5 Jul 2015 18:10:22 -0400
Subject: [PATCH 56/62] Fixed reversed wording for non-jQuery usage
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 362c0fb..cb9b5ec 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@ Include script *after* the jQuery library:
```
-Alternatively, you can use the plugin without jQuery by substituting `$.browser` for the global `jQBrowser` object.
+Alternatively, you can use the plugin without jQuery by using the global object `jQBrowser` instead of `$.browser`.
## Usage
From deedc12dcf8857686d592365df0cc0cf7324eec8 Mon Sep 17 00:00:00 2001
From: Triangle717
Date: Sun, 5 Jul 2015 21:06:04 -0400
Subject: [PATCH 57/62] v0.0.8
---
bower.json | 2 +-
browser.jquery.json | 2 +-
dist/jquery.browser.js | 4 ++--
dist/jquery.browser.min.js | 7 +++----
package.json | 2 +-
5 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/bower.json b/bower.json
index 686c626..a7a391f 100644
--- a/bower.json
+++ b/bower.json
@@ -1,6 +1,6 @@
{
"name": "jquery.browser",
- "version": "0.0.6",
+ "version": "0.0.8",
"homepage": "https://github.com/gabceb/jquery-browser-plugin",
"authors": ["Gabriel Cebrian ", "jQuery Team "],
"description": "A jQuery plugin for browser detection.",
diff --git a/browser.jquery.json b/browser.jquery.json
index 4e4c14c..1468346 100644
--- a/browser.jquery.json
+++ b/browser.jquery.json
@@ -9,7 +9,7 @@
"html5",
"support"
],
- "version": "0.0.6",
+ "version": "0.0.8",
"author": {
"name": "Gabriel Cebrian. Initial implementation by the jQuery Team",
"url": "https://github.com/gabceb/jquery-browser-plugin/wiki/Authors"
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index f7f7872..038ec52 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -1,5 +1,5 @@
/*!
- * jQuery Browser Plugin 0.0.7
+ * jQuery Browser Plugin 0.0.8
* https://github.com/gabceb/jquery-browser-plugin
*
* Original jquery-browser code Copyright 2005, 2015 jQuery Foundation, Inc. and other contributors
@@ -10,7 +10,7 @@
*
* Released under the MIT license
*
- * Date: 19-05-2015
+ * Date: 05-07-2015
*/
/*global window: false */
diff --git a/dist/jquery.browser.min.js b/dist/jquery.browser.min.js
index 223144e..246407c 100644
--- a/dist/jquery.browser.min.js
+++ b/dist/jquery.browser.min.js
@@ -1,5 +1,5 @@
/*!
- * jQuery Browser Plugin 0.0.7
+ * jQuery Browser Plugin 0.0.8
* https://github.com/gabceb/jquery-browser-plugin
*
* Original jquery-browser code Copyright 2005, 2015 jQuery Foundation, Inc. and other contributors
@@ -10,6 +10,5 @@
*
* Released under the MIT license
*
- * Date: 19-05-2015
- */
-!function(a){"function"==typeof define&&define.amd?define(["jquery"],function(b){a(b)}):"object"==typeof module&&"object"==typeof module.exports?module.exports=a(require("jquery")):a(window.jQuery)}(function(a){"use strict";function b(a){void 0===a&&(a=window.navigator.userAgent),a=a.toLowerCase();var b=/(edge)\/([\w.]+)/.exec(a)||/(opr)[\/]([\w.]+)/.exec(a)||/(chrome)[ \/]([\w.]+)/.exec(a)||/(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[],c=/(ipad)/.exec(a)||/(ipod)/.exec(a)||/(iphone)/.exec(a)||/(kindle)/.exec(a)||/(silk)/.exec(a)||/(android)/.exec(a)||/(windows phone)/.exec(a)||/(win)/.exec(a)||/(mac)/.exec(a)||/(linux)/.exec(a)||/(cros)/.exec(a)||/(playbook)/.exec(a)||/(bb)/.exec(a)||/(blackberry)/.exec(a)||[],d={},e={browser:b[5]||b[3]||b[1]||"",version:b[2]||b[4]||"0",versionNumber:b[4]||b[2]||"0",platform:c[0]||""};if(e.browser&&(d[e.browser]=!0,d.version=e.version,d.versionNumber=parseInt(e.versionNumber,10)),e.platform&&(d[e.platform]=!0),(d.android||d.bb||d.blackberry||d.ipad||d.iphone||d.ipod||d.kindle||d.playbook||d.silk||d["windows phone"])&&(d.mobile=!0),(d.cros||d.mac||d.linux||d.win)&&(d.desktop=!0),(d.chrome||d.opr||d.safari)&&(d.webkit=!0),d.rv||d.edge){var f="msie";e.browser=f,d[f]=!0}if(d.safari&&d.blackberry){var g="blackberry";e.browser=g,d[g]=!0}if(d.safari&&d.playbook){var h="playbook";e.browser=h,d[h]=!0}if(d.bb){var i="blackberry";e.browser=i,d[i]=!0}if(d.opr){var j="opera";e.browser=j,d[j]=!0}if(d.safari&&d.android){var k="android";e.browser=k,d[k]=!0}if(d.safari&&d.kindle){var l="kindle";e.browser=l,d[l]=!0}if(d.safari&&d.silk){var m="silk";e.browser=m,d[m]=!0}return d.name=e.browser,d.platform=e.platform,d}return window.jQBrowser=b(window.navigator.userAgent),window.jQBrowser.uaMatch=b,a&&(a.browser=window.jQBrowser),window.jQBrowser});
+ * Date: 05-07-2015
+ */!function(a){"function"==typeof define&&define.amd?define(["jquery"],function(b){return a(b)}):"object"==typeof module&&"object"==typeof module.exports?module.exports=a(require("jquery")):a(window.jQuery)}(function(a){"use strict";function b(a){void 0===a&&(a=window.navigator.userAgent),a=a.toLowerCase();var b=/(edge)\/([\w.]+)/.exec(a)||/(opr)[\/]([\w.]+)/.exec(a)||/(chrome)[ \/]([\w.]+)/.exec(a)||/(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[],c=/(ipad)/.exec(a)||/(ipod)/.exec(a)||/(iphone)/.exec(a)||/(kindle)/.exec(a)||/(silk)/.exec(a)||/(android)/.exec(a)||/(windows phone)/.exec(a)||/(win)/.exec(a)||/(mac)/.exec(a)||/(linux)/.exec(a)||/(cros)/.exec(a)||/(playbook)/.exec(a)||/(bb)/.exec(a)||/(blackberry)/.exec(a)||[],d={},e={browser:b[5]||b[3]||b[1]||"",version:b[2]||b[4]||"0",versionNumber:b[4]||b[2]||"0",platform:c[0]||""};if(e.browser&&(d[e.browser]=!0,d.version=e.version,d.versionNumber=parseInt(e.versionNumber,10)),e.platform&&(d[e.platform]=!0),(d.android||d.bb||d.blackberry||d.ipad||d.iphone||d.ipod||d.kindle||d.playbook||d.silk||d["windows phone"])&&(d.mobile=!0),(d.cros||d.mac||d.linux||d.win)&&(d.desktop=!0),(d.chrome||d.opr||d.safari)&&(d.webkit=!0),d.rv||d.edge){var f="msie";e.browser=f,d[f]=!0}if(d.safari&&d.blackberry){var g="blackberry";e.browser=g,d[g]=!0}if(d.safari&&d.playbook){var h="playbook";e.browser=h,d[h]=!0}if(d.bb){var i="blackberry";e.browser=i,d[i]=!0}if(d.opr){var j="opera";e.browser=j,d[j]=!0}if(d.safari&&d.android){var k="android";e.browser=k,d[k]=!0}if(d.safari&&d.kindle){var l="kindle";e.browser=l,d[l]=!0}if(d.safari&&d.silk){var m="silk";e.browser=m,d[m]=!0}return d.name=e.browser,d.platform=e.platform,d}return window.jQBrowser=b(window.navigator.userAgent),window.jQBrowser.uaMatch=b,a&&(a.browser=window.jQBrowser),window.jQBrowser});
\ No newline at end of file
diff --git a/package.json b/package.json
index abc22ab..d263ceb 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "jquery.browser",
- "version": "0.0.7",
+ "version": "0.0.8",
"authors": [
"Gabriel Cebrian ",
"jQuery Team "
From 6ea05333701e5ffc4bfb61733c93a0ddd8e85f58 Mon Sep 17 00:00:00 2001
From: MoonYard
Date: Mon, 23 Nov 2015 12:26:09 +0100
Subject: [PATCH 58/62] bugfix windows phone (lumia520)
Closes #68
---
dist/jquery.browser.js | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index 038ec52..3ef0152 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -40,6 +40,7 @@
var match = /(edge)\/([\w.]+)/.exec( ua ) ||
/(opr)[\/]([\w.]+)/.exec( ua ) ||
/(chrome)[ \/]([\w.]+)/.exec( ua ) ||
+ /(iemobile)[\/]([\w.]+)/.exec( ua ) ||
/(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
@@ -51,11 +52,11 @@
var platform_match = /(ipad)/.exec( ua ) ||
/(ipod)/.exec( ua ) ||
+ /(windows phone)/.exec( ua ) ||
/(iphone)/.exec( ua ) ||
/(kindle)/.exec( ua ) ||
/(silk)/.exec( ua ) ||
/(android)/.exec( ua ) ||
- /(windows phone)/.exec( ua ) ||
/(win)/.exec( ua ) ||
/(mac)/.exec( ua ) ||
/(linux)/.exec( ua ) ||
@@ -101,7 +102,7 @@
// IE11 has a new token so we will assign it msie to avoid breaking changes
// IE12 disguises itself as Chrome, but adds a new Edge token.
- if ( browser.rv || browser.edge ) {
+ if ( browser.rv || browser.edge || browser.iemobile) {
var ie = "msie";
matched.browser = ie;
From 7dd692a1dee0451240083717f921024f400f795c Mon Sep 17 00:00:00 2001
From: MoonYard
Date: Mon, 23 Nov 2015 12:55:08 +0100
Subject: [PATCH 59/62] Update test.js
added test for Windows Phone 8.1 with IE11
Closes #69
---
test/test.js | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/test/test.js b/test/test.js
index 122923b..2d48c1a 100644
--- a/test/test.js
+++ b/test/test.js
@@ -47,7 +47,8 @@ var ua = {
v_12: "Mozilla/5.0 (Windows NT 6.4; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36 Edge/12.0"
},
win_phone : {
- v_10: "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 1020)"
+ v_10: "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 1020)",
+ v_11: "Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 520) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537"
},
name: "msie"
},
From ab87149178de1885c38bc6ff84ae51258b42386e Mon Sep 17 00:00:00 2001
From: Caleb Ely
Date: Mon, 23 Nov 2015 13:05:25 -0500
Subject: [PATCH 60/62] Add test for Windows Phone IE 11
---
test/test.js | 26 +++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
diff --git a/test/test.js b/test/test.js
index 2d48c1a..1690926 100644
--- a/test/test.js
+++ b/test/test.js
@@ -464,7 +464,6 @@ casper.test.begin("when using IE10", 7, function(test) {
});
});
-
casper.test.begin("when using IE10 on a Windows Phone", 7, function(test) {
casper.userAgent(ua.ie.win_phone.v_10);
@@ -490,6 +489,31 @@ casper.test.begin("when using IE10 on a Windows Phone", 7, function(test) {
});
});
+casper.test.begin("when using IE11 on a Windows Phone", 7, function(test) {
+ casper.userAgent(ua.ie.win_phone.v_11);
+
+ casper.start(test_url).then(function(){
+
+ var browser = casper.evaluate(function(){
+ return $.browser;
+ });
+
+ test.assert(browser.msie, "Browser should be IE");
+ test.assertEquals(browser.name, ua.ie.name,"Browser name should be " + ua.ie.name);
+
+ test.assertEquals(browser.version, "11.0", "Version should be 11.0");
+ test.assertEquals(browser.versionNumber, 11, "Version should be 11");
+
+ test.assert(browser.mobile, "Browser platform should be mobile");
+ test.assert(browser["windows phone"], "Platform should be Windows Phone");
+
+ test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
+
+ }).run(function(){
+ test.done();
+ });
+});
+
casper.test.begin("when using IE11", 7, function(test) {
casper.userAgent(ua.ie.windows.v_11);
From 412cbceb63f7f7e63d8c40ff4450f86730aea24e Mon Sep 17 00:00:00 2001
From: Caleb Ely
Date: Mon, 23 Nov 2015 14:13:59 -0500
Subject: [PATCH 61/62] Support Microsoft Edge (#63)
---
README.md | 2 +
dist/jquery.browser.js | 12 +++++-
test/test.js | 92 ++++++++++++++++++++++++++++++++++--------
3 files changed, 88 insertions(+), 18 deletions(-)
diff --git a/README.md b/README.md
index cb9b5ec..11c9f8e 100644
--- a/README.md
+++ b/README.md
@@ -49,6 +49,7 @@ You can also examine arbitrary useragents
$.browser.kindle
$.browser.linux
$.browser.mac
+ $.browser.msedge
$.browser.playbook
$.browser.silk
$.browser.win
@@ -86,6 +87,7 @@ Alternatively, you can detect for generic classifications such as desktop or mob
```
- Support for new useragent on IE 11
+- Support for Microsoft Edge
- Support for WebKit based Opera browsers
- Added testing using PhantomJS and different browser user agents
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index 3ef0152..8db2351 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -101,14 +101,22 @@
}
// IE11 has a new token so we will assign it msie to avoid breaking changes
- // IE12 disguises itself as Chrome, but adds a new Edge token.
- if ( browser.rv || browser.edge || browser.iemobile) {
+ if ( browser.rv || browser.iemobile) {
var ie = "msie";
matched.browser = ie;
browser[ie] = true;
}
+ // Edge is officially known as Microsoft Edge, so rewrite the key to match
+ if ( browser.edge ) {
+ delete browser.edge;
+ var msedge = "msedge";
+
+ matched.browser = msedge;
+ browser[msedge] = true;
+ }
+
// Blackberry browsers are marked as Safari on BlackBerry
if ( browser.safari && browser.blackberry ) {
var blackberry = "blackberry";
diff --git a/test/test.js b/test/test.js
index 1690926..35db474 100644
--- a/test/test.js
+++ b/test/test.js
@@ -40,18 +40,27 @@ var ua = {
name: "mozilla"
},
ie: {
- windows : {
+ windows: {
v_9: "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0)",
v_10: "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)",
- v_11: "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko",
- v_12: "Mozilla/5.0 (Windows NT 6.4; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36 Edge/12.0"
+ v_11: "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko"
},
- win_phone : {
+ win_phone: {
v_10: "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 1020)",
v_11: "Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 520) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537"
},
name: "msie"
},
+ msedge: {
+ windows: {
+ v_12: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.0",
+ v_13: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586"
+ },
+ win_phone: {
+ v_13: "Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; NOKIA; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Mobile Safari/537.36 Edge/13.10586"
+ },
+ name: "msedge"
+ },
opera: {
v_15: {
mac: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.20 Safari/537.36 OPR/15.0.1147.18",
@@ -489,8 +498,8 @@ casper.test.begin("when using IE10 on a Windows Phone", 7, function(test) {
});
});
-casper.test.begin("when using IE11 on a Windows Phone", 7, function(test) {
- casper.userAgent(ua.ie.win_phone.v_11);
+casper.test.begin("when using IE11", 7, function(test) {
+ casper.userAgent(ua.ie.windows.v_11);
casper.start(test_url).then(function(){
@@ -504,8 +513,8 @@ casper.test.begin("when using IE11 on a Windows Phone", 7, function(test) {
test.assertEquals(browser.version, "11.0", "Version should be 11.0");
test.assertEquals(browser.versionNumber, 11, "Version should be 11");
- test.assert(browser.mobile, "Browser platform should be mobile");
- test.assert(browser["windows phone"], "Platform should be Windows Phone");
+ test.assert(browser.desktop, "Browser platform should be desktop");
+ test.assert(browser.win, "Platform should be Windows");
test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
@@ -514,8 +523,8 @@ casper.test.begin("when using IE11 on a Windows Phone", 7, function(test) {
});
});
-casper.test.begin("when using IE11", 7, function(test) {
- casper.userAgent(ua.ie.windows.v_11);
+casper.test.begin("when using IE11 on a Windows Phone", 7, function(test) {
+ casper.userAgent(ua.ie.win_phone.v_11);
casper.start(test_url).then(function(){
@@ -529,8 +538,8 @@ casper.test.begin("when using IE11", 7, function(test) {
test.assertEquals(browser.version, "11.0", "Version should be 11.0");
test.assertEquals(browser.versionNumber, 11, "Version should be 11");
- test.assert(browser.desktop, "Browser platform should be desktop");
- test.assert(browser.win, "Platform should be Windows");
+ test.assert(browser.mobile, "Browser platform should be mobile");
+ test.assert(browser["windows phone"], "Platform should be Windows Phone");
test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
@@ -539,8 +548,8 @@ casper.test.begin("when using IE11", 7, function(test) {
});
});
-casper.test.begin("when using IE12", 7, function(test) {
- casper.userAgent(ua.ie.windows.v_12);
+casper.test.begin("when using Microsoft Edge 12", 7, function(test) {
+ casper.userAgent(ua.msedge.windows.v_12);
casper.start(test_url).then(function(){
@@ -548,8 +557,8 @@ casper.test.begin("when using IE12", 7, function(test) {
return $.browser;
});
- test.assert(browser.msie, "Browser should be IE");
- test.assertEquals(browser.name, ua.ie.name,"Browser name should be " + ua.ie.name);
+ test.assert(browser.msedge, "Browser should be MS Edge");
+ test.assertEquals(browser.name, ua.msedge.name,"Browser name should be " + ua.msedge.name);
test.assertEquals(browser.version, "12.0", "Version should be 12.0");
test.assertEquals(browser.versionNumber, 12, "Version should be 12");
@@ -564,6 +573,57 @@ casper.test.begin("when using IE12", 7, function(test) {
});
});
+casper.test.begin("when using Microsoft Edge 13", 7, function(test) {
+ casper.userAgent(ua.msedge.windows.v_13);
+
+ casper.start(test_url).then(function(){
+
+ var browser = casper.evaluate(function(){
+ return $.browser;
+ });
+
+ test.assert(browser.msedge, "Browser should be MS Edge");
+ test.assertEquals(browser.name, ua.msedge.name,"Browser name should be " + ua.msedge.name);
+
+ test.assertEquals(browser.version, "13.10586", "Version should be 13.10586");
+ test.assertEquals(browser.versionNumber, 13, "Version should be 13");
+
+ test.assert(browser.desktop, "Browser platform should be desktop");
+ test.assert(browser.win, "Platform should be Windows");
+
+ test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
+
+ }).run(function(){
+ test.done();
+ });
+});
+
+casper.test.begin("when using Microsoft Edge v13 on a Windows Phone", 7, function(test) {
+ casper.userAgent(ua.msedge.win_phone.v_13);
+
+ casper.start(test_url).then(function(){
+
+ var browser = casper.evaluate(function(){
+ return $.browser;
+ });
+
+ test.assert(browser.msedge, "Browser should be MS Edge");
+ test.assertEquals(browser.name, ua.msedge.name,"Browser name should be " + ua.msedge.name);
+
+ test.assertEquals(browser.version, "13.10586", "Version should be 13.10586");
+ test.assertEquals(browser.versionNumber, 13, "Version should be 13");
+
+ test.assert(browser.mobile, "Browser platform should be mobile");
+ test.assert(browser["windows phone"], "Platform should be Windows Phone");
+
+ test.assertFalsy(browser.webkit, "Browser should NOT be WebKit based");
+
+ }).run(function(){
+ test.done();
+ });
+});
+
+
casper.test.begin("when using Opera 15+ on Windows", 7, function(test) {
casper.userAgent(ua.opera.v_15.windows);
From 07d59ee6e87da9f789b196d221e5f62f9db3c158 Mon Sep 17 00:00:00 2001
From: Gabriel Cebrian
Date: Mon, 23 Nov 2015 11:56:22 -0800
Subject: [PATCH 62/62] Bump the minor
---
bower.json | 2 +-
browser.jquery.json | 2 +-
dist/jquery.browser.js | 2 +-
dist/jquery.browser.min.js | 6 +++---
package.json | 2 +-
5 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/bower.json b/bower.json
index a7a391f..6955a43 100644
--- a/bower.json
+++ b/bower.json
@@ -1,6 +1,6 @@
{
"name": "jquery.browser",
- "version": "0.0.8",
+ "version": "0.1.0",
"homepage": "https://github.com/gabceb/jquery-browser-plugin",
"authors": ["Gabriel Cebrian ", "jQuery Team "],
"description": "A jQuery plugin for browser detection.",
diff --git a/browser.jquery.json b/browser.jquery.json
index 1468346..79868a6 100644
--- a/browser.jquery.json
+++ b/browser.jquery.json
@@ -9,7 +9,7 @@
"html5",
"support"
],
- "version": "0.0.8",
+ "version": "0.1.0",
"author": {
"name": "Gabriel Cebrian. Initial implementation by the jQuery Team",
"url": "https://github.com/gabceb/jquery-browser-plugin/wiki/Authors"
diff --git a/dist/jquery.browser.js b/dist/jquery.browser.js
index 8db2351..223eca6 100644
--- a/dist/jquery.browser.js
+++ b/dist/jquery.browser.js
@@ -1,5 +1,5 @@
/*!
- * jQuery Browser Plugin 0.0.8
+ * jQuery Browser Plugin 0.1.0
* https://github.com/gabceb/jquery-browser-plugin
*
* Original jquery-browser code Copyright 2005, 2015 jQuery Foundation, Inc. and other contributors
diff --git a/dist/jquery.browser.min.js b/dist/jquery.browser.min.js
index 246407c..491da7c 100644
--- a/dist/jquery.browser.min.js
+++ b/dist/jquery.browser.min.js
@@ -1,5 +1,5 @@
/*!
- * jQuery Browser Plugin 0.0.8
+ * jQuery Browser Plugin 0.1.0
* https://github.com/gabceb/jquery-browser-plugin
*
* Original jquery-browser code Copyright 2005, 2015 jQuery Foundation, Inc. and other contributors
@@ -10,5 +10,5 @@
*
* Released under the MIT license
*
- * Date: 05-07-2015
- */!function(a){"function"==typeof define&&define.amd?define(["jquery"],function(b){return a(b)}):"object"==typeof module&&"object"==typeof module.exports?module.exports=a(require("jquery")):a(window.jQuery)}(function(a){"use strict";function b(a){void 0===a&&(a=window.navigator.userAgent),a=a.toLowerCase();var b=/(edge)\/([\w.]+)/.exec(a)||/(opr)[\/]([\w.]+)/.exec(a)||/(chrome)[ \/]([\w.]+)/.exec(a)||/(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[],c=/(ipad)/.exec(a)||/(ipod)/.exec(a)||/(iphone)/.exec(a)||/(kindle)/.exec(a)||/(silk)/.exec(a)||/(android)/.exec(a)||/(windows phone)/.exec(a)||/(win)/.exec(a)||/(mac)/.exec(a)||/(linux)/.exec(a)||/(cros)/.exec(a)||/(playbook)/.exec(a)||/(bb)/.exec(a)||/(blackberry)/.exec(a)||[],d={},e={browser:b[5]||b[3]||b[1]||"",version:b[2]||b[4]||"0",versionNumber:b[4]||b[2]||"0",platform:c[0]||""};if(e.browser&&(d[e.browser]=!0,d.version=e.version,d.versionNumber=parseInt(e.versionNumber,10)),e.platform&&(d[e.platform]=!0),(d.android||d.bb||d.blackberry||d.ipad||d.iphone||d.ipod||d.kindle||d.playbook||d.silk||d["windows phone"])&&(d.mobile=!0),(d.cros||d.mac||d.linux||d.win)&&(d.desktop=!0),(d.chrome||d.opr||d.safari)&&(d.webkit=!0),d.rv||d.edge){var f="msie";e.browser=f,d[f]=!0}if(d.safari&&d.blackberry){var g="blackberry";e.browser=g,d[g]=!0}if(d.safari&&d.playbook){var h="playbook";e.browser=h,d[h]=!0}if(d.bb){var i="blackberry";e.browser=i,d[i]=!0}if(d.opr){var j="opera";e.browser=j,d[j]=!0}if(d.safari&&d.android){var k="android";e.browser=k,d[k]=!0}if(d.safari&&d.kindle){var l="kindle";e.browser=l,d[l]=!0}if(d.safari&&d.silk){var m="silk";e.browser=m,d[m]=!0}return d.name=e.browser,d.platform=e.platform,d}return window.jQBrowser=b(window.navigator.userAgent),window.jQBrowser.uaMatch=b,a&&(a.browser=window.jQBrowser),window.jQBrowser});
\ No newline at end of file
+ * Date: 23-11-2015
+ */!function(a){"function"==typeof define&&define.amd?define(["jquery"],function(b){return a(b)}):"object"==typeof module&&"object"==typeof module.exports?module.exports=a(require("jquery")):a(window.jQuery)}(function(a){"use strict";function b(a){void 0===a&&(a=window.navigator.userAgent),a=a.toLowerCase();var b=/(edge)\/([\w.]+)/.exec(a)||/(opr)[\/]([\w.]+)/.exec(a)||/(chrome)[ \/]([\w.]+)/.exec(a)||/(iemobile)[\/]([\w.]+)/.exec(a)||/(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[],c=/(ipad)/.exec(a)||/(ipod)/.exec(a)||/(windows phone)/.exec(a)||/(iphone)/.exec(a)||/(kindle)/.exec(a)||/(silk)/.exec(a)||/(android)/.exec(a)||/(win)/.exec(a)||/(mac)/.exec(a)||/(linux)/.exec(a)||/(cros)/.exec(a)||/(playbook)/.exec(a)||/(bb)/.exec(a)||/(blackberry)/.exec(a)||[],d={},e={browser:b[5]||b[3]||b[1]||"",version:b[2]||b[4]||"0",versionNumber:b[4]||b[2]||"0",platform:c[0]||""};if(e.browser&&(d[e.browser]=!0,d.version=e.version,d.versionNumber=parseInt(e.versionNumber,10)),e.platform&&(d[e.platform]=!0),(d.android||d.bb||d.blackberry||d.ipad||d.iphone||d.ipod||d.kindle||d.playbook||d.silk||d["windows phone"])&&(d.mobile=!0),(d.cros||d.mac||d.linux||d.win)&&(d.desktop=!0),(d.chrome||d.opr||d.safari)&&(d.webkit=!0),d.rv||d.iemobile){var f="msie";e.browser=f,d[f]=!0}if(d.edge){delete d.edge;var g="msedge";e.browser=g,d[g]=!0}if(d.safari&&d.blackberry){var h="blackberry";e.browser=h,d[h]=!0}if(d.safari&&d.playbook){var i="playbook";e.browser=i,d[i]=!0}if(d.bb){var j="blackberry";e.browser=j,d[j]=!0}if(d.opr){var k="opera";e.browser=k,d[k]=!0}if(d.safari&&d.android){var l="android";e.browser=l,d[l]=!0}if(d.safari&&d.kindle){var m="kindle";e.browser=m,d[m]=!0}if(d.safari&&d.silk){var n="silk";e.browser=n,d[n]=!0}return d.name=e.browser,d.platform=e.platform,d}return window.jQBrowser=b(window.navigator.userAgent),window.jQBrowser.uaMatch=b,a&&(a.browser=window.jQBrowser),window.jQBrowser});
\ No newline at end of file
diff --git a/package.json b/package.json
index d263ceb..421f8d5 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "jquery.browser",
- "version": "0.0.8",
+ "version": "0.1.0",
"authors": [
"Gabriel Cebrian ",
"jQuery Team "