// Copyright 2014 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. goog.provide('goog.userAgent.keyboardTest'); goog.setTestOnly('goog.userAgent.keyboardTest'); goog.require('goog.labs.userAgent.testAgents'); goog.require('goog.labs.userAgent.util'); goog.require('goog.testing.MockUserAgent'); goog.require('goog.testing.jsunit'); goog.require('goog.userAgent.keyboard'); goog.require('goog.userAgentTestUtil'); var mockAgent; function setUp() { mockAgent = new goog.testing.MockUserAgent(); mockAgent.install(); } function tearDown() { mockAgent.dispose(); goog.labs.userAgent.util.setUserAgent(null); goog.userAgentTestUtil.reinitializeUserAgent(); } function testAndroid() { mockAgent.setNavigator({platform: 'Linux'}); setUserAgent(goog.labs.userAgent.testAgents.ANDROID_BROWSER_235); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); setUserAgent(goog.labs.userAgent.testAgents.ANDROID_BROWSER_221); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); setUserAgent(goog.labs.userAgent.testAgents.ANDROID_BROWSER_233); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); setUserAgent(goog.labs.userAgent.testAgents.ANDROID_BROWSER_403); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); setUserAgent(goog.labs.userAgent.testAgents.ANDROID_BROWSER_403_ALT); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); } function testIe() { mockAgent.setNavigator({platform: 'Windows'}); setUserAgent(goog.labs.userAgent.testAgents.IE_6); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); setUserAgent(goog.labs.userAgent.testAgents.IE_7); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); setUserAgent(goog.labs.userAgent.testAgents.IE_8); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); setUserAgent(goog.labs.userAgent.testAgents.IE_8_COMPATIBILITY); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); setUserAgent(goog.labs.userAgent.testAgents.IE_9); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); setUserAgent(goog.labs.userAgent.testAgents.IE_10); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); setUserAgent(goog.labs.userAgent.testAgents.IE_10_COMPATIBILITY); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); setUserAgent(goog.labs.userAgent.testAgents.IE_11); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); setUserAgent(goog.labs.userAgent.testAgents.IE_11_COMPATIBILITY_MSIE_7); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); setUserAgent(goog.labs.userAgent.testAgents.IE_11_COMPATIBILITY_MSIE_9); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); } function testFirefoxMac() { mockAgent.setNavigator({platform: 'Macintosh'}); setUserAgent(goog.labs.userAgent.testAgents.FIREFOX_MAC); assertTrue(goog.userAgent.keyboard.MAC_KEYBOARD); } function testFirefoxNotMac() { mockAgent.setNavigator({platform: 'X11'}); setUserAgent(goog.labs.userAgent.testAgents.FIREFOX_LINUX); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); mockAgent.setNavigator({platform: 'Windows'}); setUserAgent(goog.labs.userAgent.testAgents.FIREFOX_WINDOWS); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); } function testSafari() { mockAgent.setNavigator({platform: 'Macintosh'}); setUserAgent(goog.labs.userAgent.testAgents.SAFARI_6); assertTrue(goog.userAgent.keyboard.MAC_KEYBOARD); setUserAgent(goog.labs.userAgent.testAgents.SAFARI_MAC); assertTrue(goog.userAgent.keyboard.MAC_KEYBOARD); mockAgent.setNavigator({platform: 'iPhone'}); setUserAgent(goog.labs.userAgent.testAgents.SAFARI_IPHONE_32); assertTrue(goog.userAgent.keyboard.MAC_KEYBOARD); setUserAgent(goog.labs.userAgent.testAgents.SAFARI_IPHONE_421); assertTrue(goog.userAgent.keyboard.MAC_KEYBOARD); setUserAgent(goog.labs.userAgent.testAgents.SAFARI_IPHONE_431); assertTrue(goog.userAgent.keyboard.MAC_KEYBOARD); setUserAgent(goog.labs.userAgent.testAgents.SAFARI_IPHONE_6); assertTrue(goog.userAgent.keyboard.MAC_KEYBOARD); mockAgent.setNavigator({platform: 'iPod'}); setUserAgent(goog.labs.userAgent.testAgents.SAFARI_IPOD); assertTrue(goog.userAgent.keyboard.MAC_KEYBOARD); } function testSafariWndows() { mockAgent.setNavigator({platform: 'Macintosh'}); setUserAgent(goog.labs.userAgent.testAgents.SAFARI_WINDOWS); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); } function testOperaMac() { mockAgent.setNavigator({platform: 'Macintosh'}); setUserAgent(goog.labs.userAgent.testAgents.OPERA_MAC); assertTrue(goog.userAgent.keyboard.MAC_KEYBOARD); } function testOperaNonMac() { mockAgent.setNavigator({platform: 'X11'}); setUserAgent(goog.labs.userAgent.testAgents.OPERA_LINUX); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); mockAgent.setNavigator({platform: 'Windows'}); setUserAgent(goog.labs.userAgent.testAgents.OPERA_15); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); } function testIPad() { mockAgent.setNavigator({platform: 'iPad'}); setUserAgent(goog.labs.userAgent.testAgents.IPAD_4); assertTrue(goog.userAgent.keyboard.MAC_KEYBOARD); setUserAgent(goog.labs.userAgent.testAgents.IPAD_5); assertTrue(goog.userAgent.keyboard.MAC_KEYBOARD); setUserAgent(goog.labs.userAgent.testAgents.IPAD_6); assertTrue(goog.userAgent.keyboard.MAC_KEYBOARD); } function testChromeMac() { mockAgent.setNavigator({platform: 'Macintosh'}); setUserAgent(goog.labs.userAgent.testAgents.CHROME_MAC); assertTrue(goog.userAgent.keyboard.MAC_KEYBOARD); mockAgent.setNavigator({platform: 'iPhone'}); setUserAgent(goog.labs.userAgent.testAgents.CHROME_IPHONE); assertTrue(goog.userAgent.keyboard.MAC_KEYBOARD); } function testChromeNonMac() { mockAgent.setNavigator({platform: 'Linux'}); setUserAgent(goog.labs.userAgent.testAgents.CHROME_ANDROID); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); mockAgent.setNavigator({platform: 'X11'}); setUserAgent(goog.labs.userAgent.testAgents.CHROME_OS); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); mockAgent.setNavigator({platform: 'X11'}); setUserAgent(goog.labs.userAgent.testAgents.CHROME_LINUX); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); mockAgent.setNavigator({platform: 'Windows'}); setUserAgent(goog.labs.userAgent.testAgents.CHROME_25); assertFalse(goog.userAgent.keyboard.MAC_KEYBOARD); } function setUserAgent(ua) { mockAgent.setUserAgentString(ua); goog.labs.userAgent.util.setUserAgent(ua); goog.userAgentTestUtil.reinitializeUserAgent(); }