Adding mapbox-gl branch
This commit is contained in:
@@ -0,0 +1,273 @@
|
||||
// Copyright 2012 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.dom.vendorTest');
|
||||
goog.setTestOnly('goog.dom.vendorTest');
|
||||
|
||||
goog.require('goog.array');
|
||||
goog.require('goog.dom.vendor');
|
||||
goog.require('goog.labs.userAgent.util');
|
||||
goog.require('goog.testing.MockUserAgent');
|
||||
goog.require('goog.testing.PropertyReplacer');
|
||||
goog.require('goog.testing.jsunit');
|
||||
goog.require('goog.userAgent');
|
||||
goog.require('goog.userAgentTestUtil');
|
||||
|
||||
var documentMode;
|
||||
var mockUserAgent;
|
||||
var propertyReplacer = new goog.testing.PropertyReplacer();
|
||||
|
||||
function setUp() {
|
||||
mockUserAgent = new goog.testing.MockUserAgent();
|
||||
mockUserAgent.install();
|
||||
}
|
||||
|
||||
function tearDown() {
|
||||
goog.dispose(mockUserAgent);
|
||||
documentMode = undefined;
|
||||
propertyReplacer.reset();
|
||||
}
|
||||
|
||||
goog.userAgent.getDocumentMode_ = function() {
|
||||
return documentMode;
|
||||
};
|
||||
|
||||
|
||||
var UserAgents = {
|
||||
GECKO: 'GECKO',
|
||||
IE: 'IE',
|
||||
OPERA: 'OPERA',
|
||||
WEBKIT: 'WEBKIT'
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Return whether a given user agent has been detected.
|
||||
* @param {number} agent Value in UserAgents.
|
||||
* @return {boolean} Whether the user agent has been detected.
|
||||
*/
|
||||
function getUserAgentDetected_(agent) {
|
||||
switch (agent) {
|
||||
case UserAgents.GECKO:
|
||||
return goog.userAgent.GECKO;
|
||||
case UserAgents.IE:
|
||||
return goog.userAgent.IE;
|
||||
case UserAgents.OPERA:
|
||||
return goog.userAgent.OPERA;
|
||||
case UserAgents.WEBKIT:
|
||||
return goog.userAgent.WEBKIT;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Test browser detection for a user agent configuration.
|
||||
* @param {Array<number>} expectedAgents Array of expected userAgents.
|
||||
* @param {string} uaString User agent string.
|
||||
* @param {string=} opt_product Navigator product string.
|
||||
* @param {string=} opt_vendor Navigator vendor string.
|
||||
*/
|
||||
function assertUserAgent(expectedAgents, uaString, opt_product, opt_vendor) {
|
||||
var mockNavigator = {
|
||||
'userAgent': uaString,
|
||||
'product': opt_product,
|
||||
'vendor': opt_vendor
|
||||
};
|
||||
|
||||
mockUserAgent.setNavigator(mockNavigator);
|
||||
mockUserAgent.setUserAgentString(uaString);
|
||||
|
||||
// Force reread of navigator.userAgent;
|
||||
goog.labs.userAgent.util.setUserAgent(null);
|
||||
goog.userAgentTestUtil.reinitializeUserAgent();
|
||||
for (var ua in UserAgents) {
|
||||
var isExpected = goog.array.contains(expectedAgents, UserAgents[ua]);
|
||||
assertEquals(isExpected, getUserAgentDetected_(UserAgents[ua]));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests for the vendor prefix for Webkit.
|
||||
*/
|
||||
function testVendorPrefixWebkit() {
|
||||
assertUserAgent([UserAgents.WEBKIT], 'WebKit');
|
||||
assertEquals('-webkit', goog.dom.vendor.getVendorPrefix());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests for the vendor prefix for Mozilla/Gecko.
|
||||
*/
|
||||
function testVendorPrefixGecko() {
|
||||
assertUserAgent([UserAgents.GECKO], 'Gecko', 'Gecko');
|
||||
assertEquals('-moz', goog.dom.vendor.getVendorPrefix());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests for the vendor prefix for Opera.
|
||||
*/
|
||||
function testVendorPrefixOpera() {
|
||||
assertUserAgent([UserAgents.OPERA], 'Opera');
|
||||
assertEquals('-o', goog.dom.vendor.getVendorPrefix());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests for the vendor prefix for IE.
|
||||
*/
|
||||
function testVendorPrefixIE() {
|
||||
assertUserAgent([UserAgents.IE], 'MSIE');
|
||||
assertEquals('-ms', goog.dom.vendor.getVendorPrefix());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests for the vendor Js prefix for Webkit.
|
||||
*/
|
||||
function testVendorJsPrefixWebkit() {
|
||||
assertUserAgent([UserAgents.WEBKIT], 'WebKit');
|
||||
assertEquals('Webkit', goog.dom.vendor.getVendorJsPrefix());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests for the vendor Js prefix for Mozilla/Gecko.
|
||||
*/
|
||||
function testVendorJsPrefixGecko() {
|
||||
assertUserAgent([UserAgents.GECKO], 'Gecko', 'Gecko');
|
||||
assertEquals('Moz', goog.dom.vendor.getVendorJsPrefix());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests for the vendor Js prefix for Opera.
|
||||
*/
|
||||
function testVendorJsPrefixOpera() {
|
||||
assertUserAgent([UserAgents.OPERA], 'Opera');
|
||||
assertEquals('O', goog.dom.vendor.getVendorJsPrefix());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests for the vendor Js prefix for IE.
|
||||
*/
|
||||
function testVendorJsPrefixIE() {
|
||||
assertUserAgent([UserAgents.IE], 'MSIE');
|
||||
assertEquals('ms', goog.dom.vendor.getVendorJsPrefix());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests for the vendor Js prefix if no UA detected.
|
||||
*/
|
||||
function testVendorJsPrefixNone() {
|
||||
assertUserAgent([], '');
|
||||
assertNull(goog.dom.vendor.getVendorJsPrefix());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests for the prefixed property name on Webkit.
|
||||
*/
|
||||
function testPrefixedPropertyNameWebkit() {
|
||||
assertUserAgent([UserAgents.WEBKIT], 'WebKit');
|
||||
assertEquals('webkitFoobar',
|
||||
goog.dom.vendor.getPrefixedPropertyName('foobar'));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests for the prefixed property name on Webkit in an object.
|
||||
*/
|
||||
function testPrefixedPropertyNameWebkitAndObject() {
|
||||
var mockDocument = {
|
||||
// setting a value of 0 on purpose, to ensure we only look for property
|
||||
// names, not their values.
|
||||
'webkitFoobar': 0
|
||||
};
|
||||
assertUserAgent([UserAgents.WEBKIT], 'WebKit');
|
||||
assertEquals('webkitFoobar',
|
||||
goog.dom.vendor.getPrefixedPropertyName('foobar', mockDocument));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests for the prefixed property name.
|
||||
*/
|
||||
function testPrefixedPropertyName() {
|
||||
assertUserAgent([], '');
|
||||
assertNull(goog.dom.vendor.getPrefixedPropertyName('foobar'));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests for the prefixed property name in an object.
|
||||
*/
|
||||
function testPrefixedPropertyNameAndObject() {
|
||||
var mockDocument = {
|
||||
'foobar': 0
|
||||
};
|
||||
assertUserAgent([], '');
|
||||
assertEquals('foobar',
|
||||
goog.dom.vendor.getPrefixedPropertyName('foobar', mockDocument));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests for the prefixed property name when it doesn't exist.
|
||||
*/
|
||||
function testPrefixedPropertyNameAndObjectIsEmpty() {
|
||||
var mockDocument = {};
|
||||
assertUserAgent([], '');
|
||||
assertNull(goog.dom.vendor.getPrefixedPropertyName('foobar', mockDocument));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Test for prefixed event type.
|
||||
*/
|
||||
function testPrefixedEventType() {
|
||||
assertUserAgent([], '');
|
||||
assertEquals('foobar', goog.dom.vendor.getPrefixedEventType('foobar'));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Test for browser-specific prefixed event type.
|
||||
*/
|
||||
function testPrefixedEventTypeForBrowser() {
|
||||
assertUserAgent([UserAgents.WEBKIT], 'WebKit');
|
||||
assertEquals('webkitfoobar', goog.dom.vendor.getPrefixedEventType('foobar'));
|
||||
}
|
||||
|
||||
|
||||
function assertIe(uaString, expectedVersion) {
|
||||
assertUserAgent([UserAgents.IE], uaString);
|
||||
assertEquals('User agent ' + uaString + ' should have had version ' +
|
||||
expectedVersion + ' but had ' + goog.userAgent.VERSION,
|
||||
expectedVersion,
|
||||
goog.userAgent.VERSION);
|
||||
}
|
||||
|
||||
|
||||
function assertGecko(uaString, expectedVersion) {
|
||||
assertUserAgent([UserAgents.GECKO], uaString, 'Gecko');
|
||||
assertEquals('User agent ' + uaString + ' should have had version ' +
|
||||
expectedVersion + ' but had ' + goog.userAgent.VERSION,
|
||||
expectedVersion,
|
||||
goog.userAgent.VERSION);
|
||||
}
|
||||
Reference in New Issue
Block a user