Files
openlayers/float-no-zero/closure-library/closure/goog/labs/useragent/browser_test.js
2014-03-07 10:55:12 +01:00

194 lines
6.2 KiB
JavaScript

// Copyright 2013 The Closure Library Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS-IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/**
* @fileoverview Unit tests for goog.labs.userAgent.browser.
*/
goog.provide('goog.labs.userAgent.browserTest');
goog.require('goog.labs.userAgent.browser');
goog.require('goog.labs.userAgent.testAgents');
goog.require('goog.testing.PropertyReplacer');
goog.require('goog.testing.jsunit');
goog.setTestOnly('goog.labs.userAgent.browserTest');
var propertyReplacer = new goog.testing.PropertyReplacer();
function setUp() {
// disable memoization
propertyReplacer.set(goog.memoize, 'ENABLE_MEMOIZE', false);
}
function tearDown() {
propertyReplacer.reset();
}
function testOpera() {
setGlobalUAString(goog.labs.userAgent.testAgents.OPERA_10);
assertTrue(goog.labs.userAgent.browser.isOpera());
assertVersion('10.00');
assertVersionBetween('10.00', '10.10');
setGlobalUAString(goog.labs.userAgent.testAgents.OPERA_MAC);
assertTrue(goog.labs.userAgent.browser.isOpera());
assertVersion('11.52');
assertVersionBetween('11.50', '12.00');
setGlobalUAString(goog.labs.userAgent.testAgents.OPERA_LINUX);
assertTrue(goog.labs.userAgent.browser.isOpera());
assertVersion('11.50');
assertVersionBetween('11.00', '12.00');
}
function testIE() {
setGlobalUAString(goog.labs.userAgent.testAgents.IE_6);
assertTrue(goog.labs.userAgent.browser.isIE());
assertVersion('6.0');
assertVersionBetween('5.0', '7.0');
setGlobalUAString(goog.labs.userAgent.testAgents.IE_10);
assertTrue(goog.labs.userAgent.browser.isIE());
assertVersion('10.6');
assertVersionBetween('10.0', '11.0');
setGlobalUAString(goog.labs.userAgent.testAgents.IE_9);
assertTrue(goog.labs.userAgent.browser.isIE());
assertVersion('9.0');
assertVersionBetween('8.0', '10.0');
setGlobalUAString(goog.labs.userAgent.testAgents.IE_8);
assertTrue(goog.labs.userAgent.browser.isIE());
assertVersion('8.0');
assertVersionBetween('7.0', '9.0');
setGlobalUAString(goog.labs.userAgent.testAgents.IE_8_COMPATIBILITY);
// Test Document mode override
setDocumentMode('9');
assertTrue(goog.labs.userAgent.browser.isIE());
assertVersion('9');
setGlobalUAString(goog.labs.userAgent.testAgents.IE_9_COMPATIBILITY);
setDocumentMode('9');
assertTrue(goog.labs.userAgent.browser.isIE());
assertVersion('9');
setGlobalUAString(goog.labs.userAgent.testAgents.IE_9_COMPATIBILITY);
setDocumentMode('8');
assertTrue(goog.labs.userAgent.browser.isIE());
assertVersion('8');
setGlobalUAString(goog.labs.userAgent.testAgents.IE_11);
assertTrue(goog.labs.userAgent.browser.isIE());
assertVersion('11.0');
assertVersionBetween('10.0', '12.0');
}
function testFirefox() {
setGlobalUAString(goog.labs.userAgent.testAgents.FIREFOX_19);
assertTrue(goog.labs.userAgent.browser.isFirefox());
assertVersion('19.0');
assertVersionBetween('18.0', '20.0');
setGlobalUAString(goog.labs.userAgent.testAgents.FIREFOX_WINDOWS);
assertTrue(goog.labs.userAgent.browser.isFirefox());
assertVersion('14.0.1');
assertVersionBetween('14.0', '15.0');
setGlobalUAString(goog.labs.userAgent.testAgents.FIREFOX_LINUX);
assertTrue(goog.labs.userAgent.browser.isFirefox());
assertVersion('15.0.1');
}
function testChrome() {
setGlobalUAString(goog.labs.userAgent.testAgents.CHROME_ANDROID);
assertTrue(goog.labs.userAgent.browser.isChrome());
assertVersion('18.0.1025.133');
assertVersionBetween('18.0', '19.0');
assertVersionBetween('17.0', '18.1');
setGlobalUAString(goog.labs.userAgent.testAgents.CHROME_IPHONE);
assertTrue(goog.labs.userAgent.browser.isChrome());
assertVersion('22.0.1194.0');
assertVersionBetween('22.0', '23.0');
assertVersionBetween('22.0', '22.10');
setGlobalUAString(goog.labs.userAgent.testAgents.CHROME_MAC);
assertTrue(goog.labs.userAgent.browser.isChrome());
assertVersion('24.0.1309.0');
assertVersionBetween('24.0', '25.0');
assertVersionBetween('24.0', '24.10');
}
function testSafari() {
setGlobalUAString(goog.labs.userAgent.testAgents.IPAD_6);
assertTrue(goog.labs.userAgent.browser.isSafari());
assertVersion('6.0');
assertVersionBetween('5.1', '7.0');
setGlobalUAString(goog.labs.userAgent.testAgents.SAFARI_6);
assertTrue(goog.labs.userAgent.browser.isSafari());
assertVersion('6.0');
assertVersionBetween('6.0', '7.0');
setGlobalUAString(goog.labs.userAgent.testAgents.SAFARI_IPHONE);
assertTrue(goog.labs.userAgent.browser.isSafari());
assertVersion('5.0.2');
assertVersionBetween('5.0', '6.0');
}
function testAndroidBrowser() {
setGlobalUAString(goog.labs.userAgent.testAgents.ANDROID_BROWSER_235);
assertTrue(goog.labs.userAgent.browser.isAndroidBrowser());
assertVersion('4.0');
assertVersionBetween('3.0', '5.0');
setGlobalUAString(goog.labs.userAgent.testAgents.ANDROID_BROWSER_403);
assertTrue(goog.labs.userAgent.browser.isAndroidBrowser());
assertVersion('4.0');
assertVersionBetween('3.0', '5.0');
setGlobalUAString(goog.labs.userAgent.testAgents.ANDROID_BROWSER_233);
assertTrue(goog.labs.userAgent.browser.isAndroidBrowser());
assertVersion('4.0');
assertVersionBetween('3.0', '5.0');
}
function setGlobalUAString(uaString) {
var mockGlobal = {
'navigator': {
'userAgent': uaString
}
};
propertyReplacer.set(goog, 'global', mockGlobal);
}
function setDocumentMode(docMode) {
var mockDocument = {
'documentMode': docMode
};
propertyReplacer.set(goog.global, 'document', mockDocument);
}
function assertVersion(version) {
assertEquals(version, goog.labs.userAgent.browser.getVersion());
}
function assertVersionBetween(lowVersion, highVersion) {
assertTrue(goog.labs.userAgent.browser.isVersionOrHigher(lowVersion));
assertFalse(goog.labs.userAgent.browser.isVersionOrHigher(highVersion));
}