Sha256: f39740136d317e460a8facaac67399bf96dcaaa9454b6b8cd0678099c191284b

Contents?: true

Size: 1.73 KB

Versions: 17

Compression:

Stored size: 1.73 KB

Contents

// ==========================================================================
// Project:   SproutCore Costello - Property Observing Library
// Copyright: ©2006-2009 Sprout Systems, Inc. and contributors.
//            Portions ©2008-2009 Apple Inc. All rights reserved.
// License:   Licened under MIT license (see license.js)
// ==========================================================================

var callCount, obj;

module("SC.Observers.isObservingSuspended", {
  setup: function() {
    callCount = 0;
    
    obj = SC.Object.create({ 
      foo: "bar",

      fooDidChange: function() { 
        callCount++; 
      }.observes('foo')
    });
  }
});

test("suspending observers stops notification", function() {
  SC.Observers.suspendPropertyObserving();
  SC.Observers.suspendPropertyObserving();
  obj.set("foo");
  equals(callCount, 0, 'should not notify observer while suspended');

  SC.Observers.resumePropertyObserving();
  equals(callCount, 0, 'should not notify observer while still suspended');
  
  SC.Observers.resumePropertyObserving();
  equals(callCount, 1, 'should notify observer when resumed');
  
});

// ..........................................................
// SPECIAL CASES
// 

// this test verifies a specific bug in the SC.Observing.propertyDidChange method.
test("suspended notifications should work when nesting property change groups", function() {
  
  SC.Observers.suspendPropertyObserving();
  obj.beginPropertyChanges();
  obj.set("foo");
  equals(callCount, 0, 'should not notify observer while suspended');

  obj.endPropertyChanges();
  equals(callCount, 0, 'should not notify observer while suspended');

  SC.Observers.resumePropertyObserving();
  equals(callCount, 1, 'should notify observer when resumed');
});

Version data entries

17 entries across 17 versions & 2 rubygems

Version Path
sproutit-sproutcore-1.0.20090721145285 frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.0.1046 frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.0.1043 frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.0.1042 frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.0.1037 frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.0.1035 frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.0.1031 frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.0.1030 frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.0.1029 frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.0.1027 frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.0.1028 frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.0.1026 frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.0.1025 frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.0.1024 frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.0.1009 frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.0.1008 frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.0.1003 frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js