UNPKG

webrtc-adapter

Version:

A shim to insulate apps from WebRTC spec changes and browser prefix differences

75 lines (62 loc) 2.74 kB
/* * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. */ /* eslint-env node */ const chai = require('chai'); const expect = chai.expect; describe('detectBrowser', () => { const detectBrowser = require('../../src/js/utils.js').detectBrowser; let window; let navigator; beforeEach(() => { navigator = {}; window = {navigator}; }); it('detects Firefox if navigator.mozGetUserMedia exists', () => { navigator.userAgent = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; ' + 'rv:44.0) Gecko/20100101 Firefox/44.0'; navigator.mozGetUserMedia = function() {}; const browserDetails = detectBrowser(window); expect(browserDetails.browser).to.equal('firefox'); expect(browserDetails.version).to.equal(44); }); it('detects Chrome if navigator.webkitGetUserMedia exists', () => { navigator.userAgent = 'Mozilla/5.0 (X11; Linux x86_64) ' + 'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 ' + 'Safari/537.36'; navigator.webkitGetUserMedia = function() {}; window.webkitRTCPeerConnection = function() {}; const browserDetails = detectBrowser(window); expect(browserDetails.browser).to.equal('chrome'); expect(browserDetails.version).to.equal(45); }); it('detects Edge if navigator.mediaDevices exists', () => { navigator.userAgent = '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.10547'; navigator.mediaDevices = function() {}; const browserDetails = detectBrowser(window); expect(browserDetails.browser).to.equal('edge'); expect(browserDetails.version).to.equal(10547); }); it('detects Safari if navigator.webkitGetUserMedia exists', () => { navigator.userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) ' + 'AppleWebKit/604.1.6 (KHTML, like Gecko) Version/10.2 Safari/604.1.6'; navigator.webkitGetUserMedia = function() {}; const browserDetails = detectBrowser(window); expect(browserDetails.browser).to.equal('safari'); expect(browserDetails.version).to.equal(604); }); it('detects Safari if navigator.mediaDevices exists', () => { navigator.userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) ' + 'AppleWebKit/604.1.6 (KHTML, like Gecko) Version/10.2 Safari/604.1.6'; navigator.mediaDevices = function() {}; const browserDetails = detectBrowser(window); expect(browserDetails.browser).to.equal('safari'); expect(browserDetails.version).to.equal(604); }); });