Sha256: 2466a07223306adf2fe1a19a8a48e5f4e03f6c6f1b3375022aabee92544b2c69

Contents?: true

Size: 1.72 KB

Versions: 17

Compression:

Stored size: 1.72 KB

Contents

// ==========================================================================
// Project:   SproutCore - JavaScript Application Framework
// Copyright: ©2006-2011 Apple Inc. and contributors.
// License:   Licensed under MIT license (see license.js)
// ==========================================================================

/*global module test equals context ok same notest */

var source, indexes, observer, obj ; // base array to work with
module("SC.RangeObserver#create", {
  setup: function() {

    // create array with 5 SC.Object's in them
    source = [1,2,3,4,5].map(function(x) {
      return SC.Object.create({ item: x, foo: "bar" }) ;
    }, this);

    indexes = SC.IndexSet.create(2,2); // select 2..3

    observer = SC.Object.create({

      callCount: 0,

      rangeDidChange: function() {
        this.callCount++;
      }

    });

    obj = SC.RangeObserver.create(source, indexes, observer, observer.rangeDidChange, "context", YES);

  }
});

test("returns new instance", function() {
  ok(obj && obj.isRangeObserver, 'returns range observer');
});

test("sets up observing on properties for each object in range in index if isDeep", function() {
  var len = source.length, idx;
  for(idx=0;idx<len;idx++) {
    source[idx].set('foo', 'baz');
  }
  equals(observer.callCount, 2, 'range observer should fire twice');
});

test("does not observe object properties if isDeep is NO", function() {
  // remove unneeded observer
  obj.destroy();

  // use new observer
  obj = SC.RangeObserver.create(source, indexes, observer, observer.rangeDidChange, "context", NO);

  var len = source.length, idx;
  for(idx=0;idx<len;idx++) {
    source[idx].set('foo', 'baz');
  }
  equals(observer.callCount, 0, 'range observer should not fire');
});

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
sproutcore-1.6.0.rc.2-x86-mingw32 lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js
sproutcore-1.6.0.rc.2 lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js
sproutcore-1.6.0.rc.2-java lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js
sproutcore-1.6.0.rc.1-x86-mingw32 lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js
sproutcore-1.6.0.rc.1 lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js
sproutcore-1.6.0.rc.1-java lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js
sproutcore-1.6.0.beta.3-x86-mingw32 lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js
sproutcore-1.6.0.beta.3-java lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js
sproutcore-1.6.0.beta.3 lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js
sproutcore-1.6.0.beta.2-x86-mingw32 lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js
sproutcore-1.6.0.beta.2-java lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js
sproutcore-1.6.0.beta.2 lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js
sproutcore-1.6.0.beta.1 lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js
sproutcore-1.5.0-java lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js
sproutcore-1.5.0 lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js
sproutcore-1.5.0.rc.2 lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js
sproutcore-1.5.0.rc.1 lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js