// ========================================================================== // Project: SproutCore
- JavaScript Application Framework // Copyright: ©2006-2011 Apple Inc. and contributors. // License: Licensed under MIT license (see license.js) // ========================================================================== /*globals module ok equals same test MyApp */
var store, Foo, json, foo ; module(“SC.Record#readAttribute”, {
setup: function() { SC.RunLoop.begin(); store = SC.Store.create(); Foo = SC.Record.extend(); json = { foo: "bar", number: 123, bool: YES, array: [1,2,3] }; foo = store.createRecord(Foo, json); store.writeStatus(foo.storeKey, SC.Record.READY_CLEAN); }, teardown: function() { SC.RunLoop.end(); }
});
test(“returns unaltered JSON value for existing attributes”, function() {
var key ; for(key in json) { if (!json.hasOwnProperty(key)) continue; equals(foo.get(key), json[key], 'should return value for predefined key %@'.fmt(key)); }
});
test(“returns undefined for unknown JSON attributes”, function() {
equals(foo.get('imaginary'), undefined, 'should return undefined for unknown key "imaginary"');
});
test(“returns new value if edited via writeAttribute”, function() {
foo.writeAttribute("bar", "baz"); equals(foo.readAttribute("bar"), "baz", "should return value for new attribute 'bar'");
});
test(“returns undefined when data hash is not present”, function() {
store.removeDataHash(foo.storeKey); equals(store.readDataHash(foo.storeKey), null, 'precond - data hash should be removed from store'); equals(foo.readAttribute("foo"), undefined, "should return undefined if data hash is missing");
});