Upgrade to ExtJS 4.0.0 - Released 04/26/2011
[extjs.git] / test / unit / util / MixedCollection.js
diff --git a/test/unit/util/MixedCollection.js b/test/unit/util/MixedCollection.js
deleted file mode 100644 (file)
index efcc9a5..0000000
+++ /dev/null
@@ -1,543 +0,0 @@
-/*!
- * Ext JS Library 3.3.1
- * Copyright(c) 2006-2010 Sencha Inc.
- * licensing@sencha.com
- * http://www.sencha.com/license
- */
-(function() {
-    var suite  = Ext.test.session.getSuite('Ext.util.MixedCollection'),
-        assert = Y.Assert;
-
-    suite.add(new Y.Test.Case({
-        name: 'constructor',
-
-        setUp: function() {
-            this.mc = new Ext.util.MixedCollection();
-        },
-
-        tearDown: function() {
-            this.mc.clear();
-        },
-
-        //test that a default getKey implementation is set
-        testHasDefaultGetKey: function() {
-            var item1      = {id: 1, data: 'first item' },
-                item2      = {id: 2, data: 'second item'};
-            
-            this.mc.add(item1);
-            this.mc.add(item2);
-            
-            assert.areSame(item1, this.mc.get(1));
-            assert.areSame(item2, this.mc.get(2));
-        },
-
-        //test that we can provide a getKey implementation
-        testCanSetGetKey: function() {
-            var collection = new Ext.util.MixedCollection(false, function(item) {
-                return item.myKey;
-            });
-            
-            var item1 = {myKey: 'a', data: 'first item' },
-                item2 = {myKey: 'b', data: 'second item'};
-            
-            collection.add(item1);
-            collection.add(item2);
-            
-            assert.areSame(item2, collection.get('b'));
-            assert.areSame(item1, collection.get('a'));
-        }
-    }));
-    
-    suite.add(new Y.Test.Case({
-        name: 'iterators',
-        
-        setUp: function() {
-            this.mc = new Ext.util.MixedCollection();
-            
-            this.mc.addAll([
-                {id: 1, name: 'first'},
-                {id: 2, name: 'second'},
-                {id: 3, name: 'third'}
-            ]);
-        },
-
-        testEach: function() {
-            var callCount = 0, callScope, total;
-            
-            this.mc.each(function(item, index, length) {
-                //make sure that the function is called in the correct scope
-                callScope = this;
-                callCount ++;
-                total = length;
-            }, this);
-            
-            assert.areEqual(this, callScope);
-            assert.areEqual(3, callCount);
-            assert.areEqual(3, total);
-        },
-        
-        testEachKey: function() {
-            var callCount = 0, callScope;
-            
-            this.mc.eachKey(function(key, index, length) {
-                //make sure that the function is called in the correct scope
-                callScope = this;
-                callCount ++;
-            }, this);
-            
-            assert.areEqual(this, callScope);
-            assert.areEqual(3, callCount);
-        }
-    }));
-    
-    suite.add(new Y.Test.Case({
-        name: 'add and remove',
-       
-        setUp: function() {
-            this.mc = new Ext.util.MixedCollection();
-        },
-       
-        testAddAll: function() {
-            var mc = this.mc;
-            
-            assert.areEqual(0, mc.length);
-            
-            mc.addAll([{id: 1}, {id: 2}, {id: 3}]);
-            
-            assert.areEqual(3, mc.length);
-        },
-        
-        testAddAndClear: function() {
-            var mc = this.mc;
-            
-            mc.add({id: 1});
-            mc.add({id: 2});
-            mc.add({id: 3});
-            
-            assert.areEqual(3, mc.length);
-            
-            mc.clear();
-            assert.areEqual(0, mc.length);
-        },
-        
-        testAddEventFired: function() {
-            var mc    = this.mc,
-                fired = false;
-            
-            mc.on('add', function() {fired = true;});
-            
-            mc.add({id: 1});
-            assert.isTrue(fired);
-        },
-        
-        testClearEventFired: function() {
-            var mc    = this.mc,
-                fired = false;
-            
-            mc.on('clear', function() {fired = true;}, this);
-            mc.clear();
-            
-            assert.isTrue(fired);
-        },
-        
-        testGetCount: function() {
-            this.mc.add({id: 1});
-            this.mc.add({id: 2});
-            this.mc.add({id: 3});
-            
-            assert.areEqual(3, this.mc.getCount());
-        },
-        
-        testRemove: function() {
-            
-        },
-        
-        testRemoveFiresEvent: function() {
-            
-        }
-    }));
-    
-    suite.add(new Y.Test.Case({
-        name: 'insert',
-        
-        setUp: function() {
-            this.mc = new Ext.util.MixedCollection();
-            
-            this.mc.addAll([
-                {id: 1, name: 'first'},
-                {id: 2, name: 'second'},
-                {id: 3, name: 'third'}
-            ]);
-        },
-        
-        doInsert: function() {
-            this.mc.insert(1, {id: 4, name: 'fourth'});
-        },
-        
-        testInsertsToCorrectLocation: function() {
-            this.doInsert();
-            
-            assert.areEqual(4, this.mc.itemAt(1).id);
-        },
-        
-        testOtherItemsPreserved: function() {
-            var prevCount = this.mc.getCount();
-            
-            this.doInsert();
-            assert.areEqual(prevCount + 1, this.mc.getCount());
-        },
-        
-        testFiresAddEvent: function() {
-            var fired = false;
-            
-            this.mc.on('add', function() { fired = true; });
-            this.doInsert();
-            
-            assert.isTrue(fired);
-        }
-    }));
-    
-    suite.add(new Y.Test.Case({
-        name: 'replace',
-        
-        setUp: function() {
-            this.mc = new Ext.util.MixedCollection();
-            
-            this.mc.addAll([
-                {id: 1, name: 'first'},
-                {id: 2, name: 'second'},
-                {id: 3, name: 'third'}
-            ]);
-        },
-        
-        doReplace: function() {
-            this.mc.replace(2, {id: 4, name: 'fourth'});
-        },
-        
-        testReplacesCorrectItem: function() {
-            this.doReplace();
-            assert.areEqual("fourth", this.mc.itemAt(1).name);
-        },
-        
-        testPreviousItemRemoved: function() {
-            var prevCount = this.mc.getCount();
-            
-            this.doReplace();
-            assert.areEqual(prevCount, this.mc.getCount());
-        },
-        
-        testReplaceEventFired: function() {
-            var fired = false;
-            
-            this.mc.on('replace', function() { fired = true; });
-            this.doReplace();
-            
-            assert.isTrue(fired);
-        }
-    }));
-    
-    suite.add(new Y.Test.Case({
-        name: 'clone',
-        
-        setUp: function() {
-            this.mc = new Ext.util.MixedCollection();
-            
-            this.mc.addAll([
-                {id: 1, name: 'first'},
-                {id: 2, name: 'second'},
-                {id: 3, name: 'third'}
-            ]);
-        },
-        
-        //test that a shallow clone is completed correctly
-        testClone: function() {
-            var newMC = this.mc.clone();
-            
-            assert.areEqual(3, newMC.getCount());
-            
-            Ext.each([1, 2, 3], function(id) {
-              assert.areEqual(this.mc.get(id).id, newMC.get(id).id);
-            }, this);
-        }
-    }));
-    
-    suite.add(new Y.Test.Case({
-        name: 'getting items',
-        
-        setUp: function() {
-            this.mc = new Ext.util.MixedCollection();
-            this.item1 = {id: 1, name: 'first'};
-            
-            this.mc.addAll([
-                this.item1,
-                {id: 2, name: 'second'},
-                {id: 3, name: 'third'}
-            ]);
-        },
-        
-        testFirst: function() {
-            assert.areEqual(1, this.mc.first().id);
-        },
-        
-        testLast: function() {
-            assert.areEqual(3, this.mc.last().id);
-        },
-        
-        testGet: function() {
-            assert.areEqual(2, this.mc.get(2).id);
-        },
-        
-        testGetKey: function() {
-            assert.areEqual(1, this.mc.getKey(this.item1));
-        },
-        
-        //should return items in the given range
-        testGetRange: function() {
-            var items = this.mc.getRange(1, 2);
-            
-            assert.areEqual(2, items.length);
-            assert.areEqual(2, items[0].id);
-            assert.areEqual(3, items[1].id);
-        },
-        
-        //should get all items
-        testGetRangeWithNoArguments: function() {
-            var items = this.mc.getRange();
-            
-            assert.areEqual(3, items.length);
-        },
-        
-        //should get all items after the provided start index
-        testGetRangeWithNoEnd: function() {
-            var items = this.mc.getRange(1);
-            
-            assert.areEqual(2, items.length);
-        },
-        
-        testIndexOf: function() {
-            assert.areEqual(0, this.mc.indexOf(this.item1));
-        },
-        
-        testIndexOfKey: function() {
-            assert.areEqual(2, this.mc.indexOfKey(3));
-        },
-        
-        testKey: function() {
-            assert.areEqual(3, this.mc.key(3).id);
-        },
-        
-        testItemByIndex: function() {
-            this.mc.add({id: 'a', name: 'another item'});
-            this.mc.add({id: 'b', name: 'yet another item'});
-            
-            assert.areEqual('b', this.mc.item(4).id);
-        },
-        
-        //key should take priority over index
-        testItemByKey: function() {
-            this.mc.add({id: 'a', name: 'another item'});
-            
-            assert.areEqual('a', this.mc.item('a').id);
-        },
-        
-        testItemAt: function() {
-            assert.areEqual(3, this.mc.itemAt(2).id);
-        }
-    }));
-    
-    suite.add(new Y.Test.Case({
-        name: 'find functions',
-        
-        setUp: function() {
-            this.mc = new Ext.util.MixedCollection();
-            
-            this.mc.addAll([
-                {id: 1, name: 'first'},
-                {id: 2, name: 'second'},
-                {id: 3, name: 'third'}
-            ]);
-        },
-        
-        testFind: function() {
-            var matched = this.mc.find(function(item) {
-                return item.name == 'third';
-            });
-            
-            assert.areEqual('third', matched.name);
-        },
-        
-        testFindIndex: function() {
-            var matched = this.mc.findIndex('name', 'third');
-            
-            assert.areEqual(2, matched);
-        },
-        
-        testFindIndexBy: function() {
-            var matched = this.mc.findIndexBy(function(item) {
-                return item.name == 'second';
-            });
-            
-            assert.areEqual(1, matched);
-        }
-    }));
-    
-    suite.add(new Y.Test.Case({
-        name: 'contains',
-        
-        setUp: function() {
-            this.mc = new Ext.util.MixedCollection();
-            this.item = {id: 1, name: 'first'};
-            
-            this.mc.addAll([
-                this.item,
-                {id: 2, name: 'second'},
-                {id: 3, name: 'third'}
-            ]);
-        },
-        
-        tearDown: function() {
-            delete this.item;
-        },
-        
-        testContains: function() {
-            assert.isTrue(this.mc.contains(this.item));
-        },
-        
-        testDoesNotContain: function() {
-            assert.isFalse(this.mc.contains({some: 'object'}));
-        },
-        
-        testContainsKey: function() {
-            assert.isTrue(this.mc.containsKey(1));
-        },
-        
-        testDoesNotContainKey: function() {
-            assert.isFalse(this.mc.containsKey('abc'));
-        }
-    }));
-    
-    suite.add(new Y.Test.Case({
-        name: 'single sorting',
-        
-        setUp: function() {
-            this.mc = new Ext.util.MixedCollection(false, function(item) {
-                return item['code'];
-            });
-            
-            this.mc.addAll([
-                {id: 1, name: 'first',  code: 'C', modifier: 10},
-                {id: 2, name: 'second', code: 'A', modifier: 100},
-                {id: 3, name: 'third',  code: 'B', modifier: 5}
-            ]);
-        },
-        
-        testKeySort: function() {
-            var mc = this.mc;
-            mc.keySort();
-            
-            assert.areEqual('A', mc.itemAt(0).code);
-            assert.areEqual('B', mc.itemAt(1).code);
-            assert.areEqual('C', mc.itemAt(2).code);
-        },
-        
-        testDirectionalKeySort: function() {
-            var mc = this.mc;
-            mc.keySort('DESC');
-            
-            assert.areEqual('C', mc.itemAt(0).code);
-            assert.areEqual('B', mc.itemAt(1).code);
-            assert.areEqual('A', mc.itemAt(2).code);
-        },
-        
-        testSort: function() {
-            var mc = new Ext.util.MixedCollection();
-            mc.addAll(3, 1, 4, 2);
-            mc.sort();
-            
-            assert.areEqual(1, mc.itemAt(0));
-            assert.areEqual(2, mc.itemAt(1));
-            assert.areEqual(3, mc.itemAt(2));
-            assert.areEqual(4, mc.itemAt(3));
-        },
-        
-        testDirectionalSort: function() {
-            
-        },
-        
-        testSortWithComparator: function() {
-            var mc = this.mc;
-            mc.sort('ASC', function(a, b) {
-                return (a.id * a.modifier) - (b.id * b.modifier);
-            });
-            
-            assert.areEqual('C', mc.itemAt(0).code);
-            assert.areEqual('B', mc.itemAt(1).code);
-            assert.areEqual('A', mc.itemAt(2).code);
-        },
-        
-        testDirectionalSortWithComparator: function() {
-            var mc = this.mc;
-            mc.sort('DESC', function(a, b) {
-                return (a.id * a.modifier) - (b.id * b.modifier);
-            });
-            
-            assert.areEqual('A', mc.itemAt(0).code);
-            assert.areEqual('B', mc.itemAt(1).code);
-            assert.areEqual('C', mc.itemAt(2).code);
-        },
-        
-        testSortEventFired: function() {
-            var fired = false;
-            
-            this.mc.on('sort', function() { fired = true; });
-            this.mc.sort('name');
-            
-            assert.isTrue(fired);
-        }
-    }));
-    
-    suite.add(new Y.Test.Case({
-        name: 'reordering',
-        
-        setUp: function() {
-            this.mc = new Ext.util.MixedCollection(false, function(item) {
-                return item['code'];
-            });
-            
-            this.mc.addAll([
-                {id: 1, name: 'first',  code: 'C', modifier: 10},
-                {id: 2, name: 'second', code: 'A', modifier: 100},
-                {id: 3, name: 'third',  code: 'B', modifier: 5}
-            ]);
-        },
-        
-        testReordering: function() {
-            var mc = this.mc;
-            
-            mc.reorder({
-                1: 2,
-                2: 0
-            });
-            
-            assert.areEqual('B', mc.itemAt(0).code);
-            assert.areEqual('C', mc.itemAt(1).code);
-            assert.areEqual('A', mc.itemAt(2).code);
-        },
-        
-        testSortEventFired: function() {
-            var wasFired = false,
-                mc       = this.mc;
-            
-            mc.on('sort', function() {
-                wasFired = true;
-            }, this);
-            
-            mc.reorder({
-                1: 2,
-                2: 0
-            });
-            
-            assert.isTrue(wasFired);
-        }
-    }));
-})();
\ No newline at end of file