summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/util/browser.js3
-rw-r--r--tests/test.browser.js11
2 files changed, 8 insertions, 6 deletions
diff --git a/core/util/browser.js b/core/util/browser.js
index 8195438..bbc9f5c 100644
--- a/core/util/browser.js
+++ b/core/util/browser.js
@@ -94,7 +94,8 @@ export function isIOS() {
}
export function isAndroid() {
- return !!(/android/i).exec(navigator.platform);
+ /* Android sets navigator.platform to Linux :/ */
+ return !!navigator.userAgent.match('Android ');
}
export function isChromeOS() {
diff --git a/tests/test.browser.js b/tests/test.browser.js
index 4b6c127..3b2299f 100644
--- a/tests/test.browser.js
+++ b/tests/test.browser.js
@@ -73,13 +73,14 @@ describe('OS detection', function () {
});
it('should handle Android', function () {
- const platforms = [
- "Android",
+ let userAgents = [
+ "Mozilla/5.0 (Linux; Android 13; SM-G960U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.128 Mobile Safari/537.36",
+ "Mozilla/5.0 (Android 13; Mobile; LG-M255; rv:108.0) Gecko/108.0 Firefox/108.0",
];
- navigator.userAgent = "Mozilla/5.0 (Android; Mobile; rv:13.0) Gecko/13.0 Firefox/13.0";
- platforms.forEach((platform) => {
- navigator.platform = platform;
+ navigator.platform = "Linux x86_64";
+ userAgents.forEach((ua) => {
+ navigator.userAgent = ua;
expect(isMac()).to.be.false;
expect(isWindows()).to.be.false;
expect(isIOS()).to.be.false;