// 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)); }