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("unshiftObject"), { 17 setup: function() { 18 obj = T.newObject(); 19 observer = T.observer(obj); 20 } 21 }); 22 23 test("returns unshifted object", function() { 24 var exp = T.expected(1)[0]; 25 equals(obj.pushObject(exp), exp, 'should return receiver'); 26 }); 27 28 29 test("[].unshiftObject(X) => [X] + notify", function() { 30 var exp = T.expected(1); 31 observer.observe('[]', 'length') ; 32 obj.unshiftObject(exp[0]) ; 33 T.validateAfter(obj, exp, observer, YES); 34 }); 35 36 test("[A,B,C].unshiftObject(X) => [X,A,B,C] + notify", function() { 37 var after = T.expected(4), 38 before = after.slice(1), 39 value = after[0]; 40 41 obj.replace(0,0,before); 42 observer.observe('[]', 'length') ; 43 obj.unshiftObject(value) ; 44 T.validateAfter(obj, after, observer, YES); 45 }); 46 47 }); 48