// ========================================================================== // 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 */

module(“SC.View#init”);

test(“registers view in the global views hash using layerId for event targeted”, function () {

var v = SC.View.create();
equals(SC.View.views[v.get('layerId')], v, 'registers view');

});

test(“adds displayDidChange observer on all display properties (when rendered)”, function () {

var didChange = NO;
var v = SC.View.create({
  // override just to make sure the registration works...
  displayDidChange: function () { didChange = YES; },

  displayProperties: 'foo bar'.w(),

  foo: 'foo',
  bar: 'bar'
});

v.set('foo', 'baz');
ok(!didChange, '!didChange on set(foo) before view is rendered');
didChange = NO;

v.set('bar', 'baz');
ok(!didChange, '!didChange on set(bar) before view is rendered');

// Render the view.
v._doRender();

v.set('foo', 'buz');
ok(didChange, 'didChange on set(foo) after view is rendered');
didChange = NO;

v.set('bar', 'buz');
ok(didChange, 'didChange on set(bar) after view is rendered');

});

test(“invokes createChildViews()”, function () {

var didInvoke = NO;
var v = SC.View.create({
  // override just for test
  createChildViews: function () { didInvoke = YES; }
});
ok(didInvoke, 'did invoke createChildViews()');

});

test(“does NOT create layer”, function () {

var v = SC.View.create();
equals(v.get('layer'), null, 'did not create layer');

});