1 // ========================================================================== 2 // Project: SproutCore Costello - Property Observing Library 3 // Copyright: ©2006-2011 Strobe Inc. and contributors. 4 // Portions ©2008-2011 Apple Inc. All rights reserved. 5 // License: Licensed under MIT license (see license.js) 6 // ========================================================================== 7 8 /*globals module test ok equals same CoreTest */ 9 10 sc_require('debug/test_suites/array/base'); 11 12 SC.ArraySuite.define(function(T) { 13 14 var observer, obj ; 15 16 module(T.desc("removeObject"), { 17 setup: function() { 18 obj = T.newObject(); 19 observer = T.observer(obj); 20 } 21 }); 22 23 test("should return receiver", function() { 24 obj = T.newObject(3); 25 equals(obj.removeObject(obj.objectAt(0)), obj, 'should return receiver'); 26 }); 27 28 test("[A,B,C].removeObject(B) => [A,C] + notify", function() { 29 30 var before = T.expected(3), 31 after = [before[0], before[2]]; 32 obj.replace(0,0, before); 33 observer.observe('[]', 'length') ; 34 35 obj.removeObject(before[1]) ; 36 T.validateAfter(obj, after, observer, YES); 37 }); 38 39 test("[A,B,C].removeObject(D) => [A,B,C]", function() { 40 var exp = T.expected(4), 41 extra = exp.pop(); 42 obj.replace(0,0,exp); 43 observer.observe('[]', 'length') ; 44 45 obj.removeObject(extra); 46 T.validateAfter(obj, exp, observer, NO, NO); 47 }); 48 49 }); 50