Sha256: 50e2f4f187141b5be092f138c566e792d0a361c40db3f73752fd1ecc22614e57

Contents?: true

Size: 1.72 KB

Versions: 14

Compression:

Stored size: 1.72 KB

Contents

// ==========================================================================
// Project:   SproutCore Costello - Property Observing Library
// Copyright: ©2006-2011 Strobe Inc. and contributors.
//            Portions ©2008-2011 Apple Inc. All rights reserved.
// License:   Licensed 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

14 entries across 14 versions & 1 rubygems

Version Path
sproutcore-1.6.0.rc.1-x86-mingw32 lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.6.0.rc.1 lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.6.0.rc.1-java lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.6.0.beta.3-x86-mingw32 lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.6.0.beta.3-java lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.6.0.beta.3 lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.6.0.beta.2-x86-mingw32 lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.6.0.beta.2-java lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.6.0.beta.2 lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.6.0.beta.1 lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.5.0-java lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.5.0 lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.5.0.rc.2 lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js
sproutcore-1.5.0.rc.1 lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js