Adding mapbox-gl branch
This commit is contained in:
@@ -0,0 +1,257 @@
|
||||
// Copyright 2009 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.testing.style.layoutassertsTest');
|
||||
goog.setTestOnly('goog.testing.style.layoutassertsTest');
|
||||
|
||||
goog.require('goog.dom');
|
||||
goog.require('goog.style');
|
||||
goog.require('goog.testing.jsunit');
|
||||
/** @suppress {extraRequire} */
|
||||
goog.require('goog.testing.style.layoutasserts');
|
||||
|
||||
var div1;
|
||||
var div2;
|
||||
var DEFAULT_WIDTH = 200;
|
||||
var DEFAULT_HEIGHT = 100;
|
||||
|
||||
function setUp() {
|
||||
div1 = goog.dom.createDom(
|
||||
'div',
|
||||
{
|
||||
id: 'test',
|
||||
className: 'test',
|
||||
style: 'position:absolute;top:0;left:0;' +
|
||||
'width:' + DEFAULT_WIDTH + 'px;' +
|
||||
'height:' + DEFAULT_HEIGHT + 'px;' +
|
||||
'background-color:#EEE',
|
||||
innerHTML: 'abc'
|
||||
});
|
||||
div2 = goog.dom.createDom('div',
|
||||
{
|
||||
id: 'test2',
|
||||
className: 'test2',
|
||||
style: 'position:absolute;' +
|
||||
'top:0;left:0;' +
|
||||
'width:' + DEFAULT_WIDTH + 'px;' +
|
||||
'height:' + DEFAULT_HEIGHT + 'px;' +
|
||||
'background-color:#F00',
|
||||
innerHTML: 'abc'
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
function tearDown() {
|
||||
div1 = null;
|
||||
div2 = null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests assertIsVisible.
|
||||
*/
|
||||
function testAssertIsVisible() {
|
||||
assertThrows('Exception should be thrown when asserting visibility.',
|
||||
goog.bind(assertIsVisible, null, null)); // assertIsVisible(null)
|
||||
|
||||
// Attach it to BODY tag and assert that it is visible.
|
||||
document.body.appendChild(div1);
|
||||
assertIsVisible('Div should be visible.', div1);
|
||||
|
||||
// Tests with hidden element
|
||||
failed = false;
|
||||
goog.style.setElementShown(div1, false /* display */);
|
||||
assertThrows('Exception should be thrown when asserting visibility.',
|
||||
goog.bind(assertIsVisible, null, div1));
|
||||
|
||||
// Clean up.
|
||||
document.body.removeChild(div1);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests assertNotVisible.
|
||||
*/
|
||||
function testAssertNotVisible() {
|
||||
// Tests null as a parameter.
|
||||
var element = null;
|
||||
assertNotVisible(element);
|
||||
|
||||
// Attach the element to BODY element, assert should fail.
|
||||
document.body.appendChild(div1);
|
||||
assertThrows('Exception should be thrown when asserting non-visibility.',
|
||||
goog.bind(assertNotVisible, null, div1));
|
||||
|
||||
// Clean up.
|
||||
document.body.removeChild(div1);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests assertIsIntersect.
|
||||
*/
|
||||
function testAssertIntersect() {
|
||||
document.body.appendChild(div1);
|
||||
document.body.appendChild(div2);
|
||||
|
||||
// No intersection
|
||||
goog.style.setPosition(div1, 0, 0);
|
||||
goog.style.setPosition(div2, 500, 500);
|
||||
assertThrows('Exception should be thrown when asserting intersection.',
|
||||
goog.bind(assertIntersect, null, div1, div2));
|
||||
assertNoIntersect(div1, div2);
|
||||
|
||||
// Some intersection
|
||||
goog.style.setPosition(div1, 0, 0);
|
||||
goog.style.setPosition(div2, 50, 50);
|
||||
assertThrows('Exception should be thrown when asserting no intersection.',
|
||||
goog.bind(assertNoIntersect, null, div1, div2));
|
||||
assertIntersect(div1, div2);
|
||||
|
||||
// Completely superimposed.
|
||||
goog.style.setPosition(div1, 0, 0);
|
||||
goog.style.setPosition(div2, 0, 0);
|
||||
assertThrows('Exception should be thrown when asserting no intersection.',
|
||||
goog.bind(assertNoIntersect, null, div1, div2));
|
||||
assertIntersect(div1, div2);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests assertWidth.
|
||||
*/
|
||||
function testAssertWidth() {
|
||||
document.body.appendChild(div1);
|
||||
|
||||
// Test correct width
|
||||
assertWidth(div1, DEFAULT_WIDTH);
|
||||
|
||||
// Test wrong width
|
||||
assertThrows('Exception should be thrown when elements has wrong width',
|
||||
goog.bind(assertWidth, null, div1, 400));
|
||||
|
||||
// Test a valid tolerance value
|
||||
assertWidthWithinTolerance(div1, 180, 20);
|
||||
|
||||
// Test exceeding tolerance value
|
||||
assertThrows(
|
||||
'Exception should be thrown when element\'s width exceeds tolerance',
|
||||
goog.bind(assertWidthWithinTolerance, null, div1, 100, 0.1));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests assertHeight.
|
||||
*/
|
||||
function testAssertHeight() {
|
||||
document.body.appendChild(div1);
|
||||
|
||||
// Test correct height
|
||||
assertHeight(div1, DEFAULT_HEIGHT);
|
||||
|
||||
// Test wrong height
|
||||
assertThrows('Exception should be thrown when element has wrong height.',
|
||||
goog.bind(assertHeightWithinTolerance, null, div1, 300));
|
||||
|
||||
// Test a valid tolerance value
|
||||
assertHeightWithinTolerance(div1, 90, 10);
|
||||
|
||||
// Test exceeding tolerance value
|
||||
assertThrows(
|
||||
'Exception should be thrown when element\'s height exceeds tolerance',
|
||||
goog.bind(assertHeight, null, div1, 50, 0.2));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests assertIsLeftOf.
|
||||
*/
|
||||
function testAssertIsLeftOf() {
|
||||
document.body.appendChild(div1);
|
||||
document.body.appendChild(div2);
|
||||
|
||||
// Test elements of same size & location
|
||||
assertThrows('Exception should be thrown when elements intersect.',
|
||||
goog.bind(assertIsLeftOf, null, div1, div2));
|
||||
assertThrows('Exception should be thrown when elements intersect.',
|
||||
goog.bind(
|
||||
assertIsStrictlyLeftOf, null, div1, div2));
|
||||
|
||||
// Test elements that are not left to right
|
||||
goog.style.setPosition(div1, 100, 0);
|
||||
goog.style.setPosition(div2, 0, 0);
|
||||
assertThrows(
|
||||
'Exception should be thrown when elements are not left to right.',
|
||||
goog.bind(assertIsLeftOf, null, div1, div2));
|
||||
assertThrows(
|
||||
'Exception should be thrown when elements are not left to right.',
|
||||
goog.bind(
|
||||
assertIsStrictlyLeftOf, null, div1, div2));
|
||||
|
||||
// Test elements that intersect, but is left to right
|
||||
goog.style.setPosition(div1, 0, 0);
|
||||
goog.style.setPosition(div2, 100, 0);
|
||||
assertIsLeftOf(div1, div2);
|
||||
assertThrows('Exception should be thrown when elements intersect.',
|
||||
goog.bind(
|
||||
assertIsStrictlyLeftOf, null, div1, div2));
|
||||
|
||||
// Test elements that are strictly left to right
|
||||
goog.style.setPosition(div1, 0, 0);
|
||||
goog.style.setPosition(div2, 999, 0);
|
||||
assertIsLeftOf(div1, div2);
|
||||
assertIsStrictlyLeftOf(div1, div2);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests assertIsAbove.
|
||||
*/
|
||||
function testAssertIsAbove() {
|
||||
document.body.appendChild(div1);
|
||||
document.body.appendChild(div2);
|
||||
|
||||
// Test elements of same size & location
|
||||
assertThrows('Exception should be thrown when elements intersect.',
|
||||
goog.bind(assertIsAbove, null, div1, div2));
|
||||
assertThrows('Exception should be thrown when elements intersect.',
|
||||
goog.bind(
|
||||
assertIsStrictlyAbove, null, div1, div2));
|
||||
|
||||
// Test elements that are not top to bottom
|
||||
goog.style.setPosition(div1, 0, 999);
|
||||
goog.style.setPosition(div2, 0, 0);
|
||||
assertThrows(
|
||||
'Exception should be thrown when elements are not top to bottom.',
|
||||
goog.bind(assertIsAbove, null, div1, div2));
|
||||
assertThrows(
|
||||
'Exception should be thrown when elements are not top to bottom.',
|
||||
goog.bind(
|
||||
assertIsStrictlyAbove, null, div1, div2));
|
||||
|
||||
// Test elements that intersect, but is top to bottom
|
||||
goog.style.setPosition(div1, 0, 0);
|
||||
goog.style.setPosition(div2, 0, 50);
|
||||
assertIsAbove(div1, div2);
|
||||
assertThrows('Exception should be thrown when elements intersect.',
|
||||
goog.bind(
|
||||
assertIsStrictlyAbove, null, div1, div2));
|
||||
|
||||
// Test elements that are top to bottom
|
||||
goog.style.setPosition(div1, 0, 0);
|
||||
goog.style.setPosition(div2, 0, 999);
|
||||
assertIsAbove(div1, div2);
|
||||
assertIsStrictlyAbove(div1, div2);
|
||||
}
|
||||
Reference in New Issue
Block a user