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