blob: f53fc177f73c334d560242ffb0d13e40e7a39412 [file] [log] [blame]
// Copyright 2010 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.fx.DragDropGroupTest');
goog.setTestOnly('goog.fx.DragDropGroupTest');
goog.require('goog.events');
goog.require('goog.fx.DragDropGroup');
goog.require('goog.testing.jsunit');
var s1;
var s2;
var t1;
var t2;
var source = null;
var target = null;
function setUpPage() {
s1 = document.getElementById('s1');
s2 = document.getElementById('s2');
t1 = document.getElementById('t1');
t2 = document.getElementById('t2');
}
function setUp() {
source = new goog.fx.DragDropGroup();
source.setSourceClass('ss');
source.setTargetClass('st');
target = new goog.fx.DragDropGroup();
target.setSourceClass('ts');
target.setTargetClass('tt');
source.addTarget(target);
}
function tearDown() {
source.removeItems();
target.removeItems();
}
function addElementsToGroups() {
source.addItem(s1);
source.addItem(s2);
target.addItem(t1);
target.addItem(t2);
}
function testAddItemsBeforeInit() {
addElementsToGroups();
source.init();
target.init();
assertEquals(2, source.items_.length);
assertEquals(2, target.items_.length);
assertEquals('s ss', s1.className);
assertEquals('s ss', s2.className);
assertEquals('t tt', t1.className);
assertEquals('t tt', t2.className);
assertTrue(goog.events.hasListener(s1));
assertTrue(goog.events.hasListener(s2));
assertFalse(goog.events.hasListener(t1));
assertFalse(goog.events.hasListener(t2));
}
function testAddItemsAfterInit() {
source.init();
target.init();
addElementsToGroups();
assertEquals(2, source.items_.length);
assertEquals(2, target.items_.length);
assertEquals('s ss', s1.className);
assertEquals('s ss', s2.className);
assertEquals('t tt', t1.className);
assertEquals('t tt', t2.className);
assertTrue(goog.events.hasListener(s1));
assertTrue(goog.events.hasListener(s2));
assertFalse(goog.events.hasListener(t1));
assertFalse(goog.events.hasListener(t2));
}
function testRemoveItems() {
source.init();
target.init();
addElementsToGroups();
assertEquals(2, source.items_.length);
assertEquals(s1, source.items_[0].element);
assertEquals(s2, source.items_[1].element);
assertEquals('s ss', s1.className);
assertEquals('s ss', s2.className);
assertTrue(goog.events.hasListener(s1));
assertTrue(goog.events.hasListener(s2));
source.removeItems();
assertEquals(0, source.items_.length);
assertEquals('s', s1.className);
assertEquals('s', s2.className);
assertFalse(goog.events.hasListener(s1));
assertFalse(goog.events.hasListener(s2));
}
function testRemoveSourceItem1() {
source.init();
target.init();
addElementsToGroups();
assertEquals(2, source.items_.length);
assertEquals(s1, source.items_[0].element);
assertEquals(s2, source.items_[1].element);
assertEquals('s ss', s1.className);
assertEquals('s ss', s2.className);
assertTrue(goog.events.hasListener(s1));
assertTrue(goog.events.hasListener(s2));
source.removeItem(s1);
assertEquals(1, source.items_.length);
assertEquals(s2, source.items_[0].element);
assertEquals('s', s1.className);
assertEquals('s ss', s2.className);
assertFalse(goog.events.hasListener(s1));
assertTrue(goog.events.hasListener(s2));
}
function testRemoveSourceItem2() {
source.init();
target.init();
addElementsToGroups();
assertEquals(2, source.items_.length);
assertEquals(s1, source.items_[0].element);
assertEquals(s2, source.items_[1].element);
assertEquals('s ss', s1.className);
assertEquals('s ss', s2.className);
assertTrue(goog.events.hasListener(s1));
assertTrue(goog.events.hasListener(s2));
source.removeItem(s2);
assertEquals(1, source.items_.length);
assertEquals(s1, source.items_[0].element);
assertEquals('s ss', s1.className);
assertEquals('s', s2.className);
assertTrue(goog.events.hasListener(s1));
assertFalse(goog.events.hasListener(s2));
}
function testRemoveTargetItem1() {
source.init();
target.init();
addElementsToGroups();
assertEquals(2, target.items_.length);
assertEquals(t1, target.items_[0].element);
assertEquals(t2, target.items_[1].element);
assertEquals('t tt', t1.className);
assertEquals('t tt', t2.className);
assertFalse(goog.events.hasListener(t1));
assertFalse(goog.events.hasListener(t2));
target.removeItem(t1);
assertEquals(1, target.items_.length);
assertEquals(t2, target.items_[0].element);
assertEquals('t', t1.className);
assertEquals('t tt', t2.className);
assertFalse(goog.events.hasListener(t1));
assertFalse(goog.events.hasListener(t2));
}
function testRemoveTargetItem2() {
source.init();
target.init();
addElementsToGroups();
assertEquals(2, target.items_.length);
assertEquals(t1, target.items_[0].element);
assertEquals(t2, target.items_[1].element);
assertEquals('t tt', t1.className);
assertEquals('t tt', t2.className);
assertFalse(goog.events.hasListener(t1));
assertFalse(goog.events.hasListener(t2));
target.removeItem(t2);
assertEquals(1, target.items_.length);
assertEquals(t1, target.items_[0].element);
assertEquals('t tt', t1.className);
assertEquals('t', t2.className);
assertFalse(goog.events.hasListener(t1));
assertFalse(goog.events.hasListener(t2));
}