// 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.platform. */ goog.provide('goog.labs.userAgent.platformTest'); goog.require('goog.labs.userAgent.platform'); goog.require('goog.labs.userAgent.testAgents'); goog.require('goog.labs.userAgent.util'); goog.require('goog.testing.jsunit'); goog.setTestOnly('goog.labs.userAgent.platformTest'); function setUp() { goog.labs.userAgent.util.setUserAgent(null); } function testAndroid() { var uaString = goog.labs.userAgent.testAgents.ANDROID_BROWSER_233; goog.labs.userAgent.util.setUserAgent(uaString); assertTrue(goog.labs.userAgent.platform.isAndroid()); assertVersion('2.3.3'); assertVersionBetween('2.3.0', '2.3.5'); assertVersionBetween('2.3', '2.4'); assertVersionBetween('2', '3'); uaString = goog.labs.userAgent.testAgents.ANDROID_BROWSER_221; goog.labs.userAgent.util.setUserAgent(uaString); assertTrue(goog.labs.userAgent.platform.isAndroid()); assertVersion('2.2.1'); assertVersionBetween('2.2.0', '2.2.5'); assertVersionBetween('2.2', '2.3'); assertVersionBetween('2', '3'); uaString = goog.labs.userAgent.testAgents.CHROME_ANDROID; goog.labs.userAgent.util.setUserAgent(uaString); assertTrue(goog.labs.userAgent.platform.isAndroid()); assertVersion('4.0.2'); assertVersionBetween('4.0.0', '4.1.0'); assertVersionBetween('4.0', '4.1'); assertVersionBetween('4', '5'); } function testKindleFire() { uaString = goog.labs.userAgent.testAgents.KINDLE_FIRE; goog.labs.userAgent.util.setUserAgent(uaString); assertTrue(goog.labs.userAgent.platform.isAndroid()); assertVersion('4.0.3'); } function testIpod() { var uaString = goog.labs.userAgent.testAgents.SAFARI_IPOD; goog.labs.userAgent.util.setUserAgent(uaString); assertTrue(goog.labs.userAgent.platform.isIpod()); assertTrue(goog.labs.userAgent.platform.isIos()); assertVersion(''); } function testIphone() { var uaString = goog.labs.userAgent.testAgents.SAFARI_IPHONE_421; goog.labs.userAgent.util.setUserAgent(uaString); assertTrue(goog.labs.userAgent.platform.isIphone()); assertTrue(goog.labs.userAgent.platform.isIos()); assertVersion('4.2.1'); assertVersionBetween('4', '5'); assertVersionBetween('4.2', '4.3'); uaString = goog.labs.userAgent.testAgents.SAFARI_IPHONE_6; goog.labs.userAgent.util.setUserAgent(uaString); assertTrue(goog.labs.userAgent.platform.isIphone()); assertTrue(goog.labs.userAgent.platform.isIos()); assertVersion('6.0'); assertVersionBetween('5', '7'); uaString = goog.labs.userAgent.testAgents.SAFARI_IPHONE_32; goog.labs.userAgent.util.setUserAgent(uaString); assertTrue(goog.labs.userAgent.platform.isIphone()); assertTrue(goog.labs.userAgent.platform.isIos()); assertVersion('3.2'); assertVersionBetween('3', '4'); uaString = goog.labs.userAgent.testAgents.WEBVIEW_IPAD; goog.labs.userAgent.util.setUserAgent(uaString); assertFalse(goog.labs.userAgent.platform.isIphone()); assertTrue(goog.labs.userAgent.platform.isIpad()); assertTrue(goog.labs.userAgent.platform.isIos()); assertVersion('6.0'); assertVersionBetween('5', '7'); } function testIpad() { var uaString = goog.labs.userAgent.testAgents.IPAD_4; goog.labs.userAgent.util.setUserAgent(uaString); assertTrue(goog.labs.userAgent.platform.isIpad()); assertTrue(goog.labs.userAgent.platform.isIos()); assertVersion('3.2'); assertVersionBetween('3', '4'); assertVersionBetween('3.1', '4'); uaString = goog.labs.userAgent.testAgents.IPAD_5; goog.labs.userAgent.util.setUserAgent(uaString); assertTrue(goog.labs.userAgent.platform.isIpad()); assertTrue(goog.labs.userAgent.platform.isIos()); assertVersion('5.1'); assertVersionBetween('5', '6'); uaString = goog.labs.userAgent.testAgents.IPAD_6; goog.labs.userAgent.util.setUserAgent(uaString); assertTrue(goog.labs.userAgent.platform.isIpad()); assertTrue(goog.labs.userAgent.platform.isIos()); assertVersion('6.0'); assertVersionBetween('5', '7'); } function testMac() { var uaString = goog.labs.userAgent.testAgents.CHROME_MAC; var platform = 'IntelMac'; goog.labs.userAgent.util.setUserAgent(uaString, platform); assertTrue(goog.labs.userAgent.platform.isMacintosh()); assertVersion('10.8.2'); assertVersionBetween('10', '11'); assertVersionBetween('10.8', '10.9'); assertVersionBetween('10.8.1', '10.8.3'); uaString = goog.labs.userAgent.testAgents.OPERA_MAC; goog.labs.userAgent.util.setUserAgent(uaString, platform); assertTrue(goog.labs.userAgent.platform.isMacintosh()); assertVersion('10.6.8'); assertVersionBetween('10', '11'); assertVersionBetween('10.6', '10.7'); assertVersionBetween('10.6.5', '10.7.0'); uaString = goog.labs.userAgent.testAgents.SAFARI_MAC; goog.labs.userAgent.util.setUserAgent(uaString, platform); assertTrue(goog.labs.userAgent.platform.isMacintosh()); assertVersionBetween('10', '11'); assertVersionBetween('10.6', '10.7'); assertVersionBetween('10.6.5', '10.7.0'); uaString = goog.labs.userAgent.testAgents.FIREFOX_MAC; goog.labs.userAgent.util.setUserAgent(uaString, platform); assertTrue(goog.labs.userAgent.platform.isMacintosh()); assertVersion('11.7.9'); assertVersionBetween('11', '12'); assertVersionBetween('11.7', '11.8'); assertVersionBetween('11.7.9', '11.8.0'); } function testLinux() { var uaString = goog.labs.userAgent.testAgents.FIREFOX_LINUX; goog.labs.userAgent.util.setUserAgent(uaString); assertTrue(goog.labs.userAgent.platform.isLinux()); assertVersion(''); uaString = goog.labs.userAgent.testAgents.CHROME_LINUX; goog.labs.userAgent.util.setUserAgent(uaString); assertTrue(goog.labs.userAgent.platform.isLinux()); assertVersion(''); uaString = goog.labs.userAgent.testAgents.OPERA_LINUX; goog.labs.userAgent.util.setUserAgent(uaString); assertTrue(goog.labs.userAgent.platform.isLinux()); assertVersion(''); } function testWindows() { var uaString = goog.labs.userAgent.testAgents.SAFARI_WINDOWS; goog.labs.userAgent.util.setUserAgent(uaString); assertTrue(goog.labs.userAgent.platform.isWindows()); assertVersion('6.1'); assertVersionBetween('6', '7'); uaString = goog.labs.userAgent.testAgents.IE_10; goog.labs.userAgent.util.setUserAgent(uaString); assertTrue(goog.labs.userAgent.platform.isWindows()); assertVersion('6.2'); assertVersionBetween('6', '6.5'); uaString = goog.labs.userAgent.testAgents.CHROME_25; goog.labs.userAgent.util.setUserAgent(uaString); assertTrue(goog.labs.userAgent.platform.isWindows()); assertVersion('5.1'); assertVersionBetween('5', '6'); uaString = goog.labs.userAgent.testAgents.FIREFOX_WINDOWS; goog.labs.userAgent.util.setUserAgent(uaString); assertTrue(goog.labs.userAgent.platform.isWindows()); assertVersion('6.1'); assertVersionBetween('6', '7'); uaString = goog.labs.userAgent.testAgents.IE_11; goog.labs.userAgent.util.setUserAgent(uaString); assertTrue(goog.labs.userAgent.platform.isWindows()); assertVersion('6.3'); assertVersionBetween('6', '6.5'); uaString = goog.labs.userAgent.testAgents.IE_10_MOBILE; goog.labs.userAgent.util.setUserAgent(uaString); assertTrue(goog.labs.userAgent.platform.isWindows()); assertVersion('8.0'); } function testChromeOS() { var uaString = goog.labs.userAgent.testAgents.CHROME_OS_910; goog.labs.userAgent.util.setUserAgent(uaString); assertTrue(goog.labs.userAgent.platform.isChromeOS()); assertVersion('9.10.0'); assertVersionBetween('9', '10'); uaString = goog.labs.userAgent.testAgents.CHROME_OS; goog.labs.userAgent.util.setUserAgent(uaString); assertTrue(goog.labs.userAgent.platform.isChromeOS()); assertVersion('3701.62.0'); assertVersionBetween('3701', '3702'); } function assertVersion(version) { assertEquals(version, goog.labs.userAgent.platform.getVersion()); } function assertVersionBetween(lowVersion, highVersion) { assertTrue(goog.labs.userAgent.platform.isVersionOrHigher(lowVersion)); assertFalse(goog.labs.userAgent.platform.isVersionOrHigher(highVersion)); }